1 | XUMF4 ;OIFO-OAK/RAM - Institution File Clean Up; 06/28/00
|
---|
2 | ;;8.0;KERNEL;**206,209,212,261**;Jul 10, 1995
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | EN ; -- entry point
|
---|
6 | ;
|
---|
7 | K ^TMP("XUMF ARRAY",$J)
|
---|
8 | ;
|
---|
9 | N PARAM,XUMFLAG,ERROR,TEST,ERR
|
---|
10 | ;
|
---|
11 | S (ERROR,XUMFLAG,TEST)=0
|
---|
12 | ;
|
---|
13 | I $P($$PARAM^HLCS2,U,3)="T" S TEST=1
|
---|
14 | ;
|
---|
15 | L +^TMP("XUMF ARRAY",$J):0 D:'$T
|
---|
16 | .S ERROR="1^another process is using the Master File Server"
|
---|
17 | ;
|
---|
18 | I ERROR D EXIT1 Q
|
---|
19 | ;
|
---|
20 | I '$D(^TMP("XUMF ARRAY",$J)) D
|
---|
21 | .W !!,"...connecting with master file server..."
|
---|
22 | .D MFS0
|
---|
23 | ;
|
---|
24 | I ERROR D EXIT1 Q
|
---|
25 | ;
|
---|
26 | I '$D(^TMP("XUMF ARRAY",$J)) D D EXIT1 Q
|
---|
27 | .S ERROR="1^Connection to master file server failed!"
|
---|
28 | ;
|
---|
29 | D FTCLEAN^XUMF4A I ERROR D EXIT1 Q
|
---|
30 | ;
|
---|
31 | K ^TMP("XUMF ARRAY",$J),^TMP("XUMF MFS",$J)
|
---|
32 | ;
|
---|
33 | W !!,"...connecting with master file server..."
|
---|
34 | D MFS1
|
---|
35 | ;
|
---|
36 | I ERROR D EXIT1 Q
|
---|
37 | ;
|
---|
38 | I '$D(^TMP("XUMF ARRAY",$J)) D Q
|
---|
39 | .S ERROR="1^Connection to master file server failed!"
|
---|
40 | .D EXIT1
|
---|
41 | ;
|
---|
42 | D EN^VALM("XUMF NAME")
|
---|
43 | ;
|
---|
44 | D EXIT1
|
---|
45 | ;
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | RDSN ; - resolve duplicate station number
|
---|
49 | ;
|
---|
50 | I '$O(@VALMAR@("INDEX",0)) D Q
|
---|
51 | .W !!,"No duplicates to select from!",!
|
---|
52 | .S VALMBCK="R" H 2
|
---|
53 | ;
|
---|
54 | N ENTRY,VALMY,DA,DR,DIE,STA,MERGED,FROM
|
---|
55 | ;
|
---|
56 | D EN^VALM2(XQORNOD(0),"OS")
|
---|
57 | Q:'$D(VALMY) Q:'$D(VALMAR)
|
---|
58 | ;
|
---|
59 | S DA=@VALMAR@("INDEX",+$O(VALMY(0)))
|
---|
60 | S DR="99///@",DIE=4
|
---|
61 | I DA D
|
---|
62 | .I $O(^HLCS(870,"C",DA,0)) D Q
|
---|
63 | ..W !!?20,"Pointed to by HL7 Logical Link"
|
---|
64 | ..W !?22,"*select other entry*",!!
|
---|
65 | .D ^DIE
|
---|
66 | ;
|
---|
67 | D @($E($P(VALMAR,"XUMF ",2),1,4)_"^XUMF4")
|
---|
68 | S VALMBCK="R"
|
---|
69 | ;
|
---|
70 | Q
|
---|
71 | ;
|
---|
72 | ;
|
---|
73 | DSTA ; -- duplicate station #s
|
---|
74 | ;
|
---|
75 | K ^TMP("XUMF DSTA",$J),^TMP("XUMF TMP",$J)
|
---|
76 | ;
|
---|
77 | I 'XUMFLAG D LOCAL
|
---|
78 | ;
|
---|
79 | S STA="",IEN=0
|
---|
80 | F S STA=$O(^DIC(4,"D",STA)) Q:STA="" D
|
---|
81 | .F S IEN=$O(^DIC(4,"D",STA,IEN)) Q:'IEN D
|
---|
82 | ..Q:'$D(^TMP("XUMF ARRAY",$J,STA))
|
---|
83 | ..S ^TMP("XUMF TMP",$J,STA,IEN)=$P(^DIC(4,IEN,0),U)
|
---|
84 | ;
|
---|
85 | S STA="",(VALMCNT,IEN)=0
|
---|
86 | F S STA=$O(^TMP("XUMF TMP",$J,STA)) Q:STA="" D
|
---|
87 | .Q:'$O(^TMP("XUMF TMP",$J,STA,+$O(^TMP("XUMF TMP",$J,STA,0))))
|
---|
88 | .F S IEN=$O(^TMP("XUMF TMP",$J,STA,IEN)) Q:'IEN D
|
---|
89 | ..S VALMCNT=VALMCNT+1
|
---|
90 | ..S VAR="",NAME=$P(^TMP("XUMF TMP",$J,STA,IEN),U)
|
---|
91 | ..S VAR=$$SETFLD^VALM1(VALMCNT,VAR,"ENTRY NUMBER")
|
---|
92 | ..S VAR=$$SETFLD^VALM1(STA,VAR,"STATION NUMBER")
|
---|
93 | ..S VAR=$$SETFLD^VALM1(NAME,VAR,"INSTITUTION NAME")
|
---|
94 | ..S VAR=$$SETFLD^VALM1(IEN,VAR,"IEN")
|
---|
95 | ..D SET^VALM10(VALMCNT,VAR,VALMCNT)
|
---|
96 | ..S @VALMAR@("INDEX",VALMCNT)=IEN
|
---|
97 | ;
|
---|
98 | D:'VALMCNT
|
---|
99 | .S VAR="",VAR=$$SETFLD^VALM1("***No duplicates***",VAR,"INSTITUTION NAME")
|
---|
100 | .S VALMCNT=1
|
---|
101 | .D SET^VALM10(VALMCNT,VAR,VALMCNT)
|
---|
102 | ;
|
---|
103 | K ^TMP("XUMF TMP",$J)
|
---|
104 | ;
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | LOCAL ; -- auto-delete local/duplicate station numbers
|
---|
108 | ;
|
---|
109 | W !!,"This action will auto-delete local/duplicate station numbers."
|
---|
110 | N Y S DIR(0)="Y",DIR("B")="YES" W !
|
---|
111 | S DIR("A")="Do you wish to proceed"
|
---|
112 | D ^DIR K DIR I 'Y Q
|
---|
113 | ;
|
---|
114 | S XUMFLAG=1
|
---|
115 | D DXRF
|
---|
116 | ;
|
---|
117 | N IEN,STA,STANUM,VAR,NAME,FLAG,CNT
|
---|
118 | ;
|
---|
119 | S STA="",(IEN,CNT)=0
|
---|
120 | F S STA=$O(^DIC(4,"D",STA)) Q:STA="" D
|
---|
121 | .Q:'$O(^DIC(4,"D",STA,+$O(^DIC(4,"D",STA,0))))
|
---|
122 | .S FLAG=0
|
---|
123 | .F S IEN=$O(^DIC(4,"D",STA,IEN)) Q:'IEN D
|
---|
124 | ..S:$O(^HLCS(870,"C",IEN,0)) FLAG=1
|
---|
125 | .Q:'FLAG
|
---|
126 | .F S IEN=$O(^DIC(4,"D",STA,IEN)) Q:'IEN D
|
---|
127 | ..Q:$O(^HLCS(870,"C",IEN,0))
|
---|
128 | ..W !?5,"deleting duplicate station number ",STA," from IEN: ",IEN
|
---|
129 | ..H 1
|
---|
130 | ..S DR="99///@",DIE=4,DA=IEN,CNT=CNT+1
|
---|
131 | ..N IEN,STA,FLAG D ^DIE
|
---|
132 | I CNT D EOP S CNT=0
|
---|
133 | ;
|
---|
134 | S STA="",IEN=0
|
---|
135 | F S STA=$O(^DIC(4,"D",STA)) Q:STA="" D
|
---|
136 | .Q:$D(^TMP("XUMF ARRAY",$J,STA))
|
---|
137 | .Q:'$D(^TMP("XUMF ARRAY",$J))
|
---|
138 | .F S IEN=$O(^DIC(4,"D",STA,IEN)) Q:'IEN D
|
---|
139 | ..S DR="99///@",DIE=4,DA=IEN,CNT=CNT+1
|
---|
140 | ..W !?5,"deleting local station number ",STA," from IEN: ",IEN
|
---|
141 | ..H 1
|
---|
142 | ..N IEN,STA D ^DIE
|
---|
143 | I CNT D EOP S CNT=0
|
---|
144 | ;
|
---|
145 | Q
|
---|
146 | ;
|
---|
147 | ;
|
---|
148 | DXRF ; -- re-index "D" cross-reference
|
---|
149 | ;
|
---|
150 | N DIK
|
---|
151 | ;
|
---|
152 | K ^DIC(4,"D")
|
---|
153 | ;
|
---|
154 | S DIK="^DIC(4,",DIK(1)="99^D" D ENALL^DIK
|
---|
155 | ;
|
---|
156 | Q
|
---|
157 | ;
|
---|
158 | ;
|
---|
159 | LLCL ; -- local data
|
---|
160 | ;
|
---|
161 | K ^TMP("XUMF LLCL",$J)
|
---|
162 | ;
|
---|
163 | N STA,IEN,STANUM,VAR,NAME,FTYP
|
---|
164 | ;
|
---|
165 | S STA="",VALMCNT=0
|
---|
166 | F S STA=$O(^DIC(4,"D",STA)) Q:STA="" D
|
---|
167 | .S IEN=$O(^DIC(4,"D",STA,0))
|
---|
168 | .S FTYP=$P($G(^DIC(4.1,+$G(^DIC(4,+IEN,3)),0)),U)
|
---|
169 | .Q:$D(^TMP("XUMF ARRAY",$J,STA))
|
---|
170 | .S VALMCNT=VALMCNT+1
|
---|
171 | .S VAR="",NAME=$P(^DIC(4,IEN,0),U)
|
---|
172 | .S VAR=$$SETFLD^VALM1(STA,VAR,"STATION NUMBER")
|
---|
173 | .S VAR=$$SETFLD^VALM1(NAME,VAR,"INSTITUTION NAME")
|
---|
174 | .S VAR=$$SETFLD^VALM1(IEN,VAR,"IEN")
|
---|
175 | .S VAR=$$SETFLD^VALM1(FTYP,VAR,"FACILITY TYPE")
|
---|
176 | .D SET^VALM10(VALMCNT,VAR,VALMCNT)
|
---|
177 | .S @VALMAR@("INDEX",VALMCNT)=IEN
|
---|
178 | ;
|
---|
179 | D:'VALMCNT
|
---|
180 | .S VAR="",VAR=$$SETFLD^VALM1("***None found***",VAR,"INSTITUTION NAME")
|
---|
181 | .D SET^VALM10(1,VAR,1)
|
---|
182 | ;
|
---|
183 | Q
|
---|
184 | ;
|
---|
185 | ;
|
---|
186 | NATL ; -- national data to merge
|
---|
187 | ;
|
---|
188 | K ^TMP("XUMF NATL",$J)
|
---|
189 | ;
|
---|
190 | N STA,VAR,NAME,TYPE,STATE
|
---|
191 | ;
|
---|
192 | S STA="",VALMCNT=0
|
---|
193 | F S STA=$O(^TMP("XUMF ARRAY",$J,STA)) Q:STA="" D
|
---|
194 | .Q:$D(^DIC(4,"D",STA))
|
---|
195 | .S VALMCNT=VALMCNT+1
|
---|
196 | .S VAR="",NAME=$P(^TMP("XUMF ARRAY",$J,STA),U,2)
|
---|
197 | .S TYPE=$P($P(^TMP("XUMF ARRAY",$J,STA),U,5),"~")
|
---|
198 | .S STATE=$P(^TMP("XUMF ARRAY",$J,STA),U,8)
|
---|
199 | .S VAR=$$SETFLD^VALM1(STA,VAR,"STATION NUMBER")
|
---|
200 | .S VAR=$$SETFLD^VALM1(NAME,VAR,"NATIONAL NAME")
|
---|
201 | .S VAR=$$SETFLD^VALM1(STATE,VAR,"STATE")
|
---|
202 | .S VAR=$$SETFLD^VALM1(TYPE,VAR,"TYPE")
|
---|
203 | .D SET^VALM10(VALMCNT,VAR,VALMCNT)
|
---|
204 | ;
|
---|
205 | D:'VALMCNT
|
---|
206 | .S VAR="",VAR=$$SETFLD^VALM1("***None found***",VAR,"NATIONAL NAME")
|
---|
207 | .D SET^VALM10(1,VAR,1)
|
---|
208 | ;
|
---|
209 | Q
|
---|
210 | ;
|
---|
211 | ;
|
---|
212 | NAME ; -- compare INSTITUTION name vs national name
|
---|
213 | ;
|
---|
214 | K ^TMP("XUMF NAME",$J),^TMP("XUMF TABLE",$J)
|
---|
215 | ;
|
---|
216 | N STA,IEN,NAME,GOLD,NAME,VAR,ARRAY
|
---|
217 | ;
|
---|
218 | D DXRF
|
---|
219 | ;
|
---|
220 | S STA="",(IEN,VALMCNT)=0
|
---|
221 | F S STA=$O(^DIC(4,"D",STA)) Q:STA="" D
|
---|
222 | .S IEN=$O(^DIC(4,"D",STA,0))
|
---|
223 | .S GOLD=$P($G(^TMP("XUMF ARRAY",$J,STA)),U,2)
|
---|
224 | .S NAME=$P(^DIC(4,IEN,0),U)
|
---|
225 | .S ^TMP("XUMF TABLE",$J,STA,IEN)=NAME_U_GOLD
|
---|
226 | ;
|
---|
227 | F S STA=$O(^TMP("XUMF ARRAY",$J,STA)) Q:STA="" D
|
---|
228 | .Q:$D(^TMP("XUMF TABLE",$J,STA))
|
---|
229 | .S NAME=$P(^TMP("XUMF ARRAY",$J,STA),U,2)
|
---|
230 | .S ^TMP("XUMF TABLE",$J,STA,9999)="^"_NAME
|
---|
231 | ;
|
---|
232 | S (IEN,VALMCNT)=0
|
---|
233 | F S STA=$O(^TMP("XUMF TABLE",$J,STA)) Q:STA="" D
|
---|
234 | .F S IEN=$O(^TMP("XUMF TABLE",$J,STA,IEN)) Q:'IEN D
|
---|
235 | ..S GOLD=$P(^TMP("XUMF TABLE",$J,STA,IEN),U,2)
|
---|
236 | ..S NAME=$P(^TMP("XUMF TABLE",$J,STA,IEN),U)
|
---|
237 | ..S VALMCNT=VALMCNT+1,VAR=""
|
---|
238 | ..S VAR=$$SETFLD^VALM1(STA,VAR,"STATION NUMBER")
|
---|
239 | ..S VAR=$$SETFLD^VALM1(NAME,VAR,"INSTITUTION NAME")
|
---|
240 | ..S VAR=$$SETFLD^VALM1(GOLD,VAR,"GOLD NAME")
|
---|
241 | ..D SET^VALM10(VALMCNT,VAR,VALMCNT)
|
---|
242 | ;
|
---|
243 | D:'VALMCNT
|
---|
244 | .S VAR="",VAR=$$SETFLD^VALM1("***None found***",VAR,"INSTITUTION NAME")
|
---|
245 | .D SET^VALM10(1,VAR,1)
|
---|
246 | ;
|
---|
247 | K ^TMP("XUMF TABLE",$J)
|
---|
248 | ;
|
---|
249 | Q
|
---|
250 | ;
|
---|
251 | ;
|
---|
252 | MFS0 ; -- get national facility type file from Master File Server
|
---|
253 | ;
|
---|
254 | D FACTYP^XUMF4A
|
---|
255 | D STATE^XUMF4A
|
---|
256 | ;
|
---|
257 | S PARAM("LLNK")="XUMF MFR^XUMF "_$S('TEST:"FORUM",1:"TEST")
|
---|
258 | S PARAM("PROTOCOL")=$O(^ORD(101,"B","XUMF MFQ",0))
|
---|
259 | ;
|
---|
260 | W !!,"...getting FACILITY TYPE file..."
|
---|
261 | D MAIN^XUMFP(4.1,"ALL",7,.PARAM,.ERROR) Q:ERROR
|
---|
262 | D MAIN^XUMFI(4.1,"ALL",7,.PARAM,.ERROR) Q:ERROR
|
---|
263 | D MAIN^XUMFH
|
---|
264 | ;
|
---|
265 | Q
|
---|
266 | ;
|
---|
267 | MFS1 ; -- get national facility type file from Master File Server
|
---|
268 | ;
|
---|
269 | S PARAM("LLNK")="XUMF MFR^XUMF "_$S('TEST:"FORUM",1:"TEST")
|
---|
270 | S PARAM("PROTOCOL")=$O(^ORD(101,"B","XUMF MFQ",0))
|
---|
271 | ;
|
---|
272 | W !!,"...getting INSTITUTION file..."
|
---|
273 | W !,"...please wait...(approx. 5 minutes)..."
|
---|
274 | D MAIN^XUMFP(4,"ALL",7,.PARAM,.ERROR) Q:ERROR
|
---|
275 | D MAIN^XUMFI(4,"ALL",7,.PARAM,.ERROR) Q:ERROR
|
---|
276 | D MAIN^XUMFH
|
---|
277 | ;
|
---|
278 | Q
|
---|
279 | ;
|
---|
280 | EXIT ; -- cleanup and quit
|
---|
281 | ;
|
---|
282 | K:$D(VALMAR) @VALMAR
|
---|
283 | ;
|
---|
284 | Q
|
---|
285 | ;
|
---|
286 | EXIT1 ;
|
---|
287 | ;
|
---|
288 | K ^TMP("XUMF ARRAY",$J),^TMP("XUMF MFS",$J)
|
---|
289 | K ^TMP("DIERR",$J)
|
---|
290 | ;
|
---|
291 | L -^TMP("XUMF ARRAY",$J)
|
---|
292 | ;
|
---|
293 | I ERROR D
|
---|
294 | .N XMY S XMY("G.XUMF INSTITUTION")=""
|
---|
295 | .D EM^XUMFH(ERROR,.ERR,"IFR CLEANUP",.XMY)
|
---|
296 | .W !!,ERROR,!,$G(ERR),!
|
---|
297 | ;
|
---|
298 | Q
|
---|
299 | ;
|
---|
300 | EOP ; -- End-of-Page
|
---|
301 | ;
|
---|
302 | S DIR(0)="E"
|
---|
303 | D ^DIR,CLEAR^VALM1
|
---|
304 | S VALMBCK="R"
|
---|
305 | ;
|
---|
306 | Q
|
---|
307 | ;
|
---|