1 | RADOSTIK ;HISC/GJC-Routine to print dosage tickets ;8/1/97 14:07
|
---|
2 | ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
|
---|
3 | ;
|
---|
4 | EN1(RADFN,RADTI,RACNI) ; the usual suspects
|
---|
5 | N I,RA1,RADTIK,RARDIO,RAY2,RAY3
|
---|
6 | S RAY2=$G(^RADPT(RADFN,"DT",RADTI,0)),RA1=0
|
---|
7 | S RAY3=$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)),RARDIO=+$P(RAY3,"^",28)
|
---|
8 | S RADTIK=+$P($G(^RA(79.1,+$P(RAY2,"^",4),0)),"^",23)
|
---|
9 | Q:'RADTIK ; no dosage ticket printer defined for this imaging location
|
---|
10 | Q:'RARDIO ; no Rpharms associated with this exam
|
---|
11 | Q:+$P(RAY3,"^",29) ; quit if dosage ticket has already been printed
|
---|
12 | N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
|
---|
13 | S ZTDESC="Rad/Nuc Med Print dosage ticket or tickets for an Exam"
|
---|
14 | S ZTDTH=$H,ZTIO=$$GET1^DIQ(3.5,RADTIK_",",.01),ZTRTN="PRINT^RADOSTIK"
|
---|
15 | F I="RADFN","RARDIO","RAY2","RAY3" S ZTSAVE(I)=""
|
---|
16 | D ^%ZTLOAD D SETFLG^RADOSTIK(RADFN,RADTI,RACNI)
|
---|
17 | Q
|
---|
18 | EN2 ; Print duplicate dosage ticket
|
---|
19 | D:'$D(RACCESS(DUZ)) SET^RAPSET1 D ^RACNLU Q:X["^"
|
---|
20 | N I,RADOSTIK,RARDIO,RAY2,RAY3
|
---|
21 | S RAY2=$G(^RADPT(RADFN,"DT",RADTI,0)),RADOSTIK=""
|
---|
22 | S RAY3=Y(0),RARDIO=+$P(RAY3,"^",28) ; RAY3 is the zero node of the exam
|
---|
23 | ; RADFN,RADTI & RACNI are all defined!
|
---|
24 | I 'RARDIO D D KILL Q
|
---|
25 | . W !!?3,"Dosage ticket data does not exist!",$C(7)
|
---|
26 | . Q
|
---|
27 | N ZTDESC,ZTRTN,ZTSAVE S ZTRTN="PRINT^RADOSTIK"
|
---|
28 | F I="RADFN","RADOSTIK","RARDIO","RAY2","RAY3" S ZTSAVE(I)=""
|
---|
29 | S ZTDESC="Rad/Nuc Med Print Duplicate Dosage Ticket option."
|
---|
30 | D ZIS^RAUTL I RAPOP D KILL Q
|
---|
31 | D PRINT,KILL
|
---|
32 | Q
|
---|
33 | PRINT ; Print out dosage ticket(s). If more than one rpharm, print one
|
---|
34 | ; dosage ticket per page.
|
---|
35 | U IO S:$D(ZTQUEUED) ZTREQ="@"
|
---|
36 | W:$D(RADOSTIK)&($E(IOST,1,2)="C-") @IOF
|
---|
37 | N RA1,RA702,RA719,RACNST,RANOTE,RAPRTDT,RATTLE,RAX,RAXIT
|
---|
38 | S (RA1,RAXIT)=0
|
---|
39 | S RATTLE="Radiopharmaceutical Dose Computation and Measurement Record"
|
---|
40 | S RAPRTDT=$$NOW^XLFDT()
|
---|
41 | S:$L($P(RAPRTDT,".",2))>4 RAPRTDT=$P(RAPRTDT,".")_"."_$E($P(RAPRTDT,".",2),1,4) ; don't display seconds in printed date
|
---|
42 | S RAPRTDT="Printed: "_$$FMTE^XLFDT(RAPRTDT,"1P"),RACNST=$L(RAPRTDT)
|
---|
43 | F S RA1=$O(^RADPTN(RARDIO,"NUC",RA1)) Q:RA1'>0 D Q:RAXIT
|
---|
44 | . K RANOTE W !,$$CJ^XLFSTR(RATTLE,IOM),!,$$CJ^XLFSTR(RAPRTDT,IOM)
|
---|
45 | . I $D(ZTQUEUED),($D(RADOSTIK)) D STOPCHK^RAUTL9 S:$G(ZTSTOP)=1 RAXIT=1
|
---|
46 | . Q:RAXIT
|
---|
47 | . W !!,"Case : ",$P(RAY3,"^")_"@"_$$FMTE^XLFDT($P(RAY2,"^"),"1P")
|
---|
48 | . W !!,"Patient : ",$$GET1^DIQ(2,RADFN_",",.01)
|
---|
49 | . W !,"Patient ID : ",$$SSN^RAUTL()
|
---|
50 | . W !,"Study : ",$E($$GET1^DIQ(71,+$P(RAY3,"^",2)_",",.01),1,50)
|
---|
51 | . S RA702=$G(^RADPTN(RARDIO,"NUC",RA1,0))
|
---|
52 | . W !!,"Radiopharmaceutical : "
|
---|
53 | . S RAX=$$GET1^DIQ(50,+$P(RA702,"^")_",",.01) S:RAX="" RANOTE=""
|
---|
54 | . W $S(RAX]"":RAX,1:"*****") K RAX
|
---|
55 | . W !,"Form : ",$$GET1^DIQ(70.21,RA1_","_RARDIO_",",15)
|
---|
56 | . D GETS^DIQ(71.9,+$P(RA702,"^",13)_",","*","","RA719")
|
---|
57 | . W !,"Lot No. : " S RAX=$G(RA719(71.9,+$P(RA702,"^",13)_",",.01))
|
---|
58 | . S:RAX="" RANOTE="" W $S(RAX]"":RAX,1:"*****") K RAX
|
---|
59 | . W !,"Kit No. : ",$G(RA719(71.9,+$P(RA702,"^",13)_",",4))
|
---|
60 | . W !,"Lot Expiration Date : " S RAX=$G(RA719(71.9,+$P(RA702,"^",13)_",",3))
|
---|
61 | . S:RAX="" RANOTE="" W $S(RAX]"":RAX,1:"*****") K RAX
|
---|
62 | . W !!,"Date/Time of Measurement: " S RAX=$$GET1^DIQ(70.21,RA1_","_RARDIO_",",5)
|
---|
63 | . S:RAX="" RANOTE="" W $S(RAX]"":RAX,1:"*****") K RAX
|
---|
64 | . W !,"Dose Prescribed : "
|
---|
65 | . I $P(RA702,"^",2)]"" W $P(RA702,"^",2)_" mCi"
|
---|
66 | . I $P(RA702,"^",2)']"",(+$O(^RAMIS(71,+$P(RAY3,"^",2),"NUC","B",$P(RA702,"^"),0))) D
|
---|
67 | .. N RA7108 S RA7108=+$O(^RAMIS(71,+$P(RAY3,"^",2),"NUC","B",$P(RA702,"^"),0))
|
---|
68 | .. S RA7108(0)=$G(^RAMIS(71,+$P(RAY3,"^",2),"NUC",RA7108,0))
|
---|
69 | .. W:$P(RA7108(0),"^",6)]"" "Low: "_$P(RA7108(0),"^",6)_" mCi "
|
---|
70 | .. W:$P(RA7108(0),"^",5)]"" "High: "_$P(RA7108(0),"^",5)_" mCi"
|
---|
71 | .. Q
|
---|
72 | . W !,"Activity Drawn : ",$S($P(RA702,"^",4)]"":$P(RA702,"^",4)_" mCi",1:"*****")
|
---|
73 | . S:$P(RA702,"^",4)="" RANOTE=""
|
---|
74 | . W !,"Dose Administered : ",$S($P(RA702,"^",7)]"":$P(RA702,"^",7)_" mCi",1:"")
|
---|
75 | . W !,"Time of Administration : ",$$GET1^DIQ(70.21,RA1_","_RARDIO_",",8)
|
---|
76 | . W !!,"Signature of Person Measuring Dose: "
|
---|
77 | . W $$REPEAT^XLFSTR("_",((IOM-3)-$X)) K RA719
|
---|
78 | . W:$D(RANOTE) !!,"NOTE: '*****' indicates that required pieces of information are missing."
|
---|
79 | . S:'$D(ZTQUEUED)&($D(RADOSTIK))&(+$O(^RADPTN(RARDIO,"NUC",RA1))) RAXIT=$$EOS^RAUTL5() Q:RAXIT
|
---|
80 | . W:+$O(^RADPTN(RARDIO,"NUC",RA1)) @IOF ; dosage ticket per page
|
---|
81 | . Q
|
---|
82 | D CLOSE^RAUTL,KILL^RADOSTIK
|
---|
83 | Q
|
---|
84 | KILL ; Kill variables
|
---|
85 | K %,%W,%Y,%Y1,C,RACN,RACNI,RADATE,RADFN,RADTE,RADTI,RANME,RAPOP,RAPRC
|
---|
86 | K RARPT,RASSN,RAST,X,Y
|
---|
87 | K DIC,DIPGM,DISYS,DUOUT,I,RAHEAD,RAI,RAMES,RAEND,RAFL,RAFST,RAHEAD,RAIX
|
---|
88 | K ^TMP($J,"RAEX")
|
---|
89 | Q
|
---|
90 | SETFLG(RADFN,RADTI,RACNI) ; Set the 'Dosage Ticket Printed?'
|
---|
91 | ; ^DD(70.03,29,0) field to 'Yes'.
|
---|
92 | ; Input: RADFN==> Patient ien RADTI==> Inverse Date/Time of Exam
|
---|
93 | ; RACNI==> ien of the examination
|
---|
94 | N RAFDA S RAFDA(70.03,RACNI_","_RADTI_","_RADFN_",",29)=1
|
---|
95 | D FILE^DIE("","RAFDA")
|
---|
96 | Q
|
---|