| 1 | ORPRF ;SLC/JLI-Patient record flag ;1/10/06
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**173,187,190,215**;Dec 17, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | FMT(ROOT) ; Format - Convert record flag data to displayable data
 | 
|---|
| 5 |  ; Sets ^TMP("ORPRF",$J,NN) with flag data for multiple flags
 | 
|---|
| 6 |  N IDX,IX,CNT
 | 
|---|
| 7 |  S (IDX,CNT)=0
 | 
|---|
| 8 |  F  S IDX=$O(ROOT(IDX)) Q:'IDX  D
 | 
|---|
| 9 |  . S ^TMP("ORPRF",$J,IDX,"FLAG")=$P($G(ROOT(IDX,"FLAG")),U,2)
 | 
|---|
| 10 |  . S ^TMP("ORPRF",$J,IDX,"CATEGORY")=$P($G(ROOT(IDX,"CATEGORY")),U,2)
 | 
|---|
| 11 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Flag Name:               "_$P($G(ROOT(IDX,"FLAG")),U,2)
 | 
|---|
| 12 |  . I $D(ROOT(IDX,"NARR")) D
 | 
|---|
| 13 |  . . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="            "
 | 
|---|
| 14 |  . . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Assignment Narrative:   "
 | 
|---|
| 15 |  . . S IX=0 F  S IX=$O(ROOT(IDX,"NARR",IX)) Q:'IX  D
 | 
|---|
| 16 |  . . . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)=$G(ROOT(IDX,"NARR",IX,0))
 | 
|---|
| 17 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="            "
 | 
|---|
| 18 |  . ; -- Assignment Details:
 | 
|---|
| 19 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Flag Type:               "_$P($G(ROOT(IDX,"FLAGTYPE")),U,2)
 | 
|---|
| 20 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Flag Category:           "_$P($G(ROOT(IDX,"CATEGORY")),U,2)
 | 
|---|
| 21 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Assignment Status:       "_"Active"
 | 
|---|
| 22 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Initial Assigned Date:   "_$P($G(ROOT(IDX,"ASSIGNDT")),U,2)
 | 
|---|
| 23 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Approved by:             "_$P($G(ROOT(IDX,"APPRVBY")),U,2)
 | 
|---|
| 24 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Next Review Date:        "_$P($G(ROOT(IDX,"REVIEWDT")),U,2)
 | 
|---|
| 25 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Owner Site:              "_$P($G(ROOT(IDX,"OWNER")),U,2)
 | 
|---|
| 26 |  . S CNT=CNT+1,^TMP("ORPRF",$J,IDX,CNT)="Originating Site:        "_$P($G(ROOT(IDX,"ORIGSITE")),U,2)
 | 
|---|
| 27 |  K ROOT
 | 
|---|
| 28 |  Q
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | HASFLG(ORY,PTDFN) ;Does patient PTDFN has flags
 | 
|---|
| 31 |  ;     DBIA 3860: $$GETACT^DGPFAPI(PTDFN,.FLGDATA)
 | 
|---|
| 32 |  ; Returns array ORY listing active assigned flags
 | 
|---|
| 33 |  ; Array ORY has form:
 | 
|---|
| 34 |  ;   ORY(flagID) = flagID^flagname
 | 
|---|
| 35 |  ; ORY = Num of items returned in array ORY = num of flags
 | 
|---|
| 36 |  I '$L($TEXT(GETACT^DGPFAPI)) S ORY=0 Q
 | 
|---|
| 37 |  N IDY,PRFARR
 | 
|---|
| 38 |  K ^TMP("ORPRF",$J)
 | 
|---|
| 39 |  S ORY=$$GETACT^DGPFAPI(PTDFN,"PRFARR")
 | 
|---|
| 40 |  Q:'ORY
 | 
|---|
| 41 |  D FMT(.@("PRFARR")) ; Sets ^TMP("ORPRF"
 | 
|---|
| 42 |  S IDY=0 F  S IDY=$O(^TMP("ORPRF",$J,IDY)) Q:'IDY  D
 | 
|---|
| 43 |  . S ORY(IDY)=IDY_U_$G(^TMP("ORPRF",$J,IDY,"FLAG"))
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | HASFLG1(ORY,PTDFN) ; Does patient PTDFN have **Cat I** flags
 | 
|---|
| 47 |  ; Returns array ORY listing active assigned Cat I flags
 | 
|---|
| 48 |  ; Array ORY has form:
 | 
|---|
| 49 |  ;   ORY(flagID) = flagID^flagname
 | 
|---|
| 50 |  ; ORY = Num of Cat I flags
 | 
|---|
| 51 |  ;   If pt has no Cat I flags ORY = 0 and no flags are returned.
 | 
|---|
| 52 |  ; Also calls FMT^ORPRF, which sets ^TMP("ORPRF" for Cat I flags
 | 
|---|
| 53 |  ;  
 | 
|---|
| 54 |  I '$L($TEXT(GETACT^DGPFAPI)) S ORY=0 Q
 | 
|---|
| 55 |  N FLAGID,PRFARR,CAT1CNT,ACTFLGS
 | 
|---|
| 56 |  K ^TMP("ORPRF",$J)
 | 
|---|
| 57 |  S ACTFLGS=$$GETACT^DGPFAPI(PTDFN,"PRFARR")
 | 
|---|
| 58 |  I 'ACTFLGS S ORY=0 Q
 | 
|---|
| 59 |  S (FLAGID,CAT1CNT)=0
 | 
|---|
| 60 |  F  S FLAGID=$O(PRFARR(FLAGID)) Q:'FLAGID  D
 | 
|---|
| 61 |  . I $P($G(PRFARR(FLAGID,"CATEGORY"))," ")="I" S CAT1CNT=CAT1CNT+1 Q
 | 
|---|
| 62 |  . K PRFARR(FLAGID)
 | 
|---|
| 63 |  I 'CAT1CNT S ORY=0 Q
 | 
|---|
| 64 |  D FMT(.@("PRFARR"))
 | 
|---|
| 65 |  S IDY=0 F  S IDY=$O(^TMP("ORPRF",$J,IDY)) Q:'IDY  D
 | 
|---|
| 66 |  . S ORY(IDY)=IDY_U_$G(^TMP("ORPRF",$J,IDY,"FLAG"))
 | 
|---|
| 67 |  S ORY=CAT1CNT
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | HASCAT1(HASCAT1,PTDFN) ;Does patient have Category I flags (no arrays)
 | 
|---|
| 71 |  ; Returns boolean HASCAT1 = 0 or 1
 | 
|---|
| 72 |  ; Does NOT set arrays or TMP globals
 | 
|---|
| 73 |  N FLAGID,PRFARR,ACTFLGS
 | 
|---|
| 74 |  S (HASCAT1,FLAGID)=0
 | 
|---|
| 75 |  S ACTFLGS=$$GETACT^DGPFAPI(PTDFN,"PRFARR") I 'ACTFLGS G HASCAT1X
 | 
|---|
| 76 |  F  S FLAGID=$O(PRFARR(FLAGID)) Q:'FLAGID  D  Q:HASCAT1
 | 
|---|
| 77 |  . I $P($G(PRFARR(FLAGID,"CATEGORY"))," ")="I" S HASCAT1=1
 | 
|---|
| 78 | HASCAT1X ;
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | TRIGRPOP(POPUP,PTDFN) ;Should the flag display pop up upon patient selection
 | 
|---|
| 82 |  ; for patient PTDFN?
 | 
|---|
| 83 |  ;As of 1/10/06, returns POPUP as:
 | 
|---|
| 84 |  ;   1 if pt has any active flags, either Cat I or Cat II
 | 
|---|
| 85 |  ;   0 otherwise
 | 
|---|
| 86 |  N PRFARR
 | 
|---|
| 87 |  S POPUP=$S($$GETACT^DGPFAPI(PTDFN,"PRFARR"):1,1:0)
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | GETFLG(ORY,PTDFN,FLAGID) ;Return detailed flag info for flag FLAGID
 | 
|---|
| 91 |  I '$D(^TMP("ORPRF",$J,FLAGID)) Q
 | 
|---|
| 92 |  N IX,CNT
 | 
|---|
| 93 |  S (IX,CNT)=0
 | 
|---|
| 94 |  F  S IX=$O(^TMP("ORPRF",$J,FLAGID,IX)) Q:'IX  D
 | 
|---|
| 95 |  . S CNT=CNT+1,ORY(CNT)=$G(^TMP("ORPRF",$J,FLAGID,IX))
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | CLEAR(ORY) ;Clear up the temp global
 | 
|---|
| 99 |  K ^TMP("ORPRF",$J)
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|