From 11e1f826639a6303c5cc89c829b83825389f2fcd Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 30 Oct 2012 17:14:48 +0000 Subject: [PATCH] License changed to AGPL --- kids/CCD-CCR_GENERATION_UTILITIES_1P2.KID | 41196 ++++++++++---------- 1 file changed, 20701 insertions(+), 20495 deletions(-) diff --git a/kids/CCD-CCR_GENERATION_UTILITIES_1P2.KID b/kids/CCD-CCR_GENERATION_UTILITIES_1P2.KID index fec342b..2d99f70 100644 --- a/kids/CCD-CCR_GENERATION_UTILITIES_1P2.KID +++ b/kids/CCD-CCR_GENERATION_UTILITIES_1P2.KID @@ -1,928 +1,934 @@ -KIDS Distribution saved on Jun 25, 2012@10:01:50 -Changed name to full Package Name rather than nmsp +KIDS Distribution saved on Oct 30, 2012@10:27:50 +CCD/CCR Generation Package Version 1.2 **KIDS**:CCD/CCR GENERATION UTILITIES 1.2^ **INSTALL NAME** CCD/CCR GENERATION UTILITIES 1.2 -"BLD",7891,0) -CCD/CCR GENERATION UTILITIES 1.2^CCD/CCR GENERATION UTILITIES^0^3120625^n -"BLD",7891,1,0) -^^185^185^3120511^^^^ -"BLD",7891,1,1,0) +"BLD",7883,0) +CCD/CCR GENERATION UTILITIES 1.2^CCD/CCR GENERATION UTILITIES^0^3121030^n +"BLD",7883,1,0) +^^188^188^3121029^ +"BLD",7883,1,1,0) +Licensed under AGPL v3. For complete license text, see +"BLD",7883,1,2,0) +http://www.gnu.org/licenses/agpl-3.0.html +"BLD",7883,1,3,0) + +"BLD",7883,1,4,0) CCR Project release v1.2 -"BLD",7891,1,2,0) +"BLD",7883,1,5,0) -"BLD",7891,1,3,0) +"BLD",7883,1,6,0) The purpose of the CCR package is to provide support for exporting and -"BLD",7891,1,4,0) +"BLD",7883,1,7,0) eventually importing patient information from/to VistA in XML documents -"BLD",7891,1,5,0) +"BLD",7883,1,8,0) conforming to the Continuity of Care Record (CCR - ASTM) and Continuity -"BLD",7891,1,6,0) +"BLD",7883,1,9,0) of Care Document (CCD - HL7) standards. -"BLD",7891,1,7,0) +"BLD",7883,1,10,0) -"BLD",7891,1,8,0) +"BLD",7883,1,11,0) This version of the CCR package provides: -"BLD",7891,1,9,0) +"BLD",7883,1,12,0) -"BLD",7891,1,10,0) +"BLD",7883,1,13,0) EXPORT^C0CCCR -"BLD",7891,1,11,0) +"BLD",7883,1,14,0) A command line interface to export a single patient's CCR to a host -"BLD",7891,1,12,0) +"BLD",7883,1,15,0) directory by specifying the patient by name. -"BLD",7891,1,13,0) +"BLD",7883,1,16,0) -"BLD",7891,1,14,0) +"BLD",7883,1,17,0) EXPORT^C0CCCD -"BLD",7891,1,15,0) +"BLD",7883,1,18,0) A command line interface to export a single patient's CCD to a host -"BLD",7891,1,16,0) +"BLD",7883,1,19,0) directory by specifying the patient by name. As an alternative to -"BLD",7891,1,17,0) +"BLD",7883,1,20,0) generating the CCD directly, an XSLT transformation is available to -"BLD",7891,1,18,0) +"BLD",7883,1,21,0) translate a CCR into a level 2 CCD. This tranformation has been tested -"BLD",7891,1,19,0) +"BLD",7883,1,22,0) and produces a CCD with all currently supported sections of the CCR. The -"BLD",7891,1,20,0) +"BLD",7883,1,23,0) EXPORT^C0CCCD only extracts the PROBLEMS section into a CCD. -"BLD",7891,1,21,0) +"BLD",7883,1,24,0) -"BLD",7891,1,22,0) +"BLD",7883,1,25,0) XPAT^C0CCCR(DFN,OUTDIR,OUTFILE) -"BLD",7891,1,23,0) +"BLD",7883,1,26,0) A command line and program interface to export a single patient's CCR -"BLD",7891,1,24,0) +"BLD",7883,1,27,0) using the IEN of the patient in the ^DPT file (DFN). -"BLD",7891,1,25,0) +"BLD",7883,1,28,0) OUTDIR specifies an existing directory on the Host system into which the -"BLD",7891,1,26,0) +"BLD",7883,1,29,0) CCR XML document will be written. If OUTDIR is null (""), the output -"BLD",7891,1,27,0) +"BLD",7883,1,30,0) directory name will be taken from ^TMP("C0CCCR","ODIR"). -"BLD",7891,1,28,0) +"BLD",7883,1,31,0) OUFILE specifies the host file name of the CCR XML document that will be -"BLD",7891,1,29,0) +"BLD",7883,1,32,0) written for this patient. If OUTFILE is null ("") the document name will -"BLD",7891,1,30,0) +"BLD",7883,1,33,0) default to PAT_x_CCR_V1.xml where x is the DFN of the patient. -"BLD",7891,1,31,0) +"BLD",7883,1,34,0) -"BLD",7891,1,32,0) +"BLD",7883,1,35,0) CCRRPC(CCRGRTN,DFN,CCRPARMS,CCRPART) -"BLD",7891,1,33,0) +"BLD",7883,1,36,0) An RPC and program interface to return in return array CCRGRTN (passed by -"BLD",7891,1,34,0) +"BLD",7883,1,37,0) reference) a single patient's CCR. -"BLD",7891,1,35,0) +"BLD",7883,1,38,0) DFN is the patient's IEN -"BLD",7891,1,36,0) +"BLD",7883,1,39,0) CCRPART is what portion of the CCR should be returned. If "CCR" is -"BLD",7891,1,37,0) +"BLD",7883,1,40,0) specified, the entire CCR will be returned. If "PROBLEMS", "VITALS", or -"BLD",7891,1,38,0) +"BLD",7883,1,41,0) "MEDICATIONS" is specified, only that section of the CCR will be returned. -"BLD",7891,1,39,0) +"BLD",7883,1,42,0) CCRPARMS ARE PARAMETERS THAT AFFECT THE EXTRACTION -"BLD",7891,1,40,0) +"BLD",7883,1,43,0) IN THE FORM "PARM1:VALUE1^PARM2:VALUE2" -"BLD",7891,1,41,0) +"BLD",7883,1,44,0) EXAMPLE: "LABLIMIT:T-60" TO LIMIT LAB EXTRACTION TO THE LAST 60 DAYS -"BLD",7891,1,42,0) +"BLD",7883,1,45,0) SEE C0CPARMS FOR A COMPLETE LIST OF SUPPORTED PARAMETERS -"BLD",7891,1,43,0) +"BLD",7883,1,46,0) -"BLD",7891,1,44,0) +"BLD",7883,1,47,0) ANALYZE^C0CRIMA(BGNDFN,DFNCNT,CCRPARMS) -"BLD",7891,1,45,0) +"BLD",7883,1,48,0) A command line and program interface to analyze the data from multiple -"BLD",7891,1,46,0) +"BLD",7883,1,49,0) patients into categories that can be batch extracted. -"BLD",7891,1,47,0) +"BLD",7883,1,50,0) BGNDFN is the beginning DFN to be analyzed. If BGNDFN is null ("") its -"BLD",7891,1,48,0) +"BLD",7883,1,51,0) value will be taken from ^TMP("C0CRIM","RESUME"). If this variable does -"BLD",7891,1,49,0) +"BLD",7883,1,52,0) not exist, the routine will start with the first IEN in the patient file -"BLD",7891,1,50,0) +"BLD",7883,1,53,0) ^DPT. ^TMP("C0CRIM","RESUME") is updated to the "next" patient to be -"BLD",7891,1,51,0) +"BLD",7883,1,54,0) analyzed on successful completion. -"BLD",7891,1,52,0) +"BLD",7883,1,55,0) DFNCNT is the count of how many patient records will be analyzed in this -"BLD",7891,1,53,0) +"BLD",7883,1,56,0) execution. -"BLD",7891,1,54,0) +"BLD",7883,1,57,0) For example ANALYZE^C0CRIMA(1000,1000) would start at patient DFN 1000 -"BLD",7891,1,55,0) +"BLD",7883,1,58,0) and analyzes 1000 patient records. ANALYZE^C0CRIMA("",1000) would then -"BLD",7891,1,56,0) +"BLD",7883,1,59,0) analyze the next 1000 patients. When the end of the patient file is -"BLD",7891,1,57,0) +"BLD",7883,1,60,0) reached, the routine terminates with a message that RESET^C0CRIMA would -"BLD",7891,1,58,0) +"BLD",7883,1,61,0) need to be called to restart the analysis. -"BLD",7891,1,59,0) +"BLD",7883,1,62,0) -"BLD",7891,1,60,0) +"BLD",7883,1,63,0) The categories into which the records are analyzed consist of attribute -"BLD",7891,1,61,0) +"BLD",7883,1,64,0) strings. The attributes represent characteristics of the variables that -"BLD",7891,1,62,0) +"BLD",7883,1,65,0) can be extracted for a given patient into the CCR or the CCD. This -"BLD",7891,1,63,0) +"BLD",7883,1,66,0) version supports the following attributes: -"BLD",7891,1,64,0) +"BLD",7883,1,67,0) VITALS : the patient has variables for the VITALS section of the CCR/CCD -"BLD",7891,1,65,0) +"BLD",7883,1,68,0) PROBLEMS : the patient has variables for the PROBLEMS section of the -"BLD",7891,1,66,0) +"BLD",7883,1,69,0) CCR/CCD -"BLD",7891,1,67,0) +"BLD",7883,1,70,0) MEDS : the patient has variables for the MEDICATIONS section of the -"BLD",7891,1,68,0) +"BLD",7883,1,71,0) CCR/CCD -"BLD",7891,1,69,0) +"BLD",7883,1,72,0) HEADER : the patient has variables for the HEADER section of the CCR/CCD. -"BLD",7891,1,70,0) +"BLD",7883,1,73,0) All patients are marked with the HEADER attribute in this version. -"BLD",7891,1,71,0) +"BLD",7883,1,74,0) NOTEXTRACTED : the CCR or CCD has not yet been produced/extracted for -"BLD",7891,1,72,0) +"BLD",7883,1,75,0) this patient. All patient records are marked with the NOTEXTRACTED -"BLD",7891,1,73,0) +"BLD",7883,1,76,0) attribute in this version for batch control processing (not implemented -"BLD",7891,1,74,0) +"BLD",7883,1,77,0) in this version). -"BLD",7891,1,75,0) +"BLD",7883,1,78,0) -"BLD",7891,1,76,0) +"BLD",7883,1,79,0) ANAZYZE^C0CRIMA calls the variable extraction routines that would be used -"BLD",7891,1,77,0) +"BLD",7883,1,80,0) to produce a CCR or a CCD and saves the results to ^TMP("C0CRIM",DFN) for -"BLD",7891,1,78,0) +"BLD",7883,1,81,0) each patient. In addition, the attribute string for each patient is saved -"BLD",7891,1,79,0) +"BLD",7883,1,82,0) in ^TMP("C0CRIM","ATTR") -"BLD",7891,1,80,0) +"BLD",7883,1,83,0) -"BLD",7891,1,81,0) +"BLD",7883,1,84,0) Categories are created as they first occur based on each unique -"BLD",7891,1,82,0) +"BLD",7883,1,85,0) combination of attributes that is encountered. They are named after the -"BLD",7891,1,83,0) +"BLD",7883,1,86,0) attribute table that is used for the analysis. This version supports only -"BLD",7891,1,84,0) +"BLD",7883,1,87,0) the attribute table .RIMTBL. and the categories are named "RIMTBL_x". An -"BLD",7891,1,85,0) +"BLD",7883,1,88,0) example set of categories from a demo systems is: -"BLD",7891,1,86,0) +"BLD",7883,1,89,0) -"BLD",7891,1,87,0) +"BLD",7883,1,90,0) GTM>D CLIST^C0CRIMA -"BLD",7891,1,88,0) +"BLD",7883,1,91,0) (RIMTBL_1:105) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS^^^^^MEDS -"BLD",7891,1,89,0) +"BLD",7883,1,92,0) (RIMTBL_2:596) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS -"BLD",7891,1,90,0) +"BLD",7883,1,93,0) (RIMTBL_3:44) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS -"BLD",7891,1,91,0) +"BLD",7883,1,94,0) (RIMTBL_4:821) ^NOTEXTRACTED^HEADER -"BLD",7891,1,92,0) +"BLD",7883,1,95,0) (RIMTBL_5:18) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS^^^^^MEDS -"BLD",7891,1,93,0) +"BLD",7883,1,96,0) (RIMTBL_6:14) ^NOTEXTRACTED^HEADER^^^PROBLEMS -"BLD",7891,1,94,0) +"BLD",7883,1,97,0) (RIMTBL_7:15) ^NOTEXTRACTED^HEADER^^^^^^^^^^^^^MEDS -"BLD",7891,1,95,0) +"BLD",7883,1,98,0) (RIMTBL_8:5) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^^^^^^MEDS -"BLD",7891,1,96,0) +"BLD",7883,1,99,0) -"BLD",7891,1,97,0) +"BLD",7883,1,100,0) for RIMTBL_1 in this example, 105 is the record count of patients who -"BLD",7891,1,98,0) +"BLD",7883,1,101,0) have this combination of attributes. The list of patients for each -"BLD",7891,1,99,0) +"BLD",7883,1,102,0) category is also maintained for batch extraction. -"BLD",7891,1,100,0) +"BLD",7883,1,103,0) -"BLD",7891,1,101,0) +"BLD",7883,1,104,0) CLIST^C0CRIMA -"BLD",7891,1,102,0) +"BLD",7883,1,105,0) A command line interface to show a summary of the categories, record -"BLD",7891,1,103,0) +"BLD",7883,1,106,0) counts, and attributes that have been analyzed so far. It produces the -"BLD",7891,1,104,0) +"BLD",7883,1,107,0) listing in the example above from information stored in -"BLD",7891,1,105,0) +"BLD",7883,1,108,0) ^TMP("C0CRIM","CATS","RIMTBL"). It is intended for future versions that -"BLD",7891,1,106,0) +"BLD",7883,1,109,0) attribute tables be supported in addition to the default "RIMTBL". -"BLD",7891,1,107,0) +"BLD",7883,1,110,0) -"BLD",7891,1,108,0) +"BLD",7883,1,111,0) CPAT^C0CRIMA(CPATCAT) -"BLD",7891,1,109,0) +"BLD",7883,1,112,0) A command line interface which shows the DFN numbers of the patients -"BLD",7891,1,110,0) +"BLD",7883,1,113,0) represented by the category CPATCAT. DFNs are listed 10 per line. For -"BLD",7891,1,111,0) +"BLD",7883,1,114,0) example: -"BLD",7891,1,112,0) +"BLD",7883,1,115,0) -"BLD",7891,1,113,0) +"BLD",7883,1,116,0) GTM>D CPAT^C0CRIMA("RIMTBL_1") -"BLD",7891,1,114,0) +"BLD",7883,1,117,0) 1 3 8 25 42 69 123 140 146 149 -"BLD",7891,1,115,0) +"BLD",7883,1,118,0) 151 168 204 205 217 218 224 228 229 231 -"BLD",7891,1,116,0) +"BLD",7883,1,119,0) 236 237 240 253 260 267 271 301 347 350 -"BLD",7891,1,117,0) +"BLD",7883,1,120,0) 366 379 384 391 407 418 419 420 428 433 -"BLD",7891,1,118,0) +"BLD",7883,1,121,0) 442 520 569 600 620 692 706 715 722 723 -"BLD",7891,1,119,0) +"BLD",7883,1,122,0) 724 728 730 744 745 746 747 748 749 750 -"BLD",7891,1,120,0) +"BLD",7883,1,123,0) 751 752 753 754 755 756 757 758 759 760 -"BLD",7891,1,121,0) +"BLD",7883,1,124,0) 761 762 763 764 765 766 767 768 769 770 -"BLD",7891,1,122,0) +"BLD",7883,1,125,0) 771 772 773 774 775 776 777 778 779 780 -"BLD",7891,1,123,0) +"BLD",7883,1,126,0) 100000 100001 100002 100003 100004 100005 100006 100007 100008 100009 -"BLD",7891,1,124,0) +"BLD",7883,1,127,0) 100010 100011 100012 100013 100014 -"BLD",7891,1,125,0) +"BLD",7883,1,128,0) -"BLD",7891,1,126,0) +"BLD",7883,1,129,0) These are the 105 patient records included in category "RIMTBL_1" from -"BLD",7891,1,127,0) +"BLD",7883,1,130,0) the above example. -"BLD",7891,1,128,0) +"BLD",7883,1,131,0) -"BLD",7891,1,129,0) +"BLD",7883,1,132,0) DPATV^C0CRIMA(DFN,"SECTION") -"BLD",7891,1,130,0) +"BLD",7883,1,133,0) A command line interface to display the values of variables for a -"BLD",7891,1,131,0) +"BLD",7883,1,134,0) patient. "SECTION" can be any of the CCR sections. ie -"BLD",7891,1,132,0) +"BLD",7883,1,135,0) "ALERTS","RESULTS","MEDS". If SECTION is ommitted, all sections will be -"BLD",7891,1,133,0) +"BLD",7883,1,136,0) shown. An example: -"BLD",7891,1,134,0) +"BLD",7883,1,137,0) -"BLD",7891,1,135,0) +"BLD",7883,1,138,0) GTM>D DPATV^C0CRIMA(2,"PROBLEMS") -"BLD",7891,1,136,0) +"BLD",7883,1,139,0) 1 1^PROBLEMCODEVALUE^V18.0 -"BLD",7891,1,137,0) +"BLD",7883,1,140,0) 2 1^PROBLEMCODINGVERSION^ -"BLD",7891,1,138,0) +"BLD",7883,1,141,0) 3 1^PROBLEMCONDITION^P -"BLD",7891,1,139,0) +"BLD",7883,1,142,0) 4 1^PROBLEMDATEMOD^2005-07-19T00:00:00-05:00 -"BLD",7891,1,140,0) +"BLD",7883,1,143,0) 5 1^PROBLEMDATEOFONSET^1700--T00:00:00-05:00 -"BLD",7891,1,141,0) +"BLD",7883,1,144,0) 6 1^PROBLEMDESCRIPTION^Family History of Diabetes Mellitus (ICD-9-CM -"BLD",7891,1,142,0) +"BLD",7883,1,145,0) V18.0) -"BLD",7891,1,143,0) +"BLD",7883,1,146,0) 7 1^PROBLEMDTREC^1701--T00:00:00-05:00 -"BLD",7891,1,144,0) +"BLD",7883,1,147,0) 8 1^PROBLEMHASCMT^ -"BLD",7891,1,145,0) +"BLD",7883,1,148,0) 9 1^PROBLEMIEN^8 -"BLD",7891,1,146,0) +"BLD",7883,1,149,0) 10 1^PROBLEMINACT^1700--T00:00:00-05:00 -"BLD",7891,1,147,0) +"BLD",7883,1,150,0) -"BLD",7891,1,148,0) +"BLD",7883,1,151,0) DCCR^C0CCCR(DFN) -"BLD",7891,1,149,0) +"BLD",7883,1,152,0) This will display the XML of a CCR that has been generated for a patient. -"BLD",7891,1,150,0) +"BLD",7883,1,153,0) It is run after generating the CCR with XPAT^C0CCCR or XCPAT^C0CRIMA. -"BLD",7891,1,151,0) +"BLD",7883,1,154,0) -"BLD",7891,1,152,0) +"BLD",7883,1,155,0) XCPAT^C0CRIMA(CPATCAT) -"BLD",7891,1,153,0) +"BLD",7883,1,156,0) A command line interface to extract a batch of patient CCR documents that -"BLD",7891,1,154,0) +"BLD",7883,1,157,0) are associated with the category CPATCAT. For example, -"BLD",7891,1,155,0) +"BLD",7883,1,158,0) -"BLD",7891,1,156,0) +"BLD",7883,1,159,0) XCPAT^C0CRIMA("RIMTBL_1") to extract the CCR documents for the 105 -"BLD",7891,1,157,0) +"BLD",7883,1,160,0) patients in the above example. -"BLD",7891,1,158,0) +"BLD",7883,1,161,0) -"BLD",7891,1,159,0) +"BLD",7883,1,162,0) RESET^C0CRIMA -"BLD",7891,1,160,0) +"BLD",7883,1,163,0) A command line interface to kill all ANALYZE^C0CRIMA results stored so -"BLD",7891,1,161,0) +"BLD",7883,1,164,0) far so that the analysis can be done again. It kills -"BLD",7891,1,162,0) +"BLD",7883,1,165,0) ^TMP("C0CRIM","RESUME") and all extraction variables that have been saved -"BLD",7891,1,163,0) +"BLD",7883,1,166,0) in ^TMP("C0CRIM") -"BLD",7891,1,164,0) +"BLD",7883,1,167,0) -"BLD",7891,1,165,0) +"BLD",7883,1,168,0) NOTES: -"BLD",7891,1,166,0) +"BLD",7883,1,169,0) This version of the package is a prototype, and does not yet make use of -"BLD",7891,1,167,0) +"BLD",7883,1,170,0) the standard VistA features that are appropriate for it to use. -"BLD",7891,1,168,0) +"BLD",7883,1,171,0) -"BLD",7891,1,169,0) +"BLD",7883,1,172,0) ^TMP("C0CCCR","ODIR") must be set manually to the output directory on the -"BLD",7891,1,170,0) +"BLD",7883,1,173,0) Host System. It is intended that this be maintainable in a parameter file. -"BLD",7891,1,171,0) +"BLD",7883,1,174,0) -"BLD",7891,1,172,0) +"BLD",7883,1,175,0) CCRRPC^C0CCCR and CCDRPC^C0CCCD are intended to be RPC interfaces to the -"BLD",7891,1,173,0) +"BLD",7883,1,176,0) package but there is no entry for them in the RPC table and the RPC -"BLD",7891,1,174,0) +"BLD",7883,1,177,0) method of access has not been tested. -"BLD",7891,1,175,0) +"BLD",7883,1,178,0) -"BLD",7891,1,176,0) +"BLD",7883,1,179,0) Most of the command line interface functions in the package are intended -"BLD",7891,1,177,0) +"BLD",7883,1,180,0) to also be made available as RPC calls. This will provide the ability to -"BLD",7891,1,178,0) +"BLD",7883,1,181,0) invoke and control batch extraction and analysis via RPCs -"BLD",7891,1,179,0) +"BLD",7883,1,182,0) -"BLD",7891,1,180,0) +"BLD",7883,1,183,0) The "RIM" variables and attributes that are now being stored in -"BLD",7891,1,181,0) +"BLD",7883,1,184,0) ^TMP("C0CRIM") are intended to be maintained in a standard FILEMAN -"BLD",7891,1,182,0) +"BLD",7883,1,185,0) global, and to take advantage of FILEMAN indexing for efficient batch -"BLD",7891,1,183,0) +"BLD",7883,1,186,0) analysis and processing. -"BLD",7891,1,184,0) +"BLD",7883,1,187,0) -"BLD",7891,1,185,0) +"BLD",7883,1,188,0) It is intended that menu interfaces be provided in addition to command -"BLD",7891,4,0) +"BLD",7883,4,0) ^9.64PA^170.9^12 -"BLD",7891,4,170,0) +"BLD",7883,4,170,0) 170 -"BLD",7891,4,170,222) +"BLD",7883,4,170,222) y^y^f^^n^^y^o^n -"BLD",7891,4,170.101,0) +"BLD",7883,4,170.101,0) 170.101 -"BLD",7891,4,170.101,222) +"BLD",7883,4,170.101,222) y^y^f^^n^^y^o^n -"BLD",7891,4,170.9,0) +"BLD",7883,4,170.9,0) 170.9 -"BLD",7891,4,170.9,222) +"BLD",7883,4,170.9,222) y^y^f^^n^^y^o^n -"BLD",7891,4,171.101,0) +"BLD",7883,4,171.101,0) 171.101 -"BLD",7891,4,171.101,222) +"BLD",7883,4,171.101,222) y^y^f^^^^n -"BLD",7891,4,171.401,0) +"BLD",7883,4,171.401,0) 171.401 -"BLD",7891,4,171.401,222) +"BLD",7883,4,171.401,222) y^y^f^^^^n -"BLD",7891,4,175,0) +"BLD",7883,4,175,0) 175 -"BLD",7891,4,175,222) +"BLD",7883,4,175,222) y^y^f^^^^n -"BLD",7891,4,176.112,0) +"BLD",7883,4,176.112,0) 176.112 -"BLD",7891,4,176.112,222) +"BLD",7883,4,176.112,222) y^y^f^^n^^y^o^n -"BLD",7891,4,177.101,0) +"BLD",7883,4,177.101,0) 177.101 -"BLD",7891,4,177.101,222) +"BLD",7883,4,177.101,222) y^y^f^^^^n -"BLD",7891,4,177.201,0) +"BLD",7883,4,177.201,0) 177.201 -"BLD",7891,4,177.201,222) +"BLD",7883,4,177.201,222) y^y^f^^n^^y^o^n -"BLD",7891,4,177.301,0) +"BLD",7883,4,177.301,0) 177.301 -"BLD",7891,4,177.301,222) +"BLD",7883,4,177.301,222) y^y^f^^^^n -"BLD",7891,4,178.101,0) +"BLD",7883,4,178.101,0) 178.101 -"BLD",7891,4,178.101,222) +"BLD",7883,4,178.101,222) y^y^f^^n^^y^o^n -"BLD",7891,4,178.301,0) +"BLD",7883,4,178.301,0) 178.301 -"BLD",7891,4,178.301,222) +"BLD",7883,4,178.301,222) y^y^f^^n^^y^o^n -"BLD",7891,4,"B",170,170) +"BLD",7883,4,"B",170,170) -"BLD",7891,4,"B",170.101,170.101) +"BLD",7883,4,"B",170.101,170.101) -"BLD",7891,4,"B",170.9,170.9) +"BLD",7883,4,"B",170.9,170.9) -"BLD",7891,4,"B",171.101,171.101) +"BLD",7883,4,"B",171.101,171.101) -"BLD",7891,4,"B",171.401,171.401) +"BLD",7883,4,"B",171.401,171.401) -"BLD",7891,4,"B",175,175) +"BLD",7883,4,"B",175,175) -"BLD",7891,4,"B",176.112,176.112) +"BLD",7883,4,"B",176.112,176.112) -"BLD",7891,4,"B",177.101,177.101) +"BLD",7883,4,"B",177.101,177.101) -"BLD",7891,4,"B",177.201,177.201) +"BLD",7883,4,"B",177.201,177.201) -"BLD",7891,4,"B",177.301,177.301) +"BLD",7883,4,"B",177.301,177.301) -"BLD",7891,4,"B",178.101,178.101) +"BLD",7883,4,"B",178.101,178.101) -"BLD",7891,4,"B",178.301,178.301) +"BLD",7883,4,"B",178.301,178.301) -"BLD",7891,6.3) -50 -"BLD",7891,"ABNS",0) +"BLD",7883,6.3) +51 +"BLD",7883,"ABNS",0) ^9.66A^^ -"BLD",7891,"ABPKG") +"BLD",7883,"ABPKG") n^n -"BLD",7891,"INI") +"BLD",7883,"INI") PRE^C0CENV -"BLD",7891,"INIT") +"BLD",7883,"INIT") POST^C0CENV -"BLD",7891,"KRN",0) +"BLD",7883,"KRN",0) ^9.67PA^779.2^20 -"BLD",7891,"KRN",.4,0) +"BLD",7883,"KRN",.4,0) .4 -"BLD",7891,"KRN",.401,0) +"BLD",7883,"KRN",.401,0) .401 -"BLD",7891,"KRN",.402,0) +"BLD",7883,"KRN",.402,0) .402 -"BLD",7891,"KRN",.403,0) +"BLD",7883,"KRN",.403,0) .403 -"BLD",7891,"KRN",.5,0) +"BLD",7883,"KRN",.5,0) .5 -"BLD",7891,"KRN",.84,0) +"BLD",7883,"KRN",.84,0) .84 -"BLD",7891,"KRN",3.6,0) +"BLD",7883,"KRN",3.6,0) 3.6 -"BLD",7891,"KRN",3.8,0) +"BLD",7883,"KRN",3.8,0) 3.8 -"BLD",7891,"KRN",9.2,0) +"BLD",7883,"KRN",9.2,0) 9.2 -"BLD",7891,"KRN",9.8,0) +"BLD",7883,"KRN",9.8,0) 9.8 -"BLD",7891,"KRN",9.8,"NM",0) +"BLD",7883,"KRN",9.8,"NM",0) ^9.68A^110^79 -"BLD",7891,"KRN",9.8,"NM",22,0) -C0CRXN^^0^B103277157 -"BLD",7891,"KRN",9.8,"NM",23,0) -C0CRNF^^0^B195772222 -"BLD",7891,"KRN",9.8,"NM",24,0) -C0CFM1^^0^B27048099 -"BLD",7891,"KRN",9.8,"NM",29,0) -C0CPARMS^^0^B10161575 -"BLD",7891,"KRN",9.8,"NM",31,0) -C0CFM2^^0^B102195978 -"BLD",7891,"KRN",9.8,"NM",34,0) -C0CXPATH^^0^B521207435 -"BLD",7891,"KRN",9.8,"NM",35,0) -C0CXPAT0^^0^B50736852 -"BLD",7891,"KRN",9.8,"NM",36,0) -C0CVITAL^^0^B319933080 -"BLD",7891,"KRN",9.8,"NM",37,0) -C0CUNIT^^0^B43465566 -"BLD",7891,"KRN",9.8,"NM",38,0) -C0CRIMA^^0^B331901748 -"BLD",7891,"KRN",9.8,"NM",39,0) -C0CPROBS^^0^B53281308 -"BLD",7891,"KRN",9.8,"NM",40,0) -C0CLABS^^0^B282604886 -"BLD",7891,"KRN",9.8,"NM",41,0) -C0CIMMU^^0^B20441765 -"BLD",7891,"KRN",9.8,"NM",42,0) -C0CCCR0^^0^B790419172 -"BLD",7891,"KRN",9.8,"NM",43,0) -C0CCCR^^0^B111682825 -"BLD",7891,"KRN",9.8,"NM",44,0) -C0CCCD1^^0^B100634737 -"BLD",7891,"KRN",9.8,"NM",45,0) -C0CCCD^^0^B114134049 -"BLD",7891,"KRN",9.8,"NM",46,0) -C0CALERT^^0^B31627309 -"BLD",7891,"KRN",9.8,"NM",47,0) -C0CACTOR^^0^B99733742 -"BLD",7891,"KRN",9.8,"NM",48,0) -C0CMED^^0^B18939705 -"BLD",7891,"KRN",9.8,"NM",49,0) -C0CMED1^^0^B113570971 -"BLD",7891,"KRN",9.8,"NM",50,0) -C0CMED2^^0^B147041837 -"BLD",7891,"KRN",9.8,"NM",51,0) -C0CMED3^^0^B172422279 -"BLD",7891,"KRN",9.8,"NM",52,0) -C0CMED6^^0^B194349409 -"BLD",7891,"KRN",9.8,"NM",53,0) -C0CDPT^^0^B45873061 -"BLD",7891,"KRN",9.8,"NM",54,0) -C0CUTIL^^0^B27079469 -"BLD",7891,"KRN",9.8,"NM",55,0) -C0CVA200^^0^B32092477 -"BLD",7891,"KRN",9.8,"NM",56,0) -C0CSYS^^0^B3933593 -"BLD",7891,"KRN",9.8,"NM",57,0) -C0CBAT^^0^B56971574 -"BLD",7891,"KRN",9.8,"NM",61,0) -C0CSUB1^^0^B16280924 -"BLD",7891,"KRN",9.8,"NM",62,0) -C0CLA7Q^^0^B21818572 -"BLD",7891,"KRN",9.8,"NM",63,0) -C0CPROC^^0^B27869918 -"BLD",7891,"KRN",9.8,"NM",64,0) -C0CMXP^^0^B77680190 -"BLD",7891,"KRN",9.8,"NM",65,0) -C0CMXML^^0^B56456416 -"BLD",7891,"KRN",9.8,"NM",66,0) -C0CVIT2^^0^B320700684 -"BLD",7891,"KRN",9.8,"NM",67,0) -C0CIM2^^0^B20157375 -"BLD",7891,"KRN",9.8,"NM",68,0) -C0CCPT^^0^B16531537 -"BLD",7891,"KRN",9.8,"NM",69,0) -C0CSOAP^^0^B79899662 -"BLD",7891,"KRN",9.8,"NM",70,0) -C0CENC^^0^B46321144 -"BLD",7891,"KRN",9.8,"NM",71,0) -C0CCMT^^0^B6740701 -"BLD",7891,"KRN",9.8,"NM",72,0) -C0CIN^^0^B30946883 -"BLD",7891,"KRN",9.8,"NM",73,0) -C0CDIC^^0^B43527636 -"BLD",7891,"KRN",9.8,"NM",74,0) -C0CDOM^^0^B86773980 -"BLD",7891,"KRN",9.8,"NM",75,0) -C0CENV^^0^B25371113 -"BLD",7891,"KRN",9.8,"NM",76,0) -C0CEVC^^0^B18388545 -"BLD",7891,"KRN",9.8,"NM",77,0) -C0CEWD^^0^B5607678 -"BLD",7891,"KRN",9.8,"NM",78,0) -C0CEWD1^^0^B6563070 -"BLD",7891,"KRN",9.8,"NM",79,0) -C0CFM3^^0^B68203631 -"BLD",7891,"KRN",9.8,"NM",80,0) -C0CLA7DD^^0^B66668579 -"BLD",7891,"KRN",9.8,"NM",81,0) -C0CMAIL^^0^B92791623 -"BLD",7891,"KRN",9.8,"NM",82,0) -C0CMAIL2^^0^B166788518 -"BLD",7891,"KRN",9.8,"NM",83,0) -C0CMAIL3^^0^B224733815 -"BLD",7891,"KRN",9.8,"NM",84,0) -C0CMCCD^^0^B73168233 -"BLD",7891,"KRN",9.8,"NM",85,0) -C0CMED4^^0^B61058927 -"BLD",7891,"KRN",9.8,"NM",86,0) -C0CMIME^^0^B99031395 -"BLD",7891,"KRN",9.8,"NM",87,0) -C0CMXMLB^^0^B12065941 -"BLD",7891,"KRN",9.8,"NM",88,0) -C0CNHIN^^0^B87973392 -"BLD",7891,"KRN",9.8,"NM",89,0) -C0CNMED2^^0^B33217786 -"BLD",7891,"KRN",9.8,"NM",90,0) -C0CNMED4^^0^B99762510 -"BLD",7891,"KRN",9.8,"NM",91,0) -C0CORSLT^^0^B9647157 -"BLD",7891,"KRN",9.8,"NM",92,0) -C0CPXRM^^0^B14904056 -"BLD",7891,"KRN",9.8,"NM",93,0) +"BLD",7883,"KRN",9.8,"NM",22,0) +C0CRXN^^0^B102255510 +"BLD",7883,"KRN",9.8,"NM",23,0) +C0CRNF^^0^B194328331 +"BLD",7883,"KRN",9.8,"NM",24,0) +C0CFM1^^0^B26826658 +"BLD",7883,"KRN",9.8,"NM",29,0) +C0CPARMS^^0^B9948429 +"BLD",7883,"KRN",9.8,"NM",31,0) +C0CFM2^^0^B99587435 +"BLD",7883,"KRN",9.8,"NM",34,0) +C0CXPATH^^0^B518646177 +"BLD",7883,"KRN",9.8,"NM",35,0) +C0CXPAT0^^0^B49945143 +"BLD",7883,"KRN",9.8,"NM",36,0) +C0CVITAL^^0^B314693716 +"BLD",7883,"KRN",9.8,"NM",37,0) +C0CUNIT^^0^B33370246 +"BLD",7883,"KRN",9.8,"NM",38,0) +C0CRIMA^^0^B328577528 +"BLD",7883,"KRN",9.8,"NM",39,0) +C0CPROBS^^0^B51600314 +"BLD",7883,"KRN",9.8,"NM",40,0) +C0CLABS^^0^B279276475 +"BLD",7883,"KRN",9.8,"NM",41,0) +C0CIMMU^^0^B19603373 +"BLD",7883,"KRN",9.8,"NM",42,0) +C0CCCR0^^0^B785598655 +"BLD",7883,"KRN",9.8,"NM",43,0) +C0CCCR^^0^B109879694 +"BLD",7883,"KRN",9.8,"NM",44,0) +C0CCCD1^^0^B96013153 +"BLD",7883,"KRN",9.8,"NM",45,0) +C0CCCD^^0^B89035344 +"BLD",7883,"KRN",9.8,"NM",46,0) +C0CALERT^^0^B31119471 +"BLD",7883,"KRN",9.8,"NM",47,0) +C0CACTOR^^0^B98169360 +"BLD",7883,"KRN",9.8,"NM",48,0) +C0CMED^^0^B18524779 +"BLD",7883,"KRN",9.8,"NM",49,0) +C0CMED1^^0^B112207077 +"BLD",7883,"KRN",9.8,"NM",50,0) +C0CMED2^^0^B145401668 +"BLD",7883,"KRN",9.8,"NM",51,0) +C0CMED3^^0^B170674827 +"BLD",7883,"KRN",9.8,"NM",52,0) +C0CMED6^^0^B192343303 +"BLD",7883,"KRN",9.8,"NM",53,0) +C0CDPT^^0^B46820265 +"BLD",7883,"KRN",9.8,"NM",54,0) +C0CUTIL^^0^B26410609 +"BLD",7883,"KRN",9.8,"NM",55,0) +C0CVA200^^0^B31814686 +"BLD",7883,"KRN",9.8,"NM",56,0) +C0CSYS^^0^B3817459 +"BLD",7883,"KRN",9.8,"NM",57,0) +C0CBAT^^0^B56229594 +"BLD",7883,"KRN",9.8,"NM",61,0) +C0CSUB1^^0^B15609029 +"BLD",7883,"KRN",9.8,"NM",62,0) +C0CLA7Q^^0^B24672517 +"BLD",7883,"KRN",9.8,"NM",63,0) +C0CPROC^^0^B26886546 +"BLD",7883,"KRN",9.8,"NM",64,0) +C0CMXP^^0^B76428333 +"BLD",7883,"KRN",9.8,"NM",65,0) +C0CMXML^^0^B55227178 +"BLD",7883,"KRN",9.8,"NM",66,0) +C0CVIT2^^0^B317310035 +"BLD",7883,"KRN",9.8,"NM",67,0) +C0CIM2^^0^B19669149 +"BLD",7883,"KRN",9.8,"NM",68,0) +C0CCPT^^0^B17485471 +"BLD",7883,"KRN",9.8,"NM",69,0) +C0CSOAP^^0^B79012960 +"BLD",7883,"KRN",9.8,"NM",70,0) +C0CENC^^0^B45258660 +"BLD",7883,"KRN",9.8,"NM",71,0) +C0CCMT^^0^B6559679 +"BLD",7883,"KRN",9.8,"NM",72,0) +C0CIN^^0^B30222275 +"BLD",7883,"KRN",9.8,"NM",73,0) +C0CDIC^^0^B42907516 +"BLD",7883,"KRN",9.8,"NM",74,0) +C0CDOM^^0^B86328529 +"BLD",7883,"KRN",9.8,"NM",75,0) +C0CENV^^0^B28427348 +"BLD",7883,"KRN",9.8,"NM",76,0) +C0CEVC^^0^B21455969 +"BLD",7883,"KRN",9.8,"NM",77,0) +C0CEWD^^0^B5530676 +"BLD",7883,"KRN",9.8,"NM",78,0) +C0CEWD1^^0^B6276162 +"BLD",7883,"KRN",9.8,"NM",79,0) +C0CFM3^^0^B66472582 +"BLD",7883,"KRN",9.8,"NM",80,0) +C0CLA7DD^^0^B72588185 +"BLD",7883,"KRN",9.8,"NM",81,0) +C0CMAIL^^0^B91585320 +"BLD",7883,"KRN",9.8,"NM",82,0) +C0CMAIL2^^0^B165067910 +"BLD",7883,"KRN",9.8,"NM",83,0) +C0CMAIL3^^0^B222669398 +"BLD",7883,"KRN",9.8,"NM",84,0) +C0CMCCD^^0^B71988241 +"BLD",7883,"KRN",9.8,"NM",85,0) +C0CMED4^^0^B60079150 +"BLD",7883,"KRN",9.8,"NM",86,0) +C0CMIME^^0^B97918768 +"BLD",7883,"KRN",9.8,"NM",87,0) +C0CMXMLB^^0^B12346525 +"BLD",7883,"KRN",9.8,"NM",88,0) +C0CNHIN^^0^B87084020 +"BLD",7883,"KRN",9.8,"NM",89,0) +C0CNMED2^^0^B32627824 +"BLD",7883,"KRN",9.8,"NM",90,0) +C0CNMED4^^0^B98251317 +"BLD",7883,"KRN",9.8,"NM",91,0) +C0CORSLT^^0^B9272901 +"BLD",7883,"KRN",9.8,"NM",92,0) +C0CPXRM^^0^B4357 +"BLD",7883,"KRN",9.8,"NM",93,0) C0CQRY1^^0^B18992765 -"BLD",7891,"KRN",9.8,"NM",94,0) -C0CQRY2^^0^B20465060 -"BLD",7891,"KRN",9.8,"NM",95,0) -C0CRNFRP^^0^B91701220 -"BLD",7891,"KRN",9.8,"NM",96,0) -C0CRPMS^^0^B16300714 -"BLD",7891,"KRN",9.8,"NM",97,0) -C0CRXNRD^^0^B31474664 -"BLD",7891,"KRN",9.8,"NM",98,0) -C0CSNOA^^0^B56032588 -"BLD",7891,"KRN",9.8,"NM",99,0) -C0CVOBX1^^0^B12947698 -"BLD",7891,"KRN",9.8,"NM",100,0) -C0CVORU^^0^B58596883 -"BLD",7891,"KRN",9.8,"NM",101,0) -C0CXEWD^^0^B15380480 -"BLD",7891,"KRN",9.8,"NM",102,0) -C0COVREL^^0^B18541513 -"BLD",7891,"KRN",9.8,"NM",103,0) -C0COVRES^^0^B24677897 -"BLD",7891,"KRN",9.8,"NM",104,0) -C0COVREU^^0^B79442187 -"BLD",7891,"KRN",9.8,"NM",105,0) -C0CRAHL7^^0^B54192731 -"BLD",7891,"KRN",9.8,"NM",106,0) -C0CRARPT^^0^B68379544 -"BLD",7891,"KRN",9.8,"NM",107,0) -C0CSQMB^^0^B545540 -"BLD",7891,"KRN",9.8,"NM",108,0) -C0CTIU^^0^B62323461 -"BLD",7891,"KRN",9.8,"NM",109,0) -C0CTIU1^^0^B10596577 -"BLD",7891,"KRN",9.8,"NM",110,0) -C0CVALID^^0^B2856461 -"BLD",7891,"KRN",9.8,"NM","B","C0CACTOR",47) +"BLD",7883,"KRN",9.8,"NM",94,0) +C0CQRY2^^0^B23443412 +"BLD",7883,"KRN",9.8,"NM",95,0) +C0CRNFRP^^0^B90905910 +"BLD",7883,"KRN",9.8,"NM",96,0) +C0CRPMS^^0^B15891746 +"BLD",7883,"KRN",9.8,"NM",97,0) +C0CRXNRD^^0^B36296842 +"BLD",7883,"KRN",9.8,"NM",98,0) +C0CSNOA^^0^B40683034 +"BLD",7883,"KRN",9.8,"NM",99,0) +C0CVOBX1^^0^B14909630 +"BLD",7883,"KRN",9.8,"NM",100,0) +C0CVORU^^0^B63096791 +"BLD",7883,"KRN",9.8,"NM",101,0) +C0CXEWD^^0^B15053974 +"BLD",7883,"KRN",9.8,"NM",102,0) +C0COVREL^^0^B19589538 +"BLD",7883,"KRN",9.8,"NM",103,0) +C0COVRES^^0^B23183700 +"BLD",7883,"KRN",9.8,"NM",104,0) +C0COVREU^^0^B78173648 +"BLD",7883,"KRN",9.8,"NM",105,0) +C0CRAHL7^^0^B46426582 +"BLD",7883,"KRN",9.8,"NM",106,0) +C0CRARPT^^0^B66576750 +"BLD",7883,"KRN",9.8,"NM",107,0) +C0CSQMB^^0^B779536 +"BLD",7883,"KRN",9.8,"NM",108,0) +C0CTIU^^0^B68529284 +"BLD",7883,"KRN",9.8,"NM",109,0) +C0CTIU1^^0^B12758077 +"BLD",7883,"KRN",9.8,"NM",110,0) +C0CVALID^^0^B3624866 +"BLD",7883,"KRN",9.8,"NM","B","C0CACTOR",47) -"BLD",7891,"KRN",9.8,"NM","B","C0CALERT",46) +"BLD",7883,"KRN",9.8,"NM","B","C0CALERT",46) -"BLD",7891,"KRN",9.8,"NM","B","C0CBAT",57) +"BLD",7883,"KRN",9.8,"NM","B","C0CBAT",57) -"BLD",7891,"KRN",9.8,"NM","B","C0CCCD",45) +"BLD",7883,"KRN",9.8,"NM","B","C0CCCD",45) -"BLD",7891,"KRN",9.8,"NM","B","C0CCCD1",44) +"BLD",7883,"KRN",9.8,"NM","B","C0CCCD1",44) -"BLD",7891,"KRN",9.8,"NM","B","C0CCCR",43) +"BLD",7883,"KRN",9.8,"NM","B","C0CCCR",43) -"BLD",7891,"KRN",9.8,"NM","B","C0CCCR0",42) +"BLD",7883,"KRN",9.8,"NM","B","C0CCCR0",42) -"BLD",7891,"KRN",9.8,"NM","B","C0CCMT",71) +"BLD",7883,"KRN",9.8,"NM","B","C0CCMT",71) -"BLD",7891,"KRN",9.8,"NM","B","C0CCPT",68) +"BLD",7883,"KRN",9.8,"NM","B","C0CCPT",68) -"BLD",7891,"KRN",9.8,"NM","B","C0CDIC",73) +"BLD",7883,"KRN",9.8,"NM","B","C0CDIC",73) -"BLD",7891,"KRN",9.8,"NM","B","C0CDOM",74) +"BLD",7883,"KRN",9.8,"NM","B","C0CDOM",74) -"BLD",7891,"KRN",9.8,"NM","B","C0CDPT",53) +"BLD",7883,"KRN",9.8,"NM","B","C0CDPT",53) -"BLD",7891,"KRN",9.8,"NM","B","C0CENC",70) +"BLD",7883,"KRN",9.8,"NM","B","C0CENC",70) -"BLD",7891,"KRN",9.8,"NM","B","C0CENV",75) +"BLD",7883,"KRN",9.8,"NM","B","C0CENV",75) -"BLD",7891,"KRN",9.8,"NM","B","C0CEVC",76) +"BLD",7883,"KRN",9.8,"NM","B","C0CEVC",76) -"BLD",7891,"KRN",9.8,"NM","B","C0CEWD",77) +"BLD",7883,"KRN",9.8,"NM","B","C0CEWD",77) -"BLD",7891,"KRN",9.8,"NM","B","C0CEWD1",78) +"BLD",7883,"KRN",9.8,"NM","B","C0CEWD1",78) -"BLD",7891,"KRN",9.8,"NM","B","C0CFM1",24) +"BLD",7883,"KRN",9.8,"NM","B","C0CFM1",24) -"BLD",7891,"KRN",9.8,"NM","B","C0CFM2",31) +"BLD",7883,"KRN",9.8,"NM","B","C0CFM2",31) -"BLD",7891,"KRN",9.8,"NM","B","C0CFM3",79) +"BLD",7883,"KRN",9.8,"NM","B","C0CFM3",79) -"BLD",7891,"KRN",9.8,"NM","B","C0CIM2",67) +"BLD",7883,"KRN",9.8,"NM","B","C0CIM2",67) -"BLD",7891,"KRN",9.8,"NM","B","C0CIMMU",41) +"BLD",7883,"KRN",9.8,"NM","B","C0CIMMU",41) -"BLD",7891,"KRN",9.8,"NM","B","C0CIN",72) +"BLD",7883,"KRN",9.8,"NM","B","C0CIN",72) -"BLD",7891,"KRN",9.8,"NM","B","C0CLA7DD",80) +"BLD",7883,"KRN",9.8,"NM","B","C0CLA7DD",80) -"BLD",7891,"KRN",9.8,"NM","B","C0CLA7Q",62) +"BLD",7883,"KRN",9.8,"NM","B","C0CLA7Q",62) -"BLD",7891,"KRN",9.8,"NM","B","C0CLABS",40) +"BLD",7883,"KRN",9.8,"NM","B","C0CLABS",40) -"BLD",7891,"KRN",9.8,"NM","B","C0CMAIL",81) +"BLD",7883,"KRN",9.8,"NM","B","C0CMAIL",81) -"BLD",7891,"KRN",9.8,"NM","B","C0CMAIL2",82) +"BLD",7883,"KRN",9.8,"NM","B","C0CMAIL2",82) -"BLD",7891,"KRN",9.8,"NM","B","C0CMAIL3",83) +"BLD",7883,"KRN",9.8,"NM","B","C0CMAIL3",83) -"BLD",7891,"KRN",9.8,"NM","B","C0CMCCD",84) +"BLD",7883,"KRN",9.8,"NM","B","C0CMCCD",84) -"BLD",7891,"KRN",9.8,"NM","B","C0CMED",48) +"BLD",7883,"KRN",9.8,"NM","B","C0CMED",48) -"BLD",7891,"KRN",9.8,"NM","B","C0CMED1",49) +"BLD",7883,"KRN",9.8,"NM","B","C0CMED1",49) -"BLD",7891,"KRN",9.8,"NM","B","C0CMED2",50) +"BLD",7883,"KRN",9.8,"NM","B","C0CMED2",50) -"BLD",7891,"KRN",9.8,"NM","B","C0CMED3",51) +"BLD",7883,"KRN",9.8,"NM","B","C0CMED3",51) -"BLD",7891,"KRN",9.8,"NM","B","C0CMED4",85) +"BLD",7883,"KRN",9.8,"NM","B","C0CMED4",85) -"BLD",7891,"KRN",9.8,"NM","B","C0CMED6",52) +"BLD",7883,"KRN",9.8,"NM","B","C0CMED6",52) -"BLD",7891,"KRN",9.8,"NM","B","C0CMIME",86) +"BLD",7883,"KRN",9.8,"NM","B","C0CMIME",86) -"BLD",7891,"KRN",9.8,"NM","B","C0CMXML",65) +"BLD",7883,"KRN",9.8,"NM","B","C0CMXML",65) -"BLD",7891,"KRN",9.8,"NM","B","C0CMXMLB",87) +"BLD",7883,"KRN",9.8,"NM","B","C0CMXMLB",87) -"BLD",7891,"KRN",9.8,"NM","B","C0CMXP",64) +"BLD",7883,"KRN",9.8,"NM","B","C0CMXP",64) -"BLD",7891,"KRN",9.8,"NM","B","C0CNHIN",88) +"BLD",7883,"KRN",9.8,"NM","B","C0CNHIN",88) -"BLD",7891,"KRN",9.8,"NM","B","C0CNMED2",89) +"BLD",7883,"KRN",9.8,"NM","B","C0CNMED2",89) -"BLD",7891,"KRN",9.8,"NM","B","C0CNMED4",90) +"BLD",7883,"KRN",9.8,"NM","B","C0CNMED4",90) -"BLD",7891,"KRN",9.8,"NM","B","C0CORSLT",91) +"BLD",7883,"KRN",9.8,"NM","B","C0CORSLT",91) -"BLD",7891,"KRN",9.8,"NM","B","C0COVREL",102) +"BLD",7883,"KRN",9.8,"NM","B","C0COVREL",102) -"BLD",7891,"KRN",9.8,"NM","B","C0COVRES",103) +"BLD",7883,"KRN",9.8,"NM","B","C0COVRES",103) -"BLD",7891,"KRN",9.8,"NM","B","C0COVREU",104) +"BLD",7883,"KRN",9.8,"NM","B","C0COVREU",104) -"BLD",7891,"KRN",9.8,"NM","B","C0CPARMS",29) +"BLD",7883,"KRN",9.8,"NM","B","C0CPARMS",29) -"BLD",7891,"KRN",9.8,"NM","B","C0CPROBS",39) +"BLD",7883,"KRN",9.8,"NM","B","C0CPROBS",39) -"BLD",7891,"KRN",9.8,"NM","B","C0CPROC",63) +"BLD",7883,"KRN",9.8,"NM","B","C0CPROC",63) -"BLD",7891,"KRN",9.8,"NM","B","C0CPXRM",92) +"BLD",7883,"KRN",9.8,"NM","B","C0CPXRM",92) -"BLD",7891,"KRN",9.8,"NM","B","C0CQRY1",93) +"BLD",7883,"KRN",9.8,"NM","B","C0CQRY1",93) -"BLD",7891,"KRN",9.8,"NM","B","C0CQRY2",94) +"BLD",7883,"KRN",9.8,"NM","B","C0CQRY2",94) -"BLD",7891,"KRN",9.8,"NM","B","C0CRAHL7",105) +"BLD",7883,"KRN",9.8,"NM","B","C0CRAHL7",105) -"BLD",7891,"KRN",9.8,"NM","B","C0CRARPT",106) +"BLD",7883,"KRN",9.8,"NM","B","C0CRARPT",106) -"BLD",7891,"KRN",9.8,"NM","B","C0CRIMA",38) +"BLD",7883,"KRN",9.8,"NM","B","C0CRIMA",38) -"BLD",7891,"KRN",9.8,"NM","B","C0CRNF",23) +"BLD",7883,"KRN",9.8,"NM","B","C0CRNF",23) -"BLD",7891,"KRN",9.8,"NM","B","C0CRNFRP",95) +"BLD",7883,"KRN",9.8,"NM","B","C0CRNFRP",95) -"BLD",7891,"KRN",9.8,"NM","B","C0CRPMS",96) +"BLD",7883,"KRN",9.8,"NM","B","C0CRPMS",96) -"BLD",7891,"KRN",9.8,"NM","B","C0CRXN",22) +"BLD",7883,"KRN",9.8,"NM","B","C0CRXN",22) -"BLD",7891,"KRN",9.8,"NM","B","C0CRXNRD",97) +"BLD",7883,"KRN",9.8,"NM","B","C0CRXNRD",97) -"BLD",7891,"KRN",9.8,"NM","B","C0CSNOA",98) +"BLD",7883,"KRN",9.8,"NM","B","C0CSNOA",98) -"BLD",7891,"KRN",9.8,"NM","B","C0CSOAP",69) +"BLD",7883,"KRN",9.8,"NM","B","C0CSOAP",69) -"BLD",7891,"KRN",9.8,"NM","B","C0CSQMB",107) +"BLD",7883,"KRN",9.8,"NM","B","C0CSQMB",107) -"BLD",7891,"KRN",9.8,"NM","B","C0CSUB1",61) +"BLD",7883,"KRN",9.8,"NM","B","C0CSUB1",61) -"BLD",7891,"KRN",9.8,"NM","B","C0CSYS",56) +"BLD",7883,"KRN",9.8,"NM","B","C0CSYS",56) -"BLD",7891,"KRN",9.8,"NM","B","C0CTIU",108) +"BLD",7883,"KRN",9.8,"NM","B","C0CTIU",108) -"BLD",7891,"KRN",9.8,"NM","B","C0CTIU1",109) +"BLD",7883,"KRN",9.8,"NM","B","C0CTIU1",109) -"BLD",7891,"KRN",9.8,"NM","B","C0CUNIT",37) +"BLD",7883,"KRN",9.8,"NM","B","C0CUNIT",37) -"BLD",7891,"KRN",9.8,"NM","B","C0CUTIL",54) +"BLD",7883,"KRN",9.8,"NM","B","C0CUTIL",54) -"BLD",7891,"KRN",9.8,"NM","B","C0CVA200",55) +"BLD",7883,"KRN",9.8,"NM","B","C0CVA200",55) -"BLD",7891,"KRN",9.8,"NM","B","C0CVALID",110) +"BLD",7883,"KRN",9.8,"NM","B","C0CVALID",110) -"BLD",7891,"KRN",9.8,"NM","B","C0CVIT2",66) +"BLD",7883,"KRN",9.8,"NM","B","C0CVIT2",66) -"BLD",7891,"KRN",9.8,"NM","B","C0CVITAL",36) +"BLD",7883,"KRN",9.8,"NM","B","C0CVITAL",36) -"BLD",7891,"KRN",9.8,"NM","B","C0CVOBX1",99) +"BLD",7883,"KRN",9.8,"NM","B","C0CVOBX1",99) -"BLD",7891,"KRN",9.8,"NM","B","C0CVORU",100) +"BLD",7883,"KRN",9.8,"NM","B","C0CVORU",100) -"BLD",7891,"KRN",9.8,"NM","B","C0CXEWD",101) +"BLD",7883,"KRN",9.8,"NM","B","C0CXEWD",101) -"BLD",7891,"KRN",9.8,"NM","B","C0CXPAT0",35) +"BLD",7883,"KRN",9.8,"NM","B","C0CXPAT0",35) -"BLD",7891,"KRN",9.8,"NM","B","C0CXPATH",34) +"BLD",7883,"KRN",9.8,"NM","B","C0CXPATH",34) -"BLD",7891,"KRN",19,0) +"BLD",7883,"KRN",19,0) 19 -"BLD",7891,"KRN",19,"NM",0) +"BLD",7883,"KRN",19,"NM",0) ^9.68A^10^10 -"BLD",7891,"KRN",19,"NM",1,0) +"BLD",7883,"KRN",19,"NM",1,0) C0C BATCH OPTIONS^^0 -"BLD",7891,"KRN",19,"NM",2,0) +"BLD",7883,"KRN",19,"NM",2,0) C0C CCR EXPORT BY PATIENT NAME^^0 -"BLD",7891,"KRN",19,"NM",3,0) +"BLD",7883,"KRN",19,"NM",3,0) C0C CCR MENU^^0 -"BLD",7891,"KRN",19,"NM",4,0) +"BLD",7883,"KRN",19,"NM",4,0) C0C DISPLAY ELEMENTS^^0 -"BLD",7891,"KRN",19,"NM",5,0) +"BLD",7883,"KRN",19,"NM",5,0) C0C DISPLAY PATIENT VARIABLES^^0 -"BLD",7891,"KRN",19,"NM",6,0) +"BLD",7883,"KRN",19,"NM",6,0) C0C KILL BATCH JOB^^0 -"BLD",7891,"KRN",19,"NM",7,0) +"BLD",7883,"KRN",19,"NM",7,0) C0C LIST RIM CATEGORIES^^0 -"BLD",7891,"KRN",19,"NM",8,0) +"BLD",7883,"KRN",19,"NM",8,0) C0C START CCR BATCH PROCESSING^^0 -"BLD",7891,"KRN",19,"NM",9,0) +"BLD",7883,"KRN",19,"NM",9,0) C0C STATUS OF CCR BATCH^^0 -"BLD",7891,"KRN",19,"NM",10,0) +"BLD",7883,"KRN",19,"NM",10,0) C0C CCR RPC^^0 -"BLD",7891,"KRN",19,"NM","B","C0C BATCH OPTIONS",1) +"BLD",7883,"KRN",19,"NM","B","C0C BATCH OPTIONS",1) -"BLD",7891,"KRN",19,"NM","B","C0C CCR EXPORT BY PATIENT NAME",2) +"BLD",7883,"KRN",19,"NM","B","C0C CCR EXPORT BY PATIENT NAME",2) -"BLD",7891,"KRN",19,"NM","B","C0C CCR MENU",3) +"BLD",7883,"KRN",19,"NM","B","C0C CCR MENU",3) -"BLD",7891,"KRN",19,"NM","B","C0C CCR RPC",10) +"BLD",7883,"KRN",19,"NM","B","C0C CCR RPC",10) -"BLD",7891,"KRN",19,"NM","B","C0C DISPLAY ELEMENTS",4) +"BLD",7883,"KRN",19,"NM","B","C0C DISPLAY ELEMENTS",4) -"BLD",7891,"KRN",19,"NM","B","C0C DISPLAY PATIENT VARIABLES",5) +"BLD",7883,"KRN",19,"NM","B","C0C DISPLAY PATIENT VARIABLES",5) -"BLD",7891,"KRN",19,"NM","B","C0C KILL BATCH JOB",6) +"BLD",7883,"KRN",19,"NM","B","C0C KILL BATCH JOB",6) -"BLD",7891,"KRN",19,"NM","B","C0C LIST RIM CATEGORIES",7) +"BLD",7883,"KRN",19,"NM","B","C0C LIST RIM CATEGORIES",7) -"BLD",7891,"KRN",19,"NM","B","C0C START CCR BATCH PROCESSING",8) +"BLD",7883,"KRN",19,"NM","B","C0C START CCR BATCH PROCESSING",8) -"BLD",7891,"KRN",19,"NM","B","C0C STATUS OF CCR BATCH",9) +"BLD",7883,"KRN",19,"NM","B","C0C STATUS OF CCR BATCH",9) -"BLD",7891,"KRN",19.1,0) +"BLD",7883,"KRN",19.1,0) 19.1 -"BLD",7891,"KRN",101,0) +"BLD",7883,"KRN",101,0) 101 -"BLD",7891,"KRN",409.61,0) +"BLD",7883,"KRN",409.61,0) 409.61 -"BLD",7891,"KRN",771,0) +"BLD",7883,"KRN",771,0) 771 -"BLD",7891,"KRN",779.2,0) +"BLD",7883,"KRN",779.2,0) 779.2 -"BLD",7891,"KRN",870,0) +"BLD",7883,"KRN",870,0) 870 -"BLD",7891,"KRN",8989.51,0) +"BLD",7883,"KRN",8989.51,0) 8989.51 -"BLD",7891,"KRN",8989.52,0) +"BLD",7883,"KRN",8989.52,0) 8989.52 -"BLD",7891,"KRN",8994,0) +"BLD",7883,"KRN",8994,0) 8994 -"BLD",7891,"KRN",8994,"NM",0) +"BLD",7883,"KRN",8994,"NM",0) ^9.68A^1^1 -"BLD",7891,"KRN",8994,"NM",1,0) +"BLD",7883,"KRN",8994,"NM",1,0) C0C CCR RPC^^0 -"BLD",7891,"KRN",8994,"NM","B","C0C CCR RPC",1) +"BLD",7883,"KRN",8994,"NM","B","C0C CCR RPC",1) -"BLD",7891,"KRN","B",.4,.4) +"BLD",7883,"KRN","B",.4,.4) -"BLD",7891,"KRN","B",.401,.401) +"BLD",7883,"KRN","B",.401,.401) -"BLD",7891,"KRN","B",.402,.402) +"BLD",7883,"KRN","B",.402,.402) -"BLD",7891,"KRN","B",.403,.403) +"BLD",7883,"KRN","B",.403,.403) -"BLD",7891,"KRN","B",.5,.5) +"BLD",7883,"KRN","B",.5,.5) -"BLD",7891,"KRN","B",.84,.84) +"BLD",7883,"KRN","B",.84,.84) -"BLD",7891,"KRN","B",3.6,3.6) +"BLD",7883,"KRN","B",3.6,3.6) -"BLD",7891,"KRN","B",3.8,3.8) +"BLD",7883,"KRN","B",3.8,3.8) -"BLD",7891,"KRN","B",9.2,9.2) +"BLD",7883,"KRN","B",9.2,9.2) -"BLD",7891,"KRN","B",9.8,9.8) +"BLD",7883,"KRN","B",9.8,9.8) -"BLD",7891,"KRN","B",19,19) +"BLD",7883,"KRN","B",19,19) -"BLD",7891,"KRN","B",19.1,19.1) +"BLD",7883,"KRN","B",19.1,19.1) -"BLD",7891,"KRN","B",101,101) +"BLD",7883,"KRN","B",101,101) -"BLD",7891,"KRN","B",409.61,409.61) +"BLD",7883,"KRN","B",409.61,409.61) -"BLD",7891,"KRN","B",771,771) +"BLD",7883,"KRN","B",771,771) -"BLD",7891,"KRN","B",779.2,779.2) +"BLD",7883,"KRN","B",779.2,779.2) -"BLD",7891,"KRN","B",870,870) +"BLD",7883,"KRN","B",870,870) -"BLD",7891,"KRN","B",8989.51,8989.51) +"BLD",7883,"KRN","B",8989.51,8989.51) -"BLD",7891,"KRN","B",8989.52,8989.52) +"BLD",7883,"KRN","B",8989.52,8989.52) -"BLD",7891,"KRN","B",8994,8994) +"BLD",7883,"KRN","B",8994,8994) -"BLD",7891,"PRE") +"BLD",7883,"PRE") C0CENV -"BLD",7891,"QUES",0) +"BLD",7883,"QUES",0) ^9.62^^ -"BLD",7891,"REQB",0) +"BLD",7883,"REQB",0) ^9.611^2^2 -"BLD",7891,"REQB",1,0) +"BLD",7883,"REQB",1,0) NHIN 1.0^2 -"BLD",7891,"REQB",2,0) +"BLD",7883,"REQB",2,0) NHIN*1.0*1^2 -"BLD",7891,"REQB","B","NHIN 1.0",1) +"BLD",7883,"REQB","B","NHIN 1.0",1) -"BLD",7891,"REQB","B","NHIN*1.0*1",2) +"BLD",7883,"REQB","B","NHIN*1.0*1",2) "DATA",170,1,0) DATETIME @@ -90347,7 +90353,7 @@ K ^C0CX(178.301,"XPATH") "IX",178.301,178.301,"XPATH",11.1,2,1.5) S X=DA(1) "KEY",178.101,178.101,"A",0) -178.101^A^P^558 +178.101^A^P^554 "KEY",178.101,178.101,"A",2,0) ^.312IA^2^2 "KEY",178.101,178.101,"A",2,1,0) @@ -90356,179 +90362,179 @@ S X=DA(1) .02^178.101^2 "KEYPTR",178.101,178.101,"A") 178.101^C -"KRN",19,10999,-1) +"KRN",19,10988,-1) 0^9 -"KRN",19,10999,0) +"KRN",19,10988,0) C0C STATUS OF CCR BATCH^STATUS OF CCR BATCH^^I^^^^^^^^ -"KRN",19,10999,30) +"KRN",19,10988,30) C0CB( -"KRN",19,10999,31) +"KRN",19,10988,31) AEMQ -"KRN",19,10999,63) +"KRN",19,10988,63) [C -"KRN",19,10999,80) +"KRN",19,10988,80) C0CB( -"KRN",19,10999,"U") +"KRN",19,10988,"U") STATUS OF CCR BATCH -"KRN",19,11000,-1) +"KRN",19,10989,-1) 0^8 -"KRN",19,11000,0) +"KRN",19,10989,0) C0C START CCR BATCH PROCESSING^BEGIN CCR BATCH PROCESSING^^A^^^^^^^^^^1 -"KRN",19,11000,20) +"KRN",19,10989,20) D START^C0CBAT -"KRN",19,11000,"U") +"KRN",19,10989,"U") BEGIN CCR BATCH PROCESSING -"KRN",19,11001,-1) +"KRN",19,10990,-1) 0^1 -"KRN",19,11001,0) +"KRN",19,10990,0) C0C BATCH OPTIONS^BATCH CCR OPTIONS^^M^^^^^^^^ -"KRN",19,11001,10,0) +"KRN",19,10990,10,0) ^19.01IP^3^3 -"KRN",19,11001,10,1,0) -11000 -"KRN",19,11001,10,1,"^") +"KRN",19,10990,10,1,0) +10989 +"KRN",19,10990,10,1,"^") C0C START CCR BATCH PROCESSING -"KRN",19,11001,10,2,0) -10999 -"KRN",19,11001,10,2,"^") +"KRN",19,10990,10,2,0) +10988 +"KRN",19,10990,10,2,"^") C0C STATUS OF CCR BATCH -"KRN",19,11001,10,3,0) -11007 -"KRN",19,11001,10,3,"^") +"KRN",19,10990,10,3,0) +10996 +"KRN",19,10990,10,3,"^") C0C KILL BATCH JOB -"KRN",19,11001,99) -62633,35113 -"KRN",19,11001,"U") +"KRN",19,10990,99) +62759,57174 +"KRN",19,10990,"U") BATCH CCR OPTIONS -"KRN",19,11002,-1) +"KRN",19,10991,-1) 0^3 -"KRN",19,11002,0) +"KRN",19,10991,0) C0C CCR MENU^CCR MENU^^M^^^^^^^^ -"KRN",19,11002,10,0) +"KRN",19,10991,10,0) ^19.01IP^5^5 -"KRN",19,11002,10,1,0) -11001 -"KRN",19,11002,10,1,"^") +"KRN",19,10991,10,1,0) +10990 +"KRN",19,10991,10,1,"^") C0C BATCH OPTIONS -"KRN",19,11002,10,2,0) -11003 -"KRN",19,11002,10,2,"^") +"KRN",19,10991,10,2,0) +10992 +"KRN",19,10991,10,2,"^") C0C CCR EXPORT BY PATIENT NAME -"KRN",19,11002,10,3,0) -11005 -"KRN",19,11002,10,3,"^") +"KRN",19,10991,10,3,0) +10994 +"KRN",19,10991,10,3,"^") C0C DISPLAY ELEMENTS -"KRN",19,11002,10,4,0) -11004 -"KRN",19,11002,10,4,"^") +"KRN",19,10991,10,4,0) +10993 +"KRN",19,10991,10,4,"^") C0C DISPLAY PATIENT VARIABLES -"KRN",19,11002,10,5,0) -11006 -"KRN",19,11002,10,5,"^") +"KRN",19,10991,10,5,0) +10995 +"KRN",19,10991,10,5,"^") C0C LIST RIM CATEGORIES -"KRN",19,11002,99) -62633,35113 -"KRN",19,11002,"U") +"KRN",19,10991,99) +62759,57174 +"KRN",19,10991,"U") CCR MENU -"KRN",19,11003,-1) +"KRN",19,10992,-1) 0^2 -"KRN",19,11003,0) +"KRN",19,10992,0) C0C CCR EXPORT BY PATIENT NAME^CCR EXPORT BY PATIENT NAME^^A^^^^^^^^^^1 -"KRN",19,11003,20) +"KRN",19,10992,20) D EXPORT^C0CCCR -"KRN",19,11003,"U") +"KRN",19,10992,"U") CCR EXPORT BY PATIENT NAME -"KRN",19,11004,-1) +"KRN",19,10993,-1) 0^5 -"KRN",19,11004,0) +"KRN",19,10993,0) C0C DISPLAY PATIENT VARIABLES^VARIABLES DISPLAY^^A^^^^^^^^^^1^1^^ -"KRN",19,11004,15) +"KRN",19,10993,15) D DPATV^C0CRIMA($P(Y,U,1)) -"KRN",19,11004,20) +"KRN",19,10993,20) S DIC=2,DIC(0)="AEMQ" D ^DIC I Y<1 Q -"KRN",19,11004,26) +"KRN",19,10993,26) -"KRN",19,11004,"U") +"KRN",19,10993,"U") VARIABLES DISPLAY -"KRN",19,11005,-1) +"KRN",19,10994,-1) 0^4 -"KRN",19,11005,0) +"KRN",19,10994,0) C0C DISPLAY ELEMENTS^ELEMENT DISPLAY^^I^^^^^^^^^^ -"KRN",19,11005,20) +"KRN",19,10994,20) -"KRN",19,11005,30) +"KRN",19,10994,30) C0CE( -"KRN",19,11005,31) +"KRN",19,10994,31) AEMQ -"KRN",19,11005,63) +"KRN",19,10994,63) [C -"KRN",19,11005,80) +"KRN",19,10994,80) C0CE( -"KRN",19,11005,"U") +"KRN",19,10994,"U") ELEMENT DISPLAY -"KRN",19,11006,-1) +"KRN",19,10995,-1) 0^7 -"KRN",19,11006,0) +"KRN",19,10995,0) C0C LIST RIM CATEGORIES^LIST RIM CATEGORIES^^A^^^^^^^^^^1 -"KRN",19,11006,20) +"KRN",19,10995,20) D CLIST^C0CRIMA -"KRN",19,11006,"U") +"KRN",19,10995,"U") LIST RIM CATEGORIES -"KRN",19,11007,-1) +"KRN",19,10996,-1) 0^6 -"KRN",19,11007,0) +"KRN",19,10996,0) C0C KILL BATCH JOB^KILL CCR BATCH PROCESSING^^A^^^^^^^^^^1 -"KRN",19,11007,20) +"KRN",19,10996,20) D STOP^C0CBAT -"KRN",19,11007,"U") +"KRN",19,10996,"U") KILL CCR BATCH PROCESSING -"KRN",19,11008,-1) +"KRN",19,10997,-1) 0^10 -"KRN",19,11008,0) +"KRN",19,10997,0) C0C CCR RPC^CCR RPC^^B^^^^^^^^^y -"KRN",19,11008,"RPC",0) +"KRN",19,10997,"RPC",0) ^19.05P^1^1 -"KRN",19,11008,"RPC",1,0) +"KRN",19,10997,"RPC",1,0) C0C CCR RPC -"KRN",19,11008,"U") +"KRN",19,10997,"U") CCR RPC -"KRN",8994,2518,-1) +"KRN",8994,2411,-1) 0^1 -"KRN",8994,2518,0) +"KRN",8994,2411,0) C0C CCR RPC^CCRRPC^C0CCCR^2^P -"KRN",8994,2518,1,0) +"KRN",8994,2411,1,0) ^8994.01^1^1^3090717^^ -"KRN",8994,2518,1,1,0) +"KRN",8994,2411,1,1,0) RPC TO RETURN A PATIENT'S CCR -"KRN",8994,2518,2,0) +"KRN",8994,2411,2,0) ^8994.02A^3^3 -"KRN",8994,2518,2,1,0) +"KRN",8994,2411,2,1,0) DFN^1^30^1^1 -"KRN",8994,2518,2,1,1,0) +"KRN",8994,2411,2,1,1,0) ^^1^1^3090707^ -"KRN",8994,2518,2,1,1,1,0) +"KRN",8994,2411,2,1,1,1,0) PATIENT RECORD NUMBER -"KRN",8994,2518,2,2,0) +"KRN",8994,2411,2,2,0) CCRPARMS^1^200^0^2 -"KRN",8994,2518,2,2,1,0) +"KRN",8994,2411,2,2,1,0) ^^1^1^3090707^ -"KRN",8994,2518,2,2,1,1,0) +"KRN",8994,2411,2,2,1,1,0) PARAMETERS TO OVERRIDE DEFAULTS FOR EXTRACTING THE CCR -"KRN",8994,2518,2,3,0) +"KRN",8994,2411,2,3,0) CCRPART^1^20^^3 -"KRN",8994,2518,2,"B","CCRPARM",2) +"KRN",8994,2411,2,"B","CCRPARM",2) -"KRN",8994,2518,2,"B","CCRPARMS",2) +"KRN",8994,2411,2,"B","CCRPARMS",2) -"KRN",8994,2518,2,"B","CCRPART",3) +"KRN",8994,2411,2,"B","CCRPART",3) -"KRN",8994,2518,2,"B","DFN",1) +"KRN",8994,2411,2,"B","DFN",1) -"KRN",8994,2518,2,"PARAMSEQ",1,1) +"KRN",8994,2411,2,"PARAMSEQ",1,1) -"KRN",8994,2518,2,"PARAMSEQ",2,2) +"KRN",8994,2411,2,"PARAMSEQ",2,2) -"KRN",8994,2518,2,"PARAMSEQ",3,3) +"KRN",8994,2411,2,"PARAMSEQ",3,3) "MBREQ") 0 @@ -90540,389 +90546,395 @@ REMOTE PROCEDURE 19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA "ORD",18,19,0) OPTION -"PKG",213,-1) +"PKG",210,-1) 1^1 -"PKG",213,0) +"PKG",210,0) CCD/CCR GENERATION UTILITIES^C0C^Utilities for the Generation of the CCD/C32/CCR -"PKG",213,20,0) +"PKG",210,20,0) ^9.402P^^ -"PKG",213,22,0) +"PKG",210,22,0) ^9.49I^1^1 -"PKG",213,22,1,0) -1.2^3120625^3120625^8 -"PKG",213,22,1,1,0) -^^185^185^3120625 -"PKG",213,22,1,1,1,0) +"PKG",210,22,1,0) +1.2^3121030^3121029^8 +"PKG",210,22,1,1,0) +^^188^188^3121030 +"PKG",210,22,1,1,1,0) +Licensed under AGPL v3. For complete license text, see +"PKG",210,22,1,1,2,0) +http://www.gnu.org/licenses/agpl-3.0.html +"PKG",210,22,1,1,3,0) + +"PKG",210,22,1,1,4,0) CCR Project release v1.2 -"PKG",213,22,1,1,2,0) +"PKG",210,22,1,1,5,0) -"PKG",213,22,1,1,3,0) +"PKG",210,22,1,1,6,0) The purpose of the CCR package is to provide support for exporting and -"PKG",213,22,1,1,4,0) +"PKG",210,22,1,1,7,0) eventually importing patient information from/to VistA in XML documents -"PKG",213,22,1,1,5,0) +"PKG",210,22,1,1,8,0) conforming to the Continuity of Care Record (CCR - ASTM) and Continuity -"PKG",213,22,1,1,6,0) +"PKG",210,22,1,1,9,0) of Care Document (CCD - HL7) standards. -"PKG",213,22,1,1,7,0) +"PKG",210,22,1,1,10,0) -"PKG",213,22,1,1,8,0) +"PKG",210,22,1,1,11,0) This version of the CCR package provides: -"PKG",213,22,1,1,9,0) +"PKG",210,22,1,1,12,0) -"PKG",213,22,1,1,10,0) +"PKG",210,22,1,1,13,0) EXPORT^C0CCCR -"PKG",213,22,1,1,11,0) +"PKG",210,22,1,1,14,0) A command line interface to export a single patient's CCR to a host -"PKG",213,22,1,1,12,0) +"PKG",210,22,1,1,15,0) directory by specifying the patient by name. -"PKG",213,22,1,1,13,0) +"PKG",210,22,1,1,16,0) -"PKG",213,22,1,1,14,0) +"PKG",210,22,1,1,17,0) EXPORT^C0CCCD -"PKG",213,22,1,1,15,0) +"PKG",210,22,1,1,18,0) A command line interface to export a single patient's CCD to a host -"PKG",213,22,1,1,16,0) +"PKG",210,22,1,1,19,0) directory by specifying the patient by name. As an alternative to -"PKG",213,22,1,1,17,0) +"PKG",210,22,1,1,20,0) generating the CCD directly, an XSLT transformation is available to -"PKG",213,22,1,1,18,0) +"PKG",210,22,1,1,21,0) translate a CCR into a level 2 CCD. This tranformation has been tested -"PKG",213,22,1,1,19,0) +"PKG",210,22,1,1,22,0) and produces a CCD with all currently supported sections of the CCR. The -"PKG",213,22,1,1,20,0) +"PKG",210,22,1,1,23,0) EXPORT^C0CCCD only extracts the PROBLEMS section into a CCD. -"PKG",213,22,1,1,21,0) +"PKG",210,22,1,1,24,0) -"PKG",213,22,1,1,22,0) +"PKG",210,22,1,1,25,0) XPAT^C0CCCR(DFN,OUTDIR,OUTFILE) -"PKG",213,22,1,1,23,0) +"PKG",210,22,1,1,26,0) A command line and program interface to export a single patient's CCR -"PKG",213,22,1,1,24,0) +"PKG",210,22,1,1,27,0) using the IEN of the patient in the ^DPT file (DFN). -"PKG",213,22,1,1,25,0) +"PKG",210,22,1,1,28,0) OUTDIR specifies an existing directory on the Host system into which the -"PKG",213,22,1,1,26,0) +"PKG",210,22,1,1,29,0) CCR XML document will be written. If OUTDIR is null (""), the output -"PKG",213,22,1,1,27,0) +"PKG",210,22,1,1,30,0) directory name will be taken from ^TMP("C0CCCR","ODIR"). -"PKG",213,22,1,1,28,0) +"PKG",210,22,1,1,31,0) OUFILE specifies the host file name of the CCR XML document that will be -"PKG",213,22,1,1,29,0) +"PKG",210,22,1,1,32,0) written for this patient. If OUTFILE is null ("") the document name will -"PKG",213,22,1,1,30,0) +"PKG",210,22,1,1,33,0) default to PAT_x_CCR_V1.xml where x is the DFN of the patient. -"PKG",213,22,1,1,31,0) +"PKG",210,22,1,1,34,0) -"PKG",213,22,1,1,32,0) +"PKG",210,22,1,1,35,0) CCRRPC(CCRGRTN,DFN,CCRPARMS,CCRPART) -"PKG",213,22,1,1,33,0) +"PKG",210,22,1,1,36,0) An RPC and program interface to return in return array CCRGRTN (passed by -"PKG",213,22,1,1,34,0) +"PKG",210,22,1,1,37,0) reference) a single patient's CCR. -"PKG",213,22,1,1,35,0) +"PKG",210,22,1,1,38,0) DFN is the patient's IEN -"PKG",213,22,1,1,36,0) +"PKG",210,22,1,1,39,0) CCRPART is what portion of the CCR should be returned. If "CCR" is -"PKG",213,22,1,1,37,0) +"PKG",210,22,1,1,40,0) specified, the entire CCR will be returned. If "PROBLEMS", "VITALS", or -"PKG",213,22,1,1,38,0) +"PKG",210,22,1,1,41,0) "MEDICATIONS" is specified, only that section of the CCR will be returned. -"PKG",213,22,1,1,39,0) +"PKG",210,22,1,1,42,0) CCRPARMS ARE PARAMETERS THAT AFFECT THE EXTRACTION -"PKG",213,22,1,1,40,0) +"PKG",210,22,1,1,43,0) IN THE FORM "PARM1:VALUE1^PARM2:VALUE2" -"PKG",213,22,1,1,41,0) +"PKG",210,22,1,1,44,0) EXAMPLE: "LABLIMIT:T-60" TO LIMIT LAB EXTRACTION TO THE LAST 60 DAYS -"PKG",213,22,1,1,42,0) +"PKG",210,22,1,1,45,0) SEE C0CPARMS FOR A COMPLETE LIST OF SUPPORTED PARAMETERS -"PKG",213,22,1,1,43,0) +"PKG",210,22,1,1,46,0) -"PKG",213,22,1,1,44,0) +"PKG",210,22,1,1,47,0) ANALYZE^C0CRIMA(BGNDFN,DFNCNT,CCRPARMS) -"PKG",213,22,1,1,45,0) +"PKG",210,22,1,1,48,0) A command line and program interface to analyze the data from multiple -"PKG",213,22,1,1,46,0) +"PKG",210,22,1,1,49,0) patients into categories that can be batch extracted. -"PKG",213,22,1,1,47,0) +"PKG",210,22,1,1,50,0) BGNDFN is the beginning DFN to be analyzed. If BGNDFN is null ("") its -"PKG",213,22,1,1,48,0) +"PKG",210,22,1,1,51,0) value will be taken from ^TMP("C0CRIM","RESUME"). If this variable does -"PKG",213,22,1,1,49,0) +"PKG",210,22,1,1,52,0) not exist, the routine will start with the first IEN in the patient file -"PKG",213,22,1,1,50,0) +"PKG",210,22,1,1,53,0) ^DPT. ^TMP("C0CRIM","RESUME") is updated to the "next" patient to be -"PKG",213,22,1,1,51,0) +"PKG",210,22,1,1,54,0) analyzed on successful completion. -"PKG",213,22,1,1,52,0) +"PKG",210,22,1,1,55,0) DFNCNT is the count of how many patient records will be analyzed in this -"PKG",213,22,1,1,53,0) +"PKG",210,22,1,1,56,0) execution. -"PKG",213,22,1,1,54,0) +"PKG",210,22,1,1,57,0) For example ANALYZE^C0CRIMA(1000,1000) would start at patient DFN 1000 -"PKG",213,22,1,1,55,0) +"PKG",210,22,1,1,58,0) and analyzes 1000 patient records. ANALYZE^C0CRIMA("",1000) would then -"PKG",213,22,1,1,56,0) +"PKG",210,22,1,1,59,0) analyze the next 1000 patients. When the end of the patient file is -"PKG",213,22,1,1,57,0) +"PKG",210,22,1,1,60,0) reached, the routine terminates with a message that RESET^C0CRIMA would -"PKG",213,22,1,1,58,0) +"PKG",210,22,1,1,61,0) need to be called to restart the analysis. -"PKG",213,22,1,1,59,0) +"PKG",210,22,1,1,62,0) -"PKG",213,22,1,1,60,0) +"PKG",210,22,1,1,63,0) The categories into which the records are analyzed consist of attribute -"PKG",213,22,1,1,61,0) +"PKG",210,22,1,1,64,0) strings. The attributes represent characteristics of the variables that -"PKG",213,22,1,1,62,0) +"PKG",210,22,1,1,65,0) can be extracted for a given patient into the CCR or the CCD. This -"PKG",213,22,1,1,63,0) +"PKG",210,22,1,1,66,0) version supports the following attributes: -"PKG",213,22,1,1,64,0) +"PKG",210,22,1,1,67,0) VITALS : the patient has variables for the VITALS section of the CCR/CCD -"PKG",213,22,1,1,65,0) +"PKG",210,22,1,1,68,0) PROBLEMS : the patient has variables for the PROBLEMS section of the -"PKG",213,22,1,1,66,0) +"PKG",210,22,1,1,69,0) CCR/CCD -"PKG",213,22,1,1,67,0) +"PKG",210,22,1,1,70,0) MEDS : the patient has variables for the MEDICATIONS section of the -"PKG",213,22,1,1,68,0) +"PKG",210,22,1,1,71,0) CCR/CCD -"PKG",213,22,1,1,69,0) +"PKG",210,22,1,1,72,0) HEADER : the patient has variables for the HEADER section of the CCR/CCD. -"PKG",213,22,1,1,70,0) +"PKG",210,22,1,1,73,0) All patients are marked with the HEADER attribute in this version. -"PKG",213,22,1,1,71,0) +"PKG",210,22,1,1,74,0) NOTEXTRACTED : the CCR or CCD has not yet been produced/extracted for -"PKG",213,22,1,1,72,0) +"PKG",210,22,1,1,75,0) this patient. All patient records are marked with the NOTEXTRACTED -"PKG",213,22,1,1,73,0) +"PKG",210,22,1,1,76,0) attribute in this version for batch control processing (not implemented -"PKG",213,22,1,1,74,0) +"PKG",210,22,1,1,77,0) in this version). -"PKG",213,22,1,1,75,0) +"PKG",210,22,1,1,78,0) -"PKG",213,22,1,1,76,0) +"PKG",210,22,1,1,79,0) ANAZYZE^C0CRIMA calls the variable extraction routines that would be used -"PKG",213,22,1,1,77,0) +"PKG",210,22,1,1,80,0) to produce a CCR or a CCD and saves the results to ^TMP("C0CRIM",DFN) for -"PKG",213,22,1,1,78,0) +"PKG",210,22,1,1,81,0) each patient. In addition, the attribute string for each patient is saved -"PKG",213,22,1,1,79,0) +"PKG",210,22,1,1,82,0) in ^TMP("C0CRIM","ATTR") -"PKG",213,22,1,1,80,0) +"PKG",210,22,1,1,83,0) -"PKG",213,22,1,1,81,0) +"PKG",210,22,1,1,84,0) Categories are created as they first occur based on each unique -"PKG",213,22,1,1,82,0) +"PKG",210,22,1,1,85,0) combination of attributes that is encountered. They are named after the -"PKG",213,22,1,1,83,0) +"PKG",210,22,1,1,86,0) attribute table that is used for the analysis. This version supports only -"PKG",213,22,1,1,84,0) +"PKG",210,22,1,1,87,0) the attribute table .RIMTBL. and the categories are named "RIMTBL_x". An -"PKG",213,22,1,1,85,0) +"PKG",210,22,1,1,88,0) example set of categories from a demo systems is: -"PKG",213,22,1,1,86,0) +"PKG",210,22,1,1,89,0) -"PKG",213,22,1,1,87,0) +"PKG",210,22,1,1,90,0) GTM>D CLIST^C0CRIMA -"PKG",213,22,1,1,88,0) +"PKG",210,22,1,1,91,0) (RIMTBL_1:105) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS^^^^^MEDS -"PKG",213,22,1,1,89,0) +"PKG",210,22,1,1,92,0) (RIMTBL_2:596) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS -"PKG",213,22,1,1,90,0) +"PKG",210,22,1,1,93,0) (RIMTBL_3:44) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS -"PKG",213,22,1,1,91,0) +"PKG",210,22,1,1,94,0) (RIMTBL_4:821) ^NOTEXTRACTED^HEADER -"PKG",213,22,1,1,92,0) +"PKG",210,22,1,1,95,0) (RIMTBL_5:18) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS^^^^^MEDS -"PKG",213,22,1,1,93,0) +"PKG",210,22,1,1,96,0) (RIMTBL_6:14) ^NOTEXTRACTED^HEADER^^^PROBLEMS -"PKG",213,22,1,1,94,0) +"PKG",210,22,1,1,97,0) (RIMTBL_7:15) ^NOTEXTRACTED^HEADER^^^^^^^^^^^^^MEDS -"PKG",213,22,1,1,95,0) +"PKG",210,22,1,1,98,0) (RIMTBL_8:5) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^^^^^^MEDS -"PKG",213,22,1,1,96,0) +"PKG",210,22,1,1,99,0) -"PKG",213,22,1,1,97,0) +"PKG",210,22,1,1,100,0) for RIMTBL_1 in this example, 105 is the record count of patients who -"PKG",213,22,1,1,98,0) +"PKG",210,22,1,1,101,0) have this combination of attributes. The list of patients for each -"PKG",213,22,1,1,99,0) +"PKG",210,22,1,1,102,0) category is also maintained for batch extraction. -"PKG",213,22,1,1,100,0) +"PKG",210,22,1,1,103,0) -"PKG",213,22,1,1,101,0) +"PKG",210,22,1,1,104,0) CLIST^C0CRIMA -"PKG",213,22,1,1,102,0) +"PKG",210,22,1,1,105,0) A command line interface to show a summary of the categories, record -"PKG",213,22,1,1,103,0) +"PKG",210,22,1,1,106,0) counts, and attributes that have been analyzed so far. It produces the -"PKG",213,22,1,1,104,0) +"PKG",210,22,1,1,107,0) listing in the example above from information stored in -"PKG",213,22,1,1,105,0) +"PKG",210,22,1,1,108,0) ^TMP("C0CRIM","CATS","RIMTBL"). It is intended for future versions that -"PKG",213,22,1,1,106,0) +"PKG",210,22,1,1,109,0) attribute tables be supported in addition to the default "RIMTBL". -"PKG",213,22,1,1,107,0) +"PKG",210,22,1,1,110,0) -"PKG",213,22,1,1,108,0) +"PKG",210,22,1,1,111,0) CPAT^C0CRIMA(CPATCAT) -"PKG",213,22,1,1,109,0) +"PKG",210,22,1,1,112,0) A command line interface which shows the DFN numbers of the patients -"PKG",213,22,1,1,110,0) +"PKG",210,22,1,1,113,0) represented by the category CPATCAT. DFNs are listed 10 per line. For -"PKG",213,22,1,1,111,0) +"PKG",210,22,1,1,114,0) example: -"PKG",213,22,1,1,112,0) +"PKG",210,22,1,1,115,0) -"PKG",213,22,1,1,113,0) +"PKG",210,22,1,1,116,0) GTM>D CPAT^C0CRIMA("RIMTBL_1") -"PKG",213,22,1,1,114,0) +"PKG",210,22,1,1,117,0) 1 3 8 25 42 69 123 140 146 149 -"PKG",213,22,1,1,115,0) +"PKG",210,22,1,1,118,0) 151 168 204 205 217 218 224 228 229 231 -"PKG",213,22,1,1,116,0) +"PKG",210,22,1,1,119,0) 236 237 240 253 260 267 271 301 347 350 -"PKG",213,22,1,1,117,0) +"PKG",210,22,1,1,120,0) 366 379 384 391 407 418 419 420 428 433 -"PKG",213,22,1,1,118,0) +"PKG",210,22,1,1,121,0) 442 520 569 600 620 692 706 715 722 723 -"PKG",213,22,1,1,119,0) +"PKG",210,22,1,1,122,0) 724 728 730 744 745 746 747 748 749 750 -"PKG",213,22,1,1,120,0) +"PKG",210,22,1,1,123,0) 751 752 753 754 755 756 757 758 759 760 -"PKG",213,22,1,1,121,0) +"PKG",210,22,1,1,124,0) 761 762 763 764 765 766 767 768 769 770 -"PKG",213,22,1,1,122,0) +"PKG",210,22,1,1,125,0) 771 772 773 774 775 776 777 778 779 780 -"PKG",213,22,1,1,123,0) +"PKG",210,22,1,1,126,0) 100000 100001 100002 100003 100004 100005 100006 100007 100008 100009 -"PKG",213,22,1,1,124,0) +"PKG",210,22,1,1,127,0) 100010 100011 100012 100013 100014 -"PKG",213,22,1,1,125,0) +"PKG",210,22,1,1,128,0) -"PKG",213,22,1,1,126,0) +"PKG",210,22,1,1,129,0) These are the 105 patient records included in category "RIMTBL_1" from -"PKG",213,22,1,1,127,0) +"PKG",210,22,1,1,130,0) the above example. -"PKG",213,22,1,1,128,0) +"PKG",210,22,1,1,131,0) -"PKG",213,22,1,1,129,0) +"PKG",210,22,1,1,132,0) DPATV^C0CRIMA(DFN,"SECTION") -"PKG",213,22,1,1,130,0) +"PKG",210,22,1,1,133,0) A command line interface to display the values of variables for a -"PKG",213,22,1,1,131,0) +"PKG",210,22,1,1,134,0) patient. "SECTION" can be any of the CCR sections. ie -"PKG",213,22,1,1,132,0) +"PKG",210,22,1,1,135,0) "ALERTS","RESULTS","MEDS". If SECTION is ommitted, all sections will be -"PKG",213,22,1,1,133,0) +"PKG",210,22,1,1,136,0) shown. An example: -"PKG",213,22,1,1,134,0) +"PKG",210,22,1,1,137,0) -"PKG",213,22,1,1,135,0) +"PKG",210,22,1,1,138,0) GTM>D DPATV^C0CRIMA(2,"PROBLEMS") -"PKG",213,22,1,1,136,0) +"PKG",210,22,1,1,139,0) 1 1^PROBLEMCODEVALUE^V18.0 -"PKG",213,22,1,1,137,0) +"PKG",210,22,1,1,140,0) 2 1^PROBLEMCODINGVERSION^ -"PKG",213,22,1,1,138,0) +"PKG",210,22,1,1,141,0) 3 1^PROBLEMCONDITION^P -"PKG",213,22,1,1,139,0) +"PKG",210,22,1,1,142,0) 4 1^PROBLEMDATEMOD^2005-07-19T00:00:00-05:00 -"PKG",213,22,1,1,140,0) +"PKG",210,22,1,1,143,0) 5 1^PROBLEMDATEOFONSET^1700--T00:00:00-05:00 -"PKG",213,22,1,1,141,0) +"PKG",210,22,1,1,144,0) 6 1^PROBLEMDESCRIPTION^Family History of Diabetes Mellitus (ICD-9-CM -"PKG",213,22,1,1,142,0) +"PKG",210,22,1,1,145,0) V18.0) -"PKG",213,22,1,1,143,0) +"PKG",210,22,1,1,146,0) 7 1^PROBLEMDTREC^1701--T00:00:00-05:00 -"PKG",213,22,1,1,144,0) +"PKG",210,22,1,1,147,0) 8 1^PROBLEMHASCMT^ -"PKG",213,22,1,1,145,0) +"PKG",210,22,1,1,148,0) 9 1^PROBLEMIEN^8 -"PKG",213,22,1,1,146,0) +"PKG",210,22,1,1,149,0) 10 1^PROBLEMINACT^1700--T00:00:00-05:00 -"PKG",213,22,1,1,147,0) +"PKG",210,22,1,1,150,0) -"PKG",213,22,1,1,148,0) +"PKG",210,22,1,1,151,0) DCCR^C0CCCR(DFN) -"PKG",213,22,1,1,149,0) +"PKG",210,22,1,1,152,0) This will display the XML of a CCR that has been generated for a patient. -"PKG",213,22,1,1,150,0) +"PKG",210,22,1,1,153,0) It is run after generating the CCR with XPAT^C0CCCR or XCPAT^C0CRIMA. -"PKG",213,22,1,1,151,0) +"PKG",210,22,1,1,154,0) -"PKG",213,22,1,1,152,0) +"PKG",210,22,1,1,155,0) XCPAT^C0CRIMA(CPATCAT) -"PKG",213,22,1,1,153,0) +"PKG",210,22,1,1,156,0) A command line interface to extract a batch of patient CCR documents that -"PKG",213,22,1,1,154,0) +"PKG",210,22,1,1,157,0) are associated with the category CPATCAT. For example, -"PKG",213,22,1,1,155,0) +"PKG",210,22,1,1,158,0) -"PKG",213,22,1,1,156,0) +"PKG",210,22,1,1,159,0) XCPAT^C0CRIMA("RIMTBL_1") to extract the CCR documents for the 105 -"PKG",213,22,1,1,157,0) +"PKG",210,22,1,1,160,0) patients in the above example. -"PKG",213,22,1,1,158,0) +"PKG",210,22,1,1,161,0) -"PKG",213,22,1,1,159,0) +"PKG",210,22,1,1,162,0) RESET^C0CRIMA -"PKG",213,22,1,1,160,0) +"PKG",210,22,1,1,163,0) A command line interface to kill all ANALYZE^C0CRIMA results stored so -"PKG",213,22,1,1,161,0) +"PKG",210,22,1,1,164,0) far so that the analysis can be done again. It kills -"PKG",213,22,1,1,162,0) +"PKG",210,22,1,1,165,0) ^TMP("C0CRIM","RESUME") and all extraction variables that have been saved -"PKG",213,22,1,1,163,0) +"PKG",210,22,1,1,166,0) in ^TMP("C0CRIM") -"PKG",213,22,1,1,164,0) +"PKG",210,22,1,1,167,0) -"PKG",213,22,1,1,165,0) +"PKG",210,22,1,1,168,0) NOTES: -"PKG",213,22,1,1,166,0) +"PKG",210,22,1,1,169,0) This version of the package is a prototype, and does not yet make use of -"PKG",213,22,1,1,167,0) +"PKG",210,22,1,1,170,0) the standard VistA features that are appropriate for it to use. -"PKG",213,22,1,1,168,0) +"PKG",210,22,1,1,171,0) -"PKG",213,22,1,1,169,0) +"PKG",210,22,1,1,172,0) ^TMP("C0CCCR","ODIR") must be set manually to the output directory on the -"PKG",213,22,1,1,170,0) +"PKG",210,22,1,1,173,0) Host System. It is intended that this be maintainable in a parameter file. -"PKG",213,22,1,1,171,0) +"PKG",210,22,1,1,174,0) -"PKG",213,22,1,1,172,0) +"PKG",210,22,1,1,175,0) CCRRPC^C0CCCR and CCDRPC^C0CCCD are intended to be RPC interfaces to the -"PKG",213,22,1,1,173,0) +"PKG",210,22,1,1,176,0) package but there is no entry for them in the RPC table and the RPC -"PKG",213,22,1,1,174,0) +"PKG",210,22,1,1,177,0) method of access has not been tested. -"PKG",213,22,1,1,175,0) +"PKG",210,22,1,1,178,0) -"PKG",213,22,1,1,176,0) +"PKG",210,22,1,1,179,0) Most of the command line interface functions in the package are intended -"PKG",213,22,1,1,177,0) +"PKG",210,22,1,1,180,0) to also be made available as RPC calls. This will provide the ability to -"PKG",213,22,1,1,178,0) +"PKG",210,22,1,1,181,0) invoke and control batch extraction and analysis via RPCs -"PKG",213,22,1,1,179,0) +"PKG",210,22,1,1,182,0) -"PKG",213,22,1,1,180,0) +"PKG",210,22,1,1,183,0) The "RIM" variables and attributes that are now being stored in -"PKG",213,22,1,1,181,0) +"PKG",210,22,1,1,184,0) ^TMP("C0CRIM") are intended to be maintained in a standard FILEMAN -"PKG",213,22,1,1,182,0) +"PKG",210,22,1,1,185,0) global, and to take advantage of FILEMAN indexing for efficient batch -"PKG",213,22,1,1,183,0) +"PKG",210,22,1,1,186,0) analysis and processing. -"PKG",213,22,1,1,184,0) +"PKG",210,22,1,1,187,0) -"PKG",213,22,1,1,185,0) +"PKG",210,22,1,1,188,0) It is intended that menu interfaces be provided in addition to command -"PKG",213,"VERSION") +"PKG",210,"VERSION") 1.2 "PRE") C0CENV @@ -90999,7461 +91011,7433 @@ D XPZ2^XPDIQ "RTN") 79 "RTN","C0CACTOR") -0^47^B99733742 +0^47^B98169360 "RTN","C0CACTOR",1,0) -C0CACTOR ; CCDCCR/GPL - CCR/CCD PROCESSING FOR ACTORS ; 7/3/08 +C0CACTOR ; CCDCCR/GPL - CCR/CCD PROCESSING FOR ACTORS ; 7/3/08 ; 10/29/12 4:04pm "RTN","C0CACTOR",2,0) - ;;1.2;C0C;;May 11, 2012;Build 50 + ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 "RTN","C0CACTOR",3,0) ;Copyright 2008,2009 George Lilly, University of Minnesota. "RTN","C0CACTOR",4,0) - ;Licensed under the terms of the GNU General Public License. + ; "RTN","C0CACTOR",5,0) - ;See attached copy of the License. + ; This program is free software: you can redistribute it and/or modify "RTN","C0CACTOR",6,0) - ; + ; it under the terms of the GNU Affero General Public License as "RTN","C0CACTOR",7,0) - ; This program is free software; you can redistribute it and/or modify + ; published by the Free Software Foundation, either version 3 of the "RTN","C0CACTOR",8,0) - ; it under the terms of the GNU General Public License as published by + ; License, or (at your option) any later version. "RTN","C0CACTOR",9,0) - ; the Free Software Foundation; either version 2 of the License, or + ; "RTN","C0CACTOR",10,0) - ; (at your option) any later version. -"RTN","C0CACTOR",11,0) - ; -"RTN","C0CACTOR",12,0) ; This program is distributed in the hope that it will be useful, -"RTN","C0CACTOR",13,0) +"RTN","C0CACTOR",11,0) ; but WITHOUT ANY WARRANTY; without even the implied warranty of -"RTN","C0CACTOR",14,0) +"RTN","C0CACTOR",12,0) ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +"RTN","C0CACTOR",13,0) + ; GNU Affero General Public License for more details. +"RTN","C0CACTOR",14,0) + ; "RTN","C0CACTOR",15,0) - ; GNU General Public License for more details. + ; You should have received a copy of the GNU Affero General Public License "RTN","C0CACTOR",16,0) - ; + ; along with this program. If not, see . "RTN","C0CACTOR",17,0) - ; You should have received a copy of the GNU General Public License along + ; "RTN","C0CACTOR",18,0) - ; with this program; if not, write to the Free Software Foundation, Inc., -"RTN","C0CACTOR",19,0) - ; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -"RTN","C0CACTOR",20,0) - ; -"RTN","C0CACTOR",21,0) ; PROCESS THE ACTORS SECTION OF THE CCR -"RTN","C0CACTOR",22,0) +"RTN","C0CACTOR",19,0) ; -"RTN","C0CACTOR",23,0) +"RTN","C0CACTOR",20,0) ; ===Revision History=== -"RTN","C0CACTOR",24,0) +"RTN","C0CACTOR",21,0) ; 0.1 Initial Writing of Skeleton--GPL -"RTN","C0CACTOR",25,0) +"RTN","C0CACTOR",22,0) ; 0.2 Patient Data Extraction--SMH -"RTN","C0CACTOR",26,0) +"RTN","C0CACTOR",23,0) ; 0.3 Information System Info Extraction--SMH -"RTN","C0CACTOR",27,0) +"RTN","C0CACTOR",24,0) ; 0.4 Patient data rouine refactored; adjustments here--SMH -"RTN","C0CACTOR",28,0) +"RTN","C0CACTOR",25,0) ; -"RTN","C0CACTOR",29,0) +"RTN","C0CACTOR",26,0) EXTRACT(IPXML,ALST,AXML) ; EXTRACT ACTOR FROM ALST INTO PROVIDED XML TEMPLATE -"RTN","C0CACTOR",30,0) +"RTN","C0CACTOR",27,0) ; IPXML is the Input Actor Template into which we substitute values -"RTN","C0CACTOR",31,0) +"RTN","C0CACTOR",28,0) ; This is straight XML. Values to be substituted are in @@VAL@@ format. -"RTN","C0CACTOR",32,0) +"RTN","C0CACTOR",29,0) ; ALST is the actor list global generated by ACTLST^C0CCCR and has format: -"RTN","C0CACTOR",33,0) +"RTN","C0CACTOR",30,0) ; ^TMP(7542,1,"ACTORS",0)=Count -"RTN","C0CACTOR",34,0) +"RTN","C0CACTOR",31,0) ; ^TMP(7542,1,"ACTORS",n)="ActorID^ActorType^ActorIEN" -"RTN","C0CACTOR",35,0) +"RTN","C0CACTOR",32,0) ; ActorType is an enum containing either "PROVIDER" "PATIENT" "SYSTEM" -"RTN","C0CACTOR",36,0) +"RTN","C0CACTOR",33,0) ; AXML is the output arrary, to contain XML. -"RTN","C0CACTOR",37,0) +"RTN","C0CACTOR",34,0) ; -"RTN","C0CACTOR",38,0) +"RTN","C0CACTOR",35,0) N I,J,AMAP,AOID,ATYP,AIEN -"RTN","C0CACTOR",39,0) +"RTN","C0CACTOR",36,0) D CP^C0CXPATH(IPXML,AXML) ; MAKE A COPY OF ACTORS XML -"RTN","C0CACTOR",40,0) +"RTN","C0CACTOR",37,0) D REPLACE^C0CXPATH(AXML,"","//Actors") ; DELETE THE INSIDES -"RTN","C0CACTOR",41,0) +"RTN","C0CACTOR",38,0) I DEBUG W "PROCESSING ACTORS ",! -"RTN","C0CACTOR",42,0) +"RTN","C0CACTOR",39,0) F I=1:1:@ALST@(0) D ; PROCESS ALL ACTORS IN THE LIST -"RTN","C0CACTOR",43,0) +"RTN","C0CACTOR",40,0) . I @ALST@(I)["@@" Q ; NOT A VALID ACTOR -"RTN","C0CACTOR",44,0) +"RTN","C0CACTOR",41,0) . S AOID=$P(@ALST@(I),"^",1) ; ACTOR OBJECT ID -"RTN","C0CACTOR",45,0) +"RTN","C0CACTOR",42,0) . S ATYP=$P(@ALST@(I),"^",2) ; ACTOR TYPE -"RTN","C0CACTOR",46,0) +"RTN","C0CACTOR",43,0) . S AIEN=$P(@ALST@(I),"^",3) ; ACTOR RECORD NUMBER -"RTN","C0CACTOR",47,0) +"RTN","C0CACTOR",44,0) . I AIEN="" D Q ; IEN CAN'T BE NULL -"RTN","C0CACTOR",48,0) +"RTN","C0CACTOR",45,0) . . W "WARING NUL ACTOR: ",ATYP,! -"RTN","C0CACTOR",49,0) +"RTN","C0CACTOR",46,0) . I ATYP="" Q ; NOT A VALID ACTOR -"RTN","C0CACTOR",50,0) +"RTN","C0CACTOR",47,0) . ; -"RTN","C0CACTOR",51,0) +"RTN","C0CACTOR",48,0) . I DEBUG W AOID_" "_ATYP_" "_AIEN,! -"RTN","C0CACTOR",52,0) +"RTN","C0CACTOR",49,0) . I ATYP="PATIENT" D ; PATIENT ACTOR TYPE -"RTN","C0CACTOR",53,0) +"RTN","C0CACTOR",50,0) . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-PATIENT","ATMP") -"RTN","C0CACTOR",54,0) +"RTN","C0CACTOR",51,0) . . D PATIENT("ATMP",AIEN,AOID,"ATMP2") -"RTN","C0CACTOR",55,0) +"RTN","C0CACTOR",52,0) . ; -"RTN","C0CACTOR",56,0) +"RTN","C0CACTOR",53,0) . I ATYP="SYSTEM" D ; SYSTEM ACTOR TYPE -"RTN","C0CACTOR",57,0) +"RTN","C0CACTOR",54,0) . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-SYSTEM","ATMP") -"RTN","C0CACTOR",58,0) +"RTN","C0CACTOR",55,0) . . D SYSTEM("ATMP",AIEN,AOID,"ATMP2") -"RTN","C0CACTOR",59,0) +"RTN","C0CACTOR",56,0) . ; -"RTN","C0CACTOR",60,0) +"RTN","C0CACTOR",57,0) . I ATYP="NOK" D ; NOK ACTOR TYPE -"RTN","C0CACTOR",61,0) +"RTN","C0CACTOR",58,0) . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-NOK","ATMP") -"RTN","C0CACTOR",62,0) +"RTN","C0CACTOR",59,0) . . D NOK("ATMP",AIEN,AOID,"ATMP2") -"RTN","C0CACTOR",63,0) +"RTN","C0CACTOR",60,0) . ; -"RTN","C0CACTOR",64,0) +"RTN","C0CACTOR",61,0) . I ATYP="PROVIDER" D ; PROVIDER ACTOR TYPE -"RTN","C0CACTOR",65,0) +"RTN","C0CACTOR",62,0) . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-PROVIDER","ATMP") -"RTN","C0CACTOR",66,0) +"RTN","C0CACTOR",63,0) . . D PROVIDER("ATMP",AIEN,AOID,"ATMP2") -"RTN","C0CACTOR",67,0) +"RTN","C0CACTOR",64,0) . ; -"RTN","C0CACTOR",68,0) +"RTN","C0CACTOR",65,0) . I ATYP="ORGANIZATION" D ; PROVIDER ACTOR TYPE -"RTN","C0CACTOR",69,0) +"RTN","C0CACTOR",66,0) . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-ORG","ATMP") -"RTN","C0CACTOR",70,0) +"RTN","C0CACTOR",67,0) . . D ORG("ATMP",AIEN,AOID,"ATMP2") -"RTN","C0CACTOR",71,0) +"RTN","C0CACTOR",68,0) . ; -"RTN","C0CACTOR",72,0) +"RTN","C0CACTOR",69,0) . W "PROCESSING:",ATYP," ",AIEN,! -"RTN","C0CACTOR",73,0) +"RTN","C0CACTOR",70,0) . ;I @ATMP2@(0)=0 Q ; NOTHING RETURNED, SKIP THIS ONE -"RTN","C0CACTOR",74,0) +"RTN","C0CACTOR",71,0) . D INSINNER^C0CXPATH(AXML,"ATMP2") ; INSERT INTO ROOT -"RTN","C0CACTOR",75,0) +"RTN","C0CACTOR",72,0) . K ATYP,AIEN,AOID,ATMP,ATMP2 ; BE SURE TO GET THE NEXT ONE -"RTN","C0CACTOR",76,0) +"RTN","C0CACTOR",73,0) ; -"RTN","C0CACTOR",77,0) +"RTN","C0CACTOR",74,0) N ACTTMP -"RTN","C0CACTOR",78,0) +"RTN","C0CACTOR",75,0) D MISSING^C0CXPATH(AXML,"ACTTMP") ; SEARCH XML FOR MISSING VARS -"RTN","C0CACTOR",79,0) +"RTN","C0CACTOR",76,0) I ACTTMP(0)>0 D ; IF THERE ARE MISSING VARS - -"RTN","C0CACTOR",80,0) +"RTN","C0CACTOR",77,0) . ; STRINGS MARKED AS @@X@@ -"RTN","C0CACTOR",81,0) +"RTN","C0CACTOR",78,0) . W "ACTORS Missing list: ",! -"RTN","C0CACTOR",82,0) +"RTN","C0CACTOR",79,0) . F I=1:1:ACTTMP(0) W ACTTMP(I),! -"RTN","C0CACTOR",83,0) +"RTN","C0CACTOR",80,0) Q -"RTN","C0CACTOR",84,0) +"RTN","C0CACTOR",81,0) ; -"RTN","C0CACTOR",85,0) +"RTN","C0CACTOR",82,0) PATIENT(INXML,AIEN,AOID,OUTXML) ; PROCESS A PATIENT ACTOR -"RTN","C0CACTOR",86,0) +"RTN","C0CACTOR",83,0) I DEBUG W "PROCESSING ACTOR PATIENT ",AIEN,! -"RTN","C0CACTOR",87,0) +"RTN","C0CACTOR",84,0) ;GPL SEPARATED EXTRACT FROM MAP FOR PROCESSING PATIENTS - TO MAKE -"RTN","C0CACTOR",88,0) +"RTN","C0CACTOR",85,0) ; CODE REUSABLE FROM ERX -"RTN","C0CACTOR",89,0) +"RTN","C0CACTOR",86,0) N AMAP -"RTN","C0CACTOR",90,0) +"RTN","C0CACTOR",87,0) S AMAP=$NA(^TMP($J,"AMAP")) -"RTN","C0CACTOR",91,0) +"RTN","C0CACTOR",88,0) K @AMAP -"RTN","C0CACTOR",92,0) +"RTN","C0CACTOR",89,0) D PEXTRACT(AMAP,AIEN,AOID) ;EXTRACT THE PATIENT ACTOR -"RTN","C0CACTOR",93,0) +"RTN","C0CACTOR",90,0) I $P($$SITE^VASITE(),U,2)="OROVILLE HOSPITAL" S C0CDE=1 -"RTN","C0CACTOR",94,0) +"RTN","C0CACTOR",91,0) I $G(C0CDE)'="" D DEIDENT(AMAP,AIEN) ; DEIDENTIFY THE CCR -"RTN","C0CACTOR",95,0) +"RTN","C0CACTOR",92,0) D MAP(INXML,AMAP,OUTXML) ;MAP TO XML -"RTN","C0CACTOR",96,0) +"RTN","C0CACTOR",93,0) K @AMAP ; CLEAN UP BEHIND US -"RTN","C0CACTOR",97,0) +"RTN","C0CACTOR",94,0) Q -"RTN","C0CACTOR",98,0) +"RTN","C0CACTOR",95,0) ; -"RTN","C0CACTOR",99,0) +"RTN","C0CACTOR",96,0) DEIDENT(GPL,ZDFN) ; QUICK WAY TO DEIDENTIFY THE CCR -"RTN","C0CACTOR",100,0) +"RTN","C0CACTOR",97,0) S @GPL@("ACTORADDRESSCITY")="ALTON" -"RTN","C0CACTOR",101,0) +"RTN","C0CACTOR",98,0) S @GPL@("ACTORADDRESSLINE1")="1234 Somewhere Lane" -"RTN","C0CACTOR",102,0) +"RTN","C0CACTOR",99,0) S @GPL@("ACTORADDRESSLINE2")="" -"RTN","C0CACTOR",103,0) +"RTN","C0CACTOR",100,0) S @GPL@("ACTORADDRESSSOURCEID")="ACTORPATIENT_"_ZDFN -"RTN","C0CACTOR",104,0) +"RTN","C0CACTOR",101,0) S @GPL@("ACTORADDRESSSTATE")="KANSAS" -"RTN","C0CACTOR",105,0) +"RTN","C0CACTOR",102,0) S @GPL@("ACTORADDRESSTYPE")="Home" -"RTN","C0CACTOR",106,0) +"RTN","C0CACTOR",103,0) S @GPL@("ACTORADDRESSZIPCODE")=67623 -"RTN","C0CACTOR",107,0) +"RTN","C0CACTOR",104,0) S @GPL@("ACTORCELLTEL")="" -"RTN","C0CACTOR",108,0) +"RTN","C0CACTOR",105,0) S @GPL@("ACTORCELLTELTEXT")="" -"RTN","C0CACTOR",109,0) +"RTN","C0CACTOR",106,0) S @GPL@("ACTORDATEOFBIRTH")="1957-12-25" -"RTN","C0CACTOR",110,0) +"RTN","C0CACTOR",107,0) S @GPL@("ACTOREMAIL")="" -"RTN","C0CACTOR",111,0) +"RTN","C0CACTOR",108,0) S @GPL@("ACTORFAMILYNAME")="ZZ PATIENT"_ZDFN -"RTN","C0CACTOR",112,0) +"RTN","C0CACTOR",109,0) ;S @GPL@("ACTORGENDER")="MALE" -"RTN","C0CACTOR",113,0) +"RTN","C0CACTOR",110,0) S @GPL@("ACTORGIVENNAME")="TEST"_ZDFN -"RTN","C0CACTOR",114,0) +"RTN","C0CACTOR",111,0) S @GPL@("ACTORIEN")=2 -"RTN","C0CACTOR",115,0) +"RTN","C0CACTOR",112,0) S @GPL@("ACTORMIDDLENAME")="TWO" -"RTN","C0CACTOR",116,0) +"RTN","C0CACTOR",113,0) S @GPL@("ACTOROBJECTID")="ACTORPATIENT_"_ZDFN -"RTN","C0CACTOR",117,0) +"RTN","C0CACTOR",114,0) S @GPL@("ACTORRESTEL")="888-555-1212" -"RTN","C0CACTOR",118,0) +"RTN","C0CACTOR",115,0) S @GPL@("ACTORRESTELTEXT")="Residential Telephone" -"RTN","C0CACTOR",119,0) +"RTN","C0CACTOR",116,0) S @GPL@("ACTORSOURCEID")="ACTORSYSTEM_1" -"RTN","C0CACTOR",120,0) +"RTN","C0CACTOR",117,0) S @GPL@("ACTORSSN")="769122557P" -"RTN","C0CACTOR",121,0) +"RTN","C0CACTOR",118,0) S @GPL@("ACTORSSNSOURCEID")="ACTORPATIENT_"_ZDFN -"RTN","C0CACTOR",122,0) +"RTN","C0CACTOR",119,0) S @GPL@("ACTORSSNTEXT")="SSN" -"RTN","C0CACTOR",123,0) +"RTN","C0CACTOR",120,0) S @GPL@("ACTORSUFFIXNAME")="" -"RTN","C0CACTOR",124,0) +"RTN","C0CACTOR",121,0) S @GPL@("ACTORWORKTEL")="888-121-1212" -"RTN","C0CACTOR",125,0) +"RTN","C0CACTOR",122,0) S @GPL@("ACTORWORKTELTEXT")="Work Telephone" -"RTN","C0CACTOR",126,0) +"RTN","C0CACTOR",123,0) Q -"RTN","C0CACTOR",127,0) +"RTN","C0CACTOR",124,0) ; -"RTN","C0CACTOR",128,0) +"RTN","C0CACTOR",125,0) PEXTRACT(AMAP,AIEN,AOID) ; EXTRACT TO RETURN ARRAY RARY PASSED BY NAME -"RTN","C0CACTOR",129,0) +"RTN","C0CACTOR",126,0) N ZX -"RTN","C0CACTOR",130,0) +"RTN","C0CACTOR",127,0) S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID -"RTN","C0CACTOR",131,0) +"RTN","C0CACTOR",128,0) S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CDPT(AIEN) -"RTN","C0CACTOR",132,0) +"RTN","C0CACTOR",129,0) S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CDPT(AIEN) -"RTN","C0CACTOR",133,0) +"RTN","C0CACTOR",130,0) S @AMAP@("ACTORFAMILYNAME")=$$FAMILY^C0CDPT(AIEN) -"RTN","C0CACTOR",134,0) +"RTN","C0CACTOR",131,0) S @AMAP@("ACTORDATEOFBIRTH")=$$DOB^C0CDPT(AIEN) -"RTN","C0CACTOR",135,0) +"RTN","C0CACTOR",132,0) S @AMAP@("ACTORGENDER")=$P($$GENDER^C0CDPT(AIEN),U,2) -"RTN","C0CACTOR",136,0) +"RTN","C0CACTOR",133,0) S @AMAP@("ACTORGENDERCODE")=$P($$GENDER^C0CDPT(AIEN),U,1) -"RTN","C0CACTOR",137,0) +"RTN","C0CACTOR",134,0) S @AMAP@("ACTORSSN")="" -"RTN","C0CACTOR",138,0) +"RTN","C0CACTOR",135,0) S @AMAP@("ACTORSSNTEXT")="" -"RTN","C0CACTOR",139,0) +"RTN","C0CACTOR",136,0) S @AMAP@("ACTORSSNSOURCEID")="" -"RTN","C0CACTOR",140,0) +"RTN","C0CACTOR",137,0) S X="MSCDPTID" ; ROUTINE TO TEST FOR MRN ON OPENVISTA -"RTN","C0CACTOR",141,0) +"RTN","C0CACTOR",138,0) X ^%ZOSF("TEST") ; TEST TO SEE IF THE ROUTINE EXISTS -"RTN","C0CACTOR",142,0) +"RTN","C0CACTOR",139,0) I $T S MRN=$$^MSCDPTID(DFN) ;TEST FOR MRN ON OPENVISTA ;GPL -"RTN","C0CACTOR",143,0) +"RTN","C0CACTOR",140,0) I $G(MRN)'="" D ; IF MRN IS PRESENT -"RTN","C0CACTOR",144,0) +"RTN","C0CACTOR",141,0) . S @AMAP@("ACTORSSN")=MRN -"RTN","C0CACTOR",145,0) +"RTN","C0CACTOR",142,0) . S @AMAP@("ACTORSSNTEXT")="MRN" -"RTN","C0CACTOR",146,0) +"RTN","C0CACTOR",143,0) . S @AMAP@("ACTORSSNSOURCEID")=AOID -"RTN","C0CACTOR",147,0) +"RTN","C0CACTOR",144,0) E D ; NO MRN, USE SSN -"RTN","C0CACTOR",148,0) +"RTN","C0CACTOR",145,0) . S ZX=$$SSN^C0CDPT(AIEN) -"RTN","C0CACTOR",149,0) +"RTN","C0CACTOR",146,0) . I ZX'="" D ; IF THERE IS A SSN IN THE RECORD -"RTN","C0CACTOR",150,0) +"RTN","C0CACTOR",147,0) . . S @AMAP@("ACTORSSN")=ZX -"RTN","C0CACTOR",151,0) +"RTN","C0CACTOR",148,0) . . S @AMAP@("ACTORSSNTEXT")="SSN" -"RTN","C0CACTOR",152,0) +"RTN","C0CACTOR",149,0) . . S @AMAP@("ACTORSSNSOURCEID")=AOID -"RTN","C0CACTOR",153,0) +"RTN","C0CACTOR",150,0) S @AMAP@("ACTORADDRESSTYPE")=$$ADDRTYPE^C0CDPT(AIEN) -"RTN","C0CACTOR",154,0) +"RTN","C0CACTOR",151,0) S @AMAP@("ACTORADDRESSLINE1")=$$ADDR1^C0CDPT(AIEN) -"RTN","C0CACTOR",155,0) +"RTN","C0CACTOR",152,0) S @AMAP@("ACTORADDRESSLINE2")=$$ADDR2^C0CDPT(AIEN) -"RTN","C0CACTOR",156,0) +"RTN","C0CACTOR",153,0) S @AMAP@("ACTORADDRESSCITY")=$$CITY^C0CDPT(AIEN) -"RTN","C0CACTOR",157,0) +"RTN","C0CACTOR",154,0) S @AMAP@("ACTORADDRESSSTATE")=$$STATE^C0CDPT(AIEN) -"RTN","C0CACTOR",158,0) +"RTN","C0CACTOR",155,0) S @AMAP@("ACTORADDRESSZIPCODE")=$$ZIP^C0CDPT(AIEN) -"RTN","C0CACTOR",159,0) +"RTN","C0CACTOR",156,0) S @AMAP@("ACTORRESTEL")="" -"RTN","C0CACTOR",160,0) +"RTN","C0CACTOR",157,0) S @AMAP@("ACTORRESTELTEXT")="" -"RTN","C0CACTOR",161,0) +"RTN","C0CACTOR",158,0) S ZX=$$RESTEL^C0CDPT(AIEN) -"RTN","C0CACTOR",162,0) +"RTN","C0CACTOR",159,0) I ZX'="" D ; IF THERE IS A RESIDENT PHONE IN THE RECORD -"RTN","C0CACTOR",163,0) +"RTN","C0CACTOR",160,0) . S @AMAP@("ACTORRESTEL")=ZX -"RTN","C0CACTOR",164,0) +"RTN","C0CACTOR",161,0) . S @AMAP@("ACTORRESTELTEXT")="Residential Telephone" -"RTN","C0CACTOR",165,0) +"RTN","C0CACTOR",162,0) S @AMAP@("ACTORWORKTEL")="" -"RTN","C0CACTOR",166,0) +"RTN","C0CACTOR",163,0) S @AMAP@("ACTORWORKTELTEXT")="" -"RTN","C0CACTOR",167,0) +"RTN","C0CACTOR",164,0) S ZX=$$WORKTEL^C0CDPT(AIEN) -"RTN","C0CACTOR",168,0) +"RTN","C0CACTOR",165,0) I ZX'="" D ; IF THERE IS A RESIDENT PHONE IN THE RECORD -"RTN","C0CACTOR",169,0) +"RTN","C0CACTOR",166,0) . S @AMAP@("ACTORWORKTEL")=ZX -"RTN","C0CACTOR",170,0) +"RTN","C0CACTOR",167,0) . S @AMAP@("ACTORWORKTELTEXT")="Work Telephone" -"RTN","C0CACTOR",171,0) +"RTN","C0CACTOR",168,0) S @AMAP@("ACTORCELLTEL")="" -"RTN","C0CACTOR",172,0) +"RTN","C0CACTOR",169,0) S @AMAP@("ACTORCELLTELTEXT")="" -"RTN","C0CACTOR",173,0) +"RTN","C0CACTOR",170,0) S ZX=$$CELLTEL^C0CDPT(AIEN) -"RTN","C0CACTOR",174,0) +"RTN","C0CACTOR",171,0) I ZX'="" D ; IF THERE IS A CELL PHONE IN THE RECORD -"RTN","C0CACTOR",175,0) +"RTN","C0CACTOR",172,0) . S @AMAP@("ACTORCELLTEL")=ZX -"RTN","C0CACTOR",176,0) +"RTN","C0CACTOR",173,0) . S @AMAP@("ACTORCELLTELTEXT")="Cell Phone" -"RTN","C0CACTOR",177,0) +"RTN","C0CACTOR",174,0) S @AMAP@("ACTOREMAIL")=$$EMAIL^C0CDPT(AIEN) -"RTN","C0CACTOR",178,0) +"RTN","C0CACTOR",175,0) S @AMAP@("ACTORADDRESSSOURCEID")=AOID -"RTN","C0CACTOR",179,0) +"RTN","C0CACTOR",176,0) S @AMAP@("ACTORIEN")=AIEN -"RTN","C0CACTOR",180,0) +"RTN","C0CACTOR",177,0) S @AMAP@("ACTORSUFFIXNAME")="" ; DOES VISTA STORE THE SUFFIX -"RTN","C0CACTOR",181,0) +"RTN","C0CACTOR",178,0) S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE -"RTN","C0CACTOR",182,0) +"RTN","C0CACTOR",179,0) Q -"RTN","C0CACTOR",183,0) +"RTN","C0CACTOR",180,0) ; -"RTN","C0CACTOR",184,0) +"RTN","C0CACTOR",181,0) MAP(INXML,AMAP,OUTXML) ;MAP ANY ACTOR TO XML -"RTN","C0CACTOR",185,0) +"RTN","C0CACTOR",182,0) D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE -"RTN","C0CACTOR",186,0) +"RTN","C0CACTOR",183,0) Q -"RTN","C0CACTOR",187,0) +"RTN","C0CACTOR",184,0) ; -"RTN","C0CACTOR",188,0) +"RTN","C0CACTOR",185,0) SYSTEM(INXML,AIEN,AOID,OUTXML) ; PROCESS A SYSTEM ACTOR +"RTN","C0CACTOR",186,0) + ; +"RTN","C0CACTOR",187,0) + ; N AMAP +"RTN","C0CACTOR",188,0) + S AMAP=$NA(^TMP($J,"AMAP")) "RTN","C0CACTOR",189,0) - ; + K @AMAP "RTN","C0CACTOR",190,0) - ; N AMAP + S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID "RTN","C0CACTOR",191,0) - S AMAP=$NA(^TMP($J,"AMAP")) -"RTN","C0CACTOR",192,0) - K @AMAP -"RTN","C0CACTOR",193,0) - S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID -"RTN","C0CACTOR",194,0) S @AMAP@("ACTORINFOSYSNAME")=$$SYSNAME^C0CSYS -"RTN","C0CACTOR",195,0) +"RTN","C0CACTOR",192,0) S @AMAP@("ACTORINFOSYSVER")=$$SYSVER^C0CSYS -"RTN","C0CACTOR",196,0) +"RTN","C0CACTOR",193,0) S @AMAP@("ACTORINFOSYSSOURCEID")=AOID +"RTN","C0CACTOR",194,0) + D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE +"RTN","C0CACTOR",195,0) + Q +"RTN","C0CACTOR",196,0) + ; "RTN","C0CACTOR",197,0) - D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE -"RTN","C0CACTOR",198,0) - Q -"RTN","C0CACTOR",199,0) - ; -"RTN","C0CACTOR",200,0) NOK(INXML,AIEN,AOID,OUTXML) ; PROCESS A NEXT OF KIN TYPE ACTOR +"RTN","C0CACTOR",198,0) + ; +"RTN","C0CACTOR",199,0) + ; N AMAP +"RTN","C0CACTOR",200,0) + S AMAP=$NA(^TMP($J,"AMAP")) "RTN","C0CACTOR",201,0) - ; + K @AMAP "RTN","C0CACTOR",202,0) - ; N AMAP + S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID "RTN","C0CACTOR",203,0) - S AMAP=$NA(^TMP($J,"AMAP")) -"RTN","C0CACTOR",204,0) - K @AMAP -"RTN","C0CACTOR",205,0) - S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID -"RTN","C0CACTOR",206,0) S @AMAP@("ACTORDISPLAYNAME")="" -"RTN","C0CACTOR",207,0) +"RTN","C0CACTOR",204,0) S @AMAP@("ACTORRELATION")="" -"RTN","C0CACTOR",208,0) +"RTN","C0CACTOR",205,0) S @AMAP@("ACTORRELATIONSOURCEID")="" +"RTN","C0CACTOR",206,0) + S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE +"RTN","C0CACTOR",207,0) + D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE +"RTN","C0CACTOR",208,0) + Q "RTN","C0CACTOR",209,0) - S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE + ; "RTN","C0CACTOR",210,0) - D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE -"RTN","C0CACTOR",211,0) - Q -"RTN","C0CACTOR",212,0) - ; -"RTN","C0CACTOR",213,0) ORG(INXML,AIEN,AOID,OUTXML) ; PROCESS AN ORGANIZATION TYPE ACTOR -"RTN","C0CACTOR",214,0) +"RTN","C0CACTOR",211,0) ; -"RTN","C0CACTOR",215,0) +"RTN","C0CACTOR",212,0) N AMAP,ZIEN,ZSITE +"RTN","C0CACTOR",213,0) + S AMAP=$NA(^TMP($J,"AMAP")) +"RTN","C0CACTOR",214,0) + K @AMAP +"RTN","C0CACTOR",215,0) + S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID "RTN","C0CACTOR",216,0) - S AMAP=$NA(^TMP($J,"AMAP")) -"RTN","C0CACTOR",217,0) - K @AMAP -"RTN","C0CACTOR",218,0) - S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID -"RTN","C0CACTOR",219,0) S ZSITE=$$SITE^VASITE ; SITE FORMAT IEN^NAME^DATE -"RTN","C0CACTOR",220,0) +"RTN","C0CACTOR",217,0) S ZIEN=$P(ZSITE,"^",1) -"RTN","C0CACTOR",221,0) +"RTN","C0CACTOR",218,0) S @AMAP@("ORGANIZATIONNAME")=$P(ZSITE,U,2) -"RTN","C0CACTOR",222,0) +"RTN","C0CACTOR",219,0) S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" -"RTN","C0CACTOR",223,0) +"RTN","C0CACTOR",220,0) S @AMAP@("ACTORADDRESSTYPE")="Office" -"RTN","C0CACTOR",224,0) +"RTN","C0CACTOR",221,0) S @AMAP@("ACTORADDRESSLINE1")=$$GET1^DIQ(4,ZIEN_",",1.01) -"RTN","C0CACTOR",225,0) +"RTN","C0CACTOR",222,0) S @AMAP@("ACTORADDRESSLINE2")=$$GET1^DIQ(4,ZIEN_",",1.02) -"RTN","C0CACTOR",226,0) +"RTN","C0CACTOR",223,0) S @AMAP@("ACTORADDRESSCITY")=$$GET1^DIQ(4,ZIEN_",",1.03) -"RTN","C0CACTOR",227,0) +"RTN","C0CACTOR",224,0) S @AMAP@("ACTORADDRESSSTATE")=$$GET1^DIQ(4,ZIEN_",",.02) -"RTN","C0CACTOR",228,0) +"RTN","C0CACTOR",225,0) S @AMAP@("ACTORPOSTALCODE")=$$GET1^DIQ(4,ZIEN_",",1.04) -"RTN","C0CACTOR",229,0) +"RTN","C0CACTOR",226,0) S @AMAP@("ACTORTELEPHONE")="" -"RTN","C0CACTOR",230,0) +"RTN","C0CACTOR",227,0) S @AMAP@("ACTORTELEPHONETYPE")="" -"RTN","C0CACTOR",231,0) +"RTN","C0CACTOR",228,0) S ZX=$$GET1^DIQ(4.03,"1,"_ZIEN_",",.03) -"RTN","C0CACTOR",232,0) +"RTN","C0CACTOR",229,0) I ZX'="" D ; THERE IS A PHONE NUMBER AVAILABLE -"RTN","C0CACTOR",233,0) +"RTN","C0CACTOR",230,0) . S @AMAP@("ACTORTELEPHONE")=ZX -"RTN","C0CACTOR",234,0) +"RTN","C0CACTOR",231,0) . S @AMAP@("ACTORTELEPHONETYPE")="Office" +"RTN","C0CACTOR",232,0) + D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE +"RTN","C0CACTOR",233,0) + K @AMAP +"RTN","C0CACTOR",234,0) + Q "RTN","C0CACTOR",235,0) - D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE + ; "RTN","C0CACTOR",236,0) - K @AMAP -"RTN","C0CACTOR",237,0) - Q -"RTN","C0CACTOR",238,0) - ; -"RTN","C0CACTOR",239,0) PROVIDER(INXML,AIEN,AOID,OUTXML) ; PROCESS A PROVIDER TYPE ACTOR -"RTN","C0CACTOR",240,0) +"RTN","C0CACTOR",237,0) ; -"RTN","C0CACTOR",241,0) +"RTN","C0CACTOR",238,0) ; N AMAP -"RTN","C0CACTOR",242,0) +"RTN","C0CACTOR",239,0) S AMAP=$NA(^TMP($J,"AMAP")) -"RTN","C0CACTOR",243,0) +"RTN","C0CACTOR",240,0) K @AMAP -"RTN","C0CACTOR",244,0) +"RTN","C0CACTOR",241,0) I '$D(^VA(200,AIEN,0)) D Q ; IF NO PROVIDER RECORD (SHOULDN'T HAPPEN) -"RTN","C0CACTOR",245,0) +"RTN","C0CACTOR",242,0) . W "WARNING - MISSING PROVIDER: ",AIEN,! -"RTN","C0CACTOR",246,0) +"RTN","C0CACTOR",243,0) . S @OUTXML@(0)=0 ; SIGNAL NO OUTPUT -"RTN","C0CACTOR",247,0) +"RTN","C0CACTOR",244,0) S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID -"RTN","C0CACTOR",248,0) +"RTN","C0CACTOR",245,0) S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CVA200(AIEN) -"RTN","C0CACTOR",249,0) +"RTN","C0CACTOR",246,0) S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CVA200(AIEN) -"RTN","C0CACTOR",250,0) +"RTN","C0CACTOR",247,0) S @AMAP@("ACTORFAMILYNAME")=$$FAMILY^C0CVA200(AIEN) -"RTN","C0CACTOR",251,0) +"RTN","C0CACTOR",248,0) S @AMAP@("ACTORTITLE")=$$TITLE^C0CVA200(AIEN) -"RTN","C0CACTOR",252,0) +"RTN","C0CACTOR",249,0) S @AMAP@("IDTYPE")=$P($$NPI^C0CVA200(AIEN),U,1) -"RTN","C0CACTOR",253,0) +"RTN","C0CACTOR",250,0) S @AMAP@("ID")=$P($$NPI^C0CVA200(AIEN),U,2) -"RTN","C0CACTOR",254,0) +"RTN","C0CACTOR",251,0) S @AMAP@("IDDESC")=$P($$NPI^C0CVA200(AIEN),U,3) -"RTN","C0CACTOR",255,0) +"RTN","C0CACTOR",252,0) S @AMAP@("ACTORSPECIALITY")=$$SPEC^C0CVA200(AIEN) -"RTN","C0CACTOR",256,0) +"RTN","C0CACTOR",253,0) S @AMAP@("ACTORADDRESSTYPE")=$$ADDTYPE^C0CVA200(AIEN) -"RTN","C0CACTOR",257,0) +"RTN","C0CACTOR",254,0) S @AMAP@("ACTORADDRESSLINE1")=$$ADDLINE1^C0CVA200(AIEN) -"RTN","C0CACTOR",258,0) +"RTN","C0CACTOR",255,0) S @AMAP@("ACTORADDRESSCITY")=$$CITY^C0CVA200(AIEN) -"RTN","C0CACTOR",259,0) +"RTN","C0CACTOR",256,0) S @AMAP@("ACTORADDRESSSTATE")=$$STATE^C0CVA200(AIEN) -"RTN","C0CACTOR",260,0) +"RTN","C0CACTOR",257,0) S @AMAP@("ACTORPOSTALCODE")=$$POSTCODE^C0CVA200(AIEN) -"RTN","C0CACTOR",261,0) +"RTN","C0CACTOR",258,0) S @AMAP@("ACTORTELEPHONE")="" -"RTN","C0CACTOR",262,0) +"RTN","C0CACTOR",259,0) S @AMAP@("ACTORTELEPHONETYPE")="" -"RTN","C0CACTOR",263,0) +"RTN","C0CACTOR",260,0) S ZX=$$TEL^C0CVA200(AIEN) -"RTN","C0CACTOR",264,0) +"RTN","C0CACTOR",261,0) I ZX'="" D ; THERE IS A PHONE NUMBER AVAILABLE -"RTN","C0CACTOR",265,0) +"RTN","C0CACTOR",262,0) . S @AMAP@("ACTORTELEPHONE")=ZX -"RTN","C0CACTOR",266,0) +"RTN","C0CACTOR",263,0) . S @AMAP@("ACTORTELEPHONETYPE")=$$TELTYPE^C0CVA200(AIEN) -"RTN","C0CACTOR",267,0) +"RTN","C0CACTOR",264,0) S @AMAP@("ACTOREMAIL")=$$EMAIL^C0CVA200(AIEN) -"RTN","C0CACTOR",268,0) +"RTN","C0CACTOR",265,0) S @AMAP@("ACTORADDRESSSOURCEID")="ACTORSYSTEM_1" -"RTN","C0CACTOR",269,0) +"RTN","C0CACTOR",266,0) S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE -"RTN","C0CACTOR",270,0) +"RTN","C0CACTOR",267,0) S @AMAP@("ACTORORGLINK")="ACTORORGANIZATION_1" -"RTN","C0CACTOR",271,0) +"RTN","C0CACTOR",268,0) D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE -"RTN","C0CACTOR",272,0) +"RTN","C0CACTOR",269,0) Q -"RTN","C0CACTOR",273,0) +"RTN","C0CACTOR",270,0) ; "RTN","C0CALERT") -0^46^B31627309 +0^46^B31119471 "RTN","C0CALERT",1,0) -C0CALERT ; CCDCCR/CKU/GPL - CCR/CCD PROCESSING FOR ALERTS ; 09/11/08 +C0CALERT ; CCDCCR/CKU/GPL - CCR/CCD PROCESSING FOR ALERTS ; 09/11/08 ; 10/29/12 4:04pm "RTN","C0CALERT",2,0) - ;;1.2;C0C;;May 11, 2012;Build 50 + ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 "RTN","C0CALERT",3,0) ;Copyright 2008,2009 George Lilly, University of Minnesota and others. "RTN","C0CALERT",4,0) - ;Licensed under the terms of the GNU General Public License. + ; "RTN","C0CALERT",5,0) - ;See attached copy of the License. + ; This program is free software: you can redistribute it and/or modify "RTN","C0CALERT",6,0) - ; + ; it under the terms of the GNU Affero General Public License as "RTN","C0CALERT",7,0) - ;This program is free software; you can redistribute it and/or modify + ; published by the Free Software Foundation, either version 3 of the "RTN","C0CALERT",8,0) - ;it under the terms of the GNU General Public License as published by + ; License, or (at your option) any later version. "RTN","C0CALERT",9,0) - ;the Free Software Foundation; either version 2 of the License, or + ; "RTN","C0CALERT",10,0) - ;(at your option) any later version. + ; This program is distributed in the hope that it will be useful, "RTN","C0CALERT",11,0) - ; + ; but WITHOUT ANY WARRANTY; without even the implied warranty of "RTN","C0CALERT",12,0) - ;This program is distributed in the hope that it will be useful, + ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "RTN","C0CALERT",13,0) - ;but WITHOUT ANY WARRANTY; without even the implied warranty of + ; GNU Affero General Public License for more details. "RTN","C0CALERT",14,0) - ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ; "RTN","C0CALERT",15,0) - ;GNU General Public License for more details. + ; You should have received a copy of the GNU Affero General Public License "RTN","C0CALERT",16,0) - ; + ; along with this program. If not, see . "RTN","C0CALERT",17,0) - ;You should have received a copy of the GNU General Public License along + ; "RTN","C0CALERT",18,0) - ;with this program; if not, write to the Free Software Foundation, Inc., + ; "RTN","C0CALERT",19,0) - ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -"RTN","C0CALERT",20,0) - ; -"RTN","C0CALERT",21,0) W "NO ENTRY FROM TOP",! +"RTN","C0CALERT",20,0) + Q +"RTN","C0CALERT",21,0) + ; "RTN","C0CALERT",22,0) - Q -"RTN","C0CALERT",23,0) - ; -"RTN","C0CALERT",24,0) EXTRACT(ALTXML,DFN,ALTOUTXML,CALLBK) ; EXTRACT ALERTS INTO XML TEMPLATE -"RTN","C0CALERT",25,0) +"RTN","C0CALERT",23,0) ; CALLBACK IF PROVIDED IS CALLED FOR EACH ALLERGY BEFORE MAPPING -"RTN","C0CALERT",26,0) +"RTN","C0CALERT",24,0) ; ALTXML AND ALTOUTXML ARE PASSED BY NAME SO GLOBALS CAN BE USED -"RTN","C0CALERT",27,0) +"RTN","C0CALERT",25,0) ; -"RTN","C0CALERT",28,0) +"RTN","C0CALERT",26,0) ; GET ADVERSE REACTIONS AND ALLERGIES -"RTN","C0CALERT",29,0) +"RTN","C0CALERT",27,0) ; N GMRA,GMRAL ; FOR DEBUGGING, DON'T NEW THESE VARIABLES -"RTN","C0CALERT",30,0) +"RTN","C0CALERT",28,0) S GMRA="0^0^111" -"RTN","C0CALERT",31,0) +"RTN","C0CALERT",29,0) D EN1^GMRADPT -"RTN","C0CALERT",32,0) - I $G(GMRAL)'=1 D Q ; NO ALLERGIES FOUND THUS *QUIT* -"RTN","C0CALERT",33,0) +"RTN","C0CALERT",30,0) + I $G(GMRAL)'=1 D Q ; NO ALLERGIES FOUND THUS *QUIT* +"RTN","C0CALERT",31,0) . S @ALTOUTXML@(0)=0 -"RTN","C0CALERT",34,0) +"RTN","C0CALERT",32,0) ; DEFINE MAPPING -"RTN","C0CALERT",35,0) +"RTN","C0CALERT",33,0) N ALTTVMAP,ALTVMAP,ALTTARYTMP,ALTARYTMP -"RTN","C0CALERT",36,0) +"RTN","C0CALERT",34,0) S ALTTVMAP=$NA(^TMP("C0CCCR",$J,"ALERTS")) -"RTN","C0CALERT",37,0) +"RTN","C0CALERT",35,0) S ALTTARYTMP=$NA(^TMP("C0CCCR",$J,"ALERTSARYTMP")) -"RTN","C0CALERT",38,0) +"RTN","C0CALERT",36,0) K @ALTTVMAP,@ALTTARYTMP -"RTN","C0CALERT",39,0) +"RTN","C0CALERT",37,0) N ALTTMP,ALTCNT S ALTG=$NA(GMRAL),ALTCNT=1 -"RTN","C0CALERT",40,0) +"RTN","C0CALERT",38,0) S ALTTMP="" ; -"RTN","C0CALERT",41,0) +"RTN","C0CALERT",39,0) F S ALTTMP=$O(@ALTG@(ALTTMP)) Q:ALTTMP="" D ; CHANGED TO $O BY GPL -"RTN","C0CALERT",42,0) +"RTN","C0CALERT",40,0) . W "ALTTMP="_ALTTMP,! -"RTN","C0CALERT",43,0) +"RTN","C0CALERT",41,0) . ; I $QS(ALTTMP,2)="S" W !,"S FOUND",! Q -"RTN","C0CALERT",44,0) +"RTN","C0CALERT",42,0) . S ALTVMAP=$NA(@ALTTVMAP@(ALTCNT)) -"RTN","C0CALERT",45,0) +"RTN","C0CALERT",43,0) . K @ALTVMAP -"RTN","C0CALERT",46,0) +"RTN","C0CALERT",44,0) . S @ALTVMAP@("ALERTOBJECTID")="ALERT"_ALTCNT -"RTN","C0CALERT",47,0) +"RTN","C0CALERT",45,0) . N A1 S A1=@ALTG@(ALTTMP) ; ALL THE PIECES -"RTN","C0CALERT",48,0) +"RTN","C0CALERT",46,0) . I $D(CALLBK) D @CALLBK ;CALLBACK FOR EPRESCRIBING -"RTN","C0CALERT",49,0) +"RTN","C0CALERT",47,0) . N A2 S A2=$$GET1^DIQ(120.8,ALTTMP,"MECHANISM","I") ; MECHANISM -"RTN","C0CALERT",50,0) +"RTN","C0CALERT",48,0) . N A3 S A3=$P(A1,U,5) ; ADVERSE FLAG -"RTN","C0CALERT",51,0) +"RTN","C0CALERT",49,0) . N ADT S ADT="Patient has an " ; X $ZINT H 5 -"RTN","C0CALERT",52,0) +"RTN","C0CALERT",50,0) . S ADT=ADT_$S(A2="P":"ADVERSE",A2="A":"ALLERGIC",1:"UNKNOWN") -"RTN","C0CALERT",53,0) +"RTN","C0CALERT",51,0) . S ADT=ADT_" reaction to "_$P(@ALTG@(ALTTMP),U,2)_"." -"RTN","C0CALERT",54,0) +"RTN","C0CALERT",52,0) . S @ALTVMAP@("ALERTDESCRIPTIONTEXT")=ADT -"RTN","C0CALERT",55,0) +"RTN","C0CALERT",53,0) . N ADTY S ADTY=$S(A2="P":"Adverse Reaction",A2="A":"Allergy",1:"") ; -"RTN","C0CALERT",56,0) +"RTN","C0CALERT",54,0) . S @ALTVMAP@("ALERTTYPE")=ADTY ; type of allergy -"RTN","C0CALERT",57,0) +"RTN","C0CALERT",55,0) . N ALTCDE ; SNOMED CODE THE THE ALERT -"RTN","C0CALERT",58,0) +"RTN","C0CALERT",56,0) . S ALTCDE=$S(A2="P":"282100009",A2="A":"416098002",1:"") ; IF NOT ADVERSE, IT IS ALLERGIC -"RTN","C0CALERT",59,0) +"RTN","C0CALERT",57,0) . S @ALTVMAP@("ALERTCODEVALUE")=ALTCDE ; -"RTN","C0CALERT",60,0) +"RTN","C0CALERT",58,0) . ; WILL USE 418634005 FOR ALLERGIC REACTION TO A SUBSTANCE -"RTN","C0CALERT",61,0) +"RTN","C0CALERT",59,0) . ; AND 282100009 FOR ADVERSE REACTION TO A SUBSTANCE -"RTN","C0CALERT",62,0) +"RTN","C0CALERT",60,0) . I ALTCDE'="" D ; IF THERE IS A CODE -"RTN","C0CALERT",63,0) +"RTN","C0CALERT",61,0) . . S @ALTVMAP@("ALERTCODESYSTEM")="SNOMED CT" -"RTN","C0CALERT",64,0) +"RTN","C0CALERT",62,0) . . S @ALTVMAP@("ALERTCODESYSTEMVERSION")="2008" -"RTN","C0CALERT",65,0) +"RTN","C0CALERT",63,0) . E D ; SET TO NULL -"RTN","C0CALERT",66,0) +"RTN","C0CALERT",64,0) . . S @ALTVMAP@("ALERTCODESYSTEM")="" -"RTN","C0CALERT",67,0) +"RTN","C0CALERT",65,0) . . S @ALTVMAP@("ALERTCODESYSTEMVERSION")="" -"RTN","C0CALERT",68,0) +"RTN","C0CALERT",66,0) . S @ALTVMAP@("ALERTSTATUSTEXT")="" ; WHERE DO WE GET THIS? -"RTN","C0CALERT",69,0) +"RTN","C0CALERT",67,0) . N ALTPROV S ALTPROV=$P(^GMR(120.8,ALTTMP,0),U,5) ; SOURCE PROVIDER IEN -"RTN","C0CALERT",70,0) +"RTN","C0CALERT",68,0) . I ALTPROV'="" D ; PROVIDER PROVIDEED -"RTN","C0CALERT",71,0) +"RTN","C0CALERT",69,0) . . S @ALTVMAP@("ALERTSOURCEID")="ACTORPROVIDER_"_ALTPROV -"RTN","C0CALERT",72,0) +"RTN","C0CALERT",70,0) . E S @ALTVMAP@("ALERTSOURCEID")="" ; SOURCE NULL - SHOULD NOT HAPPEN -"RTN","C0CALERT",73,0) +"RTN","C0CALERT",71,0) . W "RUNNING ALERTS, PROVIDER: ",@ALTVMAP@("ALERTSOURCEID"),! -"RTN","C0CALERT",74,0) +"RTN","C0CALERT",72,0) . N ACGL1,ACGFI,ACIEN,ACVUID,ACNM,ACTMP -"RTN","C0CALERT",75,0) +"RTN","C0CALERT",73,0) . S ACGL1=$P(@ALTG@(ALTTMP),U,9) ; ADDRESS OF THE REACTANT XX;GLB(YY.Z, -"RTN","C0CALERT",76,0) +"RTN","C0CALERT",74,0) . S ACGFI=$$PRSGLB($P(ACGL1,";",2)) ; FILE NUMBER -"RTN","C0CALERT",77,0) +"RTN","C0CALERT",75,0) . S ACIEN=$P(ACGL1,";",1) ; IEN OF REACTANT -"RTN","C0CALERT",78,0) +"RTN","C0CALERT",76,0) . S ACVUID=$$GET1^DIQ(ACGFI,ACIEN,"VUID") ; VUID OF THE REACTANT -"RTN","C0CALERT",79,0) +"RTN","C0CALERT",77,0) . S @ALTVMAP@("ALERTAGENTPRODUCTOBJECTID")="PRODUCT_"_ACIEN ; IE OF REACTANT -"RTN","C0CALERT",80,0) +"RTN","C0CALERT",78,0) . S @ALTVMAP@("ALERTAGENTPRODUCTSOURCEID")="" ; WHERE DO WE GET THIS? -"RTN","C0CALERT",81,0) +"RTN","C0CALERT",79,0) . S ACNM=$P(@ALTG@(ALTTMP),U,2) ; REACTANT -"RTN","C0CALERT",82,0) +"RTN","C0CALERT",80,0) . S @ALTVMAP@("ALERTAGENTPRODUCTNAMETEXT")=ACNM -"RTN","C0CALERT",83,0) +"RTN","C0CALERT",81,0) . N ZC,ZCD,ZCDS,ZCDSV ; CODE,CODE SYSTEM,CODE VERSION -"RTN","C0CALERT",84,0) +"RTN","C0CALERT",82,0) . S (ZC,ZCD,ZCDS,ZCDSV)="" ; INITIALIZE -"RTN","C0CALERT",85,0) +"RTN","C0CALERT",83,0) . I ACVUID'="" D ; IF VUID IS NOT NULL -"RTN","C0CALERT",86,0) +"RTN","C0CALERT",84,0) . . S ZC=$$CODE^C0CUTIL(ACVUID) -"RTN","C0CALERT",87,0) +"RTN","C0CALERT",85,0) . . S ZCD=$P(ZC,"^",1) ; CODE TO USE -"RTN","C0CALERT",88,0) +"RTN","C0CALERT",86,0) . . S ZCDS=$P(ZC,"^",2) ; CODING SYSTEM - RXNORM OR VUID -"RTN","C0CALERT",89,0) +"RTN","C0CALERT",87,0) . . S ZCDSV=$P(ZC,"^",3) ; CODING SYSTEM VERSION -"RTN","C0CALERT",90,0) +"RTN","C0CALERT",88,0) . E D ; IF REACTANT CODE VALUE IS NULL -"RTN","C0CALERT",91,0) +"RTN","C0CALERT",89,0) . . I $G(DUZ("AG"))="I" D ; IF WE ARE RUNNING ON RPMS -"RTN","C0CALERT",92,0) +"RTN","C0CALERT",90,0) . . . S ACTMP=$O(^C0CCODES(176.112,"C",ACNM,0)) ; -"RTN","C0CALERT",93,0) +"RTN","C0CALERT",91,0) . . . W "RPMS NAME FOUND",ACNM," ",ACTMP,! -"RTN","C0CALERT",94,0) +"RTN","C0CALERT",92,0) . . S @ALTVMAP@("ALERTAGENTPRODUCTCODESYSTEM")="" -"RTN","C0CALERT",95,0) +"RTN","C0CALERT",93,0) . . S @ALTVMAP@("ALERTAGENTPRODUCTCODEVALUE")="" -"RTN","C0CALERT",96,0) +"RTN","C0CALERT",94,0) . S @ALTVMAP@("ALERTAGENTPRODUCTCODEVALUE")=ZCD -"RTN","C0CALERT",97,0) +"RTN","C0CALERT",95,0) . S @ALTVMAP@("ALERTAGENTPRODUCTCODESYSTEM")=ZCDS -"RTN","C0CALERT",98,0) +"RTN","C0CALERT",96,0) . S @ALTVMAP@("ALERTAGENTPRODUCTNAMETEXT")=ACNM_" "_ZCDS_": "_ZCD -"RTN","C0CALERT",99,0) +"RTN","C0CALERT",97,0) . S @ALTVMAP@("ALERTDESCRIPTIONTEXT")=ADT_" "_ZCDS_": "_ZCD -"RTN","C0CALERT",100,0) +"RTN","C0CALERT",98,0) . ; REACTIONS - THIS SHOULD BE MULTIPLE, IS SINGLE NOW -"RTN","C0CALERT",101,0) +"RTN","C0CALERT",99,0) . N ARTMP,ARIEN,ARDES,ARVUID -"RTN","C0CALERT",102,0) +"RTN","C0CALERT",100,0) . S (ARTMP,ARDES,ARVUID)="" -"RTN","C0CALERT",103,0) +"RTN","C0CALERT",101,0) . I $D(@ALTG@(ALTTMP,"S",1)) D ; IF REACTION EXISTS -"RTN","C0CALERT",104,0) +"RTN","C0CALERT",102,0) . . S ARTMP=@ALTG@(ALTTMP,"S",1) -"RTN","C0CALERT",105,0) +"RTN","C0CALERT",103,0) . . W "REACTION:",ARTMP,! -"RTN","C0CALERT",106,0) +"RTN","C0CALERT",104,0) . . S ARIEN=$P(ARTMP,";",2) -"RTN","C0CALERT",107,0) +"RTN","C0CALERT",105,0) . . S ARDES=$P(ARTMP,";",1) -"RTN","C0CALERT",108,0) +"RTN","C0CALERT",106,0) . . S ARVUID=$$GET1^DIQ(120.83,ARIEN,"VUID") -"RTN","C0CALERT",109,0) +"RTN","C0CALERT",107,0) . S @ALTVMAP@("ALERTREACTIOINDESCRIPTIONTEXT")=ARDES -"RTN","C0CALERT",110,0) +"RTN","C0CALERT",108,0) . I ARVUID'="" D ; IF REACTION VUID IS NOT NULL -"RTN","C0CALERT",111,0) +"RTN","C0CALERT",109,0) . . S @ALTVMAP@("ALERTREACTIONCODEVALUE")=ARVUID -"RTN","C0CALERT",112,0) +"RTN","C0CALERT",110,0) . . S @ALTVMAP@("ALERTREACTIONCODESYSTEM")="VUID" -"RTN","C0CALERT",113,0) +"RTN","C0CALERT",111,0) . E D ; IF IT IS NULL DON'T SET CODE SYSTEM -"RTN","C0CALERT",114,0) +"RTN","C0CALERT",112,0) . . S @ALTVMAP@("ALERTREACTIONCODEVALUE")="" -"RTN","C0CALERT",115,0) +"RTN","C0CALERT",113,0) . . S @ALTVMAP@("ALERTREACTIONCODESYSTEM")="" -"RTN","C0CALERT",116,0) +"RTN","C0CALERT",114,0) . S ALTARYTMP=$NA(@ALTTARYTMP@(ALTCNT)) -"RTN","C0CALERT",117,0) +"RTN","C0CALERT",115,0) . ; NOW GO TO THE GLOBAL TO GET THE DATE/TIME AND BETTER DESCRIPTION -"RTN","C0CALERT",118,0) +"RTN","C0CALERT",116,0) . N C0CG1,C0CT ; ARRAY FOR VALUES FROM GLOBAL -"RTN","C0CALERT",119,0) +"RTN","C0CALERT",117,0) . D GETN1^C0CRNF("C0CG1",120.8,ALTTMP,"") ;GET VALUES BY NAME -"RTN","C0CALERT",120,0) +"RTN","C0CALERT",118,0) . S C0CT=$$ZVALUEI^C0CRNF("ORIGINATION DATE/TIME","C0CG1") -"RTN","C0CALERT",121,0) +"RTN","C0CALERT",119,0) . S @ALTVMAP@("ALERTDATETIME")=$$FMDTOUTC^C0CUTIL(C0CT,"DT") -"RTN","C0CALERT",122,0) +"RTN","C0CALERT",120,0) . K @ALTARYTMP -"RTN","C0CALERT",123,0) +"RTN","C0CALERT",121,0) . D MAP^C0CXPATH(ALTXML,ALTVMAP,ALTARYTMP) -"RTN","C0CALERT",124,0) +"RTN","C0CALERT",122,0) . I ALTCNT=1 D CP^C0CXPATH(ALTARYTMP,ALTOUTXML) -"RTN","C0CALERT",125,0) +"RTN","C0CALERT",123,0) . I ALTCNT>1 D INSINNER^C0CXPATH(ALTOUTXML,ALTARYTMP) -"RTN","C0CALERT",126,0) +"RTN","C0CALERT",124,0) . S ALTCNT=ALTCNT+1 -"RTN","C0CALERT",127,0) +"RTN","C0CALERT",125,0) S @ALTTVMAP@(0)=ALTCNT-1 ; RECORD THE NUMBER OF ALERTS -"RTN","C0CALERT",128,0) +"RTN","C0CALERT",126,0) Q -"RTN","C0CALERT",129,0) +"RTN","C0CALERT",127,0) PRSGLB(INGLB) ; EXTRINSIC TO PARSE GLOBALS AND RETURN THE FILE NUMBER -"RTN","C0CALERT",130,0) +"RTN","C0CALERT",128,0) ; INGLB IS OF THE FORM: PSNDF(50.6, -"RTN","C0CALERT",131,0) +"RTN","C0CALERT",129,0) ; RETURN 50.6 -"RTN","C0CALERT",132,0) +"RTN","C0CALERT",130,0) Q $P($P(INGLB,"(",2),",",1) ; "RTN","C0CBAT") -0^57^B56971574 +0^57^B56229594 "RTN","C0CBAT",1,0) C0CBAT ; CCDCCR/GPL - CCR Batch utilities; 4/21/09 "RTN","C0CBAT",2,0) - ;;1.2;C0C;;May 11, 2012;Build 50 + ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 "RTN","C0CBAT",3,0) - ;Copyright 2009 George Lilly. Licensed under the terms of the GNU + ;Copyright 2009 George Lilly. "RTN","C0CBAT",4,0) - ;General Public License See attached copy of the License. + ; "RTN","C0CBAT",5,0) - ; + ; This program is free software: you can redistribute it and/or modify "RTN","C0CBAT",6,0) - ;This program is free software; you can redistribute it and/or modify + ; it under the terms of the GNU Affero General Public License as "RTN","C0CBAT",7,0) - ;it under the terms of the GNU General Public License as published by + ; published by the Free Software Foundation, either version 3 of the "RTN","C0CBAT",8,0) - ;the Free Software Foundation; either version 2 of the License, or + ; License, or (at your option) any later version. "RTN","C0CBAT",9,0) - ;(at your option) any later version. + ; "RTN","C0CBAT",10,0) - ; + ; This program is distributed in the hope that it will be useful, "RTN","C0CBAT",11,0) - ;This program is distributed in the hope that it will be useful, + ; but WITHOUT ANY WARRANTY; without even the implied warranty of "RTN","C0CBAT",12,0) - ;but WITHOUT ANY WARRANTY; without even the implied warranty of + ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "RTN","C0CBAT",13,0) - ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ; GNU Affero General Public License for more details. "RTN","C0CBAT",14,0) - ;GNU General Public License for more details. + ; "RTN","C0CBAT",15,0) - ; + ; You should have received a copy of the GNU Affero General Public License "RTN","C0CBAT",16,0) - ;You should have received a copy of the GNU General Public License along + ; along with this program. If not, see . "RTN","C0CBAT",17,0) - ;with this program; if not, write to the Free Software Foundation, Inc., + ; "RTN","C0CBAT",18,0) - ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ; "RTN","C0CBAT",19,0) - ; -"RTN","C0CBAT",20,0) W "This is the CCR Batch Utility Library ",! +"RTN","C0CBAT",20,0) + Q "RTN","C0CBAT",21,0) - Q + ; "RTN","C0CBAT",22,0) - ; -"RTN","C0CBAT",23,0) STOP ; STOP A CURRENTLY RUNNING BATCH JOB -"RTN","C0CBAT",24,0) +"RTN","C0CBAT",23,0) I '$D(^TMP("C0CBAT","RUNNING")) Q ; -"RTN","C0CBAT",25,0) +"RTN","C0CBAT",24,0) W !,!,"HALTING CCR BATCH",! -"RTN","C0CBAT",26,0) +"RTN","C0CBAT",25,0) S ^TMP("C0CBAT","STOP")="" ; SIGNAL JOB TO TERMINATE -"RTN","C0CBAT",27,0) +"RTN","C0CBAT",26,0) H 10 ; WAIT TEN SECONDS FOR SIGNAL TO BE RECEIVED -"RTN","C0CBAT",28,0) +"RTN","C0CBAT",27,0) I '$D(^TMP("C0CBAT","STOP")) D ; SIGNAL RECEIVED -"RTN","C0CBAT",29,0) +"RTN","C0CBAT",28,0) . W "CCR BATCH JOB TERMINATING",! -"RTN","C0CBAT",30,0) +"RTN","C0CBAT",29,0) E D ; -"RTN","C0CBAT",31,0) +"RTN","C0CBAT",30,0) . K ^TMP("C0CBAT","STOP") ; STOP SIGNALING -"RTN","C0CBAT",32,0) +"RTN","C0CBAT",31,0) . W !,"BATCH PROCESSING APPARENTLY NOT RUNNING",! +"RTN","C0CBAT",32,0) + Q "RTN","C0CBAT",33,0) - Q + ; "RTN","C0CBAT",34,0) - ; -"RTN","C0CBAT",35,0) START ; STARTS A TAKSMAN CCR BATCH JOB - FOR USE IN A MENU OPTION +"RTN","C0CBAT",35,0) + ; "RTN","C0CBAT",36,0) - ; -"RTN","C0CBAT",37,0) I $D(^TMP("C0CBAT","RUNNING")) D Q ; ONLY ONE ALLOWED AT A TIME -"RTN","C0CBAT",38,0) +"RTN","C0CBAT",37,0) . W !,"CCR BATCH ALREADY RUNNING",! -"RTN","C0CBAT",39,0) +"RTN","C0CBAT",38,0) . W !,"STOP FIRST WITH STOP^C0CBAT",! -"RTN","C0CBAT",40,0) +"RTN","C0CBAT",39,0) N ZTRTN,ZTDESC,ZTDTH,ZTSAVE,ZTSK,ZTIO -"RTN","C0CBAT",41,0) +"RTN","C0CBAT",40,0) S ZTRTN="EN^C0CBAT",ZTDESC="CCR Batch" -"RTN","C0CBAT",42,0) +"RTN","C0CBAT",41,0) S ZTDTH=$H ; -"RTN","C0CBAT",43,0) +"RTN","C0CBAT",42,0) ;S ZTDTH=$S(($P(ZTDTH,",",2)+10)\86400:(1+ZTDTH)_","_((($P(ZTDTH,",",2)+10)#86400)/100000),1:(+ZTDTH)_","_($P(ZTDTH,",",2)+10)) -"RTN","C0CBAT",44,0) +"RTN","C0CBAT",43,0) S ZTSAVE("C0C")="",ZTSAVE("C0C*")="" -"RTN","C0CBAT",45,0) +"RTN","C0CBAT",44,0) S ZTIO="NULL" ; -"RTN","C0CBAT",46,0) +"RTN","C0CBAT",45,0) W !,!,"CCR BATCH JOB STARTED",! -"RTN","C0CBAT",47,0) +"RTN","C0CBAT",46,0) D ^%ZTLOAD +"RTN","C0CBAT",47,0) + Q "RTN","C0CBAT",48,0) - Q + ; "RTN","C0CBAT",49,0) - ; -"RTN","C0CBAT",50,0) EN ; BATCH ENTRY POINT -"RTN","C0CBAT",51,0) +"RTN","C0CBAT",50,0) ; PROCESSES THE SUBSCRIPTION FILE, EXTRACTING CCR VARIABLES FOR EACH -"RTN","C0CBAT",52,0) +"RTN","C0CBAT",51,0) ; PATIENT WITH AN ACTIVE SUBSCRIPTION, AND IF CHECKSUMS INDICATE A CHANGE, -"RTN","C0CBAT",53,0) +"RTN","C0CBAT",52,0) ; GENERATES A NEW CCR FOR THE PATIENT -"RTN","C0CBAT",54,0) +"RTN","C0CBAT",53,0) ; UPDATES THE E2 CCR ELEMENTS FILE +"RTN","C0CBAT",54,0) + ; "RTN","C0CBAT",55,0) - ; -"RTN","C0CBAT",56,0) S C0CQT=1 ; QUIET MODE -"RTN","C0CBAT",57,0) +"RTN","C0CBAT",56,0) I $D(^TMP("C0CBAT","RUNNING")) Q ; ONLY ONE AT A TIME -"RTN","C0CBAT",58,0) +"RTN","C0CBAT",57,0) S ^TMP("C0CBAT","RUNNING")="" ; RUNNING SIGNAL -"RTN","C0CBAT",59,0) +"RTN","C0CBAT",58,0) S C0CBDT=$$NOW^XLFDT ; DATE OF THIS RUN -"RTN","C0CBAT",60,0) +"RTN","C0CBAT",59,0) S C0CBF=177.301 ; FILE NUMBER OF C0C BATCH CONTROL FILE -"RTN","C0CBAT",61,0) +"RTN","C0CBAT",60,0) S C0CBFR=177.3013 ; FILE NUMBER OF UPDATE SUBFILE -"RTN","C0CBAT",62,0) +"RTN","C0CBAT",61,0) S C0CBB=$NA(^TMP("C0CBATCH",C0CBDT)) ; BATCH WORK AREA -"RTN","C0CBAT",63,0) +"RTN","C0CBAT",62,0) I $D(@C0CBB@(0)) D ; ERROR SHOULDN'T EXIST -"RTN","C0CBAT",64,0) +"RTN","C0CBAT",63,0) . W "WORK AREA ERROR",! +"RTN","C0CBAT",64,0) + . S $EC=",U1," "RTN","C0CBAT",65,0) - . B -"RTN","C0CBAT",66,0) S @C0CBB@(0)="V22" ; VERSION USED TO CREATE THIS WORK AREA -"RTN","C0CBAT",67,0) +"RTN","C0CBAT",66,0) S C0CBH=$NA(@C0CBB@("HOTLIST")) ; BASE FOR HOT LIST -"RTN","C0CBAT",68,0) +"RTN","C0CBAT",67,0) S C0CBS=$NA(^C0CS("B")) ; SUBSCRIPTION LIST BASE -"RTN","C0CBAT",69,0) +"RTN","C0CBAT",68,0) ;I $D(^C0CB("B",C0CDT)) D ; BATCH RECORD EXISTS -"RTN","C0CBAT",70,0) +"RTN","C0CBAT",69,0) ;. H 10 ; HANG 10 SECONDS -"RTN","C0CBAT",71,0) +"RTN","C0CBAT",70,0) ;. S C0CBDT=$$NOW^XLFDT ; NEW DATE FOR THIS RUN -"RTN","C0CBAT",72,0) +"RTN","C0CBAT",71,0) ;. I $D(^C0CB("B",C0CDT)) B ;DIDN'T WORK -"RTN","C0CBAT",73,0) +"RTN","C0CBAT",72,0) D BLDHOT(C0CBH) ; BUILD THE HOT LIST -"RTN","C0CBAT",74,0) +"RTN","C0CBAT",73,0) S C0CHN=$$COUNT(C0CBH) ;COUNT NUMBER IN HOT LIST -"RTN","C0CBAT",75,0) +"RTN","C0CBAT",74,0) S C0CSN=$$COUNT(C0CBS) ;COUNT NUMBER OF PATIENTS WITH SUBSCRIPTIONS -"RTN","C0CBAT",76,0) +"RTN","C0CBAT",75,0) S C0CFDA(C0CBF,"+1,",.01)=C0CBDT ; DATE KEY OF BATCH CONTROL -"RTN","C0CBAT",77,0) +"RTN","C0CBAT",76,0) S C0CFDA(C0CBF,"+1,",.02)=C0CBDT ; BATCH ID IS DATE IN STRING FORM -"RTN","C0CBAT",78,0) +"RTN","C0CBAT",77,0) S C0CFDA(C0CBF,"+1,",1)=C0CSN ; TOTAL SUBSCRIPTIONS -"RTN","C0CBAT",79,0) +"RTN","C0CBAT",78,0) S C0CFDA(C0CBF,"+1,",2)=C0CHN ; TOTAL HOT LIST -"RTN","C0CBAT",80,0) +"RTN","C0CBAT",79,0) D UPDIE ; CREATE THE BATCH RECORD -"RTN","C0CBAT",81,0) +"RTN","C0CBAT",80,0) S C0CIEN=$O(^C0CB("B",C0CBDT,"")) -"RTN","C0CBAT",82,0) +"RTN","C0CBAT",81,0) S (C0CN,C0CNH)=0 ; COUNTERS FOR TOTAL AND HOT LIST -"RTN","C0CBAT",83,0) +"RTN","C0CBAT",82,0) S C0CBCUR="" ; CURRENT PATIENT -"RTN","C0CBAT",84,0) +"RTN","C0CBAT",83,0) S C0CSTOP=0 ; STOP FLAG FOR HALTING BATCH SET ^TMP("C0CBAT","STOP")="" -"RTN","C0CBAT",85,0) +"RTN","C0CBAT",84,0) ;F S C0CBCUR=$O(@C0CBH@(C0CBCUR),-1) Q:C0CBCUR="" D ; HOT LIST LATEST FIRST -"RTN","C0CBAT",86,0) +"RTN","C0CBAT",85,0) F S C0CBCUR=$O(@C0CBH@(C0CBCUR)) Q:(C0CSTOP)!(C0CBCUR="") D ; HOT LIST FIRST -"RTN","C0CBAT",87,0) +"RTN","C0CBAT",86,0) . D ANALYZE^C0CRIMA(C0CBCUR,1,"LABLIMIT:T-900^VITLIMIT:T-900") -"RTN","C0CBAT",88,0) +"RTN","C0CBAT",87,0) . I $G(C0CCHK) D ; +"RTN","C0CBAT",88,0) + . . D PUTRIM^C0CFM2(C0CBCUR) "RTN","C0CBAT",89,0) - . . D PUTRIM^C0CFM2(C0CBCUR) + . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR "RTN","C0CBAT",90,0) - . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR + . . K C0CFDA "RTN","C0CBAT",91,0) - . . K C0CFDA + . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR "RTN","C0CBAT",92,0) - . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR + . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y" "RTN","C0CBAT",93,0) - . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y" + . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR)) "RTN","C0CBAT",94,0) - . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR)) + . . D UPDIE ; CREATE UPDATE SUBFILE "RTN","C0CBAT",95,0) - . . D UPDIE ; CREATE UPDATE SUBFILE + . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL "RTN","C0CBAT",96,0) - . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL -"RTN","C0CBAT",97,0) . S C0CNH=C0CNH+1 ; INCREMENT HOT LIST TOTAL +"RTN","C0CBAT",97,0) + . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS "RTN","C0CBAT",98,0) - . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS -"RTN","C0CBAT",99,0) . S C0CFDA(C0CBF,C0CIEN_",",2.1)=C0CNH ; UPDATE HOT LIST PROGRESS +"RTN","C0CBAT",99,0) + . S C0CNOW=$$NOW^XLFDT "RTN","C0CBAT",100,0) - . S C0CNOW=$$NOW^XLFDT + . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD "RTN","C0CBAT",101,0) - . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD + . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS "RTN","C0CBAT",102,0) - . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS + . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME "RTN","C0CBAT",103,0) - . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME + . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME "RTN","C0CBAT",104,0) - . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME + . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME "RTN","C0CBAT",105,0) - . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME + . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START "RTN","C0CBAT",106,0) - . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START + . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME "RTN","C0CBAT",107,0) - . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME -"RTN","C0CBAT",108,0) . S C0CFDA(C0CBF,C0CIEN_",",5)=C0CBCUR ; LAST RECORD PROCESSED -"RTN","C0CBAT",109,0) +"RTN","C0CBAT",108,0) . D UPDIE ; +"RTN","C0CBAT",109,0) + . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED "RTN","C0CBAT",110,0) - . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED + . . S C0CSTOP=1 "RTN","C0CBAT",111,0) - . . S C0CSTOP=1 + . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED "RTN","C0CBAT",112,0) - . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED -"RTN","C0CBAT",113,0) . H 1 ; GIVE OTHERS A CHANCE -"RTN","C0CBAT",114,0) +"RTN","C0CBAT",113,0) F S C0CBCUR=$O(@C0CBS@(C0CBCUR)) Q:(C0CSTOP)!(C0CBCUR="") D ; SUBS LIST -"RTN","C0CBAT",115,0) +"RTN","C0CBAT",114,0) . I $D(@C0CBH@(C0CBCUR)) Q ; SKIP IF IN HOT LIST - ALREADY DONE -"RTN","C0CBAT",116,0) +"RTN","C0CBAT",115,0) . D ANALYZE^C0CRIMA(C0CBCUR,1,"LABLIMIT:T-760^VITLIMIT:T-760") -"RTN","C0CBAT",117,0) +"RTN","C0CBAT",116,0) . I $G(C0CCHK) D ; IF CHECKSUMS HAVE CHANGED -"RTN","C0CBAT",118,0) +"RTN","C0CBAT",117,0) . . D PUTRIM^C0CFM2(C0CBCUR) -"RTN","C0CBAT",119,0) +"RTN","C0CBAT",118,0) . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR -"RTN","C0CBAT",120,0) +"RTN","C0CBAT",119,0) . . K C0CFDA -"RTN","C0CBAT",121,0) +"RTN","C0CBAT",120,0) . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR -"RTN","C0CBAT",122,0) +"RTN","C0CBAT",121,0) . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y" -"RTN","C0CBAT",123,0) +"RTN","C0CBAT",122,0) . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR)) -"RTN","C0CBAT",124,0) +"RTN","C0CBAT",123,0) . . D UPDIE ; CREATE UPDATE SUBFILE -"RTN","C0CBAT",125,0) +"RTN","C0CBAT",124,0) . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL -"RTN","C0CBAT",126,0) +"RTN","C0CBAT",125,0) . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS -"RTN","C0CBAT",127,0) +"RTN","C0CBAT",126,0) . S C0CNOW=$$NOW^XLFDT -"RTN","C0CBAT",128,0) +"RTN","C0CBAT",127,0) . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD -"RTN","C0CBAT",129,0) +"RTN","C0CBAT",128,0) . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS -"RTN","C0CBAT",130,0) +"RTN","C0CBAT",129,0) . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME -"RTN","C0CBAT",131,0) +"RTN","C0CBAT",130,0) . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME -"RTN","C0CBAT",132,0) +"RTN","C0CBAT",131,0) . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME -"RTN","C0CBAT",133,0) +"RTN","C0CBAT",132,0) . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START -"RTN","C0CBAT",134,0) +"RTN","C0CBAT",133,0) . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME -"RTN","C0CBAT",135,0) +"RTN","C0CBAT",134,0) . S C0CFDA(C0CBF,C0CIEN_",",5)=C0CBCUR ; -"RTN","C0CBAT",136,0) +"RTN","C0CBAT",135,0) . D UPDIE ; -"RTN","C0CBAT",137,0) +"RTN","C0CBAT",136,0) . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED -"RTN","C0CBAT",138,0) +"RTN","C0CBAT",137,0) . . S C0CSTOP=1 -"RTN","C0CBAT",139,0) +"RTN","C0CBAT",138,0) . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED -"RTN","C0CBAT",140,0) +"RTN","C0CBAT",139,0) . H 1 ; GIVE IT A BREAK -"RTN","C0CBAT",141,0) +"RTN","C0CBAT",140,0) I (C0CSTOP) S C0CDISP="KILLED" -"RTN","C0CBAT",142,0) +"RTN","C0CBAT",141,0) E S C0CDISP="FINISHED" -"RTN","C0CBAT",143,0) +"RTN","C0CBAT",142,0) S C0CFDA(C0CBF,C0CIEN_",",6)=C0CDISP -"RTN","C0CBAT",144,0) +"RTN","C0CBAT",143,0) D UPDIE ; SET DISPOSITION FIELD -"RTN","C0CBAT",145,0) +"RTN","C0CBAT",144,0) K ^TMP("C0CBAT","RUNNING") +"RTN","C0CBAT",145,0) + Q "RTN","C0CBAT",146,0) - Q + ; "RTN","C0CBAT",147,0) - ; -"RTN","C0CBAT",148,0) BLDHOT(ZHB) ; BUILD HOT LIST AT GLOBAL ZHB, PASSED BY NAME -"RTN","C0CBAT",149,0) +"RTN","C0CBAT",148,0) ; SEARCHS FOR PATIENTS IN THE "AC" INDEX OF THE ORDER FILE -"RTN","C0CBAT",150,0) +"RTN","C0CBAT",149,0) N ZDFN -"RTN","C0CBAT",151,0) +"RTN","C0CBAT",150,0) S ZDFN="" -"RTN","C0CBAT",152,0) +"RTN","C0CBAT",151,0) F S ZDFN=$O(^OR(100,"AC",ZDFN)) Q:ZDFN="" D ; ALL PATIENTS IN THE AC INDX -"RTN","C0CBAT",153,0) +"RTN","C0CBAT",152,0) . S ZZDFN=$P(ZDFN,";",1) ; FORMAT IS "N;DPT(" -"RTN","C0CBAT",154,0) +"RTN","C0CBAT",153,0) . I '$D(@C0CBS@(ZZDFN)) Q ; SKIP IF NOT IN SUBSCRIPTION LIST -"RTN","C0CBAT",155,0) +"RTN","C0CBAT",154,0) . S @ZHB@(ZZDFN)="" ;ADD PATIENT TO THE HOT LIST +"RTN","C0CBAT",155,0) + Q "RTN","C0CBAT",156,0) - Q + ; "RTN","C0CBAT",157,0) - ; -"RTN","C0CBAT",158,0) COUNT(ZB) ; EXTRINSIC THAT RETURNS THE NUMBER OF ARRAY ELEMENTS -"RTN","C0CBAT",159,0) +"RTN","C0CBAT",158,0) N ZI,ZN -"RTN","C0CBAT",160,0) +"RTN","C0CBAT",159,0) S ZN=0 -"RTN","C0CBAT",161,0) +"RTN","C0CBAT",160,0) S ZI="" -"RTN","C0CBAT",162,0) +"RTN","C0CBAT",161,0) F S ZI=$O(@ZB@(ZI)) Q:ZI="" D ; -"RTN","C0CBAT",163,0) +"RTN","C0CBAT",162,0) . S ZN=ZN+1 -"RTN","C0CBAT",164,0) +"RTN","C0CBAT",163,0) Q ZN +"RTN","C0CBAT",164,0) + ; "RTN","C0CBAT",165,0) - ; +UVARPTR(ZVAR,ZTYP) ;EXTRINSIC WHICH RETURNS THE POINTER TO ZVAR IN THE "RTN","C0CBAT",166,0) -UPDIEVARPTR(ZVAR,ZTYP) ;EXTRINSIC WHICH RETURNS THE POINTER TO ZVAR IN THE -"RTN","C0CBAT",167,0) ; CCR DICTIONARY. IT IS LAYGO, AS IT WILL ADD THE VARIABLE TO -"RTN","C0CBAT",168,0) +"RTN","C0CBAT",167,0) ; THE CCR DICTIONARY IF IT IS NOT THERE. ZTYP IS REQUIRED FOR LAYGO +"RTN","C0CBAT",168,0) + ; "RTN","C0CBAT",169,0) - ; -"RTN","C0CBAT",170,0) N ZCCRD,ZVARN,C0CFDA2 -"RTN","C0CBAT",171,0) +"RTN","C0CBAT",170,0) S ZCCRD=170 ; FILE NUMBER FOR CCR DICTIONARY -"RTN","C0CBAT",172,0) +"RTN","C0CBAT",171,0) S ZVARN=$O(^C0CDIC(170,"B",ZVAR,"")) ;FIND IEN OF VARIABLE -"RTN","C0CBAT",173,0) +"RTN","C0CBAT",172,0) I ZVARN="" D ; VARIABLE NOT IN CCR DICTIONARY - ADD IT -"RTN","C0CBAT",174,0) +"RTN","C0CBAT",173,0) . I '$D(ZTYP) D Q ; WON'T ADD A VARIABLE WITHOUT A TYPE -"RTN","C0CBAT",175,0) +"RTN","C0CBAT",174,0) . . W "CANNOT ADD VARIABLE WITHOUT A TYPE: ",ZVAR,! -"RTN","C0CBAT",176,0) +"RTN","C0CBAT",175,0) . S C0CFDA2(ZCCRD,"?+1,",.01)=ZVAR ; NAME OF NEW VARIABLE -"RTN","C0CBAT",177,0) +"RTN","C0CBAT",176,0) . S C0CFDA2(ZCCRD,"?+1,",12)=ZTYP ; TYPE EXTERNAL OF NEW VARIABLE -"RTN","C0CBAT",178,0) +"RTN","C0CBAT",177,0) . D CLEAN^DILF ;MAKE SURE ERRORS ARE CLEAN -"RTN","C0CBAT",179,0) +"RTN","C0CBAT",178,0) . D UPDATE^DIE("E","C0CFDA2","","ZERR") ;ADD VAR TO CCR DICTIONARY -"RTN","C0CBAT",180,0) +"RTN","C0CBAT",179,0) . I $D(ZERR) D ; LAYGO ERROR -"RTN","C0CBAT",181,0) +"RTN","C0CBAT",180,0) . . W "ERROR ADDING "_ZC0CI_" TO CCR DICTIONARY",! -"RTN","C0CBAT",182,0) +"RTN","C0CBAT",181,0) . E D ; -"RTN","C0CBAT",183,0) +"RTN","C0CBAT",182,0) . . D CLEAN^DILF ; CLEAN UP -"RTN","C0CBAT",184,0) +"RTN","C0CBAT",183,0) . . S ZVARN=$O(^C0CDIC(170,"B",ZVAR,"")) ;FIND IEN OF VARIABLE -"RTN","C0CBAT",185,0) +"RTN","C0CBAT",184,0) . . W "ADDED ",ZVAR," TO CCR DICTIONARY, IEN:",ZVARN,! -"RTN","C0CBAT",186,0) +"RTN","C0CBAT",185,0) Q ZVARN +"RTN","C0CBAT",186,0) + ; "RTN","C0CBAT",187,0) - ; -"RTN","C0CBAT",188,0) UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS -"RTN","C0CBAT",189,0) +"RTN","C0CBAT",188,0) K ZERR -"RTN","C0CBAT",190,0) +"RTN","C0CBAT",189,0) D CLEAN^DILF -"RTN","C0CBAT",191,0) +"RTN","C0CBAT",190,0) D UPDATE^DIE("","C0CFDA","","ZERR") +"RTN","C0CBAT",191,0) + I $D(ZERR) S $EC=",U1," "RTN","C0CBAT",192,0) - I $D(ZERR) D ; -"RTN","C0CBAT",193,0) - . W "ERROR",! -"RTN","C0CBAT",194,0) - . ZWR ZERR -"RTN","C0CBAT",195,0) - . B -"RTN","C0CBAT",196,0) K C0CFDA -"RTN","C0CBAT",197,0) +"RTN","C0CBAT",193,0) Q -"RTN","C0CBAT",198,0) +"RTN","C0CBAT",194,0) ; -"RTN","C0CBAT",199,0) +"RTN","C0CBAT",195,0) SETFDA(C0CSN,C0CSV) ; INTERNAL ROUTINE TO MAKE AN FDA ENTRY FOR FIELD C0CSN -"RTN","C0CBAT",200,0) +"RTN","C0CBAT",196,0) ; TO SET TO VALUE C0CSV. -"RTN","C0CBAT",201,0) +"RTN","C0CBAT",197,0) ; C0CFDA,C0CC,C0CZX ARE ASSUMED FROM THE CALLING ROUTINE -"RTN","C0CBAT",202,0) +"RTN","C0CBAT",198,0) ; C0CSN,C0CSV ARE PASSED BY VALUE -"RTN","C0CBAT",203,0) +"RTN","C0CBAT",199,0) ; -"RTN","C0CBAT",204,0) +"RTN","C0CBAT",200,0) N C0CSI,C0CSJ -"RTN","C0CBAT",205,0) +"RTN","C0CBAT",201,0) S C0CSI=$$ZFILE(C0CSN,"C0CC") ; FILE NUMBER -"RTN","C0CBAT",206,0) +"RTN","C0CBAT",202,0) S C0CSJ=$$ZFIELD(C0CSN,"C0CC") ; FIELD NUMBER -"RTN","C0CBAT",207,0) +"RTN","C0CBAT",203,0) S C0CFDA(C0CSI,C0CZX_",",C0CSJ)=C0CSV -"RTN","C0CBAT",208,0) +"RTN","C0CBAT",204,0) Q -"RTN","C0CBAT",209,0) +"RTN","C0CBAT",205,0) ZFILE(ZFN,ZTAB) ; EXTRINSIC TO RETURN FILE NUMBER FOR FIELD NAME PASSED -"RTN","C0CBAT",210,0) +"RTN","C0CBAT",206,0) ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 1 OF C0CA(ZFN) -"RTN","C0CBAT",211,0) +"RTN","C0CBAT",207,0) ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA -"RTN","C0CBAT",212,0) +"RTN","C0CBAT",208,0) I '$D(ZTAB) S ZTAB="C0CA" -"RTN","C0CBAT",213,0) +"RTN","C0CBAT",209,0) N ZR -"RTN","C0CBAT",214,0) +"RTN","C0CBAT",210,0) I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",1) -"RTN","C0CBAT",215,0) +"RTN","C0CBAT",211,0) E S ZR="" -"RTN","C0CBAT",216,0) +"RTN","C0CBAT",212,0) Q ZR -"RTN","C0CBAT",217,0) +"RTN","C0CBAT",213,0) ZFIELD(ZFN,ZTAB) ;EXTRINSIC TO RETURN FIELD NUMBER FOR FIELD NAME PASSED -"RTN","C0CBAT",218,0) +"RTN","C0CBAT",214,0) ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 2 OF C0CA(ZFN) -"RTN","C0CBAT",219,0) +"RTN","C0CBAT",215,0) ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA -"RTN","C0CBAT",220,0) +"RTN","C0CBAT",216,0) I '$D(ZTAB) S ZTAB="C0CA" -"RTN","C0CBAT",221,0) +"RTN","C0CBAT",217,0) N ZR -"RTN","C0CBAT",222,0) +"RTN","C0CBAT",218,0) I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",2) -"RTN","C0CBAT",223,0) +"RTN","C0CBAT",219,0) E S ZR="" -"RTN","C0CBAT",224,0) +"RTN","C0CBAT",220,0) Q ZR -"RTN","C0CBAT",225,0) +"RTN","C0CBAT",221,0) ; -"RTN","C0CBAT",226,0) +"RTN","C0CBAT",222,0) ZVALUE(ZFN,ZTAB) ;EXTRINSIC TO RETURN VALUE FOR FIELD NAME PASSED -"RTN","C0CBAT",227,0) +"RTN","C0CBAT",223,0) ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 3 OF C0CA(ZFN) -"RTN","C0CBAT",228,0) +"RTN","C0CBAT",224,0) ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA -"RTN","C0CBAT",229,0) +"RTN","C0CBAT",225,0) I '$D(ZTAB) S ZTAB="C0CA" -"RTN","C0CBAT",230,0) +"RTN","C0CBAT",226,0) N ZR -"RTN","C0CBAT",231,0) +"RTN","C0CBAT",227,0) I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",3) -"RTN","C0CBAT",232,0) +"RTN","C0CBAT",228,0) E S ZR="" -"RTN","C0CBAT",233,0) +"RTN","C0CBAT",229,0) Q ZR -"RTN","C0CBAT",234,0) +"RTN","C0CBAT",230,0) ; "RTN","C0CCCD") -0^45^B114134049 +0^45^B89035344 "RTN","C0CCCD",1,0) C0CCCD ; CCDCCR/GPL - CCD MAIN PROCESSING; 6/6/08 "RTN","C0CCCD",2,0) - ;;1.2;C0C;;May 11, 2012;Build 50 + ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 "RTN","C0CCCD",3,0) ;Copyright 2008,2009 George Lilly, University of Minnesota. "RTN","C0CCCD",4,0) - ;Licensed under the terms of the GNU General Public License. + ; "RTN","C0CCCD",5,0) - ;See attached copy of the License. + ; This program is free software: you can redistribute it and/or modify "RTN","C0CCCD",6,0) - ; + ; it under the terms of the GNU Affero General Public License as "RTN","C0CCCD",7,0) - ;This program is free software; you can redistribute it and/or modify + ; published by the Free Software Foundation, either version 3 of the "RTN","C0CCCD",8,0) - ;it under the terms of the GNU General Public License as published by + ; License, or (at your option) any later version. "RTN","C0CCCD",9,0) - ;the Free Software Foundation; either version 2 of the License, or + ; "RTN","C0CCCD",10,0) - ;(at your option) any later version. + ; This program is distributed in the hope that it will be useful, "RTN","C0CCCD",11,0) - ; + ; but WITHOUT ANY WARRANTY; without even the implied warranty of "RTN","C0CCCD",12,0) - ;This program is distributed in the hope that it will be useful, + ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "RTN","C0CCCD",13,0) - ;but WITHOUT ANY WARRANTY; without even the implied warranty of + ; GNU Affero General Public License for more details. "RTN","C0CCCD",14,0) - ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ; "RTN","C0CCCD",15,0) - ;GNU General Public License for more details. + ; You should have received a copy of the GNU Affero General Public License "RTN","C0CCCD",16,0) - ; + ; along with this program. If not, see . "RTN","C0CCCD",17,0) - ;You should have received a copy of the GNU General Public License along + ; "RTN","C0CCCD",18,0) - ;with this program; if not, write to the Free Software Foundation, Inc., -"RTN","C0CCCD",19,0) - ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -"RTN","C0CCCD",20,0) - ; -"RTN","C0CCCD",21,0) ; EXPORT A CCR -"RTN","C0CCCD",22,0) +"RTN","C0CCCD",19,0) ; -"RTN","C0CCCD",23,0) +"RTN","C0CCCD",20,0) EXPORT ; EXPORT ENTRY POINT FOR CCR +"RTN","C0CCCD",21,0) + ; Select a patient. +"RTN","C0CCCD",22,0) + S DIC=2,DIC(0)="AEMQ" D ^DIC +"RTN","C0CCCD",23,0) + I Y<1 Q ; EXIT "RTN","C0CCCD",24,0) - ; Select a patient. + S DFN=$P(Y,U,1) ; SET THE PATIENT "RTN","C0CCCD",25,0) - S DIC=2,DIC(0)="AEMQ" D ^DIC + D XPAT(DFN,"","") ; EXPORT TO A FILE "RTN","C0CCCD",26,0) - I Y<1 Q ; EXIT + Q "RTN","C0CCCD",27,0) - S DFN=$P(Y,U,1) ; SET THE PATIENT + ; "RTN","C0CCCD",28,0) - D XPAT(DFN,"","") ; EXPORT TO A FILE -"RTN","C0CCCD",29,0) - Q -"RTN","C0CCCD",30,0) - ; -"RTN","C0CCCD",31,0) XPAT(DFN,DIR,FN) ; EXPORT ONE PATIENT TO A FILE +"RTN","C0CCCD",29,0) + ; DIR IS THE DIRECTORY, DEFAULTS IF NULL TO ^TMP("C0CCCR","ODIR") +"RTN","C0CCCD",30,0) + ; FN IS FILE NAME, DEFAULTS IF NULL +"RTN","C0CCCD",31,0) + ; N CCDGLO "RTN","C0CCCD",32,0) - ; DIR IS THE DIRECTORY, DEFAULTS IF NULL TO ^TMP("C0CCCR","ODIR") + D CCDRPC(.CCDGLO,DFN,"CCD","","","") "RTN","C0CCCD",33,0) - ; FN IS FILE NAME, DEFAULTS IF NULL + S OARY=$NA(^TMP("C0CCCR",$J,DFN,"CCD",1)) "RTN","C0CCCD",34,0) - ; N CCDGLO + S ONAM=FN "RTN","C0CCCD",35,0) - D CCDRPC(.CCDGLO,DFN,"CCD","","","") + I FN="" S ONAM="PAT_"_DFN_"_CCD_V1.xml" "RTN","C0CCCD",36,0) - S OARY=$NA(^TMP("C0CCCR",$J,DFN,"CCD",1)) + S ODIRGLB=$NA(^TMP("C0CCCR","ODIR")) "RTN","C0CCCD",37,0) - S ONAM=FN + I '$D(@ODIRGLB) D ; IF NOT ODIR HAS BEEN SET "RTN","C0CCCD",38,0) - I FN="" S ONAM="PAT_"_DFN_"_CCD_V1.xml" + . S @ODIRGLB="/home/glilly/CCROUT" "RTN","C0CCCD",39,0) - S ODIRGLB=$NA(^TMP("C0CCCR","ODIR")) + . ;S @ODIRGLB="/home/cedwards/" "RTN","C0CCCD",40,0) - I '$D(@ODIRGLB) D ; IF NOT ODIR HAS BEEN SET + . ;S @ODIRGLB="/opt/wv/p/" "RTN","C0CCCD",41,0) - . S @ODIRGLB="/home/glilly/CCROUT" + S ODIR=DIR "RTN","C0CCCD",42,0) - . ;S @ODIRGLB="/home/cedwards/" + I DIR="" S ODIR=@ODIRGLB "RTN","C0CCCD",43,0) - . ;S @ODIRGLB="/opt/wv/p/" + N ZY "RTN","C0CCCD",44,0) - S ODIR=DIR + S ZY=$$OUTPUT^C0CXPATH(OARY,ONAM,ODIR) "RTN","C0CCCD",45,0) - I DIR="" S ODIR=@ODIRGLB + W $P(ZY,U,2) "RTN","C0CCCD",46,0) - N ZY + Q "RTN","C0CCCD",47,0) - S ZY=$$OUTPUT^C0CXPATH(OARY,ONAM,ODIR) + ; "RTN","C0CCCD",48,0) - W $P(ZY,U,2) -"RTN","C0CCCD",49,0) - Q -"RTN","C0CCCD",50,0) - ; -"RTN","C0CCCD",51,0) CCDRPC(CCRGRTN,DFN,CCRPART,TIME1,TIME2,HDRARY) ;RPC ENTRY POINT FOR CCR OUTPUT +"RTN","C0CCCD",49,0) + ; CCRGRTN IS RETURN ARRAY PASSED BY NAME +"RTN","C0CCCD",50,0) + ; DFN IS PATIENT IEN +"RTN","C0CCCD",51,0) + ; CCRPART IS "CCR" FOR ENTIRE CCR, OR SECTION NAME FOR A PART "RTN","C0CCCD",52,0) - ; CCRGRTN IS RETURN ARRAY PASSED BY NAME + ; OF THE CCR BODY.. PARTS INCLUDE "PROBLEMS" "VITALS" ETC "RTN","C0CCCD",53,0) - ; DFN IS PATIENT IEN + ; TIME1 IS STARTING TIME TO INCLUDE - NULL MEANS ALL "RTN","C0CCCD",54,0) - ; CCRPART IS "CCR" FOR ENTIRE CCR, OR SECTION NAME FOR A PART + ; TIME2 IS ENDING TIME TO INCLUDE TIME IS FILEMAN TIME "RTN","C0CCCD",55,0) - ; OF THE CCR BODY.. PARTS INCLUDE "PROBLEMS" "VITALS" ETC + ; - NULL MEANS NOW "RTN","C0CCCD",56,0) - ; TIME1 IS STARTING TIME TO INCLUDE - NULL MEANS ALL + ; HDRARY IS THE HEADER ARRAY DEFINING THE "FROM" AND "RTN","C0CCCD",57,0) - ; TIME2 IS ENDING TIME TO INCLUDE TIME IS FILEMAN TIME + ; "TO" VARIABLES "RTN","C0CCCD",58,0) - ; - NULL MEANS NOW + ; IF NULL WILL DEFAULT TO "FROM" ORGANIZATION AND "TO" DFN "RTN","C0CCCD",59,0) - ; HDRARY IS THE HEADER ARRAY DEFINING THE "FROM" AND + I '$D(DEBUG) S DEBUG=0 "RTN","C0CCCD",60,0) - ; "TO" VARIABLES + N CCD S CCD=0 ; FLAG FOR PROCESSING A CCD "RTN","C0CCCD",61,0) - ; IF NULL WILL DEFAULT TO "FROM" ORGANIZATION AND "TO" DFN + I CCRPART="CCD" S CCD=1 ; WE ARE PROCESSING A CCD "RTN","C0CCCD",62,0) - I '$D(DEBUG) S DEBUG=0 + S TGLOBAL=$NA(^TMP("C0CCCR",$J,"TEMPLATE")) ; GLOBAL FOR STORING TEMPLATE "RTN","C0CCCD",63,0) - N CCD S CCD=0 ; FLAG FOR PROCESSING A CCD + I CCD S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCD")) ; GLOBAL FOR THE CCD "RTN","C0CCCD",64,0) - I CCRPART="CCD" S CCD=1 ; WE ARE PROCESSING A CCD + E S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCR")) ; GLOBAL FOR BUILDING THE CCR "RTN","C0CCCD",65,0) - S TGLOBAL=$NA(^TMP("C0CCCR",$J,"TEMPLATE")) ; GLOBAL FOR STORING TEMPLATE + S ACTGLO=$NA(^TMP("C0CCCR",$J,DFN,"ACTORS")) ; GLOBAL FOR ALL ACTORS "RTN","C0CCCD",66,0) - I CCD S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCD")) ; GLOBAL FOR THE CCD + ; TO GET PART OF THE CCR RETURNED, PASS CCRPART="PROBLEMS" ETC "RTN","C0CCCD",67,0) - E S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCR")) ; GLOBAL FOR BUILDING THE CCR + S CCRGRTN=$NA(^TMP("C0CCCR",$J,DFN,CCRPART)) ; RTN GLO NM OF PART OR ALL "RTN","C0CCCD",68,0) - S ACTGLO=$NA(^TMP("C0CCCR",$J,DFN,"ACTORS")) ; GLOBAL FOR ALL ACTORS + I CCD D LOAD^C0CCCD1(TGLOBAL) ; LOAD THE CCR TEMPLATE "RTN","C0CCCD",69,0) - ; TO GET PART OF THE CCR RETURNED, PASS CCRPART="PROBLEMS" ETC + E D LOAD^C0CCCR0(TGLOBAL) ; LOAD THE CCR TEMPLATE "RTN","C0CCCD",70,0) - S CCRGRTN=$NA(^TMP("C0CCCR",$J,DFN,CCRPART)) ; RTN GLO NM OF PART OR ALL + D CP^C0CXPATH(TGLOBAL,CCDGLO) ; COPY THE TEMPLATE TO CCR GLOBAL "RTN","C0CCCD",71,0) - I CCD D LOAD^C0CCCD1(TGLOBAL) ; LOAD THE CCR TEMPLATE + N CAPSAVE,CAPSAVE2 ; FOR HOLDING THE CCD ROOT LINES "RTN","C0CCCD",72,0) - E D LOAD^C0CCCR0(TGLOBAL) ; LOAD THE CCR TEMPLATE + S CAPSAVE=@TGLOBAL@(3) ; SAVE THE CCD ROOT "RTN","C0CCCD",73,0) - D CP^C0CXPATH(TGLOBAL,CCDGLO) ; COPY THE TEMPLATE TO CCR GLOBAL + S CAPSAVE2=@TGLOBAL@(@TGLOBAL@(0)) ; SAVE LAST LINE OF CCD "RTN","C0CCCD",74,0) - N CAPSAVE,CAPSAVE2 ; FOR HOLDING THE CCD ROOT LINES + S @CCDGLO@(3)="" ; CAP WITH CCR ROOT "RTN","C0CCCD",75,0) - S CAPSAVE=@TGLOBAL@(3) ; SAVE THE CCD ROOT + S @TGLOBAL@(3)=@CCDGLO@(3) ; CAP THE TEMPLATE TOO "RTN","C0CCCD",76,0) - S CAPSAVE2=@TGLOBAL@(@TGLOBAL@(0)) ; SAVE LAST LINE OF CCD + S @CCDGLO@(@CCDGLO@(0))="" ; FINISH CAP "RTN","C0CCCD",77,0) - S @CCDGLO@(3)="" ; CAP WITH CCR ROOT + S @TGLOBAL@(@TGLOBAL@(0))="" ; FINISH CAP TEMP "RTN","C0CCCD",78,0) - S @TGLOBAL@(3)=@CCDGLO@(3) ; CAP THE TEMPLATE TOO + ; "RTN","C0CCCD",79,0) - S @CCDGLO@(@CCDGLO@(0))="" ; FINISH CAP + ; DELETE THE BODY, ACTORS AND SIGNATURES SECTIONS FROM GLOBAL "RTN","C0CCCD",80,0) - S @TGLOBAL@(@TGLOBAL@(0))="" ; FINISH CAP TEMP + ; THESE WILL BE POPULATED AFTER CALLS TO THE XPATH ROUTINES "RTN","C0CCCD",81,0) - ; + D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Body") "RTN","C0CCCD",82,0) - ; DELETE THE BODY, ACTORS AND SIGNATURES SECTIONS FROM GLOBAL + D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Actors") "RTN","C0CCCD",83,0) - ; THESE WILL BE POPULATED AFTER CALLS TO THE XPATH ROUTINES + I 'CCD D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Signatures") "RTN","C0CCCD",84,0) - D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Body") + I DEBUG F I=1:1:@CCDGLO@(0) W @CCDGLO@(I),! "RTN","C0CCCD",85,0) - D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Actors") + ; "RTN","C0CCCD",86,0) - I 'CCD D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Signatures") + I 'CCD D HDRMAP(CCDGLO,DFN,HDRARY) ; MAP HEADER VARIABLES "RTN","C0CCCD",87,0) - I DEBUG F I=1:1:@CCDGLO@(0) W @CCDGLO@(I),! + ; MAPPING THE PATIENT PORTION OF THE CDA HEADER "RTN","C0CCCD",88,0) - ; + S ZZX="//ContinuityOfCareRecord/recordTarget/patientRole/patient" "RTN","C0CCCD",89,0) - I 'CCD D HDRMAP(CCDGLO,DFN,HDRARY) ; MAP HEADER VARIABLES + D QUERY^C0CXPATH(CCDGLO,ZZX,"ACTT1") "RTN","C0CCCD",90,0) - ; MAPPING THE PATIENT PORTION OF THE CDA HEADER + D PATIENT^C0CACTOR("ACTT1",DFN,"ACTORPATIENT_"_DFN,"ACTT2") ; MAP PATIENT "RTN","C0CCCD",91,0) - S ZZX="//ContinuityOfCareRecord/recordTarget/patientRole/patient" + I DEBUG D PARY^C0CXPATH("ACTT2") "RTN","C0CCCD",92,0) - D QUERY^C0CXPATH(CCDGLO,ZZX,"ACTT1") + D REPLACE^C0CXPATH(CCDGLO,"ACTT2",ZZX) "RTN","C0CCCD",93,0) - D PATIENT^C0CACTOR("ACTT1",DFN,"ACTORPATIENT_"_DFN,"ACTT2") ; MAP PATIENT + I DEBUG D PARY^C0CXPATH(CCDGLO) "RTN","C0CCCD",94,0) - I DEBUG D PARY^C0CXPATH("ACTT2") + K ACTT1 K ACCT2 "RTN","C0CCCD",95,0) - D REPLACE^C0CXPATH(CCDGLO,"ACTT2",ZZX) + ; MAPPING THE PROVIDER ORGANIZATION,AUTHOR,INFORMANT,CUSTODIAN CDA HEADER "RTN","C0CCCD",96,0) - I DEBUG D PARY^C0CXPATH(CCDGLO) + ; FOR NOW, THEY ARE ALL THE SAME AND RESOLVE TO ORGANIZATION "RTN","C0CCCD",97,0) - K ACTT1 K ACCT2 + D ORG^C0CACTOR(CCDGLO,DFN,"ACTORPATIENTORGANIZATION","ACTT2") ; MAP ORG "RTN","C0CCCD",98,0) - ; MAPPING THE PROVIDER ORGANIZATION,AUTHOR,INFORMANT,CUSTODIAN CDA HEADER + D CP^C0CXPATH("ACTT2",CCDGLO) "RTN","C0CCCD",99,0) - ; FOR NOW, THEY ARE ALL THE SAME AND RESOLVE TO ORGANIZATION + ; "RTN","C0CCCD",100,0) - D ORG^C0CACTOR(CCDGLO,DFN,"ACTORPATIENTORGANIZATION","ACTT2") ; MAP ORG + K ^TMP("C0CCCR",$J,"CCRSTEP") ; KILL GLOBAL PRIOR TO ADDING TO IT "RTN","C0CCCD",101,0) - D CP^C0CXPATH("ACTT2",CCDGLO) + S CCRXTAB=$NA(^TMP("C0CCCR",$J,"CCRSTEP")) ; GLOBAL TO STORE CCR STEPS "RTN","C0CCCD",102,0) - ; + D INITSTPS(CCRXTAB) ; INITIALIZED CCR PROCESSING STEPS "RTN","C0CCCD",103,0) - K ^TMP("C0CCCR",$J,"CCRSTEP") ; KILL GLOBAL PRIOR TO ADDING TO IT + N I,XI,TAG,RTN,CALL,XPATH,IXML,OXML,INXML,CCRBLD "RTN","C0CCCD",104,0) - S CCRXTAB=$NA(^TMP("C0CCCR",$J,"CCRSTEP")) ; GLOBAL TO STORE CCR STEPS + F I=1:1:@CCRXTAB@(0) D ; PROCESS THE CCR BODY SECTIONS "RTN","C0CCCD",105,0) - D INITSTPS(CCRXTAB) ; INITIALIZED CCR PROCESSING STEPS + . S XI=@CCRXTAB@(I) ; CALL COPONENTS TO PARSE "RTN","C0CCCD",106,0) - N I,XI,TAG,RTN,CALL,XPATH,IXML,OXML,INXML,CCRBLD + . S RTN=$P(XI,";",2) ; NAME OF ROUTINE TO CALL "RTN","C0CCCD",107,0) - F I=1:1:@CCRXTAB@(0) D ; PROCESS THE CCR BODY SECTIONS + . S TAG=$P(XI,";",1) ; LABEL INSIDE ROUTINE TO CALL "RTN","C0CCCD",108,0) - . S XI=@CCRXTAB@(I) ; CALL COPONENTS TO PARSE + . S XPATH=$P(XI,";",3) ; XPATH TO XML TO PASS TO ROUTINE "RTN","C0CCCD",109,0) - . S RTN=$P(XI,";",2) ; NAME OF ROUTINE TO CALL + . D QUERY^C0CXPATH(TGLOBAL,XPATH,"INXML") ; EXTRACT XML TO PASS "RTN","C0CCCD",110,0) - . S TAG=$P(XI,";",1) ; LABEL INSIDE ROUTINE TO CALL + . S IXML="INXML" "RTN","C0CCCD",111,0) - . S XPATH=$P(XI,";",3) ; XPATH TO XML TO PASS TO ROUTINE + . I CCD D SHAVE(IXML) ; REMOVE ALL BUT REPEATING PARTS OF TEMPLATE SECTION "RTN","C0CCCD",112,0) - . D QUERY^C0CXPATH(TGLOBAL,XPATH,"INXML") ; EXTRACT XML TO PASS + . S OXML=$P(XI,";",4) ; ARRAY FOR SECTION VALUES "RTN","C0CCCD",113,0) - . S IXML="INXML" + . ; W OXML,! "RTN","C0CCCD",114,0) - . I CCD D SHAVE(IXML) ; REMOVE ALL BUT REPEATING PARTS OF TEMPLATE SECTION + . S CALL="D "_TAG_"^"_RTN_"(IXML,DFN,OXML)" ; SETUP THE CALL "RTN","C0CCCD",115,0) - . S OXML=$P(XI,";",4) ; ARRAY FOR SECTION VALUES + . W "RUNNING ",CALL,! "RTN","C0CCCD",116,0) - . ; W OXML,! + . X CALL "RTN","C0CCCD",117,0) - . S CALL="D "_TAG_"^"_RTN_"(IXML,DFN,OXML)" ; SETUP THE CALL + . I @OXML@(0)'=0 D ; THERE IS A RESULT "RTN","C0CCCD",118,0) - . W "RUNNING ",CALL,! + . . I CCD D QUERY^C0CXPATH(TGLOBAL,XPATH,"ITMP") ; XML TO UNSHAVE WITH "RTN","C0CCCD",119,0) - . X CALL + . . I CCD D UNSHAVE("ITMP",OXML) "RTN","C0CCCD",120,0) - . I @OXML@(0)'=0 D ; THERE IS A RESULT + . . I CCD D UNMARK^C0CXPATH(OXML) ; REMOVE THE CCR MARKUP FROM SECTION "RTN","C0CCCD",121,0) - . . I CCD D QUERY^C0CXPATH(TGLOBAL,XPATH,"ITMP") ; XML TO UNSHAVE WITH + . ; NOW INSERT THE RESULTS IN THE CCR BUFFER "RTN","C0CCCD",122,0) - . . I CCD D UNSHAVE("ITMP",OXML) + . D INSERT^C0CXPATH(CCDGLO,OXML,"//ContinuityOfCareRecord/Body") "RTN","C0CCCD",123,0) - . . I CCD D UNMARK^C0CXPATH(OXML) ; REMOVE THE CCR MARKUP FROM SECTION + . I DEBUG F C0CI=1:1:@OXML@(0) W @OXML@(C0CI),! "RTN","C0CCCD",124,0) - . ; NOW INSERT THE RESULTS IN THE CCR BUFFER + ; NEED TO ADD BACK IN ACTOR PROCESSING AFTER WE FIGURE OUT LINKAGE "RTN","C0CCCD",125,0) - . D INSERT^C0CXPATH(CCDGLO,OXML,"//ContinuityOfCareRecord/Body") + ; D ACTLST^C0CCCR(CCDGLO,ACTGLO) ; GEN THE ACTOR LIST "RTN","C0CCCD",126,0) - . I DEBUG F C0CI=1:1:@OXML@(0) W @OXML@(C0CI),! + ; D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","ACTT") "RTN","C0CCCD",127,0) - ; NEED TO ADD BACK IN ACTOR PROCESSING AFTER WE FIGURE OUT LINKAGE + ; D EXTRACT^C0CACTOR("ACTT",ACTGLO,"ACTT2") "RTN","C0CCCD",128,0) - ; D ACTLST^C0CCCR(CCDGLO,ACTGLO) ; GEN THE ACTOR LIST + ; D INSINNER^C0CXPATH(CCDGLO,"ACTT2","//ContinuityOfCareRecord/Actors") "RTN","C0CCCD",129,0) - ; D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","ACTT") + N I,J,DONE S DONE=0 "RTN","C0CCCD",130,0) - ; D EXTRACT^C0CACTOR("ACTT",ACTGLO,"ACTT2") + F I=0:0 D Q:DONE ; DELETE UNTIL ALL EMPTY ELEMENTS ARE GONE "RTN","C0CCCD",131,0) - ; D INSINNER^C0CXPATH(CCDGLO,"ACTT2","//ContinuityOfCareRecord/Actors") + . S J=$$TRIM^C0CXPATH(CCDGLO) ; DELETE EMPTY ELEMENTS "RTN","C0CCCD",132,0) - N I,J,DONE S DONE=0 + . W "TRIMMED",J,! "RTN","C0CCCD",133,0) - F I=0:0 D Q:DONE ; DELETE UNTIL ALL EMPTY ELEMENTS ARE GONE + . I J=0 S DONE=1 ; DONE WHEN TRIM RETURNS FALSE "RTN","C0CCCD",134,0) - . S J=$$TRIM^C0CXPATH(CCDGLO) ; DELETE EMPTY ELEMENTS + I CCD D ; TURN THE BODY INTO A CCD COMPONENT "RTN","C0CCCD",135,0) - . W "TRIMMED",J,! + . N I "RTN","C0CCCD",136,0) - . I J=0 S DONE=1 ; DONE WHEN TRIM RETURNS FALSE + . F I=1:1:@CCDGLO@(0) D ; SEARCH THROUGH THE ENTIRE ARRAY "RTN","C0CCCD",137,0) - I CCD D ; TURN THE BODY INTO A CCD COMPONENT + . . I @CCDGLO@(I)["" D ; REPLACE BODY MARKUP "RTN","C0CCCD",138,0) - . N I + . . . S @CCDGLO@(I)="" ; WITH CCD EQ "RTN","C0CCCD",139,0) - . F I=1:1:@CCDGLO@(0) D ; SEARCH THROUGH THE ENTIRE ARRAY + . . I @CCDGLO@(I)["" D ; REPLACE BODY MARKUP "RTN","C0CCCD",140,0) - . . I @CCDGLO@(I)["" D ; REPLACE BODY MARKUP + . . . S @CCDGLO@(I)="" "RTN","C0CCCD",141,0) - . . . S @CCDGLO@(I)="" ; WITH CCD EQ + S @CCDGLO@(3)=CAPSAVE ; UNCAP - TURN IT BACK INTO A CCD "RTN","C0CCCD",142,0) - . . I @CCDGLO@(I)["" D ; REPLACE BODY MARKUP + S @CCDGLO@(@CCDGLO@(0))=CAPSAVE2 ; UNCAP LAST LINE "RTN","C0CCCD",143,0) - . . . S @CCDGLO@(I)="" + Q "RTN","C0CCCD",144,0) - S @CCDGLO@(3)=CAPSAVE ; UNCAP - TURN IT BACK INTO A CCD + ; "RTN","C0CCCD",145,0) - S @CCDGLO@(@CCDGLO@(0))=CAPSAVE2 ; UNCAP LAST LINE -"RTN","C0CCCD",146,0) - Q -"RTN","C0CCCD",147,0) - ; -"RTN","C0CCCD",148,0) INITSTPS(TAB) ; INITIALIZE CCR PROCESSING STEPS +"RTN","C0CCCD",146,0) + ; TAB IS PASSED BY NAME +"RTN","C0CCCD",147,0) + W "TAB= ",TAB,! +"RTN","C0CCCD",148,0) + ; ORDER FOR CCR IS PROBLEMS,FAMILYHISTORY,SOCIALHISTORY,MEDICATIONS,VITALSIGNS,RESULTS,HEALTHCAREPROVIDERS "RTN","C0CCCD",149,0) - ; TAB IS PASSED BY NAME + D PUSH^C0CXPATH(TAB,"EXTRACT;C0CPROBS;//ContinuityOfCareRecord/Body/Problems;^TMP(""C0CCCR"",$J,DFN,""PROBLEMS"")") "RTN","C0CCCD",150,0) - W "TAB= ",TAB,! + ;D PUSH^C0CXPATH(TAB,"EXTRACT;C0CMED;//ContinuityOfCareRecord/Body/Medications;^TMP(""C0CCCR"",$J,DFN,""MEDICATIONS"")") "RTN","C0CCCD",151,0) - ; ORDER FOR CCR IS PROBLEMS,FAMILYHISTORY,SOCIALHISTORY,MEDICATIONS,VITALSIGNS,RESULTS,HEALTHCAREPROVIDERS + I 'CCD D PUSH^C0CXPATH(TAB,"EXTRACT;C0CVITAL;//ContinuityOfCareRecord/Body/VitalSigns;^TMP(""C0CCCR"",$J,DFN,""VITALS"")") "RTN","C0CCCD",152,0) - D PUSH^C0CXPATH(TAB,"EXTRACT;C0CPROBS;//ContinuityOfCareRecord/Body/Problems;^TMP(""C0CCCR"",$J,DFN,""PROBLEMS"")") + Q "RTN","C0CCCD",153,0) - ;D PUSH^C0CXPATH(TAB,"EXTRACT;C0CMED;//ContinuityOfCareRecord/Body/Medications;^TMP(""C0CCCR"",$J,DFN,""MEDICATIONS"")") + ; "RTN","C0CCCD",154,0) - I 'CCD D PUSH^C0CXPATH(TAB,"EXTRACT;C0CVITAL;//ContinuityOfCareRecord/Body/VitalSigns;^TMP(""C0CCCR"",$J,DFN,""VITALS"")") -"RTN","C0CCCD",155,0) - Q -"RTN","C0CCCD",156,0) - ; -"RTN","C0CCCD",157,0) SHAVE(SHXML) ; REMOVES THE 2-6 AND N-1 AND N-2 LINES FROM A COMPONENT +"RTN","C0CCCD",155,0) + ; NEEDED TO EXPOSE THE REPEATING PARTS FOR GENERATION +"RTN","C0CCCD",156,0) + N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST +"RTN","C0CCCD",157,0) + W SHXML,! "RTN","C0CCCD",158,0) - ; NEEDED TO EXPOSE THE REPEATING PARTS FOR GENERATION + W @SHXML@(1),! "RTN","C0CCCD",159,0) - N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST + D QUEUE^C0CXPATH("SHBLD",SHXML,1,1) ; THE FIRST LINE IS NEEDED "RTN","C0CCCD",160,0) - W SHXML,! + D QUEUE^C0CXPATH("SHBLD",SHXML,7,@SHXML@(0)-3) ; REPEATING PART "RTN","C0CCCD",161,0) - W @SHXML@(1),! + D QUEUE^C0CXPATH("SHBLD",SHXML,@SHXML@(0),@SHXML@(0)) ; LAST LINE "RTN","C0CCCD",162,0) - D QUEUE^C0CXPATH("SHBLD",SHXML,1,1) ; THE FIRST LINE IS NEEDED + D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST "RTN","C0CCCD",163,0) - D QUEUE^C0CXPATH("SHBLD",SHXML,7,@SHXML@(0)-3) ; REPEATING PART + D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION "RTN","C0CCCD",164,0) - D QUEUE^C0CXPATH("SHBLD",SHXML,@SHXML@(0),@SHXML@(0)) ; LAST LINE + D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY "RTN","C0CCCD",165,0) - D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST + Q "RTN","C0CCCD",166,0) - D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION + ; "RTN","C0CCCD",167,0) - D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY -"RTN","C0CCCD",168,0) - Q -"RTN","C0CCCD",169,0) - ; -"RTN","C0CCCD",170,0) UNSHAVE(ORIGXML,SHXML) ; REPLACES THE 2-6 AND N-1 AND N-2 LINES FROM TEMPLATE +"RTN","C0CCCD",168,0) + ; NEEDED TO RESTORM FIXED TOP AND BOTTOM OF THE COMPONENT XML +"RTN","C0CCCD",169,0) + N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST +"RTN","C0CCCD",170,0) + W SHXML,! "RTN","C0CCCD",171,0) - ; NEEDED TO RESTORM FIXED TOP AND BOTTOM OF THE COMPONENT XML + W @SHXML@(1),! "RTN","C0CCCD",172,0) - N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST + D QUEUE^C0CXPATH("SHBLD",ORIGXML,1,6) ; FIRST 6 LINES OF TEMPLATE "RTN","C0CCCD",173,0) - W SHXML,! + D QUEUE^C0CXPATH("SHBLD",SHXML,2,@SHXML@(0)-1) ; INS ALL BUT FIRST/LAST "RTN","C0CCCD",174,0) - W @SHXML@(1),! + D QUEUE^C0CXPATH("SHBLD",ORIGXML,@ORIGXML@(0)-2,@ORIGXML@(0)) ; FROM TEMP "RTN","C0CCCD",175,0) - D QUEUE^C0CXPATH("SHBLD",ORIGXML,1,6) ; FIRST 6 LINES OF TEMPLATE + D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST "RTN","C0CCCD",176,0) - D QUEUE^C0CXPATH("SHBLD",SHXML,2,@SHXML@(0)-1) ; INS ALL BUT FIRST/LAST + D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION "RTN","C0CCCD",177,0) - D QUEUE^C0CXPATH("SHBLD",ORIGXML,@ORIGXML@(0)-2,@ORIGXML@(0)) ; FROM TEMP + D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY "RTN","C0CCCD",178,0) - D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST + Q "RTN","C0CCCD",179,0) - D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION + ; "RTN","C0CCCD",180,0) - D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY -"RTN","C0CCCD",181,0) - Q -"RTN","C0CCCD",182,0) - ; -"RTN","C0CCCD",183,0) HDRMAP(CXML,DFN,IHDR) ; MAP HEADER VARIABLES: FROM, TO ECT +"RTN","C0CCCD",181,0) + N VMAP S VMAP=$NA(^TMP("C0CCCR",$J,DFN,"HEADER")) +"RTN","C0CCCD",182,0) + ; K @VMAP +"RTN","C0CCCD",183,0) + S @VMAP@("DATETIME")=$$FMDTOUTC^C0CUTIL($$NOW^XLFDT,"DT") "RTN","C0CCCD",184,0) - N VMAP S VMAP=$NA(^TMP("C0CCCR",$J,DFN,"HEADER")) + I IHDR="" D ; HEADER ARRAY IS NOT PROVIDED, USE DEFAULTS "RTN","C0CCCD",185,0) - ; K @VMAP + . S @VMAP@("ACTORPATIENT")="ACTORPATIENT_"_DFN "RTN","C0CCCD",186,0) - S @VMAP@("DATETIME")=$$FMDTOUTC^C0CUTIL($$NOW^XLFDT,"DT") + . S @VMAP@("ACTORFROM")="ACTORORGANIZATION_"_DUZ ; FROM DUZ - ??? "RTN","C0CCCD",187,0) - I IHDR="" D ; HEADER ARRAY IS NOT PROVIDED, USE DEFAULTS + . S @VMAP@("ACTORFROM2")="ACTORSYSTEM_1" ; SECOND FROM IS THE SYSTEM "RTN","C0CCCD",188,0) - . S @VMAP@("ACTORPATIENT")="ACTORPATIENT_"_DFN + . S @VMAP@("ACTORTO")="ACTORPATIENT_"_DFN ; FOR TEST PURPOSES "RTN","C0CCCD",189,0) - . S @VMAP@("ACTORFROM")="ACTORORGANIZATION_"_DUZ ; FROM DUZ - ??? + . S @VMAP@("PURPOSEDESCRIPTION")="CEND PHR" ; FOR TEST PURPOSES "RTN","C0CCCD",190,0) - . S @VMAP@("ACTORFROM2")="ACTORSYSTEM_1" ; SECOND FROM IS THE SYSTEM + . S @VMAP@("ACTORTOTEXT")="Patient" ; FOR TEST PURPOSES "RTN","C0CCCD",191,0) - . S @VMAP@("ACTORTO")="ACTORPATIENT_"_DFN ; FOR TEST PURPOSES + . ; THIS IS THE USE CASE FOR THE PHR WHERE "TO" IS THE PATIENT "RTN","C0CCCD",192,0) - . S @VMAP@("PURPOSEDESCRIPTION")="CEND PHR" ; FOR TEST PURPOSES + I IHDR'="" D ; HEADER VALUES ARE PROVIDED "RTN","C0CCCD",193,0) - . S @VMAP@("ACTORTOTEXT")="Patient" ; FOR TEST PURPOSES + . D CP^C0CXPATH(IHDR,VMAP) ; COPY HEADER VARIABLES TO MAP ARRAY "RTN","C0CCCD",194,0) - . ; THIS IS THE USE CASE FOR THE PHR WHERE "TO" IS THE PATIENT + N CTMP "RTN","C0CCCD",195,0) - I IHDR'="" D ; HEADER VALUES ARE PROVIDED + D MAP^C0CXPATH(CXML,VMAP,"CTMP") "RTN","C0CCCD",196,0) - . D CP^C0CXPATH(IHDR,VMAP) ; COPY HEADER VARIABLES TO MAP ARRAY + D CP^C0CXPATH("CTMP",CXML) "RTN","C0CCCD",197,0) - N CTMP + Q "RTN","C0CCCD",198,0) - D MAP^C0CXPATH(CXML,VMAP,"CTMP") + ; "RTN","C0CCCD",199,0) - D CP^C0CXPATH("CTMP",CXML) -"RTN","C0CCCD",200,0) - Q -"RTN","C0CCCD",201,0) - ; -"RTN","C0CCCD",202,0) ACTLST(AXML,ACTRTN) ; RETURN THE ACTOR LIST FOR THE XML IN AXML +"RTN","C0CCCD",200,0) + ; AXML AND ACTRTN ARE PASSED BY NAME +"RTN","C0CCCD",201,0) + ; EACH ACTOR RECORD HAS 3 PARTS - IE IF OBJECTID=ACTORPATIENT_2 +"RTN","C0CCCD",202,0) + ; P1= OBJECTID - ACTORPATIENT_2 "RTN","C0CCCD",203,0) - ; AXML AND ACTRTN ARE PASSED BY NAME + ; P2= OBJECT TYPE - PATIENT OR PROVIDER OR SOFTWARE "RTN","C0CCCD",204,0) - ; EACH ACTOR RECORD HAS 3 PARTS - IE IF OBJECTID=ACTORPATIENT_2 + ;OR INSTITUTION "RTN","C0CCCD",205,0) - ; P1= OBJECTID - ACTORPATIENT_2 + ; OR PERSON(IN PATIENT FILE IE NOK) "RTN","C0CCCD",206,0) - ; P2= OBJECT TYPE - PATIENT OR PROVIDER OR SOFTWARE + ; P3= IEN RECORD NUMBER FOR ACTOR - 2 "RTN","C0CCCD",207,0) - ;OR INSTITUTION + N I,J,K,L "RTN","C0CCCD",208,0) - ; OR PERSON(IN PATIENT FILE IE NOK) + K @ACTRTN ; CLEAR RETURN ARRAY "RTN","C0CCCD",209,0) - ; P3= IEN RECORD NUMBER FOR ACTOR - 2 + F I=1:1:@AXML@(0) D ; SCAN ALL LINES "RTN","C0CCCD",210,0) - N I,J,K,L + . I @AXML@(I)?.E1"".E D ; THERE IS AN ACTOR THIS LINE "RTN","C0CCCD",211,0) - K @ACTRTN ; CLEAR RETURN ARRAY + . . S J=$P($P(@AXML@(I),"",2),"",1) "RTN","C0CCCD",212,0) - F I=1:1:@AXML@(0) D ; SCAN ALL LINES + . . W "=>",J,! "RTN","C0CCCD",213,0) - . I @AXML@(I)?.E1"".E D ; THERE IS AN ACTOR THIS LINE + . . I J'="" S K(J)="" ; HASHING ACTOR "RTN","C0CCCD",214,0) - . . S J=$P($P(@AXML@(I),"",2),"",1) + . . ; TO GET RID OF DUPLICATES "RTN","C0CCCD",215,0) - . . W "=>",J,! + S I="" ; GOING TO $O THROUGH THE HASH "RTN","C0CCCD",216,0) - . . I J'="" S K(J)="" ; HASHING ACTOR + F J=0:0 D Q:$O(K(I))="" ; "RTN","C0CCCD",217,0) - . . ; TO GET RID OF DUPLICATES + . S I=$O(K(I)) ; WALK THROUGH THE HASH OF ACTORS "RTN","C0CCCD",218,0) - S I="" ; GOING TO $O THROUGH THE HASH + . S $P(L,U,1)=I ; FIRST PIECE IS THE OBJECT ID "RTN","C0CCCD",219,0) - F J=0:0 D Q:$O(K(I))="" ; + . S $P(L,U,2)=$P($P(I,"ACTOR",2),"_",1) ; ACTOR TYPE "RTN","C0CCCD",220,0) - . S I=$O(K(I)) ; WALK THROUGH THE HASH OF ACTORS + . S $P(L,U,3)=$P(I,"_",2) ; IEN RECORD NUMBER FOR ACTOR "RTN","C0CCCD",221,0) - . S $P(L,U,1)=I ; FIRST PIECE IS THE OBJECT ID + . D PUSH^C0CXPATH(ACTRTN,L) ; ADD THE ACTOR TO THE RETURN ARRAY "RTN","C0CCCD",222,0) - . S $P(L,U,2)=$P($P(I,"ACTOR",2),"_",1) ; ACTOR TYPE + Q "RTN","C0CCCD",223,0) - . S $P(L,U,3)=$P(I,"_",2) ; IEN RECORD NUMBER FOR ACTOR + ; "RTN","C0CCCD",224,0) - . D PUSH^C0CXPATH(ACTRTN,L) ; ADD THE ACTOR TO THE RETURN ARRAY -"RTN","C0CCCD",225,0) - Q -"RTN","C0CCCD",226,0) - ; -"RTN","C0CCCD",227,0) TEST ; RUN ALL THE TEST CASES +"RTN","C0CCCD",225,0) + D TESTALL^C0CUNIT("C0CCCR") +"RTN","C0CCCD",226,0) + Q +"RTN","C0CCCD",227,0) + ; "RTN","C0CCCD",228,0) - D TESTALL^C0CUNIT("C0CCCR") -"RTN","C0CCCD",229,0) - Q -"RTN","C0CCCD",230,0) - ; -"RTN","C0CCCD",231,0) ZTEST(WHICH) ; RUN ONE SET OF TESTS +"RTN","C0CCCD",229,0) + N ZTMP +"RTN","C0CCCD",230,0) + D ZLOAD^C0CUNIT("ZTMP","C0CCCR") +"RTN","C0CCCD",231,0) + D ZTEST^C0CUNIT(.ZTMP,WHICH) "RTN","C0CCCD",232,0) - N ZTMP + Q "RTN","C0CCCD",233,0) - D ZLOAD^C0CUNIT("ZTMP","C0CCCR") + ; "RTN","C0CCCD",234,0) - D ZTEST^C0CUNIT(.ZTMP,WHICH) -"RTN","C0CCCD",235,0) - Q -"RTN","C0CCCD",236,0) - ; -"RTN","C0CCCD",237,0) TLIST ; LIST THE TESTS +"RTN","C0CCCD",235,0) + N ZTMP +"RTN","C0CCCD",236,0) + D ZLOAD^C0CUNIT("ZTMP","C0CCCR") +"RTN","C0CCCD",237,0) + D TLIST^C0CUNIT(.ZTMP) "RTN","C0CCCD",238,0) - N ZTMP + Q "RTN","C0CCCD",239,0) - D ZLOAD^C0CUNIT("ZTMP","C0CCCR") + ; "RTN","C0CCCD",240,0) - D TLIST^C0CUNIT(.ZTMP) -"RTN","C0CCCD",241,0) - Q -"RTN","C0CCCD",242,0) - ; -"RTN","C0CCCD",243,0) ;;> -"RTN","C0CCCD",244,0) +"RTN","C0CCCD",241,0) ;;> -"RTN","C0CCCD",245,0) +"RTN","C0CCCD",242,0) ;;>>>K C0C S C0C="" -"RTN","C0CCCD",246,0) +"RTN","C0CCCD",243,0) ;;>>>D CCRRPC^C0CCCR(.C0C,"2","PROBLEMS","","","") -"RTN","C0CCCD",247,0) +"RTN","C0CCCD",244,0) ;;>>?@C0C@(@C0C@(0))["" -"RTN","C0CCCD",248,0) +"RTN","C0CCCD",245,0) ;;> -"RTN","C0CCCD",249,0) +"RTN","C0CCCD",246,0) ;;>>>K C0C S C0C="" -"RTN","C0CCCD",250,0) +"RTN","C0CCCD",247,0) ;;>>>D CCRRPC^C0CCCR(.C0C,"2","VITALS","","","") -"RTN","C0CCCD",251,0) +"RTN","C0CCCD",248,0) ;;>>?@C0C@(@C0C@(0))["" -"RTN","C0CCCD",252,0) +"RTN","C0CCCD",249,0) ;;> +"RTN","C0CCCD",250,0) + ;;>>>K C0C S C0C="" +"RTN","C0CCCD",251,0) + ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCR","","","") +"RTN","C0CCCD",252,0) + ;;>>?@C0C@(@C0C@(0))["" "RTN","C0CCCD",253,0) - ;;>>>K C0C S C0C="" -"RTN","C0CCCD",254,0) - ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCR","","","") -"RTN","C0CCCD",255,0) - ;;>>?@C0C@(@C0C@(0))["" -"RTN","C0CCCD",256,0) ;;> -"RTN","C0CCCD",257,0) +"RTN","C0CCCD",254,0) ;;>>>K C0C S C0C="" -"RTN","C0CCCD",258,0) +"RTN","C0CCCD",255,0) ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCR","","","") -"RTN","C0CCCD",259,0) +"RTN","C0CCCD",256,0) ;;>>>D ACTLST^C0CCCR(C0C,"ACTTEST") -"RTN","C0CCCD",260,0) +"RTN","C0CCCD",257,0) ;;> -"RTN","C0CCCD",261,0) +"RTN","C0CCCD",258,0) ;;>>>D ZTEST^C0CCCR("ACTLST") -"RTN","C0CCCD",262,0) +"RTN","C0CCCD",259,0) ;;>>>D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","G2") -"RTN","C0CCCD",263,0) +"RTN","C0CCCD",260,0) ;;>>>D EXTRACT^C0CACTOR("G2","ACTTEST","G3") -"RTN","C0CCCD",264,0) +"RTN","C0CCCD",261,0) ;;>>?G3(G3(0))["" -"RTN","C0CCCD",265,0) +"RTN","C0CCCD",262,0) ;;> -"RTN","C0CCCD",266,0) +"RTN","C0CCCD",263,0) ;;>>>D ZTEST^C0CCCR("CCR") -"RTN","C0CCCD",267,0) +"RTN","C0CCCD",264,0) ;;>>>W $$TRIM^C0CXPATH(CCDGLO) -"RTN","C0CCCD",268,0) +"RTN","C0CCCD",265,0) ;;> -"RTN","C0CCCD",269,0) +"RTN","C0CCCD",266,0) ;;>>>K C0C S C0C="" -"RTN","C0CCCD",270,0) +"RTN","C0CCCD",267,0) ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCD","","","") -"RTN","C0CCCD",271,0) +"RTN","C0CCCD",268,0) ;;>>?@C0C@(@C0C@(0))["" -"RTN","C0CCCD",272,0) +"RTN","C0CCCD",269,0) ;;> "RTN","C0CCCD1") -0^44^B100634737 +0^44^B96013153 "RTN","C0CCCD1",1,0) C0CCCD1 ; CCDCCR/GPL - CCD TEMPLATE AND ACCESS ROUTINES; 6/7/08 "RTN","C0CCCD1",2,0) - ;;1.2;C0C;;May 11, 2012;Build 50 + ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 "RTN","C0CCCD1",3,0) ;Copyright 2008,2009 George Lilly, University of Minnesota. "RTN","C0CCCD1",4,0) - ;Licensed under the terms of the GNU General Public License. + ; "RTN","C0CCCD1",5,0) - ;See attached copy of the License. + ; This program is free software: you can redistribute it and/or modify "RTN","C0CCCD1",6,0) - ; + ; it under the terms of the GNU Affero General Public License as "RTN","C0CCCD1",7,0) - ;This program is free software; you can redistribute it and/or modify + ; published by the Free Software Foundation, either version 3 of the "RTN","C0CCCD1",8,0) - ;it under the terms of the GNU General Public License as published by + ; License, or (at your option) any later version. "RTN","C0CCCD1",9,0) - ;the Free Software Foundation; either version 2 of the License, or + ; "RTN","C0CCCD1",10,0) - ;(at your option) any later version. + ; This program is distributed in the hope that it will be useful, "RTN","C0CCCD1",11,0) - ; + ; but WITHOUT ANY WARRANTY; without even the implied warranty of "RTN","C0CCCD1",12,0) - ;This program is distributed in the hope that it will be useful, + ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "RTN","C0CCCD1",13,0) - ;but WITHOUT ANY WARRANTY; without even the implied warranty of + ; GNU Affero General Public License for more details. "RTN","C0CCCD1",14,0) - ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ; "RTN","C0CCCD1",15,0) - ;GNU General Public License for more details. + ; You should have received a copy of the GNU Affero General Public License "RTN","C0CCCD1",16,0) - ; + ; along with this program. If not, see . "RTN","C0CCCD1",17,0) - ;You should have received a copy of the GNU General Public License along + ; "RTN","C0CCCD1",18,0) - ;with this program; if not, write to the Free Software Foundation, Inc., + ; "RTN","C0CCCD1",19,0) - ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + W "This is a CCD TEMPLATE with processing routines",! "RTN","C0CCCD1",20,0) - ; + W ! "RTN","C0CCCD1",21,0) - W "This is a CCD TEMPLATE with processing routines",! -"RTN","C0CCCD1",22,0) - W ! -"RTN","C0CCCD1",23,0) - Q -"RTN","C0CCCD1",24,0) - ; -"RTN","C0CCCD1",25,0) -ZT(ZARY,BAT,LINE) ; private routine to add a line to the ZARY array -"RTN","C0CCCD1",26,0) - ; ZARY IS PASSED BY NAME -"RTN","C0CCCD1",27,0) - ; BAT is a string identifying the section -"RTN","C0CCCD1",28,0) - ; LINE is a test which will evaluate to true or false -"RTN","C0CCCD1",29,0) - ; I '$G(@ZARY) D ; IF ZARY DOES NOT EXIST ' -"RTN","C0CCCD1",30,0) - ; . S @ZARY@(0)=0 ; initially there are no elements -"RTN","C0CCCD1",31,0) - ; . W "GOT HERE LOADING "_LINE,! -"RTN","C0CCCD1",32,0) - N CNT ; count of array elements -"RTN","C0CCCD1",33,0) - S CNT=@ZARY@(0) ; contains array count -"RTN","C0CCCD1",34,0) - S CNT=CNT+1 ; increment count -"RTN","C0CCCD1",35,0) - S @ZARY@(CNT)=LINE ; put the line in the array -"RTN","C0CCCD1",36,0) - ; S @ZARY@(BAT,CNT)="" ; index the test by battery -"RTN","C0CCCD1",37,0) - S @ZARY@(0)=CNT ; update the array counter -"RTN","C0CCCD1",38,0) - Q -"RTN","C0CCCD1",39,0) - ; -"RTN","C0CCCD1",40,0) -ZLOAD(ZARY,ROUTINE) ; load tests into ZARY which is passed by reference -"RTN","C0CCCD1",41,0) - ; ZARY IS PASSED BY NAME -"RTN","C0CCCD1",42,0) - ; ZARY = name of the root, closed array format (e.g., "^TMP($J)") -"RTN","C0CCCD1",43,0) - ; ROUTINE = NAME OF THE ROUTINE - PASSED BY VALUE -"RTN","C0CCCD1",44,0) - K @ZARY S @ZARY="" -"RTN","C0CCCD1",45,0) - S @ZARY@(0)=0 ; initialize array count -"RTN","C0CCCD1",46,0) - N LINE,LABEL,BODY -"RTN","C0CCCD1",47,0) - N INTEST S INTEST=0 ; switch for in the TEMPLATE section -"RTN","C0CCCD1",48,0) - N SECTION S SECTION="[anonymous]" ; NO section LABEL -"RTN","C0CCCD1",49,0) - ; -"RTN","C0CCCD1",50,0) - N NUM F NUM=1:1 S LINE=$T(+NUM^@ROUTINE) Q:LINE="" D -"RTN","C0CCCD1",51,0) - . I LINE?." "1";".E S INTEST=0 ; leaving section -"RTN","C0CCCD1",53,0) - . I INTEST D ; within the section -"RTN","C0CCCD1",54,0) - . . I LINE?." "1";><".E D ; sub-section name found -"RTN","C0CCCD1",55,0) - . . . S SECTION=$P($P(LINE,";><",2),">",1) ; pull out name -"RTN","C0CCCD1",56,0) - . . I LINE?." "1";;".E D ; line found -"RTN","C0CCCD1",57,0) - . . . D ZT(ZARY,SECTION,$P(LINE,";;",2)) ; put the line in the array -"RTN","C0CCCD1",58,0) - Q -"RTN","C0CCCD1",59,0) - ; -"RTN","C0CCCD1",60,0) -LOAD(ARY) ; LOAD A CCR TEMPLATE INTO ARY PASSED BY NAME -"RTN","C0CCCD1",61,0) - D ZLOAD(ARY,"C0CCCD1") -"RTN","C0CCCD1",62,0) - ; ZWR @ARY -"RTN","C0CCCD1",63,0) - Q -"RTN","C0CCCD1",64,0) - ; -"RTN","C0CCCD1",65,0) -TRMCCD ; ROUTINE TO BE WRITTEN TO REMOVE CCR MARKUP FROM CCD -"RTN","C0CCCD1",66,0) - Q -"RTN","C0CCCD1",67,0) -MARKUP ; -"RTN","C0CCCD1",68,0) - ;; -"RTN","C0CCCD1",69,0) - ;; -"RTN","C0CCCD1",70,0) - ;; -"RTN","C0CCCD1",71,0) - ;; -"RTN","C0CCCD1",72,0) - ;; -"RTN","C0CCCD1",73,0) - ;; -"RTN","C0CCCD1",74,0) - ;; -"RTN","C0CCCD1",75,0) - ;; -"RTN","C0CCCD1",76,0) - ;; -"RTN","C0CCCD1",77,0) - ;; -"RTN","C0CCCD1",78,0) - ;; -"RTN","C0CCCD1",79,0) - ;; -"RTN","C0CCCD1",80,0) - ;; -"RTN","C0CCCD1",81,0) - ;; -"RTN","C0CCCD1",82,0) - ;; -"RTN","C0CCCD1",83,0) - ;; -"RTN","C0CCCD1",84,0) - ;; -"RTN","C0CCCD1",85,0) - ; -"RTN","C0CCCD1",86,0) - ;; -"RTN","C0CCCD1",87,0) - ;; -"RTN","C0CCCD1",88,0) Q -"RTN","C0CCCD1",89,0) +"RTN","C0CCCD1",22,0) ; -"RTN","C0CCCD1",90,0) - ;