| 1 | RACMHIS ;HISC/GJC-Radiology Contrast Media History option (driver)
 | 
|---|
| 2 |  ;;5.0;Radiology/Nuclear Medicine;**45**;Mar 16, 1998
 | 
|---|
| 3 |  ;Note: new routine with the release of RA*5*45
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | EN ;begin; find all procedures with a CM audit history
 | 
|---|
| 6 |  S RADIC="^RAMIS(71,",RADIC(0)="EMQZ",RADIC("A")="Select Procedure: "
 | 
|---|
| 7 |  S RADIC("S")="I $O(^RAMIS(71,+Y,""AUD"",0))",RAUTIL="RA PROC W/CM"
 | 
|---|
| 8 |  K ^TMP($J,"RA PROC W/CM") D EN1^RASELCT(.RADIC,RAUTIL,"",1)
 | 
|---|
| 9 |  I $O(^TMP($J,"RA PROC W/CM",""))="" D  D KILL Q
 | 
|---|
| 10 |  .W !?3,"No procedures have been selected, exiting this option." Q
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | STRTDT ;Prompt for Starting Date
 | 
|---|
| 13 |  W ! K DIR S DIR(0)="DA^:"_DT_":PEA"
 | 
|---|
| 14 |  S DIR("A")="Enter the start date for the search: "
 | 
|---|
| 15 |  S DIR("?",1)="This is the date from which our search will begin."
 | 
|---|
| 16 |  S DIR("?",2)="Think of it in terms of 'FROM' and 'TO'. This date is our 'FROM'."
 | 
|---|
| 17 |  S DIR("?",3)="The starting date must not exceed: "_$$FMTE^XLFDT(DT,"1P")_"."
 | 
|---|
| 18 |  S DIR("?")="Dates associated with a time will not be accepted."
 | 
|---|
| 19 |  D ^DIR K DIR
 | 
|---|
| 20 |  I $D(DIRUT) D KILL Q
 | 
|---|
| 21 |  ;int. date/time ^ ext. date/time ^ int. date/time minus one second
 | 
|---|
| 22 |  S RASTRT=Y_"^"_Y(0)_"^"_$$FMADD^XLFDT(Y,"","","",-1)
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | ENDDT ;Prompt for Ending Date
 | 
|---|
| 25 |  W ! K DIR S DIR(0)="DA^"_$P(RASTRT,U)_":"_DT_":PEA"
 | 
|---|
| 26 |  S DIR("A")="Enter the ending date for the search: "
 | 
|---|
| 27 |  S DIR("?",1)="This is the date in which our search will end."
 | 
|---|
| 28 |  S DIR("?",2)="Think of it in terms of 'FROM' and 'TO'. This date is our 'TO'."
 | 
|---|
| 29 |  S DIR("?",3)="The ending date must not exceed: "_$$FMTE^XLFDT(DT,"1P")_"."
 | 
|---|
| 30 |  S DIR("?",4)="The ending date must not precede: "_$P(RASTRT,U,2)_"."
 | 
|---|
| 31 |  S DIR("?")="Dates associated with a time will not be accepted."
 | 
|---|
| 32 |  D ^DIR K DIR
 | 
|---|
| 33 |  I $D(DIRUT) D KILL Q
 | 
|---|
| 34 |  ;int. date/time ^ ext. date/time ^ int. date/time plus 23hrs, 59 min,
 | 
|---|
| 35 |  ;& 59 seconds
 | 
|---|
| 36 |  S RASTOP=Y_"^"_Y(0)_"^"_(Y+.235959)
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  F I="RASTRT","RASTOP","^TMP($J," S ZTSAVE(I)=""
 | 
|---|
| 39 |  K I D EN^XUTMDEVQ("START^RACMHIS","Rad/Nuc Med: Contrast Media History report",.ZTSAVE,,1)
 | 
|---|
| 40 |  I +$G(ZTSK)>0 W !!,"Task Number: "_ZTSK,!
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | KILL ;clean up symbol table
 | 
|---|
| 43 |  K DIR,DIROUT,DIRUT,DTOUT,DUOUT,POP,RADIC,RAQUIT,RASTOP,RASTRT,RAUTIL,X
 | 
|---|
| 44 |  K Y,ZTSAVE,ZTSK,^TMP($J,"RA PROC W/CM")
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | START ;main body
 | 
|---|
| 48 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 49 |  S RAHD="Contrast Media Edit History By Procedure"
 | 
|---|
| 50 |  S $P(RALINE,"-",(IOM+1))="",RAPG=0,RADT=$$FMTE^XLFDT(DT,"1P")
 | 
|---|
| 51 |  W:$E(IOST,1,2)="C-" @IOF ;clear screen
 | 
|---|
| 52 |  D HDR S RAXIT=0,RAPNME=""
 | 
|---|
| 53 |  F  S RAPNME=$O(^TMP($J,"RA PROC W/CM",RAPNME)) Q:RAPNME=""  D  Q:RAXIT
 | 
|---|
| 54 |  .S RAXIT=$$S^%ZTLOAD() S:RAXIT ZTSTOP=1 Q:RAXIT
 | 
|---|
| 55 |  .S RAY=0
 | 
|---|
| 56 |  .F  S RAY=$O(^TMP($J,"RA PROC W/CM",RAPNME,RAY)) Q:'RAY  D  Q:RAXIT
 | 
|---|
| 57 |  ..S RAXIT=$$S^%ZTLOAD() S:RAXIT ZTSTOP=1 Q:RAXIT
 | 
|---|
| 58 |  ..S RAS=$P(RASTRT,U,3)
 | 
|---|
| 59 |  ..F  S RAS=$O(^RAMIS(71,RAY,"AUD","B",RAS)) Q:'RAS!(RAS>$P(RASTOP,U,3))  D  Q:RAXIT
 | 
|---|
| 60 |  ...S RAIEN=0
 | 
|---|
| 61 |  ...F  S RAIEN=$O(^RAMIS(71,RAY,"AUD","B",RAS,RAIEN)) Q:'RAIEN  D  Q:RAXIT
 | 
|---|
| 62 |  ....;get changed date/time, CM value, & user
 | 
|---|
| 63 |  ....S RAY(0)=$G(^RAMIS(71,RAY,"AUD",RAIEN,0))
 | 
|---|
| 64 |  ....S RAADT=$$FMTE^XLFDT($P(RAY(0),U),"1P"),RACMU=$P(RAY(0),U,2)
 | 
|---|
| 65 |  ....S RAX=$S($L(RACMU):$$CONTRAST(RACMU),1:"**User deleted all contrast media data**")
 | 
|---|
| 66 |  ....S:+$P(RAY(0),U,3) RAAU=$$GET1^DIQ(200,$P(RAY(0),U,3)_",",.01)
 | 
|---|
| 67 |  ....I $Y>(IOSL-4) D EOS Q:RAXIT
 | 
|---|
| 68 |  ....W !,$E(RAPNME,1,32),?33,RAADT,?55,$E($G(RAAU),1,24)
 | 
|---|
| 69 |  ....I $Y>(IOSL-4) D EOS Q:RAXIT
 | 
|---|
| 70 |  ....;display the past CM data value or that CM data has been deleted 
 | 
|---|
| 71 |  ....S X=RAX,DIWL=3,DIWR=70,DIWF="W" D ^DIWP,^DIWW K ^UTILITY($J,"W")
 | 
|---|
| 72 |  ....Q
 | 
|---|
| 73 |  ...Q
 | 
|---|
| 74 |  ..Q
 | 
|---|
| 75 |  .Q
 | 
|---|
| 76 | EXIT ;clean up symbol table, message to user
 | 
|---|
| 77 |  ;if there are no records to print, alert user
 | 
|---|
| 78 |  W:'$D(RAY(0))#2 !,$$CJ^XLFSTR("*** No Records To Print ***",IOM)
 | 
|---|
| 79 |  K DIW,DIWF,DIWL,DIWR,DIWT,DN,I,RAADT,RAAU,RACMU,RADT,RAHD,RAI,RAIEN
 | 
|---|
| 80 |  K RALINE,RAPG,RAPNME,RAS,RAXIT,RAX,RAY,X,Y,Z
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | EOS ; end of screen dialog
 | 
|---|
| 84 |  I $E(IOST,1,2)="C-" D  Q:RAXIT
 | 
|---|
| 85 |  .K DIR,DIRUT,DTOUT,DUOUT
 | 
|---|
| 86 |  .S DIR(0)="E" D ^DIR S:$D(DIRUT) RAXIT=1
 | 
|---|
| 87 |  .K DIR,DIRUT,DTOUT,DUOUT
 | 
|---|
| 88 |  .Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  ;'falls' into HDR...
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | HDR ; print header
 | 
|---|
| 93 |  W:RAPG @IOF S RAPG=RAPG+1
 | 
|---|
| 94 |  W !,$$CJ^XLFSTR(RAHD,IOM),!,"Run Date: ",RADT,?25,"From: ",$P(RASTRT,U,2),?45,"To: ",$P(RASTOP,U,2),?68,"Page ",RAPG
 | 
|---|
| 95 |  W !,"Procedure",?34,"Date/Time Changed",?55,"User",!?2,"Contrast Media"
 | 
|---|
| 96 |  W !,$$CJ^XLFSTR(RALINE,IOM)
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 | CONTRAST(RACMU) ;Return the current CM definition for this procedure delimited
 | 
|---|
| 100 |  ;by commas.
 | 
|---|
| 101 |  ;input: RACMU=internal value of CM; multiple CM references per string
 | 
|---|
| 102 |  ;             are possible
 | 
|---|
| 103 |  ;return: the external format of CM delimited by commas
 | 
|---|
| 104 |  N RAI,RAX S RAX=""
 | 
|---|
| 105 |  F RAI=1:1:$L(RACMU) D
 | 
|---|
| 106 |  .S RAX=RAX_$$EXTERNAL^DILFD(71.0125,.01,"",$E(RACMU,RAI))_", "
 | 
|---|
| 107 |  .Q
 | 
|---|
| 108 |  Q $P(RAX,", ",1,($L(RAX,", ")-1)) ;strip off that last ", "
 | 
|---|
| 109 |  ;
 | 
|---|