| 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 | 
|---|