DGPHIST ;WASH/ERC - PURPLE HEART REQUEST HISTORY ;23 AUG 00
;;5.3;Registration;**343**,Aug 13, 19,1015**;;Build 21
;
;This report will show the Purple Heart Request history on a patient
Q
;
EN ;Entry point
N DGDFN,DGPAT,DGNAM,DGSSN
S DGDFN=$$GETDFN()
Q:DGDFN'>0
S DGPAT=$$GETPAT(DGDFN)
Q:$P(DGPAT,U)=""
S DGNAM=$P(DGPAT,U),DGSSN=$P(DGPAT,U,2)
I '$$PH(DGDFN) D Q
. W !!,"There is no Purple Heart history for patient "_$G(DGNAM)_"."
. W !
. I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR K DIR
I $$DEVICE() D START
D EXIT
Q
;
GETDFN() ;Ask the user to select patient
;
; Input: none
;
; Output: DFN
;
N DIC,X,Y
S DIC="^DPT(",DIC(0)="AEMQ"
D ^DIC
Q $S(+Y>0:+Y,1:0)
;
GETPAT(DFN) ; get patient name and ssn
;
; Input: DFN - patient IEN
;
; Output:
; Function value: patient name^SSN
;
N VADM,DGNAM,DGSSN
S (DGNAM,DGSSN)=""
I $G(DFN)>0 D
. D ^VADPT
. S DGNAM=VADM(1)
. S DGSSN=$P(VADM(2),U,2)
Q DGNAM_"^"_DGSSN
;
PH(DGDFN1) ; does patient PH history exist
;
; Input: DGDFN1 - Patient IEN
;
; Output:
; Function value: 0 - No PH Status history
; >0 - History exists
;
Q $P($G(^DPT(DGDFN1,"PH",0)),U,3)>0
;
DEVICE() ;select output device
;
; Input: none
;
; Output: Function value Interpretation
; 0 User decides to queue or not print report.
; 1 Device selected to generate report NOW.
;
N OK,IOP,POP,%ZIS
S OK=1
S %ZIS="MQ"
D ^%ZIS
S:POP OK=0
I OK,$D(IO("Q")) D
. N ZTRTN,ZTDESC,ZTSAVE,ZTSK
. S ZTRTN="START^DGPHIST"
. S ZTDESC="Current PH Status Pending/In Process report."
. S ZTSAVE("DGDFN")=""
. S ZTSAVE("DGNAM")=""
. S ZTSAVE("DGSSN")=""
. F DG1=1:1:20 D ^%ZTLOAD Q:$G(ZTSK)
. W !,$S($D(ZTSK):"Request "_ZTSK_" Queued!",1:"Request Cancelled!"),!
. D HOME^%ZIS
. S OK=0
Q OK
;
START ;
U IO
N DGSITE,DGSTNUM,DGSTN,DGSTTN,DGDTN
S DGSITE=$$SITE^VASITE
S DGSTNUM=$P(DGSITE,U,3),DGSTN=$P(DGSITE,U,2)
S DGSTTN=$$NAME^VASITE(DT)
S DGDTN=$S($G(DGSTTN)]"":DGSTTN,1:$G(DGSTN))
D DATA
D EXIT
Q
;
DATA ;Build line data and print
;
; Division name retrieved from pointer to the INSTITUTION file (#4)
; in PH DIVISION field (#.535) of PATIENT file (#2).
; DBIA: #10090 - Supported read to the INSTITUTION file with FileMan
;
N DGLINE,DGDATE,DGIND,DGSTAT,DGREM,DGUSER
N DGQUIT,DGPAGE,DGDIV
N DG1,DG2
S (DGPAGE,DGQUIT)=0
S DGDIV=$$GET1^DIQ(2,DGDFN,.535)
D HEAD
S DG1=0
F S DG1=$O(^DPT(DGDFN,"PH",DG1)) Q:DG1'>0 D
. S DGLINE(DG1)=^DPT(DGDFN,"PH",DG1,0)
S DG2=0
F S DG2=$O(DGLINE(DG2)) Q:DG2'>0 D
. D:$Y>(IOSL-4) HEAD Q:DGQUIT
. S DGDATE=$P($P(DGLINE(DG2),U),".")
. S DGDATE=$E(DGDATE,4,5)_"/"_$E(DGDATE,6,7)_"/"_$E(($E(DGDATE,1,3)+1700),3,4)
. S DGIND=$P(DGLINE(DG2),U,2)
. S DGIND=$S($G(DGIND)="Y":"Yes",$G(DGIND)="N":"No",1:"Unk")
. S DGSTAT=$P(DGLINE(DG2),U,3)
. S DGSTAT=$S($G(DGSTAT)="1":"Pending",$G(DGSTAT)="2":"In Process",$G(DGSTAT)="3":"Confirmed",1:"")
. S DGREM=$P(DGLINE(DG2),U,4)
. S DGREM=$S($G(DGREM)=1:"UNACCEPTABLE DOCUMENTATION",$G(DGREM)=2:"NO DOCUMENTATION REC'D",$G(DGREM)=3:"ENTERED IN ERROR",$G(DGREM)=4:"UNSUPPORTED PURPLE HEART",$G(DGREM)=5:"VAMC",$G(DGREM)=6:"UNDELIVERABLE MAIL",1:"")
. S DGUSER=$P(DGLINE(DG2),U,5)
. I $G(DGSTAT)["2"!($G(DGSTAT)["3") S DGUSER="HEC User"
. I $G(DGREM)]"",($G(DGREM)'["VAMC") S DGUSER="HEC User"
. W !,$G(DGDATE),?10,$G(DGIND),?15,$G(DGSTAT),?27,$G(DGREM),?55,$E($G(DGUSER),1,24)
W !!?30,"End of Report."
W !
I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR K DIR
Q
HEAD ; page header
N DGDT
I $D(ZTQUEUED),$$S^%ZTLOAD S (ZTSTOP,DGQUIT)=1 Q
I $G(DGPAGE)>0 I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR K DIR S:+Y=0 DGQUIT=1
Q:DGQUIT
W @IOF
S Y=DT X ^DD("DD") S DGDT=Y
S DGPAGE=$G(DGPAGE)+1
W !!,"PURPLE HEART REQUEST HISTORY REPORT",?48,DGDT,?70,"Page: ",$G(DGPAGE)
W !,"STATION: "_$G(DGSTN)
I DGDIV]"" W !,"DIVISION: ",DGDIV
W !,"_____________________________________________________________________________"
W !!,"Patient Name: "_$G(DGNAM),?55,"SSN: "_$G(DGSSN)
W !,"-----------------------------------------------------------------------------"
W !!,"Date",?10,"PH?",?15,"Status",?27,"Remarks",?55,"Updated By"
W !,"--------",?10,"---",?15,"----------",?27,"--------------------------",?55,"---------------"
Q
;
EXIT ;
I $D(ZTQUEUED) S ZTREQ="@"
I '$D(ZTQUEUED) D
. K %ZIS,POP
. D ^%ZISC,HOME^%ZIS
Q
DGPHIST ;WASH/ERC - PURPLE HEART REQUEST HISTORY ;23 AUG 00
+1 ;;5.3;Registration;**343**,Aug 13, 19,1015**;;Build 21
+2 ;
+3 ;This report will show the Purple Heart Request history on a patient
+4 QUIT
+5 ;
EN ;Entry point
+1 NEW DGDFN,DGPAT,DGNAM,DGSSN
+2 SET DGDFN=$$GETDFN()
+3 IF DGDFN'>0
QUIT
+4 SET DGPAT=$$GETPAT(DGDFN)
+5 IF $PIECE(DGPAT,U)=""
QUIT
+6 SET DGNAM=$PIECE(DGPAT,U)
SET DGSSN=$PIECE(DGPAT,U,2)
+7 IF '$$PH(DGDFN)
Begin DoDot:1
+8 WRITE !!,"There is no Purple Heart history for patient "_$GET(DGNAM)_"."
+9 WRITE !
+10 IF $EXTRACT(IOST,1,2)="C-"
KILL DIR
SET DIR(0)="E"
DO ^DIR
KILL DIR
End DoDot:1
QUIT
+11 IF $$DEVICE()
DO START
+12 DO EXIT
+13 QUIT
+14 ;
GETDFN() ;Ask the user to select patient
+1 ;
+2 ; Input: none
+3 ;
+4 ; Output: DFN
+5 ;
+6 NEW DIC,X,Y
+7 SET DIC="^DPT("
SET DIC(0)="AEMQ"
+8 DO ^DIC
+9 QUIT $SELECT(+Y>0:+Y,1:0)
+10 ;
GETPAT(DFN) ; get patient name and ssn
+1 ;
+2 ; Input: DFN - patient IEN
+3 ;
+4 ; Output:
+5 ; Function value: patient name^SSN
+6 ;
+7 NEW VADM,DGNAM,DGSSN
+8 SET (DGNAM,DGSSN)=""
+9 IF $GET(DFN)>0
Begin DoDot:1
+10 DO ^VADPT
+11 SET DGNAM=VADM(1)
+12 SET DGSSN=$PIECE(VADM(2),U,2)
End DoDot:1
+13 QUIT DGNAM_"^"_DGSSN
+14 ;
PH(DGDFN1) ; does patient PH history exist
+1 ;
+2 ; Input: DGDFN1 - Patient IEN
+3 ;
+4 ; Output:
+5 ; Function value: 0 - No PH Status history
+6 ; >0 - History exists
+7 ;
+8 QUIT $PIECE($GET(^DPT(DGDFN1,"PH",0)),U,3)>0
+9 ;
DEVICE() ;select output device
+1 ;
+2 ; Input: none
+3 ;
+4 ; Output: Function value Interpretation
+5 ; 0 User decides to queue or not print report.
+6 ; 1 Device selected to generate report NOW.
+7 ;
+8 NEW OK,IOP,POP,%ZIS
+9 SET OK=1
+10 SET %ZIS="MQ"
+11 DO ^%ZIS
+12 IF POP
SET OK=0
+13 IF OK
IF $DATA(IO("Q"))
Begin DoDot:1
+14 NEW ZTRTN,ZTDESC,ZTSAVE,ZTSK
+15 SET ZTRTN="START^DGPHIST"
+16 SET ZTDESC="Current PH Status Pending/In Process report."
+17 SET ZTSAVE("DGDFN")=""
+18 SET ZTSAVE("DGNAM")=""
+19 SET ZTSAVE("DGSSN")=""
+20 FOR DG1=1:1:20
DO ^%ZTLOAD
IF $GET(ZTSK)
QUIT
+21 WRITE !,$SELECT($DATA(ZTSK):"Request "_ZTSK_" Queued!",1:"Request Cancelled!"),!
+22 DO HOME^%ZIS
+23 SET OK=0
End DoDot:1
+24 QUIT OK
+25 ;
START ;
+1 USE IO
+2 NEW DGSITE,DGSTNUM,DGSTN,DGSTTN,DGDTN
+3 SET DGSITE=$$SITE^VASITE
+4 SET DGSTNUM=$PIECE(DGSITE,U,3)
SET DGSTN=$PIECE(DGSITE,U,2)
+5 SET DGSTTN=$$NAME^VASITE(DT)
+6 SET DGDTN=$SELECT($GET(DGSTTN)]"":DGSTTN,1:$GET(DGSTN))
+7 DO DATA
+8 DO EXIT
+9 QUIT
+10 ;
DATA ;Build line data and print
+1 ;
+2 ; Division name retrieved from pointer to the INSTITUTION file (#4)
+3 ; in PH DIVISION field (#.535) of PATIENT file (#2).
+4 ; DBIA: #10090 - Supported read to the INSTITUTION file with FileMan
+5 ;
+6 NEW DGLINE,DGDATE,DGIND,DGSTAT,DGREM,DGUSER
+7 NEW DGQUIT,DGPAGE,DGDIV
+8 NEW DG1,DG2
+9 SET (DGPAGE,DGQUIT)=0
+10 SET DGDIV=$$GET1^DIQ(2,DGDFN,.535)
+11 DO HEAD
+12 SET DG1=0
+13 FOR
SET DG1=$ORDER(^DPT(DGDFN,"PH",DG1))
IF DG1'>0
QUIT
Begin DoDot:1
+14 SET DGLINE(DG1)=^DPT(DGDFN,"PH",DG1,0)
End DoDot:1
+15 SET DG2=0
+16 FOR
SET DG2=$ORDER(DGLINE(DG2))
IF DG2'>0
QUIT
Begin DoDot:1
+17 IF $Y>(IOSL-4)
DO HEAD
IF DGQUIT
QUIT
+18 SET DGDATE=$PIECE($PIECE(DGLINE(DG2),U),".")
+19 SET DGDATE=$EXTRACT(DGDATE,4,5)_"/"_$EXTRACT(DGDATE,6,7)_"/"_$EXTRACT(($EXTRACT(DGDATE,1,3)+1700),3,4)
+20 SET DGIND=$PIECE(DGLINE(DG2),U,2)
+21 SET DGIND=$SELECT($GET(DGIND)="Y":"Yes",$GET(DGIND)="N":"No",1:"Unk")
+22 SET DGSTAT=$PIECE(DGLINE(DG2),U,3)
+23 SET DGSTAT=$SELECT($GET(DGSTAT)="1":"Pending",$GET(DGSTAT)="2":"In Process",$GET(DGSTAT)="3":"Confirmed",1:"")
+24 SET DGREM=$PIECE(DGLINE(DG2),U,4)
+25 SET DGREM=$SELECT($GET(DGREM)=1:"UNACCEPTABLE DOCUMENTATION",$GET(DGREM)=2:"NO DOCUMENTATION REC'D",$GET(DGREM)=3:"ENTERED IN ERROR",$GET(DGREM)=4:"UNSUPPORTED PURPLE HEART",$GET(DGREM)=5:"VAMC",$GET(DGREM)=6:"UNDELIVERABLE MAIL",1:"")
+26 SET DGUSER=$PIECE(DGLINE(DG2),U,5)
+27 IF $GET(DGSTAT)["2"!($GET(DGSTAT)["3")
SET DGUSER="HEC User"
+28 IF $GET(DGREM)]""
IF ($GET(DGREM)'["VAMC")
SET DGUSER="HEC User"
+29 WRITE !,$GET(DGDATE),?10,$GET(DGIND),?15,$GET(DGSTAT),?27,$GET(DGREM),?55,$EXTRACT($GET(DGUSER),1,24)
End DoDot:1
+30 WRITE !!?30,"End of Report."
+31 WRITE !
+32 IF $EXTRACT(IOST,1,2)="C-"
KILL DIR
SET DIR(0)="E"
DO ^DIR
KILL DIR
+33 QUIT
HEAD ; page header
+1 NEW DGDT
+2 IF $DATA(ZTQUEUED)
IF $$S^%ZTLOAD
SET (ZTSTOP,DGQUIT)=1
QUIT
+3 IF $GET(DGPAGE)>0
IF $EXTRACT(IOST,1,2)="C-"
KILL DIR
SET DIR(0)="E"
DO ^DIR
KILL DIR
IF +Y=0
SET DGQUIT=1
+4 IF DGQUIT
QUIT
+5 WRITE @IOF
+6 SET Y=DT
XECUTE ^DD("DD")
SET DGDT=Y
+7 SET DGPAGE=$GET(DGPAGE)+1
+8 WRITE !!,"PURPLE HEART REQUEST HISTORY REPORT",?48,DGDT,?70,"Page: ",$GET(DGPAGE)
+9 WRITE !,"STATION: "_$GET(DGSTN)
+10 IF DGDIV]""
WRITE !,"DIVISION: ",DGDIV
+11 WRITE !,"_____________________________________________________________________________"
+12 WRITE !!,"Patient Name: "_$GET(DGNAM),?55,"SSN: "_$GET(DGSSN)
+13 WRITE !,"-----------------------------------------------------------------------------"
+14 WRITE !!,"Date",?10,"PH?",?15,"Status",?27,"Remarks",?55,"Updated By"
+15 WRITE !,"--------",?10,"---",?15,"----------",?27,"--------------------------",?55,"---------------"
+16 QUIT
+17 ;
EXIT ;
+1 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 IF '$DATA(ZTQUEUED)
Begin DoDot:1
+3 KILL %ZIS,POP
+4 DO ^%ZISC
DO HOME^%ZIS
End DoDot:1
+5 QUIT