Changeset 1588
- Timestamp:
- Oct 30, 2012, 1:17:44 PM (12 years ago)
- Location:
- ccr/tags/CCD-CCR_GENERATION_UTILITIES_1P2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ccr/tags/CCD-CCR_GENERATION_UTILITIES_1P2/CCD-CCR_GENERATION_UTILITIES_1P2.KID
r1551 r1588 1 KIDS Distribution saved on Jun 25, 2012@10:01:502 C hanged name to full Package Name rather than nmsp1 KIDS Distribution saved on Oct 30, 2012@10:27:50 2 CCD/CCR Generation Package Version 1.2 3 3 **KIDS**:CCD/CCR GENERATION UTILITIES 1.2^ 4 4 5 5 **INSTALL NAME** 6 6 CCD/CCR GENERATION UTILITIES 1.2 7 "BLD",7891,0) 8 CCD/CCR GENERATION UTILITIES 1.2^CCD/CCR GENERATION UTILITIES^0^3120625^n 9 "BLD",7891,1,0) 10 ^^185^185^3120511^^^^ 11 "BLD",7891,1,1,0) 7 "BLD",7883,0) 8 CCD/CCR GENERATION UTILITIES 1.2^CCD/CCR GENERATION UTILITIES^0^3121030^n 9 "BLD",7883,1,0) 10 ^^188^188^3121029^ 11 "BLD",7883,1,1,0) 12 Licensed under AGPL v3. For complete license text, see 13 "BLD",7883,1,2,0) 14 http://www.gnu.org/licenses/agpl-3.0.html 15 "BLD",7883,1,3,0) 16 17 "BLD",7883,1,4,0) 12 18 CCR Project release v1.2 13 "BLD",78 91,1,2,0)19 "BLD",7883,1,5,0) 14 20 15 "BLD",78 91,1,3,0)21 "BLD",7883,1,6,0) 16 22 The purpose of the CCR package is to provide support for exporting and 17 "BLD",78 91,1,4,0)23 "BLD",7883,1,7,0) 18 24 eventually importing patient information from/to VistA in XML documents 19 "BLD",78 91,1,5,0)25 "BLD",7883,1,8,0) 20 26 conforming to the Continuity of Care Record (CCR - ASTM) and Continuity 21 "BLD",78 91,1,6,0)27 "BLD",7883,1,9,0) 22 28 of Care Document (CCD - HL7) standards. 23 "BLD",78 91,1,7,0)29 "BLD",7883,1,10,0) 24 30 25 "BLD",78 91,1,8,0)31 "BLD",7883,1,11,0) 26 32 This version of the CCR package provides: 27 "BLD",78 91,1,9,0)33 "BLD",7883,1,12,0) 28 34 29 "BLD",78 91,1,10,0)35 "BLD",7883,1,13,0) 30 36 EXPORT^C0CCCR 31 "BLD",78 91,1,11,0)37 "BLD",7883,1,14,0) 32 38 A command line interface to export a single patient's CCR to a host 33 "BLD",78 91,1,12,0)39 "BLD",7883,1,15,0) 34 40 directory by specifying the patient by name. 35 "BLD",78 91,1,13,0)41 "BLD",7883,1,16,0) 36 42 37 "BLD",78 91,1,14,0)43 "BLD",7883,1,17,0) 38 44 EXPORT^C0CCCD 39 "BLD",78 91,1,15,0)45 "BLD",7883,1,18,0) 40 46 A command line interface to export a single patient's CCD to a host 41 "BLD",78 91,1,16,0)47 "BLD",7883,1,19,0) 42 48 directory by specifying the patient by name. As an alternative to 43 "BLD",78 91,1,17,0)49 "BLD",7883,1,20,0) 44 50 generating the CCD directly, an XSLT transformation is available to 45 "BLD",78 91,1,18,0)51 "BLD",7883,1,21,0) 46 52 translate a CCR into a level 2 CCD. This tranformation has been tested 47 "BLD",78 91,1,19,0)53 "BLD",7883,1,22,0) 48 54 and produces a CCD with all currently supported sections of the CCR. The 49 "BLD",78 91,1,20,0)55 "BLD",7883,1,23,0) 50 56 EXPORT^C0CCCD only extracts the PROBLEMS section into a CCD. 51 "BLD",78 91,1,21,0)57 "BLD",7883,1,24,0) 52 58 53 "BLD",78 91,1,22,0)59 "BLD",7883,1,25,0) 54 60 XPAT^C0CCCR(DFN,OUTDIR,OUTFILE) 55 "BLD",78 91,1,23,0)61 "BLD",7883,1,26,0) 56 62 A command line and program interface to export a single patient's CCR 57 "BLD",78 91,1,24,0)63 "BLD",7883,1,27,0) 58 64 using the IEN of the patient in the ^DPT file (DFN). 59 "BLD",78 91,1,25,0)65 "BLD",7883,1,28,0) 60 66 OUTDIR specifies an existing directory on the Host system into which the 61 "BLD",78 91,1,26,0)67 "BLD",7883,1,29,0) 62 68 CCR XML document will be written. If OUTDIR is null (""), the output 63 "BLD",78 91,1,27,0)69 "BLD",7883,1,30,0) 64 70 directory name will be taken from ^TMP("C0CCCR","ODIR"). 65 "BLD",78 91,1,28,0)71 "BLD",7883,1,31,0) 66 72 OUFILE specifies the host file name of the CCR XML document that will be 67 "BLD",78 91,1,29,0)73 "BLD",7883,1,32,0) 68 74 written for this patient. If OUTFILE is null ("") the document name will 69 "BLD",78 91,1,30,0)75 "BLD",7883,1,33,0) 70 76 default to PAT_x_CCR_V1.xml where x is the DFN of the patient. 71 "BLD",78 91,1,31,0)77 "BLD",7883,1,34,0) 72 78 73 "BLD",78 91,1,32,0)79 "BLD",7883,1,35,0) 74 80 CCRRPC(CCRGRTN,DFN,CCRPARMS,CCRPART) 75 "BLD",78 91,1,33,0)81 "BLD",7883,1,36,0) 76 82 An RPC and program interface to return in return array CCRGRTN (passed by 77 "BLD",78 91,1,34,0)83 "BLD",7883,1,37,0) 78 84 reference) a single patient's CCR. 79 "BLD",78 91,1,35,0)85 "BLD",7883,1,38,0) 80 86 DFN is the patient's IEN 81 "BLD",78 91,1,36,0)87 "BLD",7883,1,39,0) 82 88 CCRPART is what portion of the CCR should be returned. If "CCR" is 83 "BLD",78 91,1,37,0)89 "BLD",7883,1,40,0) 84 90 specified, the entire CCR will be returned. If "PROBLEMS", "VITALS", or 85 "BLD",78 91,1,38,0)91 "BLD",7883,1,41,0) 86 92 "MEDICATIONS" is specified, only that section of the CCR will be returned. 87 "BLD",78 91,1,39,0)93 "BLD",7883,1,42,0) 88 94 CCRPARMS ARE PARAMETERS THAT AFFECT THE EXTRACTION 89 "BLD",78 91,1,40,0)95 "BLD",7883,1,43,0) 90 96 IN THE FORM "PARM1:VALUE1^PARM2:VALUE2" 91 "BLD",78 91,1,41,0)97 "BLD",7883,1,44,0) 92 98 EXAMPLE: "LABLIMIT:T-60" TO LIMIT LAB EXTRACTION TO THE LAST 60 DAYS 93 "BLD",78 91,1,42,0)99 "BLD",7883,1,45,0) 94 100 SEE C0CPARMS FOR A COMPLETE LIST OF SUPPORTED PARAMETERS 95 "BLD",78 91,1,43,0)101 "BLD",7883,1,46,0) 96 102 97 "BLD",78 91,1,44,0)103 "BLD",7883,1,47,0) 98 104 ANALYZE^C0CRIMA(BGNDFN,DFNCNT,CCRPARMS) 99 "BLD",78 91,1,45,0)105 "BLD",7883,1,48,0) 100 106 A command line and program interface to analyze the data from multiple 101 "BLD",78 91,1,46,0)107 "BLD",7883,1,49,0) 102 108 patients into categories that can be batch extracted. 103 "BLD",78 91,1,47,0)109 "BLD",7883,1,50,0) 104 110 BGNDFN is the beginning DFN to be analyzed. If BGNDFN is null ("") its 105 "BLD",78 91,1,48,0)111 "BLD",7883,1,51,0) 106 112 value will be taken from ^TMP("C0CRIM","RESUME"). If this variable does 107 "BLD",78 91,1,49,0)113 "BLD",7883,1,52,0) 108 114 not exist, the routine will start with the first IEN in the patient file 109 "BLD",78 91,1,50,0)115 "BLD",7883,1,53,0) 110 116 ^DPT. ^TMP("C0CRIM","RESUME") is updated to the "next" patient to be 111 "BLD",78 91,1,51,0)117 "BLD",7883,1,54,0) 112 118 analyzed on successful completion. 113 "BLD",78 91,1,52,0)119 "BLD",7883,1,55,0) 114 120 DFNCNT is the count of how many patient records will be analyzed in this 115 "BLD",78 91,1,53,0)121 "BLD",7883,1,56,0) 116 122 execution. 117 "BLD",78 91,1,54,0)123 "BLD",7883,1,57,0) 118 124 For example ANALYZE^C0CRIMA(1000,1000) would start at patient DFN 1000 119 "BLD",78 91,1,55,0)125 "BLD",7883,1,58,0) 120 126 and analyzes 1000 patient records. ANALYZE^C0CRIMA("",1000) would then 121 "BLD",78 91,1,56,0)127 "BLD",7883,1,59,0) 122 128 analyze the next 1000 patients. When the end of the patient file is 123 "BLD",78 91,1,57,0)129 "BLD",7883,1,60,0) 124 130 reached, the routine terminates with a message that RESET^C0CRIMA would 125 "BLD",78 91,1,58,0)131 "BLD",7883,1,61,0) 126 132 need to be called to restart the analysis. 127 "BLD",78 91,1,59,0)133 "BLD",7883,1,62,0) 128 134 129 "BLD",78 91,1,60,0)135 "BLD",7883,1,63,0) 130 136 The categories into which the records are analyzed consist of attribute 131 "BLD",78 91,1,61,0)137 "BLD",7883,1,64,0) 132 138 strings. The attributes represent characteristics of the variables that 133 "BLD",78 91,1,62,0)139 "BLD",7883,1,65,0) 134 140 can be extracted for a given patient into the CCR or the CCD. This 135 "BLD",78 91,1,63,0)141 "BLD",7883,1,66,0) 136 142 version supports the following attributes: 137 "BLD",78 91,1,64,0)143 "BLD",7883,1,67,0) 138 144 VITALS : the patient has variables for the VITALS section of the CCR/CCD 139 "BLD",78 91,1,65,0)145 "BLD",7883,1,68,0) 140 146 PROBLEMS : the patient has variables for the PROBLEMS section of the 141 "BLD",78 91,1,66,0)147 "BLD",7883,1,69,0) 142 148 CCR/CCD 143 "BLD",78 91,1,67,0)149 "BLD",7883,1,70,0) 144 150 MEDS : the patient has variables for the MEDICATIONS section of the 145 "BLD",78 91,1,68,0)151 "BLD",7883,1,71,0) 146 152 CCR/CCD 147 "BLD",78 91,1,69,0)153 "BLD",7883,1,72,0) 148 154 HEADER : the patient has variables for the HEADER section of the CCR/CCD. 149 "BLD",78 91,1,70,0)155 "BLD",7883,1,73,0) 150 156 All patients are marked with the HEADER attribute in this version. 151 "BLD",78 91,1,71,0)157 "BLD",7883,1,74,0) 152 158 NOTEXTRACTED : the CCR or CCD has not yet been produced/extracted for 153 "BLD",78 91,1,72,0)159 "BLD",7883,1,75,0) 154 160 this patient. All patient records are marked with the NOTEXTRACTED 155 "BLD",78 91,1,73,0)161 "BLD",7883,1,76,0) 156 162 attribute in this version for batch control processing (not implemented 157 "BLD",78 91,1,74,0)163 "BLD",7883,1,77,0) 158 164 in this version). 159 "BLD",78 91,1,75,0)165 "BLD",7883,1,78,0) 160 166 161 "BLD",78 91,1,76,0)167 "BLD",7883,1,79,0) 162 168 ANAZYZE^C0CRIMA calls the variable extraction routines that would be used 163 "BLD",78 91,1,77,0)169 "BLD",7883,1,80,0) 164 170 to produce a CCR or a CCD and saves the results to ^TMP("C0CRIM",DFN) for 165 "BLD",78 91,1,78,0)171 "BLD",7883,1,81,0) 166 172 each patient. In addition, the attribute string for each patient is saved 167 "BLD",78 91,1,79,0)173 "BLD",7883,1,82,0) 168 174 in ^TMP("C0CRIM","ATTR") 169 "BLD",78 91,1,80,0)175 "BLD",7883,1,83,0) 170 176 171 "BLD",78 91,1,81,0)177 "BLD",7883,1,84,0) 172 178 Categories are created as they first occur based on each unique 173 "BLD",78 91,1,82,0)179 "BLD",7883,1,85,0) 174 180 combination of attributes that is encountered. They are named after the 175 "BLD",78 91,1,83,0)181 "BLD",7883,1,86,0) 176 182 attribute table that is used for the analysis. This version supports only 177 "BLD",78 91,1,84,0)183 "BLD",7883,1,87,0) 178 184 the attribute table .RIMTBL. and the categories are named "RIMTBL_x". An 179 "BLD",78 91,1,85,0)185 "BLD",7883,1,88,0) 180 186 example set of categories from a demo systems is: 181 "BLD",78 91,1,86,0)187 "BLD",7883,1,89,0) 182 188 183 "BLD",78 91,1,87,0)189 "BLD",7883,1,90,0) 184 190 GTM>D CLIST^C0CRIMA 185 "BLD",78 91,1,88,0)191 "BLD",7883,1,91,0) 186 192 (RIMTBL_1:105) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS^^^^^MEDS 187 "BLD",78 91,1,89,0)193 "BLD",7883,1,92,0) 188 194 (RIMTBL_2:596) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS 189 "BLD",78 91,1,90,0)195 "BLD",7883,1,93,0) 190 196 (RIMTBL_3:44) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS 191 "BLD",78 91,1,91,0)197 "BLD",7883,1,94,0) 192 198 (RIMTBL_4:821) ^NOTEXTRACTED^HEADER 193 "BLD",78 91,1,92,0)199 "BLD",7883,1,95,0) 194 200 (RIMTBL_5:18) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS^^^^^MEDS 195 "BLD",78 91,1,93,0)201 "BLD",7883,1,96,0) 196 202 (RIMTBL_6:14) ^NOTEXTRACTED^HEADER^^^PROBLEMS 197 "BLD",78 91,1,94,0)203 "BLD",7883,1,97,0) 198 204 (RIMTBL_7:15) ^NOTEXTRACTED^HEADER^^^^^^^^^^^^^MEDS 199 "BLD",78 91,1,95,0)205 "BLD",7883,1,98,0) 200 206 (RIMTBL_8:5) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^^^^^^MEDS 201 "BLD",78 91,1,96,0)207 "BLD",7883,1,99,0) 202 208 203 "BLD",78 91,1,97,0)209 "BLD",7883,1,100,0) 204 210 for RIMTBL_1 in this example, 105 is the record count of patients who 205 "BLD",78 91,1,98,0)211 "BLD",7883,1,101,0) 206 212 have this combination of attributes. The list of patients for each 207 "BLD",78 91,1,99,0)213 "BLD",7883,1,102,0) 208 214 category is also maintained for batch extraction. 209 "BLD",78 91,1,100,0)215 "BLD",7883,1,103,0) 210 216 211 "BLD",78 91,1,101,0)217 "BLD",7883,1,104,0) 212 218 CLIST^C0CRIMA 213 "BLD",78 91,1,102,0)219 "BLD",7883,1,105,0) 214 220 A command line interface to show a summary of the categories, record 215 "BLD",78 91,1,103,0)221 "BLD",7883,1,106,0) 216 222 counts, and attributes that have been analyzed so far. It produces the 217 "BLD",78 91,1,104,0)223 "BLD",7883,1,107,0) 218 224 listing in the example above from information stored in 219 "BLD",78 91,1,105,0)225 "BLD",7883,1,108,0) 220 226 ^TMP("C0CRIM","CATS","RIMTBL"). It is intended for future versions that 221 "BLD",78 91,1,106,0)227 "BLD",7883,1,109,0) 222 228 attribute tables be supported in addition to the default "RIMTBL". 223 "BLD",78 91,1,107,0)229 "BLD",7883,1,110,0) 224 230 225 "BLD",78 91,1,108,0)231 "BLD",7883,1,111,0) 226 232 CPAT^C0CRIMA(CPATCAT) 227 "BLD",78 91,1,109,0)233 "BLD",7883,1,112,0) 228 234 A command line interface which shows the DFN numbers of the patients 229 "BLD",78 91,1,110,0)235 "BLD",7883,1,113,0) 230 236 represented by the category CPATCAT. DFNs are listed 10 per line. For 231 "BLD",78 91,1,111,0)237 "BLD",7883,1,114,0) 232 238 example: 233 "BLD",78 91,1,112,0)239 "BLD",7883,1,115,0) 234 240 235 "BLD",78 91,1,113,0)241 "BLD",7883,1,116,0) 236 242 GTM>D CPAT^C0CRIMA("RIMTBL_1") 237 "BLD",78 91,1,114,0)243 "BLD",7883,1,117,0) 238 244 1 3 8 25 42 69 123 140 146 149 239 "BLD",78 91,1,115,0)245 "BLD",7883,1,118,0) 240 246 151 168 204 205 217 218 224 228 229 231 241 "BLD",78 91,1,116,0)247 "BLD",7883,1,119,0) 242 248 236 237 240 253 260 267 271 301 347 350 243 "BLD",78 91,1,117,0)249 "BLD",7883,1,120,0) 244 250 366 379 384 391 407 418 419 420 428 433 245 "BLD",78 91,1,118,0)251 "BLD",7883,1,121,0) 246 252 442 520 569 600 620 692 706 715 722 723 247 "BLD",78 91,1,119,0)253 "BLD",7883,1,122,0) 248 254 724 728 730 744 745 746 747 748 749 750 249 "BLD",78 91,1,120,0)255 "BLD",7883,1,123,0) 250 256 751 752 753 754 755 756 757 758 759 760 251 "BLD",78 91,1,121,0)257 "BLD",7883,1,124,0) 252 258 761 762 763 764 765 766 767 768 769 770 253 "BLD",78 91,1,122,0)259 "BLD",7883,1,125,0) 254 260 771 772 773 774 775 776 777 778 779 780 255 "BLD",78 91,1,123,0)261 "BLD",7883,1,126,0) 256 262 100000 100001 100002 100003 100004 100005 100006 100007 100008 100009 257 "BLD",78 91,1,124,0)263 "BLD",7883,1,127,0) 258 264 100010 100011 100012 100013 100014 259 "BLD",78 91,1,125,0)265 "BLD",7883,1,128,0) 260 266 261 "BLD",78 91,1,126,0)267 "BLD",7883,1,129,0) 262 268 These are the 105 patient records included in category "RIMTBL_1" from 263 "BLD",78 91,1,127,0)269 "BLD",7883,1,130,0) 264 270 the above example. 265 "BLD",78 91,1,128,0)271 "BLD",7883,1,131,0) 266 272 267 "BLD",78 91,1,129,0)273 "BLD",7883,1,132,0) 268 274 DPATV^C0CRIMA(DFN,"SECTION") 269 "BLD",78 91,1,130,0)275 "BLD",7883,1,133,0) 270 276 A command line interface to display the values of variables for a 271 "BLD",78 91,1,131,0)277 "BLD",7883,1,134,0) 272 278 patient. "SECTION" can be any of the CCR sections. ie 273 "BLD",78 91,1,132,0)279 "BLD",7883,1,135,0) 274 280 "ALERTS","RESULTS","MEDS". If SECTION is ommitted, all sections will be 275 "BLD",78 91,1,133,0)281 "BLD",7883,1,136,0) 276 282 shown. An example: 277 "BLD",78 91,1,134,0)283 "BLD",7883,1,137,0) 278 284 279 "BLD",78 91,1,135,0)285 "BLD",7883,1,138,0) 280 286 GTM>D DPATV^C0CRIMA(2,"PROBLEMS") 281 "BLD",78 91,1,136,0)287 "BLD",7883,1,139,0) 282 288 1 1^PROBLEMCODEVALUE^V18.0 283 "BLD",78 91,1,137,0)289 "BLD",7883,1,140,0) 284 290 2 1^PROBLEMCODINGVERSION^ 285 "BLD",78 91,1,138,0)291 "BLD",7883,1,141,0) 286 292 3 1^PROBLEMCONDITION^P 287 "BLD",78 91,1,139,0)293 "BLD",7883,1,142,0) 288 294 4 1^PROBLEMDATEMOD^2005-07-19T00:00:00-05:00 289 "BLD",78 91,1,140,0)295 "BLD",7883,1,143,0) 290 296 5 1^PROBLEMDATEOFONSET^1700--T00:00:00-05:00 291 "BLD",78 91,1,141,0)297 "BLD",7883,1,144,0) 292 298 6 1^PROBLEMDESCRIPTION^Family History of Diabetes Mellitus (ICD-9-CM 293 "BLD",78 91,1,142,0)299 "BLD",7883,1,145,0) 294 300 V18.0) 295 "BLD",78 91,1,143,0)301 "BLD",7883,1,146,0) 296 302 7 1^PROBLEMDTREC^1701--T00:00:00-05:00 297 "BLD",78 91,1,144,0)303 "BLD",7883,1,147,0) 298 304 8 1^PROBLEMHASCMT^ 299 "BLD",78 91,1,145,0)305 "BLD",7883,1,148,0) 300 306 9 1^PROBLEMIEN^8 301 "BLD",78 91,1,146,0)307 "BLD",7883,1,149,0) 302 308 10 1^PROBLEMINACT^1700--T00:00:00-05:00 303 "BLD",78 91,1,147,0)309 "BLD",7883,1,150,0) 304 310 305 "BLD",78 91,1,148,0)311 "BLD",7883,1,151,0) 306 312 DCCR^C0CCCR(DFN) 307 "BLD",78 91,1,149,0)313 "BLD",7883,1,152,0) 308 314 This will display the XML of a CCR that has been generated for a patient. 309 "BLD",78 91,1,150,0)315 "BLD",7883,1,153,0) 310 316 It is run after generating the CCR with XPAT^C0CCCR or XCPAT^C0CRIMA. 311 "BLD",78 91,1,151,0)317 "BLD",7883,1,154,0) 312 318 313 "BLD",78 91,1,152,0)319 "BLD",7883,1,155,0) 314 320 XCPAT^C0CRIMA(CPATCAT) 315 "BLD",78 91,1,153,0)321 "BLD",7883,1,156,0) 316 322 A command line interface to extract a batch of patient CCR documents that 317 "BLD",78 91,1,154,0)323 "BLD",7883,1,157,0) 318 324 are associated with the category CPATCAT. For example, 319 "BLD",78 91,1,155,0)325 "BLD",7883,1,158,0) 320 326 321 "BLD",78 91,1,156,0)327 "BLD",7883,1,159,0) 322 328 XCPAT^C0CRIMA("RIMTBL_1") to extract the CCR documents for the 105 323 "BLD",78 91,1,157,0)329 "BLD",7883,1,160,0) 324 330 patients in the above example. 325 "BLD",78 91,1,158,0)331 "BLD",7883,1,161,0) 326 332 327 "BLD",78 91,1,159,0)333 "BLD",7883,1,162,0) 328 334 RESET^C0CRIMA 329 "BLD",78 91,1,160,0)335 "BLD",7883,1,163,0) 330 336 A command line interface to kill all ANALYZE^C0CRIMA results stored so 331 "BLD",78 91,1,161,0)337 "BLD",7883,1,164,0) 332 338 far so that the analysis can be done again. It kills 333 "BLD",78 91,1,162,0)339 "BLD",7883,1,165,0) 334 340 ^TMP("C0CRIM","RESUME") and all extraction variables that have been saved 335 "BLD",78 91,1,163,0)341 "BLD",7883,1,166,0) 336 342 in ^TMP("C0CRIM") 337 "BLD",78 91,1,164,0)343 "BLD",7883,1,167,0) 338 344 339 "BLD",78 91,1,165,0)345 "BLD",7883,1,168,0) 340 346 NOTES: 341 "BLD",78 91,1,166,0)347 "BLD",7883,1,169,0) 342 348 This version of the package is a prototype, and does not yet make use of 343 "BLD",78 91,1,167,0)349 "BLD",7883,1,170,0) 344 350 the standard VistA features that are appropriate for it to use. 345 "BLD",78 91,1,168,0)351 "BLD",7883,1,171,0) 346 352 347 "BLD",78 91,1,169,0)353 "BLD",7883,1,172,0) 348 354 ^TMP("C0CCCR","ODIR") must be set manually to the output directory on the 349 "BLD",78 91,1,170,0)355 "BLD",7883,1,173,0) 350 356 Host System. It is intended that this be maintainable in a parameter file. 351 "BLD",78 91,1,171,0)357 "BLD",7883,1,174,0) 352 358 353 "BLD",78 91,1,172,0)359 "BLD",7883,1,175,0) 354 360 CCRRPC^C0CCCR and CCDRPC^C0CCCD are intended to be RPC interfaces to the 355 "BLD",78 91,1,173,0)361 "BLD",7883,1,176,0) 356 362 package but there is no entry for them in the RPC table and the RPC 357 "BLD",78 91,1,174,0)363 "BLD",7883,1,177,0) 358 364 method of access has not been tested. 359 "BLD",78 91,1,175,0)365 "BLD",7883,1,178,0) 360 366 361 "BLD",78 91,1,176,0)367 "BLD",7883,1,179,0) 362 368 Most of the command line interface functions in the package are intended 363 "BLD",78 91,1,177,0)369 "BLD",7883,1,180,0) 364 370 to also be made available as RPC calls. This will provide the ability to 365 "BLD",78 91,1,178,0)371 "BLD",7883,1,181,0) 366 372 invoke and control batch extraction and analysis via RPCs 367 "BLD",78 91,1,179,0)373 "BLD",7883,1,182,0) 368 374 369 "BLD",78 91,1,180,0)375 "BLD",7883,1,183,0) 370 376 The "RIM" variables and attributes that are now being stored in 371 "BLD",78 91,1,181,0)377 "BLD",7883,1,184,0) 372 378 ^TMP("C0CRIM") are intended to be maintained in a standard FILEMAN 373 "BLD",78 91,1,182,0)379 "BLD",7883,1,185,0) 374 380 global, and to take advantage of FILEMAN indexing for efficient batch 375 "BLD",78 91,1,183,0)381 "BLD",7883,1,186,0) 376 382 analysis and processing. 377 "BLD",78 91,1,184,0)383 "BLD",7883,1,187,0) 378 384 379 "BLD",78 91,1,185,0)385 "BLD",7883,1,188,0) 380 386 It is intended that menu interfaces be provided in addition to command 381 "BLD",78 91,4,0)387 "BLD",7883,4,0) 382 388 ^9.64PA^170.9^12 383 "BLD",78 91,4,170,0)389 "BLD",7883,4,170,0) 384 390 170 385 "BLD",78 91,4,170,222)391 "BLD",7883,4,170,222) 386 392 y^y^f^^n^^y^o^n 387 "BLD",78 91,4,170.101,0)393 "BLD",7883,4,170.101,0) 388 394 170.101 389 "BLD",78 91,4,170.101,222)395 "BLD",7883,4,170.101,222) 390 396 y^y^f^^n^^y^o^n 391 "BLD",78 91,4,170.9,0)397 "BLD",7883,4,170.9,0) 392 398 170.9 393 "BLD",78 91,4,170.9,222)399 "BLD",7883,4,170.9,222) 394 400 y^y^f^^n^^y^o^n 395 "BLD",78 91,4,171.101,0)401 "BLD",7883,4,171.101,0) 396 402 171.101 397 "BLD",78 91,4,171.101,222)403 "BLD",7883,4,171.101,222) 398 404 y^y^f^^^^n 399 "BLD",78 91,4,171.401,0)405 "BLD",7883,4,171.401,0) 400 406 171.401 401 "BLD",78 91,4,171.401,222)407 "BLD",7883,4,171.401,222) 402 408 y^y^f^^^^n 403 "BLD",78 91,4,175,0)409 "BLD",7883,4,175,0) 404 410 175 405 "BLD",78 91,4,175,222)411 "BLD",7883,4,175,222) 406 412 y^y^f^^^^n 407 "BLD",78 91,4,176.112,0)413 "BLD",7883,4,176.112,0) 408 414 176.112 409 "BLD",78 91,4,176.112,222)415 "BLD",7883,4,176.112,222) 410 416 y^y^f^^n^^y^o^n 411 "BLD",78 91,4,177.101,0)417 "BLD",7883,4,177.101,0) 412 418 177.101 413 "BLD",78 91,4,177.101,222)419 "BLD",7883,4,177.101,222) 414 420 y^y^f^^^^n 415 "BLD",78 91,4,177.201,0)421 "BLD",7883,4,177.201,0) 416 422 177.201 417 "BLD",78 91,4,177.201,222)423 "BLD",7883,4,177.201,222) 418 424 y^y^f^^n^^y^o^n 419 "BLD",78 91,4,177.301,0)425 "BLD",7883,4,177.301,0) 420 426 177.301 421 "BLD",78 91,4,177.301,222)427 "BLD",7883,4,177.301,222) 422 428 y^y^f^^^^n 423 "BLD",78 91,4,178.101,0)429 "BLD",7883,4,178.101,0) 424 430 178.101 425 "BLD",78 91,4,178.101,222)431 "BLD",7883,4,178.101,222) 426 432 y^y^f^^n^^y^o^n 427 "BLD",78 91,4,178.301,0)433 "BLD",7883,4,178.301,0) 428 434 178.301 429 "BLD",78 91,4,178.301,222)435 "BLD",7883,4,178.301,222) 430 436 y^y^f^^n^^y^o^n 431 "BLD",78 91,4,"B",170,170)437 "BLD",7883,4,"B",170,170) 432 438 433 "BLD",78 91,4,"B",170.101,170.101)439 "BLD",7883,4,"B",170.101,170.101) 434 440 435 "BLD",78 91,4,"B",170.9,170.9)441 "BLD",7883,4,"B",170.9,170.9) 436 442 437 "BLD",78 91,4,"B",171.101,171.101)443 "BLD",7883,4,"B",171.101,171.101) 438 444 439 "BLD",78 91,4,"B",171.401,171.401)445 "BLD",7883,4,"B",171.401,171.401) 440 446 441 "BLD",78 91,4,"B",175,175)447 "BLD",7883,4,"B",175,175) 442 448 443 "BLD",78 91,4,"B",176.112,176.112)449 "BLD",7883,4,"B",176.112,176.112) 444 450 445 "BLD",78 91,4,"B",177.101,177.101)451 "BLD",7883,4,"B",177.101,177.101) 446 452 447 "BLD",78 91,4,"B",177.201,177.201)453 "BLD",7883,4,"B",177.201,177.201) 448 454 449 "BLD",78 91,4,"B",177.301,177.301)455 "BLD",7883,4,"B",177.301,177.301) 450 456 451 "BLD",78 91,4,"B",178.101,178.101)457 "BLD",7883,4,"B",178.101,178.101) 452 458 453 "BLD",78 91,4,"B",178.301,178.301)459 "BLD",7883,4,"B",178.301,178.301) 454 460 455 "BLD",78 91,6.3)456 5 0457 "BLD",78 91,"ABNS",0)461 "BLD",7883,6.3) 462 51 463 "BLD",7883,"ABNS",0) 458 464 ^9.66A^^ 459 "BLD",78 91,"ABPKG")465 "BLD",7883,"ABPKG") 460 466 n^n 461 "BLD",78 91,"INI")467 "BLD",7883,"INI") 462 468 PRE^C0CENV 463 "BLD",78 91,"INIT")469 "BLD",7883,"INIT") 464 470 POST^C0CENV 465 "BLD",78 91,"KRN",0)471 "BLD",7883,"KRN",0) 466 472 ^9.67PA^779.2^20 467 "BLD",78 91,"KRN",.4,0)473 "BLD",7883,"KRN",.4,0) 468 474 .4 469 "BLD",78 91,"KRN",.401,0)475 "BLD",7883,"KRN",.401,0) 470 476 .401 471 "BLD",78 91,"KRN",.402,0)477 "BLD",7883,"KRN",.402,0) 472 478 .402 473 "BLD",78 91,"KRN",.403,0)479 "BLD",7883,"KRN",.403,0) 474 480 .403 475 "BLD",78 91,"KRN",.5,0)481 "BLD",7883,"KRN",.5,0) 476 482 .5 477 "BLD",78 91,"KRN",.84,0)483 "BLD",7883,"KRN",.84,0) 478 484 .84 479 "BLD",78 91,"KRN",3.6,0)485 "BLD",7883,"KRN",3.6,0) 480 486 3.6 481 "BLD",78 91,"KRN",3.8,0)487 "BLD",7883,"KRN",3.8,0) 482 488 3.8 483 "BLD",78 91,"KRN",9.2,0)489 "BLD",7883,"KRN",9.2,0) 484 490 9.2 485 "BLD",78 91,"KRN",9.8,0)491 "BLD",7883,"KRN",9.8,0) 486 492 9.8 487 "BLD",78 91,"KRN",9.8,"NM",0)493 "BLD",7883,"KRN",9.8,"NM",0) 488 494 ^9.68A^110^79 489 "BLD",78 91,"KRN",9.8,"NM",22,0)490 C0CRXN^^0^B10 3277157491 "BLD",78 91,"KRN",9.8,"NM",23,0)492 C0CRNF^^0^B19 5772222493 "BLD",78 91,"KRN",9.8,"NM",24,0)494 C0CFM1^^0^B2 7048099495 "BLD",78 91,"KRN",9.8,"NM",29,0)496 C0CPARMS^^0^B 10161575497 "BLD",78 91,"KRN",9.8,"NM",31,0)498 C0CFM2^^0^B 102195978499 "BLD",78 91,"KRN",9.8,"NM",34,0)500 C0CXPATH^^0^B5 21207435501 "BLD",78 91,"KRN",9.8,"NM",35,0)502 C0CXPAT0^^0^B 50736852503 "BLD",78 91,"KRN",9.8,"NM",36,0)504 C0CVITAL^^0^B31 9933080505 "BLD",78 91,"KRN",9.8,"NM",37,0)506 C0CUNIT^^0^B 43465566507 "BLD",78 91,"KRN",9.8,"NM",38,0)508 C0CRIMA^^0^B3 31901748509 "BLD",78 91,"KRN",9.8,"NM",39,0)510 C0CPROBS^^0^B5 3281308511 "BLD",78 91,"KRN",9.8,"NM",40,0)512 C0CLABS^^0^B2 82604886513 "BLD",78 91,"KRN",9.8,"NM",41,0)514 C0CIMMU^^0^B 20441765515 "BLD",78 91,"KRN",9.8,"NM",42,0)516 C0CCCR0^^0^B7 90419172517 "BLD",78 91,"KRN",9.8,"NM",43,0)518 C0CCCR^^0^B1 11682825519 "BLD",78 91,"KRN",9.8,"NM",44,0)520 C0CCCD1^^0^B 100634737521 "BLD",78 91,"KRN",9.8,"NM",45,0)522 C0CCCD^^0^B 114134049523 "BLD",78 91,"KRN",9.8,"NM",46,0)524 C0CALERT^^0^B31 627309525 "BLD",78 91,"KRN",9.8,"NM",47,0)526 C0CACTOR^^0^B9 9733742527 "BLD",78 91,"KRN",9.8,"NM",48,0)528 C0CMED^^0^B18 939705529 "BLD",78 91,"KRN",9.8,"NM",49,0)530 C0CMED1^^0^B11 3570971531 "BLD",78 91,"KRN",9.8,"NM",50,0)532 C0CMED2^^0^B14 7041837533 "BLD",78 91,"KRN",9.8,"NM",51,0)534 C0CMED3^^0^B17 2422279535 "BLD",78 91,"KRN",9.8,"NM",52,0)536 C0CMED6^^0^B19 4349409537 "BLD",78 91,"KRN",9.8,"NM",53,0)538 C0CDPT^^0^B4 5873061539 "BLD",78 91,"KRN",9.8,"NM",54,0)540 C0CUTIL^^0^B2 7079469541 "BLD",78 91,"KRN",9.8,"NM",55,0)542 C0CVA200^^0^B3 2092477543 "BLD",78 91,"KRN",9.8,"NM",56,0)544 C0CSYS^^0^B3 933593545 "BLD",78 91,"KRN",9.8,"NM",57,0)546 C0CBAT^^0^B56 971574547 "BLD",78 91,"KRN",9.8,"NM",61,0)548 C0CSUB1^^0^B1 6280924549 "BLD",78 91,"KRN",9.8,"NM",62,0)550 C0CLA7Q^^0^B2 1818572551 "BLD",78 91,"KRN",9.8,"NM",63,0)552 C0CPROC^^0^B2 7869918553 "BLD",78 91,"KRN",9.8,"NM",64,0)554 C0CMXP^^0^B7 7680190555 "BLD",78 91,"KRN",9.8,"NM",65,0)556 C0CMXML^^0^B5 6456416557 "BLD",78 91,"KRN",9.8,"NM",66,0)558 C0CVIT2^^0^B3 20700684559 "BLD",78 91,"KRN",9.8,"NM",67,0)560 C0CIM2^^0^B 20157375561 "BLD",78 91,"KRN",9.8,"NM",68,0)562 C0CCPT^^0^B1 6531537563 "BLD",78 91,"KRN",9.8,"NM",69,0)564 C0CSOAP^^0^B79 899662565 "BLD",78 91,"KRN",9.8,"NM",70,0)566 C0CENC^^0^B4 6321144567 "BLD",78 91,"KRN",9.8,"NM",71,0)568 C0CCMT^^0^B6 740701569 "BLD",78 91,"KRN",9.8,"NM",72,0)570 C0CIN^^0^B30 946883571 "BLD",78 91,"KRN",9.8,"NM",73,0)572 C0CDIC^^0^B4 3527636573 "BLD",78 91,"KRN",9.8,"NM",74,0)574 C0CDOM^^0^B86 773980575 "BLD",78 91,"KRN",9.8,"NM",75,0)576 C0CENV^^0^B2 5371113577 "BLD",78 91,"KRN",9.8,"NM",76,0)578 C0CEVC^^0^B 18388545579 "BLD",78 91,"KRN",9.8,"NM",77,0)580 C0CEWD^^0^B5 607678581 "BLD",78 91,"KRN",9.8,"NM",78,0)582 C0CEWD1^^0^B6 563070583 "BLD",78 91,"KRN",9.8,"NM",79,0)584 C0CFM3^^0^B6 8203631585 "BLD",78 91,"KRN",9.8,"NM",80,0)586 C0CLA7DD^^0^B 66668579587 "BLD",78 91,"KRN",9.8,"NM",81,0)588 C0CMAIL^^0^B9 2791623589 "BLD",78 91,"KRN",9.8,"NM",82,0)590 C0CMAIL2^^0^B16 6788518591 "BLD",78 91,"KRN",9.8,"NM",83,0)592 C0CMAIL3^^0^B22 4733815593 "BLD",78 91,"KRN",9.8,"NM",84,0)594 C0CMCCD^^0^B7 3168233595 "BLD",78 91,"KRN",9.8,"NM",85,0)596 C0CMED4^^0^B6 1058927597 "BLD",78 91,"KRN",9.8,"NM",86,0)598 C0CMIME^^0^B9 9031395599 "BLD",78 91,"KRN",9.8,"NM",87,0)600 C0CMXMLB^^0^B12 065941601 "BLD",78 91,"KRN",9.8,"NM",88,0)602 C0CNHIN^^0^B87 973392603 "BLD",78 91,"KRN",9.8,"NM",89,0)604 C0CNMED2^^0^B3 3217786605 "BLD",78 91,"KRN",9.8,"NM",90,0)606 C0CNMED4^^0^B9 9762510607 "BLD",78 91,"KRN",9.8,"NM",91,0)608 C0CORSLT^^0^B9 647157609 "BLD",78 91,"KRN",9.8,"NM",92,0)610 C0CPXRM^^0^B 14904056611 "BLD",78 91,"KRN",9.8,"NM",93,0)495 "BLD",7883,"KRN",9.8,"NM",22,0) 496 C0CRXN^^0^B102255510 497 "BLD",7883,"KRN",9.8,"NM",23,0) 498 C0CRNF^^0^B194328331 499 "BLD",7883,"KRN",9.8,"NM",24,0) 500 C0CFM1^^0^B26826658 501 "BLD",7883,"KRN",9.8,"NM",29,0) 502 C0CPARMS^^0^B9948429 503 "BLD",7883,"KRN",9.8,"NM",31,0) 504 C0CFM2^^0^B99587435 505 "BLD",7883,"KRN",9.8,"NM",34,0) 506 C0CXPATH^^0^B518646177 507 "BLD",7883,"KRN",9.8,"NM",35,0) 508 C0CXPAT0^^0^B49945143 509 "BLD",7883,"KRN",9.8,"NM",36,0) 510 C0CVITAL^^0^B314693716 511 "BLD",7883,"KRN",9.8,"NM",37,0) 512 C0CUNIT^^0^B33370246 513 "BLD",7883,"KRN",9.8,"NM",38,0) 514 C0CRIMA^^0^B328577528 515 "BLD",7883,"KRN",9.8,"NM",39,0) 516 C0CPROBS^^0^B51600314 517 "BLD",7883,"KRN",9.8,"NM",40,0) 518 C0CLABS^^0^B279276475 519 "BLD",7883,"KRN",9.8,"NM",41,0) 520 C0CIMMU^^0^B19603373 521 "BLD",7883,"KRN",9.8,"NM",42,0) 522 C0CCCR0^^0^B785598655 523 "BLD",7883,"KRN",9.8,"NM",43,0) 524 C0CCCR^^0^B109879694 525 "BLD",7883,"KRN",9.8,"NM",44,0) 526 C0CCCD1^^0^B96013153 527 "BLD",7883,"KRN",9.8,"NM",45,0) 528 C0CCCD^^0^B89035344 529 "BLD",7883,"KRN",9.8,"NM",46,0) 530 C0CALERT^^0^B31119471 531 "BLD",7883,"KRN",9.8,"NM",47,0) 532 C0CACTOR^^0^B98169360 533 "BLD",7883,"KRN",9.8,"NM",48,0) 534 C0CMED^^0^B18524779 535 "BLD",7883,"KRN",9.8,"NM",49,0) 536 C0CMED1^^0^B112207077 537 "BLD",7883,"KRN",9.8,"NM",50,0) 538 C0CMED2^^0^B145401668 539 "BLD",7883,"KRN",9.8,"NM",51,0) 540 C0CMED3^^0^B170674827 541 "BLD",7883,"KRN",9.8,"NM",52,0) 542 C0CMED6^^0^B192343303 543 "BLD",7883,"KRN",9.8,"NM",53,0) 544 C0CDPT^^0^B46820265 545 "BLD",7883,"KRN",9.8,"NM",54,0) 546 C0CUTIL^^0^B26410609 547 "BLD",7883,"KRN",9.8,"NM",55,0) 548 C0CVA200^^0^B31814686 549 "BLD",7883,"KRN",9.8,"NM",56,0) 550 C0CSYS^^0^B3817459 551 "BLD",7883,"KRN",9.8,"NM",57,0) 552 C0CBAT^^0^B56229594 553 "BLD",7883,"KRN",9.8,"NM",61,0) 554 C0CSUB1^^0^B15609029 555 "BLD",7883,"KRN",9.8,"NM",62,0) 556 C0CLA7Q^^0^B24672517 557 "BLD",7883,"KRN",9.8,"NM",63,0) 558 C0CPROC^^0^B26886546 559 "BLD",7883,"KRN",9.8,"NM",64,0) 560 C0CMXP^^0^B76428333 561 "BLD",7883,"KRN",9.8,"NM",65,0) 562 C0CMXML^^0^B55227178 563 "BLD",7883,"KRN",9.8,"NM",66,0) 564 C0CVIT2^^0^B317310035 565 "BLD",7883,"KRN",9.8,"NM",67,0) 566 C0CIM2^^0^B19669149 567 "BLD",7883,"KRN",9.8,"NM",68,0) 568 C0CCPT^^0^B17485471 569 "BLD",7883,"KRN",9.8,"NM",69,0) 570 C0CSOAP^^0^B79012960 571 "BLD",7883,"KRN",9.8,"NM",70,0) 572 C0CENC^^0^B45258660 573 "BLD",7883,"KRN",9.8,"NM",71,0) 574 C0CCMT^^0^B6559679 575 "BLD",7883,"KRN",9.8,"NM",72,0) 576 C0CIN^^0^B30222275 577 "BLD",7883,"KRN",9.8,"NM",73,0) 578 C0CDIC^^0^B42907516 579 "BLD",7883,"KRN",9.8,"NM",74,0) 580 C0CDOM^^0^B86328529 581 "BLD",7883,"KRN",9.8,"NM",75,0) 582 C0CENV^^0^B28427348 583 "BLD",7883,"KRN",9.8,"NM",76,0) 584 C0CEVC^^0^B21455969 585 "BLD",7883,"KRN",9.8,"NM",77,0) 586 C0CEWD^^0^B5530676 587 "BLD",7883,"KRN",9.8,"NM",78,0) 588 C0CEWD1^^0^B6276162 589 "BLD",7883,"KRN",9.8,"NM",79,0) 590 C0CFM3^^0^B66472582 591 "BLD",7883,"KRN",9.8,"NM",80,0) 592 C0CLA7DD^^0^B72588185 593 "BLD",7883,"KRN",9.8,"NM",81,0) 594 C0CMAIL^^0^B91585320 595 "BLD",7883,"KRN",9.8,"NM",82,0) 596 C0CMAIL2^^0^B165067910 597 "BLD",7883,"KRN",9.8,"NM",83,0) 598 C0CMAIL3^^0^B222669398 599 "BLD",7883,"KRN",9.8,"NM",84,0) 600 C0CMCCD^^0^B71988241 601 "BLD",7883,"KRN",9.8,"NM",85,0) 602 C0CMED4^^0^B60079150 603 "BLD",7883,"KRN",9.8,"NM",86,0) 604 C0CMIME^^0^B97918768 605 "BLD",7883,"KRN",9.8,"NM",87,0) 606 C0CMXMLB^^0^B12346525 607 "BLD",7883,"KRN",9.8,"NM",88,0) 608 C0CNHIN^^0^B87084020 609 "BLD",7883,"KRN",9.8,"NM",89,0) 610 C0CNMED2^^0^B32627824 611 "BLD",7883,"KRN",9.8,"NM",90,0) 612 C0CNMED4^^0^B98251317 613 "BLD",7883,"KRN",9.8,"NM",91,0) 614 C0CORSLT^^0^B9272901 615 "BLD",7883,"KRN",9.8,"NM",92,0) 616 C0CPXRM^^0^B4357 617 "BLD",7883,"KRN",9.8,"NM",93,0) 612 618 C0CQRY1^^0^B18992765 613 "BLD",78 91,"KRN",9.8,"NM",94,0)614 C0CQRY2^^0^B2 0465060615 "BLD",78 91,"KRN",9.8,"NM",95,0)616 C0CRNFRP^^0^B9 1701220617 "BLD",78 91,"KRN",9.8,"NM",96,0)618 C0CRPMS^^0^B1 6300714619 "BLD",78 91,"KRN",9.8,"NM",97,0)620 C0CRXNRD^^0^B3 1474664621 "BLD",78 91,"KRN",9.8,"NM",98,0)622 C0CSNOA^^0^B 56032588623 "BLD",78 91,"KRN",9.8,"NM",99,0)624 C0CVOBX1^^0^B1 2947698625 "BLD",78 91,"KRN",9.8,"NM",100,0)626 C0CVORU^^0^B 58596883627 "BLD",78 91,"KRN",9.8,"NM",101,0)628 C0CXEWD^^0^B15 380480629 "BLD",78 91,"KRN",9.8,"NM",102,0)630 C0COVREL^^0^B1 8541513631 "BLD",78 91,"KRN",9.8,"NM",103,0)632 C0COVRES^^0^B2 4677897633 "BLD",78 91,"KRN",9.8,"NM",104,0)634 C0COVREU^^0^B7 9442187635 "BLD",78 91,"KRN",9.8,"NM",105,0)636 C0CRAHL7^^0^B 54192731637 "BLD",78 91,"KRN",9.8,"NM",106,0)638 C0CRARPT^^0^B6 8379544639 "BLD",78 91,"KRN",9.8,"NM",107,0)640 C0CSQMB^^0^B 545540641 "BLD",78 91,"KRN",9.8,"NM",108,0)642 C0CTIU^^0^B6 2323461643 "BLD",78 91,"KRN",9.8,"NM",109,0)644 C0CTIU1^^0^B1 0596577645 "BLD",78 91,"KRN",9.8,"NM",110,0)646 C0CVALID^^0^B 2856461647 "BLD",78 91,"KRN",9.8,"NM","B","C0CACTOR",47)619 "BLD",7883,"KRN",9.8,"NM",94,0) 620 C0CQRY2^^0^B23443412 621 "BLD",7883,"KRN",9.8,"NM",95,0) 622 C0CRNFRP^^0^B90905910 623 "BLD",7883,"KRN",9.8,"NM",96,0) 624 C0CRPMS^^0^B15891746 625 "BLD",7883,"KRN",9.8,"NM",97,0) 626 C0CRXNRD^^0^B36296842 627 "BLD",7883,"KRN",9.8,"NM",98,0) 628 C0CSNOA^^0^B40683034 629 "BLD",7883,"KRN",9.8,"NM",99,0) 630 C0CVOBX1^^0^B14909630 631 "BLD",7883,"KRN",9.8,"NM",100,0) 632 C0CVORU^^0^B63096791 633 "BLD",7883,"KRN",9.8,"NM",101,0) 634 C0CXEWD^^0^B15053974 635 "BLD",7883,"KRN",9.8,"NM",102,0) 636 C0COVREL^^0^B19589538 637 "BLD",7883,"KRN",9.8,"NM",103,0) 638 C0COVRES^^0^B23183700 639 "BLD",7883,"KRN",9.8,"NM",104,0) 640 C0COVREU^^0^B78173648 641 "BLD",7883,"KRN",9.8,"NM",105,0) 642 C0CRAHL7^^0^B46426582 643 "BLD",7883,"KRN",9.8,"NM",106,0) 644 C0CRARPT^^0^B66576750 645 "BLD",7883,"KRN",9.8,"NM",107,0) 646 C0CSQMB^^0^B779536 647 "BLD",7883,"KRN",9.8,"NM",108,0) 648 C0CTIU^^0^B68529284 649 "BLD",7883,"KRN",9.8,"NM",109,0) 650 C0CTIU1^^0^B12758077 651 "BLD",7883,"KRN",9.8,"NM",110,0) 652 C0CVALID^^0^B3624866 653 "BLD",7883,"KRN",9.8,"NM","B","C0CACTOR",47) 648 654 649 "BLD",78 91,"KRN",9.8,"NM","B","C0CALERT",46)655 "BLD",7883,"KRN",9.8,"NM","B","C0CALERT",46) 650 656 651 "BLD",78 91,"KRN",9.8,"NM","B","C0CBAT",57)657 "BLD",7883,"KRN",9.8,"NM","B","C0CBAT",57) 652 658 653 "BLD",78 91,"KRN",9.8,"NM","B","C0CCCD",45)659 "BLD",7883,"KRN",9.8,"NM","B","C0CCCD",45) 654 660 655 "BLD",78 91,"KRN",9.8,"NM","B","C0CCCD1",44)661 "BLD",7883,"KRN",9.8,"NM","B","C0CCCD1",44) 656 662 657 "BLD",78 91,"KRN",9.8,"NM","B","C0CCCR",43)663 "BLD",7883,"KRN",9.8,"NM","B","C0CCCR",43) 658 664 659 "BLD",78 91,"KRN",9.8,"NM","B","C0CCCR0",42)665 "BLD",7883,"KRN",9.8,"NM","B","C0CCCR0",42) 660 666 661 "BLD",78 91,"KRN",9.8,"NM","B","C0CCMT",71)667 "BLD",7883,"KRN",9.8,"NM","B","C0CCMT",71) 662 668 663 "BLD",78 91,"KRN",9.8,"NM","B","C0CCPT",68)669 "BLD",7883,"KRN",9.8,"NM","B","C0CCPT",68) 664 670 665 "BLD",78 91,"KRN",9.8,"NM","B","C0CDIC",73)671 "BLD",7883,"KRN",9.8,"NM","B","C0CDIC",73) 666 672 667 "BLD",78 91,"KRN",9.8,"NM","B","C0CDOM",74)673 "BLD",7883,"KRN",9.8,"NM","B","C0CDOM",74) 668 674 669 "BLD",78 91,"KRN",9.8,"NM","B","C0CDPT",53)675 "BLD",7883,"KRN",9.8,"NM","B","C0CDPT",53) 670 676 671 "BLD",78 91,"KRN",9.8,"NM","B","C0CENC",70)677 "BLD",7883,"KRN",9.8,"NM","B","C0CENC",70) 672 678 673 "BLD",78 91,"KRN",9.8,"NM","B","C0CENV",75)679 "BLD",7883,"KRN",9.8,"NM","B","C0CENV",75) 674 680 675 "BLD",78 91,"KRN",9.8,"NM","B","C0CEVC",76)681 "BLD",7883,"KRN",9.8,"NM","B","C0CEVC",76) 676 682 677 "BLD",78 91,"KRN",9.8,"NM","B","C0CEWD",77)683 "BLD",7883,"KRN",9.8,"NM","B","C0CEWD",77) 678 684 679 "BLD",78 91,"KRN",9.8,"NM","B","C0CEWD1",78)685 "BLD",7883,"KRN",9.8,"NM","B","C0CEWD1",78) 680 686 681 "BLD",78 91,"KRN",9.8,"NM","B","C0CFM1",24)687 "BLD",7883,"KRN",9.8,"NM","B","C0CFM1",24) 682 688 683 "BLD",78 91,"KRN",9.8,"NM","B","C0CFM2",31)689 "BLD",7883,"KRN",9.8,"NM","B","C0CFM2",31) 684 690 685 "BLD",78 91,"KRN",9.8,"NM","B","C0CFM3",79)691 "BLD",7883,"KRN",9.8,"NM","B","C0CFM3",79) 686 692 687 "BLD",78 91,"KRN",9.8,"NM","B","C0CIM2",67)693 "BLD",7883,"KRN",9.8,"NM","B","C0CIM2",67) 688 694 689 "BLD",78 91,"KRN",9.8,"NM","B","C0CIMMU",41)695 "BLD",7883,"KRN",9.8,"NM","B","C0CIMMU",41) 690 696 691 "BLD",78 91,"KRN",9.8,"NM","B","C0CIN",72)697 "BLD",7883,"KRN",9.8,"NM","B","C0CIN",72) 692 698 693 "BLD",78 91,"KRN",9.8,"NM","B","C0CLA7DD",80)699 "BLD",7883,"KRN",9.8,"NM","B","C0CLA7DD",80) 694 700 695 "BLD",78 91,"KRN",9.8,"NM","B","C0CLA7Q",62)701 "BLD",7883,"KRN",9.8,"NM","B","C0CLA7Q",62) 696 702 697 "BLD",78 91,"KRN",9.8,"NM","B","C0CLABS",40)703 "BLD",7883,"KRN",9.8,"NM","B","C0CLABS",40) 698 704 699 "BLD",78 91,"KRN",9.8,"NM","B","C0CMAIL",81)705 "BLD",7883,"KRN",9.8,"NM","B","C0CMAIL",81) 700 706 701 "BLD",78 91,"KRN",9.8,"NM","B","C0CMAIL2",82)707 "BLD",7883,"KRN",9.8,"NM","B","C0CMAIL2",82) 702 708 703 "BLD",78 91,"KRN",9.8,"NM","B","C0CMAIL3",83)709 "BLD",7883,"KRN",9.8,"NM","B","C0CMAIL3",83) 704 710 705 "BLD",78 91,"KRN",9.8,"NM","B","C0CMCCD",84)711 "BLD",7883,"KRN",9.8,"NM","B","C0CMCCD",84) 706 712 707 "BLD",78 91,"KRN",9.8,"NM","B","C0CMED",48)713 "BLD",7883,"KRN",9.8,"NM","B","C0CMED",48) 708 714 709 "BLD",78 91,"KRN",9.8,"NM","B","C0CMED1",49)715 "BLD",7883,"KRN",9.8,"NM","B","C0CMED1",49) 710 716 711 "BLD",78 91,"KRN",9.8,"NM","B","C0CMED2",50)717 "BLD",7883,"KRN",9.8,"NM","B","C0CMED2",50) 712 718 713 "BLD",78 91,"KRN",9.8,"NM","B","C0CMED3",51)719 "BLD",7883,"KRN",9.8,"NM","B","C0CMED3",51) 714 720 715 "BLD",78 91,"KRN",9.8,"NM","B","C0CMED4",85)721 "BLD",7883,"KRN",9.8,"NM","B","C0CMED4",85) 716 722 717 "BLD",78 91,"KRN",9.8,"NM","B","C0CMED6",52)723 "BLD",7883,"KRN",9.8,"NM","B","C0CMED6",52) 718 724 719 "BLD",78 91,"KRN",9.8,"NM","B","C0CMIME",86)725 "BLD",7883,"KRN",9.8,"NM","B","C0CMIME",86) 720 726 721 "BLD",78 91,"KRN",9.8,"NM","B","C0CMXML",65)727 "BLD",7883,"KRN",9.8,"NM","B","C0CMXML",65) 722 728 723 "BLD",78 91,"KRN",9.8,"NM","B","C0CMXMLB",87)729 "BLD",7883,"KRN",9.8,"NM","B","C0CMXMLB",87) 724 730 725 "BLD",78 91,"KRN",9.8,"NM","B","C0CMXP",64)731 "BLD",7883,"KRN",9.8,"NM","B","C0CMXP",64) 726 732 727 "BLD",78 91,"KRN",9.8,"NM","B","C0CNHIN",88)733 "BLD",7883,"KRN",9.8,"NM","B","C0CNHIN",88) 728 734 729 "BLD",78 91,"KRN",9.8,"NM","B","C0CNMED2",89)735 "BLD",7883,"KRN",9.8,"NM","B","C0CNMED2",89) 730 736 731 "BLD",78 91,"KRN",9.8,"NM","B","C0CNMED4",90)737 "BLD",7883,"KRN",9.8,"NM","B","C0CNMED4",90) 732 738 733 "BLD",78 91,"KRN",9.8,"NM","B","C0CORSLT",91)739 "BLD",7883,"KRN",9.8,"NM","B","C0CORSLT",91) 734 740 735 "BLD",78 91,"KRN",9.8,"NM","B","C0COVREL",102)741 "BLD",7883,"KRN",9.8,"NM","B","C0COVREL",102) 736 742 737 "BLD",78 91,"KRN",9.8,"NM","B","C0COVRES",103)743 "BLD",7883,"KRN",9.8,"NM","B","C0COVRES",103) 738 744 739 "BLD",78 91,"KRN",9.8,"NM","B","C0COVREU",104)745 "BLD",7883,"KRN",9.8,"NM","B","C0COVREU",104) 740 746 741 "BLD",78 91,"KRN",9.8,"NM","B","C0CPARMS",29)747 "BLD",7883,"KRN",9.8,"NM","B","C0CPARMS",29) 742 748 743 "BLD",78 91,"KRN",9.8,"NM","B","C0CPROBS",39)749 "BLD",7883,"KRN",9.8,"NM","B","C0CPROBS",39) 744 750 745 "BLD",78 91,"KRN",9.8,"NM","B","C0CPROC",63)751 "BLD",7883,"KRN",9.8,"NM","B","C0CPROC",63) 746 752 747 "BLD",78 91,"KRN",9.8,"NM","B","C0CPXRM",92)753 "BLD",7883,"KRN",9.8,"NM","B","C0CPXRM",92) 748 754 749 "BLD",78 91,"KRN",9.8,"NM","B","C0CQRY1",93)755 "BLD",7883,"KRN",9.8,"NM","B","C0CQRY1",93) 750 756 751 "BLD",78 91,"KRN",9.8,"NM","B","C0CQRY2",94)757 "BLD",7883,"KRN",9.8,"NM","B","C0CQRY2",94) 752 758 753 "BLD",78 91,"KRN",9.8,"NM","B","C0CRAHL7",105)759 "BLD",7883,"KRN",9.8,"NM","B","C0CRAHL7",105) 754 760 755 "BLD",78 91,"KRN",9.8,"NM","B","C0CRARPT",106)761 "BLD",7883,"KRN",9.8,"NM","B","C0CRARPT",106) 756 762 757 "BLD",78 91,"KRN",9.8,"NM","B","C0CRIMA",38)763 "BLD",7883,"KRN",9.8,"NM","B","C0CRIMA",38) 758 764 759 "BLD",78 91,"KRN",9.8,"NM","B","C0CRNF",23)765 "BLD",7883,"KRN",9.8,"NM","B","C0CRNF",23) 760 766 761 "BLD",78 91,"KRN",9.8,"NM","B","C0CRNFRP",95)767 "BLD",7883,"KRN",9.8,"NM","B","C0CRNFRP",95) 762 768 763 "BLD",78 91,"KRN",9.8,"NM","B","C0CRPMS",96)769 "BLD",7883,"KRN",9.8,"NM","B","C0CRPMS",96) 764 770 765 "BLD",78 91,"KRN",9.8,"NM","B","C0CRXN",22)771 "BLD",7883,"KRN",9.8,"NM","B","C0CRXN",22) 766 772 767 "BLD",78 91,"KRN",9.8,"NM","B","C0CRXNRD",97)773 "BLD",7883,"KRN",9.8,"NM","B","C0CRXNRD",97) 768 774 769 "BLD",78 91,"KRN",9.8,"NM","B","C0CSNOA",98)775 "BLD",7883,"KRN",9.8,"NM","B","C0CSNOA",98) 770 776 771 "BLD",78 91,"KRN",9.8,"NM","B","C0CSOAP",69)777 "BLD",7883,"KRN",9.8,"NM","B","C0CSOAP",69) 772 778 773 "BLD",78 91,"KRN",9.8,"NM","B","C0CSQMB",107)779 "BLD",7883,"KRN",9.8,"NM","B","C0CSQMB",107) 774 780 775 "BLD",78 91,"KRN",9.8,"NM","B","C0CSUB1",61)781 "BLD",7883,"KRN",9.8,"NM","B","C0CSUB1",61) 776 782 777 "BLD",78 91,"KRN",9.8,"NM","B","C0CSYS",56)783 "BLD",7883,"KRN",9.8,"NM","B","C0CSYS",56) 778 784 779 "BLD",78 91,"KRN",9.8,"NM","B","C0CTIU",108)785 "BLD",7883,"KRN",9.8,"NM","B","C0CTIU",108) 780 786 781 "BLD",78 91,"KRN",9.8,"NM","B","C0CTIU1",109)787 "BLD",7883,"KRN",9.8,"NM","B","C0CTIU1",109) 782 788 783 "BLD",78 91,"KRN",9.8,"NM","B","C0CUNIT",37)789 "BLD",7883,"KRN",9.8,"NM","B","C0CUNIT",37) 784 790 785 "BLD",78 91,"KRN",9.8,"NM","B","C0CUTIL",54)791 "BLD",7883,"KRN",9.8,"NM","B","C0CUTIL",54) 786 792 787 "BLD",78 91,"KRN",9.8,"NM","B","C0CVA200",55)793 "BLD",7883,"KRN",9.8,"NM","B","C0CVA200",55) 788 794 789 "BLD",78 91,"KRN",9.8,"NM","B","C0CVALID",110)795 "BLD",7883,"KRN",9.8,"NM","B","C0CVALID",110) 790 796 791 "BLD",78 91,"KRN",9.8,"NM","B","C0CVIT2",66)797 "BLD",7883,"KRN",9.8,"NM","B","C0CVIT2",66) 792 798 793 "BLD",78 91,"KRN",9.8,"NM","B","C0CVITAL",36)799 "BLD",7883,"KRN",9.8,"NM","B","C0CVITAL",36) 794 800 795 "BLD",78 91,"KRN",9.8,"NM","B","C0CVOBX1",99)801 "BLD",7883,"KRN",9.8,"NM","B","C0CVOBX1",99) 796 802 797 "BLD",78 91,"KRN",9.8,"NM","B","C0CVORU",100)803 "BLD",7883,"KRN",9.8,"NM","B","C0CVORU",100) 798 804 799 "BLD",78 91,"KRN",9.8,"NM","B","C0CXEWD",101)805 "BLD",7883,"KRN",9.8,"NM","B","C0CXEWD",101) 800 806 801 "BLD",78 91,"KRN",9.8,"NM","B","C0CXPAT0",35)807 "BLD",7883,"KRN",9.8,"NM","B","C0CXPAT0",35) 802 808 803 "BLD",78 91,"KRN",9.8,"NM","B","C0CXPATH",34)809 "BLD",7883,"KRN",9.8,"NM","B","C0CXPATH",34) 804 810 805 "BLD",78 91,"KRN",19,0)811 "BLD",7883,"KRN",19,0) 806 812 19 807 "BLD",78 91,"KRN",19,"NM",0)813 "BLD",7883,"KRN",19,"NM",0) 808 814 ^9.68A^10^10 809 "BLD",78 91,"KRN",19,"NM",1,0)815 "BLD",7883,"KRN",19,"NM",1,0) 810 816 C0C BATCH OPTIONS^^0 811 "BLD",78 91,"KRN",19,"NM",2,0)817 "BLD",7883,"KRN",19,"NM",2,0) 812 818 C0C CCR EXPORT BY PATIENT NAME^^0 813 "BLD",78 91,"KRN",19,"NM",3,0)819 "BLD",7883,"KRN",19,"NM",3,0) 814 820 C0C CCR MENU^^0 815 "BLD",78 91,"KRN",19,"NM",4,0)821 "BLD",7883,"KRN",19,"NM",4,0) 816 822 C0C DISPLAY ELEMENTS^^0 817 "BLD",78 91,"KRN",19,"NM",5,0)823 "BLD",7883,"KRN",19,"NM",5,0) 818 824 C0C DISPLAY PATIENT VARIABLES^^0 819 "BLD",78 91,"KRN",19,"NM",6,0)825 "BLD",7883,"KRN",19,"NM",6,0) 820 826 C0C KILL BATCH JOB^^0 821 "BLD",78 91,"KRN",19,"NM",7,0)827 "BLD",7883,"KRN",19,"NM",7,0) 822 828 C0C LIST RIM CATEGORIES^^0 823 "BLD",78 91,"KRN",19,"NM",8,0)829 "BLD",7883,"KRN",19,"NM",8,0) 824 830 C0C START CCR BATCH PROCESSING^^0 825 "BLD",78 91,"KRN",19,"NM",9,0)831 "BLD",7883,"KRN",19,"NM",9,0) 826 832 C0C STATUS OF CCR BATCH^^0 827 "BLD",78 91,"KRN",19,"NM",10,0)833 "BLD",7883,"KRN",19,"NM",10,0) 828 834 C0C CCR RPC^^0 829 "BLD",78 91,"KRN",19,"NM","B","C0C BATCH OPTIONS",1)835 "BLD",7883,"KRN",19,"NM","B","C0C BATCH OPTIONS",1) 830 836 831 "BLD",78 91,"KRN",19,"NM","B","C0C CCR EXPORT BY PATIENT NAME",2)837 "BLD",7883,"KRN",19,"NM","B","C0C CCR EXPORT BY PATIENT NAME",2) 832 838 833 "BLD",78 91,"KRN",19,"NM","B","C0C CCR MENU",3)839 "BLD",7883,"KRN",19,"NM","B","C0C CCR MENU",3) 834 840 835 "BLD",78 91,"KRN",19,"NM","B","C0C CCR RPC",10)841 "BLD",7883,"KRN",19,"NM","B","C0C CCR RPC",10) 836 842 837 "BLD",78 91,"KRN",19,"NM","B","C0C DISPLAY ELEMENTS",4)843 "BLD",7883,"KRN",19,"NM","B","C0C DISPLAY ELEMENTS",4) 838 844 839 "BLD",78 91,"KRN",19,"NM","B","C0C DISPLAY PATIENT VARIABLES",5)845 "BLD",7883,"KRN",19,"NM","B","C0C DISPLAY PATIENT VARIABLES",5) 840 846 841 "BLD",78 91,"KRN",19,"NM","B","C0C KILL BATCH JOB",6)847 "BLD",7883,"KRN",19,"NM","B","C0C KILL BATCH JOB",6) 842 848 843 "BLD",78 91,"KRN",19,"NM","B","C0C LIST RIM CATEGORIES",7)849 "BLD",7883,"KRN",19,"NM","B","C0C LIST RIM CATEGORIES",7) 844 850 845 "BLD",78 91,"KRN",19,"NM","B","C0C START CCR BATCH PROCESSING",8)851 "BLD",7883,"KRN",19,"NM","B","C0C START CCR BATCH PROCESSING",8) 846 852 847 "BLD",78 91,"KRN",19,"NM","B","C0C STATUS OF CCR BATCH",9)853 "BLD",7883,"KRN",19,"NM","B","C0C STATUS OF CCR BATCH",9) 848 854 849 "BLD",78 91,"KRN",19.1,0)855 "BLD",7883,"KRN",19.1,0) 850 856 19.1 851 "BLD",78 91,"KRN",101,0)857 "BLD",7883,"KRN",101,0) 852 858 101 853 "BLD",78 91,"KRN",409.61,0)859 "BLD",7883,"KRN",409.61,0) 854 860 409.61 855 "BLD",78 91,"KRN",771,0)861 "BLD",7883,"KRN",771,0) 856 862 771 857 "BLD",78 91,"KRN",779.2,0)863 "BLD",7883,"KRN",779.2,0) 858 864 779.2 859 "BLD",78 91,"KRN",870,0)865 "BLD",7883,"KRN",870,0) 860 866 870 861 "BLD",78 91,"KRN",8989.51,0)867 "BLD",7883,"KRN",8989.51,0) 862 868 8989.51 863 "BLD",78 91,"KRN",8989.52,0)869 "BLD",7883,"KRN",8989.52,0) 864 870 8989.52 865 "BLD",78 91,"KRN",8994,0)871 "BLD",7883,"KRN",8994,0) 866 872 8994 867 "BLD",78 91,"KRN",8994,"NM",0)873 "BLD",7883,"KRN",8994,"NM",0) 868 874 ^9.68A^1^1 869 "BLD",78 91,"KRN",8994,"NM",1,0)875 "BLD",7883,"KRN",8994,"NM",1,0) 870 876 C0C CCR RPC^^0 871 "BLD",78 91,"KRN",8994,"NM","B","C0C CCR RPC",1)877 "BLD",7883,"KRN",8994,"NM","B","C0C CCR RPC",1) 872 878 873 "BLD",78 91,"KRN","B",.4,.4)879 "BLD",7883,"KRN","B",.4,.4) 874 880 875 "BLD",78 91,"KRN","B",.401,.401)881 "BLD",7883,"KRN","B",.401,.401) 876 882 877 "BLD",78 91,"KRN","B",.402,.402)883 "BLD",7883,"KRN","B",.402,.402) 878 884 879 "BLD",78 91,"KRN","B",.403,.403)885 "BLD",7883,"KRN","B",.403,.403) 880 886 881 "BLD",78 91,"KRN","B",.5,.5)887 "BLD",7883,"KRN","B",.5,.5) 882 888 883 "BLD",78 91,"KRN","B",.84,.84)889 "BLD",7883,"KRN","B",.84,.84) 884 890 885 "BLD",78 91,"KRN","B",3.6,3.6)891 "BLD",7883,"KRN","B",3.6,3.6) 886 892 887 "BLD",78 91,"KRN","B",3.8,3.8)893 "BLD",7883,"KRN","B",3.8,3.8) 888 894 889 "BLD",78 91,"KRN","B",9.2,9.2)895 "BLD",7883,"KRN","B",9.2,9.2) 890 896 891 "BLD",78 91,"KRN","B",9.8,9.8)897 "BLD",7883,"KRN","B",9.8,9.8) 892 898 893 "BLD",78 91,"KRN","B",19,19)899 "BLD",7883,"KRN","B",19,19) 894 900 895 "BLD",78 91,"KRN","B",19.1,19.1)901 "BLD",7883,"KRN","B",19.1,19.1) 896 902 897 "BLD",78 91,"KRN","B",101,101)903 "BLD",7883,"KRN","B",101,101) 898 904 899 "BLD",78 91,"KRN","B",409.61,409.61)905 "BLD",7883,"KRN","B",409.61,409.61) 900 906 901 "BLD",78 91,"KRN","B",771,771)907 "BLD",7883,"KRN","B",771,771) 902 908 903 "BLD",78 91,"KRN","B",779.2,779.2)909 "BLD",7883,"KRN","B",779.2,779.2) 904 910 905 "BLD",78 91,"KRN","B",870,870)911 "BLD",7883,"KRN","B",870,870) 906 912 907 "BLD",78 91,"KRN","B",8989.51,8989.51)913 "BLD",7883,"KRN","B",8989.51,8989.51) 908 914 909 "BLD",78 91,"KRN","B",8989.52,8989.52)915 "BLD",7883,"KRN","B",8989.52,8989.52) 910 916 911 "BLD",78 91,"KRN","B",8994,8994)917 "BLD",7883,"KRN","B",8994,8994) 912 918 913 "BLD",78 91,"PRE")919 "BLD",7883,"PRE") 914 920 C0CENV 915 "BLD",78 91,"QUES",0)921 "BLD",7883,"QUES",0) 916 922 ^9.62^^ 917 "BLD",78 91,"REQB",0)923 "BLD",7883,"REQB",0) 918 924 ^9.611^2^2 919 "BLD",78 91,"REQB",1,0)925 "BLD",7883,"REQB",1,0) 920 926 NHIN 1.0^2 921 "BLD",78 91,"REQB",2,0)927 "BLD",7883,"REQB",2,0) 922 928 NHIN*1.0*1^2 923 "BLD",78 91,"REQB","B","NHIN 1.0",1)929 "BLD",7883,"REQB","B","NHIN 1.0",1) 924 930 925 "BLD",78 91,"REQB","B","NHIN*1.0*1",2)931 "BLD",7883,"REQB","B","NHIN*1.0*1",2) 926 932 927 933 "DATA",170,1,0) … … 90348 90354 S X=DA(1) 90349 90355 "KEY",178.101,178.101,"A",0) 90350 178.101^A^P^55 890356 178.101^A^P^554 90351 90357 "KEY",178.101,178.101,"A",2,0) 90352 90358 ^.312IA^2^2 … … 90357 90363 "KEYPTR",178.101,178.101,"A") 90358 90364 178.101^C 90359 "KRN",19,109 99,-1)90365 "KRN",19,10988,-1) 90360 90366 0^9 90361 "KRN",19,109 99,0)90367 "KRN",19,10988,0) 90362 90368 C0C STATUS OF CCR BATCH^STATUS OF CCR BATCH^^I^^^^^^^^ 90363 "KRN",19,109 99,30)90369 "KRN",19,10988,30) 90364 90370 C0CB( 90365 "KRN",19,109 99,31)90371 "KRN",19,10988,31) 90366 90372 AEMQ 90367 "KRN",19,109 99,63)90373 "KRN",19,10988,63) 90368 90374 [C 90369 "KRN",19,109 99,80)90375 "KRN",19,10988,80) 90370 90376 C0CB( 90371 "KRN",19,109 99,"U")90377 "KRN",19,10988,"U") 90372 90378 STATUS OF CCR BATCH 90373 "KRN",19,1 1000,-1)90379 "KRN",19,10989,-1) 90374 90380 0^8 90375 "KRN",19,1 1000,0)90381 "KRN",19,10989,0) 90376 90382 C0C START CCR BATCH PROCESSING^BEGIN CCR BATCH PROCESSING^^A^^^^^^^^^^1 90377 "KRN",19,1 1000,20)90383 "KRN",19,10989,20) 90378 90384 D START^C0CBAT 90379 "KRN",19,1 1000,"U")90385 "KRN",19,10989,"U") 90380 90386 BEGIN CCR BATCH PROCESSING 90381 "KRN",19,1 1001,-1)90387 "KRN",19,10990,-1) 90382 90388 0^1 90383 "KRN",19,1 1001,0)90389 "KRN",19,10990,0) 90384 90390 C0C BATCH OPTIONS^BATCH CCR OPTIONS^^M^^^^^^^^ 90385 "KRN",19,1 1001,10,0)90391 "KRN",19,10990,10,0) 90386 90392 ^19.01IP^3^3 90387 "KRN",19,1 1001,10,1,0)90388 1 100090389 "KRN",19,1 1001,10,1,"^")90393 "KRN",19,10990,10,1,0) 90394 10989 90395 "KRN",19,10990,10,1,"^") 90390 90396 C0C START CCR BATCH PROCESSING 90391 "KRN",19,1 1001,10,2,0)90392 109 9990393 "KRN",19,1 1001,10,2,"^")90397 "KRN",19,10990,10,2,0) 90398 10988 90399 "KRN",19,10990,10,2,"^") 90394 90400 C0C STATUS OF CCR BATCH 90395 "KRN",19,1 1001,10,3,0)90396 1 100790397 "KRN",19,1 1001,10,3,"^")90401 "KRN",19,10990,10,3,0) 90402 10996 90403 "KRN",19,10990,10,3,"^") 90398 90404 C0C KILL BATCH JOB 90399 "KRN",19,1 1001,99)90400 62 633,3511390401 "KRN",19,1 1001,"U")90405 "KRN",19,10990,99) 90406 62759,57174 90407 "KRN",19,10990,"U") 90402 90408 BATCH CCR OPTIONS 90403 "KRN",19,1 1002,-1)90409 "KRN",19,10991,-1) 90404 90410 0^3 90405 "KRN",19,1 1002,0)90411 "KRN",19,10991,0) 90406 90412 C0C CCR MENU^CCR MENU^^M^^^^^^^^ 90407 "KRN",19,1 1002,10,0)90413 "KRN",19,10991,10,0) 90408 90414 ^19.01IP^5^5 90409 "KRN",19,1 1002,10,1,0)90410 1 100190411 "KRN",19,1 1002,10,1,"^")90415 "KRN",19,10991,10,1,0) 90416 10990 90417 "KRN",19,10991,10,1,"^") 90412 90418 C0C BATCH OPTIONS 90413 "KRN",19,1 1002,10,2,0)90414 1 100390415 "KRN",19,1 1002,10,2,"^")90419 "KRN",19,10991,10,2,0) 90420 10992 90421 "KRN",19,10991,10,2,"^") 90416 90422 C0C CCR EXPORT BY PATIENT NAME 90417 "KRN",19,1 1002,10,3,0)90418 1 100590419 "KRN",19,1 1002,10,3,"^")90423 "KRN",19,10991,10,3,0) 90424 10994 90425 "KRN",19,10991,10,3,"^") 90420 90426 C0C DISPLAY ELEMENTS 90421 "KRN",19,1 1002,10,4,0)90422 1 100490423 "KRN",19,1 1002,10,4,"^")90427 "KRN",19,10991,10,4,0) 90428 10993 90429 "KRN",19,10991,10,4,"^") 90424 90430 C0C DISPLAY PATIENT VARIABLES 90425 "KRN",19,1 1002,10,5,0)90426 1 100690427 "KRN",19,1 1002,10,5,"^")90431 "KRN",19,10991,10,5,0) 90432 10995 90433 "KRN",19,10991,10,5,"^") 90428 90434 C0C LIST RIM CATEGORIES 90429 "KRN",19,1 1002,99)90430 62 633,3511390431 "KRN",19,1 1002,"U")90435 "KRN",19,10991,99) 90436 62759,57174 90437 "KRN",19,10991,"U") 90432 90438 CCR MENU 90433 "KRN",19,1 1003,-1)90439 "KRN",19,10992,-1) 90434 90440 0^2 90435 "KRN",19,1 1003,0)90441 "KRN",19,10992,0) 90436 90442 C0C CCR EXPORT BY PATIENT NAME^CCR EXPORT BY PATIENT NAME^^A^^^^^^^^^^1 90437 "KRN",19,1 1003,20)90443 "KRN",19,10992,20) 90438 90444 D EXPORT^C0CCCR 90439 "KRN",19,1 1003,"U")90445 "KRN",19,10992,"U") 90440 90446 CCR EXPORT BY PATIENT NAME 90441 "KRN",19,1 1004,-1)90447 "KRN",19,10993,-1) 90442 90448 0^5 90443 "KRN",19,1 1004,0)90449 "KRN",19,10993,0) 90444 90450 C0C DISPLAY PATIENT VARIABLES^VARIABLES DISPLAY^^A^^^^^^^^^^1^1^^ 90445 "KRN",19,1 1004,15)90451 "KRN",19,10993,15) 90446 90452 D DPATV^C0CRIMA($P(Y,U,1)) 90447 "KRN",19,1 1004,20)90453 "KRN",19,10993,20) 90448 90454 S DIC=2,DIC(0)="AEMQ" D ^DIC I Y<1 Q 90449 "KRN",19,1 1004,26)90455 "KRN",19,10993,26) 90450 90456 90451 "KRN",19,1 1004,"U")90457 "KRN",19,10993,"U") 90452 90458 VARIABLES DISPLAY 90453 "KRN",19,1 1005,-1)90459 "KRN",19,10994,-1) 90454 90460 0^4 90455 "KRN",19,1 1005,0)90461 "KRN",19,10994,0) 90456 90462 C0C DISPLAY ELEMENTS^ELEMENT DISPLAY^^I^^^^^^^^^^ 90457 "KRN",19,1 1005,20)90463 "KRN",19,10994,20) 90458 90464 90459 "KRN",19,1 1005,30)90465 "KRN",19,10994,30) 90460 90466 C0CE( 90461 "KRN",19,1 1005,31)90467 "KRN",19,10994,31) 90462 90468 AEMQ 90463 "KRN",19,1 1005,63)90469 "KRN",19,10994,63) 90464 90470 [C 90465 "KRN",19,1 1005,80)90471 "KRN",19,10994,80) 90466 90472 C0CE( 90467 "KRN",19,1 1005,"U")90473 "KRN",19,10994,"U") 90468 90474 ELEMENT DISPLAY 90469 "KRN",19,1 1006,-1)90475 "KRN",19,10995,-1) 90470 90476 0^7 90471 "KRN",19,1 1006,0)90477 "KRN",19,10995,0) 90472 90478 C0C LIST RIM CATEGORIES^LIST RIM CATEGORIES^^A^^^^^^^^^^1 90473 "KRN",19,1 1006,20)90479 "KRN",19,10995,20) 90474 90480 D CLIST^C0CRIMA 90475 "KRN",19,1 1006,"U")90481 "KRN",19,10995,"U") 90476 90482 LIST RIM CATEGORIES 90477 "KRN",19,1 1007,-1)90483 "KRN",19,10996,-1) 90478 90484 0^6 90479 "KRN",19,1 1007,0)90485 "KRN",19,10996,0) 90480 90486 C0C KILL BATCH JOB^KILL CCR BATCH PROCESSING^^A^^^^^^^^^^1 90481 "KRN",19,1 1007,20)90487 "KRN",19,10996,20) 90482 90488 D STOP^C0CBAT 90483 "KRN",19,1 1007,"U")90489 "KRN",19,10996,"U") 90484 90490 KILL CCR BATCH PROCESSING 90485 "KRN",19,1 1008,-1)90491 "KRN",19,10997,-1) 90486 90492 0^10 90487 "KRN",19,1 1008,0)90493 "KRN",19,10997,0) 90488 90494 C0C CCR RPC^CCR RPC^^B^^^^^^^^^y 90489 "KRN",19,1 1008,"RPC",0)90495 "KRN",19,10997,"RPC",0) 90490 90496 ^19.05P^1^1 90491 "KRN",19,1 1008,"RPC",1,0)90497 "KRN",19,10997,"RPC",1,0) 90492 90498 C0C CCR RPC 90493 "KRN",19,1 1008,"U")90499 "KRN",19,10997,"U") 90494 90500 CCR RPC 90495 "KRN",8994,2 518,-1)90501 "KRN",8994,2411,-1) 90496 90502 0^1 90497 "KRN",8994,2 518,0)90503 "KRN",8994,2411,0) 90498 90504 C0C CCR RPC^CCRRPC^C0CCCR^2^P 90499 "KRN",8994,2 518,1,0)90505 "KRN",8994,2411,1,0) 90500 90506 ^8994.01^1^1^3090717^^ 90501 "KRN",8994,2 518,1,1,0)90507 "KRN",8994,2411,1,1,0) 90502 90508 RPC TO RETURN A PATIENT'S CCR 90503 "KRN",8994,2 518,2,0)90509 "KRN",8994,2411,2,0) 90504 90510 ^8994.02A^3^3 90505 "KRN",8994,2 518,2,1,0)90511 "KRN",8994,2411,2,1,0) 90506 90512 DFN^1^30^1^1 90507 "KRN",8994,2 518,2,1,1,0)90513 "KRN",8994,2411,2,1,1,0) 90508 90514 ^^1^1^3090707^ 90509 "KRN",8994,2 518,2,1,1,1,0)90515 "KRN",8994,2411,2,1,1,1,0) 90510 90516 PATIENT RECORD NUMBER 90511 "KRN",8994,2 518,2,2,0)90517 "KRN",8994,2411,2,2,0) 90512 90518 CCRPARMS^1^200^0^2 90513 "KRN",8994,2 518,2,2,1,0)90519 "KRN",8994,2411,2,2,1,0) 90514 90520 ^^1^1^3090707^ 90515 "KRN",8994,2 518,2,2,1,1,0)90521 "KRN",8994,2411,2,2,1,1,0) 90516 90522 PARAMETERS TO OVERRIDE DEFAULTS FOR EXTRACTING THE CCR 90517 "KRN",8994,2 518,2,3,0)90523 "KRN",8994,2411,2,3,0) 90518 90524 CCRPART^1^20^^3 90519 "KRN",8994,2 518,2,"B","CCRPARM",2)90525 "KRN",8994,2411,2,"B","CCRPARM",2) 90520 90526 90521 "KRN",8994,2 518,2,"B","CCRPARMS",2)90527 "KRN",8994,2411,2,"B","CCRPARMS",2) 90522 90528 90523 "KRN",8994,2 518,2,"B","CCRPART",3)90529 "KRN",8994,2411,2,"B","CCRPART",3) 90524 90530 90525 "KRN",8994,2 518,2,"B","DFN",1)90531 "KRN",8994,2411,2,"B","DFN",1) 90526 90532 90527 "KRN",8994,2 518,2,"PARAMSEQ",1,1)90533 "KRN",8994,2411,2,"PARAMSEQ",1,1) 90528 90534 90529 "KRN",8994,2 518,2,"PARAMSEQ",2,2)90535 "KRN",8994,2411,2,"PARAMSEQ",2,2) 90530 90536 90531 "KRN",8994,2 518,2,"PARAMSEQ",3,3)90537 "KRN",8994,2411,2,"PARAMSEQ",3,3) 90532 90538 90533 90539 "MBREQ") … … 90541 90547 "ORD",18,19,0) 90542 90548 OPTION 90543 "PKG",21 3,-1)90549 "PKG",210,-1) 90544 90550 1^1 90545 "PKG",21 3,0)90551 "PKG",210,0) 90546 90552 CCD/CCR GENERATION UTILITIES^C0C^Utilities for the Generation of the CCD/C32/CCR 90547 "PKG",21 3,20,0)90553 "PKG",210,20,0) 90548 90554 ^9.402P^^ 90549 "PKG",21 3,22,0)90555 "PKG",210,22,0) 90550 90556 ^9.49I^1^1 90551 "PKG",213,22,1,0) 90552 1.2^3120625^3120625^8 90553 "PKG",213,22,1,1,0) 90554 ^^185^185^3120625 90555 "PKG",213,22,1,1,1,0) 90557 "PKG",210,22,1,0) 90558 1.2^3121030^3121029^8 90559 "PKG",210,22,1,1,0) 90560 ^^188^188^3121030 90561 "PKG",210,22,1,1,1,0) 90562 Licensed under AGPL v3. For complete license text, see 90563 "PKG",210,22,1,1,2,0) 90564 http://www.gnu.org/licenses/agpl-3.0.html 90565 "PKG",210,22,1,1,3,0) 90566 90567 "PKG",210,22,1,1,4,0) 90556 90568 CCR Project release v1.2 90557 "PKG",21 3,22,1,1,2,0)90569 "PKG",210,22,1,1,5,0) 90558 90570 90559 "PKG",21 3,22,1,1,3,0)90571 "PKG",210,22,1,1,6,0) 90560 90572 The purpose of the CCR package is to provide support for exporting and 90561 "PKG",21 3,22,1,1,4,0)90573 "PKG",210,22,1,1,7,0) 90562 90574 eventually importing patient information from/to VistA in XML documents 90563 "PKG",21 3,22,1,1,5,0)90575 "PKG",210,22,1,1,8,0) 90564 90576 conforming to the Continuity of Care Record (CCR - ASTM) and Continuity 90565 "PKG",21 3,22,1,1,6,0)90577 "PKG",210,22,1,1,9,0) 90566 90578 of Care Document (CCD - HL7) standards. 90567 "PKG",21 3,22,1,1,7,0)90579 "PKG",210,22,1,1,10,0) 90568 90580 90569 "PKG",21 3,22,1,1,8,0)90581 "PKG",210,22,1,1,11,0) 90570 90582 This version of the CCR package provides: 90571 "PKG",21 3,22,1,1,9,0)90583 "PKG",210,22,1,1,12,0) 90572 90584 90573 "PKG",21 3,22,1,1,10,0)90585 "PKG",210,22,1,1,13,0) 90574 90586 EXPORT^C0CCCR 90575 "PKG",21 3,22,1,1,11,0)90587 "PKG",210,22,1,1,14,0) 90576 90588 A command line interface to export a single patient's CCR to a host 90577 "PKG",21 3,22,1,1,12,0)90589 "PKG",210,22,1,1,15,0) 90578 90590 directory by specifying the patient by name. 90579 "PKG",21 3,22,1,1,13,0)90591 "PKG",210,22,1,1,16,0) 90580 90592 90581 "PKG",21 3,22,1,1,14,0)90593 "PKG",210,22,1,1,17,0) 90582 90594 EXPORT^C0CCCD 90583 "PKG",21 3,22,1,1,15,0)90595 "PKG",210,22,1,1,18,0) 90584 90596 A command line interface to export a single patient's CCD to a host 90585 "PKG",21 3,22,1,1,16,0)90597 "PKG",210,22,1,1,19,0) 90586 90598 directory by specifying the patient by name. As an alternative to 90587 "PKG",21 3,22,1,1,17,0)90599 "PKG",210,22,1,1,20,0) 90588 90600 generating the CCD directly, an XSLT transformation is available to 90589 "PKG",21 3,22,1,1,18,0)90601 "PKG",210,22,1,1,21,0) 90590 90602 translate a CCR into a level 2 CCD. This tranformation has been tested 90591 "PKG",21 3,22,1,1,19,0)90603 "PKG",210,22,1,1,22,0) 90592 90604 and produces a CCD with all currently supported sections of the CCR. The 90593 "PKG",21 3,22,1,1,20,0)90605 "PKG",210,22,1,1,23,0) 90594 90606 EXPORT^C0CCCD only extracts the PROBLEMS section into a CCD. 90595 "PKG",21 3,22,1,1,21,0)90607 "PKG",210,22,1,1,24,0) 90596 90608 90597 "PKG",21 3,22,1,1,22,0)90609 "PKG",210,22,1,1,25,0) 90598 90610 XPAT^C0CCCR(DFN,OUTDIR,OUTFILE) 90599 "PKG",21 3,22,1,1,23,0)90611 "PKG",210,22,1,1,26,0) 90600 90612 A command line and program interface to export a single patient's CCR 90601 "PKG",21 3,22,1,1,24,0)90613 "PKG",210,22,1,1,27,0) 90602 90614 using the IEN of the patient in the ^DPT file (DFN). 90603 "PKG",21 3,22,1,1,25,0)90615 "PKG",210,22,1,1,28,0) 90604 90616 OUTDIR specifies an existing directory on the Host system into which the 90605 "PKG",21 3,22,1,1,26,0)90617 "PKG",210,22,1,1,29,0) 90606 90618 CCR XML document will be written. If OUTDIR is null (""), the output 90607 "PKG",21 3,22,1,1,27,0)90619 "PKG",210,22,1,1,30,0) 90608 90620 directory name will be taken from ^TMP("C0CCCR","ODIR"). 90609 "PKG",21 3,22,1,1,28,0)90621 "PKG",210,22,1,1,31,0) 90610 90622 OUFILE specifies the host file name of the CCR XML document that will be 90611 "PKG",21 3,22,1,1,29,0)90623 "PKG",210,22,1,1,32,0) 90612 90624 written for this patient. If OUTFILE is null ("") the document name will 90613 "PKG",21 3,22,1,1,30,0)90625 "PKG",210,22,1,1,33,0) 90614 90626 default to PAT_x_CCR_V1.xml where x is the DFN of the patient. 90615 "PKG",21 3,22,1,1,31,0)90627 "PKG",210,22,1,1,34,0) 90616 90628 90617 "PKG",21 3,22,1,1,32,0)90629 "PKG",210,22,1,1,35,0) 90618 90630 CCRRPC(CCRGRTN,DFN,CCRPARMS,CCRPART) 90619 "PKG",21 3,22,1,1,33,0)90631 "PKG",210,22,1,1,36,0) 90620 90632 An RPC and program interface to return in return array CCRGRTN (passed by 90621 "PKG",21 3,22,1,1,34,0)90633 "PKG",210,22,1,1,37,0) 90622 90634 reference) a single patient's CCR. 90623 "PKG",21 3,22,1,1,35,0)90635 "PKG",210,22,1,1,38,0) 90624 90636 DFN is the patient's IEN 90625 "PKG",21 3,22,1,1,36,0)90637 "PKG",210,22,1,1,39,0) 90626 90638 CCRPART is what portion of the CCR should be returned. If "CCR" is 90627 "PKG",21 3,22,1,1,37,0)90639 "PKG",210,22,1,1,40,0) 90628 90640 specified, the entire CCR will be returned. If "PROBLEMS", "VITALS", or 90629 "PKG",21 3,22,1,1,38,0)90641 "PKG",210,22,1,1,41,0) 90630 90642 "MEDICATIONS" is specified, only that section of the CCR will be returned. 90631 "PKG",21 3,22,1,1,39,0)90643 "PKG",210,22,1,1,42,0) 90632 90644 CCRPARMS ARE PARAMETERS THAT AFFECT THE EXTRACTION 90633 "PKG",21 3,22,1,1,40,0)90645 "PKG",210,22,1,1,43,0) 90634 90646 IN THE FORM "PARM1:VALUE1^PARM2:VALUE2" 90635 "PKG",21 3,22,1,1,41,0)90647 "PKG",210,22,1,1,44,0) 90636 90648 EXAMPLE: "LABLIMIT:T-60" TO LIMIT LAB EXTRACTION TO THE LAST 60 DAYS 90637 "PKG",21 3,22,1,1,42,0)90649 "PKG",210,22,1,1,45,0) 90638 90650 SEE C0CPARMS FOR A COMPLETE LIST OF SUPPORTED PARAMETERS 90639 "PKG",21 3,22,1,1,43,0)90651 "PKG",210,22,1,1,46,0) 90640 90652 90641 "PKG",21 3,22,1,1,44,0)90653 "PKG",210,22,1,1,47,0) 90642 90654 ANALYZE^C0CRIMA(BGNDFN,DFNCNT,CCRPARMS) 90643 "PKG",21 3,22,1,1,45,0)90655 "PKG",210,22,1,1,48,0) 90644 90656 A command line and program interface to analyze the data from multiple 90645 "PKG",21 3,22,1,1,46,0)90657 "PKG",210,22,1,1,49,0) 90646 90658 patients into categories that can be batch extracted. 90647 "PKG",21 3,22,1,1,47,0)90659 "PKG",210,22,1,1,50,0) 90648 90660 BGNDFN is the beginning DFN to be analyzed. If BGNDFN is null ("") its 90649 "PKG",21 3,22,1,1,48,0)90661 "PKG",210,22,1,1,51,0) 90650 90662 value will be taken from ^TMP("C0CRIM","RESUME"). If this variable does 90651 "PKG",21 3,22,1,1,49,0)90663 "PKG",210,22,1,1,52,0) 90652 90664 not exist, the routine will start with the first IEN in the patient file 90653 "PKG",21 3,22,1,1,50,0)90665 "PKG",210,22,1,1,53,0) 90654 90666 ^DPT. ^TMP("C0CRIM","RESUME") is updated to the "next" patient to be 90655 "PKG",21 3,22,1,1,51,0)90667 "PKG",210,22,1,1,54,0) 90656 90668 analyzed on successful completion. 90657 "PKG",21 3,22,1,1,52,0)90669 "PKG",210,22,1,1,55,0) 90658 90670 DFNCNT is the count of how many patient records will be analyzed in this 90659 "PKG",21 3,22,1,1,53,0)90671 "PKG",210,22,1,1,56,0) 90660 90672 execution. 90661 "PKG",21 3,22,1,1,54,0)90673 "PKG",210,22,1,1,57,0) 90662 90674 For example ANALYZE^C0CRIMA(1000,1000) would start at patient DFN 1000 90663 "PKG",21 3,22,1,1,55,0)90675 "PKG",210,22,1,1,58,0) 90664 90676 and analyzes 1000 patient records. ANALYZE^C0CRIMA("",1000) would then 90665 "PKG",21 3,22,1,1,56,0)90677 "PKG",210,22,1,1,59,0) 90666 90678 analyze the next 1000 patients. When the end of the patient file is 90667 "PKG",21 3,22,1,1,57,0)90679 "PKG",210,22,1,1,60,0) 90668 90680 reached, the routine terminates with a message that RESET^C0CRIMA would 90669 "PKG",21 3,22,1,1,58,0)90681 "PKG",210,22,1,1,61,0) 90670 90682 need to be called to restart the analysis. 90671 "PKG",21 3,22,1,1,59,0)90683 "PKG",210,22,1,1,62,0) 90672 90684 90673 "PKG",21 3,22,1,1,60,0)90685 "PKG",210,22,1,1,63,0) 90674 90686 The categories into which the records are analyzed consist of attribute 90675 "PKG",21 3,22,1,1,61,0)90687 "PKG",210,22,1,1,64,0) 90676 90688 strings. The attributes represent characteristics of the variables that 90677 "PKG",21 3,22,1,1,62,0)90689 "PKG",210,22,1,1,65,0) 90678 90690 can be extracted for a given patient into the CCR or the CCD. This 90679 "PKG",21 3,22,1,1,63,0)90691 "PKG",210,22,1,1,66,0) 90680 90692 version supports the following attributes: 90681 "PKG",21 3,22,1,1,64,0)90693 "PKG",210,22,1,1,67,0) 90682 90694 VITALS : the patient has variables for the VITALS section of the CCR/CCD 90683 "PKG",21 3,22,1,1,65,0)90695 "PKG",210,22,1,1,68,0) 90684 90696 PROBLEMS : the patient has variables for the PROBLEMS section of the 90685 "PKG",21 3,22,1,1,66,0)90697 "PKG",210,22,1,1,69,0) 90686 90698 CCR/CCD 90687 "PKG",21 3,22,1,1,67,0)90699 "PKG",210,22,1,1,70,0) 90688 90700 MEDS : the patient has variables for the MEDICATIONS section of the 90689 "PKG",21 3,22,1,1,68,0)90701 "PKG",210,22,1,1,71,0) 90690 90702 CCR/CCD 90691 "PKG",21 3,22,1,1,69,0)90703 "PKG",210,22,1,1,72,0) 90692 90704 HEADER : the patient has variables for the HEADER section of the CCR/CCD. 90693 "PKG",21 3,22,1,1,70,0)90705 "PKG",210,22,1,1,73,0) 90694 90706 All patients are marked with the HEADER attribute in this version. 90695 "PKG",21 3,22,1,1,71,0)90707 "PKG",210,22,1,1,74,0) 90696 90708 NOTEXTRACTED : the CCR or CCD has not yet been produced/extracted for 90697 "PKG",21 3,22,1,1,72,0)90709 "PKG",210,22,1,1,75,0) 90698 90710 this patient. All patient records are marked with the NOTEXTRACTED 90699 "PKG",21 3,22,1,1,73,0)90711 "PKG",210,22,1,1,76,0) 90700 90712 attribute in this version for batch control processing (not implemented 90701 "PKG",21 3,22,1,1,74,0)90713 "PKG",210,22,1,1,77,0) 90702 90714 in this version). 90703 "PKG",21 3,22,1,1,75,0)90715 "PKG",210,22,1,1,78,0) 90704 90716 90705 "PKG",21 3,22,1,1,76,0)90717 "PKG",210,22,1,1,79,0) 90706 90718 ANAZYZE^C0CRIMA calls the variable extraction routines that would be used 90707 "PKG",21 3,22,1,1,77,0)90719 "PKG",210,22,1,1,80,0) 90708 90720 to produce a CCR or a CCD and saves the results to ^TMP("C0CRIM",DFN) for 90709 "PKG",21 3,22,1,1,78,0)90721 "PKG",210,22,1,1,81,0) 90710 90722 each patient. In addition, the attribute string for each patient is saved 90711 "PKG",21 3,22,1,1,79,0)90723 "PKG",210,22,1,1,82,0) 90712 90724 in ^TMP("C0CRIM","ATTR") 90713 "PKG",21 3,22,1,1,80,0)90725 "PKG",210,22,1,1,83,0) 90714 90726 90715 "PKG",21 3,22,1,1,81,0)90727 "PKG",210,22,1,1,84,0) 90716 90728 Categories are created as they first occur based on each unique 90717 "PKG",21 3,22,1,1,82,0)90729 "PKG",210,22,1,1,85,0) 90718 90730 combination of attributes that is encountered. They are named after the 90719 "PKG",21 3,22,1,1,83,0)90731 "PKG",210,22,1,1,86,0) 90720 90732 attribute table that is used for the analysis. This version supports only 90721 "PKG",21 3,22,1,1,84,0)90733 "PKG",210,22,1,1,87,0) 90722 90734 the attribute table .RIMTBL. and the categories are named "RIMTBL_x". An 90723 "PKG",21 3,22,1,1,85,0)90735 "PKG",210,22,1,1,88,0) 90724 90736 example set of categories from a demo systems is: 90725 "PKG",21 3,22,1,1,86,0)90737 "PKG",210,22,1,1,89,0) 90726 90738 90727 "PKG",21 3,22,1,1,87,0)90739 "PKG",210,22,1,1,90,0) 90728 90740 GTM>D CLIST^C0CRIMA 90729 "PKG",21 3,22,1,1,88,0)90741 "PKG",210,22,1,1,91,0) 90730 90742 (RIMTBL_1:105) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS^^^^^MEDS 90731 "PKG",21 3,22,1,1,89,0)90743 "PKG",210,22,1,1,92,0) 90732 90744 (RIMTBL_2:596) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS 90733 "PKG",21 3,22,1,1,90,0)90745 "PKG",210,22,1,1,93,0) 90734 90746 (RIMTBL_3:44) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^VITALS 90735 "PKG",21 3,22,1,1,91,0)90747 "PKG",210,22,1,1,94,0) 90736 90748 (RIMTBL_4:821) ^NOTEXTRACTED^HEADER 90737 "PKG",21 3,22,1,1,92,0)90749 "PKG",210,22,1,1,95,0) 90738 90750 (RIMTBL_5:18) ^NOTEXTRACTED^HEADER^^^^^^^^VITALS^^^^^MEDS 90739 "PKG",21 3,22,1,1,93,0)90751 "PKG",210,22,1,1,96,0) 90740 90752 (RIMTBL_6:14) ^NOTEXTRACTED^HEADER^^^PROBLEMS 90741 "PKG",21 3,22,1,1,94,0)90753 "PKG",210,22,1,1,97,0) 90742 90754 (RIMTBL_7:15) ^NOTEXTRACTED^HEADER^^^^^^^^^^^^^MEDS 90743 "PKG",21 3,22,1,1,95,0)90755 "PKG",210,22,1,1,98,0) 90744 90756 (RIMTBL_8:5) ^NOTEXTRACTED^HEADER^^^PROBLEMS^^^^^^^^^^MEDS 90745 "PKG",21 3,22,1,1,96,0)90757 "PKG",210,22,1,1,99,0) 90746 90758 90747 "PKG",21 3,22,1,1,97,0)90759 "PKG",210,22,1,1,100,0) 90748 90760 for RIMTBL_1 in this example, 105 is the record count of patients who 90749 "PKG",21 3,22,1,1,98,0)90761 "PKG",210,22,1,1,101,0) 90750 90762 have this combination of attributes. The list of patients for each 90751 "PKG",21 3,22,1,1,99,0)90763 "PKG",210,22,1,1,102,0) 90752 90764 category is also maintained for batch extraction. 90753 "PKG",21 3,22,1,1,100,0)90765 "PKG",210,22,1,1,103,0) 90754 90766 90755 "PKG",21 3,22,1,1,101,0)90767 "PKG",210,22,1,1,104,0) 90756 90768 CLIST^C0CRIMA 90757 "PKG",21 3,22,1,1,102,0)90769 "PKG",210,22,1,1,105,0) 90758 90770 A command line interface to show a summary of the categories, record 90759 "PKG",21 3,22,1,1,103,0)90771 "PKG",210,22,1,1,106,0) 90760 90772 counts, and attributes that have been analyzed so far. It produces the 90761 "PKG",21 3,22,1,1,104,0)90773 "PKG",210,22,1,1,107,0) 90762 90774 listing in the example above from information stored in 90763 "PKG",21 3,22,1,1,105,0)90775 "PKG",210,22,1,1,108,0) 90764 90776 ^TMP("C0CRIM","CATS","RIMTBL"). It is intended for future versions that 90765 "PKG",21 3,22,1,1,106,0)90777 "PKG",210,22,1,1,109,0) 90766 90778 attribute tables be supported in addition to the default "RIMTBL". 90767 "PKG",21 3,22,1,1,107,0)90779 "PKG",210,22,1,1,110,0) 90768 90780 90769 "PKG",21 3,22,1,1,108,0)90781 "PKG",210,22,1,1,111,0) 90770 90782 CPAT^C0CRIMA(CPATCAT) 90771 "PKG",21 3,22,1,1,109,0)90783 "PKG",210,22,1,1,112,0) 90772 90784 A command line interface which shows the DFN numbers of the patients 90773 "PKG",21 3,22,1,1,110,0)90785 "PKG",210,22,1,1,113,0) 90774 90786 represented by the category CPATCAT. DFNs are listed 10 per line. For 90775 "PKG",21 3,22,1,1,111,0)90787 "PKG",210,22,1,1,114,0) 90776 90788 example: 90777 "PKG",21 3,22,1,1,112,0)90789 "PKG",210,22,1,1,115,0) 90778 90790 90779 "PKG",21 3,22,1,1,113,0)90791 "PKG",210,22,1,1,116,0) 90780 90792 GTM>D CPAT^C0CRIMA("RIMTBL_1") 90781 "PKG",21 3,22,1,1,114,0)90793 "PKG",210,22,1,1,117,0) 90782 90794 1 3 8 25 42 69 123 140 146 149 90783 "PKG",21 3,22,1,1,115,0)90795 "PKG",210,22,1,1,118,0) 90784 90796 151 168 204 205 217 218 224 228 229 231 90785 "PKG",21 3,22,1,1,116,0)90797 "PKG",210,22,1,1,119,0) 90786 90798 236 237 240 253 260 267 271 301 347 350 90787 "PKG",21 3,22,1,1,117,0)90799 "PKG",210,22,1,1,120,0) 90788 90800 366 379 384 391 407 418 419 420 428 433 90789 "PKG",21 3,22,1,1,118,0)90801 "PKG",210,22,1,1,121,0) 90790 90802 442 520 569 600 620 692 706 715 722 723 90791 "PKG",21 3,22,1,1,119,0)90803 "PKG",210,22,1,1,122,0) 90792 90804 724 728 730 744 745 746 747 748 749 750 90793 "PKG",21 3,22,1,1,120,0)90805 "PKG",210,22,1,1,123,0) 90794 90806 751 752 753 754 755 756 757 758 759 760 90795 "PKG",21 3,22,1,1,121,0)90807 "PKG",210,22,1,1,124,0) 90796 90808 761 762 763 764 765 766 767 768 769 770 90797 "PKG",21 3,22,1,1,122,0)90809 "PKG",210,22,1,1,125,0) 90798 90810 771 772 773 774 775 776 777 778 779 780 90799 "PKG",21 3,22,1,1,123,0)90811 "PKG",210,22,1,1,126,0) 90800 90812 100000 100001 100002 100003 100004 100005 100006 100007 100008 100009 90801 "PKG",21 3,22,1,1,124,0)90813 "PKG",210,22,1,1,127,0) 90802 90814 100010 100011 100012 100013 100014 90803 "PKG",21 3,22,1,1,125,0)90815 "PKG",210,22,1,1,128,0) 90804 90816 90805 "PKG",21 3,22,1,1,126,0)90817 "PKG",210,22,1,1,129,0) 90806 90818 These are the 105 patient records included in category "RIMTBL_1" from 90807 "PKG",21 3,22,1,1,127,0)90819 "PKG",210,22,1,1,130,0) 90808 90820 the above example. 90809 "PKG",21 3,22,1,1,128,0)90821 "PKG",210,22,1,1,131,0) 90810 90822 90811 "PKG",21 3,22,1,1,129,0)90823 "PKG",210,22,1,1,132,0) 90812 90824 DPATV^C0CRIMA(DFN,"SECTION") 90813 "PKG",21 3,22,1,1,130,0)90825 "PKG",210,22,1,1,133,0) 90814 90826 A command line interface to display the values of variables for a 90815 "PKG",21 3,22,1,1,131,0)90827 "PKG",210,22,1,1,134,0) 90816 90828 patient. "SECTION" can be any of the CCR sections. ie 90817 "PKG",21 3,22,1,1,132,0)90829 "PKG",210,22,1,1,135,0) 90818 90830 "ALERTS","RESULTS","MEDS". If SECTION is ommitted, all sections will be 90819 "PKG",21 3,22,1,1,133,0)90831 "PKG",210,22,1,1,136,0) 90820 90832 shown. An example: 90821 "PKG",21 3,22,1,1,134,0)90833 "PKG",210,22,1,1,137,0) 90822 90834 90823 "PKG",21 3,22,1,1,135,0)90835 "PKG",210,22,1,1,138,0) 90824 90836 GTM>D DPATV^C0CRIMA(2,"PROBLEMS") 90825 "PKG",21 3,22,1,1,136,0)90837 "PKG",210,22,1,1,139,0) 90826 90838 1 1^PROBLEMCODEVALUE^V18.0 90827 "PKG",21 3,22,1,1,137,0)90839 "PKG",210,22,1,1,140,0) 90828 90840 2 1^PROBLEMCODINGVERSION^ 90829 "PKG",21 3,22,1,1,138,0)90841 "PKG",210,22,1,1,141,0) 90830 90842 3 1^PROBLEMCONDITION^P 90831 "PKG",21 3,22,1,1,139,0)90843 "PKG",210,22,1,1,142,0) 90832 90844 4 1^PROBLEMDATEMOD^2005-07-19T00:00:00-05:00 90833 "PKG",21 3,22,1,1,140,0)90845 "PKG",210,22,1,1,143,0) 90834 90846 5 1^PROBLEMDATEOFONSET^1700--T00:00:00-05:00 90835 "PKG",21 3,22,1,1,141,0)90847 "PKG",210,22,1,1,144,0) 90836 90848 6 1^PROBLEMDESCRIPTION^Family History of Diabetes Mellitus (ICD-9-CM 90837 "PKG",21 3,22,1,1,142,0)90849 "PKG",210,22,1,1,145,0) 90838 90850 V18.0) 90839 "PKG",21 3,22,1,1,143,0)90851 "PKG",210,22,1,1,146,0) 90840 90852 7 1^PROBLEMDTREC^1701--T00:00:00-05:00 90841 "PKG",21 3,22,1,1,144,0)90853 "PKG",210,22,1,1,147,0) 90842 90854 8 1^PROBLEMHASCMT^ 90843 "PKG",21 3,22,1,1,145,0)90855 "PKG",210,22,1,1,148,0) 90844 90856 9 1^PROBLEMIEN^8 90845 "PKG",21 3,22,1,1,146,0)90857 "PKG",210,22,1,1,149,0) 90846 90858 10 1^PROBLEMINACT^1700--T00:00:00-05:00 90847 "PKG",21 3,22,1,1,147,0)90859 "PKG",210,22,1,1,150,0) 90848 90860 90849 "PKG",21 3,22,1,1,148,0)90861 "PKG",210,22,1,1,151,0) 90850 90862 DCCR^C0CCCR(DFN) 90851 "PKG",21 3,22,1,1,149,0)90863 "PKG",210,22,1,1,152,0) 90852 90864 This will display the XML of a CCR that has been generated for a patient. 90853 "PKG",21 3,22,1,1,150,0)90865 "PKG",210,22,1,1,153,0) 90854 90866 It is run after generating the CCR with XPAT^C0CCCR or XCPAT^C0CRIMA. 90855 "PKG",21 3,22,1,1,151,0)90867 "PKG",210,22,1,1,154,0) 90856 90868 90857 "PKG",21 3,22,1,1,152,0)90869 "PKG",210,22,1,1,155,0) 90858 90870 XCPAT^C0CRIMA(CPATCAT) 90859 "PKG",21 3,22,1,1,153,0)90871 "PKG",210,22,1,1,156,0) 90860 90872 A command line interface to extract a batch of patient CCR documents that 90861 "PKG",21 3,22,1,1,154,0)90873 "PKG",210,22,1,1,157,0) 90862 90874 are associated with the category CPATCAT. For example, 90863 "PKG",21 3,22,1,1,155,0)90875 "PKG",210,22,1,1,158,0) 90864 90876 90865 "PKG",21 3,22,1,1,156,0)90877 "PKG",210,22,1,1,159,0) 90866 90878 XCPAT^C0CRIMA("RIMTBL_1") to extract the CCR documents for the 105 90867 "PKG",21 3,22,1,1,157,0)90879 "PKG",210,22,1,1,160,0) 90868 90880 patients in the above example. 90869 "PKG",21 3,22,1,1,158,0)90881 "PKG",210,22,1,1,161,0) 90870 90882 90871 "PKG",21 3,22,1,1,159,0)90883 "PKG",210,22,1,1,162,0) 90872 90884 RESET^C0CRIMA 90873 "PKG",21 3,22,1,1,160,0)90885 "PKG",210,22,1,1,163,0) 90874 90886 A command line interface to kill all ANALYZE^C0CRIMA results stored so 90875 "PKG",21 3,22,1,1,161,0)90887 "PKG",210,22,1,1,164,0) 90876 90888 far so that the analysis can be done again. It kills 90877 "PKG",21 3,22,1,1,162,0)90889 "PKG",210,22,1,1,165,0) 90878 90890 ^TMP("C0CRIM","RESUME") and all extraction variables that have been saved 90879 "PKG",21 3,22,1,1,163,0)90891 "PKG",210,22,1,1,166,0) 90880 90892 in ^TMP("C0CRIM") 90881 "PKG",21 3,22,1,1,164,0)90893 "PKG",210,22,1,1,167,0) 90882 90894 90883 "PKG",21 3,22,1,1,165,0)90895 "PKG",210,22,1,1,168,0) 90884 90896 NOTES: 90885 "PKG",21 3,22,1,1,166,0)90897 "PKG",210,22,1,1,169,0) 90886 90898 This version of the package is a prototype, and does not yet make use of 90887 "PKG",21 3,22,1,1,167,0)90899 "PKG",210,22,1,1,170,0) 90888 90900 the standard VistA features that are appropriate for it to use. 90889 "PKG",21 3,22,1,1,168,0)90901 "PKG",210,22,1,1,171,0) 90890 90902 90891 "PKG",21 3,22,1,1,169,0)90903 "PKG",210,22,1,1,172,0) 90892 90904 ^TMP("C0CCCR","ODIR") must be set manually to the output directory on the 90893 "PKG",21 3,22,1,1,170,0)90905 "PKG",210,22,1,1,173,0) 90894 90906 Host System. It is intended that this be maintainable in a parameter file. 90895 "PKG",21 3,22,1,1,171,0)90907 "PKG",210,22,1,1,174,0) 90896 90908 90897 "PKG",21 3,22,1,1,172,0)90909 "PKG",210,22,1,1,175,0) 90898 90910 CCRRPC^C0CCCR and CCDRPC^C0CCCD are intended to be RPC interfaces to the 90899 "PKG",21 3,22,1,1,173,0)90911 "PKG",210,22,1,1,176,0) 90900 90912 package but there is no entry for them in the RPC table and the RPC 90901 "PKG",21 3,22,1,1,174,0)90913 "PKG",210,22,1,1,177,0) 90902 90914 method of access has not been tested. 90903 "PKG",21 3,22,1,1,175,0)90915 "PKG",210,22,1,1,178,0) 90904 90916 90905 "PKG",21 3,22,1,1,176,0)90917 "PKG",210,22,1,1,179,0) 90906 90918 Most of the command line interface functions in the package are intended 90907 "PKG",21 3,22,1,1,177,0)90919 "PKG",210,22,1,1,180,0) 90908 90920 to also be made available as RPC calls. This will provide the ability to 90909 "PKG",21 3,22,1,1,178,0)90921 "PKG",210,22,1,1,181,0) 90910 90922 invoke and control batch extraction and analysis via RPCs 90911 "PKG",21 3,22,1,1,179,0)90923 "PKG",210,22,1,1,182,0) 90912 90924 90913 "PKG",21 3,22,1,1,180,0)90925 "PKG",210,22,1,1,183,0) 90914 90926 The "RIM" variables and attributes that are now being stored in 90915 "PKG",21 3,22,1,1,181,0)90927 "PKG",210,22,1,1,184,0) 90916 90928 ^TMP("C0CRIM") are intended to be maintained in a standard FILEMAN 90917 "PKG",21 3,22,1,1,182,0)90929 "PKG",210,22,1,1,185,0) 90918 90930 global, and to take advantage of FILEMAN indexing for efficient batch 90919 "PKG",21 3,22,1,1,183,0)90931 "PKG",210,22,1,1,186,0) 90920 90932 analysis and processing. 90921 "PKG",21 3,22,1,1,184,0)90933 "PKG",210,22,1,1,187,0) 90922 90934 90923 "PKG",21 3,22,1,1,185,0)90935 "PKG",210,22,1,1,188,0) 90924 90936 It is intended that menu interfaces be provided in addition to command 90925 "PKG",21 3,"VERSION")90937 "PKG",210,"VERSION") 90926 90938 1.2 90927 90939 "PRE") … … 91000 91012 79 91001 91013 "RTN","C0CACTOR") 91002 0^47^B9 973374291014 0^47^B98169360 91003 91015 "RTN","C0CACTOR",1,0) 91004 C0CACTOR ; CCDCCR/GPL - CCR/CCD PROCESSING FOR ACTORS ; 7/3/08 91016 C0CACTOR ; CCDCCR/GPL - CCR/CCD PROCESSING FOR ACTORS ; 7/3/08 ; 10/29/12 4:04pm 91005 91017 "RTN","C0CACTOR",2,0) 91006 ;;1.2;C 0C;;May 11, 2012;Build 5091018 ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 91007 91019 "RTN","C0CACTOR",3,0) 91008 91020 ;Copyright 2008,2009 George Lilly, University of Minnesota. 91009 91021 "RTN","C0CACTOR",4,0) 91010 ; Licensed under the terms of the GNU General Public License.91022 ; 91011 91023 "RTN","C0CACTOR",5,0) 91012 ; See attached copy of the License.91024 ; This program is free software: you can redistribute it and/or modify 91013 91025 "RTN","C0CACTOR",6,0) 91014 ; 91026 ; it under the terms of the GNU Affero General Public License as 91015 91027 "RTN","C0CACTOR",7,0) 91016 ; This program is free software; you can redistribute it and/or modify91028 ; published by the Free Software Foundation, either version 3 of the 91017 91029 "RTN","C0CACTOR",8,0) 91018 ; it under the terms of the GNU General Public License as published by91030 ; License, or (at your option) any later version. 91019 91031 "RTN","C0CACTOR",9,0) 91020 ; the Free Software Foundation; either version 2 of the License, or91032 ; 91021 91033 "RTN","C0CACTOR",10,0) 91022 ; (at your option) any later version.91034 ; This program is distributed in the hope that it will be useful, 91023 91035 "RTN","C0CACTOR",11,0) 91024 ; 91036 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 91025 91037 "RTN","C0CACTOR",12,0) 91026 ; This program is distributed in the hope that it will be useful,91038 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 91027 91039 "RTN","C0CACTOR",13,0) 91028 ; but WITHOUT ANY WARRANTY; without even the implied warranty of91040 ; GNU Affero General Public License for more details. 91029 91041 "RTN","C0CACTOR",14,0) 91030 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the91042 ; 91031 91043 "RTN","C0CACTOR",15,0) 91032 ; GNU General Public License for more details.91044 ; You should have received a copy of the GNU Affero General Public License 91033 91045 "RTN","C0CACTOR",16,0) 91034 ; 91046 ; along with this program. If not, see <http://www.gnu.org/licenses/>. 91035 91047 "RTN","C0CACTOR",17,0) 91036 ; You should have received a copy of the GNU General Public License along91048 ; 91037 91049 "RTN","C0CACTOR",18,0) 91038 ; with this program; if not, write to the Free Software Foundation, Inc.,91050 ; PROCESS THE ACTORS SECTION OF THE CCR 91039 91051 "RTN","C0CACTOR",19,0) 91040 ; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.91052 ; 91041 91053 "RTN","C0CACTOR",20,0) 91042 ; 91054 ; ===Revision History=== 91043 91055 "RTN","C0CACTOR",21,0) 91044 ; PROCESS THE ACTORS SECTION OF THE CCR91056 ; 0.1 Initial Writing of Skeleton--GPL 91045 91057 "RTN","C0CACTOR",22,0) 91046 ; 91058 ; 0.2 Patient Data Extraction--SMH 91047 91059 "RTN","C0CACTOR",23,0) 91048 ; ===Revision History===91060 ; 0.3 Information System Info Extraction--SMH 91049 91061 "RTN","C0CACTOR",24,0) 91050 ; 0. 1 Initial Writing of Skeleton--GPL91062 ; 0.4 Patient data rouine refactored; adjustments here--SMH 91051 91063 "RTN","C0CACTOR",25,0) 91052 ; 0.2 Patient Data Extraction--SMH91064 ; 91053 91065 "RTN","C0CACTOR",26,0) 91054 ; 0.3 Information System Info Extraction--SMH 91066 EXTRACT(IPXML,ALST,AXML) ; EXTRACT ACTOR FROM ALST INTO PROVIDED XML TEMPLATE 91055 91067 "RTN","C0CACTOR",27,0) 91056 ; 0.4 Patient data rouine refactored; adjustments here--SMH91068 ; IPXML is the Input Actor Template into which we substitute values 91057 91069 "RTN","C0CACTOR",28,0) 91058 ; 91070 ; This is straight XML. Values to be substituted are in @@VAL@@ format. 91059 91071 "RTN","C0CACTOR",29,0) 91060 EXTRACT(IPXML,ALST,AXML) ; EXTRACT ACTOR FROM ALST INTO PROVIDED XML TEMPLATE 91072 ; ALST is the actor list global generated by ACTLST^C0CCCR and has format: 91061 91073 "RTN","C0CACTOR",30,0) 91062 ; IPXML is the Input Actor Template into which we substitute values91074 ; ^TMP(7542,1,"ACTORS",0)=Count 91063 91075 "RTN","C0CACTOR",31,0) 91064 ; This is straight XML. Values to be substituted are in @@VAL@@ format.91076 ; ^TMP(7542,1,"ACTORS",n)="ActorID^ActorType^ActorIEN" 91065 91077 "RTN","C0CACTOR",32,0) 91066 ; A LST is the actor list global generated by ACTLST^C0CCCR and has format:91078 ; ActorType is an enum containing either "PROVIDER" "PATIENT" "SYSTEM" 91067 91079 "RTN","C0CACTOR",33,0) 91068 ; ^TMP(7542,1,"ACTORS",0)=Count91080 ; AXML is the output arrary, to contain XML. 91069 91081 "RTN","C0CACTOR",34,0) 91070 ; ^TMP(7542,1,"ACTORS",n)="ActorID^ActorType^ActorIEN"91082 ; 91071 91083 "RTN","C0CACTOR",35,0) 91072 ; ActorType is an enum containing either "PROVIDER" "PATIENT" "SYSTEM"91084 N I,J,AMAP,AOID,ATYP,AIEN 91073 91085 "RTN","C0CACTOR",36,0) 91074 ; AXML is the output arrary, to contain XML.91086 D CP^C0CXPATH(IPXML,AXML) ; MAKE A COPY OF ACTORS XML 91075 91087 "RTN","C0CACTOR",37,0) 91076 ;91088 D REPLACE^C0CXPATH(AXML,"","//Actors") ; DELETE THE INSIDES 91077 91089 "RTN","C0CACTOR",38,0) 91078 N I,J,AMAP,AOID,ATYP,AIEN91090 I DEBUG W "PROCESSING ACTORS ",! 91079 91091 "RTN","C0CACTOR",39,0) 91080 D CP^C0CXPATH(IPXML,AXML) ; MAKE A COPY OF ACTORS XML91092 F I=1:1:@ALST@(0) D ; PROCESS ALL ACTORS IN THE LIST 91081 91093 "RTN","C0CACTOR",40,0) 91082 D REPLACE^C0CXPATH(AXML,"","//Actors") ; DELETE THE INSIDES91094 . I @ALST@(I)["@@" Q ; NOT A VALID ACTOR 91083 91095 "RTN","C0CACTOR",41,0) 91084 I DEBUG W "PROCESSING ACTORS ",!91096 . S AOID=$P(@ALST@(I),"^",1) ; ACTOR OBJECT ID 91085 91097 "RTN","C0CACTOR",42,0) 91086 F I=1:1:@ALST@(0) D ; PROCESS ALL ACTORS IN THE LIST91098 . S ATYP=$P(@ALST@(I),"^",2) ; ACTOR TYPE 91087 91099 "RTN","C0CACTOR",43,0) 91088 . I @ALST@(I)["@@" Q ; NOT A VALID ACTOR91100 . S AIEN=$P(@ALST@(I),"^",3) ; ACTOR RECORD NUMBER 91089 91101 "RTN","C0CACTOR",44,0) 91090 . S AOID=$P(@ALST@(I),"^",1) ; ACTOR OBJECT ID91102 . I AIEN="" D Q ; IEN CAN'T BE NULL 91091 91103 "RTN","C0CACTOR",45,0) 91092 . S ATYP=$P(@ALST@(I),"^",2) ; ACTOR TYPE91104 . . W "WARING NUL ACTOR: ",ATYP,! 91093 91105 "RTN","C0CACTOR",46,0) 91094 . S AIEN=$P(@ALST@(I),"^",3) ; ACTOR RECORD NUMBER91106 . I ATYP="" Q ; NOT A VALID ACTOR 91095 91107 "RTN","C0CACTOR",47,0) 91096 . I AIEN="" D Q ; IEN CAN'T BE NULL91108 . ; 91097 91109 "RTN","C0CACTOR",48,0) 91098 . . W "WARING NUL ACTOR: ",ATYP,!91110 . I DEBUG W AOID_" "_ATYP_" "_AIEN,! 91099 91111 "RTN","C0CACTOR",49,0) 91100 . I ATYP=" " Q ; NOT A VALID ACTOR91112 . I ATYP="PATIENT" D ; PATIENT ACTOR TYPE 91101 91113 "RTN","C0CACTOR",50,0) 91114 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-PATIENT","ATMP") 91115 "RTN","C0CACTOR",51,0) 91116 . . D PATIENT("ATMP",AIEN,AOID,"ATMP2") 91117 "RTN","C0CACTOR",52,0) 91102 91118 . ; 91103 "RTN","C0CACTOR",51,0)91104 . I DEBUG W AOID_" "_ATYP_" "_AIEN,!91105 "RTN","C0CACTOR",52,0)91106 . I ATYP="PATIENT" D ; PATIENT ACTOR TYPE91107 91119 "RTN","C0CACTOR",53,0) 91108 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-PATIENT","ATMP")91120 . I ATYP="SYSTEM" D ; SYSTEM ACTOR TYPE 91109 91121 "RTN","C0CACTOR",54,0) 91110 . . D PATIENT("ATMP",AIEN,AOID,"ATMP2")91122 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-SYSTEM","ATMP") 91111 91123 "RTN","C0CACTOR",55,0) 91124 . . D SYSTEM("ATMP",AIEN,AOID,"ATMP2") 91125 "RTN","C0CACTOR",56,0) 91112 91126 . ; 91113 "RTN","C0CACTOR",56,0)91114 . I ATYP="SYSTEM" D ; SYSTEM ACTOR TYPE91115 91127 "RTN","C0CACTOR",57,0) 91116 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-SYSTEM","ATMP")91128 . I ATYP="NOK" D ; NOK ACTOR TYPE 91117 91129 "RTN","C0CACTOR",58,0) 91118 . . D SYSTEM("ATMP",AIEN,AOID,"ATMP2")91130 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-NOK","ATMP") 91119 91131 "RTN","C0CACTOR",59,0) 91132 . . D NOK("ATMP",AIEN,AOID,"ATMP2") 91133 "RTN","C0CACTOR",60,0) 91120 91134 . ; 91121 "RTN","C0CACTOR",60,0)91122 . I ATYP="NOK" D ; NOK ACTOR TYPE91123 91135 "RTN","C0CACTOR",61,0) 91124 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-NOK","ATMP")91136 . I ATYP="PROVIDER" D ; PROVIDER ACTOR TYPE 91125 91137 "RTN","C0CACTOR",62,0) 91126 . . D NOK("ATMP",AIEN,AOID,"ATMP2")91138 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-PROVIDER","ATMP") 91127 91139 "RTN","C0CACTOR",63,0) 91140 . . D PROVIDER("ATMP",AIEN,AOID,"ATMP2") 91141 "RTN","C0CACTOR",64,0) 91128 91142 . ; 91129 "RTN","C0CACTOR",64,0)91130 . I ATYP="PROVIDER" D ; PROVIDER ACTOR TYPE91131 91143 "RTN","C0CACTOR",65,0) 91132 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-PROVIDER","ATMP")91144 . I ATYP="ORGANIZATION" D ; PROVIDER ACTOR TYPE 91133 91145 "RTN","C0CACTOR",66,0) 91134 . . D PROVIDER("ATMP",AIEN,AOID,"ATMP2")91146 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-ORG","ATMP") 91135 91147 "RTN","C0CACTOR",67,0) 91148 . . D ORG("ATMP",AIEN,AOID,"ATMP2") 91149 "RTN","C0CACTOR",68,0) 91136 91150 . ; 91137 "RTN","C0CACTOR",68,0)91138 . I ATYP="ORGANIZATION" D ; PROVIDER ACTOR TYPE91139 91151 "RTN","C0CACTOR",69,0) 91140 . . D QUERY^C0CXPATH(IPXML,"//Actors/ACTOR-ORG","ATMP")91152 . W "PROCESSING:",ATYP," ",AIEN,! 91141 91153 "RTN","C0CACTOR",70,0) 91142 . . D ORG("ATMP",AIEN,AOID,"ATMP2")91154 . ;I @ATMP2@(0)=0 Q ; NOTHING RETURNED, SKIP THIS ONE 91143 91155 "RTN","C0CACTOR",71,0) 91144 . ;91156 . D INSINNER^C0CXPATH(AXML,"ATMP2") ; INSERT INTO ROOT 91145 91157 "RTN","C0CACTOR",72,0) 91146 . W "PROCESSING:",ATYP," ",AIEN,!91158 . K ATYP,AIEN,AOID,ATMP,ATMP2 ; BE SURE TO GET THE NEXT ONE 91147 91159 "RTN","C0CACTOR",73,0) 91148 . ;I @ATMP2@(0)=0 Q ; NOTHING RETURNED, SKIP THIS ONE91160 ; 91149 91161 "RTN","C0CACTOR",74,0) 91150 . D INSINNER^C0CXPATH(AXML,"ATMP2") ; INSERT INTO ROOT91162 N ACTTMP 91151 91163 "RTN","C0CACTOR",75,0) 91152 . K ATYP,AIEN,AOID,ATMP,ATMP2 ; BE SURE TO GET THE NEXT ONE91164 D MISSING^C0CXPATH(AXML,"ACTTMP") ; SEARCH XML FOR MISSING VARS 91153 91165 "RTN","C0CACTOR",76,0) 91154 ;91166 I ACTTMP(0)>0 D ; IF THERE ARE MISSING VARS - 91155 91167 "RTN","C0CACTOR",77,0) 91156 N ACTTMP91168 . ; STRINGS MARKED AS @@X@@ 91157 91169 "RTN","C0CACTOR",78,0) 91158 D MISSING^C0CXPATH(AXML,"ACTTMP") ; SEARCH XML FOR MISSING VARS91170 . W "ACTORS Missing list: ",! 91159 91171 "RTN","C0CACTOR",79,0) 91160 I ACTTMP(0)>0 D ; IF THERE ARE MISSING VARS -91172 . F I=1:1:ACTTMP(0) W ACTTMP(I),! 91161 91173 "RTN","C0CACTOR",80,0) 91162 . ; STRINGS MARKED AS @@X@@91174 Q 91163 91175 "RTN","C0CACTOR",81,0) 91164 . W "ACTORS Missing list: ",!91176 ; 91165 91177 "RTN","C0CACTOR",82,0) 91166 . F I=1:1:ACTTMP(0) W ACTTMP(I),! 91178 PATIENT(INXML,AIEN,AOID,OUTXML) ; PROCESS A PATIENT ACTOR 91167 91179 "RTN","C0CACTOR",83,0) 91180 I DEBUG W "PROCESSING ACTOR PATIENT ",AIEN,! 91181 "RTN","C0CACTOR",84,0) 91182 ;GPL SEPARATED EXTRACT FROM MAP FOR PROCESSING PATIENTS - TO MAKE 91183 "RTN","C0CACTOR",85,0) 91184 ; CODE REUSABLE FROM ERX 91185 "RTN","C0CACTOR",86,0) 91186 N AMAP 91187 "RTN","C0CACTOR",87,0) 91188 S AMAP=$NA(^TMP($J,"AMAP")) 91189 "RTN","C0CACTOR",88,0) 91190 K @AMAP 91191 "RTN","C0CACTOR",89,0) 91192 D PEXTRACT(AMAP,AIEN,AOID) ;EXTRACT THE PATIENT ACTOR 91193 "RTN","C0CACTOR",90,0) 91194 I $P($$SITE^VASITE(),U,2)="OROVILLE HOSPITAL" S C0CDE=1 91195 "RTN","C0CACTOR",91,0) 91196 I $G(C0CDE)'="" D DEIDENT(AMAP,AIEN) ; DEIDENTIFY THE CCR 91197 "RTN","C0CACTOR",92,0) 91198 D MAP(INXML,AMAP,OUTXML) ;MAP TO XML 91199 "RTN","C0CACTOR",93,0) 91200 K @AMAP ; CLEAN UP BEHIND US 91201 "RTN","C0CACTOR",94,0) 91168 91202 Q 91169 "RTN","C0CACTOR",84,0)91170 ;91171 "RTN","C0CACTOR",85,0)91172 PATIENT(INXML,AIEN,AOID,OUTXML) ; PROCESS A PATIENT ACTOR91173 "RTN","C0CACTOR",86,0)91174 I DEBUG W "PROCESSING ACTOR PATIENT ",AIEN,!91175 "RTN","C0CACTOR",87,0)91176 ;GPL SEPARATED EXTRACT FROM MAP FOR PROCESSING PATIENTS - TO MAKE91177 "RTN","C0CACTOR",88,0)91178 ; CODE REUSABLE FROM ERX91179 "RTN","C0CACTOR",89,0)91180 N AMAP91181 "RTN","C0CACTOR",90,0)91182 S AMAP=$NA(^TMP($J,"AMAP"))91183 "RTN","C0CACTOR",91,0)91184 K @AMAP91185 "RTN","C0CACTOR",92,0)91186 D PEXTRACT(AMAP,AIEN,AOID) ;EXTRACT THE PATIENT ACTOR91187 "RTN","C0CACTOR",93,0)91188 I $P($$SITE^VASITE(),U,2)="OROVILLE HOSPITAL" S C0CDE=191189 "RTN","C0CACTOR",94,0)91190 I $G(C0CDE)'="" D DEIDENT(AMAP,AIEN) ; DEIDENTIFY THE CCR91191 91203 "RTN","C0CACTOR",95,0) 91192 D MAP(INXML,AMAP,OUTXML) ;MAP TO XML91204 ; 91193 91205 "RTN","C0CACTOR",96,0) 91194 K @AMAP ; CLEAN UP BEHIND US 91206 DEIDENT(GPL,ZDFN) ; QUICK WAY TO DEIDENTIFY THE CCR 91195 91207 "RTN","C0CACTOR",97,0) 91208 S @GPL@("ACTORADDRESSCITY")="ALTON" 91209 "RTN","C0CACTOR",98,0) 91210 S @GPL@("ACTORADDRESSLINE1")="1234 Somewhere Lane" 91211 "RTN","C0CACTOR",99,0) 91212 S @GPL@("ACTORADDRESSLINE2")="" 91213 "RTN","C0CACTOR",100,0) 91214 S @GPL@("ACTORADDRESSSOURCEID")="ACTORPATIENT_"_ZDFN 91215 "RTN","C0CACTOR",101,0) 91216 S @GPL@("ACTORADDRESSSTATE")="KANSAS" 91217 "RTN","C0CACTOR",102,0) 91218 S @GPL@("ACTORADDRESSTYPE")="Home" 91219 "RTN","C0CACTOR",103,0) 91220 S @GPL@("ACTORADDRESSZIPCODE")=67623 91221 "RTN","C0CACTOR",104,0) 91222 S @GPL@("ACTORCELLTEL")="" 91223 "RTN","C0CACTOR",105,0) 91224 S @GPL@("ACTORCELLTELTEXT")="" 91225 "RTN","C0CACTOR",106,0) 91226 S @GPL@("ACTORDATEOFBIRTH")="1957-12-25" 91227 "RTN","C0CACTOR",107,0) 91228 S @GPL@("ACTOREMAIL")="" 91229 "RTN","C0CACTOR",108,0) 91230 S @GPL@("ACTORFAMILYNAME")="ZZ PATIENT"_ZDFN 91231 "RTN","C0CACTOR",109,0) 91232 ;S @GPL@("ACTORGENDER")="MALE" 91233 "RTN","C0CACTOR",110,0) 91234 S @GPL@("ACTORGIVENNAME")="TEST"_ZDFN 91235 "RTN","C0CACTOR",111,0) 91236 S @GPL@("ACTORIEN")=2 91237 "RTN","C0CACTOR",112,0) 91238 S @GPL@("ACTORMIDDLENAME")="TWO" 91239 "RTN","C0CACTOR",113,0) 91240 S @GPL@("ACTOROBJECTID")="ACTORPATIENT_"_ZDFN 91241 "RTN","C0CACTOR",114,0) 91242 S @GPL@("ACTORRESTEL")="888-555-1212" 91243 "RTN","C0CACTOR",115,0) 91244 S @GPL@("ACTORRESTELTEXT")="Residential Telephone" 91245 "RTN","C0CACTOR",116,0) 91246 S @GPL@("ACTORSOURCEID")="ACTORSYSTEM_1" 91247 "RTN","C0CACTOR",117,0) 91248 S @GPL@("ACTORSSN")="769122557P" 91249 "RTN","C0CACTOR",118,0) 91250 S @GPL@("ACTORSSNSOURCEID")="ACTORPATIENT_"_ZDFN 91251 "RTN","C0CACTOR",119,0) 91252 S @GPL@("ACTORSSNTEXT")="SSN" 91253 "RTN","C0CACTOR",120,0) 91254 S @GPL@("ACTORSUFFIXNAME")="" 91255 "RTN","C0CACTOR",121,0) 91256 S @GPL@("ACTORWORKTEL")="888-121-1212" 91257 "RTN","C0CACTOR",122,0) 91258 S @GPL@("ACTORWORKTELTEXT")="Work Telephone" 91259 "RTN","C0CACTOR",123,0) 91196 91260 Q 91197 "RTN","C0CACTOR",98,0)91198 ;91199 "RTN","C0CACTOR",99,0)91200 DEIDENT(GPL,ZDFN) ; QUICK WAY TO DEIDENTIFY THE CCR91201 "RTN","C0CACTOR",100,0)91202 S @GPL@("ACTORADDRESSCITY")="ALTON"91203 "RTN","C0CACTOR",101,0)91204 S @GPL@("ACTORADDRESSLINE1")="1234 Somewhere Lane"91205 "RTN","C0CACTOR",102,0)91206 S @GPL@("ACTORADDRESSLINE2")=""91207 "RTN","C0CACTOR",103,0)91208 S @GPL@("ACTORADDRESSSOURCEID")="ACTORPATIENT_"_ZDFN91209 "RTN","C0CACTOR",104,0)91210 S @GPL@("ACTORADDRESSSTATE")="KANSAS"91211 "RTN","C0CACTOR",105,0)91212 S @GPL@("ACTORADDRESSTYPE")="Home"91213 "RTN","C0CACTOR",106,0)91214 S @GPL@("ACTORADDRESSZIPCODE")=6762391215 "RTN","C0CACTOR",107,0)91216 S @GPL@("ACTORCELLTEL")=""91217 "RTN","C0CACTOR",108,0)91218 S @GPL@("ACTORCELLTELTEXT")=""91219 "RTN","C0CACTOR",109,0)91220 S @GPL@("ACTORDATEOFBIRTH")="1957-12-25"91221 "RTN","C0CACTOR",110,0)91222 S @GPL@("ACTOREMAIL")=""91223 "RTN","C0CACTOR",111,0)91224 S @GPL@("ACTORFAMILYNAME")="ZZ PATIENT"_ZDFN91225 "RTN","C0CACTOR",112,0)91226 ;S @GPL@("ACTORGENDER")="MALE"91227 "RTN","C0CACTOR",113,0)91228 S @GPL@("ACTORGIVENNAME")="TEST"_ZDFN91229 "RTN","C0CACTOR",114,0)91230 S @GPL@("ACTORIEN")=291231 "RTN","C0CACTOR",115,0)91232 S @GPL@("ACTORMIDDLENAME")="TWO"91233 "RTN","C0CACTOR",116,0)91234 S @GPL@("ACTOROBJECTID")="ACTORPATIENT_"_ZDFN91235 "RTN","C0CACTOR",117,0)91236 S @GPL@("ACTORRESTEL")="888-555-1212"91237 "RTN","C0CACTOR",118,0)91238 S @GPL@("ACTORRESTELTEXT")="Residential Telephone"91239 "RTN","C0CACTOR",119,0)91240 S @GPL@("ACTORSOURCEID")="ACTORSYSTEM_1"91241 "RTN","C0CACTOR",120,0)91242 S @GPL@("ACTORSSN")="769122557P"91243 "RTN","C0CACTOR",121,0)91244 S @GPL@("ACTORSSNSOURCEID")="ACTORPATIENT_"_ZDFN91245 "RTN","C0CACTOR",122,0)91246 S @GPL@("ACTORSSNTEXT")="SSN"91247 "RTN","C0CACTOR",123,0)91248 S @GPL@("ACTORSUFFIXNAME")=""91249 91261 "RTN","C0CACTOR",124,0) 91250 S @GPL@("ACTORWORKTEL")="888-121-1212"91262 ; 91251 91263 "RTN","C0CACTOR",125,0) 91252 S @GPL@("ACTORWORKTELTEXT")="Work Telephone" 91264 PEXTRACT(AMAP,AIEN,AOID) ; EXTRACT TO RETURN ARRAY RARY PASSED BY NAME 91253 91265 "RTN","C0CACTOR",126,0) 91266 N ZX 91267 "RTN","C0CACTOR",127,0) 91268 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID 91269 "RTN","C0CACTOR",128,0) 91270 S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CDPT(AIEN) 91271 "RTN","C0CACTOR",129,0) 91272 S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CDPT(AIEN) 91273 "RTN","C0CACTOR",130,0) 91274 S @AMAP@("ACTORFAMILYNAME")=$$FAMILY^C0CDPT(AIEN) 91275 "RTN","C0CACTOR",131,0) 91276 S @AMAP@("ACTORDATEOFBIRTH")=$$DOB^C0CDPT(AIEN) 91277 "RTN","C0CACTOR",132,0) 91278 S @AMAP@("ACTORGENDER")=$P($$GENDER^C0CDPT(AIEN),U,2) 91279 "RTN","C0CACTOR",133,0) 91280 S @AMAP@("ACTORGENDERCODE")=$P($$GENDER^C0CDPT(AIEN),U,1) 91281 "RTN","C0CACTOR",134,0) 91282 S @AMAP@("ACTORSSN")="" 91283 "RTN","C0CACTOR",135,0) 91284 S @AMAP@("ACTORSSNTEXT")="" 91285 "RTN","C0CACTOR",136,0) 91286 S @AMAP@("ACTORSSNSOURCEID")="" 91287 "RTN","C0CACTOR",137,0) 91288 S X="MSCDPTID" ; ROUTINE TO TEST FOR MRN ON OPENVISTA 91289 "RTN","C0CACTOR",138,0) 91290 X ^%ZOSF("TEST") ; TEST TO SEE IF THE ROUTINE EXISTS 91291 "RTN","C0CACTOR",139,0) 91292 I $T S MRN=$$^MSCDPTID(DFN) ;TEST FOR MRN ON OPENVISTA ;GPL 91293 "RTN","C0CACTOR",140,0) 91294 I $G(MRN)'="" D ; IF MRN IS PRESENT 91295 "RTN","C0CACTOR",141,0) 91296 . S @AMAP@("ACTORSSN")=MRN 91297 "RTN","C0CACTOR",142,0) 91298 . S @AMAP@("ACTORSSNTEXT")="MRN" 91299 "RTN","C0CACTOR",143,0) 91300 . S @AMAP@("ACTORSSNSOURCEID")=AOID 91301 "RTN","C0CACTOR",144,0) 91302 E D ; NO MRN, USE SSN 91303 "RTN","C0CACTOR",145,0) 91304 . S ZX=$$SSN^C0CDPT(AIEN) 91305 "RTN","C0CACTOR",146,0) 91306 . I ZX'="" D ; IF THERE IS A SSN IN THE RECORD 91307 "RTN","C0CACTOR",147,0) 91308 . . S @AMAP@("ACTORSSN")=ZX 91309 "RTN","C0CACTOR",148,0) 91310 . . S @AMAP@("ACTORSSNTEXT")="SSN" 91311 "RTN","C0CACTOR",149,0) 91312 . . S @AMAP@("ACTORSSNSOURCEID")=AOID 91313 "RTN","C0CACTOR",150,0) 91314 S @AMAP@("ACTORADDRESSTYPE")=$$ADDRTYPE^C0CDPT(AIEN) 91315 "RTN","C0CACTOR",151,0) 91316 S @AMAP@("ACTORADDRESSLINE1")=$$ADDR1^C0CDPT(AIEN) 91317 "RTN","C0CACTOR",152,0) 91318 S @AMAP@("ACTORADDRESSLINE2")=$$ADDR2^C0CDPT(AIEN) 91319 "RTN","C0CACTOR",153,0) 91320 S @AMAP@("ACTORADDRESSCITY")=$$CITY^C0CDPT(AIEN) 91321 "RTN","C0CACTOR",154,0) 91322 S @AMAP@("ACTORADDRESSSTATE")=$$STATE^C0CDPT(AIEN) 91323 "RTN","C0CACTOR",155,0) 91324 S @AMAP@("ACTORADDRESSZIPCODE")=$$ZIP^C0CDPT(AIEN) 91325 "RTN","C0CACTOR",156,0) 91326 S @AMAP@("ACTORRESTEL")="" 91327 "RTN","C0CACTOR",157,0) 91328 S @AMAP@("ACTORRESTELTEXT")="" 91329 "RTN","C0CACTOR",158,0) 91330 S ZX=$$RESTEL^C0CDPT(AIEN) 91331 "RTN","C0CACTOR",159,0) 91332 I ZX'="" D ; IF THERE IS A RESIDENT PHONE IN THE RECORD 91333 "RTN","C0CACTOR",160,0) 91334 . S @AMAP@("ACTORRESTEL")=ZX 91335 "RTN","C0CACTOR",161,0) 91336 . S @AMAP@("ACTORRESTELTEXT")="Residential Telephone" 91337 "RTN","C0CACTOR",162,0) 91338 S @AMAP@("ACTORWORKTEL")="" 91339 "RTN","C0CACTOR",163,0) 91340 S @AMAP@("ACTORWORKTELTEXT")="" 91341 "RTN","C0CACTOR",164,0) 91342 S ZX=$$WORKTEL^C0CDPT(AIEN) 91343 "RTN","C0CACTOR",165,0) 91344 I ZX'="" D ; IF THERE IS A RESIDENT PHONE IN THE RECORD 91345 "RTN","C0CACTOR",166,0) 91346 . S @AMAP@("ACTORWORKTEL")=ZX 91347 "RTN","C0CACTOR",167,0) 91348 . S @AMAP@("ACTORWORKTELTEXT")="Work Telephone" 91349 "RTN","C0CACTOR",168,0) 91350 S @AMAP@("ACTORCELLTEL")="" 91351 "RTN","C0CACTOR",169,0) 91352 S @AMAP@("ACTORCELLTELTEXT")="" 91353 "RTN","C0CACTOR",170,0) 91354 S ZX=$$CELLTEL^C0CDPT(AIEN) 91355 "RTN","C0CACTOR",171,0) 91356 I ZX'="" D ; IF THERE IS A CELL PHONE IN THE RECORD 91357 "RTN","C0CACTOR",172,0) 91358 . S @AMAP@("ACTORCELLTEL")=ZX 91359 "RTN","C0CACTOR",173,0) 91360 . S @AMAP@("ACTORCELLTELTEXT")="Cell Phone" 91361 "RTN","C0CACTOR",174,0) 91362 S @AMAP@("ACTOREMAIL")=$$EMAIL^C0CDPT(AIEN) 91363 "RTN","C0CACTOR",175,0) 91364 S @AMAP@("ACTORADDRESSSOURCEID")=AOID 91365 "RTN","C0CACTOR",176,0) 91366 S @AMAP@("ACTORIEN")=AIEN 91367 "RTN","C0CACTOR",177,0) 91368 S @AMAP@("ACTORSUFFIXNAME")="" ; DOES VISTA STORE THE SUFFIX 91369 "RTN","C0CACTOR",178,0) 91370 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE 91371 "RTN","C0CACTOR",179,0) 91254 91372 Q 91255 "RTN","C0CACTOR",127,0)91256 ;91257 "RTN","C0CACTOR",128,0)91258 PEXTRACT(AMAP,AIEN,AOID) ; EXTRACT TO RETURN ARRAY RARY PASSED BY NAME91259 "RTN","C0CACTOR",129,0)91260 N ZX91261 "RTN","C0CACTOR",130,0)91262 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID91263 "RTN","C0CACTOR",131,0)91264 S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CDPT(AIEN)91265 "RTN","C0CACTOR",132,0)91266 S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CDPT(AIEN)91267 "RTN","C0CACTOR",133,0)91268 S @AMAP@("ACTORFAMILYNAME")=$$FAMILY^C0CDPT(AIEN)91269 "RTN","C0CACTOR",134,0)91270 S @AMAP@("ACTORDATEOFBIRTH")=$$DOB^C0CDPT(AIEN)91271 "RTN","C0CACTOR",135,0)91272 S @AMAP@("ACTORGENDER")=$P($$GENDER^C0CDPT(AIEN),U,2)91273 "RTN","C0CACTOR",136,0)91274 S @AMAP@("ACTORGENDERCODE")=$P($$GENDER^C0CDPT(AIEN),U,1)91275 "RTN","C0CACTOR",137,0)91276 S @AMAP@("ACTORSSN")=""91277 "RTN","C0CACTOR",138,0)91278 S @AMAP@("ACTORSSNTEXT")=""91279 "RTN","C0CACTOR",139,0)91280 S @AMAP@("ACTORSSNSOURCEID")=""91281 "RTN","C0CACTOR",140,0)91282 S X="MSCDPTID" ; ROUTINE TO TEST FOR MRN ON OPENVISTA91283 "RTN","C0CACTOR",141,0)91284 X ^%ZOSF("TEST") ; TEST TO SEE IF THE ROUTINE EXISTS91285 "RTN","C0CACTOR",142,0)91286 I $T S MRN=$$^MSCDPTID(DFN) ;TEST FOR MRN ON OPENVISTA ;GPL91287 "RTN","C0CACTOR",143,0)91288 I $G(MRN)'="" D ; IF MRN IS PRESENT91289 "RTN","C0CACTOR",144,0)91290 . S @AMAP@("ACTORSSN")=MRN91291 "RTN","C0CACTOR",145,0)91292 . S @AMAP@("ACTORSSNTEXT")="MRN"91293 "RTN","C0CACTOR",146,0)91294 . S @AMAP@("ACTORSSNSOURCEID")=AOID91295 "RTN","C0CACTOR",147,0)91296 E D ; NO MRN, USE SSN91297 "RTN","C0CACTOR",148,0)91298 . S ZX=$$SSN^C0CDPT(AIEN)91299 "RTN","C0CACTOR",149,0)91300 . I ZX'="" D ; IF THERE IS A SSN IN THE RECORD91301 "RTN","C0CACTOR",150,0)91302 . . S @AMAP@("ACTORSSN")=ZX91303 "RTN","C0CACTOR",151,0)91304 . . S @AMAP@("ACTORSSNTEXT")="SSN"91305 "RTN","C0CACTOR",152,0)91306 . . S @AMAP@("ACTORSSNSOURCEID")=AOID91307 "RTN","C0CACTOR",153,0)91308 S @AMAP@("ACTORADDRESSTYPE")=$$ADDRTYPE^C0CDPT(AIEN)91309 "RTN","C0CACTOR",154,0)91310 S @AMAP@("ACTORADDRESSLINE1")=$$ADDR1^C0CDPT(AIEN)91311 "RTN","C0CACTOR",155,0)91312 S @AMAP@("ACTORADDRESSLINE2")=$$ADDR2^C0CDPT(AIEN)91313 "RTN","C0CACTOR",156,0)91314 S @AMAP@("ACTORADDRESSCITY")=$$CITY^C0CDPT(AIEN)91315 "RTN","C0CACTOR",157,0)91316 S @AMAP@("ACTORADDRESSSTATE")=$$STATE^C0CDPT(AIEN)91317 "RTN","C0CACTOR",158,0)91318 S @AMAP@("ACTORADDRESSZIPCODE")=$$ZIP^C0CDPT(AIEN)91319 "RTN","C0CACTOR",159,0)91320 S @AMAP@("ACTORRESTEL")=""91321 "RTN","C0CACTOR",160,0)91322 S @AMAP@("ACTORRESTELTEXT")=""91323 "RTN","C0CACTOR",161,0)91324 S ZX=$$RESTEL^C0CDPT(AIEN)91325 "RTN","C0CACTOR",162,0)91326 I ZX'="" D ; IF THERE IS A RESIDENT PHONE IN THE RECORD91327 "RTN","C0CACTOR",163,0)91328 . S @AMAP@("ACTORRESTEL")=ZX91329 "RTN","C0CACTOR",164,0)91330 . S @AMAP@("ACTORRESTELTEXT")="Residential Telephone"91331 "RTN","C0CACTOR",165,0)91332 S @AMAP@("ACTORWORKTEL")=""91333 "RTN","C0CACTOR",166,0)91334 S @AMAP@("ACTORWORKTELTEXT")=""91335 "RTN","C0CACTOR",167,0)91336 S ZX=$$WORKTEL^C0CDPT(AIEN)91337 "RTN","C0CACTOR",168,0)91338 I ZX'="" D ; IF THERE IS A RESIDENT PHONE IN THE RECORD91339 "RTN","C0CACTOR",169,0)91340 . S @AMAP@("ACTORWORKTEL")=ZX91341 "RTN","C0CACTOR",170,0)91342 . S @AMAP@("ACTORWORKTELTEXT")="Work Telephone"91343 "RTN","C0CACTOR",171,0)91344 S @AMAP@("ACTORCELLTEL")=""91345 "RTN","C0CACTOR",172,0)91346 S @AMAP@("ACTORCELLTELTEXT")=""91347 "RTN","C0CACTOR",173,0)91348 S ZX=$$CELLTEL^C0CDPT(AIEN)91349 "RTN","C0CACTOR",174,0)91350 I ZX'="" D ; IF THERE IS A CELL PHONE IN THE RECORD91351 "RTN","C0CACTOR",175,0)91352 . S @AMAP@("ACTORCELLTEL")=ZX91353 "RTN","C0CACTOR",176,0)91354 . S @AMAP@("ACTORCELLTELTEXT")="Cell Phone"91355 "RTN","C0CACTOR",177,0)91356 S @AMAP@("ACTOREMAIL")=$$EMAIL^C0CDPT(AIEN)91357 "RTN","C0CACTOR",178,0)91358 S @AMAP@("ACTORADDRESSSOURCEID")=AOID91359 "RTN","C0CACTOR",179,0)91360 S @AMAP@("ACTORIEN")=AIEN91361 91373 "RTN","C0CACTOR",180,0) 91362 S @AMAP@("ACTORSUFFIXNAME")="" ; DOES VISTA STORE THE SUFFIX91374 ; 91363 91375 "RTN","C0CACTOR",181,0) 91364 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE 91376 MAP(INXML,AMAP,OUTXML) ;MAP ANY ACTOR TO XML 91365 91377 "RTN","C0CACTOR",182,0) 91378 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE 91379 "RTN","C0CACTOR",183,0) 91366 91380 Q 91367 "RTN","C0CACTOR",183,0)91368 ;91369 91381 "RTN","C0CACTOR",184,0) 91370 MAP(INXML,AMAP,OUTXML) ;MAP ANY ACTOR TO XML 91382 ; 91371 91383 "RTN","C0CACTOR",185,0) 91372 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE 91384 SYSTEM(INXML,AIEN,AOID,OUTXML) ; PROCESS A SYSTEM ACTOR 91373 91385 "RTN","C0CACTOR",186,0) 91374 Q91386 ; 91375 91387 "RTN","C0CACTOR",187,0) 91376 ;91388 ; N AMAP 91377 91389 "RTN","C0CACTOR",188,0) 91378 SYSTEM(INXML,AIEN,AOID,OUTXML) ; PROCESS A SYSTEM ACTOR 91390 S AMAP=$NA(^TMP($J,"AMAP")) 91379 91391 "RTN","C0CACTOR",189,0) 91392 K @AMAP 91393 "RTN","C0CACTOR",190,0) 91394 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID 91395 "RTN","C0CACTOR",191,0) 91396 S @AMAP@("ACTORINFOSYSNAME")=$$SYSNAME^C0CSYS 91397 "RTN","C0CACTOR",192,0) 91398 S @AMAP@("ACTORINFOSYSVER")=$$SYSVER^C0CSYS 91399 "RTN","C0CACTOR",193,0) 91400 S @AMAP@("ACTORINFOSYSSOURCEID")=AOID 91401 "RTN","C0CACTOR",194,0) 91402 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE 91403 "RTN","C0CACTOR",195,0) 91404 Q 91405 "RTN","C0CACTOR",196,0) 91380 91406 ; 91381 "RTN","C0CACTOR",190,0) 91407 "RTN","C0CACTOR",197,0) 91408 NOK(INXML,AIEN,AOID,OUTXML) ; PROCESS A NEXT OF KIN TYPE ACTOR 91409 "RTN","C0CACTOR",198,0) 91410 ; 91411 "RTN","C0CACTOR",199,0) 91382 91412 ; N AMAP 91383 "RTN","C0CACTOR", 191,0)91413 "RTN","C0CACTOR",200,0) 91384 91414 S AMAP=$NA(^TMP($J,"AMAP")) 91385 "RTN","C0CACTOR", 192,0)91415 "RTN","C0CACTOR",201,0) 91386 91416 K @AMAP 91387 "RTN","C0CACTOR", 193,0)91417 "RTN","C0CACTOR",202,0) 91388 91418 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID 91389 "RTN","C0CACTOR",194,0) 91390 S @AMAP@("ACTORINFOSYSNAME")=$$SYSNAME^C0CSYS 91391 "RTN","C0CACTOR",195,0) 91392 S @AMAP@("ACTORINFOSYSVER")=$$SYSVER^C0CSYS 91393 "RTN","C0CACTOR",196,0) 91394 S @AMAP@("ACTORINFOSYSSOURCEID")=AOID 91395 "RTN","C0CACTOR",197,0) 91419 "RTN","C0CACTOR",203,0) 91420 S @AMAP@("ACTORDISPLAYNAME")="" 91421 "RTN","C0CACTOR",204,0) 91422 S @AMAP@("ACTORRELATION")="" 91423 "RTN","C0CACTOR",205,0) 91424 S @AMAP@("ACTORRELATIONSOURCEID")="" 91425 "RTN","C0CACTOR",206,0) 91426 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE 91427 "RTN","C0CACTOR",207,0) 91396 91428 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE 91397 "RTN","C0CACTOR", 198,0)91429 "RTN","C0CACTOR",208,0) 91398 91430 Q 91399 "RTN","C0CACTOR", 199,0)91431 "RTN","C0CACTOR",209,0) 91400 91432 ; 91401 "RTN","C0CACTOR",2 00,0)91402 NOK(INXML,AIEN,AOID,OUTXML) ; PROCESS A NEXT OF KIN TYPE ACTOR91403 "RTN","C0CACTOR",2 01,0)91433 "RTN","C0CACTOR",210,0) 91434 ORG(INXML,AIEN,AOID,OUTXML) ; PROCESS AN ORGANIZATION TYPE ACTOR 91435 "RTN","C0CACTOR",211,0) 91404 91436 ; 91405 "RTN","C0CACTOR",202,0) 91437 "RTN","C0CACTOR",212,0) 91438 N AMAP,ZIEN,ZSITE 91439 "RTN","C0CACTOR",213,0) 91440 S AMAP=$NA(^TMP($J,"AMAP")) 91441 "RTN","C0CACTOR",214,0) 91442 K @AMAP 91443 "RTN","C0CACTOR",215,0) 91444 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID 91445 "RTN","C0CACTOR",216,0) 91446 S ZSITE=$$SITE^VASITE ; SITE FORMAT IEN^NAME^DATE 91447 "RTN","C0CACTOR",217,0) 91448 S ZIEN=$P(ZSITE,"^",1) 91449 "RTN","C0CACTOR",218,0) 91450 S @AMAP@("ORGANIZATIONNAME")=$P(ZSITE,U,2) 91451 "RTN","C0CACTOR",219,0) 91452 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" 91453 "RTN","C0CACTOR",220,0) 91454 S @AMAP@("ACTORADDRESSTYPE")="Office" 91455 "RTN","C0CACTOR",221,0) 91456 S @AMAP@("ACTORADDRESSLINE1")=$$GET1^DIQ(4,ZIEN_",",1.01) 91457 "RTN","C0CACTOR",222,0) 91458 S @AMAP@("ACTORADDRESSLINE2")=$$GET1^DIQ(4,ZIEN_",",1.02) 91459 "RTN","C0CACTOR",223,0) 91460 S @AMAP@("ACTORADDRESSCITY")=$$GET1^DIQ(4,ZIEN_",",1.03) 91461 "RTN","C0CACTOR",224,0) 91462 S @AMAP@("ACTORADDRESSSTATE")=$$GET1^DIQ(4,ZIEN_",",.02) 91463 "RTN","C0CACTOR",225,0) 91464 S @AMAP@("ACTORPOSTALCODE")=$$GET1^DIQ(4,ZIEN_",",1.04) 91465 "RTN","C0CACTOR",226,0) 91466 S @AMAP@("ACTORTELEPHONE")="" 91467 "RTN","C0CACTOR",227,0) 91468 S @AMAP@("ACTORTELEPHONETYPE")="" 91469 "RTN","C0CACTOR",228,0) 91470 S ZX=$$GET1^DIQ(4.03,"1,"_ZIEN_",",.03) 91471 "RTN","C0CACTOR",229,0) 91472 I ZX'="" D ; THERE IS A PHONE NUMBER AVAILABLE 91473 "RTN","C0CACTOR",230,0) 91474 . S @AMAP@("ACTORTELEPHONE")=ZX 91475 "RTN","C0CACTOR",231,0) 91476 . S @AMAP@("ACTORTELEPHONETYPE")="Office" 91477 "RTN","C0CACTOR",232,0) 91478 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE 91479 "RTN","C0CACTOR",233,0) 91480 K @AMAP 91481 "RTN","C0CACTOR",234,0) 91482 Q 91483 "RTN","C0CACTOR",235,0) 91484 ; 91485 "RTN","C0CACTOR",236,0) 91486 PROVIDER(INXML,AIEN,AOID,OUTXML) ; PROCESS A PROVIDER TYPE ACTOR 91487 "RTN","C0CACTOR",237,0) 91488 ; 91489 "RTN","C0CACTOR",238,0) 91406 91490 ; N AMAP 91407 "RTN","C0CACTOR",2 03,0)91491 "RTN","C0CACTOR",239,0) 91408 91492 S AMAP=$NA(^TMP($J,"AMAP")) 91409 "RTN","C0CACTOR",2 04,0)91493 "RTN","C0CACTOR",240,0) 91410 91494 K @AMAP 91411 "RTN","C0CACTOR",205,0) 91495 "RTN","C0CACTOR",241,0) 91496 I '$D(^VA(200,AIEN,0)) D Q ; IF NO PROVIDER RECORD (SHOULDN'T HAPPEN) 91497 "RTN","C0CACTOR",242,0) 91498 . W "WARNING - MISSING PROVIDER: ",AIEN,! 91499 "RTN","C0CACTOR",243,0) 91500 . S @OUTXML@(0)=0 ; SIGNAL NO OUTPUT 91501 "RTN","C0CACTOR",244,0) 91412 91502 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID 91413 "RTN","C0CACTOR",206,0) 91414 S @AMAP@("ACTORDISPLAYNAME")="" 91415 "RTN","C0CACTOR",207,0) 91416 S @AMAP@("ACTORRELATION")="" 91417 "RTN","C0CACTOR",208,0) 91418 S @AMAP@("ACTORRELATIONSOURCEID")="" 91419 "RTN","C0CACTOR",209,0) 91503 "RTN","C0CACTOR",245,0) 91504 S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CVA200(AIEN) 91505 "RTN","C0CACTOR",246,0) 91506 S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CVA200(AIEN) 91507 "RTN","C0CACTOR",247,0) 91508 S @AMAP@("ACTORFAMILYNAME")=$$FAMILY^C0CVA200(AIEN) 91509 "RTN","C0CACTOR",248,0) 91510 S @AMAP@("ACTORTITLE")=$$TITLE^C0CVA200(AIEN) 91511 "RTN","C0CACTOR",249,0) 91512 S @AMAP@("IDTYPE")=$P($$NPI^C0CVA200(AIEN),U,1) 91513 "RTN","C0CACTOR",250,0) 91514 S @AMAP@("ID")=$P($$NPI^C0CVA200(AIEN),U,2) 91515 "RTN","C0CACTOR",251,0) 91516 S @AMAP@("IDDESC")=$P($$NPI^C0CVA200(AIEN),U,3) 91517 "RTN","C0CACTOR",252,0) 91518 S @AMAP@("ACTORSPECIALITY")=$$SPEC^C0CVA200(AIEN) 91519 "RTN","C0CACTOR",253,0) 91520 S @AMAP@("ACTORADDRESSTYPE")=$$ADDTYPE^C0CVA200(AIEN) 91521 "RTN","C0CACTOR",254,0) 91522 S @AMAP@("ACTORADDRESSLINE1")=$$ADDLINE1^C0CVA200(AIEN) 91523 "RTN","C0CACTOR",255,0) 91524 S @AMAP@("ACTORADDRESSCITY")=$$CITY^C0CVA200(AIEN) 91525 "RTN","C0CACTOR",256,0) 91526 S @AMAP@("ACTORADDRESSSTATE")=$$STATE^C0CVA200(AIEN) 91527 "RTN","C0CACTOR",257,0) 91528 S @AMAP@("ACTORPOSTALCODE")=$$POSTCODE^C0CVA200(AIEN) 91529 "RTN","C0CACTOR",258,0) 91530 S @AMAP@("ACTORTELEPHONE")="" 91531 "RTN","C0CACTOR",259,0) 91532 S @AMAP@("ACTORTELEPHONETYPE")="" 91533 "RTN","C0CACTOR",260,0) 91534 S ZX=$$TEL^C0CVA200(AIEN) 91535 "RTN","C0CACTOR",261,0) 91536 I ZX'="" D ; THERE IS A PHONE NUMBER AVAILABLE 91537 "RTN","C0CACTOR",262,0) 91538 . S @AMAP@("ACTORTELEPHONE")=ZX 91539 "RTN","C0CACTOR",263,0) 91540 . S @AMAP@("ACTORTELEPHONETYPE")=$$TELTYPE^C0CVA200(AIEN) 91541 "RTN","C0CACTOR",264,0) 91542 S @AMAP@("ACTOREMAIL")=$$EMAIL^C0CVA200(AIEN) 91543 "RTN","C0CACTOR",265,0) 91544 S @AMAP@("ACTORADDRESSSOURCEID")="ACTORSYSTEM_1" 91545 "RTN","C0CACTOR",266,0) 91420 91546 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE 91421 "RTN","C0CACTOR",210,0) 91547 "RTN","C0CACTOR",267,0) 91548 S @AMAP@("ACTORORGLINK")="ACTORORGANIZATION_1" 91549 "RTN","C0CACTOR",268,0) 91422 91550 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE 91423 "RTN","C0CACTOR",2 11,0)91551 "RTN","C0CACTOR",269,0) 91424 91552 Q 91425 "RTN","C0CACTOR",212,0)91426 ;91427 "RTN","C0CACTOR",213,0)91428 ORG(INXML,AIEN,AOID,OUTXML) ; PROCESS AN ORGANIZATION TYPE ACTOR91429 "RTN","C0CACTOR",214,0)91430 ;91431 "RTN","C0CACTOR",215,0)91432 N AMAP,ZIEN,ZSITE91433 "RTN","C0CACTOR",216,0)91434 S AMAP=$NA(^TMP($J,"AMAP"))91435 "RTN","C0CACTOR",217,0)91436 K @AMAP91437 "RTN","C0CACTOR",218,0)91438 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID91439 "RTN","C0CACTOR",219,0)91440 S ZSITE=$$SITE^VASITE ; SITE FORMAT IEN^NAME^DATE91441 "RTN","C0CACTOR",220,0)91442 S ZIEN=$P(ZSITE,"^",1)91443 "RTN","C0CACTOR",221,0)91444 S @AMAP@("ORGANIZATIONNAME")=$P(ZSITE,U,2)91445 "RTN","C0CACTOR",222,0)91446 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1"91447 "RTN","C0CACTOR",223,0)91448 S @AMAP@("ACTORADDRESSTYPE")="Office"91449 "RTN","C0CACTOR",224,0)91450 S @AMAP@("ACTORADDRESSLINE1")=$$GET1^DIQ(4,ZIEN_",",1.01)91451 "RTN","C0CACTOR",225,0)91452 S @AMAP@("ACTORADDRESSLINE2")=$$GET1^DIQ(4,ZIEN_",",1.02)91453 "RTN","C0CACTOR",226,0)91454 S @AMAP@("ACTORADDRESSCITY")=$$GET1^DIQ(4,ZIEN_",",1.03)91455 "RTN","C0CACTOR",227,0)91456 S @AMAP@("ACTORADDRESSSTATE")=$$GET1^DIQ(4,ZIEN_",",.02)91457 "RTN","C0CACTOR",228,0)91458 S @AMAP@("ACTORPOSTALCODE")=$$GET1^DIQ(4,ZIEN_",",1.04)91459 "RTN","C0CACTOR",229,0)91460 S @AMAP@("ACTORTELEPHONE")=""91461 "RTN","C0CACTOR",230,0)91462 S @AMAP@("ACTORTELEPHONETYPE")=""91463 "RTN","C0CACTOR",231,0)91464 S ZX=$$GET1^DIQ(4.03,"1,"_ZIEN_",",.03)91465 "RTN","C0CACTOR",232,0)91466 I ZX'="" D ; THERE IS A PHONE NUMBER AVAILABLE91467 "RTN","C0CACTOR",233,0)91468 . S @AMAP@("ACTORTELEPHONE")=ZX91469 "RTN","C0CACTOR",234,0)91470 . S @AMAP@("ACTORTELEPHONETYPE")="Office"91471 "RTN","C0CACTOR",235,0)91472 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE91473 "RTN","C0CACTOR",236,0)91474 K @AMAP91475 "RTN","C0CACTOR",237,0)91476 Q91477 "RTN","C0CACTOR",238,0)91478 ;91479 "RTN","C0CACTOR",239,0)91480 PROVIDER(INXML,AIEN,AOID,OUTXML) ; PROCESS A PROVIDER TYPE ACTOR91481 "RTN","C0CACTOR",240,0)91482 ;91483 "RTN","C0CACTOR",241,0)91484 ; N AMAP91485 "RTN","C0CACTOR",242,0)91486 S AMAP=$NA(^TMP($J,"AMAP"))91487 "RTN","C0CACTOR",243,0)91488 K @AMAP91489 "RTN","C0CACTOR",244,0)91490 I '$D(^VA(200,AIEN,0)) D Q ; IF NO PROVIDER RECORD (SHOULDN'T HAPPEN)91491 "RTN","C0CACTOR",245,0)91492 . W "WARNING - MISSING PROVIDER: ",AIEN,!91493 "RTN","C0CACTOR",246,0)91494 . S @OUTXML@(0)=0 ; SIGNAL NO OUTPUT91495 "RTN","C0CACTOR",247,0)91496 S @AMAP@("ACTOROBJECTID")=AOID ;ACTOR OBJECT ID91497 "RTN","C0CACTOR",248,0)91498 S @AMAP@("ACTORGIVENNAME")=$$GIVEN^C0CVA200(AIEN)91499 "RTN","C0CACTOR",249,0)91500 S @AMAP@("ACTORMIDDLENAME")=$$MIDDLE^C0CVA200(AIEN)91501 "RTN","C0CACTOR",250,0)91502 S @AMAP@("ACTORFAMILYNAME")=$$FAMILY^C0CVA200(AIEN)91503 "RTN","C0CACTOR",251,0)91504 S @AMAP@("ACTORTITLE")=$$TITLE^C0CVA200(AIEN)91505 "RTN","C0CACTOR",252,0)91506 S @AMAP@("IDTYPE")=$P($$NPI^C0CVA200(AIEN),U,1)91507 "RTN","C0CACTOR",253,0)91508 S @AMAP@("ID")=$P($$NPI^C0CVA200(AIEN),U,2)91509 "RTN","C0CACTOR",254,0)91510 S @AMAP@("IDDESC")=$P($$NPI^C0CVA200(AIEN),U,3)91511 "RTN","C0CACTOR",255,0)91512 S @AMAP@("ACTORSPECIALITY")=$$SPEC^C0CVA200(AIEN)91513 "RTN","C0CACTOR",256,0)91514 S @AMAP@("ACTORADDRESSTYPE")=$$ADDTYPE^C0CVA200(AIEN)91515 "RTN","C0CACTOR",257,0)91516 S @AMAP@("ACTORADDRESSLINE1")=$$ADDLINE1^C0CVA200(AIEN)91517 "RTN","C0CACTOR",258,0)91518 S @AMAP@("ACTORADDRESSCITY")=$$CITY^C0CVA200(AIEN)91519 "RTN","C0CACTOR",259,0)91520 S @AMAP@("ACTORADDRESSSTATE")=$$STATE^C0CVA200(AIEN)91521 "RTN","C0CACTOR",260,0)91522 S @AMAP@("ACTORPOSTALCODE")=$$POSTCODE^C0CVA200(AIEN)91523 "RTN","C0CACTOR",261,0)91524 S @AMAP@("ACTORTELEPHONE")=""91525 "RTN","C0CACTOR",262,0)91526 S @AMAP@("ACTORTELEPHONETYPE")=""91527 "RTN","C0CACTOR",263,0)91528 S ZX=$$TEL^C0CVA200(AIEN)91529 "RTN","C0CACTOR",264,0)91530 I ZX'="" D ; THERE IS A PHONE NUMBER AVAILABLE91531 "RTN","C0CACTOR",265,0)91532 . S @AMAP@("ACTORTELEPHONE")=ZX91533 "RTN","C0CACTOR",266,0)91534 . S @AMAP@("ACTORTELEPHONETYPE")=$$TELTYPE^C0CVA200(AIEN)91535 "RTN","C0CACTOR",267,0)91536 S @AMAP@("ACTOREMAIL")=$$EMAIL^C0CVA200(AIEN)91537 "RTN","C0CACTOR",268,0)91538 S @AMAP@("ACTORADDRESSSOURCEID")="ACTORSYSTEM_1"91539 "RTN","C0CACTOR",269,0)91540 S @AMAP@("ACTORSOURCEID")="ACTORSYSTEM_1" ; THE SYSTEM IS THE SOURCE91541 91553 "RTN","C0CACTOR",270,0) 91542 S @AMAP@("ACTORORGLINK")="ACTORORGANIZATION_1"91543 "RTN","C0CACTOR",271,0)91544 D MAP^C0CXPATH(INXML,AMAP,OUTXML) ; MAP THE VARIABLE91545 "RTN","C0CACTOR",272,0)91546 Q91547 "RTN","C0CACTOR",273,0)91548 91554 ; 91549 91555 "RTN","C0CALERT") 91550 0^46^B31 62730991556 0^46^B31119471 91551 91557 "RTN","C0CALERT",1,0) 91552 C0CALERT ; CCDCCR/CKU/GPL - CCR/CCD PROCESSING FOR ALERTS ; 09/11/08 91558 C0CALERT ; CCDCCR/CKU/GPL - CCR/CCD PROCESSING FOR ALERTS ; 09/11/08 ; 10/29/12 4:04pm 91553 91559 "RTN","C0CALERT",2,0) 91554 ;;1.2;C 0C;;May 11, 2012;Build 5091560 ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 91555 91561 "RTN","C0CALERT",3,0) 91556 91562 ;Copyright 2008,2009 George Lilly, University of Minnesota and others. 91557 91563 "RTN","C0CALERT",4,0) 91558 ; Licensed under the terms of the GNU General Public License.91564 ; 91559 91565 "RTN","C0CALERT",5,0) 91560 ; See attached copy of the License.91566 ; This program is free software: you can redistribute it and/or modify 91561 91567 "RTN","C0CALERT",6,0) 91562 ; 91568 ; it under the terms of the GNU Affero General Public License as 91563 91569 "RTN","C0CALERT",7,0) 91564 ; This program is free software; you can redistribute it and/or modify91570 ; published by the Free Software Foundation, either version 3 of the 91565 91571 "RTN","C0CALERT",8,0) 91566 ; it under the terms of the GNU General Public License as published by91572 ; License, or (at your option) any later version. 91567 91573 "RTN","C0CALERT",9,0) 91568 ; the Free Software Foundation; either version 2 of the License, or91574 ; 91569 91575 "RTN","C0CALERT",10,0) 91570 ; (at your option) any later version.91576 ; This program is distributed in the hope that it will be useful, 91571 91577 "RTN","C0CALERT",11,0) 91572 ; 91578 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 91573 91579 "RTN","C0CALERT",12,0) 91574 ; This program is distributed in the hope that it will be useful,91580 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 91575 91581 "RTN","C0CALERT",13,0) 91576 ; but WITHOUT ANY WARRANTY; without even the implied warranty of91582 ; GNU Affero General Public License for more details. 91577 91583 "RTN","C0CALERT",14,0) 91578 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the91584 ; 91579 91585 "RTN","C0CALERT",15,0) 91580 ; GNU General Public License for more details.91586 ; You should have received a copy of the GNU Affero General Public License 91581 91587 "RTN","C0CALERT",16,0) 91582 ; 91588 ; along with this program. If not, see <http://www.gnu.org/licenses/>. 91583 91589 "RTN","C0CALERT",17,0) 91584 ; You should have received a copy of the GNU General Public License along91590 ; 91585 91591 "RTN","C0CALERT",18,0) 91586 ; with this program; if not, write to the Free Software Foundation, Inc.,91592 ; 91587 91593 "RTN","C0CALERT",19,0) 91588 ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.91594 W "NO ENTRY FROM TOP",! 91589 91595 "RTN","C0CALERT",20,0) 91590 ;91596 Q 91591 91597 "RTN","C0CALERT",21,0) 91592 W "NO ENTRY FROM TOP",!91598 ; 91593 91599 "RTN","C0CALERT",22,0) 91600 EXTRACT(ALTXML,DFN,ALTOUTXML,CALLBK) ; EXTRACT ALERTS INTO XML TEMPLATE 91601 "RTN","C0CALERT",23,0) 91602 ; CALLBACK IF PROVIDED IS CALLED FOR EACH ALLERGY BEFORE MAPPING 91603 "RTN","C0CALERT",24,0) 91604 ; ALTXML AND ALTOUTXML ARE PASSED BY NAME SO GLOBALS CAN BE USED 91605 "RTN","C0CALERT",25,0) 91606 ; 91607 "RTN","C0CALERT",26,0) 91608 ; GET ADVERSE REACTIONS AND ALLERGIES 91609 "RTN","C0CALERT",27,0) 91610 ; N GMRA,GMRAL ; FOR DEBUGGING, DON'T NEW THESE VARIABLES 91611 "RTN","C0CALERT",28,0) 91612 S GMRA="0^0^111" 91613 "RTN","C0CALERT",29,0) 91614 D EN1^GMRADPT 91615 "RTN","C0CALERT",30,0) 91616 I $G(GMRAL)'=1 D Q ; NO ALLERGIES FOUND THUS *QUIT* 91617 "RTN","C0CALERT",31,0) 91618 . S @ALTOUTXML@(0)=0 91619 "RTN","C0CALERT",32,0) 91620 ; DEFINE MAPPING 91621 "RTN","C0CALERT",33,0) 91622 N ALTTVMAP,ALTVMAP,ALTTARYTMP,ALTARYTMP 91623 "RTN","C0CALERT",34,0) 91624 S ALTTVMAP=$NA(^TMP("C0CCCR",$J,"ALERTS")) 91625 "RTN","C0CALERT",35,0) 91626 S ALTTARYTMP=$NA(^TMP("C0CCCR",$J,"ALERTSARYTMP")) 91627 "RTN","C0CALERT",36,0) 91628 K @ALTTVMAP,@ALTTARYTMP 91629 "RTN","C0CALERT",37,0) 91630 N ALTTMP,ALTCNT S ALTG=$NA(GMRAL),ALTCNT=1 91631 "RTN","C0CALERT",38,0) 91632 S ALTTMP="" ; 91633 "RTN","C0CALERT",39,0) 91634 F S ALTTMP=$O(@ALTG@(ALTTMP)) Q:ALTTMP="" D ; CHANGED TO $O BY GPL 91635 "RTN","C0CALERT",40,0) 91636 . W "ALTTMP="_ALTTMP,! 91637 "RTN","C0CALERT",41,0) 91638 . ; I $QS(ALTTMP,2)="S" W !,"S FOUND",! Q 91639 "RTN","C0CALERT",42,0) 91640 . S ALTVMAP=$NA(@ALTTVMAP@(ALTCNT)) 91641 "RTN","C0CALERT",43,0) 91642 . K @ALTVMAP 91643 "RTN","C0CALERT",44,0) 91644 . S @ALTVMAP@("ALERTOBJECTID")="ALERT"_ALTCNT 91645 "RTN","C0CALERT",45,0) 91646 . N A1 S A1=@ALTG@(ALTTMP) ; ALL THE PIECES 91647 "RTN","C0CALERT",46,0) 91648 . I $D(CALLBK) D @CALLBK ;CALLBACK FOR EPRESCRIBING 91649 "RTN","C0CALERT",47,0) 91650 . N A2 S A2=$$GET1^DIQ(120.8,ALTTMP,"MECHANISM","I") ; MECHANISM 91651 "RTN","C0CALERT",48,0) 91652 . N A3 S A3=$P(A1,U,5) ; ADVERSE FLAG 91653 "RTN","C0CALERT",49,0) 91654 . N ADT S ADT="Patient has an " ; X $ZINT H 5 91655 "RTN","C0CALERT",50,0) 91656 . S ADT=ADT_$S(A2="P":"ADVERSE",A2="A":"ALLERGIC",1:"UNKNOWN") 91657 "RTN","C0CALERT",51,0) 91658 . S ADT=ADT_" reaction to "_$P(@ALTG@(ALTTMP),U,2)_"." 91659 "RTN","C0CALERT",52,0) 91660 . S @ALTVMAP@("ALERTDESCRIPTIONTEXT")=ADT 91661 "RTN","C0CALERT",53,0) 91662 . N ADTY S ADTY=$S(A2="P":"Adverse Reaction",A2="A":"Allergy",1:"") ; 91663 "RTN","C0CALERT",54,0) 91664 . S @ALTVMAP@("ALERTTYPE")=ADTY ; type of allergy 91665 "RTN","C0CALERT",55,0) 91666 . N ALTCDE ; SNOMED CODE THE THE ALERT 91667 "RTN","C0CALERT",56,0) 91668 . S ALTCDE=$S(A2="P":"282100009",A2="A":"416098002",1:"") ; IF NOT ADVERSE, IT IS ALLERGIC 91669 "RTN","C0CALERT",57,0) 91670 . S @ALTVMAP@("ALERTCODEVALUE")=ALTCDE ; 91671 "RTN","C0CALERT",58,0) 91672 . ; WILL USE 418634005 FOR ALLERGIC REACTION TO A SUBSTANCE 91673 "RTN","C0CALERT",59,0) 91674 . ; AND 282100009 FOR ADVERSE REACTION TO A SUBSTANCE 91675 "RTN","C0CALERT",60,0) 91676 . I ALTCDE'="" D ; IF THERE IS A CODE 91677 "RTN","C0CALERT",61,0) 91678 . . S @ALTVMAP@("ALERTCODESYSTEM")="SNOMED CT" 91679 "RTN","C0CALERT",62,0) 91680 . . S @ALTVMAP@("ALERTCODESYSTEMVERSION")="2008" 91681 "RTN","C0CALERT",63,0) 91682 . E D ; SET TO NULL 91683 "RTN","C0CALERT",64,0) 91684 . . S @ALTVMAP@("ALERTCODESYSTEM")="" 91685 "RTN","C0CALERT",65,0) 91686 . . S @ALTVMAP@("ALERTCODESYSTEMVERSION")="" 91687 "RTN","C0CALERT",66,0) 91688 . S @ALTVMAP@("ALERTSTATUSTEXT")="" ; WHERE DO WE GET THIS? 91689 "RTN","C0CALERT",67,0) 91690 . N ALTPROV S ALTPROV=$P(^GMR(120.8,ALTTMP,0),U,5) ; SOURCE PROVIDER IEN 91691 "RTN","C0CALERT",68,0) 91692 . I ALTPROV'="" D ; PROVIDER PROVIDEED 91693 "RTN","C0CALERT",69,0) 91694 . . S @ALTVMAP@("ALERTSOURCEID")="ACTORPROVIDER_"_ALTPROV 91695 "RTN","C0CALERT",70,0) 91696 . E S @ALTVMAP@("ALERTSOURCEID")="" ; SOURCE NULL - SHOULD NOT HAPPEN 91697 "RTN","C0CALERT",71,0) 91698 . W "RUNNING ALERTS, PROVIDER: ",@ALTVMAP@("ALERTSOURCEID"),! 91699 "RTN","C0CALERT",72,0) 91700 . N ACGL1,ACGFI,ACIEN,ACVUID,ACNM,ACTMP 91701 "RTN","C0CALERT",73,0) 91702 . S ACGL1=$P(@ALTG@(ALTTMP),U,9) ; ADDRESS OF THE REACTANT XX;GLB(YY.Z, 91703 "RTN","C0CALERT",74,0) 91704 . S ACGFI=$$PRSGLB($P(ACGL1,";",2)) ; FILE NUMBER 91705 "RTN","C0CALERT",75,0) 91706 . S ACIEN=$P(ACGL1,";",1) ; IEN OF REACTANT 91707 "RTN","C0CALERT",76,0) 91708 . S ACVUID=$$GET1^DIQ(ACGFI,ACIEN,"VUID") ; VUID OF THE REACTANT 91709 "RTN","C0CALERT",77,0) 91710 . S @ALTVMAP@("ALERTAGENTPRODUCTOBJECTID")="PRODUCT_"_ACIEN ; IE OF REACTANT 91711 "RTN","C0CALERT",78,0) 91712 . S @ALTVMAP@("ALERTAGENTPRODUCTSOURCEID")="" ; WHERE DO WE GET THIS? 91713 "RTN","C0CALERT",79,0) 91714 . S ACNM=$P(@ALTG@(ALTTMP),U,2) ; REACTANT 91715 "RTN","C0CALERT",80,0) 91716 . S @ALTVMAP@("ALERTAGENTPRODUCTNAMETEXT")=ACNM 91717 "RTN","C0CALERT",81,0) 91718 . N ZC,ZCD,ZCDS,ZCDSV ; CODE,CODE SYSTEM,CODE VERSION 91719 "RTN","C0CALERT",82,0) 91720 . S (ZC,ZCD,ZCDS,ZCDSV)="" ; INITIALIZE 91721 "RTN","C0CALERT",83,0) 91722 . I ACVUID'="" D ; IF VUID IS NOT NULL 91723 "RTN","C0CALERT",84,0) 91724 . . S ZC=$$CODE^C0CUTIL(ACVUID) 91725 "RTN","C0CALERT",85,0) 91726 . . S ZCD=$P(ZC,"^",1) ; CODE TO USE 91727 "RTN","C0CALERT",86,0) 91728 . . S ZCDS=$P(ZC,"^",2) ; CODING SYSTEM - RXNORM OR VUID 91729 "RTN","C0CALERT",87,0) 91730 . . S ZCDSV=$P(ZC,"^",3) ; CODING SYSTEM VERSION 91731 "RTN","C0CALERT",88,0) 91732 . E D ; IF REACTANT CODE VALUE IS NULL 91733 "RTN","C0CALERT",89,0) 91734 . . I $G(DUZ("AG"))="I" D ; IF WE ARE RUNNING ON RPMS 91735 "RTN","C0CALERT",90,0) 91736 . . . S ACTMP=$O(^C0CCODES(176.112,"C",ACNM,0)) ; 91737 "RTN","C0CALERT",91,0) 91738 . . . W "RPMS NAME FOUND",ACNM," ",ACTMP,! 91739 "RTN","C0CALERT",92,0) 91740 . . S @ALTVMAP@("ALERTAGENTPRODUCTCODESYSTEM")="" 91741 "RTN","C0CALERT",93,0) 91742 . . S @ALTVMAP@("ALERTAGENTPRODUCTCODEVALUE")="" 91743 "RTN","C0CALERT",94,0) 91744 . S @ALTVMAP@("ALERTAGENTPRODUCTCODEVALUE")=ZCD 91745 "RTN","C0CALERT",95,0) 91746 . S @ALTVMAP@("ALERTAGENTPRODUCTCODESYSTEM")=ZCDS 91747 "RTN","C0CALERT",96,0) 91748 . S @ALTVMAP@("ALERTAGENTPRODUCTNAMETEXT")=ACNM_" "_ZCDS_": "_ZCD 91749 "RTN","C0CALERT",97,0) 91750 . S @ALTVMAP@("ALERTDESCRIPTIONTEXT")=ADT_" "_ZCDS_": "_ZCD 91751 "RTN","C0CALERT",98,0) 91752 . ; REACTIONS - THIS SHOULD BE MULTIPLE, IS SINGLE NOW 91753 "RTN","C0CALERT",99,0) 91754 . N ARTMP,ARIEN,ARDES,ARVUID 91755 "RTN","C0CALERT",100,0) 91756 . S (ARTMP,ARDES,ARVUID)="" 91757 "RTN","C0CALERT",101,0) 91758 . I $D(@ALTG@(ALTTMP,"S",1)) D ; IF REACTION EXISTS 91759 "RTN","C0CALERT",102,0) 91760 . . S ARTMP=@ALTG@(ALTTMP,"S",1) 91761 "RTN","C0CALERT",103,0) 91762 . . W "REACTION:",ARTMP,! 91763 "RTN","C0CALERT",104,0) 91764 . . S ARIEN=$P(ARTMP,";",2) 91765 "RTN","C0CALERT",105,0) 91766 . . S ARDES=$P(ARTMP,";",1) 91767 "RTN","C0CALERT",106,0) 91768 . . S ARVUID=$$GET1^DIQ(120.83,ARIEN,"VUID") 91769 "RTN","C0CALERT",107,0) 91770 . S @ALTVMAP@("ALERTREACTIOINDESCRIPTIONTEXT")=ARDES 91771 "RTN","C0CALERT",108,0) 91772 . I ARVUID'="" D ; IF REACTION VUID IS NOT NULL 91773 "RTN","C0CALERT",109,0) 91774 . . S @ALTVMAP@("ALERTREACTIONCODEVALUE")=ARVUID 91775 "RTN","C0CALERT",110,0) 91776 . . S @ALTVMAP@("ALERTREACTIONCODESYSTEM")="VUID" 91777 "RTN","C0CALERT",111,0) 91778 . E D ; IF IT IS NULL DON'T SET CODE SYSTEM 91779 "RTN","C0CALERT",112,0) 91780 . . S @ALTVMAP@("ALERTREACTIONCODEVALUE")="" 91781 "RTN","C0CALERT",113,0) 91782 . . S @ALTVMAP@("ALERTREACTIONCODESYSTEM")="" 91783 "RTN","C0CALERT",114,0) 91784 . S ALTARYTMP=$NA(@ALTTARYTMP@(ALTCNT)) 91785 "RTN","C0CALERT",115,0) 91786 . ; NOW GO TO THE GLOBAL TO GET THE DATE/TIME AND BETTER DESCRIPTION 91787 "RTN","C0CALERT",116,0) 91788 . N C0CG1,C0CT ; ARRAY FOR VALUES FROM GLOBAL 91789 "RTN","C0CALERT",117,0) 91790 . D GETN1^C0CRNF("C0CG1",120.8,ALTTMP,"") ;GET VALUES BY NAME 91791 "RTN","C0CALERT",118,0) 91792 . S C0CT=$$ZVALUEI^C0CRNF("ORIGINATION DATE/TIME","C0CG1") 91793 "RTN","C0CALERT",119,0) 91794 . S @ALTVMAP@("ALERTDATETIME")=$$FMDTOUTC^C0CUTIL(C0CT,"DT") 91795 "RTN","C0CALERT",120,0) 91796 . K @ALTARYTMP 91797 "RTN","C0CALERT",121,0) 91798 . D MAP^C0CXPATH(ALTXML,ALTVMAP,ALTARYTMP) 91799 "RTN","C0CALERT",122,0) 91800 . I ALTCNT=1 D CP^C0CXPATH(ALTARYTMP,ALTOUTXML) 91801 "RTN","C0CALERT",123,0) 91802 . I ALTCNT>1 D INSINNER^C0CXPATH(ALTOUTXML,ALTARYTMP) 91803 "RTN","C0CALERT",124,0) 91804 . S ALTCNT=ALTCNT+1 91805 "RTN","C0CALERT",125,0) 91806 S @ALTTVMAP@(0)=ALTCNT-1 ; RECORD THE NUMBER OF ALERTS 91807 "RTN","C0CALERT",126,0) 91594 91808 Q 91595 "RTN","C0CALERT",23,0)91596 ;91597 "RTN","C0CALERT",24,0)91598 EXTRACT(ALTXML,DFN,ALTOUTXML,CALLBK) ; EXTRACT ALERTS INTO XML TEMPLATE91599 "RTN","C0CALERT",25,0)91600 ; CALLBACK IF PROVIDED IS CALLED FOR EACH ALLERGY BEFORE MAPPING91601 "RTN","C0CALERT",26,0)91602 ; ALTXML AND ALTOUTXML ARE PASSED BY NAME SO GLOBALS CAN BE USED91603 "RTN","C0CALERT",27,0)91604 ;91605 "RTN","C0CALERT",28,0)91606 ; GET ADVERSE REACTIONS AND ALLERGIES91607 "RTN","C0CALERT",29,0)91608 ; N GMRA,GMRAL ; FOR DEBUGGING, DON'T NEW THESE VARIABLES91609 "RTN","C0CALERT",30,0)91610 S GMRA="0^0^111"91611 "RTN","C0CALERT",31,0)91612 D EN1^GMRADPT91613 "RTN","C0CALERT",32,0)91614 I $G(GMRAL)'=1 D Q ; NO ALLERGIES FOUND THUS *QUIT*91615 "RTN","C0CALERT",33,0)91616 . S @ALTOUTXML@(0)=091617 "RTN","C0CALERT",34,0)91618 ; DEFINE MAPPING91619 "RTN","C0CALERT",35,0)91620 N ALTTVMAP,ALTVMAP,ALTTARYTMP,ALTARYTMP91621 "RTN","C0CALERT",36,0)91622 S ALTTVMAP=$NA(^TMP("C0CCCR",$J,"ALERTS"))91623 "RTN","C0CALERT",37,0)91624 S ALTTARYTMP=$NA(^TMP("C0CCCR",$J,"ALERTSARYTMP"))91625 "RTN","C0CALERT",38,0)91626 K @ALTTVMAP,@ALTTARYTMP91627 "RTN","C0CALERT",39,0)91628 N ALTTMP,ALTCNT S ALTG=$NA(GMRAL),ALTCNT=191629 "RTN","C0CALERT",40,0)91630 S ALTTMP="" ;91631 "RTN","C0CALERT",41,0)91632 F S ALTTMP=$O(@ALTG@(ALTTMP)) Q:ALTTMP="" D ; CHANGED TO $O BY GPL91633 "RTN","C0CALERT",42,0)91634 . W "ALTTMP="_ALTTMP,!91635 "RTN","C0CALERT",43,0)91636 . ; I $QS(ALTTMP,2)="S" W !,"S FOUND",! Q91637 "RTN","C0CALERT",44,0)91638 . S ALTVMAP=$NA(@ALTTVMAP@(ALTCNT))91639 "RTN","C0CALERT",45,0)91640 . K @ALTVMAP91641 "RTN","C0CALERT",46,0)91642 . S @ALTVMAP@("ALERTOBJECTID")="ALERT"_ALTCNT91643 "RTN","C0CALERT",47,0)91644 . N A1 S A1=@ALTG@(ALTTMP) ; ALL THE PIECES91645 "RTN","C0CALERT",48,0)91646 . I $D(CALLBK) D @CALLBK ;CALLBACK FOR EPRESCRIBING91647 "RTN","C0CALERT",49,0)91648 . N A2 S A2=$$GET1^DIQ(120.8,ALTTMP,"MECHANISM","I") ; MECHANISM91649 "RTN","C0CALERT",50,0)91650 . N A3 S A3=$P(A1,U,5) ; ADVERSE FLAG91651 "RTN","C0CALERT",51,0)91652 . N ADT S ADT="Patient has an " ; X $ZINT H 591653 "RTN","C0CALERT",52,0)91654 . S ADT=ADT_$S(A2="P":"ADVERSE",A2="A":"ALLERGIC",1:"UNKNOWN")91655 "RTN","C0CALERT",53,0)91656 . S ADT=ADT_" reaction to "_$P(@ALTG@(ALTTMP),U,2)_"."91657 "RTN","C0CALERT",54,0)91658 . S @ALTVMAP@("ALERTDESCRIPTIONTEXT")=ADT91659 "RTN","C0CALERT",55,0)91660 . N ADTY S ADTY=$S(A2="P":"Adverse Reaction",A2="A":"Allergy",1:"") ;91661 "RTN","C0CALERT",56,0)91662 . S @ALTVMAP@("ALERTTYPE")=ADTY ; type of allergy91663 "RTN","C0CALERT",57,0)91664 . N ALTCDE ; SNOMED CODE THE THE ALERT91665 "RTN","C0CALERT",58,0)91666 . S ALTCDE=$S(A2="P":"282100009",A2="A":"416098002",1:"") ; IF NOT ADVERSE, IT IS ALLERGIC91667 "RTN","C0CALERT",59,0)91668 . S @ALTVMAP@("ALERTCODEVALUE")=ALTCDE ;91669 "RTN","C0CALERT",60,0)91670 . ; WILL USE 418634005 FOR ALLERGIC REACTION TO A SUBSTANCE91671 "RTN","C0CALERT",61,0)91672 . ; AND 282100009 FOR ADVERSE REACTION TO A SUBSTANCE91673 "RTN","C0CALERT",62,0)91674 . I ALTCDE'="" D ; IF THERE IS A CODE91675 "RTN","C0CALERT",63,0)91676 . . S @ALTVMAP@("ALERTCODESYSTEM")="SNOMED CT"91677 "RTN","C0CALERT",64,0)91678 . . S @ALTVMAP@("ALERTCODESYSTEMVERSION")="2008"91679 "RTN","C0CALERT",65,0)91680 . E D ; SET TO NULL91681 "RTN","C0CALERT",66,0)91682 . . S @ALTVMAP@("ALERTCODESYSTEM")=""91683 "RTN","C0CALERT",67,0)91684 . . S @ALTVMAP@("ALERTCODESYSTEMVERSION")=""91685 "RTN","C0CALERT",68,0)91686 . S @ALTVMAP@("ALERTSTATUSTEXT")="" ; WHERE DO WE GET THIS?91687 "RTN","C0CALERT",69,0)91688 . N ALTPROV S ALTPROV=$P(^GMR(120.8,ALTTMP,0),U,5) ; SOURCE PROVIDER IEN91689 "RTN","C0CALERT",70,0)91690 . I ALTPROV'="" D ; PROVIDER PROVIDEED91691 "RTN","C0CALERT",71,0)91692 . . S @ALTVMAP@("ALERTSOURCEID")="ACTORPROVIDER_"_ALTPROV91693 "RTN","C0CALERT",72,0)91694 . E S @ALTVMAP@("ALERTSOURCEID")="" ; SOURCE NULL - SHOULD NOT HAPPEN91695 "RTN","C0CALERT",73,0)91696 . W "RUNNING ALERTS, PROVIDER: ",@ALTVMAP@("ALERTSOURCEID"),!91697 "RTN","C0CALERT",74,0)91698 . N ACGL1,ACGFI,ACIEN,ACVUID,ACNM,ACTMP91699 "RTN","C0CALERT",75,0)91700 . S ACGL1=$P(@ALTG@(ALTTMP),U,9) ; ADDRESS OF THE REACTANT XX;GLB(YY.Z,91701 "RTN","C0CALERT",76,0)91702 . S ACGFI=$$PRSGLB($P(ACGL1,";",2)) ; FILE NUMBER91703 "RTN","C0CALERT",77,0)91704 . S ACIEN=$P(ACGL1,";",1) ; IEN OF REACTANT91705 "RTN","C0CALERT",78,0)91706 . S ACVUID=$$GET1^DIQ(ACGFI,ACIEN,"VUID") ; VUID OF THE REACTANT91707 "RTN","C0CALERT",79,0)91708 . S @ALTVMAP@("ALERTAGENTPRODUCTOBJECTID")="PRODUCT_"_ACIEN ; IE OF REACTANT91709 "RTN","C0CALERT",80,0)91710 . S @ALTVMAP@("ALERTAGENTPRODUCTSOURCEID")="" ; WHERE DO WE GET THIS?91711 "RTN","C0CALERT",81,0)91712 . S ACNM=$P(@ALTG@(ALTTMP),U,2) ; REACTANT91713 "RTN","C0CALERT",82,0)91714 . S @ALTVMAP@("ALERTAGENTPRODUCTNAMETEXT")=ACNM91715 "RTN","C0CALERT",83,0)91716 . N ZC,ZCD,ZCDS,ZCDSV ; CODE,CODE SYSTEM,CODE VERSION91717 "RTN","C0CALERT",84,0)91718 . S (ZC,ZCD,ZCDS,ZCDSV)="" ; INITIALIZE91719 "RTN","C0CALERT",85,0)91720 . I ACVUID'="" D ; IF VUID IS NOT NULL91721 "RTN","C0CALERT",86,0)91722 . . S ZC=$$CODE^C0CUTIL(ACVUID)91723 "RTN","C0CALERT",87,0)91724 . . S ZCD=$P(ZC,"^",1) ; CODE TO USE91725 "RTN","C0CALERT",88,0)91726 . . S ZCDS=$P(ZC,"^",2) ; CODING SYSTEM - RXNORM OR VUID91727 "RTN","C0CALERT",89,0)91728 . . S ZCDSV=$P(ZC,"^",3) ; CODING SYSTEM VERSION91729 "RTN","C0CALERT",90,0)91730 . E D ; IF REACTANT CODE VALUE IS NULL91731 "RTN","C0CALERT",91,0)91732 . . I $G(DUZ("AG"))="I" D ; IF WE ARE RUNNING ON RPMS91733 "RTN","C0CALERT",92,0)91734 . . . S ACTMP=$O(^C0CCODES(176.112,"C",ACNM,0)) ;91735 "RTN","C0CALERT",93,0)91736 . . . W "RPMS NAME FOUND",ACNM," ",ACTMP,!91737 "RTN","C0CALERT",94,0)91738 . . S @ALTVMAP@("ALERTAGENTPRODUCTCODESYSTEM")=""91739 "RTN","C0CALERT",95,0)91740 . . S @ALTVMAP@("ALERTAGENTPRODUCTCODEVALUE")=""91741 "RTN","C0CALERT",96,0)91742 . S @ALTVMAP@("ALERTAGENTPRODUCTCODEVALUE")=ZCD91743 "RTN","C0CALERT",97,0)91744 . S @ALTVMAP@("ALERTAGENTPRODUCTCODESYSTEM")=ZCDS91745 "RTN","C0CALERT",98,0)91746 . S @ALTVMAP@("ALERTAGENTPRODUCTNAMETEXT")=ACNM_" "_ZCDS_": "_ZCD91747 "RTN","C0CALERT",99,0)91748 . S @ALTVMAP@("ALERTDESCRIPTIONTEXT")=ADT_" "_ZCDS_": "_ZCD91749 "RTN","C0CALERT",100,0)91750 . ; REACTIONS - THIS SHOULD BE MULTIPLE, IS SINGLE NOW91751 "RTN","C0CALERT",101,0)91752 . N ARTMP,ARIEN,ARDES,ARVUID91753 "RTN","C0CALERT",102,0)91754 . S (ARTMP,ARDES,ARVUID)=""91755 "RTN","C0CALERT",103,0)91756 . I $D(@ALTG@(ALTTMP,"S",1)) D ; IF REACTION EXISTS91757 "RTN","C0CALERT",104,0)91758 . . S ARTMP=@ALTG@(ALTTMP,"S",1)91759 "RTN","C0CALERT",105,0)91760 . . W "REACTION:",ARTMP,!91761 "RTN","C0CALERT",106,0)91762 . . S ARIEN=$P(ARTMP,";",2)91763 "RTN","C0CALERT",107,0)91764 . . S ARDES=$P(ARTMP,";",1)91765 "RTN","C0CALERT",108,0)91766 . . S ARVUID=$$GET1^DIQ(120.83,ARIEN,"VUID")91767 "RTN","C0CALERT",109,0)91768 . S @ALTVMAP@("ALERTREACTIOINDESCRIPTIONTEXT")=ARDES91769 "RTN","C0CALERT",110,0)91770 . I ARVUID'="" D ; IF REACTION VUID IS NOT NULL91771 "RTN","C0CALERT",111,0)91772 . . S @ALTVMAP@("ALERTREACTIONCODEVALUE")=ARVUID91773 "RTN","C0CALERT",112,0)91774 . . S @ALTVMAP@("ALERTREACTIONCODESYSTEM")="VUID"91775 "RTN","C0CALERT",113,0)91776 . E D ; IF IT IS NULL DON'T SET CODE SYSTEM91777 "RTN","C0CALERT",114,0)91778 . . S @ALTVMAP@("ALERTREACTIONCODEVALUE")=""91779 "RTN","C0CALERT",115,0)91780 . . S @ALTVMAP@("ALERTREACTIONCODESYSTEM")=""91781 "RTN","C0CALERT",116,0)91782 . S ALTARYTMP=$NA(@ALTTARYTMP@(ALTCNT))91783 "RTN","C0CALERT",117,0)91784 . ; NOW GO TO THE GLOBAL TO GET THE DATE/TIME AND BETTER DESCRIPTION91785 "RTN","C0CALERT",118,0)91786 . N C0CG1,C0CT ; ARRAY FOR VALUES FROM GLOBAL91787 "RTN","C0CALERT",119,0)91788 . D GETN1^C0CRNF("C0CG1",120.8,ALTTMP,"") ;GET VALUES BY NAME91789 "RTN","C0CALERT",120,0)91790 . S C0CT=$$ZVALUEI^C0CRNF("ORIGINATION DATE/TIME","C0CG1")91791 "RTN","C0CALERT",121,0)91792 . S @ALTVMAP@("ALERTDATETIME")=$$FMDTOUTC^C0CUTIL(C0CT,"DT")91793 "RTN","C0CALERT",122,0)91794 . K @ALTARYTMP91795 "RTN","C0CALERT",123,0)91796 . D MAP^C0CXPATH(ALTXML,ALTVMAP,ALTARYTMP)91797 "RTN","C0CALERT",124,0)91798 . I ALTCNT=1 D CP^C0CXPATH(ALTARYTMP,ALTOUTXML)91799 "RTN","C0CALERT",125,0)91800 . I ALTCNT>1 D INSINNER^C0CXPATH(ALTOUTXML,ALTARYTMP)91801 "RTN","C0CALERT",126,0)91802 . S ALTCNT=ALTCNT+191803 91809 "RTN","C0CALERT",127,0) 91804 S @ALTTVMAP@(0)=ALTCNT-1 ; RECORD THE NUMBER OF ALERTS 91810 PRSGLB(INGLB) ; EXTRINSIC TO PARSE GLOBALS AND RETURN THE FILE NUMBER 91805 91811 "RTN","C0CALERT",128,0) 91806 Q91812 ; INGLB IS OF THE FORM: PSNDF(50.6, 91807 91813 "RTN","C0CALERT",129,0) 91808 PRSGLB(INGLB) ; EXTRINSIC TO PARSE GLOBALS AND RETURN THE FILE NUMBER 91814 ; RETURN 50.6 91809 91815 "RTN","C0CALERT",130,0) 91810 ; INGLB IS OF THE FORM: PSNDF(50.6,91811 "RTN","C0CALERT",131,0)91812 ; RETURN 50.691813 "RTN","C0CALERT",132,0)91814 91816 Q $P($P(INGLB,"(",2),",",1) ; 91815 91817 "RTN","C0CBAT") 91816 0^57^B56 97157491818 0^57^B56229594 91817 91819 "RTN","C0CBAT",1,0) 91818 91820 C0CBAT ; CCDCCR/GPL - CCR Batch utilities; 4/21/09 91819 91821 "RTN","C0CBAT",2,0) 91820 ;;1.2;C 0C;;May 11, 2012;Build 5091822 ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 91821 91823 "RTN","C0CBAT",3,0) 91822 ;Copyright 2009 George Lilly. Licensed under the terms of the GNU91824 ;Copyright 2009 George Lilly. 91823 91825 "RTN","C0CBAT",4,0) 91824 ; General Public License See attached copy of the License.91826 ; 91825 91827 "RTN","C0CBAT",5,0) 91826 ; 91828 ; This program is free software: you can redistribute it and/or modify 91827 91829 "RTN","C0CBAT",6,0) 91828 ; This program is free software; you can redistribute it and/or modify91830 ; it under the terms of the GNU Affero General Public License as 91829 91831 "RTN","C0CBAT",7,0) 91830 ; it under the terms of the GNU General Public License as published by91832 ; published by the Free Software Foundation, either version 3 of the 91831 91833 "RTN","C0CBAT",8,0) 91832 ; the Free Software Foundation; either version 2 of the License, or91834 ; License, or (at your option) any later version. 91833 91835 "RTN","C0CBAT",9,0) 91834 ; (at your option) any later version.91836 ; 91835 91837 "RTN","C0CBAT",10,0) 91836 ; 91838 ; This program is distributed in the hope that it will be useful, 91837 91839 "RTN","C0CBAT",11,0) 91838 ; This program is distributed in the hope that it will be useful,91840 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 91839 91841 "RTN","C0CBAT",12,0) 91840 ; but WITHOUT ANY WARRANTY; without even the implied warranty of91842 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 91841 91843 "RTN","C0CBAT",13,0) 91842 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the91844 ; GNU Affero General Public License for more details. 91843 91845 "RTN","C0CBAT",14,0) 91844 ; GNU General Public License for more details.91846 ; 91845 91847 "RTN","C0CBAT",15,0) 91846 ; 91848 ; You should have received a copy of the GNU Affero General Public License 91847 91849 "RTN","C0CBAT",16,0) 91848 ; You should have received a copy of the GNU General Public License along91850 ; along with this program. If not, see <http://www.gnu.org/licenses/>. 91849 91851 "RTN","C0CBAT",17,0) 91850 ; with this program; if not, write to the Free Software Foundation, Inc.,91852 ; 91851 91853 "RTN","C0CBAT",18,0) 91852 ; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.91854 ; 91853 91855 "RTN","C0CBAT",19,0) 91854 ;91856 W "This is the CCR Batch Utility Library ",! 91855 91857 "RTN","C0CBAT",20,0) 91856 W "This is the CCR Batch Utility Library ",!91858 Q 91857 91859 "RTN","C0CBAT",21,0) 91860 ; 91861 "RTN","C0CBAT",22,0) 91862 STOP ; STOP A CURRENTLY RUNNING BATCH JOB 91863 "RTN","C0CBAT",23,0) 91864 I '$D(^TMP("C0CBAT","RUNNING")) Q ; 91865 "RTN","C0CBAT",24,0) 91866 W !,!,"HALTING CCR BATCH",! 91867 "RTN","C0CBAT",25,0) 91868 S ^TMP("C0CBAT","STOP")="" ; SIGNAL JOB TO TERMINATE 91869 "RTN","C0CBAT",26,0) 91870 H 10 ; WAIT TEN SECONDS FOR SIGNAL TO BE RECEIVED 91871 "RTN","C0CBAT",27,0) 91872 I '$D(^TMP("C0CBAT","STOP")) D ; SIGNAL RECEIVED 91873 "RTN","C0CBAT",28,0) 91874 . W "CCR BATCH JOB TERMINATING",! 91875 "RTN","C0CBAT",29,0) 91876 E D ; 91877 "RTN","C0CBAT",30,0) 91878 . K ^TMP("C0CBAT","STOP") ; STOP SIGNALING 91879 "RTN","C0CBAT",31,0) 91880 . W !,"BATCH PROCESSING APPARENTLY NOT RUNNING",! 91881 "RTN","C0CBAT",32,0) 91858 91882 Q 91859 "RTN","C0CBAT",22,0)91860 ;91861 "RTN","C0CBAT",23,0)91862 STOP ; STOP A CURRENTLY RUNNING BATCH JOB91863 "RTN","C0CBAT",24,0)91864 I '$D(^TMP("C0CBAT","RUNNING")) Q ;91865 "RTN","C0CBAT",25,0)91866 W !,!,"HALTING CCR BATCH",!91867 "RTN","C0CBAT",26,0)91868 S ^TMP("C0CBAT","STOP")="" ; SIGNAL JOB TO TERMINATE91869 "RTN","C0CBAT",27,0)91870 H 10 ; WAIT TEN SECONDS FOR SIGNAL TO BE RECEIVED91871 "RTN","C0CBAT",28,0)91872 I '$D(^TMP("C0CBAT","STOP")) D ; SIGNAL RECEIVED91873 "RTN","C0CBAT",29,0)91874 . W "CCR BATCH JOB TERMINATING",!91875 "RTN","C0CBAT",30,0)91876 E D ;91877 "RTN","C0CBAT",31,0)91878 . K ^TMP("C0CBAT","STOP") ; STOP SIGNALING91879 "RTN","C0CBAT",32,0)91880 . W !,"BATCH PROCESSING APPARENTLY NOT RUNNING",!91881 91883 "RTN","C0CBAT",33,0) 91884 ; 91885 "RTN","C0CBAT",34,0) 91886 START ; STARTS A TAKSMAN CCR BATCH JOB - FOR USE IN A MENU OPTION 91887 "RTN","C0CBAT",35,0) 91888 ; 91889 "RTN","C0CBAT",36,0) 91890 I $D(^TMP("C0CBAT","RUNNING")) D Q ; ONLY ONE ALLOWED AT A TIME 91891 "RTN","C0CBAT",37,0) 91892 . W !,"CCR BATCH ALREADY RUNNING",! 91893 "RTN","C0CBAT",38,0) 91894 . W !,"STOP FIRST WITH STOP^C0CBAT",! 91895 "RTN","C0CBAT",39,0) 91896 N ZTRTN,ZTDESC,ZTDTH,ZTSAVE,ZTSK,ZTIO 91897 "RTN","C0CBAT",40,0) 91898 S ZTRTN="EN^C0CBAT",ZTDESC="CCR Batch" 91899 "RTN","C0CBAT",41,0) 91900 S ZTDTH=$H ; 91901 "RTN","C0CBAT",42,0) 91902 ;S ZTDTH=$S(($P(ZTDTH,",",2)+10)\86400:(1+ZTDTH)_","_((($P(ZTDTH,",",2)+10)#86400)/100000),1:(+ZTDTH)_","_($P(ZTDTH,",",2)+10)) 91903 "RTN","C0CBAT",43,0) 91904 S ZTSAVE("C0C")="",ZTSAVE("C0C*")="" 91905 "RTN","C0CBAT",44,0) 91906 S ZTIO="NULL" ; 91907 "RTN","C0CBAT",45,0) 91908 W !,!,"CCR BATCH JOB STARTED",! 91909 "RTN","C0CBAT",46,0) 91910 D ^%ZTLOAD 91911 "RTN","C0CBAT",47,0) 91882 91912 Q 91883 "RTN","C0CBAT",34,0)91884 ;91885 "RTN","C0CBAT",35,0)91886 START ; STARTS A TAKSMAN CCR BATCH JOB - FOR USE IN A MENU OPTION91887 "RTN","C0CBAT",36,0)91888 ;91889 "RTN","C0CBAT",37,0)91890 I $D(^TMP("C0CBAT","RUNNING")) D Q ; ONLY ONE ALLOWED AT A TIME91891 "RTN","C0CBAT",38,0)91892 . W !,"CCR BATCH ALREADY RUNNING",!91893 "RTN","C0CBAT",39,0)91894 . W !,"STOP FIRST WITH STOP^C0CBAT",!91895 "RTN","C0CBAT",40,0)91896 N ZTRTN,ZTDESC,ZTDTH,ZTSAVE,ZTSK,ZTIO91897 "RTN","C0CBAT",41,0)91898 S ZTRTN="EN^C0CBAT",ZTDESC="CCR Batch"91899 "RTN","C0CBAT",42,0)91900 S ZTDTH=$H ;91901 "RTN","C0CBAT",43,0)91902 ;S ZTDTH=$S(($P(ZTDTH,",",2)+10)\86400:(1+ZTDTH)_","_((($P(ZTDTH,",",2)+10)#86400)/100000),1:(+ZTDTH)_","_($P(ZTDTH,",",2)+10))91903 "RTN","C0CBAT",44,0)91904 S ZTSAVE("C0C")="",ZTSAVE("C0C*")=""91905 "RTN","C0CBAT",45,0)91906 S ZTIO="NULL" ;91907 "RTN","C0CBAT",46,0)91908 W !,!,"CCR BATCH JOB STARTED",!91909 "RTN","C0CBAT",47,0)91910 D ^%ZTLOAD91911 91913 "RTN","C0CBAT",48,0) 91914 ; 91915 "RTN","C0CBAT",49,0) 91916 EN ; BATCH ENTRY POINT 91917 "RTN","C0CBAT",50,0) 91918 ; PROCESSES THE SUBSCRIPTION FILE, EXTRACTING CCR VARIABLES FOR EACH 91919 "RTN","C0CBAT",51,0) 91920 ; PATIENT WITH AN ACTIVE SUBSCRIPTION, AND IF CHECKSUMS INDICATE A CHANGE, 91921 "RTN","C0CBAT",52,0) 91922 ; GENERATES A NEW CCR FOR THE PATIENT 91923 "RTN","C0CBAT",53,0) 91924 ; UPDATES THE E2 CCR ELEMENTS FILE 91925 "RTN","C0CBAT",54,0) 91926 ; 91927 "RTN","C0CBAT",55,0) 91928 S C0CQT=1 ; QUIET MODE 91929 "RTN","C0CBAT",56,0) 91930 I $D(^TMP("C0CBAT","RUNNING")) Q ; ONLY ONE AT A TIME 91931 "RTN","C0CBAT",57,0) 91932 S ^TMP("C0CBAT","RUNNING")="" ; RUNNING SIGNAL 91933 "RTN","C0CBAT",58,0) 91934 S C0CBDT=$$NOW^XLFDT ; DATE OF THIS RUN 91935 "RTN","C0CBAT",59,0) 91936 S C0CBF=177.301 ; FILE NUMBER OF C0C BATCH CONTROL FILE 91937 "RTN","C0CBAT",60,0) 91938 S C0CBFR=177.3013 ; FILE NUMBER OF UPDATE SUBFILE 91939 "RTN","C0CBAT",61,0) 91940 S C0CBB=$NA(^TMP("C0CBATCH",C0CBDT)) ; BATCH WORK AREA 91941 "RTN","C0CBAT",62,0) 91942 I $D(@C0CBB@(0)) D ; ERROR SHOULDN'T EXIST 91943 "RTN","C0CBAT",63,0) 91944 . W "WORK AREA ERROR",! 91945 "RTN","C0CBAT",64,0) 91946 . S $EC=",U1," 91947 "RTN","C0CBAT",65,0) 91948 S @C0CBB@(0)="V22" ; VERSION USED TO CREATE THIS WORK AREA 91949 "RTN","C0CBAT",66,0) 91950 S C0CBH=$NA(@C0CBB@("HOTLIST")) ; BASE FOR HOT LIST 91951 "RTN","C0CBAT",67,0) 91952 S C0CBS=$NA(^C0CS("B")) ; SUBSCRIPTION LIST BASE 91953 "RTN","C0CBAT",68,0) 91954 ;I $D(^C0CB("B",C0CDT)) D ; BATCH RECORD EXISTS 91955 "RTN","C0CBAT",69,0) 91956 ;. H 10 ; HANG 10 SECONDS 91957 "RTN","C0CBAT",70,0) 91958 ;. S C0CBDT=$$NOW^XLFDT ; NEW DATE FOR THIS RUN 91959 "RTN","C0CBAT",71,0) 91960 ;. I $D(^C0CB("B",C0CDT)) B ;DIDN'T WORK 91961 "RTN","C0CBAT",72,0) 91962 D BLDHOT(C0CBH) ; BUILD THE HOT LIST 91963 "RTN","C0CBAT",73,0) 91964 S C0CHN=$$COUNT(C0CBH) ;COUNT NUMBER IN HOT LIST 91965 "RTN","C0CBAT",74,0) 91966 S C0CSN=$$COUNT(C0CBS) ;COUNT NUMBER OF PATIENTS WITH SUBSCRIPTIONS 91967 "RTN","C0CBAT",75,0) 91968 S C0CFDA(C0CBF,"+1,",.01)=C0CBDT ; DATE KEY OF BATCH CONTROL 91969 "RTN","C0CBAT",76,0) 91970 S C0CFDA(C0CBF,"+1,",.02)=C0CBDT ; BATCH ID IS DATE IN STRING FORM 91971 "RTN","C0CBAT",77,0) 91972 S C0CFDA(C0CBF,"+1,",1)=C0CSN ; TOTAL SUBSCRIPTIONS 91973 "RTN","C0CBAT",78,0) 91974 S C0CFDA(C0CBF,"+1,",2)=C0CHN ; TOTAL HOT LIST 91975 "RTN","C0CBAT",79,0) 91976 D UPDIE ; CREATE THE BATCH RECORD 91977 "RTN","C0CBAT",80,0) 91978 S C0CIEN=$O(^C0CB("B",C0CBDT,"")) 91979 "RTN","C0CBAT",81,0) 91980 S (C0CN,C0CNH)=0 ; COUNTERS FOR TOTAL AND HOT LIST 91981 "RTN","C0CBAT",82,0) 91982 S C0CBCUR="" ; CURRENT PATIENT 91983 "RTN","C0CBAT",83,0) 91984 S C0CSTOP=0 ; STOP FLAG FOR HALTING BATCH SET ^TMP("C0CBAT","STOP")="" 91985 "RTN","C0CBAT",84,0) 91986 ;F S C0CBCUR=$O(@C0CBH@(C0CBCUR),-1) Q:C0CBCUR="" D ; HOT LIST LATEST FIRST 91987 "RTN","C0CBAT",85,0) 91988 F S C0CBCUR=$O(@C0CBH@(C0CBCUR)) Q:(C0CSTOP)!(C0CBCUR="") D ; HOT LIST FIRST 91989 "RTN","C0CBAT",86,0) 91990 . D ANALYZE^C0CRIMA(C0CBCUR,1,"LABLIMIT:T-900^VITLIMIT:T-900") 91991 "RTN","C0CBAT",87,0) 91992 . I $G(C0CCHK) D ; 91993 "RTN","C0CBAT",88,0) 91994 . . D PUTRIM^C0CFM2(C0CBCUR) 91995 "RTN","C0CBAT",89,0) 91996 . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR 91997 "RTN","C0CBAT",90,0) 91998 . . K C0CFDA 91999 "RTN","C0CBAT",91,0) 92000 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR 92001 "RTN","C0CBAT",92,0) 92002 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y" 92003 "RTN","C0CBAT",93,0) 92004 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR)) 92005 "RTN","C0CBAT",94,0) 92006 . . D UPDIE ; CREATE UPDATE SUBFILE 92007 "RTN","C0CBAT",95,0) 92008 . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL 92009 "RTN","C0CBAT",96,0) 92010 . S C0CNH=C0CNH+1 ; INCREMENT HOT LIST TOTAL 92011 "RTN","C0CBAT",97,0) 92012 . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS 92013 "RTN","C0CBAT",98,0) 92014 . S C0CFDA(C0CBF,C0CIEN_",",2.1)=C0CNH ; UPDATE HOT LIST PROGRESS 92015 "RTN","C0CBAT",99,0) 92016 . S C0CNOW=$$NOW^XLFDT 92017 "RTN","C0CBAT",100,0) 92018 . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD 92019 "RTN","C0CBAT",101,0) 92020 . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS 92021 "RTN","C0CBAT",102,0) 92022 . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME 92023 "RTN","C0CBAT",103,0) 92024 . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME 92025 "RTN","C0CBAT",104,0) 92026 . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME 92027 "RTN","C0CBAT",105,0) 92028 . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START 92029 "RTN","C0CBAT",106,0) 92030 . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME 92031 "RTN","C0CBAT",107,0) 92032 . S C0CFDA(C0CBF,C0CIEN_",",5)=C0CBCUR ; LAST RECORD PROCESSED 92033 "RTN","C0CBAT",108,0) 92034 . D UPDIE ; 92035 "RTN","C0CBAT",109,0) 92036 . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED 92037 "RTN","C0CBAT",110,0) 92038 . . S C0CSTOP=1 92039 "RTN","C0CBAT",111,0) 92040 . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED 92041 "RTN","C0CBAT",112,0) 92042 . H 1 ; GIVE OTHERS A CHANCE 92043 "RTN","C0CBAT",113,0) 92044 F S C0CBCUR=$O(@C0CBS@(C0CBCUR)) Q:(C0CSTOP)!(C0CBCUR="") D ; SUBS LIST 92045 "RTN","C0CBAT",114,0) 92046 . I $D(@C0CBH@(C0CBCUR)) Q ; SKIP IF IN HOT LIST - ALREADY DONE 92047 "RTN","C0CBAT",115,0) 92048 . D ANALYZE^C0CRIMA(C0CBCUR,1,"LABLIMIT:T-760^VITLIMIT:T-760") 92049 "RTN","C0CBAT",116,0) 92050 . I $G(C0CCHK) D ; IF CHECKSUMS HAVE CHANGED 92051 "RTN","C0CBAT",117,0) 92052 . . D PUTRIM^C0CFM2(C0CBCUR) 92053 "RTN","C0CBAT",118,0) 92054 . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR 92055 "RTN","C0CBAT",119,0) 92056 . . K C0CFDA 92057 "RTN","C0CBAT",120,0) 92058 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR 92059 "RTN","C0CBAT",121,0) 92060 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y" 92061 "RTN","C0CBAT",122,0) 92062 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR)) 92063 "RTN","C0CBAT",123,0) 92064 . . D UPDIE ; CREATE UPDATE SUBFILE 92065 "RTN","C0CBAT",124,0) 92066 . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL 92067 "RTN","C0CBAT",125,0) 92068 . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS 92069 "RTN","C0CBAT",126,0) 92070 . S C0CNOW=$$NOW^XLFDT 92071 "RTN","C0CBAT",127,0) 92072 . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD 92073 "RTN","C0CBAT",128,0) 92074 . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS 92075 "RTN","C0CBAT",129,0) 92076 . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME 92077 "RTN","C0CBAT",130,0) 92078 . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME 92079 "RTN","C0CBAT",131,0) 92080 . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME 92081 "RTN","C0CBAT",132,0) 92082 . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START 92083 "RTN","C0CBAT",133,0) 92084 . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME 92085 "RTN","C0CBAT",134,0) 92086 . S C0CFDA(C0CBF,C0CIEN_",",5)=C0CBCUR ; 92087 "RTN","C0CBAT",135,0) 92088 . D UPDIE ; 92089 "RTN","C0CBAT",136,0) 92090 . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED 92091 "RTN","C0CBAT",137,0) 92092 . . S C0CSTOP=1 92093 "RTN","C0CBAT",138,0) 92094 . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED 92095 "RTN","C0CBAT",139,0) 92096 . H 1 ; GIVE IT A BREAK 92097 "RTN","C0CBAT",140,0) 92098 I (C0CSTOP) S C0CDISP="KILLED" 92099 "RTN","C0CBAT",141,0) 92100 E S C0CDISP="FINISHED" 92101 "RTN","C0CBAT",142,0) 92102 S C0CFDA(C0CBF,C0CIEN_",",6)=C0CDISP 92103 "RTN","C0CBAT",143,0) 92104 D UPDIE ; SET DISPOSITION FIELD 92105 "RTN","C0CBAT",144,0) 92106 K ^TMP("C0CBAT","RUNNING") 92107 "RTN","C0CBAT",145,0) 91912 92108 Q 91913 "RTN","C0CBAT",49,0)91914 ;91915 "RTN","C0CBAT",50,0)91916 EN ; BATCH ENTRY POINT91917 "RTN","C0CBAT",51,0)91918 ; PROCESSES THE SUBSCRIPTION FILE, EXTRACTING CCR VARIABLES FOR EACH91919 "RTN","C0CBAT",52,0)91920 ; PATIENT WITH AN ACTIVE SUBSCRIPTION, AND IF CHECKSUMS INDICATE A CHANGE,91921 "RTN","C0CBAT",53,0)91922 ; GENERATES A NEW CCR FOR THE PATIENT91923 "RTN","C0CBAT",54,0)91924 ; UPDATES THE E2 CCR ELEMENTS FILE91925 "RTN","C0CBAT",55,0)91926 ;91927 "RTN","C0CBAT",56,0)91928 S C0CQT=1 ; QUIET MODE91929 "RTN","C0CBAT",57,0)91930 I $D(^TMP("C0CBAT","RUNNING")) Q ; ONLY ONE AT A TIME91931 "RTN","C0CBAT",58,0)91932 S ^TMP("C0CBAT","RUNNING")="" ; RUNNING SIGNAL91933 "RTN","C0CBAT",59,0)91934 S C0CBDT=$$NOW^XLFDT ; DATE OF THIS RUN91935 "RTN","C0CBAT",60,0)91936 S C0CBF=177.301 ; FILE NUMBER OF C0C BATCH CONTROL FILE91937 "RTN","C0CBAT",61,0)91938 S C0CBFR=177.3013 ; FILE NUMBER OF UPDATE SUBFILE91939 "RTN","C0CBAT",62,0)91940 S C0CBB=$NA(^TMP("C0CBATCH",C0CBDT)) ; BATCH WORK AREA91941 "RTN","C0CBAT",63,0)91942 I $D(@C0CBB@(0)) D ; ERROR SHOULDN'T EXIST91943 "RTN","C0CBAT",64,0)91944 . W "WORK AREA ERROR",!91945 "RTN","C0CBAT",65,0)91946 . B91947 "RTN","C0CBAT",66,0)91948 S @C0CBB@(0)="V22" ; VERSION USED TO CREATE THIS WORK AREA91949 "RTN","C0CBAT",67,0)91950 S C0CBH=$NA(@C0CBB@("HOTLIST")) ; BASE FOR HOT LIST91951 "RTN","C0CBAT",68,0)91952 S C0CBS=$NA(^C0CS("B")) ; SUBSCRIPTION LIST BASE91953 "RTN","C0CBAT",69,0)91954 ;I $D(^C0CB("B",C0CDT)) D ; BATCH RECORD EXISTS91955 "RTN","C0CBAT",70,0)91956 ;. H 10 ; HANG 10 SECONDS91957 "RTN","C0CBAT",71,0)91958 ;. S C0CBDT=$$NOW^XLFDT ; NEW DATE FOR THIS RUN91959 "RTN","C0CBAT",72,0)91960 ;. I $D(^C0CB("B",C0CDT)) B ;DIDN'T WORK91961 "RTN","C0CBAT",73,0)91962 D BLDHOT(C0CBH) ; BUILD THE HOT LIST91963 "RTN","C0CBAT",74,0)91964 S C0CHN=$$COUNT(C0CBH) ;COUNT NUMBER IN HOT LIST91965 "RTN","C0CBAT",75,0)91966 S C0CSN=$$COUNT(C0CBS) ;COUNT NUMBER OF PATIENTS WITH SUBSCRIPTIONS91967 "RTN","C0CBAT",76,0)91968 S C0CFDA(C0CBF,"+1,",.01)=C0CBDT ; DATE KEY OF BATCH CONTROL91969 "RTN","C0CBAT",77,0)91970 S C0CFDA(C0CBF,"+1,",.02)=C0CBDT ; BATCH ID IS DATE IN STRING FORM91971 "RTN","C0CBAT",78,0)91972 S C0CFDA(C0CBF,"+1,",1)=C0CSN ; TOTAL SUBSCRIPTIONS91973 "RTN","C0CBAT",79,0)91974 S C0CFDA(C0CBF,"+1,",2)=C0CHN ; TOTAL HOT LIST91975 "RTN","C0CBAT",80,0)91976 D UPDIE ; CREATE THE BATCH RECORD91977 "RTN","C0CBAT",81,0)91978 S C0CIEN=$O(^C0CB("B",C0CBDT,""))91979 "RTN","C0CBAT",82,0)91980 S (C0CN,C0CNH)=0 ; COUNTERS FOR TOTAL AND HOT LIST91981 "RTN","C0CBAT",83,0)91982 S C0CBCUR="" ; CURRENT PATIENT91983 "RTN","C0CBAT",84,0)91984 S C0CSTOP=0 ; STOP FLAG FOR HALTING BATCH SET ^TMP("C0CBAT","STOP")=""91985 "RTN","C0CBAT",85,0)91986 ;F S C0CBCUR=$O(@C0CBH@(C0CBCUR),-1) Q:C0CBCUR="" D ; HOT LIST LATEST FIRST91987 "RTN","C0CBAT",86,0)91988 F S C0CBCUR=$O(@C0CBH@(C0CBCUR)) Q:(C0CSTOP)!(C0CBCUR="") D ; HOT LIST FIRST91989 "RTN","C0CBAT",87,0)91990 . D ANALYZE^C0CRIMA(C0CBCUR,1,"LABLIMIT:T-900^VITLIMIT:T-900")91991 "RTN","C0CBAT",88,0)91992 . I $G(C0CCHK) D ;91993 "RTN","C0CBAT",89,0)91994 . . D PUTRIM^C0CFM2(C0CBCUR)91995 "RTN","C0CBAT",90,0)91996 . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR91997 "RTN","C0CBAT",91,0)91998 . . K C0CFDA91999 "RTN","C0CBAT",92,0)92000 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR92001 "RTN","C0CBAT",93,0)92002 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y"92003 "RTN","C0CBAT",94,0)92004 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR))92005 "RTN","C0CBAT",95,0)92006 . . D UPDIE ; CREATE UPDATE SUBFILE92007 "RTN","C0CBAT",96,0)92008 . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL92009 "RTN","C0CBAT",97,0)92010 . S C0CNH=C0CNH+1 ; INCREMENT HOT LIST TOTAL92011 "RTN","C0CBAT",98,0)92012 . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS92013 "RTN","C0CBAT",99,0)92014 . S C0CFDA(C0CBF,C0CIEN_",",2.1)=C0CNH ; UPDATE HOT LIST PROGRESS92015 "RTN","C0CBAT",100,0)92016 . S C0CNOW=$$NOW^XLFDT92017 "RTN","C0CBAT",101,0)92018 . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD92019 "RTN","C0CBAT",102,0)92020 . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS92021 "RTN","C0CBAT",103,0)92022 . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME92023 "RTN","C0CBAT",104,0)92024 . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME92025 "RTN","C0CBAT",105,0)92026 . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME92027 "RTN","C0CBAT",106,0)92028 . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START92029 "RTN","C0CBAT",107,0)92030 . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME92031 "RTN","C0CBAT",108,0)92032 . S C0CFDA(C0CBF,C0CIEN_",",5)=C0CBCUR ; LAST RECORD PROCESSED92033 "RTN","C0CBAT",109,0)92034 . D UPDIE ;92035 "RTN","C0CBAT",110,0)92036 . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED92037 "RTN","C0CBAT",111,0)92038 . . S C0CSTOP=192039 "RTN","C0CBAT",112,0)92040 . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED92041 "RTN","C0CBAT",113,0)92042 . H 1 ; GIVE OTHERS A CHANCE92043 "RTN","C0CBAT",114,0)92044 F S C0CBCUR=$O(@C0CBS@(C0CBCUR)) Q:(C0CSTOP)!(C0CBCUR="") D ; SUBS LIST92045 "RTN","C0CBAT",115,0)92046 . I $D(@C0CBH@(C0CBCUR)) Q ; SKIP IF IN HOT LIST - ALREADY DONE92047 "RTN","C0CBAT",116,0)92048 . D ANALYZE^C0CRIMA(C0CBCUR,1,"LABLIMIT:T-760^VITLIMIT:T-760")92049 "RTN","C0CBAT",117,0)92050 . I $G(C0CCHK) D ; IF CHECKSUMS HAVE CHANGED92051 "RTN","C0CBAT",118,0)92052 . . D PUTRIM^C0CFM2(C0CBCUR)92053 "RTN","C0CBAT",119,0)92054 . . D XPAT^C0CCCR(C0CBCUR) ; IF VARIABLES HAVE CHANGED GENERATE CCR92055 "RTN","C0CBAT",120,0)92056 . . K C0CFDA92057 "RTN","C0CBAT",121,0)92058 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",.01)=C0CBCUR92059 "RTN","C0CBAT",122,0)92060 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",1)="Y"92061 "RTN","C0CBAT",123,0)92062 . . S C0CFDA(C0CBFR,"+1,"_C0CIEN_",",2)=$G(^TMP("C0CCCR","FNAME",C0CBCUR))92063 "RTN","C0CBAT",124,0)92064 . . D UPDIE ; CREATE UPDATE SUBFILE92065 "RTN","C0CBAT",125,0)92066 . S C0CN=C0CN+1 ; INCREMENT NUMBER IN TOTAL92067 "RTN","C0CBAT",126,0)92068 . S C0CFDA(C0CBF,C0CIEN_",",1.1)=C0CN ;UPDATE TOTAL PROGRESS92069 "RTN","C0CBAT",127,0)92070 . S C0CNOW=$$NOW^XLFDT92071 "RTN","C0CBAT",128,0)92072 . S C0CFDA(C0CBF,C0CIEN_",",4)=C0CNOW ; LAST UPDATED FIELD92073 "RTN","C0CBAT",129,0)92074 . S C0CELPS=$$FMDIFF^XLFDT(C0CNOW,C0CBDT,2) ; DIFFERENCE IN SECONDS92075 "RTN","C0CBAT",130,0)92076 . S C0CAVG=C0CELPS/C0CN ; AVERAGE ELAPSED TIME92077 "RTN","C0CBAT",131,0)92078 . S C0CFDA(C0CBF,C0CIEN_",",4.1)=C0CAVG ; AVERAGE ELAPSED TIME92079 "RTN","C0CBAT",132,0)92080 . S C0CETOT=C0CAVG*C0CSN ; EST TOT ELASPSED TIME92081 "RTN","C0CBAT",133,0)92082 . S C0CEST=$$FMADD^XLFDT(C0CBDT,0,0,0,C0CETOT) ; ADD SECONDS TO BATCH START92083 "RTN","C0CBAT",134,0)92084 . S C0CFDA(C0CBF,C0CIEN_",",4.2)=C0CEST ;ESTIMATED COMPLETION TIME92085 "RTN","C0CBAT",135,0)92086 . S C0CFDA(C0CBF,C0CIEN_",",5)=C0CBCUR ;92087 "RTN","C0CBAT",136,0)92088 . D UPDIE ;92089 "RTN","C0CBAT",137,0)92090 . I $D(^TMP("C0CBAT","STOP")) D ; IF STOP SIGNAL DETECTED92091 "RTN","C0CBAT",138,0)92092 . . S C0CSTOP=192093 "RTN","C0CBAT",139,0)92094 . . K ^TMP("C0CBAT","STOP") ; SIGNAL RECEIVED92095 "RTN","C0CBAT",140,0)92096 . H 1 ; GIVE IT A BREAK92097 "RTN","C0CBAT",141,0)92098 I (C0CSTOP) S C0CDISP="KILLED"92099 "RTN","C0CBAT",142,0)92100 E S C0CDISP="FINISHED"92101 "RTN","C0CBAT",143,0)92102 S C0CFDA(C0CBF,C0CIEN_",",6)=C0CDISP92103 "RTN","C0CBAT",144,0)92104 D UPDIE ; SET DISPOSITION FIELD92105 "RTN","C0CBAT",145,0)92106 K ^TMP("C0CBAT","RUNNING")92107 92109 "RTN","C0CBAT",146,0) 92110 ; 92111 "RTN","C0CBAT",147,0) 92112 BLDHOT(ZHB) ; BUILD HOT LIST AT GLOBAL ZHB, PASSED BY NAME 92113 "RTN","C0CBAT",148,0) 92114 ; SEARCHS FOR PATIENTS IN THE "AC" INDEX OF THE ORDER FILE 92115 "RTN","C0CBAT",149,0) 92116 N ZDFN 92117 "RTN","C0CBAT",150,0) 92118 S ZDFN="" 92119 "RTN","C0CBAT",151,0) 92120 F S ZDFN=$O(^OR(100,"AC",ZDFN)) Q:ZDFN="" D ; ALL PATIENTS IN THE AC INDX 92121 "RTN","C0CBAT",152,0) 92122 . S ZZDFN=$P(ZDFN,";",1) ; FORMAT IS "N;DPT(" 92123 "RTN","C0CBAT",153,0) 92124 . I '$D(@C0CBS@(ZZDFN)) Q ; SKIP IF NOT IN SUBSCRIPTION LIST 92125 "RTN","C0CBAT",154,0) 92126 . S @ZHB@(ZZDFN)="" ;ADD PATIENT TO THE HOT LIST 92127 "RTN","C0CBAT",155,0) 92108 92128 Q 92109 "RTN","C0CBAT",147,0)92110 ;92111 "RTN","C0CBAT",148,0)92112 BLDHOT(ZHB) ; BUILD HOT LIST AT GLOBAL ZHB, PASSED BY NAME92113 "RTN","C0CBAT",149,0)92114 ; SEARCHS FOR PATIENTS IN THE "AC" INDEX OF THE ORDER FILE92115 "RTN","C0CBAT",150,0)92116 N ZDFN92117 "RTN","C0CBAT",151,0)92118 S ZDFN=""92119 "RTN","C0CBAT",152,0)92120 F S ZDFN=$O(^OR(100,"AC",ZDFN)) Q:ZDFN="" D ; ALL PATIENTS IN THE AC INDX92121 "RTN","C0CBAT",153,0)92122 . S ZZDFN=$P(ZDFN,";",1) ; FORMAT IS "N;DPT("92123 "RTN","C0CBAT",154,0)92124 . I '$D(@C0CBS@(ZZDFN)) Q ; SKIP IF NOT IN SUBSCRIPTION LIST92125 "RTN","C0CBAT",155,0)92126 . S @ZHB@(ZZDFN)="" ;ADD PATIENT TO THE HOT LIST92127 92129 "RTN","C0CBAT",156,0) 92130 ; 92131 "RTN","C0CBAT",157,0) 92132 COUNT(ZB) ; EXTRINSIC THAT RETURNS THE NUMBER OF ARRAY ELEMENTS 92133 "RTN","C0CBAT",158,0) 92134 N ZI,ZN 92135 "RTN","C0CBAT",159,0) 92136 S ZN=0 92137 "RTN","C0CBAT",160,0) 92138 S ZI="" 92139 "RTN","C0CBAT",161,0) 92140 F S ZI=$O(@ZB@(ZI)) Q:ZI="" D ; 92141 "RTN","C0CBAT",162,0) 92142 . S ZN=ZN+1 92143 "RTN","C0CBAT",163,0) 92144 Q ZN 92145 "RTN","C0CBAT",164,0) 92146 ; 92147 "RTN","C0CBAT",165,0) 92148 UVARPTR(ZVAR,ZTYP) ;EXTRINSIC WHICH RETURNS THE POINTER TO ZVAR IN THE 92149 "RTN","C0CBAT",166,0) 92150 ; CCR DICTIONARY. IT IS LAYGO, AS IT WILL ADD THE VARIABLE TO 92151 "RTN","C0CBAT",167,0) 92152 ; THE CCR DICTIONARY IF IT IS NOT THERE. ZTYP IS REQUIRED FOR LAYGO 92153 "RTN","C0CBAT",168,0) 92154 ; 92155 "RTN","C0CBAT",169,0) 92156 N ZCCRD,ZVARN,C0CFDA2 92157 "RTN","C0CBAT",170,0) 92158 S ZCCRD=170 ; FILE NUMBER FOR CCR DICTIONARY 92159 "RTN","C0CBAT",171,0) 92160 S ZVARN=$O(^C0CDIC(170,"B",ZVAR,"")) ;FIND IEN OF VARIABLE 92161 "RTN","C0CBAT",172,0) 92162 I ZVARN="" D ; VARIABLE NOT IN CCR DICTIONARY - ADD IT 92163 "RTN","C0CBAT",173,0) 92164 . I '$D(ZTYP) D Q ; WON'T ADD A VARIABLE WITHOUT A TYPE 92165 "RTN","C0CBAT",174,0) 92166 . . W "CANNOT ADD VARIABLE WITHOUT A TYPE: ",ZVAR,! 92167 "RTN","C0CBAT",175,0) 92168 . S C0CFDA2(ZCCRD,"?+1,",.01)=ZVAR ; NAME OF NEW VARIABLE 92169 "RTN","C0CBAT",176,0) 92170 . S C0CFDA2(ZCCRD,"?+1,",12)=ZTYP ; TYPE EXTERNAL OF NEW VARIABLE 92171 "RTN","C0CBAT",177,0) 92172 . D CLEAN^DILF ;MAKE SURE ERRORS ARE CLEAN 92173 "RTN","C0CBAT",178,0) 92174 . D UPDATE^DIE("E","C0CFDA2","","ZERR") ;ADD VAR TO CCR DICTIONARY 92175 "RTN","C0CBAT",179,0) 92176 . I $D(ZERR) D ; LAYGO ERROR 92177 "RTN","C0CBAT",180,0) 92178 . . W "ERROR ADDING "_ZC0CI_" TO CCR DICTIONARY",! 92179 "RTN","C0CBAT",181,0) 92180 . E D ; 92181 "RTN","C0CBAT",182,0) 92182 . . D CLEAN^DILF ; CLEAN UP 92183 "RTN","C0CBAT",183,0) 92184 . . S ZVARN=$O(^C0CDIC(170,"B",ZVAR,"")) ;FIND IEN OF VARIABLE 92185 "RTN","C0CBAT",184,0) 92186 . . W "ADDED ",ZVAR," TO CCR DICTIONARY, IEN:",ZVARN,! 92187 "RTN","C0CBAT",185,0) 92188 Q ZVARN 92189 "RTN","C0CBAT",186,0) 92190 ; 92191 "RTN","C0CBAT",187,0) 92192 UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS 92193 "RTN","C0CBAT",188,0) 92194 K ZERR 92195 "RTN","C0CBAT",189,0) 92196 D CLEAN^DILF 92197 "RTN","C0CBAT",190,0) 92198 D UPDATE^DIE("","C0CFDA","","ZERR") 92199 "RTN","C0CBAT",191,0) 92200 I $D(ZERR) S $EC=",U1," 92201 "RTN","C0CBAT",192,0) 92202 K C0CFDA 92203 "RTN","C0CBAT",193,0) 92128 92204 Q 92129 "RTN","C0CBAT",157,0)92130 ;92131 "RTN","C0CBAT",158,0)92132 COUNT(ZB) ; EXTRINSIC THAT RETURNS THE NUMBER OF ARRAY ELEMENTS92133 "RTN","C0CBAT",159,0)92134 N ZI,ZN92135 "RTN","C0CBAT",160,0)92136 S ZN=092137 "RTN","C0CBAT",161,0)92138 S ZI=""92139 "RTN","C0CBAT",162,0)92140 F S ZI=$O(@ZB@(ZI)) Q:ZI="" D ;92141 "RTN","C0CBAT",163,0)92142 . S ZN=ZN+192143 "RTN","C0CBAT",164,0)92144 Q ZN92145 "RTN","C0CBAT",165,0)92146 ;92147 "RTN","C0CBAT",166,0)92148 UPDIEVARPTR(ZVAR,ZTYP) ;EXTRINSIC WHICH RETURNS THE POINTER TO ZVAR IN THE92149 "RTN","C0CBAT",167,0)92150 ; CCR DICTIONARY. IT IS LAYGO, AS IT WILL ADD THE VARIABLE TO92151 "RTN","C0CBAT",168,0)92152 ; THE CCR DICTIONARY IF IT IS NOT THERE. ZTYP IS REQUIRED FOR LAYGO92153 "RTN","C0CBAT",169,0)92154 ;92155 "RTN","C0CBAT",170,0)92156 N ZCCRD,ZVARN,C0CFDA292157 "RTN","C0CBAT",171,0)92158 S ZCCRD=170 ; FILE NUMBER FOR CCR DICTIONARY92159 "RTN","C0CBAT",172,0)92160 S ZVARN=$O(^C0CDIC(170,"B",ZVAR,"")) ;FIND IEN OF VARIABLE92161 "RTN","C0CBAT",173,0)92162 I ZVARN="" D ; VARIABLE NOT IN CCR DICTIONARY - ADD IT92163 "RTN","C0CBAT",174,0)92164 . I '$D(ZTYP) D Q ; WON'T ADD A VARIABLE WITHOUT A TYPE92165 "RTN","C0CBAT",175,0)92166 . . W "CANNOT ADD VARIABLE WITHOUT A TYPE: ",ZVAR,!92167 "RTN","C0CBAT",176,0)92168 . S C0CFDA2(ZCCRD,"?+1,",.01)=ZVAR ; NAME OF NEW VARIABLE92169 "RTN","C0CBAT",177,0)92170 . S C0CFDA2(ZCCRD,"?+1,",12)=ZTYP ; TYPE EXTERNAL OF NEW VARIABLE92171 "RTN","C0CBAT",178,0)92172 . D CLEAN^DILF ;MAKE SURE ERRORS ARE CLEAN92173 "RTN","C0CBAT",179,0)92174 . D UPDATE^DIE("E","C0CFDA2","","ZERR") ;ADD VAR TO CCR DICTIONARY92175 "RTN","C0CBAT",180,0)92176 . I $D(ZERR) D ; LAYGO ERROR92177 "RTN","C0CBAT",181,0)92178 . . W "ERROR ADDING "_ZC0CI_" TO CCR DICTIONARY",!92179 "RTN","C0CBAT",182,0)92180 . E D ;92181 "RTN","C0CBAT",183,0)92182 . . D CLEAN^DILF ; CLEAN UP92183 "RTN","C0CBAT",184,0)92184 . . S ZVARN=$O(^C0CDIC(170,"B",ZVAR,"")) ;FIND IEN OF VARIABLE92185 "RTN","C0CBAT",185,0)92186 . . W "ADDED ",ZVAR," TO CCR DICTIONARY, IEN:",ZVARN,!92187 "RTN","C0CBAT",186,0)92188 Q ZVARN92189 "RTN","C0CBAT",187,0)92190 ;92191 "RTN","C0CBAT",188,0)92192 UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS92193 "RTN","C0CBAT",189,0)92194 K ZERR92195 "RTN","C0CBAT",190,0)92196 D CLEAN^DILF92197 "RTN","C0CBAT",191,0)92198 D UPDATE^DIE("","C0CFDA","","ZERR")92199 "RTN","C0CBAT",192,0)92200 I $D(ZERR) D ;92201 "RTN","C0CBAT",193,0)92202 . W "ERROR",!92203 92205 "RTN","C0CBAT",194,0) 92204 . ZWR ZERR92206 ; 92205 92207 "RTN","C0CBAT",195,0) 92206 . B 92208 SETFDA(C0CSN,C0CSV) ; INTERNAL ROUTINE TO MAKE AN FDA ENTRY FOR FIELD C0CSN 92207 92209 "RTN","C0CBAT",196,0) 92208 K C0CFDA92210 ; TO SET TO VALUE C0CSV. 92209 92211 "RTN","C0CBAT",197,0) 92212 ; C0CFDA,C0CC,C0CZX ARE ASSUMED FROM THE CALLING ROUTINE 92213 "RTN","C0CBAT",198,0) 92214 ; C0CSN,C0CSV ARE PASSED BY VALUE 92215 "RTN","C0CBAT",199,0) 92216 ; 92217 "RTN","C0CBAT",200,0) 92218 N C0CSI,C0CSJ 92219 "RTN","C0CBAT",201,0) 92220 S C0CSI=$$ZFILE(C0CSN,"C0CC") ; FILE NUMBER 92221 "RTN","C0CBAT",202,0) 92222 S C0CSJ=$$ZFIELD(C0CSN,"C0CC") ; FIELD NUMBER 92223 "RTN","C0CBAT",203,0) 92224 S C0CFDA(C0CSI,C0CZX_",",C0CSJ)=C0CSV 92225 "RTN","C0CBAT",204,0) 92210 92226 Q 92211 "RTN","C0CBAT",198,0)92212 ;92213 "RTN","C0CBAT",199,0)92214 SETFDA(C0CSN,C0CSV) ; INTERNAL ROUTINE TO MAKE AN FDA ENTRY FOR FIELD C0CSN92215 "RTN","C0CBAT",200,0)92216 ; TO SET TO VALUE C0CSV.92217 "RTN","C0CBAT",201,0)92218 ; C0CFDA,C0CC,C0CZX ARE ASSUMED FROM THE CALLING ROUTINE92219 "RTN","C0CBAT",202,0)92220 ; C0CSN,C0CSV ARE PASSED BY VALUE92221 "RTN","C0CBAT",203,0)92222 ;92223 "RTN","C0CBAT",204,0)92224 N C0CSI,C0CSJ92225 92227 "RTN","C0CBAT",205,0) 92226 S C0CSI=$$ZFILE(C0CSN,"C0CC") ; FILE NUMBER 92228 ZFILE(ZFN,ZTAB) ; EXTRINSIC TO RETURN FILE NUMBER FOR FIELD NAME PASSED 92227 92229 "RTN","C0CBAT",206,0) 92228 S C0CSJ=$$ZFIELD(C0CSN,"C0CC") ; FIELD NUMBER92230 ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 1 OF C0CA(ZFN) 92229 92231 "RTN","C0CBAT",207,0) 92230 S C0CFDA(C0CSI,C0CZX_",",C0CSJ)=C0CSV92232 ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA 92231 92233 "RTN","C0CBAT",208,0) 92232 Q92234 I '$D(ZTAB) S ZTAB="C0CA" 92233 92235 "RTN","C0CBAT",209,0) 92234 ZFILE(ZFN,ZTAB) ; EXTRINSIC TO RETURN FILE NUMBER FOR FIELD NAME PASSED 92236 N ZR 92235 92237 "RTN","C0CBAT",210,0) 92236 ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 1 OF C0CA(ZFN)92238 I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",1) 92237 92239 "RTN","C0CBAT",211,0) 92240 E S ZR="" 92241 "RTN","C0CBAT",212,0) 92242 Q ZR 92243 "RTN","C0CBAT",213,0) 92244 ZFIELD(ZFN,ZTAB) ;EXTRINSIC TO RETURN FIELD NUMBER FOR FIELD NAME PASSED 92245 "RTN","C0CBAT",214,0) 92246 ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 2 OF C0CA(ZFN) 92247 "RTN","C0CBAT",215,0) 92238 92248 ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA 92239 "RTN","C0CBAT",21 2,0)92249 "RTN","C0CBAT",216,0) 92240 92250 I '$D(ZTAB) S ZTAB="C0CA" 92241 "RTN","C0CBAT",21 3,0)92251 "RTN","C0CBAT",217,0) 92242 92252 N ZR 92243 "RTN","C0CBAT",21 4,0)92244 I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^", 1)92245 "RTN","C0CBAT",21 5,0)92253 "RTN","C0CBAT",218,0) 92254 I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",2) 92255 "RTN","C0CBAT",219,0) 92246 92256 E S ZR="" 92247 "RTN","C0CBAT",2 16,0)92257 "RTN","C0CBAT",220,0) 92248 92258 Q ZR 92249 "RTN","C0CBAT",217,0) 92250 ZFIELD(ZFN,ZTAB) ;EXTRINSIC TO RETURN FIELD NUMBER FOR FIELD NAME PASSED 92251 "RTN","C0CBAT",218,0) 92252 ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 2 OF C0CA(ZFN) 92253 "RTN","C0CBAT",219,0) 92259 "RTN","C0CBAT",221,0) 92260 ; 92261 "RTN","C0CBAT",222,0) 92262 ZVALUE(ZFN,ZTAB) ;EXTRINSIC TO RETURN VALUE FOR FIELD NAME PASSED 92263 "RTN","C0CBAT",223,0) 92264 ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 3 OF C0CA(ZFN) 92265 "RTN","C0CBAT",224,0) 92254 92266 ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA 92255 "RTN","C0CBAT",22 0,0)92267 "RTN","C0CBAT",225,0) 92256 92268 I '$D(ZTAB) S ZTAB="C0CA" 92257 "RTN","C0CBAT",22 1,0)92269 "RTN","C0CBAT",226,0) 92258 92270 N ZR 92259 "RTN","C0CBAT",22 2,0)92260 I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^", 2)92261 "RTN","C0CBAT",22 3,0)92271 "RTN","C0CBAT",227,0) 92272 I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",3) 92273 "RTN","C0CBAT",228,0) 92262 92274 E S ZR="" 92263 "RTN","C0CBAT",22 4,0)92275 "RTN","C0CBAT",229,0) 92264 92276 Q ZR 92265 "RTN","C0CBAT",225,0)92266 ;92267 "RTN","C0CBAT",226,0)92268 ZVALUE(ZFN,ZTAB) ;EXTRINSIC TO RETURN VALUE FOR FIELD NAME PASSED92269 "RTN","C0CBAT",227,0)92270 ; BY VALUE IN ZFN. FILE NUMBER IS PIECE 3 OF C0CA(ZFN)92271 "RTN","C0CBAT",228,0)92272 ; IF ZTAB IS NULL, IT DEFAULTS TO C0CA92273 "RTN","C0CBAT",229,0)92274 I '$D(ZTAB) S ZTAB="C0CA"92275 92277 "RTN","C0CBAT",230,0) 92276 N ZR92277 "RTN","C0CBAT",231,0)92278 I $D(@ZTAB@(ZFN)) S ZR=$P(@ZTAB@(ZFN),"^",3)92279 "RTN","C0CBAT",232,0)92280 E S ZR=""92281 "RTN","C0CBAT",233,0)92282 Q ZR92283 "RTN","C0CBAT",234,0)92284 92278 ; 92285 92279 "RTN","C0CCCD") 92286 0^45^B 11413404992280 0^45^B89035344 92287 92281 "RTN","C0CCCD",1,0) 92288 92282 C0CCCD ; CCDCCR/GPL - CCD MAIN PROCESSING; 6/6/08 92289 92283 "RTN","C0CCCD",2,0) 92290 ;;1.2;C 0C;;May 11, 2012;Build 5092284 ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 92291 92285 "RTN","C0CCCD",3,0) 92292 92286 ;Copyright 2008,2009 George Lilly, University of Minnesota. 92293 92287 "RTN","C0CCCD",4,0) 92294 ; Licensed under the terms of the GNU General Public License.92288 ; 92295 92289 "RTN","C0CCCD",5,0) 92296 ; See attached copy of the License.92290 ; This program is free software: you can redistribute it and/or modify 92297 92291 "RTN","C0CCCD",6,0) 92298 ; 92292 ; it under the terms of the GNU Affero General Public License as 92299 92293 "RTN","C0CCCD",7,0) 92300 ; This program is free software; you can redistribute it and/or modify92294 ; published by the Free Software Foundation, either version 3 of the 92301 92295 "RTN","C0CCCD",8,0) 92302 ; it under the terms of the GNU General Public License as published by92296 ; License, or (at your option) any later version. 92303 92297 "RTN","C0CCCD",9,0) 92304 ; the Free Software Foundation; either version 2 of the License, or92298 ; 92305 92299 "RTN","C0CCCD",10,0) 92306 ; (at your option) any later version.92300 ; This program is distributed in the hope that it will be useful, 92307 92301 "RTN","C0CCCD",11,0) 92308 ; 92302 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 92309 92303 "RTN","C0CCCD",12,0) 92310 ; This program is distributed in the hope that it will be useful,92304 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 92311 92305 "RTN","C0CCCD",13,0) 92312 ; but WITHOUT ANY WARRANTY; without even the implied warranty of92306 ; GNU Affero General Public License for more details. 92313 92307 "RTN","C0CCCD",14,0) 92314 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the92308 ; 92315 92309 "RTN","C0CCCD",15,0) 92316 ; GNU General Public License for more details.92310 ; You should have received a copy of the GNU Affero General Public License 92317 92311 "RTN","C0CCCD",16,0) 92318 ; 92312 ; along with this program. If not, see <http://www.gnu.org/licenses/>. 92319 92313 "RTN","C0CCCD",17,0) 92320 ; You should have received a copy of the GNU General Public License along92314 ; 92321 92315 "RTN","C0CCCD",18,0) 92322 ; with this program; if not, write to the Free Software Foundation, Inc.,92316 ; EXPORT A CCR 92323 92317 "RTN","C0CCCD",19,0) 92324 ; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.92318 ; 92325 92319 "RTN","C0CCCD",20,0) 92326 ; 92320 EXPORT ; EXPORT ENTRY POINT FOR CCR 92327 92321 "RTN","C0CCCD",21,0) 92328 ; EXPORT A CCR92322 ; Select a patient. 92329 92323 "RTN","C0CCCD",22,0) 92330 ;92324 S DIC=2,DIC(0)="AEMQ" D ^DIC 92331 92325 "RTN","C0CCCD",23,0) 92332 EXPORT ; EXPORT ENTRY POINT FOR CCR 92326 I Y<1 Q ; EXIT 92333 92327 "RTN","C0CCCD",24,0) 92334 ; Select a patient.92328 S DFN=$P(Y,U,1) ; SET THE PATIENT 92335 92329 "RTN","C0CCCD",25,0) 92336 S DIC=2,DIC(0)="AEMQ" D ^DIC92330 D XPAT(DFN,"","") ; EXPORT TO A FILE 92337 92331 "RTN","C0CCCD",26,0) 92338 I Y<1 Q ; EXIT92332 Q 92339 92333 "RTN","C0CCCD",27,0) 92340 S DFN=$P(Y,U,1) ; SET THE PATIENT92334 ; 92341 92335 "RTN","C0CCCD",28,0) 92342 D XPAT(DFN,"","") ; EXPORT TO A FILE92336 XPAT(DFN,DIR,FN) ; EXPORT ONE PATIENT TO A FILE 92343 92337 "RTN","C0CCCD",29,0) 92344 Q92338 ; DIR IS THE DIRECTORY, DEFAULTS IF NULL TO ^TMP("C0CCCR","ODIR") 92345 92339 "RTN","C0CCCD",30,0) 92346 ;92340 ; FN IS FILE NAME, DEFAULTS IF NULL 92347 92341 "RTN","C0CCCD",31,0) 92348 XPAT(DFN,DIR,FN) ; EXPORT ONE PATIENT TO A FILE 92342 ; N CCDGLO 92349 92343 "RTN","C0CCCD",32,0) 92350 ; DIR IS THE DIRECTORY, DEFAULTS IF NULL TO ^TMP("C0CCCR","ODIR")92344 D CCDRPC(.CCDGLO,DFN,"CCD","","","") 92351 92345 "RTN","C0CCCD",33,0) 92352 ; FN IS FILE NAME, DEFAULTS IF NULL92346 S OARY=$NA(^TMP("C0CCCR",$J,DFN,"CCD",1)) 92353 92347 "RTN","C0CCCD",34,0) 92354 ; N CCDGLO92348 S ONAM=FN 92355 92349 "RTN","C0CCCD",35,0) 92356 D CCDRPC(.CCDGLO,DFN,"CCD","","","")92350 I FN="" S ONAM="PAT_"_DFN_"_CCD_V1.xml" 92357 92351 "RTN","C0CCCD",36,0) 92358 S OARY=$NA(^TMP("C0CCCR",$J,DFN,"CCD",1))92352 S ODIRGLB=$NA(^TMP("C0CCCR","ODIR")) 92359 92353 "RTN","C0CCCD",37,0) 92360 S ONAM=FN92354 I '$D(@ODIRGLB) D ; IF NOT ODIR HAS BEEN SET 92361 92355 "RTN","C0CCCD",38,0) 92362 I FN="" S ONAM="PAT_"_DFN_"_CCD_V1.xml"92356 . S @ODIRGLB="/home/glilly/CCROUT" 92363 92357 "RTN","C0CCCD",39,0) 92364 S ODIRGLB=$NA(^TMP("C0CCCR","ODIR"))92358 . ;S @ODIRGLB="/home/cedwards/" 92365 92359 "RTN","C0CCCD",40,0) 92366 I '$D(@ODIRGLB) D ; IF NOT ODIR HAS BEEN SET92360 . ;S @ODIRGLB="/opt/wv/p/" 92367 92361 "RTN","C0CCCD",41,0) 92368 . S @ODIRGLB="/home/glilly/CCROUT"92362 S ODIR=DIR 92369 92363 "RTN","C0CCCD",42,0) 92370 . ;S @ODIRGLB="/home/cedwards/"92364 I DIR="" S ODIR=@ODIRGLB 92371 92365 "RTN","C0CCCD",43,0) 92372 . ;S @ODIRGLB="/opt/wv/p/"92366 N ZY 92373 92367 "RTN","C0CCCD",44,0) 92374 S ODIR=DIR92368 S ZY=$$OUTPUT^C0CXPATH(OARY,ONAM,ODIR) 92375 92369 "RTN","C0CCCD",45,0) 92376 I DIR="" S ODIR=@ODIRGLB92370 W $P(ZY,U,2) 92377 92371 "RTN","C0CCCD",46,0) 92378 N ZY92372 Q 92379 92373 "RTN","C0CCCD",47,0) 92380 S ZY=$$OUTPUT^C0CXPATH(OARY,ONAM,ODIR)92374 ; 92381 92375 "RTN","C0CCCD",48,0) 92382 W $P(ZY,U,2) 92376 CCDRPC(CCRGRTN,DFN,CCRPART,TIME1,TIME2,HDRARY) ;RPC ENTRY POINT FOR CCR OUTPUT 92383 92377 "RTN","C0CCCD",49,0) 92384 Q92378 ; CCRGRTN IS RETURN ARRAY PASSED BY NAME 92385 92379 "RTN","C0CCCD",50,0) 92386 ;92380 ; DFN IS PATIENT IEN 92387 92381 "RTN","C0CCCD",51,0) 92388 CCDRPC(CCRGRTN,DFN,CCRPART,TIME1,TIME2,HDRARY) ;RPC ENTRY POINT FOR CCR OUTPUT92382 ; CCRPART IS "CCR" FOR ENTIRE CCR, OR SECTION NAME FOR A PART 92389 92383 "RTN","C0CCCD",52,0) 92390 ; CCRGRTN IS RETURN ARRAY PASSED BY NAME92384 ; OF THE CCR BODY.. PARTS INCLUDE "PROBLEMS" "VITALS" ETC 92391 92385 "RTN","C0CCCD",53,0) 92392 ; DFN IS PATIENT IEN92386 ; TIME1 IS STARTING TIME TO INCLUDE - NULL MEANS ALL 92393 92387 "RTN","C0CCCD",54,0) 92394 ; CCRPART IS "CCR" FOR ENTIRE CCR, OR SECTION NAME FOR A PART92388 ; TIME2 IS ENDING TIME TO INCLUDE TIME IS FILEMAN TIME 92395 92389 "RTN","C0CCCD",55,0) 92396 ; OF THE CCR BODY.. PARTS INCLUDE "PROBLEMS" "VITALS" ETC92390 ; - NULL MEANS NOW 92397 92391 "RTN","C0CCCD",56,0) 92398 ; TIME1 IS STARTING TIME TO INCLUDE - NULL MEANS ALL92392 ; HDRARY IS THE HEADER ARRAY DEFINING THE "FROM" AND 92399 92393 "RTN","C0CCCD",57,0) 92400 ; TIME2 IS ENDING TIME TO INCLUDE TIME IS FILEMAN TIME92394 ; "TO" VARIABLES 92401 92395 "RTN","C0CCCD",58,0) 92402 ; - NULL MEANS NOW92396 ; IF NULL WILL DEFAULT TO "FROM" ORGANIZATION AND "TO" DFN 92403 92397 "RTN","C0CCCD",59,0) 92404 ; HDRARY IS THE HEADER ARRAY DEFINING THE "FROM" AND92398 I '$D(DEBUG) S DEBUG=0 92405 92399 "RTN","C0CCCD",60,0) 92406 ; "TO" VARIABLES92400 N CCD S CCD=0 ; FLAG FOR PROCESSING A CCD 92407 92401 "RTN","C0CCCD",61,0) 92408 ; IF NULL WILL DEFAULT TO "FROM" ORGANIZATION AND "TO" DFN92402 I CCRPART="CCD" S CCD=1 ; WE ARE PROCESSING A CCD 92409 92403 "RTN","C0CCCD",62,0) 92410 I '$D(DEBUG) S DEBUG=092404 S TGLOBAL=$NA(^TMP("C0CCCR",$J,"TEMPLATE")) ; GLOBAL FOR STORING TEMPLATE 92411 92405 "RTN","C0CCCD",63,0) 92412 N CCD S CCD=0 ; FLAG FOR PROCESSING ACCD92406 I CCD S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCD")) ; GLOBAL FOR THE CCD 92413 92407 "RTN","C0CCCD",64,0) 92414 I CCRPART="CCD" S CCD=1 ; WE ARE PROCESSING A CCD92408 E S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCR")) ; GLOBAL FOR BUILDING THE CCR 92415 92409 "RTN","C0CCCD",65,0) 92416 S TGLOBAL=$NA(^TMP("C0CCCR",$J,"TEMPLATE")) ; GLOBAL FOR STORING TEMPLATE92410 S ACTGLO=$NA(^TMP("C0CCCR",$J,DFN,"ACTORS")) ; GLOBAL FOR ALL ACTORS 92417 92411 "RTN","C0CCCD",66,0) 92418 I CCD S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCD")) ; GLOBAL FOR THE CCD92412 ; TO GET PART OF THE CCR RETURNED, PASS CCRPART="PROBLEMS" ETC 92419 92413 "RTN","C0CCCD",67,0) 92420 E S CCDGLO=$NA(^TMP("C0CCCR",$J,DFN,"CCR")) ; GLOBAL FOR BUILDING THE CCR92414 S CCRGRTN=$NA(^TMP("C0CCCR",$J,DFN,CCRPART)) ; RTN GLO NM OF PART OR ALL 92421 92415 "RTN","C0CCCD",68,0) 92422 S ACTGLO=$NA(^TMP("C0CCCR",$J,DFN,"ACTORS")) ; GLOBAL FOR ALL ACTORS92416 I CCD D LOAD^C0CCCD1(TGLOBAL) ; LOAD THE CCR TEMPLATE 92423 92417 "RTN","C0CCCD",69,0) 92424 ; TO GET PART OF THE CCR RETURNED, PASS CCRPART="PROBLEMS" ETC92418 E D LOAD^C0CCCR0(TGLOBAL) ; LOAD THE CCR TEMPLATE 92425 92419 "RTN","C0CCCD",70,0) 92426 S CCRGRTN=$NA(^TMP("C0CCCR",$J,DFN,CCRPART)) ; RTN GLO NM OF PART OR ALL92420 D CP^C0CXPATH(TGLOBAL,CCDGLO) ; COPY THE TEMPLATE TO CCR GLOBAL 92427 92421 "RTN","C0CCCD",71,0) 92428 I CCD D LOAD^C0CCCD1(TGLOBAL) ; LOAD THE CCR TEMPLATE92422 N CAPSAVE,CAPSAVE2 ; FOR HOLDING THE CCD ROOT LINES 92429 92423 "RTN","C0CCCD",72,0) 92430 E D LOAD^C0CCCR0(TGLOBAL) ; LOAD THE CCR TEMPLATE92424 S CAPSAVE=@TGLOBAL@(3) ; SAVE THE CCD ROOT 92431 92425 "RTN","C0CCCD",73,0) 92432 D CP^C0CXPATH(TGLOBAL,CCDGLO) ; COPY THE TEMPLATE TO CCR GLOBAL92426 S CAPSAVE2=@TGLOBAL@(@TGLOBAL@(0)) ; SAVE LAST LINE OF CCD 92433 92427 "RTN","C0CCCD",74,0) 92434 N CAPSAVE,CAPSAVE2 ; FOR HOLDING THE CCD ROOT LINES92428 S @CCDGLO@(3)="<ContinuityOfCareRecord>" ; CAP WITH CCR ROOT 92435 92429 "RTN","C0CCCD",75,0) 92436 S CAPSAVE=@TGLOBAL@(3) ; SAVE THE CCD ROOT92430 S @TGLOBAL@(3)=@CCDGLO@(3) ; CAP THE TEMPLATE TOO 92437 92431 "RTN","C0CCCD",76,0) 92438 S CAPSAVE2=@TGLOBAL@(@TGLOBAL@(0)) ; SAVE LAST LINE OF CCD92432 S @CCDGLO@(@CCDGLO@(0))="</ContinuityOfCareRecord>" ; FINISH CAP 92439 92433 "RTN","C0CCCD",77,0) 92440 S @CCDGLO@(3)="<ContinuityOfCareRecord>" ; CAP WITH CCR ROOT92434 S @TGLOBAL@(@TGLOBAL@(0))="</ContinuityOfCareRecord>" ; FINISH CAP TEMP 92441 92435 "RTN","C0CCCD",78,0) 92442 S @TGLOBAL@(3)=@CCDGLO@(3) ; CAP THE TEMPLATE TOO92436 ; 92443 92437 "RTN","C0CCCD",79,0) 92444 S @CCDGLO@(@CCDGLO@(0))="</ContinuityOfCareRecord>" ; FINISH CAP92438 ; DELETE THE BODY, ACTORS AND SIGNATURES SECTIONS FROM GLOBAL 92445 92439 "RTN","C0CCCD",80,0) 92446 S @TGLOBAL@(@TGLOBAL@(0))="</ContinuityOfCareRecord>" ; FINISH CAP TEMP92440 ; THESE WILL BE POPULATED AFTER CALLS TO THE XPATH ROUTINES 92447 92441 "RTN","C0CCCD",81,0) 92448 ;92442 D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Body") 92449 92443 "RTN","C0CCCD",82,0) 92450 ; DELETE THE BODY, ACTORS AND SIGNATURES SECTIONS FROM GLOBAL92444 D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Actors") 92451 92445 "RTN","C0CCCD",83,0) 92452 ; THESE WILL BE POPULATED AFTER CALLS TO THE XPATH ROUTINES92446 I 'CCD D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Signatures") 92453 92447 "RTN","C0CCCD",84,0) 92454 D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Body")92448 I DEBUG F I=1:1:@CCDGLO@(0) W @CCDGLO@(I),! 92455 92449 "RTN","C0CCCD",85,0) 92456 D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Actors")92450 ; 92457 92451 "RTN","C0CCCD",86,0) 92458 I 'CCD D REPLACE^C0CXPATH(CCDGLO,"","//ContinuityOfCareRecord/Signatures")92452 I 'CCD D HDRMAP(CCDGLO,DFN,HDRARY) ; MAP HEADER VARIABLES 92459 92453 "RTN","C0CCCD",87,0) 92460 I DEBUG F I=1:1:@CCDGLO@(0) W @CCDGLO@(I),!92454 ; MAPPING THE PATIENT PORTION OF THE CDA HEADER 92461 92455 "RTN","C0CCCD",88,0) 92462 ;92456 S ZZX="//ContinuityOfCareRecord/recordTarget/patientRole/patient" 92463 92457 "RTN","C0CCCD",89,0) 92464 I 'CCD D HDRMAP(CCDGLO,DFN,HDRARY) ; MAP HEADER VARIABLES92458 D QUERY^C0CXPATH(CCDGLO,ZZX,"ACTT1") 92465 92459 "RTN","C0CCCD",90,0) 92466 ; MAPPING THE PATIENT PORTION OF THE CDA HEADER92460 D PATIENT^C0CACTOR("ACTT1",DFN,"ACTORPATIENT_"_DFN,"ACTT2") ; MAP PATIENT 92467 92461 "RTN","C0CCCD",91,0) 92468 S ZZX="//ContinuityOfCareRecord/recordTarget/patientRole/patient"92462 I DEBUG D PARY^C0CXPATH("ACTT2") 92469 92463 "RTN","C0CCCD",92,0) 92470 D QUERY^C0CXPATH(CCDGLO,ZZX,"ACTT1")92464 D REPLACE^C0CXPATH(CCDGLO,"ACTT2",ZZX) 92471 92465 "RTN","C0CCCD",93,0) 92472 D PATIENT^C0CACTOR("ACTT1",DFN,"ACTORPATIENT_"_DFN,"ACTT2") ; MAP PATIENT92466 I DEBUG D PARY^C0CXPATH(CCDGLO) 92473 92467 "RTN","C0CCCD",94,0) 92474 I DEBUG D PARY^C0CXPATH("ACTT2")92468 K ACTT1 K ACCT2 92475 92469 "RTN","C0CCCD",95,0) 92476 D REPLACE^C0CXPATH(CCDGLO,"ACTT2",ZZX)92470 ; MAPPING THE PROVIDER ORGANIZATION,AUTHOR,INFORMANT,CUSTODIAN CDA HEADER 92477 92471 "RTN","C0CCCD",96,0) 92478 I DEBUG D PARY^C0CXPATH(CCDGLO)92472 ; FOR NOW, THEY ARE ALL THE SAME AND RESOLVE TO ORGANIZATION 92479 92473 "RTN","C0CCCD",97,0) 92480 K ACTT1 K ACCT292474 D ORG^C0CACTOR(CCDGLO,DFN,"ACTORPATIENTORGANIZATION","ACTT2") ; MAP ORG 92481 92475 "RTN","C0CCCD",98,0) 92482 ; MAPPING THE PROVIDER ORGANIZATION,AUTHOR,INFORMANT,CUSTODIAN CDA HEADER92476 D CP^C0CXPATH("ACTT2",CCDGLO) 92483 92477 "RTN","C0CCCD",99,0) 92484 ; FOR NOW, THEY ARE ALL THE SAME AND RESOLVE TO ORGANIZATION92478 ; 92485 92479 "RTN","C0CCCD",100,0) 92486 D ORG^C0CACTOR(CCDGLO,DFN,"ACTORPATIENTORGANIZATION","ACTT2") ; MAP ORG92480 K ^TMP("C0CCCR",$J,"CCRSTEP") ; KILL GLOBAL PRIOR TO ADDING TO IT 92487 92481 "RTN","C0CCCD",101,0) 92488 D CP^C0CXPATH("ACTT2",CCDGLO)92482 S CCRXTAB=$NA(^TMP("C0CCCR",$J,"CCRSTEP")) ; GLOBAL TO STORE CCR STEPS 92489 92483 "RTN","C0CCCD",102,0) 92490 ;92484 D INITSTPS(CCRXTAB) ; INITIALIZED CCR PROCESSING STEPS 92491 92485 "RTN","C0CCCD",103,0) 92492 K ^TMP("C0CCCR",$J,"CCRSTEP") ; KILL GLOBAL PRIOR TO ADDING TO IT92486 N I,XI,TAG,RTN,CALL,XPATH,IXML,OXML,INXML,CCRBLD 92493 92487 "RTN","C0CCCD",104,0) 92494 S CCRXTAB=$NA(^TMP("C0CCCR",$J,"CCRSTEP")) ; GLOBAL TO STORE CCR STEPS92488 F I=1:1:@CCRXTAB@(0) D ; PROCESS THE CCR BODY SECTIONS 92495 92489 "RTN","C0CCCD",105,0) 92496 D INITSTPS(CCRXTAB) ; INITIALIZED CCR PROCESSING STEPS92490 . S XI=@CCRXTAB@(I) ; CALL COPONENTS TO PARSE 92497 92491 "RTN","C0CCCD",106,0) 92498 N I,XI,TAG,RTN,CALL,XPATH,IXML,OXML,INXML,CCRBLD92492 . S RTN=$P(XI,";",2) ; NAME OF ROUTINE TO CALL 92499 92493 "RTN","C0CCCD",107,0) 92500 F I=1:1:@CCRXTAB@(0) D ; PROCESS THE CCR BODY SECTIONS92494 . S TAG=$P(XI,";",1) ; LABEL INSIDE ROUTINE TO CALL 92501 92495 "RTN","C0CCCD",108,0) 92502 . S XI=@CCRXTAB@(I) ; CALL COPONENTS TO PARSE92496 . S XPATH=$P(XI,";",3) ; XPATH TO XML TO PASS TO ROUTINE 92503 92497 "RTN","C0CCCD",109,0) 92504 . S RTN=$P(XI,";",2) ; NAME OF ROUTINE TO CALL92498 . D QUERY^C0CXPATH(TGLOBAL,XPATH,"INXML") ; EXTRACT XML TO PASS 92505 92499 "RTN","C0CCCD",110,0) 92506 . S TAG=$P(XI,";",1) ; LABEL INSIDE ROUTINE TO CALL92500 . S IXML="INXML" 92507 92501 "RTN","C0CCCD",111,0) 92508 . S XPATH=$P(XI,";",3) ; XPATH TO XML TO PASS TO ROUTINE92502 . I CCD D SHAVE(IXML) ; REMOVE ALL BUT REPEATING PARTS OF TEMPLATE SECTION 92509 92503 "RTN","C0CCCD",112,0) 92510 . D QUERY^C0CXPATH(TGLOBAL,XPATH,"INXML") ; EXTRACT XML TO PASS92504 . S OXML=$P(XI,";",4) ; ARRAY FOR SECTION VALUES 92511 92505 "RTN","C0CCCD",113,0) 92512 . S IXML="INXML"92506 . ; W OXML,! 92513 92507 "RTN","C0CCCD",114,0) 92514 . I CCD D SHAVE(IXML) ; REMOVE ALL BUT REPEATING PARTS OF TEMPLATE SECTION92508 . S CALL="D "_TAG_"^"_RTN_"(IXML,DFN,OXML)" ; SETUP THE CALL 92515 92509 "RTN","C0CCCD",115,0) 92516 . S OXML=$P(XI,";",4) ; ARRAY FOR SECTION VALUES92510 . W "RUNNING ",CALL,! 92517 92511 "RTN","C0CCCD",116,0) 92518 . ; W OXML,!92512 . X CALL 92519 92513 "RTN","C0CCCD",117,0) 92520 . S CALL="D "_TAG_"^"_RTN_"(IXML,DFN,OXML)" ; SETUP THE CALL92514 . I @OXML@(0)'=0 D ; THERE IS A RESULT 92521 92515 "RTN","C0CCCD",118,0) 92522 . W "RUNNING ",CALL,!92516 . . I CCD D QUERY^C0CXPATH(TGLOBAL,XPATH,"ITMP") ; XML TO UNSHAVE WITH 92523 92517 "RTN","C0CCCD",119,0) 92524 . X CALL92518 . . I CCD D UNSHAVE("ITMP",OXML) 92525 92519 "RTN","C0CCCD",120,0) 92526 . I @OXML@(0)'=0 D ; THERE IS A RESULT92520 . . I CCD D UNMARK^C0CXPATH(OXML) ; REMOVE THE CCR MARKUP FROM SECTION 92527 92521 "RTN","C0CCCD",121,0) 92528 . . I CCD D QUERY^C0CXPATH(TGLOBAL,XPATH,"ITMP") ; XML TO UNSHAVE WITH92522 . ; NOW INSERT THE RESULTS IN THE CCR BUFFER 92529 92523 "RTN","C0CCCD",122,0) 92530 . . I CCD D UNSHAVE("ITMP",OXML)92524 . D INSERT^C0CXPATH(CCDGLO,OXML,"//ContinuityOfCareRecord/Body") 92531 92525 "RTN","C0CCCD",123,0) 92532 . . I CCD D UNMARK^C0CXPATH(OXML) ; REMOVE THE CCR MARKUP FROM SECTION92526 . I DEBUG F C0CI=1:1:@OXML@(0) W @OXML@(C0CI),! 92533 92527 "RTN","C0CCCD",124,0) 92534 . ; NOW INSERT THE RESULTS IN THE CCR BUFFER92528 ; NEED TO ADD BACK IN ACTOR PROCESSING AFTER WE FIGURE OUT LINKAGE 92535 92529 "RTN","C0CCCD",125,0) 92536 . D INSERT^C0CXPATH(CCDGLO,OXML,"//ContinuityOfCareRecord/Body")92530 ; D ACTLST^C0CCCR(CCDGLO,ACTGLO) ; GEN THE ACTOR LIST 92537 92531 "RTN","C0CCCD",126,0) 92538 . I DEBUG F C0CI=1:1:@OXML@(0) W @OXML@(C0CI),!92532 ; D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","ACTT") 92539 92533 "RTN","C0CCCD",127,0) 92540 ; NEED TO ADD BACK IN ACTOR PROCESSING AFTER WE FIGURE OUT LINKAGE92534 ; D EXTRACT^C0CACTOR("ACTT",ACTGLO,"ACTT2") 92541 92535 "RTN","C0CCCD",128,0) 92542 ; D ACTLST^C0CCCR(CCDGLO,ACTGLO) ; GEN THE ACTOR LIST92536 ; D INSINNER^C0CXPATH(CCDGLO,"ACTT2","//ContinuityOfCareRecord/Actors") 92543 92537 "RTN","C0CCCD",129,0) 92544 ; D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","ACTT")92538 N I,J,DONE S DONE=0 92545 92539 "RTN","C0CCCD",130,0) 92546 ; D EXTRACT^C0CACTOR("ACTT",ACTGLO,"ACTT2")92540 F I=0:0 D Q:DONE ; DELETE UNTIL ALL EMPTY ELEMENTS ARE GONE 92547 92541 "RTN","C0CCCD",131,0) 92548 ; D INSINNER^C0CXPATH(CCDGLO,"ACTT2","//ContinuityOfCareRecord/Actors")92542 . S J=$$TRIM^C0CXPATH(CCDGLO) ; DELETE EMPTY ELEMENTS 92549 92543 "RTN","C0CCCD",132,0) 92550 N I,J,DONE S DONE=092544 . W "TRIMMED",J,! 92551 92545 "RTN","C0CCCD",133,0) 92552 F I=0:0 D Q:DONE ; DELETE UNTIL ALL EMPTY ELEMENTS ARE GONE92546 . I J=0 S DONE=1 ; DONE WHEN TRIM RETURNS FALSE 92553 92547 "RTN","C0CCCD",134,0) 92554 . S J=$$TRIM^C0CXPATH(CCDGLO) ; DELETE EMPTY ELEMENTS92548 I CCD D ; TURN THE BODY INTO A CCD COMPONENT 92555 92549 "RTN","C0CCCD",135,0) 92556 . W "TRIMMED",J,!92550 . N I 92557 92551 "RTN","C0CCCD",136,0) 92558 . I J=0 S DONE=1 ; DONE WHEN TRIM RETURNS FALSE92552 . F I=1:1:@CCDGLO@(0) D ; SEARCH THROUGH THE ENTIRE ARRAY 92559 92553 "RTN","C0CCCD",137,0) 92560 I CCD D ; TURN THE BODY INTO A CCD COMPONENT92554 . . I @CCDGLO@(I)["<Body>" D ; REPLACE BODY MARKUP 92561 92555 "RTN","C0CCCD",138,0) 92562 . N I92556 . . . S @CCDGLO@(I)="<component><structuredBody>" ; WITH CCD EQ 92563 92557 "RTN","C0CCCD",139,0) 92564 . F I=1:1:@CCDGLO@(0) D ; SEARCH THROUGH THE ENTIRE ARRAY92558 . . I @CCDGLO@(I)["</Body>" D ; REPLACE BODY MARKUP 92565 92559 "RTN","C0CCCD",140,0) 92566 . . I @CCDGLO@(I)["<Body>" D ; REPLACE BODY MARKUP92560 . . . S @CCDGLO@(I)="</structuredBody></component>" 92567 92561 "RTN","C0CCCD",141,0) 92568 . . . S @CCDGLO@(I)="<component><structuredBody>" ; WITH CCD EQ92562 S @CCDGLO@(3)=CAPSAVE ; UNCAP - TURN IT BACK INTO A CCD 92569 92563 "RTN","C0CCCD",142,0) 92570 . . I @CCDGLO@(I)["</Body>" D ; REPLACE BODY MARKUP92564 S @CCDGLO@(@CCDGLO@(0))=CAPSAVE2 ; UNCAP LAST LINE 92571 92565 "RTN","C0CCCD",143,0) 92572 . . . S @CCDGLO@(I)="</structuredBody></component>"92566 Q 92573 92567 "RTN","C0CCCD",144,0) 92574 S @CCDGLO@(3)=CAPSAVE ; UNCAP - TURN IT BACK INTO A CCD92568 ; 92575 92569 "RTN","C0CCCD",145,0) 92576 S @CCDGLO@(@CCDGLO@(0))=CAPSAVE2 ; UNCAP LAST LINE 92570 INITSTPS(TAB) ; INITIALIZE CCR PROCESSING STEPS 92577 92571 "RTN","C0CCCD",146,0) 92578 Q92572 ; TAB IS PASSED BY NAME 92579 92573 "RTN","C0CCCD",147,0) 92580 ;92574 W "TAB= ",TAB,! 92581 92575 "RTN","C0CCCD",148,0) 92582 INITSTPS(TAB) ; INITIALIZE CCR PROCESSING STEPS92576 ; ORDER FOR CCR IS PROBLEMS,FAMILYHISTORY,SOCIALHISTORY,MEDICATIONS,VITALSIGNS,RESULTS,HEALTHCAREPROVIDERS 92583 92577 "RTN","C0CCCD",149,0) 92584 ; TAB IS PASSED BY NAME92578 D PUSH^C0CXPATH(TAB,"EXTRACT;C0CPROBS;//ContinuityOfCareRecord/Body/Problems;^TMP(""C0CCCR"",$J,DFN,""PROBLEMS"")") 92585 92579 "RTN","C0CCCD",150,0) 92586 W "TAB= ",TAB,!92580 ;D PUSH^C0CXPATH(TAB,"EXTRACT;C0CMED;//ContinuityOfCareRecord/Body/Medications;^TMP(""C0CCCR"",$J,DFN,""MEDICATIONS"")") 92587 92581 "RTN","C0CCCD",151,0) 92588 ; ORDER FOR CCR IS PROBLEMS,FAMILYHISTORY,SOCIALHISTORY,MEDICATIONS,VITALSIGNS,RESULTS,HEALTHCAREPROVIDERS92582 I 'CCD D PUSH^C0CXPATH(TAB,"EXTRACT;C0CVITAL;//ContinuityOfCareRecord/Body/VitalSigns;^TMP(""C0CCCR"",$J,DFN,""VITALS"")") 92589 92583 "RTN","C0CCCD",152,0) 92590 D PUSH^C0CXPATH(TAB,"EXTRACT;C0CPROBS;//ContinuityOfCareRecord/Body/Problems;^TMP(""C0CCCR"",$J,DFN,""PROBLEMS"")")92584 Q 92591 92585 "RTN","C0CCCD",153,0) 92592 ;D PUSH^C0CXPATH(TAB,"EXTRACT;C0CMED;//ContinuityOfCareRecord/Body/Medications;^TMP(""C0CCCR"",$J,DFN,""MEDICATIONS"")")92586 ; 92593 92587 "RTN","C0CCCD",154,0) 92594 I 'CCD D PUSH^C0CXPATH(TAB,"EXTRACT;C0CVITAL;//ContinuityOfCareRecord/Body/VitalSigns;^TMP(""C0CCCR"",$J,DFN,""VITALS"")") 92588 SHAVE(SHXML) ; REMOVES THE 2-6 AND N-1 AND N-2 LINES FROM A COMPONENT 92595 92589 "RTN","C0CCCD",155,0) 92596 Q92590 ; NEEDED TO EXPOSE THE REPEATING PARTS FOR GENERATION 92597 92591 "RTN","C0CCCD",156,0) 92598 ;92592 N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST 92599 92593 "RTN","C0CCCD",157,0) 92600 SHAVE(SHXML) ; REMOVES THE 2-6 AND N-1 AND N-2 LINES FROM A COMPONENT 92594 W SHXML,! 92601 92595 "RTN","C0CCCD",158,0) 92602 ; NEEDED TO EXPOSE THE REPEATING PARTS FOR GENERATION92596 W @SHXML@(1),! 92603 92597 "RTN","C0CCCD",159,0) 92604 N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST92598 D QUEUE^C0CXPATH("SHBLD",SHXML,1,1) ; THE FIRST LINE IS NEEDED 92605 92599 "RTN","C0CCCD",160,0) 92606 W SHXML,!92600 D QUEUE^C0CXPATH("SHBLD",SHXML,7,@SHXML@(0)-3) ; REPEATING PART 92607 92601 "RTN","C0CCCD",161,0) 92608 W @SHXML@(1),!92602 D QUEUE^C0CXPATH("SHBLD",SHXML,@SHXML@(0),@SHXML@(0)) ; LAST LINE 92609 92603 "RTN","C0CCCD",162,0) 92610 D QUEUE^C0CXPATH("SHBLD",SHXML,1,1) ; THE FIRST LINE IS NEEDED92604 D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST 92611 92605 "RTN","C0CCCD",163,0) 92612 D QUEUE^C0CXPATH("SHBLD",SHXML,7,@SHXML@(0)-3) ; REPEATING PART92606 D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION 92613 92607 "RTN","C0CCCD",164,0) 92614 D QUEUE^C0CXPATH("SHBLD",SHXML,@SHXML@(0),@SHXML@(0)) ; LAST LINE92608 D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY 92615 92609 "RTN","C0CCCD",165,0) 92616 D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST92610 Q 92617 92611 "RTN","C0CCCD",166,0) 92618 D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION92612 ; 92619 92613 "RTN","C0CCCD",167,0) 92620 D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY 92614 UNSHAVE(ORIGXML,SHXML) ; REPLACES THE 2-6 AND N-1 AND N-2 LINES FROM TEMPLATE 92621 92615 "RTN","C0CCCD",168,0) 92622 Q92616 ; NEEDED TO RESTORM FIXED TOP AND BOTTOM OF THE COMPONENT XML 92623 92617 "RTN","C0CCCD",169,0) 92624 ;92618 N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST 92625 92619 "RTN","C0CCCD",170,0) 92626 UNSHAVE(ORIGXML,SHXML) ; REPLACES THE 2-6 AND N-1 AND N-2 LINES FROM TEMPLATE 92620 W SHXML,! 92627 92621 "RTN","C0CCCD",171,0) 92628 ; NEEDED TO RESTORM FIXED TOP AND BOTTOM OF THE COMPONENT XML92622 W @SHXML@(1),! 92629 92623 "RTN","C0CCCD",172,0) 92630 N SHTMP,SHBLD ; TEMP ARRAY AND BUILD LIST92624 D QUEUE^C0CXPATH("SHBLD",ORIGXML,1,6) ; FIRST 6 LINES OF TEMPLATE 92631 92625 "RTN","C0CCCD",173,0) 92632 W SHXML,!92626 D QUEUE^C0CXPATH("SHBLD",SHXML,2,@SHXML@(0)-1) ; INS ALL BUT FIRST/LAST 92633 92627 "RTN","C0CCCD",174,0) 92634 W @SHXML@(1),!92628 D QUEUE^C0CXPATH("SHBLD",ORIGXML,@ORIGXML@(0)-2,@ORIGXML@(0)) ; FROM TEMP 92635 92629 "RTN","C0CCCD",175,0) 92636 D QUEUE^C0CXPATH("SHBLD",ORIGXML,1,6) ; FIRST 6 LINES OF TEMPLATE92630 D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST 92637 92631 "RTN","C0CCCD",176,0) 92638 D QUEUE^C0CXPATH("SHBLD",SHXML,2,@SHXML@(0)-1) ; INS ALL BUT FIRST/LAST92632 D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION 92639 92633 "RTN","C0CCCD",177,0) 92640 D QUEUE^C0CXPATH("SHBLD",ORIGXML,@ORIGXML@(0)-2,@ORIGXML@(0)) ; FROM TEMP92634 D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY 92641 92635 "RTN","C0CCCD",178,0) 92642 D PARY^C0CXPATH("SHBLD") ; PRINT BUILD LIST92636 Q 92643 92637 "RTN","C0CCCD",179,0) 92644 D BUILD^C0CXPATH("SHBLD","SHTMP") ; BUILD EDITED SECTION92638 ; 92645 92639 "RTN","C0CCCD",180,0) 92646 D CP^C0CXPATH("SHTMP",SHXML) ; COPY RESULT TO PASSED ARRAY 92640 HDRMAP(CXML,DFN,IHDR) ; MAP HEADER VARIABLES: FROM, TO ECT 92647 92641 "RTN","C0CCCD",181,0) 92648 Q92642 N VMAP S VMAP=$NA(^TMP("C0CCCR",$J,DFN,"HEADER")) 92649 92643 "RTN","C0CCCD",182,0) 92650 ;92644 ; K @VMAP 92651 92645 "RTN","C0CCCD",183,0) 92652 HDRMAP(CXML,DFN,IHDR) ; MAP HEADER VARIABLES: FROM, TO ECT 92646 S @VMAP@("DATETIME")=$$FMDTOUTC^C0CUTIL($$NOW^XLFDT,"DT") 92653 92647 "RTN","C0CCCD",184,0) 92654 N VMAP S VMAP=$NA(^TMP("C0CCCR",$J,DFN,"HEADER"))92648 I IHDR="" D ; HEADER ARRAY IS NOT PROVIDED, USE DEFAULTS 92655 92649 "RTN","C0CCCD",185,0) 92656 ; K @VMAP92650 . S @VMAP@("ACTORPATIENT")="ACTORPATIENT_"_DFN 92657 92651 "RTN","C0CCCD",186,0) 92658 S @VMAP@("DATETIME")=$$FMDTOUTC^C0CUTIL($$NOW^XLFDT,"DT")92652 . S @VMAP@("ACTORFROM")="ACTORORGANIZATION_"_DUZ ; FROM DUZ - ??? 92659 92653 "RTN","C0CCCD",187,0) 92660 I IHDR="" D ; HEADER ARRAY IS NOT PROVIDED, USE DEFAULTS92654 . S @VMAP@("ACTORFROM2")="ACTORSYSTEM_1" ; SECOND FROM IS THE SYSTEM 92661 92655 "RTN","C0CCCD",188,0) 92662 . S @VMAP@("ACTORPATIENT")="ACTORPATIENT_"_DFN92656 . S @VMAP@("ACTORTO")="ACTORPATIENT_"_DFN ; FOR TEST PURPOSES 92663 92657 "RTN","C0CCCD",189,0) 92664 . S @VMAP@("ACTORFROM")="ACTORORGANIZATION_"_DUZ ; FROM DUZ - ???92658 . S @VMAP@("PURPOSEDESCRIPTION")="CEND PHR" ; FOR TEST PURPOSES 92665 92659 "RTN","C0CCCD",190,0) 92666 . S @VMAP@("ACTORFROM2")="ACTORSYSTEM_1" ; SECOND FROM IS THE SYSTEM92660 . S @VMAP@("ACTORTOTEXT")="Patient" ; FOR TEST PURPOSES 92667 92661 "RTN","C0CCCD",191,0) 92668 . S @VMAP@("ACTORTO")="ACTORPATIENT_"_DFN ; FOR TEST PURPOSES92662 . ; THIS IS THE USE CASE FOR THE PHR WHERE "TO" IS THE PATIENT 92669 92663 "RTN","C0CCCD",192,0) 92670 . S @VMAP@("PURPOSEDESCRIPTION")="CEND PHR" ; FOR TEST PURPOSES92664 I IHDR'="" D ; HEADER VALUES ARE PROVIDED 92671 92665 "RTN","C0CCCD",193,0) 92672 . S @VMAP@("ACTORTOTEXT")="Patient" ; FOR TEST PURPOSES92666 . D CP^C0CXPATH(IHDR,VMAP) ; COPY HEADER VARIABLES TO MAP ARRAY 92673 92667 "RTN","C0CCCD",194,0) 92674 . ; THIS IS THE USE CASE FOR THE PHR WHERE "TO" IS THE PATIENT92668 N CTMP 92675 92669 "RTN","C0CCCD",195,0) 92676 I IHDR'="" D ; HEADER VALUES ARE PROVIDED92670 D MAP^C0CXPATH(CXML,VMAP,"CTMP") 92677 92671 "RTN","C0CCCD",196,0) 92678 . D CP^C0CXPATH(IHDR,VMAP) ; COPY HEADER VARIABLES TO MAP ARRAY92672 D CP^C0CXPATH("CTMP",CXML) 92679 92673 "RTN","C0CCCD",197,0) 92680 N CTMP92674 Q 92681 92675 "RTN","C0CCCD",198,0) 92682 D MAP^C0CXPATH(CXML,VMAP,"CTMP")92676 ; 92683 92677 "RTN","C0CCCD",199,0) 92684 D CP^C0CXPATH("CTMP",CXML) 92678 ACTLST(AXML,ACTRTN) ; RETURN THE ACTOR LIST FOR THE XML IN AXML 92685 92679 "RTN","C0CCCD",200,0) 92686 Q92680 ; AXML AND ACTRTN ARE PASSED BY NAME 92687 92681 "RTN","C0CCCD",201,0) 92688 ;92682 ; EACH ACTOR RECORD HAS 3 PARTS - IE IF OBJECTID=ACTORPATIENT_2 92689 92683 "RTN","C0CCCD",202,0) 92690 ACTLST(AXML,ACTRTN) ; RETURN THE ACTOR LIST FOR THE XML IN AXML 92684 ; P1= OBJECTID - ACTORPATIENT_2 92691 92685 "RTN","C0CCCD",203,0) 92692 ; AXML AND ACTRTN ARE PASSED BY NAME92686 ; P2= OBJECT TYPE - PATIENT OR PROVIDER OR SOFTWARE 92693 92687 "RTN","C0CCCD",204,0) 92694 ; EACH ACTOR RECORD HAS 3 PARTS - IE IF OBJECTID=ACTORPATIENT_292688 ;OR INSTITUTION 92695 92689 "RTN","C0CCCD",205,0) 92696 ; P1= OBJECTID - ACTORPATIENT_292690 ; OR PERSON(IN PATIENT FILE IE NOK) 92697 92691 "RTN","C0CCCD",206,0) 92698 ; P2= OBJECT TYPE - PATIENT OR PROVIDER OR SOFTWARE92692 ; P3= IEN RECORD NUMBER FOR ACTOR - 2 92699 92693 "RTN","C0CCCD",207,0) 92700 ;OR INSTITUTION92694 N I,J,K,L 92701 92695 "RTN","C0CCCD",208,0) 92702 ; OR PERSON(IN PATIENT FILE IE NOK)92696 K @ACTRTN ; CLEAR RETURN ARRAY 92703 92697 "RTN","C0CCCD",209,0) 92704 ; P3= IEN RECORD NUMBER FOR ACTOR - 292698 F I=1:1:@AXML@(0) D ; SCAN ALL LINES 92705 92699 "RTN","C0CCCD",210,0) 92706 N I,J,K,L92700 . I @AXML@(I)?.E1"<ActorID>".E D ; THERE IS AN ACTOR THIS LINE 92707 92701 "RTN","C0CCCD",211,0) 92708 K @ACTRTN ; CLEAR RETURN ARRAY92702 . . S J=$P($P(@AXML@(I),"<ActorID>",2),"</ActorID>",1) 92709 92703 "RTN","C0CCCD",212,0) 92710 F I=1:1:@AXML@(0) D ; SCAN ALL LINES92704 . . W "<ActorID>=>",J,! 92711 92705 "RTN","C0CCCD",213,0) 92712 . I @AXML@(I)?.E1"<ActorID>".E D ; THERE IS AN ACTOR THIS LINE92706 . . I J'="" S K(J)="" ; HASHING ACTOR 92713 92707 "RTN","C0CCCD",214,0) 92714 . . S J=$P($P(@AXML@(I),"<ActorID>",2),"</ActorID>",1)92708 . . ; TO GET RID OF DUPLICATES 92715 92709 "RTN","C0CCCD",215,0) 92716 . . W "<ActorID>=>",J,!92710 S I="" ; GOING TO $O THROUGH THE HASH 92717 92711 "RTN","C0CCCD",216,0) 92718 . . I J'="" S K(J)="" ; HASHING ACTOR92712 F J=0:0 D Q:$O(K(I))="" ; 92719 92713 "RTN","C0CCCD",217,0) 92720 . . ; TO GET RID OF DUPLICATES92714 . S I=$O(K(I)) ; WALK THROUGH THE HASH OF ACTORS 92721 92715 "RTN","C0CCCD",218,0) 92722 S I="" ; GOING TO $O THROUGH THE HASH92716 . S $P(L,U,1)=I ; FIRST PIECE IS THE OBJECT ID 92723 92717 "RTN","C0CCCD",219,0) 92724 F J=0:0 D Q:$O(K(I))="" ;92718 . S $P(L,U,2)=$P($P(I,"ACTOR",2),"_",1) ; ACTOR TYPE 92725 92719 "RTN","C0CCCD",220,0) 92726 . S I=$O(K(I)) ; WALK THROUGH THE HASH OF ACTORS92720 . S $P(L,U,3)=$P(I,"_",2) ; IEN RECORD NUMBER FOR ACTOR 92727 92721 "RTN","C0CCCD",221,0) 92728 . S $P(L,U,1)=I ; FIRST PIECE IS THE OBJECT ID92722 . D PUSH^C0CXPATH(ACTRTN,L) ; ADD THE ACTOR TO THE RETURN ARRAY 92729 92723 "RTN","C0CCCD",222,0) 92730 . S $P(L,U,2)=$P($P(I,"ACTOR",2),"_",1) ; ACTOR TYPE92724 Q 92731 92725 "RTN","C0CCCD",223,0) 92732 . S $P(L,U,3)=$P(I,"_",2) ; IEN RECORD NUMBER FOR ACTOR92726 ; 92733 92727 "RTN","C0CCCD",224,0) 92734 . D PUSH^C0CXPATH(ACTRTN,L) ; ADD THE ACTOR TO THE RETURN ARRAY 92728 TEST ; RUN ALL THE TEST CASES 92735 92729 "RTN","C0CCCD",225,0) 92736 Q92730 D TESTALL^C0CUNIT("C0CCCR") 92737 92731 "RTN","C0CCCD",226,0) 92738 ;92732 Q 92739 92733 "RTN","C0CCCD",227,0) 92740 TEST ; RUN ALL THE TEST CASES 92734 ; 92741 92735 "RTN","C0CCCD",228,0) 92742 D TESTALL^C0CUNIT("C0CCCR") 92736 ZTEST(WHICH) ; RUN ONE SET OF TESTS 92743 92737 "RTN","C0CCCD",229,0) 92744 Q92738 N ZTMP 92745 92739 "RTN","C0CCCD",230,0) 92746 ;92740 D ZLOAD^C0CUNIT("ZTMP","C0CCCR") 92747 92741 "RTN","C0CCCD",231,0) 92748 ZTEST(WHICH) ; RUN ONE SET OF TESTS 92742 D ZTEST^C0CUNIT(.ZTMP,WHICH) 92749 92743 "RTN","C0CCCD",232,0) 92750 N ZTMP92744 Q 92751 92745 "RTN","C0CCCD",233,0) 92752 D ZLOAD^C0CUNIT("ZTMP","C0CCCR")92746 ; 92753 92747 "RTN","C0CCCD",234,0) 92754 D ZTEST^C0CUNIT(.ZTMP,WHICH) 92748 TLIST ; LIST THE TESTS 92755 92749 "RTN","C0CCCD",235,0) 92756 Q92750 N ZTMP 92757 92751 "RTN","C0CCCD",236,0) 92758 ;92752 D ZLOAD^C0CUNIT("ZTMP","C0CCCR") 92759 92753 "RTN","C0CCCD",237,0) 92760 TLIST ; LIST THE TESTS 92754 D TLIST^C0CUNIT(.ZTMP) 92761 92755 "RTN","C0CCCD",238,0) 92762 N ZTMP92756 Q 92763 92757 "RTN","C0CCCD",239,0) 92764 D ZLOAD^C0CUNIT("ZTMP","C0CCCR")92758 ; 92765 92759 "RTN","C0CCCD",240,0) 92766 D TLIST^C0CUNIT(.ZTMP)92760 ;;><TEST> 92767 92761 "RTN","C0CCCD",241,0) 92768 Q92762 ;;><PROBLEMS> 92769 92763 "RTN","C0CCCD",242,0) 92770 ;92764 ;;>>>K C0C S C0C="" 92771 92765 "RTN","C0CCCD",243,0) 92772 ;;> <TEST>92766 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","PROBLEMS","","","") 92773 92767 "RTN","C0CCCD",244,0) 92774 ;;> <PROBLEMS>92768 ;;>>?@C0C@(@C0C@(0))["</Problems>" 92775 92769 "RTN","C0CCCD",245,0) 92770 ;;><VITALS> 92771 "RTN","C0CCCD",246,0) 92776 92772 ;;>>>K C0C S C0C="" 92777 "RTN","C0CCCD",246,0)92778 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","PROBLEMS","","","")92779 92773 "RTN","C0CCCD",247,0) 92780 ;;>> ?@C0C@(@C0C@(0))["</Problems>"92774 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","VITALS","","","") 92781 92775 "RTN","C0CCCD",248,0) 92782 ;;> <VITALS>92776 ;;>>?@C0C@(@C0C@(0))["</VitalSigns>" 92783 92777 "RTN","C0CCCD",249,0) 92778 ;;><CCR> 92779 "RTN","C0CCCD",250,0) 92784 92780 ;;>>>K C0C S C0C="" 92785 "RTN","C0CCCD",250,0)92786 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","VITALS","","","")92787 92781 "RTN","C0CCCD",251,0) 92788 ;;>> ?@C0C@(@C0C@(0))["</VitalSigns>"92782 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCR","","","") 92789 92783 "RTN","C0CCCD",252,0) 92790 ;;> <CCR>92784 ;;>>?@C0C@(@C0C@(0))["</ContinuityOfCareRecord>" 92791 92785 "RTN","C0CCCD",253,0) 92786 ;;><ACTLST> 92787 "RTN","C0CCCD",254,0) 92792 92788 ;;>>>K C0C S C0C="" 92793 "RTN","C0CCCD",25 4,0)92789 "RTN","C0CCCD",255,0) 92794 92790 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCR","","","") 92795 "RTN","C0CCCD",255,0) 92791 "RTN","C0CCCD",256,0) 92792 ;;>>>D ACTLST^C0CCCR(C0C,"ACTTEST") 92793 "RTN","C0CCCD",257,0) 92794 ;;><ACTORS> 92795 "RTN","C0CCCD",258,0) 92796 ;;>>>D ZTEST^C0CCCR("ACTLST") 92797 "RTN","C0CCCD",259,0) 92798 ;;>>>D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","G2") 92799 "RTN","C0CCCD",260,0) 92800 ;;>>>D EXTRACT^C0CACTOR("G2","ACTTEST","G3") 92801 "RTN","C0CCCD",261,0) 92802 ;;>>?G3(G3(0))["</Actors>" 92803 "RTN","C0CCCD",262,0) 92804 ;;><TRIM> 92805 "RTN","C0CCCD",263,0) 92806 ;;>>>D ZTEST^C0CCCR("CCR") 92807 "RTN","C0CCCD",264,0) 92808 ;;>>>W $$TRIM^C0CXPATH(CCDGLO) 92809 "RTN","C0CCCD",265,0) 92810 ;;><CCD> 92811 "RTN","C0CCCD",266,0) 92812 ;;>>>K C0C S C0C="" 92813 "RTN","C0CCCD",267,0) 92814 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCD","","","") 92815 "RTN","C0CCCD",268,0) 92796 92816 ;;>>?@C0C@(@C0C@(0))["</ContinuityOfCareRecord>" 92797 "RTN","C0CCCD",256,0)92798 ;;><ACTLST>92799 "RTN","C0CCCD",257,0)92800 ;;>>>K C0C S C0C=""92801 "RTN","C0CCCD",258,0)92802 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCR","","","")92803 "RTN","C0CCCD",259,0)92804 ;;>>>D ACTLST^C0CCCR(C0C,"ACTTEST")92805 "RTN","C0CCCD",260,0)92806 ;;><ACTORS>92807 "RTN","C0CCCD",261,0)92808 ;;>>>D ZTEST^C0CCCR("ACTLST")92809 "RTN","C0CCCD",262,0)92810 ;;>>>D QUERY^C0CXPATH(TGLOBAL,"//ContinuityOfCareRecord/Actors","G2")92811 "RTN","C0CCCD",263,0)92812 ;;>>>D EXTRACT^C0CACTOR("G2","ACTTEST","G3")92813 "RTN","C0CCCD",264,0)92814 ;;>>?G3(G3(0))["</Actors>"92815 "RTN","C0CCCD",265,0)92816 ;;><TRIM>92817 "RTN","C0CCCD",266,0)92818 ;;>>>D ZTEST^C0CCCR("CCR")92819 "RTN","C0CCCD",267,0)92820 ;;>>>W $$TRIM^C0CXPATH(CCDGLO)92821 "RTN","C0CCCD",268,0)92822 ;;><CCD>92823 92817 "RTN","C0CCCD",269,0) 92824 ;;>>>K C0C S C0C=""92825 "RTN","C0CCCD",270,0)92826 ;;>>>D CCRRPC^C0CCCR(.C0C,"2","CCD","","","")92827 "RTN","C0CCCD",271,0)92828 ;;>>?@C0C@(@C0C@(0))["</ContinuityOfCareRecord>"92829 "RTN","C0CCCD",272,0)92830 92818 ;;></TEST> 92831 92819 "RTN","C0CCCD1") 92832 0^44^B 10063473792820 0^44^B96013153 92833 92821 "RTN","C0CCCD1",1,0) 92834 92822 C0CCCD1 ; CCDCCR/GPL - CCD TEMPLATE AND ACCESS ROUTINES; 6/7/08 92835 92823 "RTN","C0CCCD1",2,0) 92836 ;;1.2;C 0C;;May 11, 2012;Build 5092824 ;;1.2;CCD/CCR GENERATION UTILITIES;;Oct 30, 2012;Build 51 92837 92825 "RTN","C0CCCD1",3,0) 92838 92826 ;Copyright 2008,2009 George Lilly, University of Minnesota. 92839 92827 "RTN","C0CCCD1",4,0) 92840 ; Licensed under the terms of the GNU General Public License.92828 ; 92841 92829 "RTN","C0CCCD1",5,0) 92842 ; See attached copy of the License.92830 ; This program is free software: you can redistribute it and/or modify 92843 92831 "RTN","C0CCCD1",6,0) 92844 ; 92832 ; it under the terms of the GNU Affero General Public License as 92845 92833 "RTN","C0CCCD1",7,0) 92846 ; This program is free software; you can redistribute it and/or modify92834 ; published by the Free Software Foundation, either version 3 of the 92847 92835 "RTN","C0CCCD1",8,0) 92848 ; it under the terms of the GNU General Public License as published by92836 ; License, or (at your option) any later version. 92849 92837 "RTN","C0CCCD1",9,0) 92850 ; the Free Software Foundation; either version 2 of the License, or92838 ; 92851 92839 "RTN","C0CCCD1",10,0) 92852 ; (at your option) any later version.92840 ; This program is distributed in the hope that it will be useful, 92853 92841 "RTN","C0CCCD1",11,0) 92854 ; 92842 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 92855 92843 "RTN","C0CCCD1",12,0) 92856 ; This program is distributed in the hope that it will be useful,92844 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 92857 92845 "RTN","C0CCCD1",13,0) 92858 ; but WITHOUT ANY WARRANTY; without even the implied warranty of92846 ; GNU Affero General Public License for more details. 92859 92847 "RTN","C0CCCD1",14,0) 92860 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the92848 ; 92861 92849 "RTN","C0CCCD1",15,0) 92862 ; GNU General Public License for more details.92850 ; You should have received a copy of the GNU Affero General Public License 92863 92851 "RTN","C0CCCD1",16,0) 92864 ; 92852 ; along with this program. If not, see <http://www.gnu.org/licenses/>. 92865 92853 "RTN","C0CCCD1",17,0) 92866 ; You should have received a copy of the GNU General Public License along92854 ; 92867 92855 "RTN","C0CCCD1",18,0) 92868 ; with this program; if not, write to the Free Software Foundation, Inc.,92856 ; 92869 92857 "RTN","C0CCCD1",19,0) 92870 ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.92858 W "This is a CCD TEMPLATE with processing routines",! 92871 92859 "RTN","C0CCCD1",20,0) 92872 ;92860 W ! 92873 92861 "RTN","C0CCCD1",21,0) 92874 W "This is a CCD TEMPLATE with processing routines",!92862 Q 92875 92863 "RTN","C0CCCD1",22,0) 92876 W !92864 ; 92877 92865 "RTN","C0CCCD1",23,0) 92878 Q 92866 ZT(ZARY,BAT,LINE) ; private routine to add a line to the ZARY array 92879 92867 "RTN","C0CCCD1",24,0) 92880 ;92868 ; ZARY IS PASSED BY NAME 92881 92869 "RTN","C0CCCD1",25,0) 92882 ZT(ZARY,BAT,LINE) ; private routine to add a line to the ZARY array 92870 ; BAT is a string identifying the section 92883 92871 "RTN","C0CCCD1",26,0) 92884 ; ZARY IS PASSED BY NAME92872 ; LINE is a test which will evaluate to true or false 92885 92873 "RTN","C0CCCD1",27,0) 92886 ; BAT is a string identifying the section92874 ; I '$G(@ZARY) D ; IF ZARY DOES NOT EXIST ' 92887 92875 "RTN","C0CCCD1",28,0) 92888 ; LINE is a test which will evaluate to true or false92876 ; . S @ZARY@(0)=0 ; initially there are no elements 92889 92877 "RTN","C0CCCD1",29,0) 92890 ; I '$G(@ZARY) D ; IF ZARY DOES NOT EXIST '92878 ; . W "GOT HERE LOADING "_LINE,! 92891 92879 "RTN","C0CCCD1",30,0) 92892 ; . S @ZARY@(0)=0 ; initially there are noelements92880 N CNT ; count of array elements 92893 92881 "RTN","C0CCCD1",31,0) 92894 ; . W "GOT HERE LOADING "_LINE,!92882 S CNT=@ZARY@(0) ; contains array count 92895 92883 "RTN","C0CCCD1",32,0) 92896 N CNT ; count of array elements92884 S CNT=CNT+1 ; increment count 92897 92885 "RTN","C0CCCD1",33,0) 92898 S CNT=@ZARY@(0) ; contains array count92886 S @ZARY@(CNT)=LINE ; put the line in the array 92899 92887 "RTN","C0CCCD1",34,0) 92900 S CNT=CNT+1 ; increment count92888 ; S @ZARY@(BAT,CNT)="" ; index the test by battery 92901 92889 "RTN","C0CCCD1",35,0) 92902 S @ZARY@(CNT)=LINE ; put the line in the array92890 S @ZARY@(0)=CNT ; update the array counter 92903 92891 "RTN","C0CCCD1",36,0) 92904 ; S @ZARY@(BAT,CNT)="" ; index the test by battery92892 Q 92905 92893 "RTN","C0CCCD1",37,0) 92906 S @ZARY@(0)=CNT ; update the array counter92894 ; 92907 92895 "RTN","C0CCCD1",38,0) 92908 Q 92896 ZLOAD(ZARY,ROUTINE) ; load tests into ZARY which is passed by reference 92909 92897 "RTN","C0CCCD1",39,0) 92910 ;92898 ; ZARY IS PASSED BY NAME 92911 92899 "RTN","C0CCCD1",40,0) 92912 ZLOAD(ZARY,ROUTINE) ; load tests into ZARY which is passed by reference 92900 ; ZARY = name of the root, closed array format (e.g., "^TMP($J)") 92913 92901 "RTN","C0CCCD1",41,0) 92914 ; ZARY IS PASSED BY NAME92902 ; ROUTINE = NAME OF THE ROUTINE - PASSED BY VALUE 92915 92903 "RTN","C0CCCD1",42,0) 92916 ; ZARY = name of the root, closed array format (e.g., "^TMP($J)")92904 K @ZARY S @ZARY="" 92917 92905 "RTN","C0CCCD1",43,0) 92918 ; ROUTINE = NAME OF THE ROUTINE - PASSED BY VALUE92906 S @ZARY@(0)=0 ; initialize array count 92919 92907 "RTN","C0CCCD1",44,0) 92920 K @ZARY S @ZARY=""92908 N LINE,LABEL,BODY 92921 92909 "RTN","C0CCCD1",45,0) 92922 S @ZARY@(0)=0 ; initialize array count92910 N INTEST S INTEST=0 ; switch for in the TEMPLATE section 92923 92911 "RTN","C0CCCD1",46,0) 92924 N LINE,LABEL,BODY92912 N SECTION S SECTION="[anonymous]" ; NO section LABEL 92925 92913 "RTN","C0CCCD1",47,0) 92926 N INTEST S INTEST=0 ; switch for in the TEMPLATE section92914 ; 92927 92915 "RTN","C0CCCD1",48,0) 92928 N SECTION S SECTION="[anonymous]" ; NO section LABEL92916 N NUM F NUM=1:1 S LINE=$T(+NUM^@ROUTINE) Q:LINE="" D 92929 92917 "RTN","C0CCCD1",49,0) 92930 ;92918 . I LINE?." "1";<TEMPLATE>".E S INTEST=1 ; entering section 92931 92919 "RTN","C0CCCD1",50,0) 92932 N NUM F NUM=1:1 S LINE=$T(+NUM^@ROUTINE) Q:LINE="" D92920 . I LINE?." "1";</TEMPLATE>".E S INTEST=0 ; leaving section 92933 92921 "RTN","C0CCCD1",51,0) 92934 . I LINE?." "1";<TEMPLATE>".E S INTEST=1 ; enteringsection92922 . I INTEST D ; within the section 92935 92923 "RTN","C0CCCD1",52,0) 92936 . I LINE?." "1";</TEMPLATE>".E S INTEST=0 ; leaving section92924 . . I LINE?." "1";><".E D ; sub-section name found 92937 92925 "RTN","C0CCCD1",53,0) 92938 . I INTEST D ; within the section92926 . . . S SECTION=$P($P(LINE,";><",2),">",1) ; pull out name 92939 92927 "RTN","C0CCCD1",54,0) 92940 . . I LINE?." "1";><".E D ; sub-section name found92928 . . I LINE?." "1";;".E D ; line found 92941 92929 "RTN","C0CCCD1",55,0) 92942 . . . S SECTION=$P($P(LINE,";><",2),">",1) ; pull out name92930 . . . D ZT(ZARY,SECTION,$P(LINE,";;",2)) ; put the line in the array 92943 92931 "RTN","C0CCCD1",56,0) 92944 . . I LINE?." "1";;".E D ; line found92932 Q 92945 92933 "RTN","C0CCCD1",57,0) 92946 . . . D ZT(ZARY,SECTION,$P(LINE,";;",2)) ; put the line in the array92934 ; 92947 92935 "RTN","C0CCCD1",58,0) 92948 Q 92936 LOAD(ARY) ; LOAD A CCR TEMPLATE INTO ARY PASSED BY NAME 92949 92937 "RTN","C0CCCD1",59,0) 92950 ;92938 D ZLOAD(ARY,"C0CCCD1") 92951 92939 "RTN","C0CCCD1",60,0) 92952 LOAD(ARY) ; LOAD A CCR TEMPLATE INTO ARY PASSED BY NAME 92940 ; ZWR @ARY 92953 92941 "RTN","C0CCCD1",61,0) 92954 D ZLOAD(ARY,"C0CCCD1")92942 Q 92955 92943 "RTN","C0CCCD1",62,0) 92956 ; ZWR @ARY92944 ; 92957 92945 "RTN","C0CCCD1",63,0) 92958 Q 92946 TRMCCD ; ROUTINE TO BE WRITTEN TO REMOVE CCR MARKUP FROM CCD 92959 92947 "RTN","C0CCCD1",64,0) 92960 ;92948 Q 92961 92949 "RTN","C0CCCD1",65,0) 92962 TRMCCD ; ROUTINE TO BE WRITTEN TO REMOVE CCR MARKUP FROM CCD 92950 MARKUP ;<MARKUP> 92963 92951 "RTN","C0CCCD1",66,0) 92964 Q92952 ;;<Body> 92965 92953 "RTN","C0CCCD1",67,0) 92966 MARKUP ;<MARKUP>92954 ;;<Problems> 92967 92955 "RTN","C0CCCD1",68,0) 92956 ;;</Problems> 92957 "RTN","C0CCCD1",69,0) 92958 ;;<FamilyHistory> 92959 "RTN","C0CCCD1",70,0) 92960 ;;</FamilyHistory> 92961 "RTN","C0CCCD1",71,0) 92962 ;;<SocialHistory> 92963 "RTN","C0CCCD1",72,0) 92964 ;;</SocialHistory> 92965 "RTN","C0CCCD1",73,0) 92966 ;;<Alerts> 92967 "RTN","C0CCCD1",74,0) 92968 ;;</Alerts> 92969 "RTN","C0CCCD1",75,0) 92970 ;;<Medications> 92971 "RTN","C0CCCD1",76,0) 92972 ;;</Medications> 92973 "RTN","C0CCCD1",77,0) 92974 ;;<VitalSigns> 92975 "RTN","C0CCCD1",78,0) 92976 ;;</VitalSigns> 92977 "RTN","C0CCCD1",79,0) 92978 ;;<Results> 92979 "RTN","C0CCCD1",80,0) 92980 ;;</Results> 92981 "RTN","C0CCCD1",81,0) 92982 ;;</Body> 92983 "RTN","C0CCCD1",82,0) 92984 ;;</ContinuityOfCareRecord> 92985 "RTN","C0CCCD1",83,0) 92986 ;</MARKUP> 92987 "RTN","C0CCCD1",84,0) 92988 ;;<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd"> 92989 "RTN","C0CCCD1",85,0) 92990 ;;</ClinicalDocument> 92991 "RTN","C0CCCD1",86,0) 92992 Q 92993 "RTN","C0CCCD1",87,0) 92994 ; 92995 "RTN","C0CCCD1",88,0) 92996 ;<TEMPLATE> 92997 "RTN","C0CCCD1",89,0) 92998 ;;<?xml version="1.0"?> 92999 "RTN","C0CCCD1",90,0) 93000 ;;<?xml-stylesheet type="text/xsl" href="CCD.xsl"?> 93001 "RTN","C0CCCD1",91,0) 93002 ;;<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd"> 93003 "RTN","C0CCCD1",92,0) 93004 ;;<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/> 93005 "RTN","C0CCCD1",93,0) 93006 ;;<templateId root="2.16.840.1.113883.10.20.1"/> 93007 "RTN","C0CCCD1",94,0) 93008 ;;<id root="db734647-fc99-424c-a864-7e3cda82e703"/> 93009 "RTN","C0CCCD1",95,0) 93010 ;;<code code="34133-9" codeSystem="2.16.840.1.113883.6.1" displayName="Summarization of episode note"/> 93011 "RTN","C0CCCD1",96,0) 93012 ;;<title>Continuity of Care Document</title> 93013 "RTN","C0CCCD1",97,0) 93014 ;;<effectiveTime value="20000407130000+0500"/> 93015 "RTN","C0CCCD1",98,0) 93016 ;;<confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/> 93017 "RTN","C0CCCD1",99,0) 93018 ;;<languageCode code="en-US"/> 93019 "RTN","C0CCCD1",100,0) 93020 ;;<recordTarget> 93021 "RTN","C0CCCD1",101,0) 93022 ;;<patientRole> 93023 "RTN","C0CCCD1",102,0) 93024 ;;<id extension="@@ACTORIEN@@" root="2.16.840.1.113883.19.5"/> 93025 "RTN","C0CCCD1",103,0) 93026 ;;<patient> 93027 "RTN","C0CCCD1",104,0) 93028 ;;<name> 93029 "RTN","C0CCCD1",105,0) 93030 ;;<given>@@ACTORGIVENNAME@@</given> 93031 "RTN","C0CCCD1",106,0) 93032 ;;<family>@@ACTORFAMILYNAME@@</family> 93033 "RTN","C0CCCD1",107,0) 93034 ;;<suffix>@@ACTORSUFFIXNAME@@</suffix> 93035 "RTN","C0CCCD1",108,0) 93036 ;;</name> 93037 "RTN","C0CCCD1",109,0) 93038 ;;<administrativeGenderCode code="@@ACTORGENDER@@" codeSystem="2.16.840.1.113883.5.1"/> 93039 "RTN","C0CCCD1",110,0) 93040 ;;<birthTime value="@@ACTORDATEOFBIRTH@@"/> 93041 "RTN","C0CCCD1",111,0) 93042 ;;</patient> 93043 "RTN","C0CCCD1",112,0) 93044 ;;<providerOrganization> 93045 "RTN","C0CCCD1",113,0) 93046 ;;<id root="2.16.840.1.113883.19.5"/> 93047 "RTN","C0CCCD1",114,0) 93048 ;;<name>@@ORGANIZATIONNAME@@</name> 93049 "RTN","C0CCCD1",115,0) 93050 ;;</providerOrganization> 93051 "RTN","C0CCCD1",116,0) 93052 ;;</patientRole> 93053 "RTN","C0CCCD1",117,0) 93054 ;;</recordTarget> 93055 "RTN","C0CCCD1",118,0) 93056 ;;<author> 93057 "RTN","C0CCCD1",119,0) 93058 ;;<time value="20000407130000+0500"/> 93059 "RTN","C0CCCD1",120,0) 93060 ;;<assignedAuthor> 93061 "RTN","C0CCCD1",121,0) 93062 ;;<id root="20cf14fb-b65c-4c8c-a54d-b0cca834c18c"/> 93063 "RTN","C0CCCD1",122,0) 93064 ;;<assignedPerson> 93065 "RTN","C0CCCD1",123,0) 93066 ;;<name> 93067 "RTN","C0CCCD1",124,0) 93068 ;;<prefix>@@ACTORNAMEPREFIX@@</prefix> 93069 "RTN","C0CCCD1",125,0) 93070 ;;<given>@@ACTORGIVENNAME@@</given> 93071 "RTN","C0CCCD1",126,0) 93072 ;;<family>@@ACTORFAMILYNAME@@</family> 93073 "RTN","C0CCCD1",127,0) 93074 ;;</name> 93075 "RTN","C0CCCD1",128,0) 93076 ;;</assignedPerson> 93077 "RTN","C0CCCD1",129,0) 93078 ;;<representedOrganization> 93079 "RTN","C0CCCD1",130,0) 93080 ;;<id root="2.16.840.1.113883.19.5"/> 93081 "RTN","C0CCCD1",131,0) 93082 ;;<name>@@ORGANIZATIONNAME@@</name> 93083 "RTN","C0CCCD1",132,0) 93084 ;;</representedOrganization> 93085 "RTN","C0CCCD1",133,0) 93086 ;;</assignedAuthor> 93087 "RTN","C0CCCD1",134,0) 93088 ;;</author> 93089 "RTN","C0CCCD1",135,0) 93090 ;;<informant> 93091 "RTN","C0CCCD1",136,0) 93092 ;;<assignedEntity> 93093 "RTN","C0CCCD1",137,0) 93094 ;;<id nullFlavor="NI"/> 93095 "RTN","C0CCCD1",138,0) 93096 ;;<representedOrganization> 93097 "RTN","C0CCCD1",139,0) 93098 ;;<id root="2.16.840.1.113883.19.5"/> 93099 "RTN","C0CCCD1",140,0) 93100 ;;<name>@@ORGANIZATIONNAME@@</name> 93101 "RTN","C0CCCD1",141,0) 93102 ;;</representedOrganization> 93103 "RTN","C0CCCD1",142,0) 93104 ;;</assignedEntity> 93105 "RTN","C0CCCD1",143,0) 93106 ;;</informant> 93107 "RTN","C0CCCD1",144,0) 93108 ;;<custodian> 93109 "RTN","C0CCCD1",145,0) 93110 ;;<assignedCustodian> 93111 "RTN","C0CCCD1",146,0) 93112 ;;<representedCustodianOrganization> 93113 "RTN","C0CCCD1",147,0) 93114 ;;<id root="2.16.840.1.113883.19.5"/> 93115 "RTN","C0CCCD1",148,0) 93116 ;;<name>@@ORGANIZATIONNAME@@</name> 93117 "RTN","C0CCCD1",149,0) 93118 ;;</representedCustodianOrganization> 93119 "RTN","C0CCCD1",150,0) 93120 ;;</assignedCustodian> 93121 "RTN","C0CCCD1",151,0) 93122 ;;</custodian> 93123 "RTN","C0CCCD1",152,0) 93124 ;;<legalAuthenticator> 93125 "RTN","C0CCCD1",153,0) 93126 ;;<time value="20000407130000+0500"/> 93127 "RTN","C0CCCD1",154,0) 93128 ;;<signatureCode code="S"/> 93129 "RTN","C0CCCD1",155,0) 93130 ;;<assignedEntity> 93131 "RTN","C0CCCD1",156,0) 93132 ;;<id nullFlavor="NI"/> 93133 "RTN","C0CCCD1",157,0) 93134 ;;<representedOrganization> 93135 "RTN","C0CCCD1",158,0) 93136 ;;<id root="2.16.840.1.113883.19.5"/> 93137 "RTN","C0CCCD1",159,0) 93138 ;;<name>@@ORGANIZATIONNAME@@</name> 93139 "RTN","C0CCCD1",160,0) 93140 ;;</representedOrganization> 93141 "RTN","C0CCCD1",161,0) 93142 ;;</assignedEntity> 93143 "RTN","C0CCCD1",162,0) 93144 ;;</legalAuthenticator> 93145 "RTN","C0CCCD1",163,0) 93146 ;;<Actors> 93147 "RTN","C0CCCD1",164,0) 93148 ;;<ACTOR-NOK> 93149 "RTN","C0CCCD1",165,0) 93150 ;;<participant typeCode="IND"> 93151 "RTN","C0CCCD1",166,0) 93152 ;;<associatedEntity classCode="NOK"> 93153 "RTN","C0CCCD1",167,0) 93154 ;;<id root="4ac71514-6a10-4164-9715-f8d96af48e6d"/> 93155 "RTN","C0CCCD1",168,0) 93156 ;;<code code="65656005" codeSystem="2.16.840.1.113883.6.96" displayName="Biiological mother"/> 93157 "RTN","C0CCCD1",169,0) 93158 ;;<telecom value="tel:(999)555-1212"/> 93159 "RTN","C0CCCD1",170,0) 93160 ;;<associatedPerson> 93161 "RTN","C0CCCD1",171,0) 93162 ;;<name> 93163 "RTN","C0CCCD1",172,0) 93164 ;;<given>Henrietta</given> 93165 "RTN","C0CCCD1",173,0) 93166 ;;<family>Levin</family> 93167 "RTN","C0CCCD1",174,0) 93168 ;;</name> 93169 "RTN","C0CCCD1",175,0) 93170 ;;</associatedPerson> 93171 "RTN","C0CCCD1",176,0) 93172 ;;</associatedEntity> 93173 "RTN","C0CCCD1",177,0) 93174 ;;</participant> 93175 "RTN","C0CCCD1",178,0) 93176 ;;</ACTOR-NOK> 93177 "RTN","C0CCCD1",179,0) 93178 ;;</Actors> 93179 "RTN","C0CCCD1",180,0) 93180 ;;<documentationOf> 93181 "RTN","C0CCCD1",181,0) 93182 ;;<serviceEvent classCode="PCPR"> 93183 "RTN","C0CCCD1",182,0) 93184 ;;<effectiveTime> 93185 "RTN","C0CCCD1",183,0) 93186 ;;<high value="@@DATETIME@@"/> 93187 "RTN","C0CCCD1",184,0) 93188 ;;</effectiveTime> 93189 "RTN","C0CCCD1",185,0) 93190 ;;<performer typeCode="PRF"> 93191 "RTN","C0CCCD1",186,0) 93192 ;;<functionCode code="PCP" codeSystem="2.16.840.1.113883.5.88"/> 93193 "RTN","C0CCCD1",187,0) 93194 ;;<time> 93195 "RTN","C0CCCD1",188,0) 93196 ;;<low value="1990"/> 93197 "RTN","C0CCCD1",189,0) 93198 ;;<high value='20000407'/> 93199 "RTN","C0CCCD1",190,0) 93200 ;;</time> 93201 "RTN","C0CCCD1",191,0) 93202 ;;<assignedEntity> 93203 "RTN","C0CCCD1",192,0) 93204 ;;<id root="20cf14fb-b65c-4c8c-a54d-b0cca834c18c"/> 93205 "RTN","C0CCCD1",193,0) 93206 ;;<assignedPerson> 93207 "RTN","C0CCCD1",194,0) 93208 ;;<name> 93209 "RTN","C0CCCD1",195,0) 93210 ;;<prefix>@@ACTORPREFIXNAME@@</prefix> 93211 "RTN","C0CCCD1",196,0) 93212 ;;<given>@@ACTORGIVENNAME@@</given> 93213 "RTN","C0CCCD1",197,0) 93214 ;;<family>@@ACTORFAMILYNAME@@</family> 93215 "RTN","C0CCCD1",198,0) 93216 ;;</name> 93217 "RTN","C0CCCD1",199,0) 93218 ;;</assignedPerson> 93219 "RTN","C0CCCD1",200,0) 93220 ;;<representedOrganization> 93221 "RTN","C0CCCD1",201,0) 93222 ;;<id root="2.16.840.1.113883.19.5"/> 93223 "RTN","C0CCCD1",202,0) 93224 ;;<name>@@ORGANIZATIONNAME@@</name> 93225 "RTN","C0CCCD1",203,0) 93226 ;;</representedOrganization> 93227 "RTN","C0CCCD1",204,0) 93228 ;;</assignedEntity> 93229 "RTN","C0CCCD1",205,0) 93230 ;;</performer> 93231 "RTN","C0CCCD1",206,0) 93232 ;;</serviceEvent> 93233 "RTN","C0CCCD1",207,0) 93234 ;;</documentationOf> 93235 "RTN","C0CCCD1",208,0) 92968 93236 ;;<Body> 92969 "RTN","C0CCCD1",69,0) 93237 "RTN","C0CCCD1",209,0) 93238 ;;<PROBLEMS-HTML> 93239 "RTN","C0CCCD1",210,0) 93240 ;;<text><table border="1" width="100%"><thead><tr><th>Condition</th><th>Effective Dates</th><th>Condition Status</th></tr></thead><tbody> 93241 "RTN","C0CCCD1",211,0) 93242 ;;<tr><td>@@PROBLEMDESCRIPTION@@</td> 93243 "RTN","C0CCCD1",212,0) 93244 ;;<td>@@PROBLEMDATEOFONSET@@</td> 93245 "RTN","C0CCCD1",213,0) 93246 ;;<td>Active</td></tr> 93247 "RTN","C0CCCD1",214,0) 93248 ;;</tbody></table></text> 93249 "RTN","C0CCCD1",215,0) 93250 ;;</PROBLEMS-HTML> 93251 "RTN","C0CCCD1",216,0) 92970 93252 ;;<Problems> 92971 "RTN","C0CCCD1",70,0) 92972 ;;</Problems> 92973 "RTN","C0CCCD1",71,0) 92974 ;;<FamilyHistory> 92975 "RTN","C0CCCD1",72,0) 92976 ;;</FamilyHistory> 92977 "RTN","C0CCCD1",73,0) 92978 ;;<SocialHistory> 92979 "RTN","C0CCCD1",74,0) 92980 ;;</SocialHistory> 92981 "RTN","C0CCCD1",75,0) 92982 ;;<Alerts> 92983 "RTN","C0CCCD1",76,0) 92984 ;;</Alerts> 92985 "RTN","C0CCCD1",77,0) 92986 ;;<Medications> 92987 "RTN","C0CCCD1",78,0) 92988 ;;</Medications> 92989 "RTN","C0CCCD1",79,0) 92990 ;;<VitalSigns> 92991 "RTN","C0CCCD1",80,0) 92992 ;;</VitalSigns> 92993 "RTN","C0CCCD1",81,0) 92994 ;;<Results> 92995 "RTN","C0CCCD1",82,0) 92996 ;;</Results> 92997 "RTN","C0CCCD1",83,0) 92998 ;;</Body> 92999 "RTN","C0CCCD1",84,0) 93000 ;;</ContinuityOfCareRecord> 93001 "RTN","C0CCCD1",85,0) 93002 ;</MARKUP> 93003 "RTN","C0CCCD1",86,0) 93004 ;;<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd"> 93005 "RTN","C0CCCD1",87,0) 93006 ;;</ClinicalDocument> 93007 "RTN","C0CCCD1",88,0) 93008 Q 93009 "RTN","C0CCCD1",89,0) 93010 ; 93011 "RTN","C0CCCD1",90,0) 93012 ;<TEMPLATE> 93013 "RTN","C0CCCD1",91,0) 93014 ;;<?xml version="1.0"?> 93015 "RTN","C0CCCD1",92,0) 93016 ;;<?xml-stylesheet type="text/xsl" href="CCD.xsl"?> 93017 "RTN","C0CCCD1",93,0) 93018 ;;<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd"> 93019 "RTN","C0CCCD1",94,0) 93020 ;;<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/> 93021 "RTN","C0CCCD1",95,0) 93022 ;;<templateId root="2.16.840.1.113883.10.20.1"/> 93023 "RTN","C0CCCD1",96,0) 93024 ;;<id root="db734647-fc99-424c-a864-7e3cda82e703"/> 93025 "RTN","C0CCCD1",97,0) 93026 ;;<code code="34133-9" codeSystem="2.16.840.1.113883.6.1" displayName="Summarization of episode note"/> 93027 "RTN","C0CCCD1",98,0) 93028 ;;<title>Continuity of Care Document</title> 93029 "RTN","C0CCCD1",99,0) 93030 ;;<effectiveTime value="20000407130000+0500"/> 93031 "RTN","C0CCCD1",100,0) 93032 ;;<confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/> 93033 "RTN","C0CCCD1",101,0) 93034 ;;<languageCode code="en-US"/> 93035 "RTN","C0CCCD1",102,0) 93036 ;;<recordTarget> 93037 "RTN","C0CCCD1",103,0) 93038 ;;<patientRole> 93039 "RTN","C0CCCD1",104,0) 93040 ;;<id extension="@@ACTORIEN@@" root="2.16.840.1.113883.19.5"/> 93041 "RTN","C0CCCD1",105,0) 93042 ;;<patient> 93043 "RTN","C0CCCD1",106,0) 93044 ;;<name> 93045 "RTN","C0CCCD1",107,0) 93046 ;;<given>@@ACTORGIVENNAME@@</given> 93047 "RTN","C0CCCD1",108,0) 93048 ;;<family>@@ACTORFAMILYNAME@@</family> 93049 "RTN","C0CCCD1",109,0) 93050 ;;<suffix>@@ACTORSUFFIXNAME@@</suffix> 93051 "RTN","C0CCCD1",110,0) 93052 ;;</name> 93053 "RTN","C0CCCD1",111,0) 93054 ;;<administrativeGenderCode code="@@ACTORGENDER@@" codeSystem="2.16.840.1.113883.5.1"/> 93055 "RTN","C0CCCD1",112,0) 93056 ;;<birthTime value="@@ACTORDATEOFBIRTH@@"/> 93057 "RTN","C0CCCD1",113,0) 93058 ;;</patient> 93059 "RTN","C0CCCD1",114,0) 93060 ;;<providerOrganization> 93061 "RTN","C0CCCD1",115,0) 93062 ;;<id root="2.16.840.1.113883.19.5"/> 93063 "RTN","C0CCCD1",116,0) 93064 ;;<name>@@ORGANIZATIONNAME@@</name> 93065 "RTN","C0CCCD1",117,0) 93066 ;;</providerOrganization> 93067 "RTN","C0CCCD1",118,0) 93068 ;;</patientRole> 93069 "RTN","C0CCCD1",119,0) 93070 ;;</recordTarget> 93071 "RTN","C0CCCD1",120,0) 93072 ;;<author> 93073 "RTN","C0CCCD1",121,0) 93074 ;;<time value="20000407130000+0500"/> 93075 "RTN","C0CCCD1",122,0) 93076 ;;<assignedAuthor> 93077 "RTN","C0CCCD1",123,0) 93078 ;;<id root="20cf14fb-b65c-4c8c-a54d-b0cca834c18c"/> 93079 "RTN","C0CCCD1",124,0) 93080 ;;<assignedPerson> 93081 "RTN","C0CCCD1",125,0) 93082 ;;<name> 93083 "RTN","C0CCCD1",126,0) 93084 ;;<prefix>@@ACTORNAMEPREFIX@@</prefix> 93085 "RTN","C0CCCD1",127,0) 93086 ;;<given>@@ACTORGIVENNAME@@</given> 93087 "RTN","C0CCCD1",128,0) 93088 ;;<family>@@ACTORFAMILYNAME@@</family> 93089 "RTN","C0CCCD1",129,0) 93090 ;;</name> 93091 "RTN","C0CCCD1",130,0) 93092 ;;</assignedPerson> 93093 "RTN","C0CCCD1",131,0) 93094 ;;<representedOrganization> 93095 "RTN","C0CCCD1",132,0) 93096 ;;<id root="2.16.840.1.113883.19.5"/> 93097 "RTN","C0CCCD1",133,0) 93098 ;;<name>@@ORGANIZATIONNAME@@</name> 93099 "RTN","C0CCCD1",134,0) 93100 ;;</representedOrganization> 93101 "RTN","C0CCCD1",135,0) 93102 ;;</assignedAuthor> 93103 "RTN","C0CCCD1",136,0) 93104 ;;</author> 93105 "RTN","C0CCCD1",137,0) 93106 ;;<informant> 93107 "RTN","C0CCCD1",138,0) 93108 ;;<assignedEntity> 93109 "RTN","C0CCCD1",139,0) 93110 ;;<id nullFlavor="NI"/> 93111 "RTN","C0CCCD1",140,0) 93112 ;;<representedOrganization> 93113 "RTN","C0CCCD1",141,0) 93114 ;;<id root="2.16.840.1.113883.19.5"/> 93115 "RTN","C0CCCD1",142,0) 93116 ;;<name>@@ORGANIZATIONNAME@@</name> 93117 "RTN","C0CCCD1",143,0) 93118 ;;</representedOrganization> 93119 "RTN","C0CCCD1",144,0) 93120 ;;</assignedEntity> 93121 "RTN","C0CCCD1",145,0) 93122 ;;</informant> 93123 "RTN","C0CCCD1",146,0) 93124 ;;<custodian> 93125 "RTN","C0CCCD1",147,0) 93126 ;;<assignedCustodian> 93127 "RTN","C0CCCD1",148,0) 93128 ;;<representedCustodianOrganization> 93129 "RTN","C0CCCD1",149,0) 93130 ;;<id root="2.16.840.1.113883.19.5"/> 93131 "RTN","C0CCCD1",150,0) 93132 ;;<name>@@ORGANIZATIONNAME@@</name> 93133 "RTN","C0CCCD1",151,0) 93134 ;;</representedCustodianOrganization> 93135 "RTN","C0CCCD1",152,0) 93136 ;;</assignedCustodian> 93137 "RTN","C0CCCD1",153,0) 93138 ;;</custodian> 93139 "RTN","C0CCCD1",154,0) 93140 ;;<legalAuthenticator> 93141 "RTN","C0CCCD1",155,0) 93142 ;;<time value="20000407130000+0500"/> 93143 "RTN","C0CCCD1",156,0) 93144 ;;<signatureCode code="S"/> 93145 "RTN","C0CCCD1",157,0) 93146 ;;<assignedEntity> 93147 "RTN","C0CCCD1",158,0) 93148 ;;<id nullFlavor="NI"/> 93149 "RTN","C0CCCD1",159,0) 93150 ;;<representedOrganization> 93151 "RTN","C0CCCD1",160,0) 93152 ;;<id root="2.16.840.1.113883.19.5"/> 93153 "RTN","C0CCCD1",161,0) 93154 ;;<name>@@ORGANIZATIONNAME@@</name> 93155 "RTN","C0CCCD1",162,0) 93156 ;;</representedOrganization> 93157 "RTN","C0CCCD1",163,0) 93158 ;;</assignedEntity> 93159 "RTN","C0CCCD1",164,0) 93160 ;;</legalAuthenticator> 93161 "RTN","C0CCCD1",165,0) 93162 ;;<Actors> 93163 "RTN","C0CCCD1",166,0) 93164 ;;<ACTOR-NOK> 93165 "RTN","C0CCCD1",167,0) 93166 ;;<participant typeCode="IND"> 93167 "RTN","C0CCCD1",168,0) 93168 ;;<associatedEntity classCode="NOK"> 93169 "RTN","C0CCCD1",169,0) 93170 ;;<id root="4ac71514-6a10-4164-9715-f8d96af48e6d"/> 93171 "RTN","C0CCCD1",170,0) 93172 ;;<code code="65656005" codeSystem="2.16.840.1.113883.6.96" displayName="Biiological mother"/> 93173 "RTN","C0CCCD1",171,0) 93174 ;;<telecom value="tel:(999)555-1212"/> 93175 "RTN","C0CCCD1",172,0) 93176 ;;<associatedPerson> 93177 "RTN","C0CCCD1",173,0) 93178 ;;<name> 93179 "RTN","C0CCCD1",174,0) 93180 ;;<given>Henrietta</given> 93181 "RTN","C0CCCD1",175,0)