Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/RADIOLOGY_NUCLEAR_MEDICINE-RA/RADOSTIK.m

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