source: qrda/C0Q/trunk/kids/C0Q_PAT6_DRAFT.KID@ 1580

Last change on this file since 1580 was 1580, checked in by Sam Habiel, 12 years ago

Draft patch 6

File size: 45.7 KB
Line 
1KIDS Distribution saved on Oct 22, 2012@17:41:17
2FRDGHJKLFGHJKL
3**KIDS**:C0Q*1.0*6^
4
5**INSTALL NAME**
6C0Q*1.0*6
7"BLD",7920,0)
8C0Q*1.0*6^QUALITY MEASURES^0^3121022^y
9"BLD",7920,1,0)
10^^6^6^3121022^
11"BLD",7920,1,1,0)
12Created by Sam Habiel on 22nd of October, 2012 CE.
13"BLD",7920,1,2,0)
14
15"BLD",7920,1,3,0)
16Adds support for using "Model" Quality and Performance Measure Sets,
17"BLD",7920,1,4,0)
18which will get copied by the software for making a new measure set.
19"BLD",7920,1,5,0)
20
21"BLD",7920,1,6,0)
22Rest of documentation todo.
23"BLD",7920,4,0)
24^9.64PA^1130580001.401^1
25"BLD",7920,4,1130580001.401,0)
261130580001.401
27"BLD",7920,4,1130580001.401,2,0)
28^9.641^1130580001.401^1
29"BLD",7920,4,1130580001.401,2,1130580001.401,0)
30C0Q PARAMETER (File-top level)
31"BLD",7920,4,1130580001.401,2,1130580001.401,1,0)
32^9.6411^6.2^2
33"BLD",7920,4,1130580001.401,2,1130580001.401,1,6.1,0)
34MODEL PERFORMANCE MEASURE SET
35"BLD",7920,4,1130580001.401,2,1130580001.401,1,6.2,0)
36MODEL QUALITY MEASURE SET
37"BLD",7920,4,1130580001.401,222)
38y^n^p^^^^n^^n
39"BLD",7920,4,1130580001.401,224)
40
41"BLD",7920,4,"APDD",1130580001.401,1130580001.401)
42
43"BLD",7920,4,"APDD",1130580001.401,1130580001.401,6.1)
44
45"BLD",7920,4,"APDD",1130580001.401,1130580001.401,6.2)
46
47"BLD",7920,4,"B",1130580001.401,1130580001.401)
48
49"BLD",7920,6.3)
501
51"BLD",7920,"KRN",0)
52^9.67PA^779.2^20
53"BLD",7920,"KRN",.4,0)
54.4
55"BLD",7920,"KRN",.401,0)
56.401
57"BLD",7920,"KRN",.402,0)
58.402
59"BLD",7920,"KRN",.402,"NM",0)
60^9.68A^1^1
61"BLD",7920,"KRN",.402,"NM",1,0)
62C0Q EDIT OUPATIENT PARMS FILE #1130580001.401^1130580001.401^0
63"BLD",7920,"KRN",.402,"NM","B","C0Q EDIT OUPATIENT PARMS FILE #1130580001.401",1)
64
65"BLD",7920,"KRN",.403,0)
66.403
67"BLD",7920,"KRN",.5,0)
68.5
69"BLD",7920,"KRN",.84,0)
70.84
71"BLD",7920,"KRN",3.6,0)
723.6
73"BLD",7920,"KRN",3.8,0)
743.8
75"BLD",7920,"KRN",9.2,0)
769.2
77"BLD",7920,"KRN",9.8,0)
789.8
79"BLD",7920,"KRN",9.8,"NM",0)
80^9.68A^2^2
81"BLD",7920,"KRN",9.8,"NM",1,0)
82C0QMU12^^0^B351357107
83"BLD",7920,"KRN",9.8,"NM",2,0)
84C0QMU123^^0^B4142401
85"BLD",7920,"KRN",9.8,"NM","B","C0QMU12",1)
86
87"BLD",7920,"KRN",9.8,"NM","B","C0QMU123",2)
88
89"BLD",7920,"KRN",19,0)
9019
91"BLD",7920,"KRN",19.1,0)
9219.1
93"BLD",7920,"KRN",101,0)
94101
95"BLD",7920,"KRN",409.61,0)
96409.61
97"BLD",7920,"KRN",771,0)
98771
99"BLD",7920,"KRN",779.2,0)
100779.2
101"BLD",7920,"KRN",870,0)
102870
103"BLD",7920,"KRN",8989.51,0)
1048989.51
105"BLD",7920,"KRN",8989.52,0)
1068989.52
107"BLD",7920,"KRN",8994,0)
1088994
109"BLD",7920,"KRN","B",.4,.4)
110
111"BLD",7920,"KRN","B",.401,.401)
112
113"BLD",7920,"KRN","B",.402,.402)
114
115"BLD",7920,"KRN","B",.403,.403)
116
117"BLD",7920,"KRN","B",.5,.5)
118
119"BLD",7920,"KRN","B",.84,.84)
120
121"BLD",7920,"KRN","B",3.6,3.6)
122
123"BLD",7920,"KRN","B",3.8,3.8)
124
125"BLD",7920,"KRN","B",9.2,9.2)
126
127"BLD",7920,"KRN","B",9.8,9.8)
128
129"BLD",7920,"KRN","B",19,19)
130
131"BLD",7920,"KRN","B",19.1,19.1)
132
133"BLD",7920,"KRN","B",101,101)
134
135"BLD",7920,"KRN","B",409.61,409.61)
136
137"BLD",7920,"KRN","B",771,771)
138
139"BLD",7920,"KRN","B",779.2,779.2)
140
141"BLD",7920,"KRN","B",870,870)
142
143"BLD",7920,"KRN","B",8989.51,8989.51)
144
145"BLD",7920,"KRN","B",8989.52,8989.52)
146
147"BLD",7920,"KRN","B",8994,8994)
148
149"FIA",1130580001.401)
150C0Q PARAMETER
151"FIA",1130580001.401,0)
152^C0Q(401,
153"FIA",1130580001.401,0,0)
1541130580001.401
155"FIA",1130580001.401,0,1)
156y^n^p^^^^n^^n
157"FIA",1130580001.401,0,10)
158
159"FIA",1130580001.401,0,11)
160
161"FIA",1130580001.401,0,"RLRO")
162
163"FIA",1130580001.401,0,"VR")
1641.0^C0Q
165"FIA",1130580001.401,1130580001.401)
1661
167"FIA",1130580001.401,1130580001.401,6.1)
168
169"FIA",1130580001.401,1130580001.401,6.2)
170
171"KRN",.402,1734,-1)
1720^1
173"KRN",.402,1734,0)
174C0Q EDIT OUPATIENT PARMS^3121019.1511^@^1130580001.401^^@^3121022
175"KRN",.402,1734,"DIAB",1,1,1130580001.4013,0)
176ALL
177"KRN",.402,1734,"DIAB",1,1,1130580001.411,0)
178ALL
179"KRN",.402,1734,"DR",1,1130580001.401)
180.01;.02;.03;2;2.1;2.2;2.3;3;6.1;6.2;
181"KRN",.402,1734,"DR",2,1130580001.4013)
182.01:.02
183"KRN",.402,1734,"DR",2,1130580001.411)
184.01
185"MBREQ")
1860
187"ORD",7,.402)
188.402;7;;;EDEOUT^DIFROMSO(.402,DA,"",XPDA);FPRE^DIFROMSI(.402,"",XPDA);EPRE^DIFROMSI(.402,DA,$E("N",$G(XPDNEW)),XPDA,"",OLDA);;EPOST^DIFROMSI(.402,DA,"",XPDA);DEL^DIFROMSK(.402,"",%)
189"ORD",7,.402,0)
190INPUT TEMPLATE
191"PKG",214,-1)
1921^1
193"PKG",214,0)
194QUALITY MEASURES^C0Q^Tracks and Prints Quality Measures
195"PKG",214,20,0)
196^9.402P^^
197"PKG",214,22,0)
198^9.49I^1^1
199"PKG",214,22,1,0)
2001.0^3120731^3121002^8
201"PKG",214,22,1,"PAH",1,0)
2026^3121022
203"PKG",214,22,1,"PAH",1,1,0)
204^^6^6^3121022
205"PKG",214,22,1,"PAH",1,1,1,0)
206Created by Sam Habiel on 22nd of October, 2012 CE.
207"PKG",214,22,1,"PAH",1,1,2,0)
208
209"PKG",214,22,1,"PAH",1,1,3,0)
210Adds support for using "Model" Quality and Performance Measure Sets,
211"PKG",214,22,1,"PAH",1,1,4,0)
212which will get copied by the software for making a new measure set.
213"PKG",214,22,1,"PAH",1,1,5,0)
214
215"PKG",214,22,1,"PAH",1,1,6,0)
216Rest of documentation todo.
217"QUES","XPF1",0)
218Y
219"QUES","XPF1","??")
220^D REP^XPDH
221"QUES","XPF1","A")
222Shall I write over your |FLAG| File
223"QUES","XPF1","B")
224YES
225"QUES","XPF1","M")
226D XPF1^XPDIQ
227"QUES","XPF2",0)
228Y
229"QUES","XPF2","??")
230^D DTA^XPDH
231"QUES","XPF2","A")
232Want my data |FLAG| yours
233"QUES","XPF2","B")
234YES
235"QUES","XPF2","M")
236D XPF2^XPDIQ
237"QUES","XPI1",0)
238YO
239"QUES","XPI1","??")
240^D INHIBIT^XPDH
241"QUES","XPI1","A")
242Want KIDS to INHIBIT LOGONs during the install
243"QUES","XPI1","B")
244NO
245"QUES","XPI1","M")
246D XPI1^XPDIQ
247"QUES","XPM1",0)
248PO^VA(200,:EM
249"QUES","XPM1","??")
250^D MG^XPDH
251"QUES","XPM1","A")
252Enter the Coordinator for Mail Group '|FLAG|'
253"QUES","XPM1","B")
254
255"QUES","XPM1","M")
256D XPM1^XPDIQ
257"QUES","XPO1",0)
258Y
259"QUES","XPO1","??")
260^D MENU^XPDH
261"QUES","XPO1","A")
262Want KIDS to Rebuild Menu Trees Upon Completion of Install
263"QUES","XPO1","B")
264NO
265"QUES","XPO1","M")
266D XPO1^XPDIQ
267"QUES","XPZ1",0)
268Y
269"QUES","XPZ1","??")
270^D OPT^XPDH
271"QUES","XPZ1","A")
272Want to DISABLE Scheduled Options, Menu Options, and Protocols
273"QUES","XPZ1","B")
274NO
275"QUES","XPZ1","M")
276D XPZ1^XPDIQ
277"QUES","XPZ2",0)
278Y
279"QUES","XPZ2","??")
280^D RTN^XPDH
281"QUES","XPZ2","A")
282Want to MOVE routines to other CPUs
283"QUES","XPZ2","B")
284NO
285"QUES","XPZ2","M")
286D XPZ2^XPDIQ
287"RTN")
2882
289"RTN","C0QMU12")
2900^1^B351357107
291"RTN","C0QMU12",1,0)
292C0QMU12 ;JJOH/ZAG/GPL - Patient Reminder List ; 10/22/12 4:29pm
293"RTN","C0QMU12",2,0)
294 ;;1.0;QUALITY MEASURES;**1,5,6**;May 21, 2012;Build 1
295"RTN","C0QMU12",3,0)
296 ;
297"RTN","C0QMU12",4,0)
298 ;2011 Zach Gonzales<zach@linux.com> - Licensed under the terms of the GNU
299"RTN","C0QMU12",5,0)
300 ;General Public License See attached copy of the License.
301"RTN","C0QMU12",6,0)
302 ;
303"RTN","C0QMU12",7,0)
304 ; GPL - THIS ROUTINE IS A COPY OF JJOHMU11 THAT HAS BEEN MODIFIED
305"RTN","C0QMU12",8,0)
306 ; FOR MEANINGFUL USE CALCULATION FOR FISCAL YEAR 2012 AT OROVILLE HOSPITAL
307"RTN","C0QMU12",9,0)
308 ;
309"RTN","C0QMU12",10,0)
310C0QPFN() Q 1130580001.401 ; PARAMETER FILE
311"RTN","C0QMU12",11,0)
312C0QPCFN() Q 1130580001.411 ; CLINIC SUBFILE
313"RTN","C0QMU12",12,0)
314C0QMFN() Q 1130580001.201 ; FILE NUMBER FOR C0Q MEASUREMENT SET FILE
315"RTN","C0QMU12",13,0)
316C0QMMFN() Q 1130580001.2011 ; FN FOR MEASURE SUBFILE
317"RTN","C0QMU12",14,0)
318INIT(ZARY,ZTYP) ; INITIALIZE THE PARAMETERS FOR BUILDING PATIENT LISTS
319"RTN","C0QMU12",15,0)
320 ; ZARY IS PASSED BY NAME
321"RTN","C0QMU12",16,0)
322 ; ZTYP IS "INP" OR "EP"
323"RTN","C0QMU12",17,0)
324 N ZMU S ZMU="MU12" ; THIS IS THE ONLY HARD CODED VALUE LEFT
325"RTN","C0QMU12",18,0)
326 ; TBD - CHANGE IT TO A READ FROM SYSTEM PARAMETERS
327"RTN","C0QMU12",19,0)
328 K @ZARY ; CLEAR RETURN ARRAY
329"RTN","C0QMU12",20,0)
330 N ZIEN,ZCNT,ZX
331"RTN","C0QMU12",21,0)
332 I $O(^C0Q(401,"MUTYP",ZMU,ZTYP,""))="" D Q ; OOPS NO RECORD THERE
333"RTN","C0QMU12",22,0)
334 . W !,"ERROR, NO PARAMETERS AVAILABLE"
335"RTN","C0QMU12",23,0)
336 S ZIEN=""
337"RTN","C0QMU12",24,0)
338 S ZCNT=0
339"RTN","C0QMU12",25,0)
340 F S ZIEN=$O(^C0Q(401,"MUTYP",ZMU,ZTYP,ZIEN)) Q:ZIEN="" D ;
341"RTN","C0QMU12",26,0)
342 . S ZCNT=ZCNT+1
343"RTN","C0QMU12",27,0)
344 . S @ZARY@(ZCNT,"IEN")=ZIEN
345"RTN","C0QMU12",28,0)
346 . S @ZARY@(ZCNT,"MU")=$$GET1^DIQ($$C0QPFN,ZIEN_",",.02)
347"RTN","C0QMU12",29,0)
348 . S @ZARY@(ZCNT,"TYPE")=$$GET1^DIQ($$C0QPFN,ZIEN_",",.03)
349"RTN","C0QMU12",30,0)
350 . ;
351"RTN","C0QMU12",31,0)
352 . ; Inpatient
353"RTN","C0QMU12",32,0)
354 . S (ZX,@ZARY@(ZCNT,"InpatientMeasurementSet"))=$$GET1^DIQ($$C0QPFN,ZIEN_",",1,"I")
355"RTN","C0QMU12",33,0)
356 . S @ZARY@(ZCNT,"InpatientBeginDate")=$$GET1^DIQ($$C0QMFN,ZX_",",.02,"I")
357"RTN","C0QMU12",34,0)
358 . S @ZARY@(ZCNT,"InpatientEndDate")=$$GET1^DIQ($$C0QMFN,ZX_",",.03,"I")
359"RTN","C0QMU12",35,0)
360 . S @ZARY@(ZCNT,"InpatientQualitySet")=$$GET1^DIQ($$C0QPFN,ZIEN_",",1.1,"I")
361"RTN","C0QMU12",36,0)
362 . ;
363"RTN","C0QMU12",37,0)
364 . ; Outpatient
365"RTN","C0QMU12",38,0)
366 . S (ZX,@ZARY@(ZCNT,"EPMeasurementSet"))=$$GET1^DIQ($$C0QPFN,ZIEN_",",2,"I")
367"RTN","C0QMU12",39,0)
368 . S @ZARY@(ZCNT,"EPBeginDate")=$$GET1^DIQ($$C0QMFN,ZX_",",.02,"I")
369"RTN","C0QMU12",40,0)
370 . S @ZARY@(ZCNT,"EPEndDate")=$$GET1^DIQ($$C0QMFN,ZX_",",.03,"I")
371"RTN","C0QMU12",41,0)
372 . S @ZARY@(ZCNT,"EPQualitySet")=$$GET1^DIQ($$C0QPFN,ZIEN_",",2.1,"I")
373"RTN","C0QMU12",42,0)
374 . S @ZARY@(ZCNT,"EPModelPerfSet")=$$GET1^DIQ($$C0QPFN,ZIEN_",",6.1,"I")
375"RTN","C0QMU12",43,0)
376 . S @ZARY@(ZCNT,"EPModelQualitySet")=$$GET1^DIQ($$C0QPFN,ZIEN_",",6.2,"I")
377"RTN","C0QMU12",44,0)
378 . ;
379"RTN","C0QMU12",45,0)
380 . D CLEAN^DILF
381"RTN","C0QMU12",46,0)
382 . D LIST^DIC($$C0QPCFN,","_ZIEN_",",".01I")
383"RTN","C0QMU12",47,0)
384 . I $D(^TMP("DIERR",$J)) D Q ; ERROR READING CLINIC LIST
385"RTN","C0QMU12",48,0)
386 . . W !,"ERROR READING CLINIC PARAMETER LIST"
387"RTN","C0QMU12",49,0)
388 . M @ZARY@(ZCNT,"CLINICS")=^TMP("DILIST",$J)
389"RTN","C0QMU12",50,0)
390 ;
391"RTN","C0QMU12",51,0)
392 Q
393"RTN","C0QMU12",52,0)
394 ;
395"RTN","C0QMU12",53,0)
396BUILD ; CALL ALL AND DIS AND BUILD THE GRSLT ARRAY or print or create
397"RTN","C0QMU12",54,0)
398 ; patient lists
399"RTN","C0QMU12",55,0)
400 ;N GRSLT ; ARRAY FOR RESULTS
401"RTN","C0QMU12",56,0)
402 I '$D(C0QSS) S C0QSS=0 ;default don't build spreadsheet array
403"RTN","C0QMU12",57,0)
404 I '$D(C0QPR) S C0QPR=0 ;default don't print out results
405"RTN","C0QMU12",58,0)
406 I '$D(C0QPL) S C0QPL=1 ;default do create patient lists
407"RTN","C0QMU12",59,0)
408 S ZYR="MU12-"
409"RTN","C0QMU12",60,0)
410 D INITCLST ; initialize C0QLIST
411"RTN","C0QMU12",61,0)
412 N G1 ; ONE SET OF VALUES - RNF1 FORMAT
413"RTN","C0QMU12",62,0)
414 N C0QPARM
415"RTN","C0QMU12",63,0)
416 D INIT("C0QPARM","INP") ; initialize inpatient parms
417"RTN","C0QMU12",64,0)
418 I $O(C0QPARM(""))="" D Q ; no parms for inpatient
419"RTN","C0QMU12",65,0)
420 . W !,"No inpatient parameters"
421"RTN","C0QMU12",66,0)
422 N ZDIV S ZDIV=""
423"RTN","C0QMU12",67,0)
424 F S ZDIV=$O(C0QPARM(ZDIV)) Q:ZDIV="" D ; for each inpatient division
425"RTN","C0QMU12",68,0)
426 . D ALL ; all currently admitted patients in the hospital
427"RTN","C0QMU12",69,0)
428 . D DIS ; all patients discharged since the reporting period began
429"RTN","C0QMU12",70,0)
430 . I C0QSS D ZWRITE^C0QUTIL("GRSLT")
431"RTN","C0QMU12",71,0)
432 . ;D ICUPAT ; GENERATE ICU PATIENT LIST
433"RTN","C0QMU12",72,0)
434 . I C0QPL D ;
435"RTN","C0QMU12",73,0)
436 . . D FILE ; FILE THE PATIENT LISTS
437"RTN","C0QMU12",74,0)
438 . . D UPDATE^C0QUPDT(.G,C0QPARM(ZDIV,"InpatientMeasurementSet")) ;
439"RTN","C0QMU12",75,0)
440 . . D UPDATE^C0QUPDT(.G,C0QPARM(ZDIV,"InpatientQualitySet")) ;
441"RTN","C0QMU12",76,0)
442 . K C0QLIST
443"RTN","C0QMU12",77,0)
444 Q
445"RTN","C0QMU12",78,0)
446 ;
447"RTN","C0QMU12",79,0)
448INITCLST ; initialize C0QLIST
449"RTN","C0QMU12",80,0)
450 ; INITIALIZE LISTS
451"RTN","C0QMU12",81,0)
452 ; this is done so that if there are no matching patients, the patient list
453"RTN","C0QMU12",82,0)
454 ; will be zeroed out
455"RTN","C0QMU12",83,0)
456 ; K C0QLIST - VEN/SMH - Oops, we kill the previous lists!!!
457"RTN","C0QMU12",84,0)
458 S C0QLIST(ZYR_"HasDemographics")=""
459"RTN","C0QMU12",85,0)
460 S C0QLIST(ZYR_"Patient")="" ; VEN/SMH - Is this needed? Not used in EP.
461"RTN","C0QMU12",86,0)
462 S C0QLIST(ZYR_"HasProblem")=""
463"RTN","C0QMU12",87,0)
464 S C0QLIST(ZYR_"HasAllergy")=""
465"RTN","C0QMU12",88,0)
466 S C0QLIST(ZYR_"HasMed")=""
467"RTN","C0QMU12",89,0)
468 S C0QLIST(ZYR_"HasERX")="" ; VEN/SMH C0Q*1*5
469"RTN","C0QMU12",90,0)
470 S C0QLIST(ZYR_"HasMedRecon")="" ; VEN/SMH C0Q*1*5
471"RTN","C0QMU12",91,0)
472 S C0QLIST(ZYR_"HasVitalSigns")=""
473"RTN","C0QMU12",92,0)
474 S C0QLIST(ZYR_"HasMedOrders")=""
475"RTN","C0QMU12",93,0)
476 S C0QLIST(ZYR_"HasSmokingStatus")=""
477"RTN","C0QMU12",94,0)
478 S C0QLIST(ZYR_"ALL-PATIENTS")="" ; VEN/SMH C0Q*1*5
479"RTN","C0QMU12",95,0)
480 Q
481"RTN","C0QMU12",96,0)
482 ;
483"RTN","C0QMU12",97,0)
484ALL ;retrieve active inpatients
485"RTN","C0QMU12",98,0)
486 N WARD S WARD=""
487"RTN","C0QMU12",99,0)
488 F D Q:WARD=""
489"RTN","C0QMU12",100,0)
490 . S WARD=$O(^DIC(42,"B",WARD)) ;ward name
491"RTN","C0QMU12",101,0)
492 . Q:WARD=""
493"RTN","C0QMU12",102,0)
494 . N WIEN S WIEN=""
495"RTN","C0QMU12",103,0)
496 . F S WIEN=$O(^DIC(42,"B",WARD,WIEN)) Q:'WIEN D ;wards IEN
497"RTN","C0QMU12",104,0)
498 . . S WARDNAME=$P(^DIC(42,WIEN,0),U,2) ;ward name
499"RTN","C0QMU12",105,0)
500 . . N DFN,RB S DFN=""
501"RTN","C0QMU12",106,0)
502 . . F S DFN=$O(^DPT("CN",WARD,+DFN)) Q:'DFN D ;DFN of patient on ward
503"RTN","C0QMU12",107,0)
504 . . . D DEMO^C0QMU122
505"RTN","C0QMU12",108,0)
506 . . . D PROBLEM
507"RTN","C0QMU12",109,0)
508 . . . D ALLERGY
509"RTN","C0QMU12",110,0)
510 . . . D MEDS4
511"RTN","C0QMU12",111,0)
512 . . . D RECON2
513"RTN","C0QMU12",112,0)
514 . . . D ADVDIR
515"RTN","C0QMU12",113,0)
516 . . . D SMOKING
517"RTN","C0QMU12",114,0)
518 . . . D VITALS
519"RTN","C0QMU12",115,0)
520 . . . D VTE1
521"RTN","C0QMU12",116,0)
522 . . . D COD
523"RTN","C0QMU12",117,0)
524 . . . D EDTIME
525"RTN","C0QMU12",118,0)
526 . . . I C0QPR D PRINT^C0QMU121
527"RTN","C0QMU12",119,0)
528 . . . I C0QSS D SS^C0QMU121
529"RTN","C0QMU12",120,0)
530 . . . I C0QPL D PATLIST^C0QMU121
531"RTN","C0QMU12",121,0)
532 Q
533"RTN","C0QMU12",122,0)
534 ;
535"RTN","C0QMU12",123,0)
536PROBLEM ; PATIENT PROBLEMS
537"RTN","C0QMU12",124,0)
538 D LIST^ORQQPL(.PROBL,DFN,"A")
539"RTN","C0QMU12",125,0)
540 S PBCNT=""
541"RTN","C0QMU12",126,0)
542 F S PBCNT=$O(PROBL(PBCNT)) Q:PBCNT="" D
543"RTN","C0QMU12",127,0)
544 . S PBDESC=$P(PROBL(PBCNT),U,2) ;problem description
545"RTN","C0QMU12",128,0)
546 I PBDESC["No problems found" S C0QLIST(ZYR_"NoProblem",DFN)=""
547"RTN","C0QMU12",129,0)
548 E S C0QLIST(ZYR_"HasProblem",DFN)=""
549"RTN","C0QMU12",130,0)
550 K PROBL
551"RTN","C0QMU12",131,0)
552 Q
553"RTN","C0QMU12",132,0)
554 ;
555"RTN","C0QMU12",133,0)
556ALLERGY ; ALLERGY LIST
557"RTN","C0QMU12",134,0)
558 ; WANT TO CHANGE ALLERGIES FOR 2012 TO POPULATE THE C0QLIST DIRECTLY. GPL
559"RTN","C0QMU12",135,0)
560 D LIST^ORQQAL(.ALRGYL,DFN)
561"RTN","C0QMU12",136,0)
562 S ALCNT=""
563"RTN","C0QMU12",137,0)
564 F S ALCNT=$O(ALRGYL(ALCNT)) Q:ALCNT="" D
565"RTN","C0QMU12",138,0)
566 . S ALDESC=$P(ALRGYL(ALCNT),U,2) ;allergy description
567"RTN","C0QMU12",139,0)
568 I ALDESC["No Allergy" S C0QLIST(ZYR_"NoAllergy",DFN)=""
569"RTN","C0QMU12",140,0)
570 E S C0QLIST(ZYR_"HasAllergy",DFN)=""
571"RTN","C0QMU12",141,0)
572 K ALRGYL
573"RTN","C0QMU12",142,0)
574 Q
575"RTN","C0QMU12",143,0)
576 ;
577"RTN","C0QMU12",144,0)
578MEDS4 ; USE OCL^PSOORRL TO GET ALL MEDS
579"RTN","C0QMU12",145,0)
580 ; DELETED MEDS, MEDS2, AND MEDS3 FOR 2012 TO USE ONLY MEDS4
581"RTN","C0QMU12",146,0)
582 N BEG,END
583"RTN","C0QMU12",147,0)
584 S BEG=$$DT^C0QUTIL("JULY 3,2011")
585"RTN","C0QMU12",148,0)
586 S END=$$DT^C0QUTIL("NOW")
587"RTN","C0QMU12",149,0)
588 D OCL^PSOORRL(DFN,BEG,END) ;DBIA #2400
589"RTN","C0QMU12",150,0)
590 N C0QMEDS
591"RTN","C0QMU12",151,0)
592 M C0QMEDS=^TMP("PS",$J) ; MEDS RETURNED FROM CALL
593"RTN","C0QMU12",152,0)
594 N FOUND
595"RTN","C0QMU12",153,0)
596 N ZI
597"RTN","C0QMU12",154,0)
598 I '$D(C0QMEDS(1)) D Q ; QUIT IF NO MEDS
599"RTN","C0QMU12",155,0)
600 . S C0QLIST(ZYR_"NoMed",DFN)=""
601"RTN","C0QMU12",156,0)
602 E D ; HAS MEDS
603"RTN","C0QMU12",157,0)
604 . S C0QLIST(ZYR_"HasMed",DFN)=""
605"RTN","C0QMU12",158,0)
606 S ZI="" S FOUND=0
607"RTN","C0QMU12",159,0)
608 F S ZI=$O(C0QMEDS(ZI)) Q:ZI="" D ; FOR EACH MED
609"RTN","C0QMU12",160,0)
610 . N ZM
611"RTN","C0QMU12",161,0)
612 . S ZM=$G(C0QMEDS(ZI,0)) ;THE MEDICATION
613"RTN","C0QMU12",162,0)
614 . I $P($P(ZM,"^",1),";",2)="I" D ; IE 1U;I FOR AN INPATIENT UNIT DOSE
615"RTN","C0QMU12",163,0)
616 . . S FOUND=1
617"RTN","C0QMU12",164,0)
618 I FOUND S C0QLIST(ZYR_"HasMedOrders",DFN)="" ; MET CPOE MEASURE
619"RTN","C0QMU12",165,0)
620 E S C0QLIST(ZYR_"NoMedOrders",DFN)=""
621"RTN","C0QMU12",166,0)
622 Q
623"RTN","C0QMU12",167,0)
624 ;
625"RTN","C0QMU12",168,0)
626RECON ; MEDICATIONS RECONCILIATION
627"RTN","C0QMU12",169,0)
628 ; WANT TO SIMPLIFY MEDS RECON FOR 2012. GPL
629"RTN","C0QMU12",170,0)
630 ;
631"RTN","C0QMU12",171,0)
632 I $$HASNTYN^C0QNOTES("MED/SURG NURSING ADMISSION ASSESSMENT",DFN) D ;
633"RTN","C0QMU12",172,0)
634 . S C0QLIST(ZYR_"XferOfCare",DFN)="" ; transfer of care patient
635"RTN","C0QMU12",173,0)
636 N HASRECON S HASRECON=0
637"RTN","C0QMU12",174,0)
638 N GT,G
639"RTN","C0QMU12",175,0)
640 S GT(4,"HasMedRecon","MEDICATION RECONCILIATION COMPLET")=""
641"RTN","C0QMU12",176,0)
642 S GT(5,"HasMedRecon","Medication Reconcilation Complete")=""
643"RTN","C0QMU12",177,0)
644 I $$TXTALL^C0QNOTES(.G,.GT,DFN) D ; SEARCH ALL NOTES FOR MED RECON
645"RTN","C0QMU12",178,0)
646 . S HASRECON=1
647"RTN","C0QMU12",179,0)
648 ;N ZT
649"RTN","C0QMU12",180,0)
650 ;S ZT="MEDICATION RECONCILIATION COMPLET"
651"RTN","C0QMU12",181,0)
652 ;I $$NTTXT^C0QNOTES("ER NURSE NOTE",ZT,DFN) D ;
653"RTN","C0QMU12",182,0)
654 ;. S HASRECON=1
655"RTN","C0QMU12",183,0)
656 ;E D ;
657"RTN","C0QMU12",184,0)
658 ;. S ZT="Medication Reconcilation Complete"
659"RTN","C0QMU12",185,0)
660 ;. I $$NTTXT^C0QNOTES("MED/SURG NURSING ADMISSION ASSESSMENT",ZT,DFN) D ;
661"RTN","C0QMU12",186,0)
662 ;. . S HASRECON=1
663"RTN","C0QMU12",187,0)
664 ;I $$HFYN^C0QHF("MEDS HAVE BEEN REVIEWED",DFN) S HASRECON=1
665"RTN","C0QMU12",188,0)
666 I HASRECON D ;
667"RTN","C0QMU12",189,0)
668 . S C0QLIST(ZYR_"HasMedRecon",DFN)=""
669"RTN","C0QMU12",190,0)
670 E S C0QLIST(ZYR_"NoMedRecon",DFN)=""
671"RTN","C0QMU12",191,0)
672 Q
673"RTN","C0QMU12",192,0)
674 ;
675"RTN","C0QMU12",193,0)
676RECON2 ; USE HEALTH FACTORS FOR MEDICATION RECONCILIATION
677"RTN","C0QMU12",194,0)
678 I $$HASNTYN^C0QNOTES("MED/SURG NURSING ADMISSION ASSESSMENT",DFN) D ;
679"RTN","C0QMU12",195,0)
680 . S C0QLIST(ZYR_"XferOfCare",DFN)="" ; transfer of care patient
681"RTN","C0QMU12",196,0)
682 I $$HFYN^C0QHF(DFN,"Medication Reconciliation Completed: Yes") D ;
683"RTN","C0QMU12",197,0)
684 . S C0QLIST(ZYR_"HasMedRecon",DFN)=""
685"RTN","C0QMU12",198,0)
686 E S C0QLIST(ZYR_"NoMedRecon",DFN)=""
687"RTN","C0QMU12",199,0)
688 Q
689"RTN","C0QMU12",200,0)
690 ;
691"RTN","C0QMU12",201,0)
692ERX ; FOR EP, WE LOOK AT ERX MEDS
693"RTN","C0QMU12",202,0)
694 N ZI S ZI=""
695"RTN","C0QMU12",203,0)
696 N ZERX S ZERX=$NA(^PS(55,DFN,"NVA"))
697"RTN","C0QMU12",204,0)
698 F S ZI=$O(@ZERX@(ZI)) Q:ZI="" D ;
699"RTN","C0QMU12",205,0)
700 . ;B
701"RTN","C0QMU12",206,0)
702 . I $G(@ZERX@(ZI,1,1,0))["E-Rx Web" D ;
703"RTN","C0QMU12",207,0)
704 . . S C0QLIST(ZYR_"HasMed",DFN)=""
705"RTN","C0QMU12",208,0)
706 . . S C0QLIST(ZYR_"HasMedOrders",DFN)=""
707"RTN","C0QMU12",209,0)
708 . . S C0QLIST(ZYR_"HasERX",DFN)=""
709"RTN","C0QMU12",210,0)
710 . . S C0QLIST(ZYR_"HasMedRecon",DFN)=""
711"RTN","C0QMU12",211,0)
712 . E D ;
713"RTN","C0QMU12",212,0)
714 . . S C0QLIST(ZYR_"NoMed",DFN)=""
715"RTN","C0QMU12",213,0)
716 . . S C0QLIST(ZYR_"NoMedOrders",DFN)=""
717"RTN","C0QMU12",214,0)
718 . . S C0QLIST(ZYR_"NoERX",DFN)=""
719"RTN","C0QMU12",215,0)
720 . . S C0QLIST(ZYR_"NoMedRecon",DFN)=""
721"RTN","C0QMU12",216,0)
722 Q
723"RTN","C0QMU12",217,0)
724 ;
725"RTN","C0QMU12",218,0)
726ADVDIR ; ADVANCE DIRECTIVE
727"RTN","C0QMU12",219,0)
728 ;
729"RTN","C0QMU12",220,0)
730 I $$AGE^C0QUTIL(DFN)>64 D ; ONLY FOR PATIENTS 65 AND OLDER
731"RTN","C0QMU12",221,0)
732 . S C0QLIST(ZYR_"Over65",DFN)=""
733"RTN","C0QMU12",222,0)
734 . I $$HASNTYN^C0QNOTES("ADVANCE DIRECTIVE",DFN) D ;
735"RTN","C0QMU12",223,0)
736 . . S C0QLIST(ZYR_"HasAdvanceDirective",DFN)=""
737"RTN","C0QMU12",224,0)
738 . E D ;
739"RTN","C0QMU12",225,0)
740 . . S C0QLIST(ZYR_"NoAdvanceDirective",DFN)=""
741"RTN","C0QMU12",226,0)
742 Q
743"RTN","C0QMU12",227,0)
744 ;
745"RTN","C0QMU12",228,0)
746SMOKING G SMOKING^C0QMU121
747"RTN","C0QMU12",229,0)
748VITALS ;
749"RTN","C0QMU12",230,0)
750 ;
751"RTN","C0QMU12",231,0)
752 N C0QSDT,C0QEDT
753"RTN","C0QMU12",232,0)
754 D DT^DILF(,"JULY 3,2011",.C0QSDT) ; START DATE
755"RTN","C0QMU12",233,0)
756 D DT^DILF(,"T",.C0QEDT) ; END DATE TODAY
757"RTN","C0QMU12",234,0)
758 S C0QEDT=C0QEDT+.999999 ; Move to the end of the day! VEN/SMH C0Q*1*5
759"RTN","C0QMU12",235,0)
760 D VITALS^ORQQVI(.VITRSLT,DFN,C0QSDT,C0QEDT) ; CALL FAST VITALS
761"RTN","C0QMU12",236,0)
762 I $D(VITRSLT) D ;ZWR VITRSLT B ;
763"RTN","C0QMU12",237,0)
764 . I VITRSLT(1)["No vitals found." S C0QLIST(ZYR_"NoVitalSigns",DFN)=""
765"RTN","C0QMU12",238,0)
766 . E S C0QLIST(ZYR_"HasVitalSigns",DFN)=""
767"RTN","C0QMU12",239,0)
768 Q
769"RTN","C0QMU12",240,0)
770 ;
771"RTN","C0QMU12",241,0)
772VTE1 ; VTE PROPHYLAXIS WITHIN 24HRS OF ARRIVAL
773"RTN","C0QMU12",242,0)
774 ;
775"RTN","C0QMU12",243,0)
776 I $$HFYN^C0QHF(DFN,"VTE PROPHYLAXIS WITHIN 24HRS OF ARRIVAL") D ;
777"RTN","C0QMU12",244,0)
778 . S C0QLIST(ZYR_"HasVTE24",DFN)=""
779"RTN","C0QMU12",245,0)
780 E S C0QLIST(ZYR_"NoVTE24",DFN)=""
781"RTN","C0QMU12",246,0)
782 Q
783"RTN","C0QMU12",247,0)
784 ;
785"RTN","C0QMU12",248,0)
786 ;
787"RTN","C0QMU12",249,0)
788 ;
789"RTN","C0QMU12",250,0)
790COD ; TEST FOR PRELIMINARY CAUSE OF DEATH NOTE
791"RTN","C0QMU12",251,0)
792 I $$HASNTYN^C0QNOTES("PRELIMINARY CAUSE OF DEATH",DFN) D ;
793"RTN","C0QMU12",252,0)
794 . S C0QLIST(ZYR_"CauseOfDeath",DFN)=""
795"RTN","C0QMU12",253,0)
796 Q
797"RTN","C0QMU12",254,0)
798 ;
799"RTN","C0QMU12",255,0)
800EDTIME ; CHECK FOR EMERGENCY DEPT TIME FACTORS
801"RTN","C0QMU12",256,0)
802 N FOUND
803"RTN","C0QMU12",257,0)
804 S FOUND=0
805"RTN","C0QMU12",258,0)
806 I $$HFYN^C0QHF(DFN,"ED ARRIVAL TIME") S FOUND=1
807"RTN","C0QMU12",259,0)
808 I '$$HFYN^C0QHF(DFN,"ED DEPARTURE TIME") S FOUND=0
809"RTN","C0QMU12",260,0)
810 I '$$HFYN^C0QHF(DFN,"TIME DECISION TO ADMIT MADE") S FOUND=0
811"RTN","C0QMU12",261,0)
812 I FOUND D ;
813"RTN","C0QMU12",262,0)
814 . S C0QLIST(ZYR_"HasEDtime",DFN)=""
815"RTN","C0QMU12",263,0)
816 E S C0QLIST(ZYR_"NoEDtime",DFN)=""
817"RTN","C0QMU12",264,0)
818 Q
819"RTN","C0QMU12",265,0)
820 ;
821"RTN","C0QMU12",266,0)
822ICUPAT ; CREATE LIST OF ICU PATIENTS
823"RTN","C0QMU12",267,0)
824 N ZICU
825"RTN","C0QMU12",268,0)
826 S ZICU=$O(^SC("B","IC","")) ; IEN OF ICU HOSPITAL LOCATION
827"RTN","C0QMU12",269,0)
828 N ZI,ZJ,ZP
829"RTN","C0QMU12",270,0)
830 S ZI=""
831"RTN","C0QMU12",271,0)
832 F S ZI=$O(^AUPNVSIT("AHL",ZICU,ZI)) Q:ZI="" D ; EACH DATE
833"RTN","C0QMU12",272,0)
834 . S ZJ=""
835"RTN","C0QMU12",273,0)
836 . F S ZJ=$O(^AUPNVSIT("AHL",ZICU,ZI,ZJ)) Q:ZJ="" D ; EACH VISIT
837"RTN","C0QMU12",274,0)
838 . . S ZP=$P(^AUPNVSIT(ZJ,0),"^",5) ; DFN
839"RTN","C0QMU12",275,0)
840 . . S C0QLIST(ZYR_"ICUPatient",ZP)=""
841"RTN","C0QMU12",276,0)
842 Q
843"RTN","C0QMU12",277,0)
844 ;
845"RTN","C0QMU12",278,0)
846FILTER ; CALLED AFTER ALL THE PATIENT LISTS HAVE BEEN FILED
847"RTN","C0QMU12",279,0)
848 ; WILL KILL C0QLIST AND CREATE DERIVATIVE PATIENT LISTS BY FILTERING
849"RTN","C0QMU12",280,0)
850 K C0QLIST
851"RTN","C0QMU12",281,0)
852 N ZPAT
853"RTN","C0QMU12",282,0)
854 S ZPAT=$$PATLN(ZYR_"Patient") ; name of patient list of all patients admitted
855"RTN","C0QMU12",283,0)
856 ; during the reporting period. used to filter other lists
857"RTN","C0QMU12",284,0)
858 ;
859"RTN","C0QMU12",285,0)
860 ; filter ICU patients against ZPAT
861"RTN","C0QMU12",286,0)
862 N GN,GO,GF
863"RTN","C0QMU12",287,0)
864 S GN=ZPAT
865"RTN","C0QMU12",288,0)
866 S GO=$$PATLN(ZYR_"ICUPatient") ; all ICU patient
867"RTN","C0QMU12",289,0)
868 S GF=$NA(C0QLIST(ZYR_"ICUReporting")) ; the filtered list destination
869"RTN","C0QMU12",290,0)
870 D AND^C0QSET(GF,GN,GO) ; filter the list with the AND set operation
871"RTN","C0QMU12",291,0)
872 ;
873"RTN","C0QMU12",292,0)
874 ; FILTER VTE-2 DENOMINATOR FOR QUALITY MEASURE
875"RTN","C0QMU12",293,0)
876 ;
877"RTN","C0QMU12",294,0)
878 S GN=$NA(C0QLIST(ZYR_"ICUReporting")) ; ICU patients admitted inside rpt period
879"RTN","C0QMU12",295,0)
880 S GO=$$RPATLN("MU VTE-2 DENOM PL") ; TAXONOMY BASED DENOMENATOR
881"RTN","C0QMU12",296,0)
882 S GF=$NA(C0QLIST(ZYR_"VTE2DEN")) ; NEW DENOMINATOR PL
883"RTN","C0QMU12",297,0)
884 D AND^C0QSET(GF,GN,GO) ; filter the list with the AND set operation
885"RTN","C0QMU12",298,0)
886 ;
887"RTN","C0QMU12",299,0)
888 S GN=ZPAT
889"RTN","C0QMU12",300,0)
890 S GO=$$RPATLN("MU VTE-3 DENOM PL") ; TAXONOMY BASED DENOMENATOR
891"RTN","C0QMU12",301,0)
892 S GF=$NA(C0QLIST(ZYR_"VTE3DEN")) ; NEW DENOMINATOR PL
893"RTN","C0QMU12",302,0)
894 D AND^C0QSET(GF,GN,GO) ; filter the list with the AND set operation
895"RTN","C0QMU12",303,0)
896 ;
897"RTN","C0QMU12",304,0)
898 S GN=ZPAT
899"RTN","C0QMU12",305,0)
900 S GO=$$RPATLN("MU VTE-4 DENOM PL") ; TAXONOMY BASED DENOMENATOR
901"RTN","C0QMU12",306,0)
902 S GF=$NA(C0QLIST(ZYR_"VTE4DEN")) ; NEW DENOMINATOR PL
903"RTN","C0QMU12",307,0)
904 D AND^C0QSET(GF,GN,GO) ; filter the list with the AND set operation
905"RTN","C0QMU12",308,0)
906 ;
907"RTN","C0QMU12",309,0)
908 S GN=ZPAT
909"RTN","C0QMU12",310,0)
910 S GO=$$RPATLN("MU VTE-5 DENOM PL") ; TAXONOMY BASED DENOMENATOR
911"RTN","C0QMU12",311,0)
912 S GF=$NA(C0QLIST(ZYR_"VTE5DEN")) ; NEW DENOMINATOR PL
913"RTN","C0QMU12",312,0)
914 D AND^C0QSET(GF,GN,GO) ; filter the list with the AND set operation
915"RTN","C0QMU12",313,0)
916 ;
917"RTN","C0QMU12",314,0)
918 D FILE ; FILE ALL THE PATIENT LISTS
919"RTN","C0QMU12",315,0)
920 D UPDATE^C0QUPDT(.G,5) ; UPDATE THE HOS 2011 MEANINGFUL USE measure set
921"RTN","C0QMU12",316,0)
922 Q
923"RTN","C0QMU12",317,0)
924 ;
925"RTN","C0QMU12",318,0)
926ED1 ;
927"RTN","C0QMU12",319,0)
928 S ZYR="MU12-"
929"RTN","C0QMU12",320,0)
930 D DOTIME^C0QMU121("ED DEPARTURE TIME")
931"RTN","C0QMU12",321,0)
932 Q
933"RTN","C0QMU12",322,0)
934 ;
935"RTN","C0QMU12",323,0)
936ED2 ;
937"RTN","C0QMU12",324,0)
938 S ZYR="MU12-"
939"RTN","C0QMU12",325,0)
940 D DOTIME2^C0QMU121("TIME DECISION TO ADMIT MADE")
941"RTN","C0QMU12",326,0)
942 Q
943"RTN","C0QMU12",327,0)
944 ;
945"RTN","C0QMU12",328,0)
946RPATLN(ZLST) ; EXTRINSIC RETURNS THE GLOBAL NAME OF THE REMINDER PATIENT LIST
947"RTN","C0QMU12",329,0)
948 ; WHOSE NAME IS ZLST
949"RTN","C0QMU12",330,0)
950 N ZIEN,ZN
951"RTN","C0QMU12",331,0)
952 S ZIEN=$O(^PXRMXP(810.5,"B",ZLST,"")) ; ien of patient list
953"RTN","C0QMU12",332,0)
954 S ZN=$NA(^PXRMXP(810.5,ZIEN,30,"B")) ; GLOBAL NAME IN REMINDER PATIENT LIST
955"RTN","C0QMU12",333,0)
956 Q ZN
957"RTN","C0QMU12",334,0)
958 ;
959"RTN","C0QMU12",335,0)
960PATLN(ZATTR) ; EXTRINSIC RETURNS THE NAME OF THE PATIENT LIST WITH
961"RTN","C0QMU12",336,0)
962 ; THE ATTRIBUTE ZATTR
963"RTN","C0QMU12",337,0)
964 N ZIEN,ZN
965"RTN","C0QMU12",338,0)
966 S ZIEN=$O(^C0Q(301,"CATTR",ZATTR,"")) ; ien of patient list
967"RTN","C0QMU12",339,0)
968 S ZN=$NA(^C0Q(301,ZIEN,1,"B")) ; NAME OF PATIENT LIST IN C0Q PATIENT LIST
969"RTN","C0QMU12",340,0)
970 Q ZN
971"RTN","C0QMU12",341,0)
972 ;
973"RTN","C0QMU12",342,0)
974INLIST(ZLIST,DFN) ; EXTRINSIC FOR IS PATIENT ALREADY IN LIST ZLIST
975"RTN","C0QMU12",343,0)
976 N ZL,ZR
977"RTN","C0QMU12",344,0)
978 S ZL=$O(^C0Q(301,"CATTR",ZLIST,"")) ; IEN OF LIST IN C0Q PATIENT LIST FILE
979"RTN","C0QMU12",345,0)
980 I ZL="" Q 0 ; LIST DOES NOT EXIST
981"RTN","C0QMU12",346,0)
982 S ZR=0 ; ASSUME NOT IN LIST
983"RTN","C0QMU12",347,0)
984 I $D(^C0Q(301,ZL,1,"B",DFN)) S ZR=1 ; PATIENT IS IN LIST
985"RTN","C0QMU12",348,0)
986 Q ZR
987"RTN","C0QMU12",349,0)
988 ;
989"RTN","C0QMU12",350,0)
990LOCPAT(PREFIX,LOC) ;retrieve active outpatients
991"RTN","C0QMU12",351,0)
992 ; PREFIX WILL GO IN C0XLIST(PREFIX_"-PATIENT",DFN)=""
993"RTN","C0QMU12",352,0)
994 ; LOC IS HOSPITAL LOCATION
995"RTN","C0QMU12",353,0)
996 ; Initially, make an empty list (C0Q*1.0*6)
997"RTN","C0QMU12",354,0)
998 S C0QLIST(PREFIX_"Patient")=""
999"RTN","C0QMU12",355,0)
1000 S ULOC=$O(^SC("B",LOC,"")) ; IEN OF HOSPITAL LOCATION
1001"RTN","C0QMU12",356,0)
1002 I ULOC="" D Q ; OOPS
1003"RTN","C0QMU12",357,0)
1004 . W !,"HOSPITAL LOCATION NOT FOUND: ",LOC
1005"RTN","C0QMU12",358,0)
1006 S IDTE=9999999-DTE ; INVERSE DATE
1007"RTN","C0QMU12",359,0)
1008 N ZI
1009"RTN","C0QMU12",360,0)
1010 S ZI="" ; BEGIN AT LATEST DATE FOR THIS LOC IN VISIT FILE
1011"RTN","C0QMU12",361,0)
1012 F S ZI=$O(^AUPNVSIT("AHL",ULOC,ZI)) Q:(ZI="")!(ZI>IDTE) D ; FOR EACH DATE
1013"RTN","C0QMU12",362,0)
1014 . N C0QDATE S C0QDATE=9999999-$P(ZI,".")_"."_$P(ZI,".",2) ; VEN/SMH *5
1015"RTN","C0QMU12",363,0)
1016 . W !,$$FMTE^XLFDT(C0QDATE) ; VEN/SMH *5
1017"RTN","C0QMU12",364,0)
1018 . I ZI="" Q ;
1019"RTN","C0QMU12",365,0)
1020 . N ZJ S ZJ=""
1021"RTN","C0QMU12",366,0)
1022 . F S ZJ=$O(^AUPNVSIT("AHL",ULOC,ZI,ZJ)) Q:ZJ="" D ; FOR EACH VISIT
1023"RTN","C0QMU12",367,0)
1024 . . S DFN=$$GET1^DIQ(9000010,ZJ,.05,"I") ; PATIENT
1025"RTN","C0QMU12",368,0)
1026 . . S C0QLIST(PREFIX_"Patient",DFN)=""
1027"RTN","C0QMU12",369,0)
1028 Q
1029"RTN","C0QMU12",370,0)
1030 ;
1031"RTN","C0QMU12",371,0)
1032EPPAT(ZYR) ; BUILD ALL PATIENT LISTS FOR CLINICS
1033"RTN","C0QMU12",372,0)
1034 ;
1035"RTN","C0QMU12",373,0)
1036 S DTE=3111000
1037"RTN","C0QMU12",374,0)
1038 S MUYR=ZYR
1039"RTN","C0QMU12",375,0)
1040 N ZC,ZN
1041"RTN","C0QMU12",376,0)
1042 S ZN=0
1043"RTN","C0QMU12",377,0)
1044 N ZI S ZI=0
1045"RTN","C0QMU12",378,0)
1046 F S ZI=$O(^SC(ZI)) Q:+ZI=0 D ; FOR EVERY HOSPITAL LOCATION
1047"RTN","C0QMU12",379,0)
1048 . I $$GET1^DIQ(44,ZI_",",2,"I")'="C" Q ; NOT A CLINIC
1049"RTN","C0QMU12",380,0)
1050 . S ZC=$$GET1^DIQ(44,ZI_",",.01) ; NAME OF CLINIC
1051"RTN","C0QMU12",381,0)
1052 . S ZCIEN=ZI ; IEN OF CLINIC
1053"RTN","C0QMU12",382,0)
1054 . S ZN=ZN+1 ; COUNT OF CLINICS
1055"RTN","C0QMU12",383,0)
1056 . S PRE=MUYR_"-EP-"_ZC_"-"
1057"RTN","C0QMU12",384,0)
1058 . D LOCPAT(PRE,ZC)
1059"RTN","C0QMU12",385,0)
1060 W !,"NUMBER OF CLINICS: ",ZN
1061"RTN","C0QMU12",386,0)
1062 D FILE ; CREATE ALL THE EP PATIENT LISTS
1063"RTN","C0QMU12",387,0)
1064 Q
1065"RTN","C0QMU12",388,0)
1066 ;
1067"RTN","C0QMU12",389,0)
1068DOEP ; DO EP COMPUTATIONS
1069"RTN","C0QMU12",390,0)
1070 S ZYR="MU12-"
1071"RTN","C0QMU12",391,0)
1072 N C0QPARM,C0QCLNC
1073"RTN","C0QMU12",392,0)
1074 D INIT("C0QPARM","EP") ; INITIALIZE PARAMETERS
1075"RTN","C0QMU12",393,0)
1076 K C0QLIST ; CLEAR THE LIST
1077"RTN","C0QMU12",394,0)
1078 N ZI S ZI=""
1079"RTN","C0QMU12",395,0)
1080 F S ZI=$O(C0QPARM(ZI)) Q:ZI="" D ; FOR EACH EP
1081"RTN","C0QMU12",396,0)
1082 . S DTE=C0QPARM(ZI,"EPBeginDate") ; beginning of measurement period
1083"RTN","C0QMU12",397,0)
1084 . S EDTE=C0QPARM(ZI,"EPEndDate") ; end of measurement period -- tbd use this
1085"RTN","C0QMU12",398,0)
1086 . S C0QCLNC=C0QPARM(ZI,"CLINICS",1,1) ; only one clinic for now
1087"RTN","C0QMU12",399,0)
1088 . S PRE=ZYR_"EP-"_C0QCLNC_"-"
1089"RTN","C0QMU12",400,0)
1090 . D LOCPAT(PRE,C0QCLNC) ; GET THE PATIENTS
1091"RTN","C0QMU12",401,0)
1092 . I $D(DEBUG) D ZWRITE^C0QUTIL("C0QLIST")
1093"RTN","C0QMU12",402,0)
1094 . M C0QLIST(ZYR_"EP-ALL-PATIENTS")=C0QLIST(PRE_"Patient")
1095"RTN","C0QMU12",403,0)
1096 . ; update parameter list with filter list (1.0*6)
1097"RTN","C0QMU12",404,0)
1098 . S C0QPARM(ZI,"FilterListName")=PRE_"Patient"
1099"RTN","C0QMU12",405,0)
1100 S DFN=""
1101"RTN","C0QMU12",406,0)
1102 S ZYR=ZYR_"EP-"
1103"RTN","C0QMU12",407,0)
1104 D INITCLST ; VEN/SMH - Initialize Empty Lists just in case we don't have
1105"RTN","C0QMU12",408,0)
1106 ; any. C0Q*1*5
1107"RTN","C0QMU12",409,0)
1108 F S DFN=$O(C0QLIST(ZYR_"ALL-PATIENTS",DFN)) Q:DFN="" D ; EACH PATIENT
1109"RTN","C0QMU12",410,0)
1110 . D DEMO^C0QMU122
1111"RTN","C0QMU12",411,0)
1112 . D PROBLEM
1113"RTN","C0QMU12",412,0)
1114 . D ALLERGY
1115"RTN","C0QMU12",413,0)
1116 . ;D MEDS
1117"RTN","C0QMU12",414,0)
1118 . D ERX
1119"RTN","C0QMU12",415,0)
1120 . D SMOKING
1121"RTN","C0QMU12",416,0)
1122 . D VITALS
1123"RTN","C0QMU12",417,0)
1124 D FILE ; FILE THE PATIENT LISTS
1125"RTN","C0QMU12",418,0)
1126 ;
1127"RTN","C0QMU12",419,0)
1128 ; Now process eRx MU measures for these patients
1129"RTN","C0QMU12",420,0)
1130 ; Check for eRx template and code first; if they exist, run the code
1131"RTN","C0QMU12",421,0)
1132 I $D(^C0PX("B","GETMEDS6")),$L($T(SOAP^C0PWS2)) DO
1133"RTN","C0QMU12",422,0)
1134 . N C0QDEBUG S C0QDEBUG=1 ; This causes the code to print out data;
1135"RTN","C0QMU12",423,0)
1136 . D EN^C0QMUERX($$PATLN^C0QMU12(ZYR_"HasERX")) ; Pass the eRx patient list
1137"RTN","C0QMU12",424,0)
1138 ;
1139"RTN","C0QMU12",425,0)
1140 N ZI S ZI=""
1141"RTN","C0QMU12",426,0)
1142 F S ZI=$O(C0QPARM(ZI)) Q:ZI="" D ;
1143"RTN","C0QMU12",427,0)
1144 . N C0QDEBUG S C0QDEBUG=1 ; This causes the code to print out data;
1145"RTN","C0QMU12",428,0)
1146 . I 'C0QPARM(ZI,"EPMeasurementSet"),C0QPARM(ZI,"EPModelPerfSet") D
1147"RTN","C0QMU12",429,0)
1148 . . N C0QCLNC S C0QCLNC=C0QPARM(ZI,"CLINICS",1,1)
1149"RTN","C0QMU12",430,0)
1150 . . N FLN S FLN=C0QPARM(ZI,"FilterListName")
1151"RTN","C0QMU12",431,0)
1152 . . ;
1153"RTN","C0QMU12",432,0)
1154 . . ; 1. BUILD New Measure Set from Model Performance Measure Set
1155"RTN","C0QMU12",433,0)
1156 . . ; Get IEN back of the newly created measure set.
1157"RTN","C0QMU12",434,0)
1158 . . N MSIEN ; Measure Set IEN that gets created
1159"RTN","C0QMU12",435,0)
1160 . . S MSIEN=$$CLONE^C0QMU123(C0QPARM(ZI,"EPModelPerfSet"),C0QCLNC,0,FLN)
1161"RTN","C0QMU12",436,0)
1162 . . ;
1163"RTN","C0QMU12",437,0)
1164 . . ; 2. File Measure Set
1165"RTN","C0QMU12",438,0)
1166 . . N C0QFDA S C0QFDA($$C0QPFN(),C0QPARM(ZI,"IEN")_",",2)=MSIEN
1167"RTN","C0QMU12",439,0)
1168 . . N C0QERR
1169"RTN","C0QMU12",440,0)
1170 . . D FILE^DIE("",$NA(C0QFDA),$NA(C0QERR))
1171"RTN","C0QMU12",441,0)
1172 . . I $D(C0QERR) S $EC=",U1,"
1173"RTN","C0QMU12",442,0)
1174 . . ;
1175"RTN","C0QMU12",443,0)
1176 . . ; 3. Set this IEN to be the one in EPMeasurementSet
1177"RTN","C0QMU12",444,0)
1178 . . S C0QPARM(ZI,"EPMeasurementSet")=MSIEN
1179"RTN","C0QMU12",445,0)
1180 . . ; DONE
1181"RTN","C0QMU12",446,0)
1182 . . ;
1183"RTN","C0QMU12",447,0)
1184 . I 'C0QPARM(ZI,"EPQualitySet"),C0QPARM(ZI,"EPModelQualitySet") D
1185"RTN","C0QMU12",448,0)
1186 . . N C0QCLNC S C0QCLNC=C0QPARM(ZI,"CLINICS",1,1)
1187"RTN","C0QMU12",449,0)
1188 . . N FLN S FLN=C0QPARM(ZI,"FilterListName")
1189"RTN","C0QMU12",450,0)
1190 . . ;
1191"RTN","C0QMU12",451,0)
1192 . . ; 1. BUILD New Measure Set from Model Performance Measure Set
1193"RTN","C0QMU12",452,0)
1194 . . ; Get IEN back of the newly created measure set.
1195"RTN","C0QMU12",453,0)
1196 . . N MSIEN ; Measure Set IEN that gets created
1197"RTN","C0QMU12",454,0)
1198 . . S MSIEN=$$CLONE^C0QMU123(C0QPARM(ZI,"EPModelQualitySet"),C0QCLNC,1,FLN)
1199"RTN","C0QMU12",455,0)
1200 . . ;
1201"RTN","C0QMU12",456,0)
1202 . . ; 2. File Measure Set
1203"RTN","C0QMU12",457,0)
1204 . . N C0QFDA S C0QFDA($$C0QPFN(),C0QPARM(ZI,"IEN")_",",2.1)=MSIEN
1205"RTN","C0QMU12",458,0)
1206 . . N C0QERR
1207"RTN","C0QMU12",459,0)
1208 . . D FILE^DIE("",$NA(C0QFDA),$NA(C0QERR))
1209"RTN","C0QMU12",460,0)
1210 . . I $D(C0QERR) S $EC=",U1,"
1211"RTN","C0QMU12",461,0)
1212 . . ;
1213"RTN","C0QMU12",462,0)
1214 . . ; 3. Set this IEN to be the one in EPMeasurementSet
1215"RTN","C0QMU12",463,0)
1216 . . S C0QPARM(ZI,"EPQualitySet")=MSIEN
1217"RTN","C0QMU12",464,0)
1218 . . ; DONE
1219"RTN","C0QMU12",465,0)
1220 . ;
1221"RTN","C0QMU12",466,0)
1222 . ; Quit if we still don't have measurement sets
1223"RTN","C0QMU12",467,0)
1224 . I 'C0QPARM(ZI,"EPMeasurementSet")&('C0QPARM(ZI,"EPQualitySet")) QUIT
1225"RTN","C0QMU12",468,0)
1226 . ;
1227"RTN","C0QMU12",469,0)
1228 . D UPDATE^C0QUPDT(.G,C0QPARM(ZI,"EPMeasurementSet")) ; UPDATE THE MU MEASUREMENT SET
1229"RTN","C0QMU12",470,0)
1230 . ; VEN/SMH -- Quality Set missing for Outpatient -- adding
1231"RTN","C0QMU12",471,0)
1232 . D UPDATE^C0QUPDT(.G,C0QPARM(ZI,"EPQualitySet")) ; C0Q*1*5
1233"RTN","C0QMU12",472,0)
1234 Q
1235"RTN","C0QMU12",473,0)
1236 ;
1237"RTN","C0QMU12",474,0)
1238DIS ;
1239"RTN","C0QMU12",475,0)
1240 N DFN,DTE,EXDTE S DTE=""
1241"RTN","C0QMU12",476,0)
1242 F D Q:DTE=""
1243"RTN","C0QMU12",477,0)
1244 . S DTE=$O(^DGPM("B",DTE))
1245"RTN","C0QMU12",478,0)
1246 . Q:'DTE
1247"RTN","C0QMU12",479,0)
1248 . ;Q:$P(DTE,".")<3110703
1249"RTN","C0QMU12",480,0)
1250 . Q:$P(DTE,".")<3111000 ; NEW BEGIN DATE FOR FISCAL YEAR 2012
1251"RTN","C0QMU12",481,0)
1252 . S EXDTE=$$FMTE^XLFDT(DTE)
1253"RTN","C0QMU12",482,0)
1254 . N PTFM S PTFM=""
1255"RTN","C0QMU12",483,0)
1256 . D
1257"RTN","C0QMU12",484,0)
1258 . . S PTFM=$O(^DGPM("B",DTE,PTFM))
1259"RTN","C0QMU12",485,0)
1260 . . Q:'PTFM
1261"RTN","C0QMU12",486,0)
1262 . . S DFN=$P(^DGPM(PTFM,0),U,3)
1263"RTN","C0QMU12",487,0)
1264 . . S C0QLIST(ZYR_"Patient",DFN)=""
1265"RTN","C0QMU12",488,0)
1266 . . D DEMO^C0QMU122
1267"RTN","C0QMU12",489,0)
1268 . . D PROBLEM
1269"RTN","C0QMU12",490,0)
1270 . . D ALLERGY
1271"RTN","C0QMU12",491,0)
1272 . . D MEDS4
1273"RTN","C0QMU12",492,0)
1274 . . D RECON2
1275"RTN","C0QMU12",493,0)
1276 . . D ADVDIR
1277"RTN","C0QMU12",494,0)
1278 . . D SMOKING
1279"RTN","C0QMU12",495,0)
1280 . . D VITALS
1281"RTN","C0QMU12",496,0)
1282 . . ;D:$P(DTE,".")>3110912 VTE1
1283"RTN","C0QMU12",497,0)
1284 . . D VTE1
1285"RTN","C0QMU12",498,0)
1286 . . D COD
1287"RTN","C0QMU12",499,0)
1288 . . D EDTIME
1289"RTN","C0QMU12",500,0)
1290 . . I C0QPR D PRINT^C0QMU121
1291"RTN","C0QMU12",501,0)
1292 . . I C0QSS D SS^C0QMU121
1293"RTN","C0QMU12",502,0)
1294 . . I C0QPL D PATLIST^C0QMU121
1295"RTN","C0QMU12",503,0)
1296 Q
1297"RTN","C0QMU12",504,0)
1298 ;
1299"RTN","C0QMU12",505,0)
1300C0QPLF() Q 1130580001.301 ; FILE NUMBER FOR C0Q PATIENT LIST FILE
1301"RTN","C0QMU12",506,0)
1302C0QALFN() Q 1130580001.311 ; FILE NUMBER FOR C0Q PATIENT LIST PATIENT SUBFILE
1303"RTN","C0QMU12",507,0)
1304FILE ; FILE THE PATIENT LISTS TO C0Q PATIENT LIST
1305"RTN","C0QMU12",508,0)
1306 ;
1307"RTN","C0QMU12",509,0)
1308 I '$D(C0QLIST) Q ;
1309"RTN","C0QMU12",510,0)
1310 N LFN S LFN=$$C0QALFN()
1311"RTN","C0QMU12",511,0)
1312 N ZI,ZN
1313"RTN","C0QMU12",512,0)
1314 S ZI=""
1315"RTN","C0QMU12",513,0)
1316 F S ZI=$O(C0QLIST(ZI)) Q:ZI="" D ;
1317"RTN","C0QMU12",514,0)
1318 . S ZN=$O(^C0Q(301,"CATTR",ZI,""))
1319"RTN","C0QMU12",515,0)
1320 . I ZN="" D ; LIST NOT FOUND, CREATE IT
1321"RTN","C0QMU12",516,0)
1322 . . K C0QFDA
1323"RTN","C0QMU12",517,0)
1324 . . S FN=$$C0QPLF ; C0Q PATIENT LIST FILE
1325"RTN","C0QMU12",518,0)
1326 . . S C0QFDA(FN,"+1,",.01)=ZI
1327"RTN","C0QMU12",519,0)
1328 . . S C0QFDA(FN,"+1,",999)=ZI ; ATTRIBUTE
1329"RTN","C0QMU12",520,0)
1330 . . W !,"CREATING ",ZI
1331"RTN","C0QMU12",521,0)
1332 . . D UPDIE ; ADD THE RECORD
1333"RTN","C0QMU12",522,0)
1334 . . S ZN=$O(^C0Q(301,"CATTR",ZI,"")) ; THE NEW IEN
1335"RTN","C0QMU12",523,0)
1336 . ;I ZN="" D Q ; OOPS
1337"RTN","C0QMU12",524,0)
1338 . ;. W !,"ERROR, ATTRIBUTE NOT FOUND IN PATIENT LIST FILE:"_ZI
1339"RTN","C0QMU12",525,0)
1340 . ;S ZN=$$KLNCR(ZN) ; KILL AND RECREATE RECORD ZN
1341"RTN","C0QMU12",526,0)
1342 . N C0QNEW,C0QOLD,C0QRSLT
1343"RTN","C0QMU12",527,0)
1344 . S C0QNEW=$NA(C0QLIST(ZI)) ; THE NEW PATIENT LIST
1345"RTN","C0QMU12",528,0)
1346 . S C0QOLD=$NA(^C0Q(301,ZN,1,"B")) ; THE OLD PATIENT LIST
1347"RTN","C0QMU12",529,0)
1348 . D UNITY^C0QSET("C0QRSLT",C0QNEW,C0QOLD) ; FIND WHAT'S NEW
1349"RTN","C0QMU12",530,0)
1350 . N ZJ,ZK
1351"RTN","C0QMU12",531,0)
1352 . ; FIRST, DELETE THE OLD ONES - NO LONGER IN THE LIST
1353"RTN","C0QMU12",532,0)
1354 . K C0QFDA
1355"RTN","C0QMU12",533,0)
1356 . S ZJ=""
1357"RTN","C0QMU12",534,0)
1358 . F S ZJ=$O(C0QRSLT(2,ZJ)) Q:ZJ="" D ; MARKED WITH A 2 FROM UNITY
1359"RTN","C0QMU12",535,0)
1360 . . S ZK=$O(@C0QOLD@(ZJ,"")) ; GET THE IEN OF THE RECORD TO DELETE
1361"RTN","C0QMU12",536,0)
1362 . . I ZK="" D Q ; OOPS SHOULDN'T HAPPEN
1363"RTN","C0QMU12",537,0)
1364 . . . W !,"INTERNAL ERROR FINDING A PATIENT TO DELETE"
1365"RTN","C0QMU12",538,0)
1366 . . . S $EC=",U1130580001," ; smh - instead of a BREAK
1367"RTN","C0QMU12",539,0)
1368 . . S C0QFDA(LFN,ZK_","_ZN_",",.01)="@"
1369"RTN","C0QMU12",540,0)
1370 . I $D(C0QFDA) D UPDIE ; PROCESS THE DELETIONS
1371"RTN","C0QMU12",541,0)
1372 . ; SECOND, PROCESS THE ADDITIONS
1373"RTN","C0QMU12",542,0)
1374 . K C0QFDA
1375"RTN","C0QMU12",543,0)
1376 . S ZJ="" S ZK=1
1377"RTN","C0QMU12",544,0)
1378 . F S ZJ=$O(C0QRSLT(0,ZJ)) Q:ZJ="" D ; PATIENTS TO ADD ARE MARKED WITH 0
1379"RTN","C0QMU12",545,0)
1380 . . S C0QFDA(LFN,"+"_ZK_","_ZN_",",.01)=ZJ
1381"RTN","C0QMU12",546,0)
1382 . . S ZK=ZK+1
1383"RTN","C0QMU12",547,0)
1384 . I $D(C0QFDA) D UPDIE ; PROCESS THE ADDITIONS
1385"RTN","C0QMU12",548,0)
1386 ;. Q
1387"RTN","C0QMU12",549,0)
1388 ;. K C0QFDA
1389"RTN","C0QMU12",550,0)
1390 ;. N ZJ,ZC
1391"RTN","C0QMU12",551,0)
1392 ;. S ZJ="" S ZC=1
1393"RTN","C0QMU12",552,0)
1394 ;. F S ZJ=$O(C0QLIST(ZI,ZJ)) Q:ZJ="" D ; FOR EACH PAT IN LIST
1395"RTN","C0QMU12",553,0)
1396 ;. . S C0QFDA(LFN,"?+"_ZC_","_ZN_",",.01)=ZJ
1397"RTN","C0QMU12",554,0)
1398 ;. . S ZC=ZC+1
1399"RTN","C0QMU12",555,0)
1400 ;. D UPDIE
1401"RTN","C0QMU12",556,0)
1402 ;. W !,"FOUND:"_ZI
1403"RTN","C0QMU12",557,0)
1404 Q
1405"RTN","C0QMU12",558,0)
1406 ;
1407"RTN","C0QMU12",559,0)
1408KLNCR(ZREC) ; KILL AND RECREATE RECORD ZREC IN PATIENT LIST FILE
1409"RTN","C0QMU12",560,0)
1410 ;
1411"RTN","C0QMU12",561,0)
1412 N C0QFDA,ZFN,LIST,ATTR
1413"RTN","C0QMU12",562,0)
1414 S ZFN=$$C0QPLF() ; FILE NUMBER FOR C0Q PATIENT LIST FILE
1415"RTN","C0QMU12",563,0)
1416 D CLEAN^DILF
1417"RTN","C0QMU12",564,0)
1418 S LIST=$$GET1^DIQ(ZFN,ZREC_",",.01) ; MEASURE NAME
1419"RTN","C0QMU12",565,0)
1420 S ATTR=$$GET1^DIQ(ZFN,ZREC_",",999) ; ATTRIBUTE
1421"RTN","C0QMU12",566,0)
1422 D CLEAN^DILF
1423"RTN","C0QMU12",567,0)
1424 K ZERR
1425"RTN","C0QMU12",568,0)
1426 S C0QFDA(ZFN,ZREC_",",.01)="@" ; GET READY TO DELETE THE MEASURE
1427"RTN","C0QMU12",569,0)
1428 D FILE^DIE(,"C0QFDA","ZERR") ; KILL THE SUBFILE
1429"RTN","C0QMU12",570,0)
1430 I $D(ZERR) S ZZERR=ZZERR ; ZZERR DOESN'T EXIST, INVOKE THE ERROR TRAP IF TASKED
1431"RTN","C0QMU12",571,0)
1432 ;. W "ERROR",!
1433"RTN","C0QMU12",572,0)
1434 ;. ZWR ZERR
1435"RTN","C0QMU12",573,0)
1436 ;. B
1437"RTN","C0QMU12",574,0)
1438 K C0QFDA
1439"RTN","C0QMU12",575,0)
1440 S C0QFDA(ZFN,"+1,",.01)=LIST ; GET READY TO RECREATE THE RECORD
1441"RTN","C0QMU12",576,0)
1442 S C0QFDA(ZFN,"+1,",999)=ATTR ; ATTRIBUTE
1443"RTN","C0QMU12",577,0)
1444 D UPDIE ; CREATE THE SUBFILE
1445"RTN","C0QMU12",578,0)
1446 N ZR ; NEW IEN FOR THE RECORD
1447"RTN","C0QMU12",579,0)
1448 S ZR=$O(^C0Q(301,"CATTR",ATTR,""))
1449"RTN","C0QMU12",580,0)
1450 ;
1451"RTN","C0QMU12",581,0)
1452 Q ZR
1453"RTN","C0QMU12",582,0)
1454 ;
1455"RTN","C0QMU12",583,0)
1456UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS
1457"RTN","C0QMU12",584,0)
1458 K ZERR
1459"RTN","C0QMU12",585,0)
1460 D CLEAN^DILF
1461"RTN","C0QMU12",586,0)
1462 D UPDATE^DIE("","C0QFDA","","ZERR")
1463"RTN","C0QMU12",587,0)
1464 I $D(ZERR) S ZZERR=ZZERR ; ZZERR DOESN'T EXIST, INVOKE THE ERROR TRAP IF TASKED
1465"RTN","C0QMU12",588,0)
1466 K C0QFDA
1467"RTN","C0QMU12",589,0)
1468 Q
1469"RTN","C0QMU12",590,0)
1470 ;
1471"RTN","C0QMU12",591,0)
1472END ;end of C0QPRML;
1473"RTN","C0QMU123")
14740^2^B4142401
1475"RTN","C0QMU123",1,0)
1476C0QMU123 ; VEN/SMH - Clone a Measure Set and give a new name and filter. ; 10/22/12 4:33pm
1477"RTN","C0QMU123",2,0)
1478 ;;1.0;QUALITY MEASURES;**6**;;Build 1
1479"RTN","C0QMU123",3,0)
1480 QUIT
1481"RTN","C0QMU123",4,0)
1482 ;
1483"RTN","C0QMU123",5,0)
1484CLONE(MSIEN,CLNNM,ISQM,FLNAME) ; Private $$ ; Clone a measure set into a new one
1485"RTN","C0QMU123",6,0)
1486 ; Input:
1487"RTN","C0QMU123",7,0)
1488 ; 1. Measurement Set IEN to clone
1489"RTN","C0QMU123",8,0)
1490 ; 2. Clinic Name for which this Measurement Set would apply (FT)
1491"RTN","C0QMU123",9,0)
1492 ; 3. Boolean: Is Quality Measure?
1493"RTN","C0QMU123",10,0)
1494 ; 4. Filter List Name
1495"RTN","C0QMU123",11,0)
1496 ;
1497"RTN","C0QMU123",12,0)
1498 ; Output:
1499"RTN","C0QMU123",13,0)
1500 ; IEN of Created measure set.
1501"RTN","C0QMU123",14,0)
1502 ;
1503"RTN","C0QMU123",15,0)
1504 ; Get data from Model Set
1505"RTN","C0QMU123",16,0)
1506 N C0QIENS S C0QIENS=MSIEN_"," ; Input to GETS call
1507"RTN","C0QMU123",17,0)
1508 N C0QOUT,C0QERR ; Output Variables in GETS call.
1509"RTN","C0QMU123",18,0)
1510 D GETS^DIQ(1130580001.201,C0QIENS,"**","",$NA(C0QOUT),$NA(C0QERR))
1511"RTN","C0QMU123",19,0)
1512 ;
1513"RTN","C0QMU123",20,0)
1514 I $D(C0QERR) S $EC=",U1," ; Crash in case of error. Shouldn't happen.
1515"RTN","C0QMU123",21,0)
1516 ;
1517"RTN","C0QMU123",22,0)
1518 ; Deal with D0 stuff first.
1519"RTN","C0QMU123",23,0)
1520 ; Merge D0 level into a new FDA array.
1521"RTN","C0QMU123",24,0)
1522 N C0QNEW ; New FDA
1523"RTN","C0QMU123",25,0)
1524 M C0QNEW(1130580001.201,"?+1,")=C0QOUT(1130580001.201,C0QIENS)
1525"RTN","C0QMU123",26,0)
1526 ;
1527"RTN","C0QMU123",27,0)
1528 ; Change .01
1529"RTN","C0QMU123",28,0)
1530 ; NOTE: Field name is 30 characters. But HL is max 30 chars too!
1531"RTN","C0QMU123",29,0)
1532 ; So we have to truncate it.
1533"RTN","C0QMU123",30,0)
1534 ; If Is Quality Measure, Use QM, otherwise, use Performance Report.
1535"RTN","C0QMU123",31,0)
1536 S C0QNEW(1130580001.201,"?+1,",.01)=$E(CLNNM,1,27)_" "_$S(ISQM:"QM",1:"PR")
1537"RTN","C0QMU123",32,0)
1538 ;
1539"RTN","C0QMU123",33,0)
1540 ; Deal with D1 level
1541"RTN","C0QMU123",34,0)
1542 N I S I=0 ; Looper
1543"RTN","C0QMU123",35,0)
1544 N CNT S CNT=1 ; IENS counter ; Will become 2 and larger. Not to collide with the initial 1.
1545"RTN","C0QMU123",36,0)
1546 ;
1547"RTN","C0QMU123",37,0)
1548 ; For each record in D1 level
1549"RTN","C0QMU123",38,0)
1550 F S I=$O(C0QOUT(1130580001.2011,I)) Q:'I D
1551"RTN","C0QMU123",39,0)
1552 . S CNT=CNT+1
1553"RTN","C0QMU123",40,0)
1554 . ; Grab the Measure field
1555"RTN","C0QMU123",41,0)
1556 . S C0QNEW(1130580001.2011,"?+"_CNT_",?+1,",.01)=C0QOUT(1130580001.2011,I,.01)
1557"RTN","C0QMU123",42,0)
1558 . ;
1559"RTN","C0QMU123",43,0)
1560 . ; Put the Filter lists on
1561"RTN","C0QMU123",44,0)
1562 . S C0QNEW(1130580001.2011,"?+"_CNT_",?+1,",1.2)=FLNAME
1563"RTN","C0QMU123",45,0)
1564 . S C0QNEW(1130580001.2011,"?+"_CNT_",?+1,",2.2)=FLNAME
1565"RTN","C0QMU123",46,0)
1566 ;
1567"RTN","C0QMU123",47,0)
1568 ; File Data.
1569"RTN","C0QMU123",48,0)
1570 N C0QIEN,C0QERR ; Returned IEN, Error array
1571"RTN","C0QMU123",49,0)
1572 D UPDATE^DIE("E",$NA(C0QNEW),$NA(C0QIEN),$NA(C0QERR))
1573"RTN","C0QMU123",50,0)
1574 I $D(C0QERR) S $EC=",U1,"
1575"RTN","C0QMU123",51,0)
1576 ;
1577"RTN","C0QMU123",52,0)
1578 Q C0QIEN(1) ; Quit with IEN for ?+1.
1579"RTN","C0QMU123",53,0)
1580 ;
1581"RTN","C0QMU123",54,0)
1582 ; SAM(1130580001.201,"17,",.01)="DR OFFICE QM REPORT"
1583"RTN","C0QMU123",55,0)
1584 ; SAM(1130580001.201,"17,",.02)="AUG 1,2012"
1585"RTN","C0QMU123",56,0)
1586 ; SAM(1130580001.201,"17,",.03)="OCT 31,2012"
1587"RTN","C0QMU123",57,0)
1588 ; SAM(1130580001.201,"17,",.04)=""
1589"RTN","C0QMU123",58,0)
1590 ; SAM(1130580001.201,"17,",.05)=""
1591"RTN","C0QMU123",59,0)
1592 ; SAM(1130580001.201,"17,",.2)=""
1593"RTN","C0QMU123",60,0)
1594 ; SAM(1130580001.201,"17,",.3)=""
1595"RTN","C0QMU123",61,0)
1596 ; SAM(1130580001.201,"17,",.4)=""
1597"RTN","C0QMU123",62,0)
1598 ; SAM(1130580001.2011,"1,17,",.01)="MU EP NQF 0013"
1599"RTN","C0QMU123",63,0)
1600 ; SAM(1130580001.2011,"1,17,",1.1)=1
1601"RTN","C0QMU123",64,0)
1602 ; SAM(1130580001.2011,"1,17,",1.2)="MU12-EP-DR OFFICE-Patient"
1603"RTN","C0QMU123",65,0)
1604 ; SAM(1130580001.2011,"1,17,",2.1)=1
1605"RTN","C0QMU123",66,0)
1606 ; SAM(1130580001.2011,"1,17,",2.2)="MU12-EP-DR OFFICE-Patient"
1607"RTN","C0QMU123",67,0)
1608 ; SAM(1130580001.2011,"1,17,",3)=100
1609"RTN","C0QMU123",68,0)
1610 ; SAM(1130580001.2011,"2,17,",.01)="MU EP NQF 0028A"
1611"RTN","C0QMU123",69,0)
1612 ; SAM(1130580001.2011,"2,17,",1.1)=0
1613"RTN","C0QMU123",70,0)
1614 ; SAM(1130580001.2011,"2,17,",1.2)="MU12-EP-DR OFFICE-Patient"
1615"RTN","C0QMU123",71,0)
1616 ; SAM(1130580001.2011,"2,17,",2.1)=1
1617"RTN","C0QMU123",72,0)
1618 ; SAM(1130580001.2011,"2,17,",2.2)="MU12-EP-DR OFFICE-Patient"
1619"RTN","C0QMU123",73,0)
1620 ; SAM(1130580001.2011,"2,17,",3)=0
1621"RTN","C0QMU123",74,0)
1622 ; SAM(1130580001.2011,"3,17,",.01)="MU EP NQF 0028B"
1623"RTN","C0QMU123",75,0)
1624 ; SAM(1130580001.2011,"3,17,",1.1)=0
1625"RTN","C0QMU123",76,0)
1626 ; SAM(1130580001.2011,"3,17,",1.2)="MU12-EP-DR OFFICE-Patient"
1627"RTN","C0QMU123",77,0)
1628 ; SAM(1130580001.2011,"3,17,",2.1)=1
1629"RTN","C0QMU123",78,0)
1630 ; SAM(1130580001.2011,"3,17,",2.2)="MU12-EP-DR OFFICE-Patient"
1631"RTN","C0QMU123",79,0)
1632 ; SAM(1130580001.2011,"3,17,",3)=0
1633"RTN","C0QMU123",80,0)
1634 ; SAM(1130580001.2011,"4,17,",.01)="MU EP NQF 0421"
1635"RTN","C0QMU123",81,0)
1636 ; SAM(1130580001.2011,"4,17,",1.1)=1
1637"RTN","C0QMU123",82,0)
1638 ; SAM(1130580001.2011,"4,17,",1.2)="MU12-EP-DR OFFICE-Patient"
1639"RTN","C0QMU123",83,0)
1640 ; SAM(1130580001.2011,"4,17,",2.1)=1
1641"RTN","C0QMU123",84,0)
1642 ; SAM(1130580001.2011,"4,17,",2.2)="MU12-EP-DR OFFICE-Patient"
1643"RTN","C0QMU123",85,0)
1644 ; SAM(1130580001.2011,"4,17,",3)=100
1645"RTN","C0QMU123",86,0)
1646 ; SAM(1130580001.20111,"1,1,17,",.01)="MOUSE,MICKEY"
1647"RTN","C0QMU123",87,0)
1648 ; SAM(1130580001.20111,"1,4,17,",.01)="MOUSE,MICKEY"
1649"RTN","C0QMU123",88,0)
1650 ; SAM(1130580001.20112,"1,1,17,",.01)="MOUSE,MICKEY"
1651"RTN","C0QMU123",89,0)
1652 ; SAM(1130580001.20112,"1,2,17,",.01)="MOUSE,MICKEY"
1653"RTN","C0QMU123",90,0)
1654 ; SAM(1130580001.20112,"1,3,17,",.01)="MOUSE,MICKEY"
1655"RTN","C0QMU123",91,0)
1656 ; SAM(1130580001.20112,"1,4,17,",.01)="MOUSE,MICKEY"
1657"RTN","C0QMU123",92,0)
1658 ;
1659"VER")
16608.0^22.0
1661"^DD",1130580001.401,1130580001.401,6.1,0)
1662MODEL PERFORMANCE MEASURE SET^P1130580001.201'^C0Q(201,^6;1^Q
1663"^DD",1130580001.401,1130580001.401,6.1,3)
1664Enter a measure set to base created measure sets on
1665"^DD",1130580001.401,1130580001.401,6.1,21,0)
1666^^4^4^3121022^
1667"^DD",1130580001.401,1130580001.401,6.1,21,1,0)
1668Entering a selection here lets the software know that you want to create
1669"^DD",1130580001.401,1130580001.401,6.1,21,2,0)
1670a new Measure Set based on another measure set. The Measure Set's name
1671"^DD",1130580001.401,1130580001.401,6.1,21,3,0)
1672will be CLINIC NAME + PR, where the clinic name is truncated
1673"^DD",1130580001.401,1130580001.401,6.1,21,4,0)
1674to 27 characters, and where PR stands for Performance Report.
1675"^DD",1130580001.401,1130580001.401,6.1,"DT")
16763121022
1677"^DD",1130580001.401,1130580001.401,6.2,0)
1678MODEL QUALITY MEASURE SET^P1130580001.201'^C0Q(201,^6;2^Q
1679"^DD",1130580001.401,1130580001.401,6.2,3)
1680Enter a measure set to base created measure sets on
1681"^DD",1130580001.401,1130580001.401,6.2,21,0)
1682^^4^4^3121022^
1683"^DD",1130580001.401,1130580001.401,6.2,21,1,0)
1684Entering a selection here lets the software know that you want to create
1685"^DD",1130580001.401,1130580001.401,6.2,21,2,0)
1686a new Measure Set based on another measure set. The Measure Set's name
1687"^DD",1130580001.401,1130580001.401,6.2,21,3,0)
1688will be CLINIC NAME + QM, where the clinic name is truncated
1689"^DD",1130580001.401,1130580001.401,6.2,21,4,0)
1690to 27 characters, and where QM stands for Quality Measures.
1691"^DD",1130580001.401,1130580001.401,6.2,"DT")
16923121022
1693**END**
1694**END**
Note: See TracBrowser for help on using the repository browser.