| 1 | MAGDRA2 ;WOIFO/LB -Routine for DICOM fix  [ 06/20/2001 08:56 ] ; 06/06/2005  09:28
 | 
|---|
| 2 |  ;;3.0;IMAGING;**10,11,51**;26-August-2005
 | 
|---|
| 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 |  ; Routine to create the MAGDY variable needed by MAGDLB1 routine when
 | 
|---|
| 20 |  ; manually correcting DICOM FIX files.
 | 
|---|
| 21 | EN ;
 | 
|---|
| 22 |  ; MAGDY variable to be created during this execution.
 | 
|---|
| 23 |  N MAGBEG,MAGEND,MAGDFN,MAGOUT,MAGX,MAGXX,INFO,MAGNME,MAGSSN
 | 
|---|
| 24 |  S MAGBEG=1070101,MAGEND=$$DT^XLFDT
 | 
|---|
| 25 | READ ;
 | 
|---|
| 26 |  S (MAGDFN,MAGX)=$$READ^MAGDRA3
 | 
|---|
| 27 |  Q:MAGX="^"
 | 
|---|
| 28 |  S MAGDFN=+MAGDFN
 | 
|---|
| 29 |  I 'MAGDFN W !,"Entry not found, enter a ""^"" to quit." G READ
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  I MAGX["~" G ONE  ;Lookup was on case number and successful
 | 
|---|
| 32 |  S MAGXX=$$FIND1^DIC(70,"","","`"_MAGDFN)   ;Radiology patient
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  I MAGDFN=MAGXX D
 | 
|---|
| 35 |  . S INFO=$$PTINFO Q:$D(MAGERR)
 | 
|---|
| 36 |  . S MAGNME=$P(INFO,"^"),MAGSSN=$P(INFO,"^",2)
 | 
|---|
| 37 |  . K ^TMP($J,"RAE1")  ;Re-established by EN1^RA07PC1 -DBIA available
 | 
|---|
| 38 |  . ; Set the beginning and ending date.
 | 
|---|
| 39 |  . D EN1^RAO7PC1(MAGDFN,MAGBEG,MAGEND,500)
 | 
|---|
| 40 |  . D:$D(^TMP($J,"RAE1")) LOOP^MAGDRA1
 | 
|---|
| 41 |  . Q
 | 
|---|
| 42 |  E  D  G:MAGX'="^" READ
 | 
|---|
| 43 |  . W !,"No Radiology information found for the supplied answer.",$C(7)
 | 
|---|
| 44 |  . Q
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | PTINFO() ;
 | 
|---|
| 48 |  N INFO,MAGOUT
 | 
|---|
| 49 |  I '$D(MAGDFN) Q ""
 | 
|---|
| 50 |  D GETS^DIQ(2,MAGDFN,".01;.09","E","MAGOUT","MAGERR")
 | 
|---|
| 51 |  I $D(MAGERR) Q ""
 | 
|---|
| 52 |  I $D(MAGOUT) D  Q INFO
 | 
|---|
| 53 |  . S INFO=$G(MAGOUT(2,MAGDFN_",",.01,"E"))
 | 
|---|
| 54 |  . S INFO=INFO_"^"_$G(MAGOUT(2,MAGDFN_",",.09,"E"))
 | 
|---|
| 55 |  . Q
 | 
|---|
| 56 |  Q ""
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | LCASE(MAGDT,MAGCASE) ;
 | 
|---|
| 59 |  Q $TR($TR($$FMTE^XLFDT(MAGDT,"2FD")," ","0"),"/","")_"-"_MAGCASE
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | IMG(MAGRPT) ;
 | 
|---|
| 62 |  N INFO,MAGOUT,MAGERR
 | 
|---|
| 63 |  I 'MAGRPT Q ""
 | 
|---|
| 64 |  D GETS^DIQ(74,MAGRPT,"2005*","I","MAGOUT","MAGERR")
 | 
|---|
| 65 |  I $D(MAGERR) Q ""
 | 
|---|
| 66 |  I $D(MAGOUT(74.02005)) Q " i"
 | 
|---|
| 67 |  Q ""
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | PROC(MAGPRC) ;
 | 
|---|
| 70 |  Q $$FIND1^DIC(71,,"XB",MAGPRC)
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | ONE ;
 | 
|---|
| 73 |  ;MAGDFN,MAGX variables expected from EN
 | 
|---|
| 74 |  I 'MAGDFN,'+MAGX Q
 | 
|---|
| 75 |  N BEG,CASE,CDATE,CS,DATA,END,FLDS,INFO,MAGCASE,MAGCNI,MAGDATE,MAGDTI
 | 
|---|
| 76 |  N MAGEXST,MAGLOC,MAGNME,MAGOUT,MAGPIEN,MAGPRC,MAGPSET,MAGPST,MAGRPT
 | 
|---|
| 77 |  N PP,PSET,RAENTRY,RAMEMLOW,RAPRTSET,RIEN,STAT,X,X1,X2,XX
 | 
|---|
| 78 |  N RARPT,RADFN,RADTI,RACNI ;<--Variables needed for EN1^RAUTL20
 | 
|---|
| 79 |  ; RAUTL20 used to retrieve if case is part of a print set.
 | 
|---|
| 80 |  S MAGDFN=$P(MAGX,"~"),INFO=$$PTINFO
 | 
|---|
| 81 |  S MAGNME=$P(INFO,"^"),MAGSSN=$P(INFO,"^",2)
 | 
|---|
| 82 |  S RIEN=$P(MAGX,"~",2)_","_$P(MAGX,"~",1)
 | 
|---|
| 83 |  S X1=9999999.9999-$P(MAGX,"~",2),X2=+2 D C^%DTC
 | 
|---|
| 84 |  S END=X,BEG=9999999.9999-$P(MAGX,"~",2)
 | 
|---|
| 85 |  K ^TMP($J,"RAE1")
 | 
|---|
| 86 |  D EN1^RAO7PC1(MAGDFN,BEG,END,20)
 | 
|---|
| 87 |  S RAENTRY=$P(MAGX,"~",2)_"-"_$P(MAGX,"~",3)
 | 
|---|
| 88 |  Q:'$D(^TMP($J,"RAE1"))
 | 
|---|
| 89 |  Q:'$D(^TMP($J,"RAE1",MAGDFN,RAENTRY))
 | 
|---|
| 90 |  S DATA=^TMP($J,"RAE1",MAGDFN,RAENTRY)
 | 
|---|
| 91 |  S MAGDATE=$P(RAENTRY,"-"),CDATE=9999999.9999-MAGDATE
 | 
|---|
| 92 |  S MAGDATE=$TR($$FMTE^XLFDT(CDATE,"2FD")," ","0")
 | 
|---|
| 93 |  S MAGPRC=$P(DATA,"^"),CASE=$P(DATA,"^",2),STAT=$P(DATA,"^",6)
 | 
|---|
| 94 |  S MAGEXST=$P(STAT,"~",2),MAGLOC=$P(DATA,"^",7)
 | 
|---|
| 95 |  S (MAGRPT,RARPT)=$P(DATA,"^",5)
 | 
|---|
| 96 |  S (MAGDTI,RADTI)=$P(RAENTRY,"-")
 | 
|---|
| 97 |  S (MAGCNI,RACNI)=$P(RAENTRY,"-",2),RADFN=MAGDFN
 | 
|---|
| 98 |  S MAGCASE=$$LCASE(CDATE,CASE),MAGPIEN=$$PROC(MAGPRC)
 | 
|---|
| 99 |  ; RADTI, RADFN, RACNI variables needed for EN1^RAULT20
 | 
|---|
| 100 |  D EN1^RAUTL20
 | 
|---|
| 101 |  S (PSET,MAGPSET)=""
 | 
|---|
| 102 |  S PSET=$S(RAMEMLOW:"+",RAPRTSET:".",1:"")
 | 
|---|
| 103 |  I PSET=".",RACNI>1 D
 | 
|---|
| 104 |  . N OLDENTRY S OLDENTRY=$P(RAENTRY,"-")_"-"
 | 
|---|
| 105 |  . S OLDENTRY=$O(^TMP($J,"RAE1",MAGDFN,OLDENTRY)) I $L(OLDENTRY) D
 | 
|---|
| 106 |  . . S MAGCASE=$P(^TMP($J,"RAE1",MAGDFN,OLDENTRY),"^",2)
 | 
|---|
| 107 |  . . S CDATE=$P(RAENTRY,"-")
 | 
|---|
| 108 |  . . S CDATE=9999999.9999-CDATE
 | 
|---|
| 109 |  . . S MAGCASE=$$LCASE^MAGDRA2(CDATE,MAGCASE),RACNI=$P(OLDENTRY,"-",2)
 | 
|---|
| 110 |  . . S MAGPST=CASE_" is part of this printset."
 | 
|---|
| 111 |  . . Q
 | 
|---|
| 112 |  . Q
 | 
|---|
| 113 |  I $D(RAPRTSET) S PP=$S(MAGCNI>1:".",MAGCNI=1:"+",1:"")
 | 
|---|
| 114 |  S MAGCNI=RACNI
 | 
|---|
| 115 |  W !,"PATIENT: ",MAGNME,?51,"SSN: ",MAGSSN
 | 
|---|
| 116 |  W !,"Case No.",?15,"Procedure",?42,"Location",?64,"Exam Date"
 | 
|---|
| 117 |  W !,"________",?15,"_________",?42,"________________",?64,"________"
 | 
|---|
| 118 |  W !,$G(PP),CASE,$$IMG(MAGRPT),?15,MAGPRC,?42,MAGLOC,?64,MAGDATE
 | 
|---|
| 119 |  W !,"Exam status: ",MAGEXST," "," ",$G(MAGPST)
 | 
|---|
| 120 |  D MAGDY
 | 
|---|
| 121 |  Q
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 | MAGDY ;
 | 
|---|
| 124 |  S MAGDY=MAGDFN_"^"_MAGNME_"^"_MAGSSN_"^"_MAGCASE_"^"_MAGPRC_"^"_MAGDTI
 | 
|---|
| 125 |  S MAGDY=MAGDY_"^"_MAGCNI_"^"_MAGPIEN_"^"_$G(MAGPST)_"^"
 | 
|---|
| 126 |  K MAGNME,MAGSSN,MAGCASE,MAGPRC,MAGDTI,MAGCNI,MAGPIEN,MAPST
 | 
|---|
| 127 |  Q
 | 
|---|