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

VPRDGPF.m

Go to the documentation of this file.
  1. VPRDGPF ;SLC/MKB -- Patient Record Flags ;8/2/11 15:29
  1. ;;1.0;VIRTUAL PATIENT RECORD;;Sep 01, 2011;Build 12
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. ; External References DBIA#
  1. ; ------------------- -----
  1. ; DGPFAPI 3860
  1. ; XUAF4 2171
  1. ;
  1. ; ------------ Get data from VistA ------------
  1. ;
  1. EN(DFN,BEG,END,MAX,ID) ; -- find active flags
  1. ; [BEG,END,MAX not currently used]
  1. S DFN=+$G(DFN) Q:DFN<1 ;invalid patient
  1. N NUM,VPRF,VPRN,X,TEXT,VPRITM
  1. S NUM=$$GETACT^DGPFAPI(DFN,"VPRF")
  1. ;
  1. S VPRN=0 F S VPRN=$O(VPRF(VPRN)) Q:VPRN<1 D D:$D(VPRITM) XML(.VPRITM)
  1. . K VPRITM S X=$G(VPRF(VPRN,"FLAG"))
  1. . I $G(ID),$P(ID,"~",2)'=$P(X,U) Q
  1. . S VPRITM("id")=DFN_"~"_$P(X,U),VPRITM("name")=$P(X,U,2)
  1. . S VPRITM("approvedBy")=$G(VPRF(VPRN,"APPRVBY"))
  1. . S VPRITM("assigned")=$P($G(VPRF(VPRN,"ASSIGNDT")),U)
  1. . S VPRITM("reviewDue")=$P($G(VPRF(VPRN,"REVIEWDT")),U)
  1. . S VPRITM("type")=$P($G(VPRF(VPRN,"FLAGTYPE")),U,2)
  1. . S VPRITM("category")=$P($G(VPRF(VPRN,"CATEGORY")),U,2)
  1. . S X=$G(VPRF(VPRN,"ORIGSITE"))
  1. . S:X VPRITM("origSite")=$$STA^XUAF4(+X)_U_$P(X,U,2)
  1. . S X=$G(VPRF(VPRN,"OWNER"))
  1. . S:X VPRITM("ownSite")=$$STA^XUAF4(+X)_U_$P(X,U,2)
  1. . S X=$G(VPRF(VPRN,"TIULINK")) S:X VPRITM("document")=X
  1. . M TEXT=VPRF(VPRN,"NARR") S VPRITM("content")=$$STRING^VPRD(.TEXT)
  1. I $G(ID),'$D(VPRITM) D INACT(ID)
  1. Q
  1. ;
  1. ; ------------ Return data to middle tier ------------
  1. ;
  1. XML(FLAG) ; -- Return patient data as XML in @VPR@(n)
  1. ; as <element code='123' displayName='ABC' />
  1. N ATT,X,Y,I,ID
  1. D ADD("<flag>") S VPRTOTL=$G(VPRTOTL)+1
  1. S ATT="" F S ATT=$O(FLAG(ATT)) Q:ATT="" D D:$L(Y) ADD(Y)
  1. . S X=$G(FLAG(ATT)),Y="" Q:'$L(X)
  1. . I ATT="content" S Y="<"_ATT_" xml:space='preserve'>"_$$ESC^VPRD(X)_"</"_ATT_">" Q
  1. . I X'["^" S Y="<"_ATT_" value='"_$$ESC^VPRD(X)_"' />" Q
  1. . S Y="<"_ATT_" code='"_$P(X,U)_"' name='"_$$ESC^VPRD($P(X,U,2))_"' />"
  1. D ADD("</flag>")
  1. Q
  1. ;
  1. INACT(ID) ; -- inactivated flag
  1. D ADD("<flag id='"_ID_"' inactivated='1' />")
  1. Q
  1. ;
  1. ADD(X) ; Add a line @VPR@(n)=X
  1. S VPRI=$G(VPRI)+1
  1. S @VPR@(VPRI)=X
  1. Q