1 | DG53659 ;EG - DG*5.3*659 Cleanup Radiation Exposure; 08/08/2006
|
---|
2 | ;;5.3;Registration;**659**;Aug 13,1993;Build 20
|
---|
3 | ;
|
---|
4 | POST ;
|
---|
5 | N U,ZTRTN,ZTDESC,ZTSAVE,ZTIO,ZTSK,ZTDTH
|
---|
6 | S U="^"
|
---|
7 | D BMES^XPDUTL("Queue-ing the job to reset Radiation Exposure Method...")
|
---|
8 | S ZTRTN="RUN^DG53659",ZTDESC="Reset Radiation Exposure Method"
|
---|
9 | S ZTIO="",ZTDTH=$$NOW^XLFDT D ^%ZTLOAD
|
---|
10 | D BMES^XPDUTL("This request queued as Task # "_$G(ZTSK))
|
---|
11 | D BMES^XPDUTL("=====================================================")
|
---|
12 | D BMES^XPDUTL("")
|
---|
13 | Q
|
---|
14 | EP ; Queue the conversion
|
---|
15 | N %
|
---|
16 | S %=$$NEWCP^XPDUTL("IEN12","RUN^DG53659(1)")
|
---|
17 | S %=$$NEWCP^XPDUTL("END","END^DG53659") ; Leave as last update
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | END ; Post-install done
|
---|
21 | D BMES^XPDUTL("Post install complete.")
|
---|
22 | Q
|
---|
23 | RUN ;entry point from taskman
|
---|
24 | I '$$CHKSTAT(1) D Q
|
---|
25 | . D BMES^XPDUTL("Conversion routine already running, process aborted")
|
---|
26 | . Q
|
---|
27 | N TESTING
|
---|
28 | S TESTING="N" K ^TMP($$NAMSPC) D QUE
|
---|
29 | Q
|
---|
30 | TEST ;entry point for test mode
|
---|
31 | N TESTING,X,STARTID,ENDID,U,NAMSPC
|
---|
32 | S NAMSPC=$$NAMSPC
|
---|
33 | S TESTING="Y",U="^"
|
---|
34 | S X=$$CHKSTAT(0)
|
---|
35 | K ^XTMP(NAMSPC,"TEST RANGE"),^XTMP(NAMSPC,"TEST")
|
---|
36 | S STARTID=$$TESTID("Starting")
|
---|
37 | S ENDID=$$TESTID("Ending")
|
---|
38 | I ENDID<STARTID U 0 W !,?10,"Ending IEN can't be less than starting IEN"
|
---|
39 | S ^XTMP(NAMSPC,"TEST RANGE")=STARTID_U_ENDID
|
---|
40 | D QUE
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | TESTID(MESS) ;
|
---|
44 | TESTIDG N X
|
---|
45 | U 0 W !!,MESS," DFN for Patient file? " R X:300
|
---|
46 | I X="" Q X
|
---|
47 | I X'?1N.N,X'?1N.N1"."1N.N W !,?10,"Must be numeric" G TESTIDG
|
---|
48 | Q X
|
---|
49 | ;
|
---|
50 | QUE ;
|
---|
51 | N ZTSTOP,X,U,NAMSPC
|
---|
52 | S U="^"
|
---|
53 | I '$D(TESTING) N TESTING S TESTING="N"
|
---|
54 | S NAMSPC=$$NAMSPC
|
---|
55 | S X=$$SETUPX(90)
|
---|
56 | S X=$G(^XTMP(NAMSPC,0,0))
|
---|
57 | S $P(X,U,6)="RUNNING"
|
---|
58 | S $P(X,U,7)=$$NOW^XLFDT
|
---|
59 | S ^XTMP(NAMSPC,0,0)=X
|
---|
60 | ;
|
---|
61 | S X=$$LOOP(NAMSPC,TESTING),ZTSTOP=$P(X,U,2)
|
---|
62 | S X=$G(^XTMP(NAMSPC,0,0))
|
---|
63 | S $P(X,U,6)=$S(ZTSTOP:"STOPPED",1:"COMPLETED")
|
---|
64 | S $P(X,U,8)=$$NOW^XLFDT
|
---|
65 | S ^XTMP(NAMSPC,0,0)=X
|
---|
66 | ;
|
---|
67 | S X=$$MAIL^DG53659M(NAMSPC,TESTING,DUZ)
|
---|
68 | K TESTING
|
---|
69 | L -^XTMP(NAMSPC)
|
---|
70 | Q
|
---|
71 | ;
|
---|
72 | SETUPX(EXPDAYS) ;
|
---|
73 | ; requires EXPDAYS - number of days to keep XTMP around
|
---|
74 | N BEGTIME,PURGDT,NAMSPC,U
|
---|
75 | S U="^"
|
---|
76 | S NAMSPC=$$NAMSPC
|
---|
77 | S BEGTIME=$$NOW^XLFDT()
|
---|
78 | S PURGDT=$$FMADD^XLFDT(BEGTIME,EXPDAYS)
|
---|
79 | S ^XTMP(NAMSPC,0)=PURGDT_U_BEGTIME
|
---|
80 | S $P(^XTMP(NAMSPC,0),U,3)="Convert Radiation Exposure Method"
|
---|
81 | Q 1
|
---|
82 | ;
|
---|
83 | LOOP(NAMSPC,TESTING) ;
|
---|
84 | ;returns 0^stop flag
|
---|
85 | N X,XREC,LASTREC,TOTREC,TOTPAT
|
---|
86 | N U,ZTSTOP,REXP
|
---|
87 | S LASTREC="",U="^",ZTSTOP=0
|
---|
88 | S TOTREC=0
|
---|
89 | I $D(^XTMP(NAMSPC,0,0)) D
|
---|
90 | . S XREC=$G(^XTMP(NAMSPC,0,0))
|
---|
91 | . ;last DFN processed
|
---|
92 | . S LASTREC=+$P(XREC,U,1)
|
---|
93 | . ;total records read
|
---|
94 | . S TOTREC=+$P(XREC,U,2)
|
---|
95 | . S TOTPAT=+$P(XREC,U,10)
|
---|
96 | . Q
|
---|
97 | D DFN
|
---|
98 | Q 0_"^"_ZTSTOP
|
---|
99 | ;
|
---|
100 | DFN N DFN,END,X
|
---|
101 | S DFN="",END=9999999999999999999999
|
---|
102 | S X=$G(^XTMP(NAMSPC,"TEST RANGE")) I $L(X) D
|
---|
103 | . S DFN=$P(X,U,1)-1,END=$P(X,U,2)
|
---|
104 | . Q
|
---|
105 | S ZTSTOP=0
|
---|
106 | F S DFN=$O(^DPT(DFN)) Q:DFN=""!ZTSTOP!(DFN?1A.E) D CHKR
|
---|
107 | Q
|
---|
108 | ;
|
---|
109 | CHKR N X,U,NEW
|
---|
110 | S U="^"
|
---|
111 | I DFN>END S ZTSTOP=2 Q
|
---|
112 | S LASTREC=DFN
|
---|
113 | S TOTREC=TOTREC+1
|
---|
114 | I (TOTREC#20)=0 S ZTSTOP=$$STOP(NAMSPC) I ZTSTOP=1 Q
|
---|
115 | S X=$$CHPAT(DFN) I $P(X,U,1)="Y" D
|
---|
116 | . S NEW=$P(X,U,2),TOTPAT=TOTPAT+1
|
---|
117 | . I TESTING="N" D
|
---|
118 | . . N DA,DIE,DR,X
|
---|
119 | . . S DA=DFN,DIE="^DPT(",DR=".3212////"_NEW
|
---|
120 | . . D ^DIE
|
---|
121 | . . Q
|
---|
122 | . Q
|
---|
123 | S X=$$UPDATEX(NAMSPC,TOTREC,LASTREC,TOTPAT)
|
---|
124 | Q
|
---|
125 | CHPAT(DFN) ;
|
---|
126 | N X,U,RET,VAL
|
---|
127 | S U="^",RET="N"
|
---|
128 | S X=$G(^DPT(DFN,.321))
|
---|
129 | S VAL=$P(X,U,12)
|
---|
130 | I VAL?1N,VAL>1,VAL<8 Q RET
|
---|
131 | I $L(VAL) D
|
---|
132 | . I $P($G(^DPT(DFN,.321)),U,3)="Y" S RET="Y^"_$S(VAL="N":2,VAL="T":3,VAL="B":4,1:3) Q
|
---|
133 | . ;if radiation exposure indicated is set to 'No', delete radiation exposure method
|
---|
134 | . S RET="Y^@"
|
---|
135 | . Q
|
---|
136 | ;bulk fill to 3 if radiation exposure method is null
|
---|
137 | ;and radiation exposure indicated is "Y"
|
---|
138 | I '$L(VAL),$P($G(^DPT(DFN,.321)),U,3)="Y" D
|
---|
139 | . S RET="Y^3"
|
---|
140 | . Q
|
---|
141 | Q RET
|
---|
142 | ;
|
---|
143 | UPDATEX(NAMSPC,TOTREC,LASTREC,TOTPAT) ;
|
---|
144 | N X,U
|
---|
145 | S U="^",X=$G(^XTMP(NAMSPC,0,0))
|
---|
146 | S $P(X,U,1)=$G(LASTREC),$P(X,U,2)=$G(TOTREC)
|
---|
147 | S $P(X,U,10)=$G(TOTPAT)
|
---|
148 | S ^XTMP(NAMSPC,0,0)=X
|
---|
149 | Q 1
|
---|
150 | STATUS ;display status of current run
|
---|
151 | N X,NAMSPC,U,OLD
|
---|
152 | S U="^"
|
---|
153 | S NAMSPC=$$NAMSPC
|
---|
154 | S X=$G(^XTMP(NAMSPC,0,0))
|
---|
155 | I X="" U 0 W !!,"Task not started!!!" Q
|
---|
156 | W !!," Current status: ",$P(X,U,6)
|
---|
157 | W !," Starting time: ",$$FMTE^XLFDT($P(X,U,7))
|
---|
158 | I $P(X,U,8) D
|
---|
159 | . W !," Ending time: ",$$FMTE^XLFDT($P(X,U,8))
|
---|
160 | . Q
|
---|
161 | W !!," Total patient records read: ",$P(X,U,2)
|
---|
162 | W !," Last patient record processed: ",$P(X,U,1)
|
---|
163 | W !," Total patient records changed: ",$P(X,U,10)
|
---|
164 | Q
|
---|
165 | ;
|
---|
166 | STOP(NAMSPC) ;
|
---|
167 | N ZSTSTOP,U,X
|
---|
168 | S U="^"
|
---|
169 | ;returns stop flag
|
---|
170 | S ZTSTOP=0
|
---|
171 | I $$S^%ZTLOAD S ZTSTOP=1
|
---|
172 | I $D(^XTMP(NAMSPC,"STOP")) S ZTSTOP=1 K ^XTMP(NAMSPC,"STOP")
|
---|
173 | I ZTSTOP D
|
---|
174 | . S X=$G(^XTMP(NAMSPC,0,0))
|
---|
175 | . S $P(X,U,6)="STOPPED",$P(X,U,7)=$$NOW^XLFDT
|
---|
176 | . S ^XTMP(NAMSPC,0,0)=X
|
---|
177 | . Q
|
---|
178 | Q ZTSTOP
|
---|
179 | CHKSTAT(POST) ;check if job is running, stopped, or complete
|
---|
180 | N NAMSPC
|
---|
181 | S NAMSPC=$$NAMSPC
|
---|
182 | L +^XTMP(NAMSPC):1
|
---|
183 | I '$T Q 0
|
---|
184 | D KILIT
|
---|
185 | Q 1
|
---|
186 | ;
|
---|
187 | ;
|
---|
188 | KILIT ;
|
---|
189 | S:'$D(NAMSPC) NAMSPC=$$NAMSPC
|
---|
190 | I 'POST K ^XTMP(NAMSPC)
|
---|
191 | Q
|
---|
192 | NAMSPC() ;
|
---|
193 | Q $T(+0)
|
---|
194 | ;
|
---|