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

DGPFAPI.m

Go to the documentation of this file.
  1. DGPFAPI ;ALB/RBS - PRF EXTERNAL API'S ; 7/26/06 9:22am
  1. ;;5.3;Registration;**425,554,699,650,1015**;Aug 13, 1993;Build 21
  1. ;
  1. Q ;no direct entry
  1. ;
  1. GETACT(DGDFN,DGPRF) ;Retrieve all ACTIVE Patient record flag assignments
  1. ;The purpose of this API is to facilitate the retrieval of specific
  1. ;data that can be used for the displaying of or the reporting of
  1. ;only ACTIVE Patient Record Flag (PRF) Assignment information for
  1. ;a patient.
  1. ;
  1. ; Associated DBIA: #3860 - DGPF PATIENT RECORD FLAG
  1. ;
  1. ; Input:
  1. ; DGDFN - IEN of patient in the PATIENT (#2) file
  1. ; DGPRF - Closed Root array of return values
  1. ; [Optional-default DGPFAPI]
  1. ;
  1. ; Output:
  1. ; Function result - "0" = No Active record flags for the patient
  1. ; - "nn" = Total number of flags returned in array
  1. ; DGPRF() - Array, passed by closed root reference
  1. ; - Multiple subscripted array of Active flag information
  1. ; If the function call is successful, this array will
  1. ; contain each of the Active flag records.
  1. ; - Subscript field value = internal value^external value
  1. ; 2 piece string caret(^) delimited
  1. ; DGPFAPI() - Default array name if no name passed
  1. ;
  1. ; Subscript Field Name Field #/File #
  1. ; --------- ---------- --------------
  1. ; "APPRVBY" APPROVED BY (.05)/(#26.14)
  1. ; (Note: The .5 (POSTMASTER) internal field value
  1. ; triggers an output transform that converts the
  1. ; external value of "POSTMASTER" to "CHIEF OF STAFF".
  1. ; "ASSIGNDT" DATE/TIME (.02)/(#26.14)
  1. ; "REVIEWDT" REVIEW DATE (.06)/(#26.13)
  1. ; "FLAG" FLAG NAME (.02)/(#26.13)
  1. ; "FLAGTYPE" TYPE (.03)/(#26.11 or #26.15)
  1. ; "CATEGORY" National or Local Flag (#26.15) or (#26.11)
  1. ; "OWNER" OWNER SITE (.04)/(#26.13)
  1. ; "ORIGSITE" ORIGINATING SITE (.05)/(#26.13)
  1. ; "TIUTITLE" TIU PN TITLE (.07)/(#26.11) or (#26.15)
  1. ; "TIULINK" TIU PN LINK (.06)/(#26.14)
  1. ; "NARR" ASSIGNMENT NARRATIVE (1)/(#26.13)
  1. ; (word-processing, multiple nodes)
  1. ; The format is in a word-processing value that may
  1. ; contain multiple nodes of text. Each node of text
  1. ; will be less than 80 characters in length.
  1. ; The format is as follows:
  1. ; TARGET_ROOT(nn,"NARR",line#,0)=text
  1. ; where:
  1. ; nn = a unique number for each Flag
  1. ; line# = a unique number starting at 1 for each wp line
  1. ; of narrative text
  1. ; 0 = standard subscript format for the nodes of a
  1. ; FileMan Word Processing field
  1. ;
  1. N DGPFTCNT ;return results, "0"=no flags, "nn"=number of flags
  1. N DGPFIENS ;array of all active flag assignment IEN's
  1. N DGPFIEN ;ien of record flag assignment in (#26.13) file
  1. N DGPFA ;flag assignment array
  1. N DGPFAH ;flag assignment history array
  1. N DGPFLAG ;flag record array
  1. N DGPFLAH ;last flag assignment history array
  1. N DGCAT ;flag category
  1. ;
  1. Q:'$G(DGDFN) 0 ;Quit, null parameter
  1. Q:'$$GETALL^DGPFAA(DGDFN,.DGPFIENS,1) 0 ;Quit, no Active assign's
  1. ;
  1. S DGPRF=$G(DGPRF)
  1. I DGPRF']"" S DGPRF="DGPFAPI" ;setup default array name
  1. ;
  1. K @DGPRF ;Kill/initialize work array
  1. ;
  1. S (DGPFIEN,DGCAT)="",DGPFTCNT=0
  1. ;
  1. ; loop all returned Active Record Flag Assignment ien's
  1. F S DGPFIEN=$O(DGPFIENS(DGPFIEN)) Q:DGPFIEN="" D
  1. . K DGPFA,DGPFAH,DGPFLAG,DGPFLAH
  1. . ;
  1. . ; retrieve single assignment record fields
  1. . Q:'$$GETASGN^DGPFAA(DGPFIEN,.DGPFA)
  1. . ;
  1. . ; no patient DFN match
  1. . I DGDFN'=$P(DGPFA("DFN"),U) Q
  1. . ;
  1. . ; get initial assignment history
  1. . Q:'$$GETHIST^DGPFAAH($$GETFIRST^DGPFAAH(DGPFIEN),.DGPFAH)
  1. . ;
  1. . ; get last assignment history
  1. . Q:'$$GETHIST^DGPFAAH($$GETLAST^DGPFAAH(DGPFIEN),.DGPFLAH)
  1. . ;
  1. . ; get record flag record
  1. . Q:'$$GETFLAG^DGPFUT1($P($G(DGPFA("FLAG")),U),.DGPFLAG)
  1. . ;
  1. . S DGPFTCNT=DGPFTCNT+1
  1. . ;
  1. . ; approved by user
  1. . S @DGPRF@(DGPFTCNT,"APPRVBY")=$G(DGPFLAH("APPRVBY"))
  1. . ;
  1. . ; initial assignment date/time
  1. . S @DGPRF@(DGPFTCNT,"ASSIGNDT")=$G(DGPFAH("ASSIGNDT"))
  1. . ;
  1. . ; next review due date
  1. . S @DGPRF@(DGPFTCNT,"REVIEWDT")=$G(DGPFA("REVIEWDT"))
  1. . ;
  1. . ; record flag name
  1. . S @DGPRF@(DGPFTCNT,"FLAG")=$G(DGPFA("FLAG"))
  1. . ;
  1. . ; record flag type
  1. . S @DGPRF@(DGPFTCNT,"FLAGTYPE")=$G(DGPFLAG("TYPE"))
  1. . ;
  1. . ; category of flag - I (NATIONAL) or II (LOCAL)
  1. . S DGCAT=$S($G(DGPFA("FLAG"))["26.15":"I (NATIONAL)",1:"II (LOCAL)")
  1. . S @DGPRF@(DGPFTCNT,"CATEGORY")=DGCAT_U_DGCAT
  1. . ;
  1. . ; owner site
  1. . S @DGPRF@(DGPFTCNT,"OWNER")=$G(DGPFA("OWNER"))_" "_$$FMTPRNT^DGPFUT1($P($G(DGPFA("OWNER")),U))
  1. . ;
  1. . ; originating site
  1. . S @DGPRF@(DGPFTCNT,"ORIGSITE")=$G(DGPFA("ORIGSITE"))_" "_$$FMTPRNT^DGPFUT1($P($G(DGPFA("ORIGSITE")),U))
  1. . ;
  1. . ; add TIU info when Owner Site is a local division
  1. . I $$ISDIV^DGPFUT($P(DGPFA("OWNER"),U)) D
  1. . . ;
  1. . . ; flag associated TIU PN Title
  1. . . S @DGPRF@(DGPFTCNT,"TIUTITLE")=$G(DGPFLAG("TIUTITLE"))
  1. . . ;
  1. . . ; assignment history TIU PN Link
  1. . . S @DGPRF@(DGPFTCNT,"TIULINK")=$G(DGPFLAH("TIULINK"))
  1. . ;
  1. . ; narrative
  1. . I '$D(DGPFA("NARR",1,0)) D Q ;should never happen - but -
  1. . . S @DGPRF@(DGPFTCNT,"NARR",1,0)="No Narrative Text"
  1. . ;
  1. . M @DGPRF@(DGPFTCNT,"NARR")=DGPFA("NARR")
  1. ;
  1. ; Re-Sort Active flags by category & alpha flag name
  1. I +$G(DGPFTCNT)>1 D
  1. . I $$SORT^DGPFUT2(DGPRF) ;naked IF to just do resort
  1. ;
  1. Q DGPFTCNT
  1. ;
  1. PRFQRY(DGDFN) ;query a treating facility for patient record flag assignments
  1. ;This function queries a given patient's treating facility to retrieve
  1. ;all patient record flag assignments for the patient.
  1. ;
  1. ; Input:
  1. ; DGDFN - pointer to patient in PATIENT (#2) file
  1. ;
  1. ; Output:
  1. ; Function value - 1 on success, 0 on failure
  1. ;
  1. N DGEVNT
  1. N DGRSLT
  1. ;
  1. S DGRSLT=0
  1. S DGEVNT=$$FNDEVNT^DGPFHLL1(DGDFN)
  1. I DGEVNT D
  1. . ;
  1. . ;must have INCOMPLETE status
  1. . Q:'$$ISINCOMP^DGPFHLL1(DGEVNT)
  1. . ;
  1. . ;run query using mode defined in PRF HL7 QUERY STATUS (#3) field of
  1. . ;PRF PARAMETERS (#26.18) file.
  1. . S DGRSLT=$$SNDQRY^DGPFHLS(DGDFN,$$QRYON^DGPFPARM())
  1. ;
  1. Q DGRSLT
  1. ;
  1. DISPPRF(DGDFN) ;display active patient record flag assignments
  1. ;This procedure performs a lookup for active patient record flag
  1. ;assignments for a given patient and formats the assignment data for
  1. ;roll-and-scroll display.
  1. ;
  1. ; Input:
  1. ; DGDFN - pointer to patient in PATIENT (#2) file
  1. ;
  1. ; Output:
  1. ; none
  1. ;
  1. Q:'$D(XQY0)
  1. Q:$P(XQY0,U)="DGPF RECORD FLAG ASSIGNMENT"
  1. ;
  1. ;protect Kernel IO variables
  1. N IOBM,IOBOFF,IOBON,IOEDEOP,IOINHI,IOINORM,IORC,IORVOFF,IORVON,IOIL
  1. N IOSC,IOSGRO,IOSTBM,IOTM,IOUOFF,IOUON
  1. ;
  1. ;protect ListMan variables
  1. N VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCC,VALMCNT,VALMCOFF,VALMCON
  1. N VALMDDF,VALMDN,VALMEVL,VALMHDR,VALMIOXY,VALMKEY,VALMLFT,VALMLST
  1. N VALMMENU,VALMPGE,VALMSGR,VALMUP,VALMWD
  1. ;
  1. ;protect Unwinder variables
  1. N ORU,ORUDA,ORUER,ORUFD,ORUFG,ORUSB,ORUSQ,ORUSV,ORUT,ORUW,ORUX
  1. N XQORM,DQ
  1. ;
  1. ; protect original Listman VALM DATA global
  1. K ^TMP($J,"DGPFVALM DATA")
  1. M ^TMP($J,"DGPFVALM DATA")=^TMP("VALM DATA",$J)
  1. ;
  1. D DISPPRF^DGPFUT1(DGDFN)
  1. ;
  1. ; restore original Listman VALM DATA global
  1. M ^TMP("VALM DATA",$J)=^TMP($J,"DGPFVALM DATA")
  1. ;
  1. K ^TMP($J,"DGPFVALM DATA")
  1. Q