Index: ccr/trunk/p/C0CLA7DD.m
===================================================================
--- ccr/trunk/p/C0CLA7DD.m	(revision 529)
+++ ccr/trunk/p/C0CLA7DD.m	(revision 530)
@@ -1,3 +1,3 @@
-C0CLA7DD	;WV/JMC - CCD/CCR Post Install DD X-Ref Setup Routine; ;18 May 2009
+C0CLA7DD	;WV/JMC - CCD/CCR Post Install DD X-Ref Setup Routine; ;14 Jun 2009
 	;;1.0;C0C;;May 19, 2009;
 	;
@@ -8,4 +8,5 @@
 	;
 EN	; Add new style cross-references to V LAB file if it exists.
+	; OLD entry point - see new KIDS check points in C0CENV.
 	;
 	;
@@ -16,42 +17,41 @@
 	;
 	S MSG="Starting installation of ALR1 cross-reference at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	D ALR1
 	S MSG="Installation of ALR1 cross-reference completed at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	;
 	S MSG="Starting installation of ALR2 cross-reference at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	D ALR2
 	S MSG="Installation of ALR2 cross-reference completed at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	;
 	S MSG="Starting installation of ALR3 cross-reference at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	D ALR3
 	S MSG="Installation of ALR3 cross-reference completed at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	;
 	S MSG="Starting installation of ALR4 cross-reference at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	D ALR4
 	S MSG="Installation of ALR4 cross-reference completed at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	;
 	S MSG="Starting installation of ALR5 cross-reference at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
+	D BMES(MSG)
 	D ALR5
 	S MSG="Installation of ALR5 cross-reference completed at "_$$HTE^XLFDT($H,"1Z")
-	D MES^XPDUTL(MSG)
-	;
-	Q
-	;
-	;
-ALR1	;
-	;
-	N C0CFLAG,C0CXR,C0CRES,C0COUT
-	;
-	S C0CFLAG="S"
-	I '$D(ZTQUEUED) S C0CFLAG=COCFLAG_"W"
+	D BMES(MSG)
+	;
+	Q
+	;
+	;
+ALR1	; Installation of ALR1 cross-reference
+	;
+	N C0CFLAG,C0CXR,C0CRES,C0COUT
+	;
+	S C0CFLAG=""
 	;
 	S C0CXR("FILE")=9000010.09
@@ -80,10 +80,9 @@
 	;
 	;
-ALR2	;
-	;
-	N C0CFLAG,C0CXR,C0CRES,C0COUT
-	;
-	S C0CFLAG="S"
-	I '$D(ZTQUEUED) S C0CFLAG=COCFLAG_"W"
+ALR2	; Installation of ALR2 cross-reference
+	;
+	N C0CFLAG,C0CXR,C0CRES,C0COUT
+	;
+	S C0CFLAG=""
 	;
 	S C0CXR("FILE")=9000010.09
@@ -121,25 +120,46 @@
 	;
 	;
-ALR3	;
-	;
-	N C0CFLAG,C0CXR,C0CRES,C0COUT
-	;
-	S C0CFLAG="S"
-	I '$D(ZTQUEUED) S C0CFLAG=COCFLAG_"W"
-	;
-	S C0CXR("FILE")=9000010.09
-	S C0CXR("NAME")="ALR2"
-	S C0CXR("TYPE")="MU"
-	S C0CXR("USE")="S"
-	S C0CXR("EXECUTION")="R"
-	S C0CXR("ACTIVITY")="IR"
-	S C0CXR("SHORT DESCR")="X-ref for LOINC code related to test result."
-	S C0CXR("DESCR",1)="This cross-reference is used to identify the LOINC codes"
-	S C0CXR("DESCR",2)="that has been assigned to a lab result. Allows queries to"
-	S C0CXR("DESCR",3)="retrieve the LOINC code associated with a specific test"
-	S C0CXR("DESCR",4)="result."
-	S C0CXR("SET")="S ^AUPNVLAB(""ALR2"",X(1),X(2),X(3),X(4),X(5),DA)="""""
-	S C0CXR("KILL")="K ^AUPNVLAB(""ALR2"",X(1),X(2),X(3),X(4),X(5),DA)"
-	S C0CXR("WHOLE KILL")="K ^AUPNVLAB(""ALR2"")"
+ALR3	; Installation of ALR3 cross-reference
+	;
+	N C0CFLAG,C0CXR,C0CRES,C0COUT
+	;
+	S C0CFLAG=""
+	;
+	S C0CXR("FILE")=9000010.09
+	S C0CXR("NAME")="ALR3"
+	S C0CXR("TYPE")="R"
+	S C0CXR("USE")="S"
+	S C0CXR("EXECUTION")="F"
+	S C0CXR("ACTIVITY")="IR"
+	S C0CXR("SHORT DESCR")="X-ref for LOINC code related to test result - any patient"
+	S C0CXR("DESCR",1)="This cross-reference is used to identify the LOINC codes that has been assigned to a lab result. Allows queries"
+	S C0CXR("DESCR",2)="to retrieve the LOINC code associated with a specific test result. It allows any patient"
+	S C0CXR("DESCR",3)="lab results to be identified by LOINC"
+	S C0CXR("VAL",1)=1113
+	S C0CXR("VAL",1,"SUBSCRIPT")=1
+	S C0CXR("VAL",1,"COLLATION")="F"
+	;
+	D CREIXN^DDMOD(.C0CXR,C0CFLAG,.C0CRES,"C0COUT")
+	;
+	Q
+	;
+	;
+ALR4	; Installation of ALR4 cross-reference
+	;
+	N C0CFLAG,C0CXR,C0CRES,C0COUT
+	;
+	S C0CFLAG=""
+	;
+	S C0CXR("FILE")=9000010.09
+	S C0CXR("NAME")="ALR4"
+	S C0CXR("TYPE")="R"
+	S C0CXR("USE")="S"
+	S C0CXR("EXECUTION")="R"
+	S C0CXR("ACTIVITY")="IR"
+	S C0CXR("SHORT DESCR")="X-ref by patient and collection date/time"
+	S C0CXR("DESCR",1)="This cross-reference is used to identify all lab results for a"
+	S C0CXR("DESCR",2)="patient by collection date/time. This includes results that are only in"
+	S C0CXR("DESCR",3)="this file and therefore do not have a corresponding entry in LAB DATA"
+	S C0CXR("DESCR",4)="file (#63)."
 	S C0CXR("VAL",1)=.02
 	S C0CXR("VAL",1,"SUBSCRIPT")=1
@@ -148,96 +168,101 @@
 	S C0CXR("VAL",2,"SUBSCRIPT")=2
 	S C0CXR("VAL",2,"COLLATION")="F"
-	S C0CXR("VAL",3)=.06
-	S C0CXR("VAL",3,"SUBSCRIPT")=3
-	S C0CXR("VAL",3,"COLLATION")="F"
-	S C0CXR("VAL",4)=.01
-	S C0CXR("VAL",4,"SUBSCRIPT")=4
-	S C0CXR("VAL",4,"COLLATION")="F"
-	S C0CXR("VAL",5)=1113
-	S C0CXR("VAL",5,"SUBSCRIPT")=5
-	S C0CXR("VAL",5,"COLLATION")="F"
-	D CREIXN^DDMOD(.C0CXR,C0CFLAG,.C0CRES,"C0COUT")
-	;
-	Q
-	;
-	;
-ALR4	;
-	;
-	N C0CFLAG,C0CXR,C0CRES,C0COUT
-	;
-	S C0CFLAG="S"
-	I '$D(ZTQUEUED) S C0CFLAG=COCFLAG_"W"
-	;
-	S C0CXR("FILE")=9000010.09
-	S C0CXR("NAME")="ALR2"
-	S C0CXR("TYPE")="MU"
-	S C0CXR("USE")="S"
-	S C0CXR("EXECUTION")="R"
-	S C0CXR("ACTIVITY")="IR"
-	S C0CXR("SHORT DESCR")="X-ref for LOINC code related to test result."
-	S C0CXR("DESCR",1)="This cross-reference is used to identify the LOINC codes"
-	S C0CXR("DESCR",2)="that has been assigned to a lab result. Allows queries to"
-	S C0CXR("DESCR",3)="retrieve the LOINC code associated with a specific test"
-	S C0CXR("DESCR",4)="result."
-	S C0CXR("SET")="S ^AUPNVLAB(""ALR2"",X(1),X(2),X(3),X(4),X(5),DA)="""""
-	S C0CXR("KILL")="K ^AUPNVLAB(""ALR2"",X(1),X(2),X(3),X(4),X(5),DA)"
-	S C0CXR("WHOLE KILL")="K ^AUPNVLAB(""ALR2"")"
-	S C0CXR("VAL",1)=.02
-	S C0CXR("VAL",1,"SUBSCRIPT")=1
-	S C0CXR("VAL",1,"COLLATION")="F"
-	S C0CXR("VAL",2)=1201
-	S C0CXR("VAL",2,"SUBSCRIPT")=2
-	S C0CXR("VAL",2,"COLLATION")="F"
-	S C0CXR("VAL",3)=.06
-	S C0CXR("VAL",3,"SUBSCRIPT")=3
-	S C0CXR("VAL",3,"COLLATION")="F"
-	S C0CXR("VAL",4)=.01
-	S C0CXR("VAL",4,"SUBSCRIPT")=4
-	S C0CXR("VAL",4,"COLLATION")="F"
-	S C0CXR("VAL",5)=1113
-	S C0CXR("VAL",5,"SUBSCRIPT")=5
-	S C0CXR("VAL",5,"COLLATION")="F"
-	D CREIXN^DDMOD(.C0CXR,C0CFLAG,.C0CRES,"C0COUT")
-	;
-	Q
-	;
-	;
-ALR5	;
-	;
-	N C0CFLAG,C0CXR,C0CRES,C0COUT
-	;
-	S C0CFLAG="S"
-	I '$D(ZTQUEUED) S C0CFLAG=COCFLAG_"W"
-	;
-	S C0CXR("FILE")=9000010.09
-	S C0CXR("NAME")="ALR2"
-	S C0CXR("TYPE")="MU"
-	S C0CXR("USE")="S"
-	S C0CXR("EXECUTION")="R"
-	S C0CXR("ACTIVITY")="IR"
-	S C0CXR("SHORT DESCR")="X-ref for LOINC code related to test result."
-	S C0CXR("DESCR",1)="This cross-reference is used to identify the LOINC codes"
-	S C0CXR("DESCR",2)="that has been assigned to a lab result. Allows queries to"
-	S C0CXR("DESCR",3)="retrieve the LOINC code associated with a specific test"
-	S C0CXR("DESCR",4)="result."
-	S C0CXR("SET")="S ^AUPNVLAB(""ALR2"",X(1),X(2),X(3),X(4),X(5),DA)="""""
-	S C0CXR("KILL")="K ^AUPNVLAB(""ALR2"",X(1),X(2),X(3),X(4),X(5),DA)"
-	S C0CXR("WHOLE KILL")="K ^AUPNVLAB(""ALR2"")"
-	S C0CXR("VAL",1)=.02
-	S C0CXR("VAL",1,"SUBSCRIPT")=1
-	S C0CXR("VAL",1,"COLLATION")="F"
-	S C0CXR("VAL",2)=1201
-	S C0CXR("VAL",2,"SUBSCRIPT")=2
-	S C0CXR("VAL",2,"COLLATION")="F"
-	S C0CXR("VAL",3)=.06
-	S C0CXR("VAL",3,"SUBSCRIPT")=3
-	S C0CXR("VAL",3,"COLLATION")="F"
-	S C0CXR("VAL",4)=.01
-	S C0CXR("VAL",4,"SUBSCRIPT")=4
-	S C0CXR("VAL",4,"COLLATION")="F"
-	S C0CXR("VAL",5)=1113
-	S C0CXR("VAL",5,"SUBSCRIPT")=5
-	S C0CXR("VAL",5,"COLLATION")="F"
-	D CREIXN^DDMOD(.C0CXR,C0CFLAG,.C0CRES,"C0COUT")
-	;
-	Q
+	;
+	D CREIXN^DDMOD(.C0CXR,C0CFLAG,.C0CRES,"C0COUT")
+	;
+	Q
+	;
+	;
+ALR5	; Installation of ALR5 cross-reference
+	;
+	N C0CFLAG,C0CXR,C0CRES,C0COUT
+	;
+	S C0CFLAG=""
+	;
+	S C0CXR("FILE")=9000010.09
+	S C0CXR("NAME")="ALR5"
+	S C0CXR("TYPE")="R"
+	S C0CXR("USE")="S"
+	S C0CXR("EXECUTION")="R"
+	S C0CXR("ACTIVITY")="IR"
+	S C0CXR("SHORT DESCR")="X-ref by patient and results availble date/time"
+	S C0CXR("DESCR",1)="This cross-reference is used to identify all lab results for a"
+	S C0CXR("DESCR",2)="patient by results available date/time. This includes results that are only in"
+	S C0CXR("DESCR",3)="this file and therefore do not have a corresponding entry in LAB DATA"
+	S C0CXR("DESCR",4)="file (#63)."
+	S C0CXR("VAL",1)=.02
+	S C0CXR("VAL",1,"SUBSCRIPT")=1
+	S C0CXR("VAL",1,"COLLATION")="F"
+	S C0CXR("VAL",2)=1212
+	S C0CXR("VAL",2,"SUBSCRIPT")=2
+	S C0CXR("VAL",2,"COLLATION")="F"
+	;
+	D CREIXN^DDMOD(.C0CXR,C0CFLAG,.C0CRES,"C0COUT")
+	;
+	Q
+	;
+	;
+REINDEX	; Set data into indexes for current entries.
+	;
+	;
+	N %,C0CNT,DA,DIK,MSG
+	;
+	S (C0CNT,DA)=0
+	S DIK="^AUPNVLAB("
+	S DIK(1)=".02^ALR1^ALR2^ALR4^ALR5"
+	;
+	; Create checkpoint
+	S %=$$NEWCP^XPDUTL("RPMS7","","")
+	;
+	; Retrieve checkpoint value if previously saved
+	S %=$$PARCP^XPDUTL("RPMS7","")
+	I %'="" S DA=%
+	;
+	S MSG="Starting indexing of ALR1, ALR2, ALR4, ALR5 indexes"
+	D BMES(MSG)
+	;
+	I DA'="END" D
+	. F  S DA=$O(^AUPNVLAB(DA)) Q:DA<1  D
+	. . D EN1^DIK
+	. . S C0CNT=C0CNT+1
+	. . I (C0CNT#100)=0 S %=$$UPCP^XPDUTL("RPMS7",DA)
+	S %=$$UPCP^XPDUTL("RPMS7","END")
+	;
+	S MSG="Finished indexing of ALR1, ALR2, ALR4, ALR5 indexes"
+	D BMES(MSG)
+	;
+	K DA,DIK
+	;
+	S (C0CNT,DA)=0
+	S DIK="^AUPNVLAB("
+	S DIK(1)="1113^ALR3"
+	;
+	; Create checkpoint
+	S %=$$NEWCP^XPDUTL("RPMS8","","")
+	;
+	; Retrieve checkpoint value if previously saved
+	S %=$$PARCP^XPDUTL("RPMS8","")
+	I %'="" S DA=%
+	;
+	S MSG="Starting indexing of ALR3 index"
+	D BMES(MSG)
+	;
+	I DA'="END" D
+	. F  S DA=$O(^AUPNVLAB(DA)) Q:DA<1  D
+	. . D EN1^DIK
+	. . S C0CNT=C0CNT+1
+	. . I (C0CNT#100)=0 S %=$$UPCP^XPDUTL("RPMS8",DA)
+	S %=$$UPCP^XPDUTL("RPMS8","END")
+	;
+	S MSG="Finished indexing of ALR3 index"
+	D BMES(MSG)
+	;
+	;
+	Q
+	;
+	;
+BMES(STR) ; Write BMES^XPDUTL statements
+	;
+	D BMES^XPDUTL($$CJ^XLFSTR(STR,IOM))
+	;
+	Q
