Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGPFALH

DGPFALH.m

Go to the documentation of this file.
  1. DGPFALH ;ALB/RBS - PRF LOCAL FLAG HISTORY API'S ; 3/10/03 3:14pm
  1. ;;5.3;Registration;**425**;Aug 13, 1993
  1. ;
  1. Q ;no direct entry
  1. ;
  1. GETALL(DGPFIEN,DGPFIENS) ;retrieve list of history IENs for a Local Flag
  1. ;
  1. ; Input:
  1. ; DGPFIEN - (required) Pointer to PRF LOCAL FLAG (#26.11) file
  1. ; DGPFIENS - (required) Result array passed by reference
  1. ;
  1. ; Output:
  1. ; Function Value - Count of returned IENs
  1. ; DGPFIENS - Output array subscripted by Local Flag history IENs
  1. ;
  1. N DGCNT ;number of returned values
  1. N DGHIEN ;single history IEN
  1. ;
  1. S DGCNT=0
  1. I $G(DGPFIEN)>0,$D(^DGPF(26.12,"B",DGPFIEN)) D
  1. . S DGHIEN=0
  1. . F S DGHIEN=$O(^DGPF(26.12,"B",DGPFIEN,DGHIEN)) Q:'DGHIEN D
  1. . . S DGPFIENS(DGHIEN)=""
  1. . . S DGCNT=DGCNT+1
  1. Q DGCNT
  1. ;
  1. ;
  1. GETALLDT(DGPFIEN,DGPFIENS) ;retrieve list of history IENs for a Local Flag
  1. ; Retrieve list of history IENs for a Local Flag and place in a local
  1. ; array subscripted by Flag Edit Date/Time.
  1. ;
  1. ; Input:
  1. ; DGPFIEN - (required) Pointer to PRF LOCAL FLAG (#26.11) file
  1. ; DGPFIENS - (required) Result array passed by reference
  1. ;
  1. ; Output:
  1. ; Function Value - Count of returned IENs
  1. ; DGPFIENS - Output array containing Local Flag history IENs,
  1. ; subscripted by Flag Edit Date/Time
  1. ; Ex. DGPFIENS(3030310.1025)=2
  1. ;
  1. ;
  1. N DGCNT ;number of returned values
  1. N DGDT ;flag edit date/time
  1. N DGHIEN ;single history IEN
  1. ;
  1. S DGCNT=0
  1. ;
  1. I $G(DGPFIEN)>0,$D(^DGPF(26.12,"C",DGPFIEN)) D
  1. . S DGDT=0
  1. . F S DGDT=$O(^DGPF(26.12,"C",DGPFIEN,DGDT)) Q:'DGDT D
  1. . . S DGHIEN=0
  1. . . F S DGHIEN=$O(^DGPF(26.12,"C",DGPFIEN,DGDT,DGHIEN)) Q:'DGHIEN D
  1. . . . S DGPFIENS(DGDT)=DGHIEN
  1. . . . S DGCNT=DGCNT+1
  1. ;
  1. Q DGCNT
  1. ;
  1. ;
  1. GETHIST(DGPFIEN,DGPFLH) ;retrieve a single Local Flag history record
  1. ;
  1. ; Input:
  1. ; DGPFIEN - (required) IEN for record in PRF LOCAL FLAG HISTORY
  1. ; (#26.12) file
  1. ; DGPFLH - (required) Result array passed by reference
  1. ;
  1. ; Output:
  1. ; Function Value - Return 1 on success, 0 on failure
  1. ; DGPFLH - Output array containing the field values
  1. ; Subscript Field#
  1. ; ----------------- ------
  1. ; "FLAG" .01
  1. ; "ENTERDT" .02
  1. ; "ENTERBY" .03
  1. ; "REASON",line#,0 .04
  1. ;
  1. N DGIENS ;IEN string for DIQ
  1. N DGFLDS ;results array for DIQ
  1. N DGERR ;error array for DIQ
  1. N DGRSLT
  1. S DGRSLT=0
  1. I $G(DGPFIEN)>0,$D(^DGPF(26.12,DGPFIEN)) D
  1. . S DGIENS=DGPFIEN_","
  1. . D GETS^DIQ(26.12,DGIENS,"*","IEZ","DGFLDS","DGERR")
  1. . Q:$D(DGERR)
  1. . S DGRSLT=1
  1. . S DGPFLH("FLAG")=$G(DGFLDS(26.12,DGIENS,.01,"I"))_U_$G(DGFLDS(26.12,DGIENS,.01,"E"))
  1. . S DGPFLH("ENTERDT")=$G(DGFLDS(26.12,DGIENS,.02,"I"))_U_$G(DGFLDS(26.12,DGIENS,.02,"E"))
  1. . S DGPFLH("ENTERBY")=$G(DGFLDS(26.12,DGIENS,.03,"I"))_U_$G(DGFLDS(26.12,DGIENS,.03,"E"))
  1. . ;build reason of enter/edit word processing array
  1. . M DGPFLH("REASON")=DGFLDS(26.12,DGIENS,.04)
  1. . K DGPFLH("REASON","E"),DGPFLH("REASON","I")
  1. . ;
  1. Q DGRSLT
  1. ;
  1. ;
  1. GETLAST(DGPFIEN) ;determine IEN of last Local Flag history record
  1. ;This function returns the IEN of the most recent history record for
  1. ;a given Local Flag record.
  1. ;
  1. ; Input:
  1. ; DGPFIEN - (required) IEN of record in PRF LOCAL FLAG(#26.11) file
  1. ;
  1. ; Output:
  1. ; Function Value - IEN of last history record on success
  1. ; - 0 on failure
  1. N DGDAT,DGHIEN
  1. S DGHIEN=0
  1. I $G(DGPFIEN)>0,$D(^DGPF(26.11,DGPFIEN)) D
  1. . S DGDAT=$O(^DGPF(26.12,"C",DGPFIEN,""),-1)
  1. . I DGDAT>0 D
  1. . . S DGHIEN=$O(^DGPF(26.12,"C",DGPFIEN,DGDAT,0))
  1. Q $S($G(DGHIEN)>0:DGHIEN,1:0)
  1. ;
  1. ;
  1. GETADT(DGPFIEN) ;get the initial entry date/time
  1. ;This function returns the initia entry date/time for a given Local
  1. ;record flag.
  1. ;
  1. ; Input:
  1. ; DGPFIEN - (required) IEN of record in PRF LOCAL FLAG(#26.11) file
  1. ;
  1. ; Output:
  1. ; Function Value - Entry date/time on success (internal^external)
  1. ; 0 on failure
  1. ;
  1. N DGHIEN ;history IEN
  1. N DGEDT ;edit date
  1. N DGADT ;entry date
  1. N DGPFLH ;history record data array
  1. ;
  1. S DGADT=0
  1. S DGHIEN=0
  1. I $G(DGPFIEN)>0,$D(^DGPF(26.11,DGPFIEN)) D
  1. . S DGEDT=$O(^DGPF(26.12,"C",DGPFIEN,0))
  1. . I DGEDT>0 D
  1. . . S DGHIEN=$O(^DGPF(26.12,"C",DGPFIEN,DGEDT,0))
  1. . . I DGHIEN>0,$$GETHIST^DGPFALH(DGHIEN,.DGPFLH) D
  1. . . . S DGADT=$G(DGPFLH("ENTERDT"))
  1. Q DGADT
  1. ;
  1. ;
  1. STOHIST(DGPFLH,DGPFERR) ;file a PRF LOCAL FLAG HISTORY (#26.12) file record
  1. ;
  1. ; Input:
  1. ; DGPFLH - (required) Array of values to be filed (see GETHIST tag
  1. ; above for valid array structure)
  1. ; DGPFERR - (optional) Passed by reference to contain error msg's
  1. ;
  1. ; Output:
  1. ; Function Value - Returns IEN of record on success
  1. ; - 0 on failure
  1. ; DGPFERR - Undefined on success, error message on failure
  1. ;
  1. N DGSUB,DGFLD,DGIEN,DGIENS,DGFDA,DGFDAIEN,DGERR
  1. ;
  1. F DGSUB="FLAG","ENTERDT","ENTERBY" D
  1. . S DGFLD(DGSUB)=$P($G(DGPFLH(DGSUB)),U)
  1. I $D(DGPFLH("REASON")) M DGFLD("REASON")=DGPFLH("REASON")
  1. I $$VALID^DGPFUT("DGPFALH",26.12,.DGFLD,.DGPFERR) D
  1. . S DGIENS="+1,"
  1. . S DGFDA(26.12,DGIENS,.01)=DGFLD("FLAG")
  1. . S DGFDA(26.12,DGIENS,.02)=DGFLD("ENTERDT")
  1. . S DGFDA(26.12,DGIENS,.03)=DGFLD("ENTERBY")
  1. . S DGFDA(26.12,DGIENS,.04)="DGFLD(""REASON"")"
  1. . D UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
  1. . I '$D(DGERR) S DGIEN=$G(DGFDAIEN(1))
  1. Q $S($G(DGIEN)>0:DGIEN,1:0)
  1. ;
  1. ;
  1. ; PRF LOCAL FLAG field VALIDATION DATA
  1. XREF ;;array node name;field#;required param;word processing?;description
  1. ;;FLAG;.01;1;0;flag name
  1. ;;ENTERDT;.02;1;0;pointer to NEW PERSON (#200) file
  1. ;;ENTERBY;.03;1;0;pointer to NEW PERSON (#200) file
  1. ;;REASON;.04;1;1;Reason of Flag enter/edit