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