1 | MAGDMEDJ ;WOIFO/LB - Routine to fix failed DICOM entries ; [ 06/20/2001 08:56 ]
|
---|
2 | ;;3.0;IMAGING;;Mar 01, 2002
|
---|
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 | L ;Loop thru the entire file for entries that need processing
|
---|
20 | ;The "F" xref is set for unique Study UIDs. The entry setting this xref
|
---|
21 | ;will also have a "RLATE" node with all the Xray images associated with
|
---|
22 | ;that unique Study UID.
|
---|
23 | N ANS,CASEDATE,CASENO,COMNT1,DATA,DATA1,DATA2,DATE,FILE,FOUND,MACHID,MAGDY,MAGIEN,MAGDIMG
|
---|
24 | N MAGDIEN,MOD,MODEL,MSG,MAGPAT,MAGTYPE,MEDFILE
|
---|
25 | N NEWCAS,NEWDFN,NEWDTI,NEWDTIM,NEWMUL,NEWNME,NEWPIEN,NEWPROC,NEWSSN
|
---|
26 | N OOUT,OUT,PAT,PID,REASON,STUDYUID,JJ,ITEM
|
---|
27 | I '$D(^MAGD(2006.575,"F")) W !,"Nothing to process!" Q
|
---|
28 | S (MAGIEN,STUDYUID,OOUT,OUT)=0
|
---|
29 | F S STUDYUID=$O(^MAGD(2006.575,"F",STUDYUID)) Q:STUDYUID<1!(OOUT) D
|
---|
30 | . S MAGIEN=$O(^MAGD(2006.575,"F",STUDYUID,0)) Q:'MAGIEN
|
---|
31 | . Q:'$D(^MAGD(2006.575,MAGIEN,0))
|
---|
32 | . Q:$P($G(^MAGD(2006.575,MAGIEN,"FIXD")),"^") ;Already fixed.
|
---|
33 | . ; Only Medicine images
|
---|
34 | . S MAGTYPE=$G(^MAGD(2006.575,MAGIEN,"TYPE"))
|
---|
35 | . Q:MAGTYPE'["MED"
|
---|
36 | . ; Only Medicine images need to be fixed thru this program.
|
---|
37 | . S DATA=^MAGD(2006.575,MAGIEN,0),FILE=$P(^(0),"^")
|
---|
38 | . S DATA1=^MAGD(2006.575,MAGIEN,1) ;Case no. info
|
---|
39 | . S DATA2=^MAGD(2006.575,MAGIEN,"AMFG") ;Modality info
|
---|
40 | . S PAT=$P(DATA,"^",4),PID=$P(DATA,"^",3),REASON=$P(DATA,"^",2)
|
---|
41 | . S MOD=$P(DATA2,"^"),MODEL=$P(DATA2,"^",6)
|
---|
42 | . S CASENO=$P(DATA1,"^",2),CASEDATE=$P(DATA1,"^",3)
|
---|
43 | . S MACHID=$P(DATA1,"^",4),DATE=CASEDATE
|
---|
44 | . S COMNT1=$G(^MAGD(2006.575,MAGIEN,"ACSTXT")) ;1st line comment.
|
---|
45 | . ; Use patient information send via DICOM FILE
|
---|
46 | . S MEDFILE=$$FILE^MAGDMEDI($P(CASENO,"-"))
|
---|
47 | . D DISPLAY S ANS=$$ASK^MAGDLB1 I ANS="Q"!(ANS["^") S (OOUT,OUT)=1 Q
|
---|
48 | . I ANS="N" S OUT=1 Q
|
---|
49 | . I ANS="D" D SETDEL Q
|
---|
50 | . Q:OUT
|
---|
51 | . K MAGDY W !," Lookup patient name",!
|
---|
52 | . S MAGPAT=$$PATLK^MCARUTL2
|
---|
53 | . I 'MAGPAT D Q
|
---|
54 | . . W !,"Can not update if patient can not be identified.",$C(7)
|
---|
55 | . ; If patient name could not be determined then we can not correct.
|
---|
56 | . D PATSUB^MAGDMEDK(.MAGSUB,MAGPAT)
|
---|
57 | . Q:'$D(MAGSUB)#10 ;No subspecialties found
|
---|
58 | . ;Q:'$D(MAGMC)#10 ;No Medicine entries found
|
---|
59 | . ; Select subspecialty
|
---|
60 | . S SUB=$$DISPLAY^MAGDMEDL(.MAGSUB) I 'SUB D Q
|
---|
61 | . . W !,"No specialty selected"
|
---|
62 | . S SUB=$P(MAGSUB(SUB),"^"),SUB=$P(SUB,"(",2),SUB=$P(SUB,")",1)
|
---|
63 | . D SUB^MAGDMEDK(SUB,MAGPAT)
|
---|
64 | . I '$D(MAGMC)#10 D Q
|
---|
65 | . . W !,"No entries were found for the selected specialty."
|
---|
66 | . D LOOP^MAGDMEDL(.XX,MAGPAT,SUB,CASEDATE)
|
---|
67 | . ;S ITEM=$$DISPLAY^MAGDMEDL(.XX) I 'ITEM D
|
---|
68 | . ;. W !,"No entry selected."
|
---|
69 | . I $D(XX(0)),$P(XX(0),"^")=0 D Q:MAGDOUT
|
---|
70 | . . S MAGDOUT=0
|
---|
71 | . . W !,"No Medicine file entries found for this patient"
|
---|
72 | . . W !,"on the date/time the image was captured."
|
---|
73 | . . S FOUND=$$ASKMORE^MAGDMEDL I 'FOUND S MAGDOUT=1
|
---|
74 | . S ITEM=$$DISPLAY^MAGDMEDL(.XX) I 'ITEM D Q
|
---|
75 | . . W !,"Can not update if Medicine file entry can not be found.",$C(7)
|
---|
76 | . D NEWCASE,CHK,NEWDIS S ANS=$$ASK^MAGDLB1 I ANS="D" D SETDEL Q
|
---|
77 | . I ANS="Q"!(ANS["^") S (OOUT,OUT)=1 Q
|
---|
78 | . I ANS="N" S OUT=1 Q
|
---|
79 | . Q:OUT D UPDT
|
---|
80 | K OUT,OOUT,ANS,MAGDOUT,MAGMC,MAGSUB,SUB,XX
|
---|
81 | Q
|
---|
82 | DISPLAY ;
|
---|
83 | D DISPLAY^MAGDLB1
|
---|
84 | Q
|
---|
85 | NEWCASE ;
|
---|
86 | Q:'$D(XX(0))
|
---|
87 | Q:'$D(XX(ITEM,1))
|
---|
88 | S MAGDY=$G(XX(ITEM,1)) ;W !,MAGDY
|
---|
89 | I MAGDY="" Q
|
---|
90 | S NEWDFN=MAGPAT,NEWNME=$P(MAGDY,"^",2),NEWSSN=$P(MAGDY,"^",3)
|
---|
91 | S NEWCAS=$P(MAGDY,"^",1),NEWPROC=$P(MAGDY,"^",5),NEWDTI=$P(MAGDY,"^",4)
|
---|
92 | S NEWPIEN=$P(MAGDY,"^",6),MAGDIMG=$P(MAGDY,"^",7),MEDFILE=$P(MAGDY,"^",8)
|
---|
93 | Q
|
---|
94 | CHK ;remove any punctuation before doing comparison on SSN
|
---|
95 | ;stop on 1st check.
|
---|
96 | N OLD,I
|
---|
97 | Q:MAGDY=""
|
---|
98 | S OLD="" F I=1:1:$L(PID) I $E(PID,I)?1AN S OLD=OLD_$E(PID,I)
|
---|
99 | I NEWSSN'=OLD D Q
|
---|
100 | . S MSG="Social Security numbers do not match. Update?"
|
---|
101 | I NEWNME'=PAT D
|
---|
102 | . S MSG="Patient names do not match. Update?"
|
---|
103 | ;Finally the problem is with the case number/DICOM ID
|
---|
104 | S MSG="DICOM ID number is different. Update?"
|
---|
105 | Q
|
---|
106 | NEWDIS ;
|
---|
107 | D NEWDIS^MAGDLB1
|
---|
108 | Q
|
---|
109 | UPDT ;
|
---|
110 | ;S OUT=1 W !,"Will change the following: " D NEWDIS
|
---|
111 | W !,"Are you sure you want to CORRECT?" S %=2 D YN^DICN
|
---|
112 | I %=-1!(%=2) S OUT=1 Q
|
---|
113 | W !,"Updating the file."
|
---|
114 | S ^MAGD(2006.575,MAGIEN,"FIXD")="1^"_NEWDFN_"^"_NEWNME_"^"_NEWSSN_"^"_NEWCAS_"^"_NEWDTI_"^^^"_NEWPIEN W "."
|
---|
115 | S ^MAGD(2006.575,MAGIEN,"FIXPR")=NEWPIEN_"^"_NEWPROC_"^"_$G(MAGDIMG)_"^"_MEDFILE W "."
|
---|
116 | S MACHID=$S(MACHID="":"A",1:MACHID) ;Server ID
|
---|
117 | S ^MAGD(2006.575,"AFX",MACHID,MAGIEN)="" W "."
|
---|
118 | Q
|
---|
119 | SETDEL ;Entry to be deleted
|
---|
120 | D SETDEL^MAGDLB1
|
---|
121 | Q
|
---|
122 | ASKWHCH ;More than one patient found with same name
|
---|
123 | S MAGPAT=""
|
---|
124 | N ITEM
|
---|
125 | Q:'$D(JJ(0))
|
---|
126 | S ITEM=$$DISPLAY^MAGDMEDL(.JJ)
|
---|
127 | I ITEM S MAGPAT=$P(JJ(+ITEM,1),"^",3)
|
---|
128 | Q
|
---|