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

VPRSDAF.m

Go to the documentation of this file.
  1. VPRSDAF ;SLC/MKB -- SDA PRF/Alert utilities ;10/25/18 15:29
  1. ;;1.0;VIRTUAL PATIENT RECORD;**23,31**;Sep 01, 2011;Build 3
  1. ;;Per VHA Directive 6402, this routine should not be modified.
  1. ;
  1. ; External References DBIA#
  1. ; ------------------- -----
  1. ; ^DDE 7014
  1. ; DGPFAA 7107
  1. ; DGPFAAH 7108
  1. ; TIULQ 2693
  1. ; TIULX 3058
  1. ; TIUPP3, ^TMP("TIUPPCV") 2864
  1. ;
  1. PRFQ ; -- Patient Record Flags query
  1. ; Expects DSTRT, DSTOP, DMAX from DDEGET
  1. ; Returns DLIST(#)=assignment ien
  1. N NUM,I,IEN,VPRF
  1. S:$G(DFN) NUM=$$GETALL^DGPFAA(DFN,.VPRF,,1) Q:$G(NUM)<1
  1. S (I,IEN)=0 F S IEN=$O(VPRF(IEN)) Q:IEN<1 S I=I+1,DLIST(I)=IEN
  1. Q
  1. ;
  1. PRF1(IEN) ; -- set up one patient record flag assignment
  1. ; Returns IEN and VPRF, VPRF1H, VPRFLH arrays
  1. K VPRF,VPRF1H,VPRFLH
  1. ; convert old vptr ID to IEN
  1. I $G(IEN)["~" S IEN=$$FNDASGN^DGPFAA(+$P(IEN,"~",2),+IEN_";DGPF(26.15,")
  1. S IEN=+$G(IEN) I IEN<1 S DDEOUT=1 Q
  1. I '$$GETASGN^DGPFAA(IEN,.VPRF,1) S DDEOUT=1 Q
  1. S VPRF1H=$$GETFIRST^DGPFAAH(IEN) D:VPRF1H GETHIST^DGPFAAH(VPRF1H,.VPRF1H)
  1. S VPRFLH=$$GETLAST^DGPFAAH(IEN) D:VPRFLH GETHIST^DGPFAAH(VPRFLH,.VPRFLH)
  1. Q
  1. ;
  1. EVT ; -- DGPF PRF EVENT protocol listener
  1. N DFN,IEN
  1. S IEN=+$G(DGIEN) Q:IEN<1
  1. S DFN=+$G(DGPRF("DFN")) Q:DFN<1
  1. I $P($G(DGPRF("FLAG")),U)'?1.N1";DGPF(26.15," Q ;Cat I flags,
  1. ;I +$G(DGPRF("OWNER"))'=+$$SITE^VASITE Q ;local only
  1. D POST^VPRHS(DFN,"Alert",IEN_";26.13")
  1. Q
  1. ;
  1. ;
  1. CWQ ; -- Crisis/Warning notes (alerts) query
  1. ; Expects DSTRT, DSTOP, DMAX from DDEGET and returns DLIST(#)=ien
  1. N I,X,CNT,TIUD
  1. D:$G(DFN) ENCOVER^TIUPP3(DFN)
  1. ; ^TMP = IEN^Acronym^Category Name^Optional Subject^Date/Time^Optional Addendum
  1. ; sort by Ref D/T order to retrieve by most recent
  1. S I=0 F S I=$O(^TMP("TIUPPCV",$J,I)) Q:I<1 S X=$G(^(I)) I $P(X,U,2)="C"!($P(X,U,2)="W") S TIUD($P(X,U,5))=X
  1. Q:'$O(TIUD(0)) ;no CW's for patient
  1. S CNT=0,I=DSTOP
  1. F S I=$O(TIUD(I),-1) Q:I<1!(I<DSTRT) S CNT=CNT+1,DLIST(CNT)=+$G(TIUD(I))_"~"_$P(X,U,2) Q:CNT'<DMAX
  1. K ^TMP("TIUPPCV",$J)
  1. Q
  1. ;
  1. CW1 ; -- get info for one CW note/alert
  1. K VPRTIU S VPRTYP=$P($G(DIEN),"~",2),DIEN=+$G(DIEN)
  1. D EXTRACT^TIULQ(DIEN,"VPRTIU",,".01:.05;1201;1202;1212;1301",,1,"I")
  1. I VPRTYP="" D S:VPRTYP="" DDEOUT=1
  1. . N TTL,DAD
  1. . S TTL=+$G(VPRTIU(DIEN,.01,"I")),DAD=+$G(VPRTIU(DIEN,.04,"I"))
  1. . S VPRTYP=$S(DAD=30:"C",DAD=31:"W",$$ISA^TIULX(TTL,30):"C",$$ISA^TIULX(TTL,31):"W",1:"")
  1. Q
  1. ;
  1. CW23 ; -- ID Action for P23 entity
  1. D CW1 Q:$G(DDEOUT)
  1. N RDT S RDT=$G(VPRTIU(DIEN,1301,"I")),DNAME="Alert"
  1. I RDT<3190101 S DDEOUT=1 Q ;pre-load entries ok
  1. ; pre-17: cont w/P23 entity to fix AlertType only
  1. I RDT<3191101 Q
  1. ; re-send all since patch 17, when OpsMode may have errored
  1. S DIENTY=+$O(^DDE("B","VPR CW NOTES",0))
  1. Q
  1. ;
  1. ADQ ; -- Adv Directive query
  1. ; Expects DSTRT, DSTOP, DMAX from DDEGET and returns DLIST(#)=ien
  1. N I,AD,TIUD,CNT
  1. D:$G(DFN) ENCOVER^TIUPP3(DFN)
  1. ; ^TMP = IEN^Acronym^Category Name^Optional Subject^Date/Time^Optional Addendum
  1. ; sort by Ref D/T order to retrieve by most recent
  1. S I=0 F S I=$O(^TMP("TIUPPCV",$J,I)) Q:I<1 S AD=$G(^(I)) I $P(AD,U,2)="D" S TIUD($P(AD,U,5))=AD
  1. Q:'$O(TIUD(0)) ;no AD's for patient
  1. S CNT=0,I=DSTOP
  1. F S I=$O(TIUD(I),-1) Q:I<1!(I<DSTRT) S CNT=CNT+1,DLIST(CNT)=+$G(TIUD(I)) Q:CNT'<DMAX
  1. Q
  1. ;
  1. AD1(ID) ; -- get info for one Adv Directive
  1. K VPRTIU S ID=+$G(ID)
  1. D EXTRACT^TIULQ(+ID,"VPRTIU",,".01:.05;1201;1212;1301;1302",,,"I")
  1. S:'DFN DFN=+$G(VPRTIU(+ID,.02,"I"))
  1. Q