| 1 | MAGDRA1 ;WOIFO/LB -Routine for DICOM fix ; 09/15/2004  13:34
 | 
|---|
| 2 |  ;;3.0;IMAGING;**10,11,30**;16-September-2004
 | 
|---|
| 3 |  ;; +---------------------------------------------------------------+
 | 
|---|
| 4 |  ;; | Property of the US Government.                                |
 | 
|---|
| 5 |  ;; | No permission to copy or redistribute this software is given. |
 | 
|---|
| 6 |  ;; | Use of unreleased versions of this software requires the user |
 | 
|---|
| 7 |  ;; | to execute a written test agreement with the VistA Imaging    |
 | 
|---|
| 8 |  ;; | Development Office of the Department of Veterans Affairs,     |
 | 
|---|
| 9 |  ;; | telephone (301) 734-0100.                                     |
 | 
|---|
| 10 |  ;; |                                                               |
 | 
|---|
| 11 |  ;; | The Food and Drug Administration classifies this software as  |
 | 
|---|
| 12 |  ;; | a medical device.  As such, it may not be changed in any way. |
 | 
|---|
| 13 |  ;; | Modifications to this software may result in an adulterated   |
 | 
|---|
| 14 |  ;; | medical device under 21CFR820, the use of which is considered |
 | 
|---|
| 15 |  ;; | to be a violation of US Federal Statutes.                     |
 | 
|---|
| 16 |  ;; +---------------------------------------------------------------+
 | 
|---|
| 17 |  ;;
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 | LOOP ;Loop thru ^TMP($J,"RAE1" global
 | 
|---|
| 20 |  ;MAGDFN should exist.
 | 
|---|
| 21 |  ;MAGNME,MAGSSN may exist.
 | 
|---|
| 22 |  Q:'$D(^TMP($J,"RAE1"))!('$D(MAGDFN))
 | 
|---|
| 23 |  N CCASE,CASE,CDATE,CODE,DATA,DATE,ENTRY,ENTRIES,ERR,ESTAT,INDEX
 | 
|---|
| 24 |  N LOC,MAGCASE,MAGCNI,MAGCPT,MAGDTI,MAGPIEN,MAGPRC,MAGPSET,MAGPST
 | 
|---|
| 25 |  N OUT,OLDCNI,OLDDT,OLDENTRY,PROC,PSET,PTINFO,RARPT,RADTI,RACNI,RADFN
 | 
|---|
| 26 |  N RAMELOW,RAPRTSET,REIN,STAT,X,Y
 | 
|---|
| 27 |  S (ENTRY,ENTRIES,OLDDT)=0
 | 
|---|
| 28 |  F  S ENTRY=$O(^TMP($J,"RAE1",MAGDFN,ENTRY)) Q:'ENTRY!$G(OUT)  D
 | 
|---|
| 29 |  . S DATA=^TMP($J,"RAE1",MAGDFN,ENTRY),ENTRIES=ENTRIES+1
 | 
|---|
| 30 |  . S DATE=$P(ENTRY,"-"),CDATE=9999999.9999-DATE
 | 
|---|
| 31 |  . S DATE=$TR($$FMTE^XLFDT(CDATE,"2FD")," ","0")
 | 
|---|
| 32 |  . S PROC=$P(DATA,"^"),CASE=$P(DATA,"^",2),STAT=$P(DATA,"^",6)
 | 
|---|
| 33 |  . S ESTAT=$P(STAT,"~",2),LOC=$P(DATA,"^",7)
 | 
|---|
| 34 |  . S RARPT=$P(DATA,"^",5)
 | 
|---|
| 35 |  . S RADTI=$P(ENTRY,"-"),RACNI=$P(ENTRY,"-",2),RADFN=MAGDFN
 | 
|---|
| 36 |  . S MAGCASE=$$LCASE^MAGDRA2(CDATE,CASE)
 | 
|---|
| 37 |  . ;Above radiology variables needed for EN1^RAULT20
 | 
|---|
| 38 |  . K RAMELOW,RAPRTSET
 | 
|---|
| 39 |  . D EN1^RAUTL20
 | 
|---|
| 40 |  . S (PSET,MAGPSET)=""
 | 
|---|
| 41 |  . I OLDDT'=RADTI S OLDCNI=""
 | 
|---|
| 42 |  . S PSET=$S(RAMEMLOW:"+",RAPRTSET:".",1:"")
 | 
|---|
| 43 |  . I PSET="+" S OLDCNI=RACNI
 | 
|---|
| 44 |  . I PSET=".",OLDCNI D
 | 
|---|
| 45 |  . . N OLDENTRY S OLDENTRY=$P(ENTRY,"-")_"-"_OLDCNI
 | 
|---|
| 46 |  . . I $D(^TMP($J,"RAE1",MAGDFN,OLDENTRY)) D
 | 
|---|
| 47 |  . . . S MAGCASE=$P(^TMP($J,"RAE1",MAGDFN,OLDENTRY),"^",2)
 | 
|---|
| 48 |  . . . S CDATE=$P(ENTRY,"-")
 | 
|---|
| 49 |  . . . S CDATE=9999999.9999-CDATE,RADTI=$P(OLDENTRY,"-"),RACNI=OLDCNI
 | 
|---|
| 50 |  . . . S MAGCASE=$$LCASE^MAGDRA2(CDATE,MAGCASE)
 | 
|---|
| 51 |  . . . S MAGPSET=CASE_" is part of this printset."
 | 
|---|
| 52 |  . . . Q
 | 
|---|
| 53 |  . . Q
 | 
|---|
| 54 |  . I '$D(MAGNME)!'($D(MAGSSN)) D
 | 
|---|
| 55 |  . . S PTINFO=$$PTINFO^MAGDRA2
 | 
|---|
| 56 |  . . S MAGNME=$P(PTINFO,"^"),MAGSSN=$P(PTINFO,"^",2)
 | 
|---|
| 57 |  . . Q
 | 
|---|
| 58 |  . S INDEX(ENTRIES)=PROC_"^"_$G(MAGPSET)_"^"_RADTI_"^"_RACNI_"^"_MAGCASE
 | 
|---|
| 59 |  . ; Radiology procedure^Printset^Inverse radiology date/time^Radioloty multiple^radiology case number
 | 
|---|
| 60 |  . D PRT S OLDDT=RADTI
 | 
|---|
| 61 |  . Q
 | 
|---|
| 62 |  D:'$G(OUT) SEL I +X,$D(INDEX(+X)) D SET
 | 
|---|
| 63 |  K OUT
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | PRT ;
 | 
|---|
| 66 |  S (X,Y)=0
 | 
|---|
| 67 |  I ENTRIES=1 D HEAD
 | 
|---|
| 68 |  I $Y+6>IOSL D HEAD
 | 
|---|
| 69 |  W !?1,ENTRIES,?5,PSET,?6,CASE_$$IMG^MAGDRA2(RARPT),?12,$E(PROC,1,28)
 | 
|---|
| 70 |  W ?41,DATE,?52,$E(ESTAT,1,12),?67,$E(LOC,1,12) Q:ENTRIES#15
 | 
|---|
| 71 |  D SEL
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | HEAD ;
 | 
|---|
| 74 |  W @IOF,"Patient: ",MAGNME,?50,"SSN: ",MAGSSN
 | 
|---|
| 75 |  W !!,?3,"Case #",?12,"Procedure",?41,"Exam Date",?52,"Status of"
 | 
|---|
| 76 |  W "Exam",?69,"Imaging Loc"
 | 
|---|
| 77 |  W !?3,"--------",?12,"-------------",?41,"---------"
 | 
|---|
| 78 |  W ?52,"--------------",?67,"-----------"
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 | SEL ;
 | 
|---|
| 81 |  N DIR ; -- array for FileMan prompt data
 | 
|---|
| 82 |  S DIR(0)="NAO^1:"_ENTRIES
 | 
|---|
| 83 |  S DIR("?",1)="Enter a number between 1 and "_ENTRIES
 | 
|---|
| 84 |  S DIR("?")="corresponding to a single exam you wish to select."
 | 
|---|
| 85 |  S DIR("A",1)="'i' next to a case number denotes images collected on study."
 | 
|---|
| 86 |  S DIR("A")="Select an exam: "
 | 
|---|
| 87 |  D ^DIR
 | 
|---|
| 88 |  I '$D(DTOUT),'$D(DUOUT) ; didn't time out or uparrow out
 | 
|---|
| 89 |  E  S OUT=1 Q
 | 
|---|
| 90 |  I Y,$D(INDEX(Y)) D CHECK I 'Y G SEL
 | 
|---|
| 91 |  I Y S Y=INDEX(Y) S OUT=1
 | 
|---|
| 92 |  Q
 | 
|---|
| 93 | SET ;
 | 
|---|
| 94 |  S DATA=Y K Y
 | 
|---|
| 95 |  S MAGCASE=$P(INDEX(+X),"^",5)
 | 
|---|
| 96 |  S MAGPRC=$P(INDEX(+X),"^"),MAGPIEN=$$PROC^MAGDRA2(MAGPRC)
 | 
|---|
| 97 |  S MAGDTI=$P(INDEX(+X),"^",3)
 | 
|---|
| 98 |  S MAGPST=$P(INDEX(+X),"^",2)
 | 
|---|
| 99 |  S MAGCNI=$P(INDEX(+X),"^",4)
 | 
|---|
| 100 |  D MAGDY^MAGDRA2
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 | CHECK ;
 | 
|---|
| 103 |  ;Check to see if the entry still exists.
 | 
|---|
| 104 |  N RADTI,CNI
 | 
|---|
| 105 |  Q:'MAGDFN
 | 
|---|
| 106 |  S RADTI=$P(INDEX(Y),"^",3),CNI=$P(INDEX(Y),"^",4)
 | 
|---|
| 107 |  I '$D(^RADPT(MAGDFN,"DT",RADTI,"P",CNI)) D
 | 
|---|
| 108 |  . S Y=""
 | 
|---|
| 109 |  . W !,"There is a database problem with the entry selected.",!
 | 
|---|
| 110 |  . Q
 | 
|---|
| 111 |  I $P(INDEX(Y),"^")="" D
 | 
|---|
| 112 |  . S Y=""
 | 
|---|
| 113 |  . W !,"There are no procedures for the entry selected.",!
 | 
|---|
| 114 |  Q
 | 
|---|