RART2 ;HISC/GJC-Reporting Menu (Part 3) ;4/3/97 08:33
;;5.0;Radiology/Nuclear Medicine;**26,47**;Mar 16, 1998;Build 21
4 ;;Print Report By Patient
K ^TMP($J,"RAEX")
S RAF1="" ; allow the user to select a range of case #'s
S DIC(0)="AEMQ" D ^RADPA
I Y<0 D Q4 Q
S RADFN=+Y,RAHEAD="**** Patient's Exams ****",RAREPORT=1
D ^RAPTLU
I X="^" D Q4 Q
S RAGJC=0 F S RAGJC=$O(^TMP($J,"RAEX",RAGJC)) Q:RAGJC'>0 D
. I '$D(RADUP(RAGJC)) K ^TMP($J,"RAEX",RAGJC) Q
. D CHK(RAGJC) ; check all existing entries!
. Q
I '$D(^TMP($J,"RAEX")) D D Q4 Q ; quit if nothing to print
. W !?4,"There are no reports left to print!",$C(7)
. Q
K %ZIS,IOP W ! S %ZIS="QM",%ZIS("A")="Select a device: "
D ^%ZIS I POP D Q4 Q
I $D(IO("Q")) D D Q4 Q
. S ZTRTN="START^RART2",ZTSAVE("^TMP($J,""RAEX"",")=""
. S ZTDESC="Rad/Nuc Med Print Selected Reports By Patient"
. S:'$D(RADFT) ZTSAVE("RASTFL")="",RASTFL=""
. S:$D(RAOPT) ZTSAVE("RAOPT")=""
. D ^%ZTLOAD
. I +$G(ZTSK("D"))>0 W !?5,"Request Queued, Task #: ",$G(ZTSK)
. D HOME^%ZIS K IO("Q") ;restore home device parameters P26
. Q
START ; start printing the data
U IO S RAGJC=0 ; RAOOUT is defined in RARTR if abnormal exit (eos)
F S RAGJC=$O(^TMP($J,"RAEX",RAGJC)) Q:RAGJC'>0 D Q:$D(RAOOUT)
. S RAXAM=$G(^TMP($J,"RAEX",RAGJC))
. S RARPT=+$P(RAXAM,"^",10) D:RARPT PRT^RARTR
. Q
D CLOSE
Q
CLOSE ; Close the device
W ! D ^%ZISC
Q4 ; Kill & Quit
S:$D(ZTQUEUED) ZTREQ="@"
K %I,%W,%X,%XX,%Y,%YY,%ZHFN,%ZISZ,C,DFN,DIC,DIROUT,DIRUT,DIW,DIWF,DIWL
K DIWR,DIWT,DLAYGO,DTOUT,DUOUT,ER,RACATP,RACN,RACNI,RADATE,RADFN,RADFT
K RADOC,RADTE,RADTI,RADUP,RAF1,RAGJC,RAHEAD,RAI,RAMES,RANM,RANME,RANOW
K RANUM,RAOATP,RAOOUT,RAPAR,RAPOP,RAPRC,RAPTLOC,RAREDT,RAREPORT,RARPT
K RAS,RASEL,RASSN,RAST,RASTFL,RAXAM,X,X1,X2,XMAP0R,XMDISP1,XMGAPI1
;K XMLOC,XMN,XMREC,XQXFLG,XMXUSER,Y,ZTDESC,ZTRTN,ZTSAVE,ZTSK
K XMLOC,XMN,XMREC,XMXUSER,Y,ZTDESC,ZTRTN,ZTSAVE,ZTSK ;P47
K ^TMP($J,"RAEX")
K DIPGM,I,POP,RAIMGTYI,RAVERFDT,RAWHOVER,RAPRTSET,DISYS
Q
CHK(X) ; check if a valid report
; 'X' is the subscript on ^TMP($J,"RAEX")
N RACASE,RAXAM,Y S RAXAM=$G(^TMP($J,"RAEX",X))
S RACASE=$P(RAXAM,"^",8),Y=$P(RAXAM,"^",10)
I '$L(Y)!('$D(^RARPT(+Y,0))) D Q
. W !?3,*7,"No report filed for case number ",RACASE,"."
. K ^TMP($J,"RAEX",X)
. Q
I $D(RADFT),$P(^RARPT(+Y,0),"^",5)'["D" D Q
. W !?3,"Report for case number ",RACASE," is not in a 'draft' status."
. W $C(7) K ^TMP($J,"RAEX",X)
. Q
I '$D(RADFT),$P(^RARPT(+Y,0),"^",5)["D" D Q
. W !?3,"Report filed for case number ",RACASE," but not available"
. W " for printing.",$C(7)
. K ^TMP($J,"RAEX",X)
. Q
Q
RART2 ;HISC/GJC-Reporting Menu (Part 3) ;4/3/97 08:33
+1 ;;5.0;Radiology/Nuclear Medicine;**26,47**;Mar 16, 1998;Build 21
4 ;;Print Report By Patient
+1 KILL ^TMP($JOB,"RAEX")
+2 ; allow the user to select a range of case #'s
SET RAF1=""
+3 SET DIC(0)="AEMQ"
DO ^RADPA
+4 IF Y<0
DO Q4
QUIT
+5 SET RADFN=+Y
SET RAHEAD="**** Patient's Exams ****"
SET RAREPORT=1
+6 DO ^RAPTLU
+7 IF X="^"
DO Q4
QUIT
+8 SET RAGJC=0
FOR
SET RAGJC=$ORDER(^TMP($JOB,"RAEX",RAGJC))
IF RAGJC'>0
QUIT
Begin DoDot:1
+9 IF '$DATA(RADUP(RAGJC))
KILL ^TMP($JOB,"RAEX",RAGJC)
QUIT
+10 ; check all existing entries!
DO CHK(RAGJC)
+11 QUIT
End DoDot:1
+12 ; quit if nothing to print
IF '$DATA(^TMP($JOB,"RAEX"))
Begin DoDot:1
+13 WRITE !?4,"There are no reports left to print!",$CHAR(7)
+14 QUIT
End DoDot:1
DO Q4
QUIT
+15 KILL %ZIS,IOP
WRITE !
SET %ZIS="QM"
SET %ZIS("A")="Select a device: "
+16 DO ^%ZIS
IF POP
DO Q4
QUIT
+17 IF $DATA(IO("Q"))
Begin DoDot:1
+18 SET ZTRTN="START^RART2"
SET ZTSAVE("^TMP($J,""RAEX"",")=""
+19 SET ZTDESC="Rad/Nuc Med Print Selected Reports By Patient"
+20 IF '$DATA(RADFT)
SET ZTSAVE("RASTFL")=""
SET RASTFL=""
+21 IF $DATA(RAOPT)
SET ZTSAVE("RAOPT")=""
+22 DO ^%ZTLOAD
+23 IF +$GET(ZTSK("D"))>0
WRITE !?5,"Request Queued, Task #: ",$GET(ZTSK)
+24 ;restore home device parameters P26
DO HOME^%ZIS
KILL IO("Q")
+25 QUIT
End DoDot:1
DO Q4
QUIT
START ; start printing the data
+1 ; RAOOUT is defined in RARTR if abnormal exit (eos)
USE IO
SET RAGJC=0
+2 FOR
SET RAGJC=$ORDER(^TMP($JOB,"RAEX",RAGJC))
IF RAGJC'>0
QUIT
Begin DoDot:1
+3 SET RAXAM=$GET(^TMP($JOB,"RAEX",RAGJC))
+4 SET RARPT=+$PIECE(RAXAM,"^",10)
IF RARPT
DO PRT^RARTR
+5 QUIT
End DoDot:1
IF $DATA(RAOOUT)
QUIT
+6 DO CLOSE
+7 QUIT
CLOSE ; Close the device
+1 WRITE !
DO ^%ZISC
Q4 ; Kill & Quit
+1 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 KILL %I,%W,%X,%XX,%Y,%YY,%ZHFN,%ZISZ,C,DFN,DIC,DIROUT,DIRUT,DIW,DIWF,DIWL
+3 KILL DIWR,DIWT,DLAYGO,DTOUT,DUOUT,ER,RACATP,RACN,RACNI,RADATE,RADFN,RADFT
+4 KILL RADOC,RADTE,RADTI,RADUP,RAF1,RAGJC,RAHEAD,RAI,RAMES,RANM,RANME,RANOW
+5 KILL RANUM,RAOATP,RAOOUT,RAPAR,RAPOP,RAPRC,RAPTLOC,RAREDT,RAREPORT,RARPT
+6 KILL RAS,RASEL,RASSN,RAST,RASTFL,RAXAM,X,X1,X2,XMAP0R,XMDISP1,XMGAPI1
+7 ;K XMLOC,XMN,XMREC,XQXFLG,XMXUSER,Y,ZTDESC,ZTRTN,ZTSAVE,ZTSK
+8 ;P47
KILL XMLOC,XMN,XMREC,XMXUSER,Y,ZTDESC,ZTRTN,ZTSAVE,ZTSK
+9 KILL ^TMP($JOB,"RAEX")
+10 KILL DIPGM,I,POP,RAIMGTYI,RAVERFDT,RAWHOVER,RAPRTSET,DISYS
+11 QUIT
CHK(X) ; check if a valid report
+1 ; 'X' is the subscript on ^TMP($J,"RAEX")
+2 NEW RACASE,RAXAM,Y
SET RAXAM=$GET(^TMP($JOB,"RAEX",X))
+3 SET RACASE=$PIECE(RAXAM,"^",8)
SET Y=$PIECE(RAXAM,"^",10)
+4 IF '$LENGTH(Y)!('$DATA(^RARPT(+Y,0)))
Begin DoDot:1
+5 WRITE !?3,*7,"No report filed for case number ",RACASE,"."
+6 KILL ^TMP($JOB,"RAEX",X)
+7 QUIT
End DoDot:1
QUIT
+8 IF $DATA(RADFT)
IF $PIECE(^RARPT(+Y,0),"^",5)'["D"
Begin DoDot:1
+9 WRITE !?3,"Report for case number ",RACASE," is not in a 'draft' status."
+10 WRITE $CHAR(7)
KILL ^TMP($JOB,"RAEX",X)
+11 QUIT
End DoDot:1
QUIT
+12 IF '$DATA(RADFT)
IF $PIECE(^RARPT(+Y,0),"^",5)["D"
Begin DoDot:1
+13 WRITE !?3,"Report filed for case number ",RACASE," but not available"
+14 WRITE " for printing.",$CHAR(7)
+15 KILL ^TMP($JOB,"RAEX",X)
+16 QUIT
End DoDot:1
QUIT
+17 QUIT