| 1 | PSUDEM3 ;BIR/DAM - ICD9 codes for Outpatient Encounter Extract ; 20 DEC 2001 | 
|---|
| 2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005 | 
|---|
| 3 | ; | 
|---|
| 4 | ;DBIA's | 
|---|
| 5 | ; Reference to file 80         supported by DBIA 10082 | 
|---|
| 6 | ; Reference to file 9000010.18 supported by DBIA 3560 | 
|---|
| 7 | ; | 
|---|
| 8 | EN ;EN   Called from PSUDEM2 | 
|---|
| 9 | D ICD | 
|---|
| 10 | D CLEAN | 
|---|
| 11 | Q | 
|---|
| 12 | ; | 
|---|
| 13 | ICD ;Find all ICD9 pointers  associated with Patient pointer | 
|---|
| 14 | ; | 
|---|
| 15 | N PSUICD | 
|---|
| 16 | S PSUC1=0 | 
|---|
| 17 | F  S PSUC1=$O(^AUPNVCPT("C",PSUPT,PSUC1)) Q:PSUC1=""  D    ;V CPT IEN | 
|---|
| 18 | .I $P($G(^AUPNVCPT(PSUC1,0)),U,3)=$G(PSUVIEN) D  ;V CPT IEN=Visit IEN | 
|---|
| 19 | ..S PSUICD=$P($G(^AUPNVCPT(PSUC1,0)),U,5) D ICD1           ;ICD9 Ptr | 
|---|
| 20 | ..S PSUCPT=$P($G(^AUPNVCPT(PSUC1,0)),U,1) D EN^PSUDEM6  ;grab CPT codes | 
|---|
| 21 | I '$D(^AUPNVCPT("C",PSUPT)) S PSUCPT="" D EN^PSUDEM6 | 
|---|
| 22 | D FIN | 
|---|
| 23 | Q | 
|---|
| 24 | ; | 
|---|
| 25 | ICD1 ;Find ICD9 codes from pointers and place in an array | 
|---|
| 26 | ; | 
|---|
| 27 | ; | 
|---|
| 28 | N PSUID2 | 
|---|
| 29 | I PSUICD S PSUID2=$P($G(^ICD9(PSUICD,0)),U) D | 
|---|
| 30 | .I $D(PSUID2) S ^XTMP("PSU_"_PSUJOB,"PSUTMP1",PSUVIEN,PSUID2)=""  ;ICD9 codes set into array | 
|---|
| 31 | ; | 
|---|
| 32 | Q | 
|---|
| 33 | ; | 
|---|
| 34 | FIN ;$O through array, and set codes into the Outpatient Visit | 
|---|
| 35 | ;Encounter global, ^XTMP("PSU_"_PSUJOB,"PSUOPV" | 
|---|
| 36 | ; | 
|---|
| 37 | ; | 
|---|
| 38 | S PSUIDF=0 | 
|---|
| 39 | S I=8 | 
|---|
| 40 | F  S PSUIDF=$O(^XTMP("PSU_"_PSUJOB,"PSUTMP1",PSUVIEN,PSUIDF)) Q:'PSUIDF  Q:I=17  D | 
|---|
| 41 | .S $P(^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUVIEN),U,I)=PSUIDF | 
|---|
| 42 | .S I=I+1 | 
|---|
| 43 | ; | 
|---|
| 44 | F N=8:1:16 I '$P($G(^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUVIEN)),U,N) D | 
|---|
| 45 | .S $P(^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUVIEN),U,N)="" | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | CLEAN ;Delete all ^XTMP("PSU_"_PSUJOB,"PSUOPV" entries that do not have associated | 
|---|
| 49 | ;ICD9 or CPT codes. | 
|---|
| 50 | ; | 
|---|
| 51 | S PSUCL=0 | 
|---|
| 52 | F  S PSUCL=$O(^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUCL)) Q:'PSUCL  D | 
|---|
| 53 | .I $P(^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUCL),U,7)="" D | 
|---|
| 54 | ..I $P(^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUCL),U,17)="" K ^XTMP("PSU_"_PSUJOB,"PSUOPV",PSUCL) | 
|---|
| 55 | Q | 
|---|