Changeset 175 for ccr/trunk/p/CCRDPT.m
- Timestamp:
- Oct 3, 2008, 10:57:33 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ccr/trunk/p/CCRDPT.m
r122 r175 1 CCRDPT ;CCRCCD/SMH - Routines to Extract Patient Data for CCDCCR; 6/15/08 2 ;;0.1;CCRCCD;;Jun 15, 2008; 3 ;Copyright 2008 WorldVistA. Licensed under the terms of the GNU 4 ;General Public License See attached copy of the License. 5 ; 6 ;This program is free software; you can redistribute it and/or modify 7 ;it under the terms of the GNU General Public License as published by 8 ;the Free Software Foundation; either version 2 of the License, or 9 ;(at your option) any later version. 10 ; 11 ;This program is distributed in the hope that it will be useful, 12 ;but WITHOUT ANY WARRANTY; without even the implied warranty of 13 ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 ;GNU General Public License for more details. 15 ; 16 ;You should have received a copy of the GNU General Public License along 17 ;with this program; if not, write to the Free Software Foundation, Inc., 18 ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 ; NOTE TO PROGRAMMER: You need to call INIT(DPT) to initialize; and 20 ; DESTROY to clean-up. 21 ; The first line of every routine tests if the global exists. 22 ; 23 ; CCRDPT 83 lines CCRCCD/SMH - Routines to Extract Patient Data for 24 ; INIT 9 lines Copy DFN global to a local variable 25 ; DESTROY 6 lines Kill local variable 26 ; FAMILY 6 lines Family Name 27 ; GIVEN 6 lines Given Name 28 ; MIDDLE 6 lines Middle Name 29 ; SUFFIX 6 lines Suffix Name 30 ; DISPNAME 5 lines Display Name 31 ; DOB 6 lines Date of Birth 32 ; GENDER 4 lines Get Gender 33 ; SSN 4 lines Get SSN for ID 34 ; ADDRTYPE 4 lines Get Home Address 35 ; ADDR1 4 lines Get Home Address line 1 36 ; ADDR2 5 lines Get Home Address line 2 37 ; CITY 4 lines Get City for Home Address 38 ; STATE 11 lines Get State for Home Address 39 ; ZIP 4 lines Get Zip code for Home Address 40 ; COUNTY 4 lines Get County for our Address 41 ; COUNTRY 4 lines Get Country for our Address 42 ; RESTEL 4 lines Residential Telephone 43 ; WORKTEL 4 lines Work Telephone 44 ; EMAIL 4 lines Email Adddress 45 ; CELLTEL 4 lines Cell Phone 46 ; NOK1FAM 6 lines Next of Kin 1 (NOK1) Family Name 47 ; NOK1GIV 6 lines NOK1 Given Name 48 ; NOK1MID 6 lines NOK1 Middle Name 49 ; NOK1SUF 6 lines NOK1 Suffi Name 50 ; NOK1DISP 5 lines NOK1 Display Name 51 ; NOK1REL 4 lines NOK1 Relationship to the patient 52 ; NOK1ADD1 4 lines NOK1 Address 1 53 ; NOK1ADD2 5 lines NOK1 Address 2 54 ; NOK1CITY 4 lines NOK1 City 55 ; NOK1STAT 5 lines NOK1 State 56 ; NOK1ZIP 4 lines NOK1 Zip Code 57 ; NOK1HTEL; 4 lines NOK1 Home Telephone 58 ; NOK1WTEL; 4 lines NOK1 Work Telephone 59 ; NOK1SAME; 4 lines Is NOK1's Address the same the patient? 60 ; NOK2FAM 6 lines NOK2 Family Name 61 ; NOK2GIV 6 lines NOK2 Given Name 62 ; NOK2MID 6 lines NOK2 Middle Name 63 ; NOK2SUF 5 lines NOK2 Suffi Name 64 ; NOK2DISP 5 lines NOK2 Display Name 65 ; NOK2REL 4 lines NOK2 Relationship to the patient 66 ; NOK2ADD1 4 lines NOK2 Address 1 67 ; NOK2ADD2 5 lines NOK2 Address 2 68 ; NOK2CITY 4 lines NOK2 City 69 ; NOK2STAT 5 lines NOK2 State 70 ; NOK2ZIP 4 lines NOK2 Zip Code 71 ; NOK2HTEL; 4 lines NOK2 Home Telephone 72 ; NOK2WTEL; 4 lines NOK2 Work Telephone 73 ; NOK2SAME; 4 lines Is NOK2's Address the same the patient? 74 ; EMERFAM 6 lines Emergency Contact (EMER) Family Name 75 ; EMERGIV 6 lines EMER Given Name 76 ; EMERMID 6 lines EMER Middle Name 77 ; EMERSUF 5 lines EMER Suffi Name 78 ; EMERDISP 5 lines EMER Display Name 79 ; EMERREL 4 lines EMER Relationship to the patient 80 ; EMERADD1 4 lines EMER Address 1 81 ; EMERADD2 5 lines EMER Address 2 82 ; EMERCITY 4 lines EMER City 83 ; EMERSTAT 5 lines EMER State 84 ; EMERZIP 4 lines EMER Zip Code 85 ; EMERHTEL; 4 lines EMER Home Telephone 86 ; EMERWTEL; 4 lines EMER Work Telephone 87 ; EMERSAME; 4 lines Is EMER's Address the same the NOK? 88 ; 89 W "No Entry at top!" Q 90 ; The following is a map of the relevant data in the patient global. 91 ; 92 ; ^DPT(D0,0)= (#.01) NAME [1F] ^ (#.02) SEX [2S] ^ (#.03) DATE OF BIRTH [3D] ^ 93 ; ==>^ (#.05) MARITAL STATUS [5P:11] ^ (#.06) RACE [6P:10] ^ (#.07) 94 ; ==>OCCUPATION [7F] ^ (#.08) RELIGIOUS PREFERENCE [8P:13] ^ (#.09) 95 ; ==>SOCIAL SECURITY NUMBER [9F] ^ (#.091) REMARKS [10F] ^ (#.092) 96 ; ==>PLACE OF BIRTH [CITY] [11F] ^ (#.093) PLACE OF BIRTH [STATE] 97 ; ==>[12P:5] ^ ^ (#.14) CURRENT MEANS TEST STATUS [14P:408.32] ^ 98 ; ==>(#.096) WHO ENTERED PATIENT [15P:200] ^ (#.097) DATE ENTERED INTO 99 ; ==>FILE [16D] ^ (#.098) HOW WAS PATIENT ENTERED? [17S] ^ (#.081) 100 ; ==>DUPLICATE STATUS [18S] ^ (#.082) PATIENT MERGED TO [19P:2] ^ 101 ; ==>(#.083) CHECK FOR DUPLICATE [20S] ^ (#.6) TEST PATIENT INDICATOR 102 ; ==>[21S] ^ 103 ; ^DPT(D0,.01,0)=^2.01^^ (#1) ALIAS 104 ; ^DPT(D0,.01,D1,0)= (#.01) ALIAS [1F] ^ (#1) ALIAS SSN [2F] ^ (#100.03) ALIAS 105 ; ==>COMPONENTS [3P:20] ^ 106 ; ^DPT(D0,.11)= (#.111) STREET ADDRESS [LINE 1] [1F] ^ (#.112) STREET ADDRESS 107 ; ==>[LINE 2] [2F] ^ (#.113) STREET ADDRESS [LINE 3] [3F] ^ (#.114) 108 ; ==>CITY [4F] ^ (#.115) STATE [5P:5] ^ (#.116) ZIP CODE [6F] ^ 109 ; ==>(#.117) COUNTY [7N] ^ ^ ^ ^ ^ (#.1112) ZIP+4 [12F] ^ 110 ; ==>(#.118) ADDRESS CHANGE DT/TM [13D] ^ (#.119) ADDRESS CHANGE 111 ; ==>SOURCE [14S] ^ (#.12) ADDRESS CHANGE SITE [15P:4] ^ (#.121) BAD 112 ; ==>ADDRESS INDICATOR [16S] ^ (#.122) ADDRESS CHANGE USER [17P:200] 113 ; ==>^ 114 ; ^DPT(D0,.121)= (#.1211) TEMPORARY STREET [LINE 1] [1F] ^ (#.1212) TEMPORARY 115 ; ==>STREET [LINE 2] [2F] ^ (#.1213) TEMPORARY STREET [LINE 3] [3F] 116 ; ==>^ (#.1214) TEMPORARY CITY [4F] ^ (#.1215) TEMPORARY STATE 117 ; ==>[5P:5] ^ (#.1216) TEMPORARY ZIP CODE [6F] ^ (#.1217) TEMPORARY 118 ; ==>ADDRESS START DATE [7D] ^ (#.1218) TEMPORARY ADDRESS END DATE 119 ; ==>[8D] ^ (#.12105) TEMPORARY ADDRESS ACTIVE? [9S] ^ (#.1219) 120 ; ==>TEMPORARY PHONE NUMBER [10F] ^ (#.12111) TEMPORARY ADDRESS 121 ; ==>COUNTY [11N] ^ (#.12112) TEMPORARY ZIP+4 [12F] ^ (#.12113) 122 ; ==>TEMPORARY ADDRESS CHANGE DT/TM [13D] ^ 123 ; ^DPT(D0,.121)= (#.12114) TEMPORARY ADDRESS CHANGE SITE [14P:4] ^ 124 ; ^DPT(D0,.13)= (#.131) PHONE NUMBER [RESIDENCE] [1F] ^ (#.132) PHONE NUMBER 125 ; ==>[WORK] [2F] ^ (#.133) EMAIL ADDRESS [3F] ^ (#.134) PHONE NUMBER 126 ; ==>[CELLULAR] [4F] ^ (#.135) PAGER NUMBER [5F] ^ (#.136) EMAIL 127 ; ==>ADDRESS CHANGE DT/TM [6D] ^ (#.137) EMAIL ADDRESS CHANGE SOURCE 128 ; ==>[7S] ^ (#.138) EMAIL ADDRESS CHANGE SITE [8P:4] ^ (#.139) 129 ; ==>CELLULAR NUMBER CHANGE DT/TM [9D] ^ (#.1311) CELLULAR NUMBER 130 ; ==>CHANGE SOURCE [10S] ^ (#.13111) CELLULAR NUMBER CHANGE SITE 131 ; ==>[11P:4] ^ (#.1312) PAGER NUMBER CHANGE DT/TM [12D] ^ (#.1313) 132 ; ==>PAGER NUMBER CHANGE SOURCE [13S] ^ (#.1314) PAGER NUMBER CHANGE 133 ; ==>SITE [14P:4] ^ 134 ; ^DPT(D0,.21)= (#.211) K-NAME OF PRIMARY NOK [1F] ^ (#.212) K-RELATIONSHIP TO 135 ; ==>PATIENT [2F] ^ (#.213) K-STREET ADDRESS [LINE 1] [3F] ^ (#.214) 136 ; ==>K-STREET ADDRESS [LINE 2] [4F] ^ (#.215) K-STREET ADDRESS [LINE 137 ; ==>3] [5F] ^ 138 ; ^DPT(D0,.21)= (#.216) K-CITY [6F] ^ (#.217) K-STATE [7P:5] ^ (#.218) K-ZIP 139 ; ==>CODE [8F] ^ (#.219) K-PHONE NUMBER [9F] ^ (#.2125) K-ADDRESS 140 ; ==>SAME AS PATIENT'S? [10S] ^ (#.21011) K-WORK PHONE NUMBER [11F] 141 ; ==>^ 142 ; ^DPT(D0,.211)= (#.2191) K2-NAME OF SECONDARY NOK [1F] ^ (#.2192) 143 ; ==>K2-RELATIONSHIP TO PATIENT [2F] ^ (#.2193) K2-STREET ADDRESS 144 ; ==>[LINE 1] [3F] ^ (#.2194) K2-STREET ADDRESS [LINE 2] [4F] ^ 145 ; ==>(#.2195) K2-STREET ADDRESS [LINE 3] [5F] ^ (#.2196) K2-CITY 146 ; ==>[6F] ^ (#.2197) K2-STATE [7P:5] ^ (#.2198) K2-ZIP CODE [8F] ^ 147 ; ==>(#.2199) K2-PHONE NUMBER [9F] ^ (#.21925) K2-ADDRESS SAME AS 148 ; ==>PATIENT'S? [10S] ^ (#.211011) K2-WORK PHONE NUMBER [11F] ^ 149 ; ^DPT(D0,.25)= (#.251) SPOUSE'S EMPLOYER NAME [1F] ^ (#.252) SPOUSE'S EMP 150 ; ==>STREET [LINE 1] [2F] ^ (#.253) SPOUSE'S EMP STREET [LINE 2] 151 ; ==>[3F] ^ (#.254) SPOUSE'S EMP STREET [LINE 3] [4F] ^ (#.255) 152 ; ==>SPOUSE'S EMPLOYER'S CITY [5F] ^ (#.256) SPOUSE'S EMPLOYER'S 153 ; ==>STATE [6P:5] ^ (#.257) SPOUSE'S EMP ZIP CODE [7F] ^ (#.258) 154 ; ==>SPOUSE'S EMP PHONE NUMBER [8F] ^ ^ ^ ^ ^ ^ (#.2514) 155 ; ==>SPOUSE'S OCCUPATION [14F] ^ (#.2515) SPOUSE'S EMPLOYMENT STATUS 156 ; ==>[15S] ^ (#.2516) SPOUSE'S RETIREMENT DATE [16D] ^ 157 ; ^DPT(D0,.33)= (#.331) E-NAME [1F] ^ (#.332) E-RELATIONSHIP TO PATIENT [2F] ^ 158 ; ==>(#.333) E-STREET ADDRESS [LINE 1] [3F] ^ (#.334) E-STREET 159 ; ==>ADDRESS [LINE 2] [4F] ^ (#.335) E-STREET ADDRESS [LINE 3] [5F] 160 ; ==>^ (#.336) E-CITY [6F] ^ (#.337) E-STATE [7P:5] ^ (#.338) E-ZIP 161 ; ==>CODE [8F] ^ (#.339) E-PHONE NUMBER [9F] ^ (#.3305) E-EMER. 162 ; ==>CONTACT SAME AS NOK? [10S] ^ (#.33011) E-WORK PHONE NUMBER 163 ; ==>[11F] ^DFN) ; Copy DFN global to a local variable; PUBLIC 164 ; INPUT: Patient IEN (DFN) 165 ; OUTPUT: PT in the Symbol Table, representing the patient global 166 ; Instead of accessing a global each single read (SLOOOOW) 167 ; read it off a local variable stored in Memory. 168 INIT(DFN) ; 169 M PT=^DPT(DFN) 170 Q 171 ; 172 DESTROY ; Kill local variable; PUBLIC 173 ; INPUT: None 174 ; OUTPUT: Kill PT from the Symbol Table after you are done 175 K PT 176 Q 177 ; 178 FAMILY() ; Family Name; PUBLIC; Extrinsic 179 ; PREREQ: PT Defined 180 Q:$G(PT(0))="" "" 181 N NAME S NAME=$P(PT(0),"^",1) 182 D NAMECOMP^XLFNAME(.NAME) 183 Q NAME("FAMILY") 184 ; 185 GIVEN() ; Given Name; PUBLIC; Extrinsic 186 ; PREREQ: PT Defined 187 Q:$G(PT(0))="" "" 188 N NAME S NAME=$P(PT(0),"^",1) 189 D NAMECOMP^XLFNAME(.NAME) 190 Q NAME("GIVEN") 191 ; 192 MIDDLE() ; Middle Name; PUBLIC; Extrinsic 193 ; PREREQ: PT Defined 194 Q:$G(PT(0))="" "" 195 N NAME S NAME=$P(PT(0),"^",1) 196 D NAMECOMP^XLFNAME(.NAME) 197 Q NAME("MIDDLE") 198 ; 199 SUFFIX() ; Suffi Name; PUBLIC; Extrinsic 200 ; PREREQ: PT Defined 201 Q:$G(PT(0))="" "" 202 N NAME S NAME=$P(PT(0),"^",1) 203 D NAMECOMP^XLFNAME(.NAME) 204 Q NAME("SUFFIX") 205 ; 206 DISPNAME() ; Display Name; PUBLIC; Extrinsic 207 ; PREREQ: PT Defined 208 Q:$G(PT(0))="" "" 209 N NAME S NAME=$P(PT(0),"^",1) 210 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 211 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 212 DOB() ; Date of Birth; PUBLIC; Extrinsic 213 ; PREREQ: PT Defined 214 Q:$G(PT(0))="" "" 215 N DOB S DOB=$P(PT(0),"^",3) 216 ; Date in FM Date Format. Convert to UTC/ISO 8601. 217 Q $$FMDTOUTC^CCRUTIL(DOB,"D") 218 ; 219 GENDER() ; Get Gender; PUBLIC; Extrinsic 220 ; PREREQ: PT Defined 221 Q:$G(PT(0))="" "" 222 Q $P(PT(0),"^",2) 223 ; 224 SSN() ; Get SSN for ID; PUBLIC; Extrinsic 225 ; PREREQ: PT Defined 226 Q:$G(PT(0))="" "" 227 Q $P(PT(0),"^",9) 228 ; 229 ADDRTYPE() ; Get Home Address; PUBLIC; Extrinsic 230 ; Vista only stores a home address for the patient. 231 Q:$G(PT(0))="" "" 232 Q "Home" 233 ; 234 ADDR1() ; Get Home Address line 1; PUBLIC; Extrinsic 235 ; PREREQ: PT Defined 236 Q:$G(PT(.11))="" "" 237 Q $P(PT(.11),"^",1) 238 ; 239 ADDR2() ; Get Home Address line 2; PUBLIC; Extrinsic 240 ; PREREQ: PT Defined 241 ; Vista has Lines 2,3; CCR has only line 1,2; so compromise 242 Q:$G(PT(.11))="" "" 243 ; If the thrid address is empty, just return the 2nd. 244 ; If the 2nd is empty, we don't lose, b/c it will return "" 245 ; This is so that we won't produce a comma if there is no 3rd addr. 246 Q:$P(PT(.11),"^",3)="" $P(PT(.11),"^",2) 247 Q $P(PT(.11),"^",2)_", "_$P(PT(.11),"^",3) 248 ; 249 CITY() ; Get City for Home Address; PUBLIC; Extrinsic 250 ; PREREQ: PT Defined 251 Q:$G(PT(.11))="" "" 252 Q $P(PT(.11),"^",4) 253 ; 254 STATE() ; Get State for Home Address; PUBLIC; Extrinsic 255 ; PREREQ: PT Defined 256 Q:$G(PT(.11))="" "" 257 ; State is stored as a pointer 258 N STATENUM S STATENUM=$P(PT(.11),"^",5) 259 ; 260 ; State File Global is below 261 ; ^DIC(5,D0,0)= (#.01) NAME [1] ^ (#1) ABBREVIATION [2F] ^ (#2) VA STATE CODE 262 ; ==>[3F] ^ (#5) CAPITAL [4F] ^ (#2.1) AAC RECOGNIZED [5S] ^ (#2.2) 263 ; ==>US STATE OR POSSESSION [6S] ^ 264 Q:STATENUM="" "" ; To prevent global undefined below if no state 265 Q $P(^DIC(5,STATENUM,0),"^",1) 266 ; 267 ZIP() ; Get Zip code for Home Address; PUBLIC; Extrinsic 268 ; PREREQ: PT Defined 269 Q:$G(PT(.11))="" "" 270 Q $P(PT(.11),"^",6) 271 ; 272 COUNTY() ; Get County for our Address; PUBLIC; Extrinsic 273 ; PREREQ: PT Defined 274 Q:$G(PT(.11))="" "" 275 Q $P(PT(.11),"^",7) 276 ; 277 COUNTRY() ; Get Country for our Address; PUBLIC; Extrinsic 278 ; Unfortunately, I can't find where that is stored, so the inevitable... 279 Q:$G(PT(.11))="" "" 280 Q "USA" 281 ; 282 RESTEL() ; Residential Telephone; PUBLIC; Extrinsic 283 ; PREREQ: PT Defined 284 Q:$G(PT(.13))="" "" 285 Q $P(PT(.13),"^",1) 286 ; 287 WORKTEL() ; Work Telephone; PUBLIC; Extrinsic 288 ; PREREQ: PT Defined 289 Q:$G(PT(.13))="" "" 290 Q $P(PT(.13),"^",2) 291 ; 292 EMAIL() ; Email Adddress; PUBLIC; Extrinsic 293 ; PREREQ: PT Defined 294 Q:$G(PT(.13))="" "" 295 Q $P(PT(.13),"^",3) 296 ; 297 CELLTEL() ; Cell Phone; PUBLIC; Extrinsic 298 ; PREREQ: PT Defined 299 Q:$G(PT(.13))="" "" 300 Q $P(PT(.13),"^",4) 301 ; 302 NOK1FAM() ; Next of Kin 1 (NOK1) Family Name; PUBLIC; Extrinsic 303 ; PREREQ: PT Defined 304 Q:$G(PT(.21))="" "" 305 N NAME S NAME=$P(PT(.21),"^",1) 306 D NAMECOMP^XLFNAME(.NAME) 307 Q NAME("FAMILY") 308 ; 309 NOK1GIV() ; NOK1 Given Name; PUBLIC; Extrinsic 310 ; PREREQ: PT Defined 311 Q:$G(PT(.21))="" "" 312 N NAME S NAME=$P(PT(.21),"^",1) 313 D NAMECOMP^XLFNAME(.NAME) 314 Q NAME("GIVEN") 315 ; 316 NOK1MID() ; NOK1 Middle Name; PUBLIC; Extrinsic 317 ; PREREQ: PT Defined 318 Q:$G(PT(.21))="" "" 319 N NAME S NAME=$P(PT(.21),"^",1) 320 D NAMECOMP^XLFNAME(.NAME) 321 Q NAME("MIDDLE") 322 ; 323 NOK1SUF() ; NOK1 Suffi Name; PUBLIC; Extrinsic 324 ; PREREQ: PT Defined 325 Q:$G(PT(.21))="" "" 326 N NAME S NAME=$P(PT(.21),"^",1) 327 D NAMECOMP^XLFNAME(.NAME) 328 Q NAME("SUFFIX") 329 ; 330 NOK1DISP() ; NOK1 Display Name; PUBLIC; Extrinsic 331 ; PREREQ: PT Defined 332 Q:$G(PT(.21))="" "" 333 N NAME S NAME=$P(PT(.21),"^",1) 334 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 335 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 336 NOK1REL() ; NOK1 Relationship to the patient; PUBLIC; Extrinsic 337 ; PREREQ: PT Defined 338 Q:$G(PT(.21))="" "" 339 Q $P(PT(.21),"^",2) 340 ; 341 NOK1ADD1() ; NOK1 Address 1; PUBLIC; Extrinsic 342 ; PREREQ: PT Defined 343 Q:$G(PT(.21))="" "" 344 Q $P(PT(.21),"^",3) 345 ; 346 NOK1ADD2() ; NOK1 Address 2; PUBLIC; Extrinsic 347 ; PREREQ: PT Defined 348 ; As before, CCR only allows two fileds for the address, so we have to compromise 349 Q:$G(PT(.21))="" "" 350 ; If the thrid address is empty, just return the 2nd. 351 ; If the 2nd is empty, we don't lose, b/c it will return "" 352 ; This is so that we won't produce a comma if there is no 3rd addr. 353 Q:$P(PT(.21),"^",5)="" $P(PT(.21),"^",4) 354 Q $P(PT(.21),"^",4)_", "_$P(PT(.21),"^",5) 355 ; 356 NOK1CITY() ; NOK1 City; PUBLIC; Extrinsic 357 ; PREREQ: PT Defined 358 Q:$G(PT(.21))="" "" 359 Q $P(PT(.21),"^",6) 360 ; 361 NOK1STAT() ; NOK1 State; PUBLIC; Extrinsic 362 ; PREREQ: PT Defined 363 Q:$G(PT(.21))="" "" 364 N STATENUM S STATENUM=$P(PT(.21),"^",7) 365 Q:STATENUM="" "" 366 Q $P(^DIC(5,STATENUM,0),"^",1) 367 ; 368 NOK1ZIP() ; NOK1 Zip Code; PUBLIC; Extrinsic 369 ; PREREQ: PT Defined 370 Q:$G(PT(.21))="" "" 371 Q $P(PT(.21),"^",8) 372 ; 373 NOK1HTEL() ; NOK1 Home Telephone; PUBLIC; Extrinsic 374 ; PREREQ: PT Defined 375 Q:$G(PT(.21))="" "" 376 Q $P(PT(.21),"^",9) 377 ; 378 NOK1WTEL() ; NOK1 Work Telephone; PUBLIC; Extrinsic 379 ; PREREQ: PT Defined 380 Q:$G(PT(.21))="" "" 381 Q $P(PT(.21),"^",11) 382 ; 383 NOK1SAME() ; Is NOK1's Address the same the patient?; PUBLIC; Extrinsic 384 ; PREREQ: PT Defined 385 Q:$G(PT(.21))="" "" 386 Q $P(PT(.21),"^",10) 387 ; 388 NOK2FAM() ; NOK2 Family Name; PUBLIC; Extrinsic 389 ; PREREQ: PT Defined 390 Q:$G(PT(.211))="" "" 391 N NAME S NAME=$P(PT(.211),"^",1) 392 D NAMECOMP^XLFNAME(.NAME) 393 Q NAME("FAMILY") 394 ; 395 NOK2GIV() ; NOK2 Given Name; PUBLIC; Extrinsic ; PREREQ: PT Defined 396 Q:$G(PT(.211))="" "" 397 N NAME S NAME=$P(PT(.211),"^",1) 398 D NAMECOMP^XLFNAME(.NAME) 399 Q NAME("GIVEN") 400 ; 401 NOK2MID() ; NOK2 Middle Name; PUBLIC; Extrinsic 402 ; PREREQ: PT Defined 403 Q:$G(PT(.211))="" "" 404 N NAME S NAME=$P(PT(.211),"^",1) 405 D NAMECOMP^XLFNAME(.NAME) 406 Q NAME("MIDDLE") 407 ; 408 NOK2SUF() ; NOK2 Suffi Name; PUBLIC; Extrinsic 409 ; PREREQ: PT Defined 410 Q:$G(PT(.211))="" "" 411 N NAME S NAME=$P(PT(.211),"^",1) 412 D NAMECOMP^XLFNAME(.NAME) 413 Q NAME("SUFFIX") 414 NOK2DISP() ; NOK2 Display Name; PUBLIC; Extrinsic 415 ; PREREQ: PT Defined 416 Q:$G(PT(.211))="" "" 417 N NAME S NAME=$P(PT(.211),"^",1) 418 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 419 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 420 NOK2REL() ; NOK2 Relationship to the patient; PUBLIC; Extrinsic 421 ; PREREQ: PT Defined 422 Q:$G(PT(.211))="" "" 423 Q $P(PT(.211),"^",2) 424 ; 425 NOK2ADD1() ; NOK2 Address 1; PUBLIC; Extrinsic 426 ; PREREQ: PT Defined 427 Q:$G(PT(.211))="" "" 428 Q $P(PT(.211),"^",3) 429 ; 430 NOK2ADD2() ; NOK2 Address 2; PUBLIC; Extrinsic 431 ; PREREQ: PT Defined 432 ; As before, CCR only allows two fileds for the address, so we have to compromise 433 Q:$G(PT(.211))="" "" 434 ; If the thrid address is empty, just return the 2nd. 435 ; If the 2nd is empty, we don't lose, b/c it will return "" 436 ; This is so that we won't produce a comma if there is no 3rd addr. 437 Q:$P(PT(.211),"^",5)="" $P(PT(.211),"^",4) 438 Q $P(PT(.211),"^",4)_", "_$P(PT(.211),"^",5) 439 ; 440 NOK2CITY() ; NOK2 City; PUBLIC; Extrinsic 441 ; PREREQ: PT Defined 442 Q:$G(PT(.211))="" "" 443 Q $P(PT(.211),"^",6) 444 ; 445 NOK2STAT() ; NOK2 State; PUBLIC; Extrinsic 446 ; PREREQ: PT Defined 447 Q:$G(PT(.211))="" "" 448 N STATENUM S STATENUM=$P(PT(.211),"^",7) 449 Q:STATENUM="" "" ; To prevent global undefined below if no state 450 Q $P(^DIC(5,STATENUM,0),"^",1) ; Explained above 451 ; 452 NOK2ZIP() ; NOK2 Zip Code; PUBLIC; Extrinsic 453 ; PREREQ: PT Defined 454 Q:$G(PT(.211))="" "" 455 Q $P(PT(.211),"^",8) 456 ; 457 NOK2HTEL() ; NOK2 Home Telephone; PUBLIC; Extrinsic 458 ; PREREQ: PT Defined 459 Q:$G(PT(.211))="" "" 460 Q $P(PT(.211),"^",9) 461 ; 462 NOK2WTEL() ; NOK2 Work Telephone; PUBLIC; Extrinsic 463 ; PREREQ: PT Defined 464 Q:$G(PT(.211))="" "" 465 Q $P(PT(.211),"^",11) 466 ; 467 NOK2SAME() ; Is NOK2's Address the same the patient?; PUBLIC; Extrinsic 468 ; PREREQ: PT Defined 469 Q:$G(PT(.211))="" "" 470 Q $P(PT(.211),"^",10) 471 ; 472 EMERFAM() ; Emergency Contact (EMER) Family Name; PUBLIC; Extrinsic 473 ; PREREQ: PT Defined 474 Q:$G(PT(.33))="" "" 475 N NAME S NAME=$P(PT(.33),"^",1) 476 D NAMECOMP^XLFNAME(.NAME) 477 Q NAME("FAMILY") 478 ; 479 EMERGIV() ; EMER Given Name; PUBLIC; Extrinsic 480 ; PREREQ: PT Defined 481 Q:$G(PT(.33))="" "" 482 N NAME S NAME=$P(PT(.33),"^",1) 483 D NAMECOMP^XLFNAME(.NAME) 484 Q NAME("GIVEN") 485 ; 486 EMERMID() ; EMER Middle Name; PUBLIC; Extrinsic 487 ; PREREQ: PT Defined 488 Q:$G(PT(.33))="" "" 489 N NAME S NAME=$P(PT(.33),"^",1) 490 D NAMECOMP^XLFNAME(.NAME) 491 Q NAME("MIDDLE") 492 ; 493 EMERSUF() ; EMER Suffi Name; PUBLIC; Extrinsic 494 ; PREREQ: PT Defined 495 Q:$G(PT(.33))="" "" 496 N NAME S NAME=$P(PT(.33),"^",1) 497 D NAMECOMP^XLFNAME(.NAME) 498 Q NAME("SUFFIX") 499 EMERDISP() ; EMER Display Name; PUBLIC; Extrinsic 500 ; PREREQ: PT Defined 501 Q:$G(PT(.33))="" "" 502 N NAME S NAME=$P(PT(.33),"^",1) 503 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 504 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 505 EMERREL() ; EMER Relationship to the patient; PUBLIC; Extrinsic 506 ; PREREQ: PT Defined 507 Q:$G(PT(.33))="" "" 508 Q $P(PT(.33),"^",2) 509 ; 510 EMERADD1() ; EMER Address 1; PUBLIC; Extrinsic 511 ; PREREQ: PT Defined 512 Q:$G(PT(.33))="" "" 513 Q $P(PT(.33),"^",3) 514 ; 515 EMERADD2() ; EMER Address 2; PUBLIC; Extrinsic 516 ; PREREQ: PT Defined 517 ; As before, CCR only allows two fileds for the address, so we have to compromise 518 Q:$G(PT(.33))="" "" 519 ; If the thrid address is empty, just return the 2nd. 520 ; If the 2nd is empty, we don't lose, b/c it will return "" 521 ; This is so that we won't produce a comma if there is no 3rd addr. 522 Q:$P(PT(.33),"^",5)="" $P(PT(.33),"^",4) 523 Q $P(PT(.33),"^",4)_", "_$P(PT(.33),"^",5) 524 ; 525 EMERCITY() ; EMER City; PUBLIC; Extrinsic 526 ; PREREQ: PT Defined 527 Q:$G(PT(.33))="" "" 528 Q $P(PT(.33),"^",6) 529 ; 530 EMERSTAT() ; EMER State; PUBLIC; Extrinsic 531 ; PREREQ: PT Defined 532 Q:$G(PT(.33))="" "" 533 N STATENUM S STATENUM=$P(PT(.33),"^",7) 534 Q:STATENUM="" "" ; To prevent global undefined below if no state 535 Q $P(^DIC(5,STATENUM,0),"^",1) ; Explained above 536 ; 537 EMERZIP() ; EMER Zip Code; PUBLIC; Extrinsic 538 ; PREREQ: PT Defined 539 Q:$G(PT(.33))="" "" 540 Q $P(PT(.33),"^",8) 541 ; 542 EMERHTEL() ; EMER Home Telephone; PUBLIC; Extrinsic 543 ; PREREQ: PT Defined 544 Q:$G(PT(.33))="" "" 545 Q $P(PT(.33),"^",9) 546 ; 547 EMERWTEL() ; EMER Work Telephone; PUBLIC; Extrinsic 548 ; PREREQ: PT Defined 549 Q:$G(PT(.33))="" "" 550 Q $P(PT(.33),"^",11) 551 ; 552 EMERSAME() ; Is EMER's Address the same the NOK?; PUBLIC; Extrinsic 553 ; PREREQ: PT Defined 554 Q:$G(PT(.33))="" "" 555 Q $P(PT(.33),"^",10) 556 ; 1 CCRDPT ;WV/CCRCCD/SMH - Routines to Extract Patient Data for CCDCCR; 6/15/08 2 ;;0.2;CCRCCD;;Jun 15, 2008; 3 ; 4 ; Copyright 2008 WorldVistA. Licensed under the terms of the GNU 5 ; General Public License. 6 ; 7 ; This program is distributed in the hope that it will be useful, 8 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 9 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 ; GNU General Public License for more details. 11 ; 12 ; You should have received a copy of the GNU General Public License along 13 ; with this program; if not, write to the Free Software Foundation, Inc., 14 ; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 15 ; 16 ; CCRDPT CCRCCD/SMH - Routines to Extract Patient Data for 17 ; FAMILY Family Name 18 ; GIVEN Given Name 19 ; MIDDLE Middle Name 20 ; SUFFIX Suffix Name 21 ; DISPNAME Display Name 22 ; DOB Date of Birth 23 ; GENDER Get Gender 24 ; SSN Get SSN for ID 25 ; ADDRTYPE Get Home Address 26 ; ADDR1 Get Home Address line 1 27 ; ADDR2 Get Home Address line 2 28 ; CITY Get City for Home Address 29 ; STATE Get State for Home Address 30 ; ZIP Get Zip code for Home Address 31 ; COUNTY Get County for our Address 32 ; COUNTRY Get Country for our Address 33 ; RESTEL Residential Telephone 34 ; WORKTEL Work Telephone 35 ; EMAIL Email Adddress 36 ; CELLTEL Cell Phone 37 ; NOK1FAM Next of Kin 1 (NOK1) Family Name 38 ; NOK1GIV NOK1 Given Name 39 ; NOK1MID NOK1 Middle Name 40 ; NOK1SUF NOK1 Suffi Name 41 ; NOK1DISP NOK1 Display Name 42 ; NOK1REL NOK1 Relationship to the patient 43 ; NOK1ADD1 NOK1 Address 1 44 ; NOK1ADD2 NOK1 Address 2 45 ; NOK1CITY NOK1 City 46 ; NOK1STAT NOK1 State 47 ; NOK1ZIP NOK1 Zip Code 48 ; NOK1HTEL NOK1 Home Telephone 49 ; NOK1WTEL NOK1 Work Telephone 50 ; NOK1SAME Is NOK1's Address the same the patient? 51 ; NOK2FAM NOK2 Family Name 52 ; NOK2GIV NOK2 Given Name 53 ; NOK2MID NOK2 Middle Name 54 ; NOK2SUF NOK2 Suffi Name 55 ; NOK2DISP NOK2 Display Name 56 ; NOK2REL NOK2 Relationship to the patient 57 ; NOK2ADD1 NOK2 Address 1 58 ; NOK2ADD2 NOK2 Address 2 59 ; NOK2CITY NOK2 City 60 ; NOK2STAT NOK2 State 61 ; NOK2ZIP NOK2 Zip Code 62 ; NOK2HTEL NOK2 Home Telephone 63 ; NOK2WTEL NOK2 Work Telephone 64 ; NOK2SAME Is NOK2's Address the same the patient? 65 ; EMERFAM Emergency Contact (EMER) Family Name 66 ; EMERGIV EMER Given Name 67 ; EMERMID EMER Middle Name 68 ; EMERSUF EMER Suffi Name 69 ; EMERDISP EMER Display Name 70 ; EMERREL EMER Relationship to the patient 71 ; EMERADD1 EMER Address 1 72 ; EMERADD2 EMER Address 2 73 ; EMERCITY EMER City 74 ; EMERSTAT EMER State 75 ; EMERZIP EMER Zip Code 76 ; EMERHTEL EMER Home Telephone 77 ; EMERWTEL EMER Work Telephone 78 ; EMERSAME Is EMER's Address the same the NOK? 79 ; 80 W "No Entry at top!" Q 81 ; 82 ;**Revision History** 83 ; - June 15, 08: v0.1 using merged global 84 ; - Oct 3, 08: v0.2 using fileman calls, many formatting changes. 85 ; 86 ; All methods are Public and Extrinsic 87 ; All calls use Fileman file 2 (Patient). 88 ; You can obtain field numbers using the data dictionary 89 ; 90 FAMILY(DFN) ; Family Name 91 N NAME S NAME=$$GET1^DIQ(2,DFN,.01) 92 D NAMECOMP^XLFNAME(.NAME) 93 Q NAME("FAMILY") 94 GIVEN(DFN) ; Given Name 95 N NAME S NAME=$$GET1^DIQ(2,DFN,.01) 96 D NAMECOMP^XLFNAME(.NAME) 97 Q NAME("GIVEN") 98 MIDDLE(DFN) ; Middle Name 99 N NAME S NAME=$$GET1^DIQ(2,DFN,.01) 100 D NAMECOMP^XLFNAME(.NAME) 101 Q NAME("MIDDLE") 102 SUFFIX(DFN) ; Suffi Name 103 N NAME S NAME=$$GET1^DIQ(2,DFN,.01) 104 D NAMECOMP^XLFNAME(.NAME) 105 Q NAME("SUFFIX") 106 DISPNAME(DFN) ; Display Name 107 N NAME S NAME=$$GET1^DIQ(2,DFN,.01) 108 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 109 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 110 DOB(DFN) ; Date of Birth 111 N DOB S DOB=$$GET1^DIQ(2,DFN,.03,"I") 112 ; Date in FM Date Format. Convert to UTC/ISO 8601. 113 Q $$FMDTOUTC^CCRUTIL(DOB,"D") 114 GENDER(DFN) ; Gender/Sex 115 Q $$GET1^DIQ(2,DFN,.02) ; 116 SSN(DFN) ; SSN 117 Q $$GET1^DIQ(2,DFN,.09) 118 ADDRTYPE(DFN) ; Address Type 119 ; Vista only stores a home address for the patient. 120 Q "Home" 121 ADDR1(DFN) ; Get Home Address line 1 122 Q $$GET1^DIQ(2,DFN,.111) 123 ADDR2(DFN) ; Get Home Address line 2 124 ; Vista has Lines 2,3; CCR has only line 1,2; so compromise 125 N ADDLN2,ADDLN3 126 S ADDLN2=$$GET1^DIQ(2,DFN,.112),ADDLN3=$$GET1^DIQ(2,DFN,.113) 127 Q:ADDLN3="" ADDLN2 128 Q ADDLN2_", "_ADDLN3 129 CITY(DFN) ; Get City for Home Address 130 Q $$GET1^DIQ(2,DFN,.114) 131 STATE(DFN) ; Get State for Home Address 132 Q $$GET1^DIQ(2,DFN,.115) 133 ZIP(DFN) ; Get Zip code for Home Address 134 Q $$GET1^DIQ(2,DFN,.116) 135 COUNTY(DFN) ; Get County for our Address 136 Q $$GET1^DIQ(2,DFN,.117) 137 COUNTRY(DFN) ; Get Country for our Address 138 ; Unfortunately, it's not stored anywhere in Vista, so the inevitable... 139 Q "USA" 140 RESTEL(DFN) ; Residential Telephone 141 Q $$GET1^DIQ(2,DFN,.131) 142 WORKTEL(DFN) ; Work Telephone 143 Q $$GET1^DIQ(2,DFN,.132) 144 EMAIL(DFN) ; Email Adddress 145 Q $$GET1^DIQ(2,DFN,.133) 146 CELLTEL(DFN) ; Cell Phone 147 Q $$GET1^DIQ(2,DFN,.134) 148 NOK1FAM(DFN) ; Next of Kin 1 (NOK1) Family Name 149 N NAME S NAME=$$GET1^DIQ(2,DFN,.211) 150 D NAMECOMP^XLFNAME(.NAME) 151 Q NAME("FAMILY") 152 NOK1GIV(DFN) ; NOK1 Given Name 153 N NAME S NAME=$$GET1^DIQ(2,DFN,.211) 154 D NAMECOMP^XLFNAME(.NAME) 155 Q NAME("GIVEN") 156 NOK1MID(DFN) ; NOK1 Middle Name 157 N NAME S NAME=$$GET1^DIQ(2,DFN,.211) 158 D NAMECOMP^XLFNAME(.NAME) 159 Q NAME("MIDDLE") 160 NOK1SUF(DFN) ; NOK1 Suffi Name 161 N NAME S NAME=$$GET1^DIQ(2,DFN,.211) 162 D NAMECOMP^XLFNAME(.NAME) 163 Q NAME("SUFFIX") 164 NOK1DISP(DFN) ; NOK1 Display Name 165 N NAME S NAME=$$GET1^DIQ(2,DFN,.211) 166 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 167 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 168 NOK1REL(DFN) ; NOK1 Relationship to the patient 169 Q $$GET1^DIQ(2,DFN,.212) 170 NOK1ADD1(DFN) ; NOK1 Address 1 171 Q $$GET1^DIQ(2,DFN,.213) 172 NOK1ADD2(DFN) ; NOK1 Address 2 173 N ADDLN2,ADDLN3 174 S ADDLN2=$$GET1^DIQ(2,DFN,.214),ADDLN3=$$GET1^DIQ(2,DFN,.215) 175 Q:ADDLN3="" ADDLN2 176 Q ADDLN2_", "_ADDLN3 177 NOK1CITY(DFN) ; NOK1 City 178 Q $$GET1^DIQ(2,DFN,.216) 179 NOK1STAT(DFN) ; NOK1 State 180 Q $$GET1^DIQ(2,DFN,.217) 181 NOK1ZIP(DFN) ; NOK1 Zip Code 182 Q $$GET1^DIQ(2,DFN,.218) 183 NOK1HTEL(DFN) ; NOK1 Home Telephone 184 Q $$GET1^DIQ(2,DFN,.219) 185 NOK1WTEL(DFN) ; NOK1 Work Telephone 186 Q $$GET1^DIQ(2,DFN,.21011) 187 NOK1SAME(DFN) ; Is NOK1's Address the same the patient? 188 Q $$GET1^DIQ(2,DFN,.2125) 189 NOK2FAM(DFN) ; NOK2 Family Name 190 N NAME S NAME=$$GET1^DIQ(2,DFN,.2191) 191 D NAMECOMP^XLFNAME(.NAME) 192 Q NAME("FAMILY") 193 NOK2GIV(DFN) ; NOK2 Given Name 194 N NAME S NAME=$$GET1^DIQ(2,DFN,.2191) 195 D NAMECOMP^XLFNAME(.NAME) 196 Q NAME("GIVEN") 197 NOK2MID(DFN) ; NOK2 Middle Name 198 N NAME S NAME=$$GET1^DIQ(2,DFN,.2191) 199 D NAMECOMP^XLFNAME(.NAME) 200 Q NAME("MIDDLE") 201 NOK2SUF(DFN) ; NOK2 Suffi Name 202 N NAME S NAME=$$GET1^DIQ(2,DFN,.2191) 203 D NAMECOMP^XLFNAME(.NAME) 204 Q NAME("SUFFIX") 205 NOK2DISP(DFN) ; NOK2 Display Name 206 N NAME S NAME=$$GET1^DIQ(2,DFN,.2191) 207 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 208 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 209 NOK2REL(DFN) ; NOK2 Relationship to the patient 210 Q $$GET1^DIQ(2,DFN,.2192) 211 NOK2ADD1(DFN) ; NOK2 Address 1 212 Q $$GET1^DIQ(2,DFN,.2193) 213 NOK2ADD2(DFN) ; NOK2 Address 2 214 N ADDLN2,ADDLN3 215 S ADDLN2=$$GET1^DIQ(2,DFN,.2194),ADDLN3=$$GET1^DIQ(2,DFN,.2195) 216 Q:ADDLN3="" ADDLN2 217 Q ADDLN2_", "_ADDLN3 218 NOK2CITY(DFN) ; NOK2 City 219 Q $$GET1^DIQ(2,DFN,.2196) 220 NOK2STAT(DFN) ; NOK2 State 221 Q $$GET1^DIQ(2,DFN,.2197) 222 NOK2ZIP(DFN) ; NOK2 Zip Code 223 Q $$GET1^DIQ(2,DFN,.2198) 224 NOK2HTEL(DFN) ; NOK2 Home Telephone 225 Q $$GET1^DIQ(2,DFN,.2199) 226 NOK2WTEL(DFN) ; NOK2 Work Telephone 227 Q $$GET1^DIQ(2,DFN,.211011) 228 NOK2SAME(DFN) ; Is NOK2's Address the same the patient? 229 Q $$GET1^DIQ(2,DFN,.21925) 230 EMERFAM(DFN) ; Emergency Contact (EMER) Family Name 231 N NAME S NAME=$$GET1^DIQ(2,DFN,.331) 232 D NAMECOMP^XLFNAME(.NAME) 233 Q NAME("FAMILY") 234 EMERGIV(DFN) ; EMER Given Name 235 N NAME S NAME=$$GET1^DIQ(2,DFN,.331) 236 D NAMECOMP^XLFNAME(.NAME) 237 Q NAME("GIVEN") 238 EMERMID(DFN) ; EMER Middle Name 239 N NAME S NAME=$$GET1^DIQ(2,DFN,.331) 240 D NAMECOMP^XLFNAME(.NAME) 241 Q NAME("MIDDLE") 242 EMERSUF(DFN) ; EMER Suffi Name 243 N NAME S NAME=$$GET1^DIQ(2,DFN,.331) 244 D NAMECOMP^XLFNAME(.NAME) 245 Q NAME("SUFFIX") 246 EMERDISP(DFN) ; EMER Display Name 247 N NAME S NAME=$$GET1^DIQ(2,DFN,.331) 248 ; "G" is Given Name First; "MXc" is Mixed Case, With Suffx Preceded by Comma 249 Q $$NAMEFMT^XLFNAME(.NAME,"G","MXc") 250 EMERREL(DFN) ; EMER Relationship to the patient 251 Q $$GET1^DIQ(2,DFN,.331) 252 EMERADD1(DFN) ; EMER Address 1 253 Q $$GET1^DIQ(2,DFN,.333) 254 EMERADD2(DFN) ; EMER Address 2 255 N ADDLN2,ADDLN3 256 S ADDLN2=$$GET1^DIQ(2,DFN,.334),ADDLN3=$$GET1^DIQ(2,DFN,.335) 257 Q:ADDLN3="" ADDLN2 258 Q ADDLN2_", "_ADDLN3 259 EMERCITY(DFN) ; EMER City 260 Q $$GET1^DIQ(2,DFN,.336) 261 EMERSTAT(DFN) ; EMER State 262 Q $$GET1^DIQ(2,DFN,.337) 263 EMERZIP(DFN) ; EMER Zip Code 264 Q $$GET1^DIQ(2,DFN,.338) 265 EMERHTEL(DFN) ; EMER Home Telephone 266 Q $$GET1^DIQ(2,DFN,.339) 267 EMERWTEL(DFN) ; EMER Work Telephone 268 Q $$GET1^DIQ(2,DFN,.33011) 269 EMERSAME(DFN) ; Is EMER's Address the same the NOK? 270 Q $$GET1^DIQ(2,DFN,.3305)
Note:
See TracChangeset
for help on using the changeset viewer.