Index: /qrda/C0Q/C0QMAIN.m
===================================================================
--- /qrda/C0Q/C0QMAIN.m	(revision 1014)
+++ /qrda/C0Q/C0QMAIN.m	(revision 1014)
@@ -0,0 +1,296 @@
+C0QMAIN ; GPL - Quality Reporting Main Processing ;10/13/10  17:05
+ ;;0.1;C0Q;nopatch;noreleasedate;
+ ;Copyright 2009 George Lilly.  Licensed under the terms of the GNU
+ ;General Public License See attached copy of the License.
+ ;
+ ;This program is free software; you can redistribute it and/or modify
+ ;it under the terms of the GNU General Public License as published by
+ ;the Free Software Foundation; either version 2 of the License, or
+ ;(at your option) any later version.
+ ;
+ ;This program is distributed in the hope that it will be useful,
+ ;but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ ;GNU General Public License for more details.
+ ;
+ ;You should have received a copy of the GNU General Public License along
+ ;with this program; if not, write to the Free Software Foundation, Inc.,
+ ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ ;
+ Q
+ ;
+C0QQFN() Q 1130580001.101 ; FILE NUMBER FOR C0Q QUALITY MEASURE FILE
+C0QMFN() Q 1130580001.201 ; FILE NUMBER FOR C0Q MEASUREMENT FILE
+C0QMMFN() Q 1130580001.2011 ; FN FOR MEASURE SUBFILE
+C0QMMNFN() Q 1130580001.20111 ; FN FOR NUMERATOR SUBFILE
+C0QMMDFN() Q 1130580001.20112 ; FN FOR DENOMINATOR SUBFILE
+RLSTFN() Q 810.5 ; FN FOR REMINDER PATIENT LIST FILE
+RLSTPFN() Q 810.53 ; FN FOR REMINDER PATIENT LIST PATIENT SUBFILE
+ ;
+EXPORT	  ; EXPORT ENTRY POINT FOR CCR
+	; Select a patient.
+	N C0QMS,C0QM,C0QMIEN,C0QNA,C0QNORD
+	S C0QNORD=3 ; WE WANT DENOMINATORS USE 1 FOR NUMERATORS
+	S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+	I Y<1 Q  ; EXIT
+	S C0QMS=$P(Y,U,1) ; SET THE MEASURE SET
+	S DIC=$$C0QQFN,DIC(0)="AEMQ" D ^DIC
+	I Y<1 Q  ; EXIT
+	S C0QM=$P(Y,U,1) ; SET THE MEASURE IEN
+	N C0QMN S C0QMN=$P(Y,U,2) ; SET THE MEASURE NAME
+	S C0QMIEN=$O(^C0Q(201,C0QMS,5,"B",C0QM,""))
+	S C0QNA=$NA(^C0Q(201,C0QMS,5,C0QMIEN,C0QNORD,"B"))
+	N ZI S ZI=""
+	F  S ZI=$O(@C0QNA@(ZI)) Q:ZI=""  D  ;
+	. W !,ZI
+	. N ONAME S ONAME=C0QMN_"_"_ZI_"_CCR_V1_0_0.xml"
+	. D XPAT^C0CCCR(ZI,,,ONAME) ; EXPORT TO A FILE
+	Q
+	;
+NBYP ; ENTRY POINT FOR COMMAND LINE BY PATIENT MEASURE LISTING
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ W !,"NUMERATOR PATIENT LIST",!
+ N C0QPAT
+ D PATS(.C0QPAT,MSIEN,"N") ; GET THE NUMERATOR PATIENT LIST
+ I $D(C0QPAT) D  ; LIST RETURNED
+ . ;
+ Q
+ ;
+DBYP ; ENTRY POINT FOR COMMAND LINE BY PATIENT MEASURE LISTING
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ N C0QPAT
+ W !,"DENOMINATOR PATIENT LIST",!
+ D PATS(.C0QPAT,MSIEN,"D") ; GET THE NUMERATOR PATIENT LIST
+ I $D(C0QPAT) D  ; LIST RETURNED
+ . ;
+ . ;
+ Q
+ ;
+ENEXP ; EXTERNAL MENU ENTRY POINT FOR EXP
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ D EXP(MSIEN)
+ Q
+ ; 
+EXP(MSET,NOEX) ; EXPORT ALL PATIENTS FOR MEASURE SET IEN MSET
+ ; ALSO, WRITE OUT THE BY PATIENT MEASURE TEXT FILE
+ ; IF NOEX=1, THEN ONLY THE MEASURE TEXT FILE GETS WRITTEN, NO EXPORTS ARE 
+ ; DONE
+ I '$D(NOEX) S NOEX=0
+ N ZQI,ZARY,ZFN,ODIR
+ S ZQI=""
+ D PATS(.ZARY,MSET,"D",1)
+ S ZFN="MEASURES-BY-PATIENT.txt"
+ S ODIR=^TMP("C0CCCR","ODIR") ; OUTPUT DIRECTORY
+ S GARY=$NA(^TMP("C0Q",$J))
+ K @GARY
+ M @GARY=ZARY
+ S GARY1=$NA(@GARY@(1))
+ N ZY
+ S ZY=$$OUTPUT^C0CXPATH(GARY1,ZFN,ODIR)
+ W !,ZY
+ I NOEX=1 Q  ; DO NOT EXPORT
+ F  S ZQI=$O(ZARY(ZQI)) Q:ZQI=""  D  ; FOR EACH PATIENT
+ . D XPAT^C0CCCR(+ZARY(ZQI)) ; 
+ Q
+ ;
+PATS(ZRTN,MSIEN,NORD,QT) ; BUILDS A LIST OF PATIENTS AND THEIR MEASURES
+ ; FOR MEASURE SET MSET. NORD="N" (DEFAULT) MEANS NUMERATOR PATIENTS
+ ; NORD="D" MEANS DENOMINATOR PATIENTS 
+ ; QT=1 MEANS QUIET
+ I $G(QT)'=1 S QT=0
+ N ZI,ZJ,ZK,ZIDX,ZN,ZM
+ S ZN=0 ; COUNT OF PATIENTS
+ S ZI=""
+ ; GOING TO USE THE NUMERATOR BY PATIENT INDEX
+ I '$D(NORD) S NORD="N"
+ I '((NORD="N")!(NORD="D")) S NORD="N"
+ I NORD="N" S ZIDX=$NA(^C0Q(201,"ANBYP"))
+ E  S ZIDX=$NA(^C0Q(201,"ADBYP"))
+ F  S ZI=$O(@ZIDX@(ZI)) Q:ZI=""  D  ; FOR EACH PATIENT
+ . I $O(@ZIDX@(ZI,MSIEN,""))'="" D  ; IF PATIENT IS IN THIS SET
+ . . I 'QT W !,$$GET1^DIQ(2,ZI_",",.01) ;PATIENT NAME
+ . . S ZN=ZN+1 ; INCREMENT PATIENT COUNT
+ . . S ZRTN(ZN)=ZI
+ . E  Q  ; NEXT PATIENT
+ . S (ZJ,ZK)=""
+ . F  S ZJ=$O(@ZIDX@(ZI,MSIEN,ZJ)) Q:ZJ=""  D  ; FOR EACH MEASURE
+ . . ;S ZL=$O(@ZIDX@(ZI,MSIEN,ZJ,"")) ; MEASURE IS FOURTH
+ . . S ZK=""
+ . . S ZK=$$GET1^DIQ($$C0QMMFN,ZJ_","_MSIEN_",",.01,"I")
+ . . ;W !,"ZK:",ZK," ZJ:",ZJ," ZI",ZI,!
+ . . S ZM=$$GET1^DIQ($$C0QQFN,ZK_",",.01) ; MEASURE NAME
+ . . I 'QT W " ",ZM
+ . . S ZRTN(ZN)=ZRTN(ZN)_" "_ZM
+ Q
+ ;
+EN ; ENTRY POINT FOR COMMAND LINE AND MENU ACCESS TO C0QRPC
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ D C0QRPC(.G,MSIEN)
+ Q
+ ;
+EN2 ; SUMMARY ENTRY POINT FOR COMMAND LINE AND MENU ACCESS TO C0QRPC
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ S C0QSUM=1
+ D C0QRPC(.G,MSIEN)
+ Q
+ ;
+C0QRPC(RTN,MSET,FMT,NOPURGE) ; RPC FORMAT 
+ ; MSET IS THE NAME OR IEN OF THE MEASURE SET
+ ; RTN IS THE RETURN ARRAY OF THE RESULTS PASSED BY REFERENCE
+ ; FMT IS THE FORMAT OF THE OUTPUT - "ARRAY" OR "HTML" OR "XML"
+ ;  NOTE: ARRAY IS DEFAULT AND THE OTHERS ARE NOT IMPLEMENTED YET
+ ; IF NOPURGE IS 1, PATIENT LISTS WILL NOT BE DELETED BEFORE ADDING
+ ; IF NOPURGE IS 0 OR OMITTED, PATIENT LISTS WILL BE DELETED THEN ADDED
+ W !,"LOOKING FOR MEASURE SET ",MSET,!
+ N ZI S ZI=""
+ N C0QM ; FOR HOLDING THE MEASURES IN THE SET
+ D LIST^DIC($$C0QMMFN,","_MSET_",",".01I") ; GET ALL THE MEASURES
+ D DELIST("C0QM")
+ N ZII S ZII=""
+ F  S ZII=$O(C0QM(ZII)) Q:ZII=""  D  ; FOR EACH MEASURE
+ . D CLEARMEA(MSET,ZII) ; FIRST CLEAR OUT THE MEASURE
+ K C0QM
+ D CLEAN^DILF
+ D LIST^DIC($$C0QMMFN,","_MSET_",",".01I") ; GET ALL THE MEASURES AGAIN
+ D DELIST("C0QM")
+ F  S ZII=$O(C0QM(ZII)) Q:ZII=""  D  ; FOR EACH MEASURE
+ . S ZI=$P(C0QM(ZII),U,1) ; IEN OF THE MEASURE IN THE C0Q QUALITY MEAS FILE
+ . ;W $$GET1^DIQ($$C0QQFN,ZI_",","DISPLAY NAME"),!
+ . ;N C0QNL,C0QDL ;NUMERATOR AND DENOMINATOR LIST POINTERS
+ . W !,"MEASURE: ",$$GET1^DIQ($$C0QQFN,ZI_",",.01),! ; PRINT THE MEASURE NAME
+ . ; FOLLOW THE POINTERS TO THE C0Q QUALITYM MEASURE FILE AND GET LIST PTRS
+ . S C0QNL=$$GET1^DIQ($$C0QQFN,ZI_",",1,"I") ; NUMERATOR POINTER
+ . S C0QDL=$$GET1^DIQ($$C0QQFN,ZI_",",2,"I") ; DENOMINATOR POINTER
+ . ; NOW FOLLOW THE LIST POINTERS TO THE REMINDER PATIENT LIST FILE
+ . W "NUMERATOR: ",$$GET1^DIQ($$RLSTFN,C0QNL_",","NAME"),!
+ . ; FIRST PROCESS THE NUMERATOR
+ . K ^TMP("DILIST",$J)
+ . D LIST^DIC($$RLSTPFN,","_C0QNL_",",".01I") ; GET THE LIST OF PATIENTS
+ . ;D DELIST("G") ;
+ . ;I $D(G) ZWR G
+ . K C0QNUMP
+ . S NCNT=$O(^TMP("DILIST",$J,"ID",""),-1) ; NUMERATOR COUNT
+ . N ZJ S ZJ=""
+ . F  S ZJ=$O(^TMP("DILIST",$J,"ID",ZJ)) Q:ZJ=""  D  ;
+ . . S ZDFN=^TMP("DILIST",$J,"ID",ZJ,.01)
+ . . S C0QNUMP("N",ZJ,ZDFN)=""
+ . I '$G(C0QSUM) ZWR ^TMP("DILIST",$J,1,*) ; LIST THE PATIENT NAMES
+ . D ADDPATS(MSET,ZII,"C0QNUMP")
+ . ; NEXT PROCESS THE DENOMINATOR
+ . W "DENOMINATOR: ",$$GET1^DIQ($$RLSTFN,C0QDL_",","NAME"),!
+ . K ^TMP("DILIST",$J)
+ . D LIST^DIC($$RLSTPFN,","_C0QDL_",",".01I") ; GET THE LIST OF PATIENTS
+ . ;D DELIST("G")
+ . ;I $D(G) ZWR G
+ . ;S ZJ=""
+ . S DCNT=$O(^TMP("DILIST",$J,"ID",""),-1) ; DENOMONIATOR COUNT
+ . K C0QDEMP
+ . F  S ZJ=$O(^TMP("DILIST",$J,"ID",ZJ)) Q:ZJ=""  D  ;
+ . . S ZDFN=^TMP("DILIST",$J,"ID",ZJ,.01)
+ . . S C0QDEMP("D",ZJ,ZDFN)=""
+ . D ADDPATS(MSET,ZII,"C0QDEMP")
+ . I $G(C0QSUM)'=1 ZWR ^TMP("DILIST",$J,1,*) ; LIST THE PATIENT NAMES
+ . E  D  ;
+ . . W "NUM CNT: ",NCNT
+ . . W "  DEN CNT: ",DCNT,!
+ Q
+ ;
+CLEARMEA(MSET,MEAS) ; DELETE AND THEN RECREATE AS EMPTY THE
+ ; MEASURE MEAS IN MEASURE SET IEN MSET
+ ;
+ N C0QFDA,MFN,MEASURE
+ S MFN=$$C0QMMFN() ; FILE NUMBER FOR MEASURE SUBFILE
+ D CLEAN^DILF
+ S MEASURE=$$GET1^DIQ(MFN,MEAS_","_MSET_",",.01,"I") ;  MEASURE POINTER
+ D CLEAN^DILF
+ K ZERR
+ S C0QFDA(MFN,MEAS_","_MSET_",",.01)="@" ; GET READY TO DELETE THE MEASURE
+ D FILE^DIE(,"C0QFDA","ZERR") ; KILL THE SUBFILE
+ I $D(ZERR) D ;
+ . W "ERROR",!
+ . ZWR ZERR
+ . B
+ K C0QFDA
+ S C0QFDA(MFN,"+1,"_MSET_",",.01)=MEASURE ; GET READY TO RECREATE THE SUBFILE
+ D UPDIE ; CREATE THE SUBFILE
+ Q
+ ;
+ADDPATS(MSET,MEAS,PATS) ;ADD PATIENTS TO NUMERATOR AND DENOMINATOR
+ ; OF MEASURE SET IEN MSET MEASURE IEN MEAS
+ ; PATS IS OF THE FORM @PATS@("N",X,DFN)="" AND @PATS@("D",X,DFN)=""
+ ; WHERE N IS FOR NUMERATOR AND D IS FOR DENOMINATOR AND X 1..N
+ ; IF PATIENTS ARE ALREADY THERE, THEY WILL NOT BE ADDED AGAIN
+ N C0QI,C0QJ
+ N C0QFDA
+ S C0QI=""
+ F  S C0QI=$O(@PATS@("N",C0QI)) Q:C0QI=""  D  ; FOR EACH NUMERATOR PATIENT
+ . S C0QFDA($$C0QMMNFN,"?+"_C0QI_","_MEAS_","_MSET_",",.01)=$O(@PATS@("N",C0QI,""))
+ ;W "ADDING NUMERATOR",!
+ ;I $D(C0QFDA) ZWR C0QFDA
+ I $D(C0QFDA) D UPDIE
+ K C0QFDA
+ S C0QI=""
+ F  S C0QI=$O(@PATS@("D",C0QI)) Q:C0QI=""  D  ; FOR EACH NUMERATOR PATIENT
+ . S C0QFDA($$C0QMMDFN,"?+"_C0QI_","_MEAS_","_MSET_",",.01)=$O(@PATS@("D",C0QI,""))
+ ;W "ADDING DENOMINATOR",!
+ ;I $D(C0QFDA) ZWR C0QFDA
+ I $D(C0QFDA) D UPDIE
+ Q
+ ;
+DELIST(RTN) ; DECODES ^TMP("DILIST",$J) INTO
+ ; @RTN@(IEN)=INTERNAL VALUE^EXTERNAL VALUE
+ N ZI,IV,EV,ZDI,ZIEN
+ S ZI=""
+ S ZDI=$NA(^TMP("DILIST",$J))
+ K @RTN
+ F  S ZI=$O(@ZDI@(1,ZI)) Q:ZI=""  D  ;
+ . S EV=@ZDI@(1,ZI) ;EXTERNAL VALUE
+ . S IV=$G(@ZDI@("ID",ZI,.01)) ; INTERNAL VALUE
+ . S ZIEN=@ZDI@(2,ZI) ; IEN
+ . S @RTN@(ZIEN)=IV_"^"_EV
+ Q
+ ;
+DELPATS(MSET,MEAS,NDEL) ; DELETE PATIENTS FROM NUMERATOR AND DENOMINATOR
+ ; FOR A MEASURE (ONLY AFFECTS THE C0Q MEASURES FILE)
+ ; MSET IS THE IEN OF THE MEASURE SET
+ ; MEAS IS THE IEN OF THE MEASURE
+ ; NDEL IS A LIST OF PATIENTS TO NOT DELETE (NOT IMPLEMENTED YET)
+ ;  IN THE FORM @NDEL@("N",IEN,DFN)="" FOR NUMERATOR PATIENTS
+ ;  AND @NDEL@("D",IEN,DFN)="" FOR DENOMINATOR PATIENTS WHERE IEN IS 
+ ;  THE IEN OF THE PATIENT RECORD IN THE SUBFILE
+ ;  THIS FEATURE WILL ALLOW EFFICIENCIES FOR LONG PATIENT LISTS
+ ;  IN THAT PATIENTS THAT ARE GOING TO BE ADDED ARE NOT FIRST DELETED
+ N C0QI,C0QJ
+ D LIST^DIC($$C0QMMFN,","_MSET_",")
+ K C0QFDA
+ ZWR ^TMP("DILIST",$J,*)
+ ZWR ^TMP("DIERR",$J,*)
+ D 
+ Q
+ ;
+UPDIE	; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS
+ K ZERR
+ D CLEAN^DILF
+ D UPDATE^DIE("","C0QFDA","","ZERR")
+ I $D(ZERR) D  ;
+ . W "ERROR",!
+ . ZWR ZERR
+ . B
+ K C0QFDA
+ Q
+ ;
Index: /qrda/C0Q/C0QMAIN2.m
===================================================================
--- /qrda/C0Q/C0QMAIN2.m	(revision 1014)
+++ /qrda/C0Q/C0QMAIN2.m	(revision 1014)
@@ -0,0 +1,210 @@
+C0QMAIN ; GPL - Quality Reporting Main Processing ;10/13/10  17:05
+ ;;0.1;C0Q;nopatch;noreleasedate;
+ ;Copyright 2009 George Lilly.  Licensed under the terms of the GNU
+ ;General Public License See attached copy of the License.
+ ;
+ ;This program is free software; you can redistribute it and/or modify
+ ;it under the terms of the GNU General Public License as published by
+ ;the Free Software Foundation; either version 2 of the License, or
+ ;(at your option) any later version.
+ ;
+ ;This program is distributed in the hope that it will be useful,
+ ;but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ ;GNU General Public License for more details.
+ ;
+ ;You should have received a copy of the GNU General Public License along
+ ;with this program; if not, write to the Free Software Foundation, Inc.,
+ ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ ;
+ Q
+ ;
+C0QQFN() Q 1130580001.101 ; FILE NUMBER FOR C0Q QUALITY MEASURE FILE
+C0QMFN() Q 1130580001.201 ; FILE NUMBER FOR C0Q MEASUREMENT FILE
+C0QMMFN() Q 1130580001.2011 ; FN FOR MEASURE SUBFILE
+C0QMMNFN() Q 1130580001.20111 ; FN FOR NUMERATOR SUBFILE
+C0QMMDFN() Q 1130580001.20112 ; FN FOR DENOMINATOR SUBFILE
+RLSTFN() Q 810.5 ; FN FOR REMINDER PATIENT LIST FILE
+RLSTPFN() Q 810.53 ; FN FOR REMINDER PATIENT LIST PATIENT SUBFILE
+ ;
+NBYP ; ENTRY POINT FOR COMMAND LINE BY PATIENT MEASURE LISTING
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ W !,"NUMERATOR PATIENT LIST",!
+ N C0QPAT
+ D PATS(.C0QPAT,MSIEN,"N") ; GET THE NUMERATOR PATIENT LIST
+ I $D(C0QPAT) D  ; LIST RETURNED
+ .
+ . ;
+ Q
+ ;
+DBYP ; ENTRY POINT FOR COMMAND LINE BY PATIENT MEASURE LISTING
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ N C0QPAT
+ W !,"DENOMINATOR PATIENT LIST",!
+ D PATS(.C0QPAT,MSIEN,"D") ; GET THE NUMERATOR PATIENT LIST
+ I $D(C0QPAT) D  ; LIST RETURNED
+ . ;
+ . ;
+ Q
+ ;
+PATS(ZRTN,MSIEN,NORD,PAT,EFORM) ; BUILDS A LIST OF PATIENTS AND THEIR MEASURES
+ ; FOR MEASURE SET MSIEN. NORD="N" (DEFAULT) MEANS NUMERATOR PATIENTS
+ ; NORD="D" MEANS DENOMINATOR PATIENTS 
+ ; PAT IS THE IEN OF A SINGLE PATIENT FOR PROCESSING. IF PAT IS OMMITED OR "*",
+ ;  ALL PATIENTS IN THE MEASURE SET NUM/DENOM WILL BE PROCESSED
+ ; EFORM=1 MEANS ZRTN IS IN "EXTERNAL FORMAT" - THIS IS FOR USE AS AN RPC
+ ; EXTERNAL FORMAT IS AN ARRAY OF STRINGS 
+ ;  ZRTN(x)=DFN^NAME^MEASURE IEN^MEASURE NAME 
+ ;  ONE FOR EACH MEASURE FOR EACH PATIENT IN THE NUMERATOR/DENOMINATOR
+ ; EFORM=0 (DEFAULT) MEANS "INTERNAL FORMAT" - THIS IS FOR MUMPS CALLS
+ ;  ZRTN(DFN,MEASURE IEN)="" IT IS A PAIR OF POINTERS IN INDEX FORMAT
+ ;  ONE FOR EACH MEASURE FOR EACH PATIENT IN THE NUMERATOR/DENOMINATOR
+ ;
+ N ZI,ZJ,ZK,ZIDX
+ S ZI=""
+ ; GOING TO USE THE NUMERATOR BY PATIENT INDEX
+ I '$D(NORD) S NORD="N"
+ I '((NORD="N")!(NORD="D")) S NORD="N"
+ I NORD="N" S ZIDX=$NA(^C0Q(201,"ANBYP"))
+ E  S ZIDX=$NA(^C0Q(201,"ADBYP"))
+ F  S ZI=$O(@ZIDX@(ZI)) Q:ZI=""  D  ; FOR EACH PATIENT
+ . I $O(@ZIDX@(ZI,MSIEN,""))'="" D  ; IF PATIENT IS IN THIS SET
+ . . W !,$$GET1^DIQ(2,ZI_",",.01) ;PATIENT NAME
+ . E  Q  ; NEXT PATIENT
+ . S (ZJ,ZK)=""
+ . F  S ZJ=$O(@ZIDX@(ZI,MSIEN,ZJ)) Q:ZJ=""  D  ; FOR EACH MEASURE
+ . . ;S ZL=$O(@ZIDX@(ZI,MSIEN,ZJ,"")) ; MEASURE IS FOURTH
+ . . S ZK=""
+ . . S ZK=$$GET1^DIQ($$C0QMMFN,ZJ_","_MSIEN_",",.01,"I")
+ . . ;W !,"ZK:",ZK," ZJ:",ZJ," ZI",ZI,!
+ . . W " ",$$GET1^DIQ($$C0QQFN,ZK_",",.01) ; MEASURE NAME
+ Q
+ ;
+EN ; ENTRY POINT FOR COMMAND LINE AND MENU ACCESS TO C0QRPC
+ ;
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+ I Y<1 Q  ; EXIT
+ N MSIEN S MSIEN=+Y
+ D C0QRPC(.G,MSIEN)
+ Q
+ ;
+C0QRPC(RTN,MSET,FMT,NOPURGE) ; RPC FORMAT 
+ ; MSET IS THE NAME OR IEN OF THE MEASURE SET
+ ; RTN IS THE RETURN ARRAY OF THE RESULTS PASSED BY REFERENCE
+ ; FMT IS THE FORMAT OF THE OUTPUT - "ARRAY" OR "HTML" OR "XML"
+ ;  NOTE: ARRAY IS DEFAULT AND THE OTHERS ARE NOT IMPLEMENTED YET
+ ; IF NOPURGE IS 1, PATIENT LISTS WILL NOT BE DELETED BEFORE ADDING
+ ; IF NOPURGE IS 0 OR OMITTED, PATIENT LISTS WILL BE DELETED THEN ADDED
+ W !,"LOOKING FOR MEASURE SET ",MSET,!
+ N ZI S ZI=""
+ N C0QM ; FOR HOLDING THE MEASURES IN THE SET
+ D LIST^DIC($$C0QMMFN,","_MSET_",",".01I") ; GET ALL THE MEASURES
+ D DELIST("C0QM")
+ N ZII S ZII=""
+ F  S ZII=$O(C0QM(ZII)) Q:ZII=""  D  ; FOR EACH MEASURE
+ . S ZI=$P(C0QM(ZII),U,1) ; IEN OF THE MEASURE IN THE C0Q QUALITY MEAS FILE
+ . ;W $$GET1^DIQ($$C0QQFN,ZI_",","DISPLAY NAME"),!
+ . ;N C0QNL,C0QDL ;NUMERATOR AND DENOMINATOR LIST POINTERS
+ . W "MEASURE: ",$$GET1^DIQ($$C0QQFN,ZI_",",.01),! ; PRINT THE MEASURE NAME
+ . ; FOLLOW THE POINTERS TO THE C0Q QUALITY MEASURE FILE AND GET LIST PTRS
+ . S C0QNL=$$GET1^DIQ($$C0QQFN,ZI_",",1,"I") ; NUMERATOR POINTER
+ . S C0QDL=$$GET1^DIQ($$C0QQFN,ZI_",",2,"I") ; DENOMINATOR POINTER
+ . ; NOW FOLLOW THE LIST POINTERS TO THE REMINDER PATIENT LIST FILE
+ . W "NUMERATOR: ",$$GET1^DIQ($$RLSTFN,C0QNL_",","NAME"),!
+ . ; FIRST PROCESS THE NUMERATOR
+ . K ^TMP("DILIST",$J)
+ . D LIST^DIC($$RLSTPFN,","_C0QNL_",",".01I") ; GET THE LIST OF PATIENTS
+ . ;D DELIST("G") ;
+ . ;I $D(G) ZWR G
+ . K C0QNUMP
+ . N ZJ S ZJ=""
+ . F  S ZJ=$O(^TMP("DILIST",$J,"ID",ZJ)) Q:ZJ=""  D  ;
+ . . S ZDFN=^TMP("DILIST",$J,"ID",ZJ,.01)
+ . . S C0QNUMP("N",ZJ,ZDFN)=""
+ . ZWR ^TMP("DILIST",$J,1,*) ; LIST THE PATIENT NAMES
+ . D ADDPATS(MSET,ZII,"C0QNUMP")
+ . ; NEXT PROCESS THE DENOMINATOR
+ . W "DENOMINATOR: ",$$GET1^DIQ($$RLSTFN,C0QDL_",","NAME"),!
+ . K ^TMP("DILIST",$J)
+ . D LIST^DIC($$RLSTPFN,","_C0QDL_",",".01I") ; GET THE LIST OF PATIENTS
+ . ;D DELIST("G")
+ . ;I $D(G) ZWR G
+ . ;S ZJ=""
+ . K C0QDEMP
+ . F  S ZJ=$O(^TMP("DILIST",$J,"ID",ZJ)) Q:ZJ=""  D  ;
+ . . S ZDFN=^TMP("DILIST",$J,"ID",ZJ,.01)
+ . . S C0QDEMP("D",ZJ,ZDFN)=""
+ . D ADDPATS(MSET,ZII,"C0QDEMP")
+ . ZWR ^TMP("DILIST",$J,1,*) ; LIST THE PATIENT NAMES
+ Q
+ ;
+ADDPATS(MSET,MEAS,PATS) ;ADD PATIENTS TO NUMERATOR AND DENOMINATOR
+ ; OF MEASURE SET IEN MSET MEASURE IEN MEAS
+ ; PATS IS OF THE FORM @PATS@("N",X,DFN)="" AND @PATS@("D",X,DFN)=""
+ ; WHERE N IS FOR NUMERATOR AND D IS FOR DENOMINATOR AND X 1..N
+ ; IF PATIENTS ARE ALREADY THERE, THEY WILL NOT BE ADDED AGAIN
+ N C0QI,C0QJ
+ N C0QFDA
+ S C0QI=""
+ F  S C0QI=$O(@PATS@("N",C0QI)) Q:C0QI=""  D  ; FOR EACH NUMERATOR PATIENT
+ . S C0QFDA($$C0QMMNFN,"?+"_C0QI_","_MEAS_","_MSET_",",.01)=$O(@PATS@("N",C0QI,""))
+ ;W "ADDING NUMERATOR",!
+ ;I $D(C0QFDA) ZWR C0QFDA
+ I $D(C0QFDA) D UPDIE
+ K C0QFDA
+ S C0QI=""
+ F  S C0QI=$O(@PATS@("D",C0QI)) Q:C0QI=""  D  ; FOR EACH NUMERATOR PATIENT
+ . S C0QFDA($$C0QMMDFN,"?+"_C0QI_","_MEAS_","_MSET_",",.01)=$O(@PATS@("D",C0QI,""))
+ ;W "ADDING DENOMINATOR",!
+ ;I $D(C0QFDA) ZWR C0QFDA
+ I $D(C0QFDA) D UPDIE
+ Q
+ ;
+DELIST(RTN) ; DECODES ^TMP("DILIST",$J) INTO
+ ; @RTN@(IEN)=INTERNAL VALUE^EXTERNAL VALUE
+ N ZI,IV,EV,ZDI,ZIEN
+ S ZI=""
+ S ZDI=$NA(^TMP("DILIST",$J))
+ K @RTN
+ F  S ZI=$O(@ZDI@(1,ZI)) Q:ZI=""  D  ;
+ . S EV=@ZDI@(1,ZI) ;EXTERNAL VALUE
+ . S IV=$G(@ZDI@("ID",ZI,.01)) ; INTERNAL VALUE
+ . S ZIEN=@ZDI@(2,ZI) ; IEN
+ . S @RTN@(ZIEN)=IV_"^"_EV
+ Q
+ ;
+DELPATS(MSET,MEAS,NDEL) ; DELETE PATIENTS FROM NUMERATOR AND DENOMINATOR
+ ; FOR A MEASURE (ONLY AFFECTS THE C0Q MEASURES FILE)
+ ; MSET IS THE IEN OF THE MEASURE SET
+ ; MEAS IS THE IEN OF THE MEASURE
+ ; NDEL IS A LIST OF PATIENTS TO NOT DELETE (NOT IMPLEMENTED YET)
+ ;  IN THE FORM @NDEL@("N",IEN,DFN)="" FOR NUMERATOR PATIENTS
+ ;  AND @NDEL@("D",IEN,DFN)="" FOR DENOMINATOR PATIENTS WHERE IEN IS 
+ ;  THE IEN OF THE PATIENT RECORD IN THE SUBFILE
+ ;  THIS FEATURE WILL ALLOW EFFICIENCIES FOR LONG PATIENT LISTS
+ ;  IN THAT PATIENTS THAT ARE GOING TO BE ADDED ARE NOT FIRST DELETED
+ N C0QI,C0QJ
+ D LIST^DIC($$C0QMMFN,","_MSET_",")
+ K C0QFDA
+ ZWR ^TMP("DILIST",$J,*)
+ ZWR ^TMP("DIERR",$J,*)
+ D 
+ Q
+ ;
+UPDIE	; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS
+ K ZERR
+ D CLEAN^DILF
+ D UPDATE^DIE("","C0QFDA","","ZERR")
+ I $D(ZERR) D  ;
+ . W "ERROR",!
+ . ZWR ZERR
+ . B
+ K C0QFDA
+ Q
+ ;
Index: /qrda/C0Q/C0Q_1_0_0_T1.KID
===================================================================
--- /qrda/C0Q/C0Q_1_0_0_T1.KID	(revision 1014)
+++ /qrda/C0Q/C0Q_1_0_0_T1.KID	(revision 1014)
@@ -0,0 +1,1728 @@
+KIDS Distribution saved on Nov 19, 2010@17:04:10
+initial build of C0Q Quality Reporting Package
+**KIDS**:C0Q*1.0*0^
+
+**INSTALL NAME**
+C0Q*1.0*0
+"BLD",7338,0)
+C0Q*1.0*0^^0^3101119^n
+"BLD",7338,4,0)
+^9.64PA^1130580001.101^2
+"BLD",7338,4,1130580001.101,0)
+1130580001.101
+"BLD",7338,4,1130580001.101,222)
+y^y^f^^n^^y^o^n
+"BLD",7338,4,1130580001.201,0)
+1130580001.201
+"BLD",7338,4,1130580001.201,222)
+y^y^f^^^^n
+"BLD",7338,4,"B",1130580001.101,1130580001.101)
+
+"BLD",7338,4,"B",1130580001.201,1130580001.201)
+
+"BLD",7338,6.3)
+1
+"BLD",7338,"KRN",0)
+^9.67PA^779.2^20
+"BLD",7338,"KRN",.4,0)
+.4
+"BLD",7338,"KRN",.4,"NM",0)
+^9.68A^3^3
+"BLD",7338,"KRN",.4,"NM",1,0)
+C0Q PRINT BY PATIENT    FILE #1130580001.201^1130580001.201^0
+"BLD",7338,"KRN",.4,"NM",2,0)
+C0Q PRINT MEASUREMENT SET    FILE #1130580001.201^1130580001.201^0
+"BLD",7338,"KRN",.4,"NM",3,0)
+C0Q PRINT QUALITY MEASURES    FILE #1130580001.101^1130580001.101^0
+"BLD",7338,"KRN",.4,"NM","B","C0Q PRINT BY PATIENT    FILE #1130580001.201",1)
+
+"BLD",7338,"KRN",.4,"NM","B","C0Q PRINT MEASUREMENT SET    FILE #1130580001.201",2)
+
+"BLD",7338,"KRN",.4,"NM","B","C0Q PRINT QUALITY MEASURES    FILE #1130580001.101",3)
+
+"BLD",7338,"KRN",.401,0)
+.401
+"BLD",7338,"KRN",.402,0)
+.402
+"BLD",7338,"KRN",.402,"NM",0)
+^9.68A^2^2
+"BLD",7338,"KRN",.402,"NM",1,0)
+C0Q MEASUREMENT SET DEFINE    FILE #1130580001.201^1130580001.201^0
+"BLD",7338,"KRN",.402,"NM",2,0)
+C0Q QUALITY MEASURE DEFINITION    FILE #1130580001.101^1130580001.101^0
+"BLD",7338,"KRN",.402,"NM","B","C0Q MEASUREMENT SET DEFINE    FILE #1130580001.201",1)
+
+"BLD",7338,"KRN",.402,"NM","B","C0Q QUALITY MEASURE DEFINITION    FILE #1130580001.101",2)
+
+"BLD",7338,"KRN",.403,0)
+.403
+"BLD",7338,"KRN",.5,0)
+.5
+"BLD",7338,"KRN",.84,0)
+.84
+"BLD",7338,"KRN",3.6,0)
+3.6
+"BLD",7338,"KRN",3.8,0)
+3.8
+"BLD",7338,"KRN",9.2,0)
+9.2
+"BLD",7338,"KRN",9.8,0)
+9.8
+"BLD",7338,"KRN",9.8,"NM",0)
+^9.68A^1^1
+"BLD",7338,"KRN",9.8,"NM",1,0)
+C0QMAIN^^0^B69544556
+"BLD",7338,"KRN",9.8,"NM","B","C0QMAIN",1)
+
+"BLD",7338,"KRN",19,0)
+19
+"BLD",7338,"KRN",19,"NM",0)
+^9.68A^11^11
+"BLD",7338,"KRN",19,"NM",1,0)
+C0Q BY PATIENT NUMERATOR^^0
+"BLD",7338,"KRN",19,"NM",2,0)
+C0Q DENOMINATOR PATIENT LIST^^0
+"BLD",7338,"KRN",19,"NM",3,0)
+C0Q DISPLAY MEASURE SET^^0
+"BLD",7338,"KRN",19,"NM",4,0)
+C0Q DISPLAY QUALITY MEASURES^^0
+"BLD",7338,"KRN",19,"NM",5,0)
+C0Q EXPORT CCR BY MEASURE^^0
+"BLD",7338,"KRN",19,"NM",6,0)
+C0Q EXPORT MEASURE SET^^0
+"BLD",7338,"KRN",19,"NM",7,0)
+C0Q LIST MEASURE SET^^0
+"BLD",7338,"KRN",19,"NM",8,0)
+C0Q MEASURE SET DEFINITION^^0
+"BLD",7338,"KRN",19,"NM",9,0)
+C0Q QUALITY MEASURE DEFINITION^^0
+"BLD",7338,"KRN",19,"NM",10,0)
+C0Q QUALITY MEASUREMENT MENU^^0
+"BLD",7338,"KRN",19,"NM",11,0)
+C0Q SUMMARY QUALITY MEASURES^^0
+"BLD",7338,"KRN",19,"NM","B","C0Q BY PATIENT NUMERATOR",1)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q DENOMINATOR PATIENT LIST",2)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q DISPLAY MEASURE SET",3)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q DISPLAY QUALITY MEASURES",4)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q EXPORT CCR BY MEASURE",5)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q EXPORT MEASURE SET",6)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q LIST MEASURE SET",7)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q MEASURE SET DEFINITION",8)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q QUALITY MEASURE DEFINITION",9)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q QUALITY MEASUREMENT MENU",10)
+
+"BLD",7338,"KRN",19,"NM","B","C0Q SUMMARY QUALITY MEASURES",11)
+
+"BLD",7338,"KRN",19.1,0)
+19.1
+"BLD",7338,"KRN",101,0)
+101
+"BLD",7338,"KRN",409.61,0)
+409.61
+"BLD",7338,"KRN",771,0)
+771
+"BLD",7338,"KRN",779.2,0)
+779.2
+"BLD",7338,"KRN",870,0)
+870
+"BLD",7338,"KRN",8989.51,0)
+8989.51
+"BLD",7338,"KRN",8989.52,0)
+8989.52
+"BLD",7338,"KRN",8994,0)
+8994
+"BLD",7338,"KRN","B",.4,.4)
+
+"BLD",7338,"KRN","B",.401,.401)
+
+"BLD",7338,"KRN","B",.402,.402)
+
+"BLD",7338,"KRN","B",.403,.403)
+
+"BLD",7338,"KRN","B",.5,.5)
+
+"BLD",7338,"KRN","B",.84,.84)
+
+"BLD",7338,"KRN","B",3.6,3.6)
+
+"BLD",7338,"KRN","B",3.8,3.8)
+
+"BLD",7338,"KRN","B",9.2,9.2)
+
+"BLD",7338,"KRN","B",9.8,9.8)
+
+"BLD",7338,"KRN","B",19,19)
+
+"BLD",7338,"KRN","B",19.1,19.1)
+
+"BLD",7338,"KRN","B",101,101)
+
+"BLD",7338,"KRN","B",409.61,409.61)
+
+"BLD",7338,"KRN","B",771,771)
+
+"BLD",7338,"KRN","B",779.2,779.2)
+
+"BLD",7338,"KRN","B",870,870)
+
+"BLD",7338,"KRN","B",8989.51,8989.51)
+
+"BLD",7338,"KRN","B",8989.52,8989.52)
+
+"BLD",7338,"KRN","B",8994,8994)
+
+"DATA",1130580001.101,1,0)
+M1^41^40^2.16.840.1.113883.3.249.11.2
+"DATA",1130580001.101,1,1)
+CMS Measure #1: Diabetes Mellitus: Hemoglobin A1c Poor Control in Diabetes Mellitus
+"DATA",1130580001.101,1,4)
+PQRI-1
+"DATA",1130580001.101,1,5)
+Hemoglobin A1c Poor Control in Diabetes Mellitus
+"DATA",1130580001.101,1,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,1,6,1,0)
+Percentage of patients 18 through 75 years with diabetes melli
+"DATA",1130580001.101,1,6,2,0)
+tus who had most recent hemoglobin A1C greater than 9.0%
+"DATA",1130580001.101,2,0)
+M5^47^46^2.16.840.1.113883.3.249.11.5
+"DATA",1130580001.101,2,1)
+CMS Measure #5: Heart Failure: Angiotensin-Converting Enzyme (ACE) Inhibitor or Angiotensin Receptor Blocker (ARB) Therapy for Left Ventricular Systolic Dysfunction (LVSD)
+"DATA",1130580001.101,2,4)
+PQRI-5
+"DATA",1130580001.101,2,5)
+Angiotensin-Converting Enzyme (ACE) Inhibitor or Angiotensin Receptor Blocker (ARB) Therapy for Left Ventricular Systolic Dysfunction (LVSD)
+"DATA",1130580001.101,2,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,2,6,1,0)
+Percentage of patients 18 years and older with a diagnosis of 
+"DATA",1130580001.101,2,6,2,0)
+heart failure and LVSD who were prescribed an ACE inhbitor or ARB therapy
+"DATA",1130580001.101,3,0)
+M112^26^25^2.16.840.1.113883.3.249.11.9
+"DATA",1130580001.101,3,1)
+Measure #112: Preventive Care and Screening: Screening Mammography
+"DATA",1130580001.101,3,4)
+PQRI-112
+"DATA",1130580001.101,3,5)
+Screening Mammography
+"DATA",1130580001.101,3,6,0)
+^1130580001.111^2^2^3101014^^
+"DATA",1130580001.101,3,6,1,0)
+Percentage of womaen aged 40 through 69 years who had a mammog
+"DATA",1130580001.101,3,6,2,0)
+ram to screen for breast cancer within 24 months
+"DATA",1130580001.101,4,0)
+M124^33^33^2.16.840.1.113883.3.249.11.11
+"DATA",1130580001.101,4,1)
+Measure #124: Health Information Technology (HIT): Adoption/Use of Electronic Health Records
+"DATA",1130580001.101,4,4)
+PQRI-124
+"DATA",1130580001.101,4,5)
+Adoption/Use of Electronic Health Records (EHR)
+"DATA",1130580001.101,4,6,0)
+^^3^3^3101013^
+"DATA",1130580001.101,4,6,1,0)
+Documents whether provider has adopted and is using health inf
+"DATA",1130580001.101,4,6,2,0)
+ormation technology. To qualify, the provider must havea adopted and be 
+"DATA",1130580001.101,4,6,3,0)
+using a certified/qualified electronic health record (EHR)
+"DATA",1130580001.101,5,0)
+M128^58^31^2.16.840.1.113883.3.249.11.54
+"DATA",1130580001.101,5,1)
+Measure #128: Preventive Care and Screening: Body Mass Index (BMI) Screening and Follow-Up
+"DATA",1130580001.101,5,4)
+PQRI-128
+"DATA",1130580001.101,5,5)
+Body Mass Index (BMI) Screening and Follow-Up
+"DATA",1130580001.101,5,6,0)
+^1130580001.111^5^5^3101014^^
+"DATA",1130580001.101,5,6,1,0)
+Percentage of patients aged 18 yesrs and older with a calculate BMI in 
+"DATA",1130580001.101,5,6,2,0)
+the past 6 months or during the current visit documented in the medical 
+"DATA",1130580001.101,5,6,3,0)
+record and if the most recent BMI is ourtide parameters, a follow-up plan 
+"DATA",1130580001.101,5,6,4,0)
+is documented. Ages 65 and older BMI equal to or greater than 30 or less 
+"DATA",1130580001.101,5,6,5,0)
+than 22 and ages 18-64, BMI greater than or equal to 25 or less than 18.5
+"DATA",1130580001.101,6,0)
+M47^20^48^2.16.840.1.113883.3.249.11.52
+"DATA",1130580001.101,6,1)
+Measure #47: Advance Care Plan
+"DATA",1130580001.101,6,4)
+PQRI-47
+"DATA",1130580001.101,6,5)
+Advance Care Plan
+"DATA",1130580001.101,6,6,0)
+^1130580001.111^5^5^3101014^^^
+"DATA",1130580001.101,6,6,1,0)
+Percentage of patients age 65 and older who have an advanced care plan or 
+"DATA",1130580001.101,6,6,2,0)
+surrogate decision maker documented in the medical record or documented 
+"DATA",1130580001.101,6,6,3,0)
+in the medical record that an advance care plan was discussed but the 
+"DATA",1130580001.101,6,6,4,0)
+patient did not wish or was not able to name a surrogate decision maker 
+"DATA",1130580001.101,6,6,5,0)
+or provide an advance care plan.
+"DATA",1130580001.101,7,0)
+M48^24^23^2.16.840.1.113883.3.249.11.53
+"DATA",1130580001.101,7,1)
+Measure #48: Urinary Incontinence: Assessment of Presence or Absence of Urinary Incontinence in Women Aged 65 Years and Older
+"DATA",1130580001.101,7,4)
+PQRI-48
+"DATA",1130580001.101,7,5)
+Assessment of Presence or Absence of Urinary Incontinence in Women Aged 65 Years and Older
+"DATA",1130580001.101,7,6,0)
+^^3^3^3101013^
+"DATA",1130580001.101,7,6,1,0)
+Percentage of patients equal to or older than 65 years of age at the 
+"DATA",1130580001.101,7,6,2,0)
+beginning of the measurement perion who were assesed for the presence or 
+"DATA",1130580001.101,7,6,3,0)
+absence of urinary incontinence within 12 months
+"DATA",1130580001.101,8,0)
+M2^43^42^2.16.840.1.113883.3.249.11.3
+"DATA",1130580001.101,8,1)
+Measure #2: Diabetes Mellitus: Low Density Lipoprotein (LDL-C) Control in Diabetes Mellitus
+"DATA",1130580001.101,8,4)
+PQRI-2
+"DATA",1130580001.101,8,5)
+Low Density Lipoprotein (LDL-C) Control in Diabetes Mellitus
+"DATA",1130580001.101,8,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,8,6,1,0)
+Percentage of patients 18 through 75 years with diabetes melli
+"DATA",1130580001.101,8,6,2,0)
+tus who had most recent LDL-C level in control (less than 100 mg./dL)
+"DATA",1130580001.101,9,0)
+M3^45^44^2.16.840.1.113883.3.249.11.4
+"DATA",1130580001.101,9,1)
+CMS Measure #3: Diabetes Mellitus: High Blood Pressure Control in Diabetes Mellitus - QRDA Cat I template
+"DATA",1130580001.101,9,4)
+PQRI-3
+"DATA",1130580001.101,9,5)
+High Blood Pressure Control in Diabetes Mellitus
+"DATA",1130580001.101,9,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,9,6,1,0)
+Percentage of patients 18 through 75 years with diabetes melli
+"DATA",1130580001.101,9,6,2,0)
+tus who had most recent blood pressure in control (less than 140/80 mmHg)
+"DATA",1130580001.101,10,0)
+M7^35^34^2.16.840.1.113883.3.249.11.6
+"DATA",1130580001.101,10,1)
+CMS Measure #7: Coronary Artery Disease (CAD): Beta-Blocker Therapy for CAD Patients with Prior Myocardial Infarction (MI)
+"DATA",1130580001.101,10,4)
+PQRI-7
+"DATA",1130580001.101,10,5)
+Percentage of patients 18 aged 18 years and older wit a diagnosis of CAD and prior MI who were prescribed beta-blocker therapy
+"DATA",1130580001.101,10,6,0)
+^^3^3^3101013^
+"DATA",1130580001.101,10,6,1,0)
+Percentage of patients aged 18 years and older with a diagnosis of 
+"DATA",1130580001.101,10,6,2,0)
+coronary artery disease and a prior MI who where prescribed beta-blocker 
+"DATA",1130580001.101,10,6,3,0)
+therapy
+"DATA",1130580001.101,11,0)
+M110^81^80^2.16.840.1.113883.3.249.11.7
+"DATA",1130580001.101,11,1)
+Measure #110: Preventive Care and Screening: Influenza Immunization for Patients >= 50 Years
+"DATA",1130580001.101,11,4)
+PQRI-110
+"DATA",1130580001.101,11,5)
+Influenza Immunization for Patients >= 50 Years
+"DATA",1130580001.101,11,6,0)
+^1130580001.111^2^2^3101014^^
+"DATA",1130580001.101,11,6,1,0)
+Percentage of patients aged 50 years and older who received an
+"DATA",1130580001.101,11,6,2,0)
+ influenza immunization during the flu season (September through February)
+"DATA",1130580001.101,12,0)
+M111^71^68^2.16.840.1.113883.3.249.11.8
+"DATA",1130580001.101,12,1)
+Measure #111: Preventive Care and Screening: Pneumonia Vaccination for Patients 65 Years and Older
+"DATA",1130580001.101,12,4)
+PQRI-111
+"DATA",1130580001.101,12,5)
+Pneumonia Vaccination for Patients 65 Years and Older
+"DATA",1130580001.101,12,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,12,6,1,0)
+Percentage of patients afed 65 years and older who have ever r
+"DATA",1130580001.101,12,6,2,0)
+eceived a pneumoccal vaccine
+"DATA",1130580001.101,13,0)
+M113^67^66^2.16.840.1.113883.3.249.11.10
+"DATA",1130580001.101,13,1)
+Measure #113: Preventive Care and Screening: Colorectal Cancer Screening
+"DATA",1130580001.101,13,4)
+PQRI-113
+"DATA",1130580001.101,13,5)
+Colorectal Cancer Screening
+"DATA",1130580001.101,13,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,13,6,1,0)
+Percentage of patients aged 50 through 80 who received the app
+"DATA",1130580001.101,13,6,2,0)
+ropriate colorectal cancer screening
+"DATA",1130580001.101,14,0)
+M39^65^64^2.16.840.1.113883.3.249.11.51
+"DATA",1130580001.101,14,1)
+Measure #39: Screening or Therapy for Osteoporosis for Women Aged 65 Years and Older
+"DATA",1130580001.101,14,4)
+PQRI-39
+"DATA",1130580001.101,14,5)
+Screening or Therapy for Osteoporosis for Women Aged 65 Years and Older
+"DATA",1130580001.101,14,6,0)
+^^3^3^3101013^
+"DATA",1130580001.101,14,6,1,0)
+Percentage of patients who had a DXA measurement ordered or pe
+"DATA",1130580001.101,14,6,2,0)
+rformed at least once since age 60 or pharmacologic therapy prescribed 
+"DATA",1130580001.101,14,6,3,0)
+within 12 months before the end of the measurement period
+"DATA",1130580001.101,16,0)
+M173^50^49^2.16.840.1.113883.3.249.11.55
+"DATA",1130580001.101,16,1)
+Measure #173: Preventive Care and Screening: Unhealthy Alcohol Use - Screening
+"DATA",1130580001.101,16,4)
+PQRI-173
+"DATA",1130580001.101,16,5)
+Preventive Care and Screening: Unhealthy Alcohol Use - Screening
+"DATA",1130580001.101,16,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,16,6,1,0)
+Percentage of patients aged 18 years and older who were screen
+"DATA",1130580001.101,16,6,2,0)
+ed for unhealthy alcohol use using a systematic method within 24 months
+"DATA",1130580001.101,17,0)
+M0013^52^77^2.16.840.1.113883.3.249.11.56
+"DATA",1130580001.101,17,1)
+Measure #0013: Hypertension (HTN): Blood Pressure Measurement - QRDA Cat I template
+"DATA",1130580001.101,17,4)
+PQRI-13
+"DATA",1130580001.101,17,5)
+Hypertension (HTN): Blood Pressure Measurement
+"DATA",1130580001.101,17,6,0)
+^^3^3^3101013^
+"DATA",1130580001.101,17,6,1,0)
+Percentage of patients aged 18 years and older with a diagnosi
+"DATA",1130580001.101,17,6,2,0)
+s of hypertension in the beginning of the measurement period with a blood 
+"DATA",1130580001.101,17,6,3,0)
+pressure recorded
+"DATA",1130580001.101,18,0)
+M0022^73^61^2.16.840.1.113883.3.249.11.57
+"DATA",1130580001.101,18,1)
+Measure #0022: Drugs to be avoided in the Elderly
+"DATA",1130580001.101,18,4)
+PQRI-22
+"DATA",1130580001.101,18,5)
+Drugs to be avoided in the elderly
+"DATA",1130580001.101,18,6,0)
+^^2^2^3101013^
+"DATA",1130580001.101,18,6,1,0)
+Percentage of patients aged 65 years and older who received at least one 
+"DATA",1130580001.101,18,6,2,0)
+drug to be avoided in the elderly in the measurement period
+"DATA",1130580001.101,19,0)
+M0028^79^78^2.16.840.1.113883.3.249.11.59
+"DATA",1130580001.101,19,1)
+Measure #0028: Preventive Care and Screening: Tobacco Use: Screening and Cessation Intervention
+"DATA",1130580001.101,19,4)
+PQRI-28
+"DATA",1130580001.101,19,5)
+Preventive care and Screening: Tobacco Use: Screening and Cessation Intervention
+"DATA",1130580001.101,19,6,0)
+^^4^4^3101013^
+"DATA",1130580001.101,19,6,1,0)
+Percentage of patients aged 18 years of older who were screene
+"DATA",1130580001.101,19,6,2,0)
+d about tobacco use at least once during the two year measurement period 
+"DATA",1130580001.101,19,6,3,0)
+AND who received smoking cessation counseling if identified as a tobacco 
+"DATA",1130580001.101,19,6,4,0)
+user
+"DATA",1130580001.101,20,0)
+M0038^85^84^2.16.840.1.113883.3.249.11.60
+"DATA",1130580001.101,20,1)
+Measure #0038: Childhood Immunization Status
+"DATA",1130580001.101,20,4)
+PQRI-38
+"DATA",1130580001.101,20,5)
+Childhood immumnization status
+"DATA",1130580001.101,20,6,0)
+^^4^4^3101013^
+"DATA",1130580001.101,20,6,1,0)
+Percentage of children who turn two years of age during the me
+"DATA",1130580001.101,20,6,2,0)
+asurement period who have had 4 DTaP/DT, 3 IPV, 1 MMR and 3 H influenza 
+"DATA",1130580001.101,20,6,3,0)
+type B, 3 hepatitis B, 1 chicken pox vaccine (VZV) and 4 pneumoccal 
+"DATA",1130580001.101,20,6,4,0)
+conjugate vaccines by their second birthday
+"DATA",1130580001.101,21,0)
+M0024^72^70
+"FIA",1130580001.101)
+C0Q QUAILITY MEASURE
+"FIA",1130580001.101,0)
+^C0Q(101,
+"FIA",1130580001.101,0,0)
+1130580001.101
+"FIA",1130580001.101,0,1)
+y^y^f^^n^^y^o^n
+"FIA",1130580001.101,0,10)
+
+"FIA",1130580001.101,0,11)
+
+"FIA",1130580001.101,0,"RLRO")
+
+"FIA",1130580001.101,1130580001.101)
+0
+"FIA",1130580001.101,1130580001.111)
+0
+"FIA",1130580001.201)
+C0Q MEASUREMENTS
+"FIA",1130580001.201,0)
+^C0Q(201,
+"FIA",1130580001.201,0,0)
+1130580001.201
+"FIA",1130580001.201,0,1)
+y^y^f^^^^n
+"FIA",1130580001.201,0,10)
+
+"FIA",1130580001.201,0,11)
+
+"FIA",1130580001.201,0,"RLRO")
+
+"FIA",1130580001.201,1130580001.201)
+0
+"FIA",1130580001.201,1130580001.2011)
+0
+"FIA",1130580001.201,1130580001.20111)
+0
+"FIA",1130580001.201,1130580001.20112)
+0
+"KRN",.4,2540,-1)
+0^3
+"KRN",.4,2540,0)
+C0Q PRINT QUALITY MEASURES^3101012.2017^@^1130580001.101^^@^3101015
+"KRN",.4,2540,"F",2)
+.01~.5~1~2~
+"KRN",.4,2540,"H")
+C0Q QUAILITY MEASURE LIST
+"KRN",.4,2541,-1)
+0^2
+"KRN",.4,2541,0)
+C0Q PRINT MEASUREMENT SET^3101012.2337^@^1130580001.201^^@^3101102
+"KRN",.4,2541,"F",2)
+.01~.02~.03~.05~.2~1,.01~1,1,.01~1,1.1~1,2,.01~1,2.1~1,3~
+"KRN",.4,2541,"H")
+C0Q MEASUREMENTS LIST
+"KRN",.4,2542,-1)
+0^1
+"KRN",.4,2542,0)
+C0Q PRINT BY PATIENT^3101014.2342^@^1130580001.201^^@^3101014
+"KRN",.4,2542,"F",2)
+.01~1,.01~1,2,.01~
+"KRN",.4,2542,"H")
+C0Q MEASUREMENTS LIST
+"KRN",.402,2236,-1)
+0^2
+"KRN",.402,2236,0)
+C0Q QUALITY MEASURE DEFINITION^3101012.1927^@^1130580001.101^^@^3101108
+"KRN",.402,2236,"DR",1,1130580001.101)
+.01;.5;1;2;
+"KRN",.402,2237,-1)
+0^1
+"KRN",.402,2237,0)
+C0Q MEASUREMENT SET DEFINE^3101012.1929^@^1130580001.201^^@^3101108
+"KRN",.402,2237,"DR",1,1130580001.201)
+.01;1;
+"KRN",.402,2237,"DR",2,1130580001.2011)
+.01;
+"KRN",19,13695,-1)
+0^9
+"KRN",19,13695,0)
+C0Q QUALITY MEASURE DEFINITION^QUALITY MEASURE DEFINITION^^E^^^^^^^^
+"KRN",19,13695,30)
+C0Q(101,
+"KRN",19,13695,31)
+AEMQL
+"KRN",19,13695,50)
+C0Q(101,
+"KRN",19,13695,51)
+[C0Q QUALITY MEASURE DEFINITION]
+"KRN",19,13695,"U")
+QUALITY MEASURE DEFINITION
+"KRN",19,13696,-1)
+0^8
+"KRN",19,13696,0)
+C0Q MEASURE SET DEFINITION^MEASURE SET DEFINITION^^E^^^^^^^^
+"KRN",19,13696,30)
+C0Q(201,
+"KRN",19,13696,31)
+AEMQL
+"KRN",19,13696,50)
+C0Q(201,
+"KRN",19,13696,51)
+[C0Q MEASUREMENT SET DEFINE]
+"KRN",19,13696,"U")
+MEASURE SET DEFINITION
+"KRN",19,13697,-1)
+0^10
+"KRN",19,13697,0)
+C0Q QUALITY MEASUREMENT MENU^QUALITY MEASUREMENT MENU^^M^^^^^^^^
+"KRN",19,13697,10,0)
+^19.01IP^10^8
+"KRN",19,13697,10,1,0)
+13696
+"KRN",19,13697,10,1,"^")
+C0Q MEASURE SET DEFINITION
+"KRN",19,13697,10,2,0)
+13695
+"KRN",19,13697,10,2,"^")
+C0Q QUALITY MEASURE DEFINITION
+"KRN",19,13697,10,5,0)
+13700
+"KRN",19,13697,10,5,"^")
+C0Q LIST MEASURE SET
+"KRN",19,13697,10,6,0)
+13701
+"KRN",19,13697,10,6,"^")
+C0Q BY PATIENT NUMERATOR
+"KRN",19,13697,10,7,0)
+13702
+"KRN",19,13697,10,7,"^")
+C0Q DENOMINATOR PATIENT LIST
+"KRN",19,13697,10,8,0)
+13703
+"KRN",19,13697,10,8,"^")
+C0Q EXPORT CCR BY MEASURE
+"KRN",19,13697,10,9,0)
+13704
+"KRN",19,13697,10,9,"^")
+C0Q SUMMARY QUALITY MEASURES
+"KRN",19,13697,10,10,0)
+13705
+"KRN",19,13697,10,10,"^")
+C0Q EXPORT MEASURE SET
+"KRN",19,13697,99)
+62039,71770
+"KRN",19,13697,"U")
+QUALITY MEASUREMENT MENU
+"KRN",19,13698,-1)
+0^4
+"KRN",19,13698,0)
+C0Q DISPLAY QUALITY MEASURES^DISPLAY QUALITY MEASURES^^P^^^^^^^^
+"KRN",19,13698,60)
+C0Q(101,
+"KRN",19,13698,62)
+0
+"KRN",19,13698,63)
+[C0Q PRINT QUALITY MEASURES]
+"KRN",19,13698,64)
+
+"KRN",19,13698,65)
+
+"KRN",19,13698,66)
+
+"KRN",19,13698,"U")
+DISPLAY QUALITY MEASURES
+"KRN",19,13699,-1)
+0^3
+"KRN",19,13699,0)
+C0Q DISPLAY MEASURE SET^DISPLAY MEASURE SET^^P^^^^^^^^
+"KRN",19,13699,60)
+C0Q(201,
+"KRN",19,13699,62)
+0
+"KRN",19,13699,63)
+[C0Q PRINT MEASUREMENT SET]
+"KRN",19,13699,64)
+
+"KRN",19,13699,65)
+
+"KRN",19,13699,66)
+
+"KRN",19,13699,"U")
+DISPLAY MEASURE SET
+"KRN",19,13700,-1)
+0^7
+"KRN",19,13700,0)
+C0Q LIST MEASURE SET^LIST MEASURE SET^^R^^^^^^^^
+"KRN",19,13700,25)
+EN^C0QMAIN
+"KRN",19,13700,"U")
+LIST MEASURE SET
+"KRN",19,13701,-1)
+0^1
+"KRN",19,13701,0)
+C0Q BY PATIENT NUMERATOR^BY PATIENT NUMERATOR^^R^^^^^^^^
+"KRN",19,13701,25)
+NBYP^C0QMAIN
+"KRN",19,13701,"U")
+BY PATIENT NUMERATOR
+"KRN",19,13702,-1)
+0^2
+"KRN",19,13702,0)
+C0Q DENOMINATOR PATIENT LIST^DENOMINATOR PATIENT LIST^^R^^^^^^^^
+"KRN",19,13702,25)
+DBYP^C0QMAIN
+"KRN",19,13702,"U")
+DENOMINATOR PATIENT LIST
+"KRN",19,13703,-1)
+0^5
+"KRN",19,13703,0)
+C0Q EXPORT CCR BY MEASURE^EXPORT CCR BY MEASURE^^R^^^^^^^^
+"KRN",19,13703,25)
+EXPORT^C0QMAIN
+"KRN",19,13703,"U")
+EXPORT CCR BY MEASURE
+"KRN",19,13704,-1)
+0^11
+"KRN",19,13704,0)
+C0Q SUMMARY QUALITY MEASURES^SUMMARY QUALITY MEASURES^^R^^^^^^^^
+"KRN",19,13704,25)
+EN2^C0QMAIN
+"KRN",19,13704,"U")
+SUMMARY QUALITY MEASURES
+"KRN",19,13705,-1)
+0^6
+"KRN",19,13705,0)
+C0Q EXPORT MEASURE SET^ALL MEASURES EXPORT^^R^^^^^^^^
+"KRN",19,13705,25)
+ENEXP^C0QMAIN
+"KRN",19,13705,"U")
+ALL MEASURES EXPORT
+"MBREQ")
+0
+"ORD",5,.4)
+.4;5;;;EDEOUT^DIFROMSO(.4,DA,"",XPDA);FPRE^DIFROMSI(.4,"",XPDA);EPRE^DIFROMSI(.4,DA,$E("N",$G(XPDNEW)),XPDA,"",OLDA);;EPOST^DIFROMSI(.4,DA,"",XPDA);DEL^DIFROMSK(.4,"",%)
+"ORD",5,.4,0)
+PRINT TEMPLATE
+"ORD",7,.402)
+.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,"",%)
+"ORD",7,.402,0)
+INPUT TEMPLATE
+"ORD",18,19)
+19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA
+"ORD",18,19,0)
+OPTION
+"QUES","XPF1",0)
+Y
+"QUES","XPF1","??")
+^D REP^XPDH
+"QUES","XPF1","A")
+Shall I write over your |FLAG| File
+"QUES","XPF1","B")
+YES
+"QUES","XPF1","M")
+D XPF1^XPDIQ
+"QUES","XPF2",0)
+Y
+"QUES","XPF2","??")
+^D DTA^XPDH
+"QUES","XPF2","A")
+Want my data |FLAG| yours
+"QUES","XPF2","B")
+YES
+"QUES","XPF2","M")
+D XPF2^XPDIQ
+"QUES","XPI1",0)
+YO
+"QUES","XPI1","??")
+^D INHIBIT^XPDH
+"QUES","XPI1","A")
+Want KIDS to INHIBIT LOGONs during the install
+"QUES","XPI1","B")
+NO
+"QUES","XPI1","M")
+D XPI1^XPDIQ
+"QUES","XPM1",0)
+PO^VA(200,:EM
+"QUES","XPM1","??")
+^D MG^XPDH
+"QUES","XPM1","A")
+Enter the Coordinator for Mail Group '|FLAG|'
+"QUES","XPM1","B")
+
+"QUES","XPM1","M")
+D XPM1^XPDIQ
+"QUES","XPO1",0)
+Y
+"QUES","XPO1","??")
+^D MENU^XPDH
+"QUES","XPO1","A")
+Want KIDS to Rebuild Menu Trees Upon Completion of Install
+"QUES","XPO1","B")
+NO
+"QUES","XPO1","M")
+D XPO1^XPDIQ
+"QUES","XPZ1",0)
+Y
+"QUES","XPZ1","??")
+^D OPT^XPDH
+"QUES","XPZ1","A")
+Want to DISABLE Scheduled Options, Menu Options, and Protocols
+"QUES","XPZ1","B")
+NO
+"QUES","XPZ1","M")
+D XPZ1^XPDIQ
+"QUES","XPZ2",0)
+Y
+"QUES","XPZ2","??")
+^D RTN^XPDH
+"QUES","XPZ2","A")
+Want to MOVE routines to other CPUs
+"QUES","XPZ2","B")
+NO
+"QUES","XPZ2","M")
+D XPZ2^XPDIQ
+"RTN")
+1
+"RTN","C0QMAIN")
+0^1^B69544556
+"RTN","C0QMAIN",1,0)
+C0QMAIN ; GPL - Quality Reporting Main Processing ;10/13/10  17:05
+"RTN","C0QMAIN",2,0)
+ ;;0.1;C0Q;nopatch;noreleasedate;Build 1
+"RTN","C0QMAIN",3,0)
+ ;Copyright 2009 George Lilly.  Licensed under the terms of the GNU
+"RTN","C0QMAIN",4,0)
+ ;General Public License See attached copy of the License.
+"RTN","C0QMAIN",5,0)
+ ;
+"RTN","C0QMAIN",6,0)
+ ;This program is free software; you can redistribute it and/or modify
+"RTN","C0QMAIN",7,0)
+ ;it under the terms of the GNU General Public License as published by
+"RTN","C0QMAIN",8,0)
+ ;the Free Software Foundation; either version 2 of the License, or
+"RTN","C0QMAIN",9,0)
+ ;(at your option) any later version.
+"RTN","C0QMAIN",10,0)
+ ;
+"RTN","C0QMAIN",11,0)
+ ;This program is distributed in the hope that it will be useful,
+"RTN","C0QMAIN",12,0)
+ ;but WITHOUT ANY WARRANTY; without even the implied warranty of
+"RTN","C0QMAIN",13,0)
+ ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+"RTN","C0QMAIN",14,0)
+ ;GNU General Public License for more details.
+"RTN","C0QMAIN",15,0)
+ ;
+"RTN","C0QMAIN",16,0)
+ ;You should have received a copy of the GNU General Public License along
+"RTN","C0QMAIN",17,0)
+ ;with this program; if not, write to the Free Software Foundation, Inc.,
+"RTN","C0QMAIN",18,0)
+ ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"RTN","C0QMAIN",19,0)
+ ;
+"RTN","C0QMAIN",20,0)
+ Q
+"RTN","C0QMAIN",21,0)
+ ;
+"RTN","C0QMAIN",22,0)
+C0QQFN() Q 1130580001.101 ; FILE NUMBER FOR C0Q QUALITY MEASURE FILE
+"RTN","C0QMAIN",23,0)
+C0QMFN() Q 1130580001.201 ; FILE NUMBER FOR C0Q MEASUREMENT FILE
+"RTN","C0QMAIN",24,0)
+C0QMMFN() Q 1130580001.2011 ; FN FOR MEASURE SUBFILE
+"RTN","C0QMAIN",25,0)
+C0QMMNFN() Q 1130580001.20111 ; FN FOR NUMERATOR SUBFILE
+"RTN","C0QMAIN",26,0)
+C0QMMDFN() Q 1130580001.20112 ; FN FOR DENOMINATOR SUBFILE
+"RTN","C0QMAIN",27,0)
+RLSTFN() Q 810.5 ; FN FOR REMINDER PATIENT LIST FILE
+"RTN","C0QMAIN",28,0)
+RLSTPFN() Q 810.53 ; FN FOR REMINDER PATIENT LIST PATIENT SUBFILE
+"RTN","C0QMAIN",29,0)
+ ;
+"RTN","C0QMAIN",30,0)
+EXPORT   ; EXPORT ENTRY POINT FOR CCR
+"RTN","C0QMAIN",31,0)
+ ; Select a patient.
+"RTN","C0QMAIN",32,0)
+ N C0QMS,C0QM,C0QMIEN,C0QNA,C0QNORD
+"RTN","C0QMAIN",33,0)
+ S C0QNORD=3 ; WE WANT DENOMINATORS USE 1 FOR NUMERATORS
+"RTN","C0QMAIN",34,0)
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",35,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",36,0)
+ S C0QMS=$P(Y,U,1) ; SET THE MEASURE SET
+"RTN","C0QMAIN",37,0)
+ S DIC=$$C0QQFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",38,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",39,0)
+ S C0QM=$P(Y,U,1) ; SET THE MEASURE IEN
+"RTN","C0QMAIN",40,0)
+ N C0QMN S C0QMN=$P(Y,U,2) ; SET THE MEASURE NAME
+"RTN","C0QMAIN",41,0)
+ S C0QMIEN=$O(^C0Q(201,C0QMS,5,"B",C0QM,""))
+"RTN","C0QMAIN",42,0)
+ S C0QNA=$NA(^C0Q(201,C0QMS,5,C0QMIEN,C0QNORD,"B"))
+"RTN","C0QMAIN",43,0)
+ N ZI S ZI=""
+"RTN","C0QMAIN",44,0)
+ F  S ZI=$O(@C0QNA@(ZI)) Q:ZI=""  D  ;
+"RTN","C0QMAIN",45,0)
+ . W !,ZI
+"RTN","C0QMAIN",46,0)
+ . N ONAME S ONAME=C0QMN_"_"_ZI_"_CCR_V1_0_0.xml"
+"RTN","C0QMAIN",47,0)
+ . D XPAT^C0CCCR(ZI,,,ONAME) ; EXPORT TO A FILE
+"RTN","C0QMAIN",48,0)
+ Q
+"RTN","C0QMAIN",49,0)
+ ;
+"RTN","C0QMAIN",50,0)
+NBYP ; ENTRY POINT FOR COMMAND LINE BY PATIENT MEASURE LISTING
+"RTN","C0QMAIN",51,0)
+ ;
+"RTN","C0QMAIN",52,0)
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",53,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",54,0)
+ N MSIEN S MSIEN=+Y
+"RTN","C0QMAIN",55,0)
+ W !,"NUMERATOR PATIENT LIST",!
+"RTN","C0QMAIN",56,0)
+ N C0QPAT
+"RTN","C0QMAIN",57,0)
+ D PATS(.C0QPAT,MSIEN,"N") ; GET THE NUMERATOR PATIENT LIST
+"RTN","C0QMAIN",58,0)
+ I $D(C0QPAT) D  ; LIST RETURNED
+"RTN","C0QMAIN",59,0)
+ . ;
+"RTN","C0QMAIN",60,0)
+ Q
+"RTN","C0QMAIN",61,0)
+ ;
+"RTN","C0QMAIN",62,0)
+DBYP ; ENTRY POINT FOR COMMAND LINE BY PATIENT MEASURE LISTING
+"RTN","C0QMAIN",63,0)
+ ;
+"RTN","C0QMAIN",64,0)
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",65,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",66,0)
+ N MSIEN S MSIEN=+Y
+"RTN","C0QMAIN",67,0)
+ N C0QPAT
+"RTN","C0QMAIN",68,0)
+ W !,"DENOMINATOR PATIENT LIST",!
+"RTN","C0QMAIN",69,0)
+ D PATS(.C0QPAT,MSIEN,"D") ; GET THE NUMERATOR PATIENT LIST
+"RTN","C0QMAIN",70,0)
+ I $D(C0QPAT) D  ; LIST RETURNED
+"RTN","C0QMAIN",71,0)
+ . ;
+"RTN","C0QMAIN",72,0)
+ . ;
+"RTN","C0QMAIN",73,0)
+ Q
+"RTN","C0QMAIN",74,0)
+ ;
+"RTN","C0QMAIN",75,0)
+ENEXP ; EXTERNAL MENU ENTRY POINT FOR EXP
+"RTN","C0QMAIN",76,0)
+ ;
+"RTN","C0QMAIN",77,0)
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",78,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",79,0)
+ N MSIEN S MSIEN=+Y
+"RTN","C0QMAIN",80,0)
+ D EXP(MSIEN)
+"RTN","C0QMAIN",81,0)
+ Q
+"RTN","C0QMAIN",82,0)
+ ; 
+"RTN","C0QMAIN",83,0)
+EXP(MSET,NOEX) ; EXPORT ALL PATIENTS FOR MEASURE SET IEN MSET
+"RTN","C0QMAIN",84,0)
+ ; ALSO, WRITE OUT THE BY PATIENT MEASURE TEXT FILE
+"RTN","C0QMAIN",85,0)
+ ; IF NOEX=1, THEN ONLY THE MEASURE TEXT FILE GETS WRITTEN, NO EXPORTS ARE 
+"RTN","C0QMAIN",86,0)
+ ; DONE
+"RTN","C0QMAIN",87,0)
+ I '$D(NOEX) S NOEX=0
+"RTN","C0QMAIN",88,0)
+ N ZQI,ZARY,ZFN,ODIR
+"RTN","C0QMAIN",89,0)
+ S ZQI=""
+"RTN","C0QMAIN",90,0)
+ D PATS(.ZARY,MSET,"D",1)
+"RTN","C0QMAIN",91,0)
+ S ZFN="MEASURES-BY-PATIENT.txt"
+"RTN","C0QMAIN",92,0)
+ S ODIR=^TMP("C0CCCR","ODIR") ; OUTPUT DIRECTORY
+"RTN","C0QMAIN",93,0)
+ S GARY=$NA(^TMP("C0Q",$J))
+"RTN","C0QMAIN",94,0)
+ K @GARY
+"RTN","C0QMAIN",95,0)
+ M @GARY=ZARY
+"RTN","C0QMAIN",96,0)
+ S GARY1=$NA(@GARY@(1))
+"RTN","C0QMAIN",97,0)
+ N ZY
+"RTN","C0QMAIN",98,0)
+ S ZY=$$OUTPUT^C0CXPATH(GARY1,ZFN,ODIR)
+"RTN","C0QMAIN",99,0)
+ W !,ZY
+"RTN","C0QMAIN",100,0)
+ I NOEX=1 Q  ; DO NOT EXPORT
+"RTN","C0QMAIN",101,0)
+ F  S ZQI=$O(ZARY(ZQI)) Q:ZQI=""  D  ; FOR EACH PATIENT
+"RTN","C0QMAIN",102,0)
+ . D XPAT^C0CCCR(+ZARY(ZQI)) ; 
+"RTN","C0QMAIN",103,0)
+ Q
+"RTN","C0QMAIN",104,0)
+ ;
+"RTN","C0QMAIN",105,0)
+PATS(ZRTN,MSIEN,NORD,QT) ; BUILDS A LIST OF PATIENTS AND THEIR MEASURES
+"RTN","C0QMAIN",106,0)
+ ; FOR MEASURE SET MSET. NORD="N" (DEFAULT) MEANS NUMERATOR PATIENTS
+"RTN","C0QMAIN",107,0)
+ ; NORD="D" MEANS DENOMINATOR PATIENTS 
+"RTN","C0QMAIN",108,0)
+ ; QT=1 MEANS QUIET
+"RTN","C0QMAIN",109,0)
+ I $G(QT)'=1 S QT=0
+"RTN","C0QMAIN",110,0)
+ N ZI,ZJ,ZK,ZIDX,ZN,ZM
+"RTN","C0QMAIN",111,0)
+ S ZN=0 ; COUNT OF PATIENTS
+"RTN","C0QMAIN",112,0)
+ S ZI=""
+"RTN","C0QMAIN",113,0)
+ ; GOING TO USE THE NUMERATOR BY PATIENT INDEX
+"RTN","C0QMAIN",114,0)
+ I '$D(NORD) S NORD="N"
+"RTN","C0QMAIN",115,0)
+ I '((NORD="N")!(NORD="D")) S NORD="N"
+"RTN","C0QMAIN",116,0)
+ I NORD="N" S ZIDX=$NA(^C0Q(201,"ANBYP"))
+"RTN","C0QMAIN",117,0)
+ E  S ZIDX=$NA(^C0Q(201,"ADBYP"))
+"RTN","C0QMAIN",118,0)
+ F  S ZI=$O(@ZIDX@(ZI)) Q:ZI=""  D  ; FOR EACH PATIENT
+"RTN","C0QMAIN",119,0)
+ . I $O(@ZIDX@(ZI,MSIEN,""))'="" D  ; IF PATIENT IS IN THIS SET
+"RTN","C0QMAIN",120,0)
+ . . I 'QT W !,$$GET1^DIQ(2,ZI_",",.01) ;PATIENT NAME
+"RTN","C0QMAIN",121,0)
+ . . S ZN=ZN+1 ; INCREMENT PATIENT COUNT
+"RTN","C0QMAIN",122,0)
+ . . S ZRTN(ZN)=ZI
+"RTN","C0QMAIN",123,0)
+ . E  Q  ; NEXT PATIENT
+"RTN","C0QMAIN",124,0)
+ . S (ZJ,ZK)=""
+"RTN","C0QMAIN",125,0)
+ . F  S ZJ=$O(@ZIDX@(ZI,MSIEN,ZJ)) Q:ZJ=""  D  ; FOR EACH MEASURE
+"RTN","C0QMAIN",126,0)
+ . . ;S ZL=$O(@ZIDX@(ZI,MSIEN,ZJ,"")) ; MEASURE IS FOURTH
+"RTN","C0QMAIN",127,0)
+ . . S ZK=""
+"RTN","C0QMAIN",128,0)
+ . . S ZK=$$GET1^DIQ($$C0QMMFN,ZJ_","_MSIEN_",",.01,"I")
+"RTN","C0QMAIN",129,0)
+ . . ;W !,"ZK:",ZK," ZJ:",ZJ," ZI",ZI,!
+"RTN","C0QMAIN",130,0)
+ . . S ZM=$$GET1^DIQ($$C0QQFN,ZK_",",.01) ; MEASURE NAME
+"RTN","C0QMAIN",131,0)
+ . . I 'QT W " ",ZM
+"RTN","C0QMAIN",132,0)
+ . . S ZRTN(ZN)=ZRTN(ZN)_" "_ZM
+"RTN","C0QMAIN",133,0)
+ Q
+"RTN","C0QMAIN",134,0)
+ ;
+"RTN","C0QMAIN",135,0)
+EN ; ENTRY POINT FOR COMMAND LINE AND MENU ACCESS TO C0QRPC
+"RTN","C0QMAIN",136,0)
+ ;
+"RTN","C0QMAIN",137,0)
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",138,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",139,0)
+ N MSIEN S MSIEN=+Y
+"RTN","C0QMAIN",140,0)
+ D C0QRPC(.G,MSIEN)
+"RTN","C0QMAIN",141,0)
+ Q
+"RTN","C0QMAIN",142,0)
+ ;
+"RTN","C0QMAIN",143,0)
+EN2 ; SUMMARY ENTRY POINT FOR COMMAND LINE AND MENU ACCESS TO C0QRPC
+"RTN","C0QMAIN",144,0)
+ ;
+"RTN","C0QMAIN",145,0)
+ S DIC=$$C0QMFN,DIC(0)="AEMQ" D ^DIC
+"RTN","C0QMAIN",146,0)
+ I Y<1 Q  ; EXIT
+"RTN","C0QMAIN",147,0)
+ N MSIEN S MSIEN=+Y
+"RTN","C0QMAIN",148,0)
+ S C0QSUM=1
+"RTN","C0QMAIN",149,0)
+ D C0QRPC(.G,MSIEN)
+"RTN","C0QMAIN",150,0)
+ Q
+"RTN","C0QMAIN",151,0)
+ ;
+"RTN","C0QMAIN",152,0)
+C0QRPC(RTN,MSET,FMT,NOPURGE) ; RPC FORMAT 
+"RTN","C0QMAIN",153,0)
+ ; MSET IS THE NAME OR IEN OF THE MEASURE SET
+"RTN","C0QMAIN",154,0)
+ ; RTN IS THE RETURN ARRAY OF THE RESULTS PASSED BY REFERENCE
+"RTN","C0QMAIN",155,0)
+ ; FMT IS THE FORMAT OF THE OUTPUT - "ARRAY" OR "HTML" OR "XML"
+"RTN","C0QMAIN",156,0)
+ ;  NOTE: ARRAY IS DEFAULT AND THE OTHERS ARE NOT IMPLEMENTED YET
+"RTN","C0QMAIN",157,0)
+ ; IF NOPURGE IS 1, PATIENT LISTS WILL NOT BE DELETED BEFORE ADDING
+"RTN","C0QMAIN",158,0)
+ ; IF NOPURGE IS 0 OR OMITTED, PATIENT LISTS WILL BE DELETED THEN ADDED
+"RTN","C0QMAIN",159,0)
+ W !,"LOOKING FOR MEASURE SET ",MSET,!
+"RTN","C0QMAIN",160,0)
+ N ZI S ZI=""
+"RTN","C0QMAIN",161,0)
+ N C0QM ; FOR HOLDING THE MEASURES IN THE SET
+"RTN","C0QMAIN",162,0)
+ D LIST^DIC($$C0QMMFN,","_MSET_",",".01I") ; GET ALL THE MEASURES
+"RTN","C0QMAIN",163,0)
+ D DELIST("C0QM")
+"RTN","C0QMAIN",164,0)
+ N ZII S ZII=""
+"RTN","C0QMAIN",165,0)
+ F  S ZII=$O(C0QM(ZII)) Q:ZII=""  D  ; FOR EACH MEASURE
+"RTN","C0QMAIN",166,0)
+ . D CLEARMEA(MSET,ZII) ; FIRST CLEAR OUT THE MEASURE
+"RTN","C0QMAIN",167,0)
+ K C0QM
+"RTN","C0QMAIN",168,0)
+ D CLEAN^DILF
+"RTN","C0QMAIN",169,0)
+ D LIST^DIC($$C0QMMFN,","_MSET_",",".01I") ; GET ALL THE MEASURES AGAIN
+"RTN","C0QMAIN",170,0)
+ D DELIST("C0QM")
+"RTN","C0QMAIN",171,0)
+ F  S ZII=$O(C0QM(ZII)) Q:ZII=""  D  ; FOR EACH MEASURE
+"RTN","C0QMAIN",172,0)
+ . S ZI=$P(C0QM(ZII),U,1) ; IEN OF THE MEASURE IN THE C0Q QUALITY MEAS FILE
+"RTN","C0QMAIN",173,0)
+ . ;W $$GET1^DIQ($$C0QQFN,ZI_",","DISPLAY NAME"),!
+"RTN","C0QMAIN",174,0)
+ . ;N C0QNL,C0QDL ;NUMERATOR AND DENOMINATOR LIST POINTERS
+"RTN","C0QMAIN",175,0)
+ . W !,"MEASURE: ",$$GET1^DIQ($$C0QQFN,ZI_",",.01),! ; PRINT THE MEASURE NAME
+"RTN","C0QMAIN",176,0)
+ . ; FOLLOW THE POINTERS TO THE C0Q QUALITYM MEASURE FILE AND GET LIST PTRS
+"RTN","C0QMAIN",177,0)
+ . S C0QNL=$$GET1^DIQ($$C0QQFN,ZI_",",1,"I") ; NUMERATOR POINTER
+"RTN","C0QMAIN",178,0)
+ . S C0QDL=$$GET1^DIQ($$C0QQFN,ZI_",",2,"I") ; DENOMINATOR POINTER
+"RTN","C0QMAIN",179,0)
+ . ; NOW FOLLOW THE LIST POINTERS TO THE REMINDER PATIENT LIST FILE
+"RTN","C0QMAIN",180,0)
+ . W "NUMERATOR: ",$$GET1^DIQ($$RLSTFN,C0QNL_",","NAME"),!
+"RTN","C0QMAIN",181,0)
+ . ; FIRST PROCESS THE NUMERATOR
+"RTN","C0QMAIN",182,0)
+ . K ^TMP("DILIST",$J)
+"RTN","C0QMAIN",183,0)
+ . D LIST^DIC($$RLSTPFN,","_C0QNL_",",".01I") ; GET THE LIST OF PATIENTS
+"RTN","C0QMAIN",184,0)
+ . ;D DELIST("G") ;
+"RTN","C0QMAIN",185,0)
+ . ;I $D(G) ZWR G
+"RTN","C0QMAIN",186,0)
+ . K C0QNUMP
+"RTN","C0QMAIN",187,0)
+ . S NCNT=$O(^TMP("DILIST",$J,"ID",""),-1) ; NUMERATOR COUNT
+"RTN","C0QMAIN",188,0)
+ . N ZJ S ZJ=""
+"RTN","C0QMAIN",189,0)
+ . F  S ZJ=$O(^TMP("DILIST",$J,"ID",ZJ)) Q:ZJ=""  D  ;
+"RTN","C0QMAIN",190,0)
+ . . S ZDFN=^TMP("DILIST",$J,"ID",ZJ,.01)
+"RTN","C0QMAIN",191,0)
+ . . S C0QNUMP("N",ZJ,ZDFN)=""
+"RTN","C0QMAIN",192,0)
+ . I '$G(C0QSUM) ZWR ^TMP("DILIST",$J,1,*) ; LIST THE PATIENT NAMES
+"RTN","C0QMAIN",193,0)
+ . D ADDPATS(MSET,ZII,"C0QNUMP")
+"RTN","C0QMAIN",194,0)
+ . ; NEXT PROCESS THE DENOMINATOR
+"RTN","C0QMAIN",195,0)
+ . W "DENOMINATOR: ",$$GET1^DIQ($$RLSTFN,C0QDL_",","NAME"),!
+"RTN","C0QMAIN",196,0)
+ . K ^TMP("DILIST",$J)
+"RTN","C0QMAIN",197,0)
+ . D LIST^DIC($$RLSTPFN,","_C0QDL_",",".01I") ; GET THE LIST OF PATIENTS
+"RTN","C0QMAIN",198,0)
+ . ;D DELIST("G")
+"RTN","C0QMAIN",199,0)
+ . ;I $D(G) ZWR G
+"RTN","C0QMAIN",200,0)
+ . ;S ZJ=""
+"RTN","C0QMAIN",201,0)
+ . S DCNT=$O(^TMP("DILIST",$J,"ID",""),-1) ; DENOMONIATOR COUNT
+"RTN","C0QMAIN",202,0)
+ . K C0QDEMP
+"RTN","C0QMAIN",203,0)
+ . F  S ZJ=$O(^TMP("DILIST",$J,"ID",ZJ)) Q:ZJ=""  D  ;
+"RTN","C0QMAIN",204,0)
+ . . S ZDFN=^TMP("DILIST",$J,"ID",ZJ,.01)
+"RTN","C0QMAIN",205,0)
+ . . S C0QDEMP("D",ZJ,ZDFN)=""
+"RTN","C0QMAIN",206,0)
+ . D ADDPATS(MSET,ZII,"C0QDEMP")
+"RTN","C0QMAIN",207,0)
+ . I $G(C0QSUM)'=1 ZWR ^TMP("DILIST",$J,1,*) ; LIST THE PATIENT NAMES
+"RTN","C0QMAIN",208,0)
+ . E  D  ;
+"RTN","C0QMAIN",209,0)
+ . . W "NUM CNT: ",NCNT
+"RTN","C0QMAIN",210,0)
+ . . W "  DEN CNT: ",DCNT,!
+"RTN","C0QMAIN",211,0)
+ Q
+"RTN","C0QMAIN",212,0)
+ ;
+"RTN","C0QMAIN",213,0)
+CLEARMEA(MSET,MEAS) ; DELETE AND THEN RECREATE AS EMPTY THE
+"RTN","C0QMAIN",214,0)
+ ; MEASURE MEAS IN MEASURE SET IEN MSET
+"RTN","C0QMAIN",215,0)
+ ;
+"RTN","C0QMAIN",216,0)
+ N C0QFDA,MFN,MEASURE
+"RTN","C0QMAIN",217,0)
+ S MFN=$$C0QMMFN() ; FILE NUMBER FOR MEASURE SUBFILE
+"RTN","C0QMAIN",218,0)
+ D CLEAN^DILF
+"RTN","C0QMAIN",219,0)
+ S MEASURE=$$GET1^DIQ(MFN,MEAS_","_MSET_",",.01,"I") ;  MEASURE POINTER
+"RTN","C0QMAIN",220,0)
+ D CLEAN^DILF
+"RTN","C0QMAIN",221,0)
+ K ZERR
+"RTN","C0QMAIN",222,0)
+ S C0QFDA(MFN,MEAS_","_MSET_",",.01)="@" ; GET READY TO DELETE THE MEASURE
+"RTN","C0QMAIN",223,0)
+ D FILE^DIE(,"C0QFDA","ZERR") ; KILL THE SUBFILE
+"RTN","C0QMAIN",224,0)
+ I $D(ZERR) D ;
+"RTN","C0QMAIN",225,0)
+ . W "ERROR",!
+"RTN","C0QMAIN",226,0)
+ . ZWR ZERR
+"RTN","C0QMAIN",227,0)
+ . B
+"RTN","C0QMAIN",228,0)
+ K C0QFDA
+"RTN","C0QMAIN",229,0)
+ S C0QFDA(MFN,"+1,"_MSET_",",.01)=MEASURE ; GET READY TO RECREATE THE SUBFILE
+"RTN","C0QMAIN",230,0)
+ D UPDIE ; CREATE THE SUBFILE
+"RTN","C0QMAIN",231,0)
+ Q
+"RTN","C0QMAIN",232,0)
+ ;
+"RTN","C0QMAIN",233,0)
+ADDPATS(MSET,MEAS,PATS) ;ADD PATIENTS TO NUMERATOR AND DENOMINATOR
+"RTN","C0QMAIN",234,0)
+ ; OF MEASURE SET IEN MSET MEASURE IEN MEAS
+"RTN","C0QMAIN",235,0)
+ ; PATS IS OF THE FORM @PATS@("N",X,DFN)="" AND @PATS@("D",X,DFN)=""
+"RTN","C0QMAIN",236,0)
+ ; WHERE N IS FOR NUMERATOR AND D IS FOR DENOMINATOR AND X 1..N
+"RTN","C0QMAIN",237,0)
+ ; IF PATIENTS ARE ALREADY THERE, THEY WILL NOT BE ADDED AGAIN
+"RTN","C0QMAIN",238,0)
+ N C0QI,C0QJ
+"RTN","C0QMAIN",239,0)
+ N C0QFDA
+"RTN","C0QMAIN",240,0)
+ S C0QI=""
+"RTN","C0QMAIN",241,0)
+ F  S C0QI=$O(@PATS@("N",C0QI)) Q:C0QI=""  D  ; FOR EACH NUMERATOR PATIENT
+"RTN","C0QMAIN",242,0)
+ . S C0QFDA($$C0QMMNFN,"?+"_C0QI_","_MEAS_","_MSET_",",.01)=$O(@PATS@("N",C0QI,""))
+"RTN","C0QMAIN",243,0)
+ ;W "ADDING NUMERATOR",!
+"RTN","C0QMAIN",244,0)
+ ;I $D(C0QFDA) ZWR C0QFDA
+"RTN","C0QMAIN",245,0)
+ I $D(C0QFDA) D UPDIE
+"RTN","C0QMAIN",246,0)
+ K C0QFDA
+"RTN","C0QMAIN",247,0)
+ S C0QI=""
+"RTN","C0QMAIN",248,0)
+ F  S C0QI=$O(@PATS@("D",C0QI)) Q:C0QI=""  D  ; FOR EACH NUMERATOR PATIENT
+"RTN","C0QMAIN",249,0)
+ . S C0QFDA($$C0QMMDFN,"?+"_C0QI_","_MEAS_","_MSET_",",.01)=$O(@PATS@("D",C0QI,""))
+"RTN","C0QMAIN",250,0)
+ ;W "ADDING DENOMINATOR",!
+"RTN","C0QMAIN",251,0)
+ ;I $D(C0QFDA) ZWR C0QFDA
+"RTN","C0QMAIN",252,0)
+ I $D(C0QFDA) D UPDIE
+"RTN","C0QMAIN",253,0)
+ Q
+"RTN","C0QMAIN",254,0)
+ ;
+"RTN","C0QMAIN",255,0)
+DELIST(RTN) ; DECODES ^TMP("DILIST",$J) INTO
+"RTN","C0QMAIN",256,0)
+ ; @RTN@(IEN)=INTERNAL VALUE^EXTERNAL VALUE
+"RTN","C0QMAIN",257,0)
+ N ZI,IV,EV,ZDI,ZIEN
+"RTN","C0QMAIN",258,0)
+ S ZI=""
+"RTN","C0QMAIN",259,0)
+ S ZDI=$NA(^TMP("DILIST",$J))
+"RTN","C0QMAIN",260,0)
+ K @RTN
+"RTN","C0QMAIN",261,0)
+ F  S ZI=$O(@ZDI@(1,ZI)) Q:ZI=""  D  ;
+"RTN","C0QMAIN",262,0)
+ . S EV=@ZDI@(1,ZI) ;EXTERNAL VALUE
+"RTN","C0QMAIN",263,0)
+ . S IV=$G(@ZDI@("ID",ZI,.01)) ; INTERNAL VALUE
+"RTN","C0QMAIN",264,0)
+ . S ZIEN=@ZDI@(2,ZI) ; IEN
+"RTN","C0QMAIN",265,0)
+ . S @RTN@(ZIEN)=IV_"^"_EV
+"RTN","C0QMAIN",266,0)
+ Q
+"RTN","C0QMAIN",267,0)
+ ;
+"RTN","C0QMAIN",268,0)
+DELPATS(MSET,MEAS,NDEL) ; DELETE PATIENTS FROM NUMERATOR AND DENOMINATOR
+"RTN","C0QMAIN",269,0)
+ ; FOR A MEASURE (ONLY AFFECTS THE C0Q MEASURES FILE)
+"RTN","C0QMAIN",270,0)
+ ; MSET IS THE IEN OF THE MEASURE SET
+"RTN","C0QMAIN",271,0)
+ ; MEAS IS THE IEN OF THE MEASURE
+"RTN","C0QMAIN",272,0)
+ ; NDEL IS A LIST OF PATIENTS TO NOT DELETE (NOT IMPLEMENTED YET)
+"RTN","C0QMAIN",273,0)
+ ;  IN THE FORM @NDEL@("N",IEN,DFN)="" FOR NUMERATOR PATIENTS
+"RTN","C0QMAIN",274,0)
+ ;  AND @NDEL@("D",IEN,DFN)="" FOR DENOMINATOR PATIENTS WHERE IEN IS 
+"RTN","C0QMAIN",275,0)
+ ;  THE IEN OF THE PATIENT RECORD IN THE SUBFILE
+"RTN","C0QMAIN",276,0)
+ ;  THIS FEATURE WILL ALLOW EFFICIENCIES FOR LONG PATIENT LISTS
+"RTN","C0QMAIN",277,0)
+ ;  IN THAT PATIENTS THAT ARE GOING TO BE ADDED ARE NOT FIRST DELETED
+"RTN","C0QMAIN",278,0)
+ N C0QI,C0QJ
+"RTN","C0QMAIN",279,0)
+ D LIST^DIC($$C0QMMFN,","_MSET_",")
+"RTN","C0QMAIN",280,0)
+ K C0QFDA
+"RTN","C0QMAIN",281,0)
+ ZWR ^TMP("DILIST",$J,*)
+"RTN","C0QMAIN",282,0)
+ ZWR ^TMP("DIERR",$J,*)
+"RTN","C0QMAIN",283,0)
+ D 
+"RTN","C0QMAIN",284,0)
+ Q
+"RTN","C0QMAIN",285,0)
+ ;
+"RTN","C0QMAIN",286,0)
+UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS
+"RTN","C0QMAIN",287,0)
+ K ZERR
+"RTN","C0QMAIN",288,0)
+ D CLEAN^DILF
+"RTN","C0QMAIN",289,0)
+ D UPDATE^DIE("","C0QFDA","","ZERR")
+"RTN","C0QMAIN",290,0)
+ I $D(ZERR) D  ;
+"RTN","C0QMAIN",291,0)
+ . W "ERROR",!
+"RTN","C0QMAIN",292,0)
+ . ZWR ZERR
+"RTN","C0QMAIN",293,0)
+ . B
+"RTN","C0QMAIN",294,0)
+ K C0QFDA
+"RTN","C0QMAIN",295,0)
+ Q
+"RTN","C0QMAIN",296,0)
+ ;
+"SEC","^DD",1130580001.101,1130580001.101,3.1,9)
+
+"SEC","^DIC",1130580001.101,1130580001.101,0,"AUDIT")
+@
+"SEC","^DIC",1130580001.101,1130580001.101,0,"DD")
+@
+"SEC","^DIC",1130580001.101,1130580001.101,0,"DEL")
+@
+"SEC","^DIC",1130580001.101,1130580001.101,0,"LAYGO")
+@
+"SEC","^DIC",1130580001.101,1130580001.101,0,"RD")
+@
+"SEC","^DIC",1130580001.101,1130580001.101,0,"WR")
+@
+"SEC","^DIC",1130580001.201,1130580001.201,0,"AUDIT")
+@
+"SEC","^DIC",1130580001.201,1130580001.201,0,"DD")
+@
+"SEC","^DIC",1130580001.201,1130580001.201,0,"DEL")
+@
+"SEC","^DIC",1130580001.201,1130580001.201,0,"LAYGO")
+@
+"SEC","^DIC",1130580001.201,1130580001.201,0,"RD")
+@
+"SEC","^DIC",1130580001.201,1130580001.201,0,"WR")
+@
+"VER")
+8.0^22.0
+"^DD",1130580001.101,1130580001.101,0)
+FIELD^^.61^9
+"^DD",1130580001.101,1130580001.101,0,"DDA")
+N
+"^DD",1130580001.101,1130580001.101,0,"DT")
+3101013
+"^DD",1130580001.101,1130580001.101,0,"IX","B",1130580001.101,.01)
+
+"^DD",1130580001.101,1130580001.101,0,"NM","C0Q QUAILITY MEASURE")
+
+"^DD",1130580001.101,1130580001.101,0,"PT",1130580001.2011,.01)
+
+"^DD",1130580001.101,1130580001.101,.01,0)
+NAME^RF^^0;1^K:$L(X)>30!($L(X)<1)!'(X'?1P.E) X
+"^DD",1130580001.101,1130580001.101,.01,.1)
+MEASURE NAME
+"^DD",1130580001.101,1130580001.101,.01,1,0)
+^.1
+"^DD",1130580001.101,1130580001.101,.01,1,1,0)
+1130580001.101^B
+"^DD",1130580001.101,1130580001.101,.01,1,1,1)
+S ^C0Q(101,"B",$E(X,1,30),DA)=""
+"^DD",1130580001.101,1130580001.101,.01,1,1,2)
+K ^C0Q(101,"B",$E(X,1,30),DA)
+"^DD",1130580001.101,1130580001.101,.01,3)
+Answer must be 1-30 characters in length
+"^DD",1130580001.101,1130580001.101,.01,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,.5,0)
+SHORT DESCRIPTION^F^^1;1^K:$L(X)>240!($L(X)<3) X
+"^DD",1130580001.101,1130580001.101,.5,.1)
+MEASURE SHORT DESCRIPTION
+"^DD",1130580001.101,1130580001.101,.5,3)
+Answer must be 3-240 characters in length
+"^DD",1130580001.101,1130580001.101,.5,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,.61,0)
+VERY LONG DESCRIPTION^1130580001.111^^6;0
+"^DD",1130580001.101,1130580001.101,.7,0)
+DISPLAY NAME^F^^5;1^K:$L(X)>240!($L(X)<3) X
+"^DD",1130580001.101,1130580001.101,.7,.1)
+QRDA DISPLAY NAME
+"^DD",1130580001.101,1130580001.101,.7,3)
+Answer must be 3-240 characters in length
+"^DD",1130580001.101,1130580001.101,.7,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,1,0)
+NUMERATOR PATIENT LIST^P810.5'^PXRMXP(810.5,^0;2^Q
+"^DD",1130580001.101,1130580001.101,1,.1)
+MEASURE NUMERATOR PATIENT LIST
+"^DD",1130580001.101,1130580001.101,1,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,2,0)
+DENOMINATOR PATIENT LIST^P810.5'^PXRMXP(810.5,^0;3^Q
+"^DD",1130580001.101,1130580001.101,2,.1)
+MEASURE DENOMINATOR PATIENT LIST
+"^DD",1130580001.101,1130580001.101,2,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,3,0)
+QRDA TEMPLATE ROOT^F^^0;4^K:$L(X)>120!($L(X)<3) X
+"^DD",1130580001.101,1130580001.101,3,.1)
+MEASURE TEMPLATE ROOT FOR QRDA DOCUMENT
+"^DD",1130580001.101,1130580001.101,3,3)
+Answer must be 3-120 characters in length
+"^DD",1130580001.101,1130580001.101,3,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,3.1,0)
+QRDA MEASURE SYSTEM OID^CJ^^ ; ^S X="2.16.840.1.113883.3.249.12"
+"^DD",1130580001.101,1130580001.101,3.1,.1)
+QRDA SYSTEM OID (FIXED)
+"^DD",1130580001.101,1130580001.101,3.1,9.01)
+
+"^DD",1130580001.101,1130580001.101,3.1,9.1)
+S X="2.16.840.1.113883.3.249.12"
+"^DD",1130580001.101,1130580001.101,3.1,"DT")
+3101012
+"^DD",1130580001.101,1130580001.101,3.2,0)
+QRDA CODE^F^^4;1^K:$L(X)>80!($L(X)<1) X
+"^DD",1130580001.101,1130580001.101,3.2,.1)
+QRDA MEASURE CODE
+"^DD",1130580001.101,1130580001.101,3.2,3)
+Answer must be 1-80 characters in length
+"^DD",1130580001.101,1130580001.101,3.2,"DT")
+3101012
+"^DD",1130580001.101,1130580001.111,0)
+VERY LONG DESCRIPTION SUB-FIELD^^.01^1
+"^DD",1130580001.101,1130580001.111,0,"DT")
+3101013
+"^DD",1130580001.101,1130580001.111,0,"NM","VERY LONG DESCRIPTION")
+
+"^DD",1130580001.101,1130580001.111,0,"UP")
+1130580001.101
+"^DD",1130580001.101,1130580001.111,.01,0)
+VERY LONG DESCRIPTION^Wx^^0;1
+"^DD",1130580001.101,1130580001.111,.01,.1)
+LONGER DESCRIPTION - IF IT DOESN'T FIT IN .6
+"^DD",1130580001.101,1130580001.111,.01,3)
+LONGER DESCRIPTION - INSTEAD OF LONG DESCRIPTION
+"^DD",1130580001.101,1130580001.111,.01,"DT")
+3101013
+"^DD",1130580001.201,1130580001.201,0)
+FIELD^^.2^9
+"^DD",1130580001.201,1130580001.201,0,"DDA")
+N
+"^DD",1130580001.201,1130580001.201,0,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,0,"IX","ADBYP",1130580001.20112,.01)
+
+"^DD",1130580001.201,1130580001.201,0,"IX","ANBYP",1130580001.20111,.01)
+
+"^DD",1130580001.201,1130580001.201,0,"IX","B",1130580001.201,.01)
+
+"^DD",1130580001.201,1130580001.201,0,"NM","C0Q MEASUREMENTS")
+
+"^DD",1130580001.201,1130580001.201,.01,0)
+SET NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
+"^DD",1130580001.201,1130580001.201,.01,.1)
+MEASUREMENT SET NAME
+"^DD",1130580001.201,1130580001.201,.01,1,0)
+^.1
+"^DD",1130580001.201,1130580001.201,.01,1,1,0)
+1130580001.201^B
+"^DD",1130580001.201,1130580001.201,.01,1,1,1)
+S ^C0Q(201,"B",$E(X,1,30),DA)=""
+"^DD",1130580001.201,1130580001.201,.01,1,1,2)
+K ^C0Q(201,"B",$E(X,1,30),DA)
+"^DD",1130580001.201,1130580001.201,.01,3)
+NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
+"^DD",1130580001.201,1130580001.201,.01,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,.02,0)
+BEGIN DATE^D^^4;3^S %DT="E" D ^%DT S X=Y K:X<1 X
+"^DD",1130580001.201,1130580001.201,.02,.1)
+MEASUREMENT BEGIN DATE
+"^DD",1130580001.201,1130580001.201,.02,3)
+MEASUREMENT BEGIN DATE
+"^DD",1130580001.201,1130580001.201,.02,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,.03,0)
+END DATE^D^^4;4^S %DT="E" D ^%DT S X=Y K:X<1 X
+"^DD",1130580001.201,1130580001.201,.03,.1)
+MEASUREMENT END DATE
+"^DD",1130580001.201,1130580001.201,.03,3)
+MEASUREMENT END DATE
+"^DD",1130580001.201,1130580001.201,.03,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,.04,0)
+DATE LAST CALCULATED^D^^6;1^S %DT="E" D ^%DT S X=Y K:X<1 X
+"^DD",1130580001.201,1130580001.201,.04,.1)
+DATE LAST PROCESSED
+"^DD",1130580001.201,1130580001.201,.04,3)
+DATE LAST PROCESSED
+"^DD",1130580001.201,1130580001.201,.04,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,.05,0)
+LOCKED^S^Y:YES;N:NO;^6;2^Q
+"^DD",1130580001.201,1130580001.201,.05,.1)
+Y/N IS THIS RECORD SET LOCKED
+"^DD",1130580001.201,1130580001.201,.05,3)
+Y/N IS THIS RECORD SET LOCKED
+"^DD",1130580001.201,1130580001.201,.05,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,.2,0)
+USE ALL MEASURES^S^Y:YES;N:NO;^6;3^Q
+"^DD",1130580001.201,1130580001.201,.2,.1)
+INCLUDE ALL MEASURES IN THIS SET?
+"^DD",1130580001.201,1130580001.201,.2,3)
+INCLUDE ALL MEASURES IN THIS SET?
+"^DD",1130580001.201,1130580001.201,.2,"DT")
+3101012
+"^DD",1130580001.201,1130580001.201,1,0)
+MEASURE^1130580001.2011P^^5;0
+"^DD",1130580001.201,1130580001.2011,0)
+MEASURE SUB-FIELD^^3^6
+"^DD",1130580001.201,1130580001.2011,0,"DT")
+3101012
+"^DD",1130580001.201,1130580001.2011,0,"IX","B",1130580001.2011,.01)
+
+"^DD",1130580001.201,1130580001.2011,0,"NM","MEASURE")
+
+"^DD",1130580001.201,1130580001.2011,0,"UP")
+1130580001.201
+"^DD",1130580001.201,1130580001.2011,.01,0)
+MEASURE^MP1130580001.101^C0Q(101,^0;1^Q
+"^DD",1130580001.201,1130580001.2011,.01,.1)
+INCLUDED QUALITY MEASURES
+"^DD",1130580001.201,1130580001.2011,.01,1,0)
+^.1
+"^DD",1130580001.201,1130580001.2011,.01,1,1,0)
+1130580001.2011^B
+"^DD",1130580001.201,1130580001.2011,.01,1,1,1)
+S ^C0Q(201,DA(1),5,"B",$E(X,1,30),DA)=""
+"^DD",1130580001.201,1130580001.2011,.01,1,1,2)
+K ^C0Q(201,DA(1),5,"B",$E(X,1,30),DA)
+"^DD",1130580001.201,1130580001.2011,.01,3)
+INCLUDED QUALITY MEASURES
+"^DD",1130580001.201,1130580001.2011,.01,"DT")
+3101012
+"^DD",1130580001.201,1130580001.2011,1,0)
+NUMERATOR^1130580001.20111P^^1;0
+"^DD",1130580001.201,1130580001.2011,1.1,0)
+NUMERATOR COUNT^NJ10,0^^2;1^K:+X'=X!(X>9999999999)!(X<0)!(X?.E1"."1.N) X
+"^DD",1130580001.201,1130580001.2011,1.1,.1)
+NUMBER OF PATIENTS IN NUMERATOR
+"^DD",1130580001.201,1130580001.2011,1.1,3)
+NUMBER OF PATIENTS IN NUMERATOR
+"^DD",1130580001.201,1130580001.2011,1.1,"DT")
+3101012
+"^DD",1130580001.201,1130580001.2011,2,0)
+DENOMINATOR^1130580001.20112P^^3;0
+"^DD",1130580001.201,1130580001.2011,2.1,0)
+DENOMINATOR COUNT^NJ9,0^^4;1^K:+X'=X!(X>999999999)!(X<0)!(X?.E1"."1.N) X
+"^DD",1130580001.201,1130580001.2011,2.1,.1)
+NUMBER OF PATIENTS IN DENOMINATOR
+"^DD",1130580001.201,1130580001.2011,2.1,3)
+NUMBER OF PATIENTS IN DENOMINATOR
+"^DD",1130580001.201,1130580001.2011,2.1,"DT")
+3101012
+"^DD",1130580001.201,1130580001.2011,3,0)
+PERCENTAGE^NJ3,0^^4;2^K:+X'=X!(X>100)!(X<0)!(X?.E1"."1.N) X
+"^DD",1130580001.201,1130580001.2011,3,.1)
+MEASURE PERCENTAGE
+"^DD",1130580001.201,1130580001.2011,3,3)
+MEASURE PERCENTAGE
+"^DD",1130580001.201,1130580001.2011,3,"DT")
+3101012
+"^DD",1130580001.201,1130580001.20111,0)
+NUMERATOR SUB-FIELD^^.01^1
+"^DD",1130580001.201,1130580001.20111,0,"DT")
+3101012
+"^DD",1130580001.201,1130580001.20111,0,"IX","B",1130580001.20111,.01)
+
+"^DD",1130580001.201,1130580001.20111,0,"NM","NUMERATOR")
+
+"^DD",1130580001.201,1130580001.20111,0,"UP")
+1130580001.2011
+"^DD",1130580001.201,1130580001.20111,.01,0)
+NUMERATOR^MP2'^DPT(^0;1^Q
+"^DD",1130580001.201,1130580001.20111,.01,.1)
+NUMERATOR PATIENTS
+"^DD",1130580001.201,1130580001.20111,.01,1,0)
+^.1
+"^DD",1130580001.201,1130580001.20111,.01,1,1,0)
+1130580001.20111^B
+"^DD",1130580001.201,1130580001.20111,.01,1,1,1)
+S ^C0Q(201,DA(2),5,DA(1),1,"B",$E(X,1,30),DA)=""
+"^DD",1130580001.201,1130580001.20111,.01,1,1,2)
+K ^C0Q(201,DA(2),5,DA(1),1,"B",$E(X,1,30),DA)
+"^DD",1130580001.201,1130580001.20111,.01,1,2,0)
+1130580001.201^ANBYP
+"^DD",1130580001.201,1130580001.20111,.01,1,2,1)
+S ^C0Q(201,"ANBYP",$E(X,1,30),DA(2),DA(1),DA)=""
+"^DD",1130580001.201,1130580001.20111,.01,1,2,2)
+K ^C0Q(201,"ANBYP",$E(X,1,30),DA(2),DA(1),DA)
+"^DD",1130580001.201,1130580001.20111,.01,1,2,"DT")
+3101014
+"^DD",1130580001.201,1130580001.20111,.01,3)
+NUMERATOR PATIENTS
+"^DD",1130580001.201,1130580001.20111,.01,"DT")
+3101014
+"^DD",1130580001.201,1130580001.20112,0)
+DENOMINATOR SUB-FIELD^^.01^1
+"^DD",1130580001.201,1130580001.20112,0,"DT")
+3101012
+"^DD",1130580001.201,1130580001.20112,0,"IX","B",1130580001.20112,.01)
+
+"^DD",1130580001.201,1130580001.20112,0,"NM","DENOMINATOR")
+
+"^DD",1130580001.201,1130580001.20112,0,"UP")
+1130580001.2011
+"^DD",1130580001.201,1130580001.20112,.01,0)
+DENOMINATOR^MP2'^DPT(^0;1^Q
+"^DD",1130580001.201,1130580001.20112,.01,.1)
+DENOMINATOR PATIENTS
+"^DD",1130580001.201,1130580001.20112,.01,1,0)
+^.1
+"^DD",1130580001.201,1130580001.20112,.01,1,1,0)
+1130580001.20112^B
+"^DD",1130580001.201,1130580001.20112,.01,1,1,1)
+S ^C0Q(201,DA(2),5,DA(1),3,"B",$E(X,1,30),DA)=""
+"^DD",1130580001.201,1130580001.20112,.01,1,1,2)
+K ^C0Q(201,DA(2),5,DA(1),3,"B",$E(X,1,30),DA)
+"^DD",1130580001.201,1130580001.20112,.01,1,2,0)
+1130580001.201^ADBYP
+"^DD",1130580001.201,1130580001.20112,.01,1,2,1)
+S ^C0Q(201,"ADBYP",$E(X,1,30),DA(2),DA(1),DA)=""
+"^DD",1130580001.201,1130580001.20112,.01,1,2,2)
+K ^C0Q(201,"ADBYP",$E(X,1,30),DA(2),DA(1),DA)
+"^DD",1130580001.201,1130580001.20112,.01,1,2,"DT")
+3101014
+"^DD",1130580001.201,1130580001.20112,.01,3)
+DENOMINATOR PATIENTS
+"^DD",1130580001.201,1130580001.20112,.01,"DT")
+3101014
+"^DIC",1130580001.101,1130580001.101,0)
+C0Q QUAILITY MEASURE^1130580001.101
+"^DIC",1130580001.101,1130580001.101,0,"GL")
+^C0Q(101,
+"^DIC",1130580001.101,"B","C0Q QUAILITY MEASURE",1130580001.101)
+
+"^DIC",1130580001.201,1130580001.201,0)
+C0Q MEASUREMENTS^1130580001.201
+"^DIC",1130580001.201,1130580001.201,0,"GL")
+^C0Q(201,
+"^DIC",1130580001.201,"B","C0Q MEASUREMENTS",1130580001.201)
+
+**END**
+**END**
