| 1 | PSUOPAM ;BIR/DAM - PSU PBM Outpatient AMIS Pharmacy Data Collection; March 2004 ; 1/11/08 11:46am | 
|---|
| 2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;**13**;MARCH, 2005;Build 3 | 
|---|
| 3 | ; | 
|---|
| 4 | ;DBIA's | 
|---|
| 5 | ;Reference to File (#52)     supported by DBIA 1878 | 
|---|
| 6 | ; | 
|---|
| 7 | EN ;entry point to gather additional AMIS data.  Called from PSUOP2 | 
|---|
| 8 | ; | 
|---|
| 9 | K PSUAM      ;Array to hold single dose Medication Instructions | 
|---|
| 10 | K PSUAMMD    ;Array to hold multidose medication instructions | 
|---|
| 11 | K PSUMDFLG   ;Multidose flag | 
|---|
| 12 | S (PSUPI,PSUCO,PSUEXP,PSUAM,PSUDSG,PSUDIPU,PSUNITS,PSUNOUN)="" | 
|---|
| 13 | S (PSUDUR,PSUCONJ,PSUROUT,PSUSCHED,PSUVERB)="" | 
|---|
| 14 | D CO | 
|---|
| 15 | D EXP | 
|---|
| 16 | D DOSG | 
|---|
| 17 | Q | 
|---|
| 18 | ; | 
|---|
| 19 | ; | 
|---|
| 20 | CO ;Copay status: found in file (#52), field (#105) | 
|---|
| 21 | ; | 
|---|
| 22 | ;PSU*4*13 Corrected to show the COPAY. | 
|---|
| 23 | S PSUCO=$P($G(^TMP("PSOR",$J,PSURXIEN,"IB")),U,1) | 
|---|
| 24 | I $G(PSUCO) S PSUCOPAY="Y" | 
|---|
| 25 | I '$G(PSUCO) S PSUCOPAY="N" | 
|---|
| 26 | Q | 
|---|
| 27 | ; | 
|---|
| 28 | EXP ;Expanded instructions: found in file (#52), multiple (#113), | 
|---|
| 29 | ;sub-field (#.01) | 
|---|
| 30 | ; | 
|---|
| 31 | S PSUD1=0 | 
|---|
| 32 | F  S PSUD1=$O(^TMP("PSOR",$J,PSURXIEN,"PI",PSUD1)) Q:PSUD1=""  D | 
|---|
| 33 | .I PSUD1=1 S PSUEXP=$E(^TMP("PSOR",$J,PSURXIEN,"PI",PSUD1,0),1,80) D | 
|---|
| 34 | ..S PSUPI=$G(PSUEXP) | 
|---|
| 35 | .I (PSUD1'=1),($L(PSUEXP)<80) D | 
|---|
| 36 | ..S PSUEXP=$E(PSUEXP_" "_^TMP("PSOR",$J,PSURXIEN,"PI",PSUD1,0),1,80) | 
|---|
| 37 | ..S PSUPI=$G(PSUEXP) | 
|---|
| 38 | ; | 
|---|
| 39 | Q | 
|---|
| 40 | ; | 
|---|
| 41 | DOSG ;Dosage data: found in file (#52), multiple (#113).  There are | 
|---|
| 42 | ;nine sub-fields to be pulled: #.01 through #8 | 
|---|
| 43 | ; | 
|---|
| 44 | S PSUD1=0 | 
|---|
| 45 | F  S PSUD1=$O(^TMP("PSOR",$J,PSURXIEN,"MI",PSUD1)) Q:PSUD1=""  D | 
|---|
| 46 | .I PSUD1'=1 S PSUMDFLG="M"       ;Multidose flag | 
|---|
| 47 | .I PSUD1=1 D                     ;Single dose/first Multidose data | 
|---|
| 48 | ..S PSUAM=^TMP("PSOR",$J,PSURXIEN,"MI",PSUD1,0) | 
|---|
| 49 | ..S PSUDSG=$P(PSUAM,U,1)             ;Dosage Ordered | 
|---|
| 50 | ..S PSUDISPU=$P(PSUAM,U,2)           ;Dispense Units per Dose | 
|---|
| 51 | ..S PSUNITS=$P($P(PSUAM,U,3),";",2)  ;Units | 
|---|
| 52 | ..S PSUNOUN=$P(PSUAM,U,4)            ;Noun | 
|---|
| 53 | ..S PSUDUR=$P(PSUAM,U,5)             ;Duration | 
|---|
| 54 | ..S PSUCONJ=$P(PSUAM,U,6)            ;Conjunction | 
|---|
| 55 | ..S PSUROUT=$P($P(PSUAM,U,7),";",2)  ;Route | 
|---|
| 56 | ..S PSUSCHED=$P(PSUAM,U,8)           ;Schedule | 
|---|
| 57 | ..S PSUVERB=$P(PSUAM,U,9)            ;Verb | 
|---|
| 58 | ; | 
|---|
| 59 | Q | 
|---|
| 60 | ; | 
|---|
| 61 | MULTI ;Set variables for Multidose Medication Instructions | 
|---|
| 62 | ;Called from PSUOP3 | 
|---|
| 63 | ; | 
|---|
| 64 | S (PSUDSGMD,PSUDSPMD,PSUNITMD,PSUNMD)="" | 
|---|
| 65 | S (PSURTMD,PSUSCHMD,PSUVRBMD)="" | 
|---|
| 66 | ; | 
|---|
| 67 | S PSUDSGMD=$P(PSUAMMD,U,1)            ;Dosage Ordered | 
|---|
| 68 | S PSUDSPMD=$P(PSUAMMD,U,2)            ;Dispense Units per Dose | 
|---|
| 69 | S PSUNITMD=$P($P(PSUAMMD,U,3),";",2)  ;Units | 
|---|
| 70 | S PSUNMD=$P(PSUAMMD,U,4)              ;Noun | 
|---|
| 71 | S PSUDURMD=$P(PSUAMMD,U,5)            ;Duration | 
|---|
| 72 | S PSUCONMD=$P(PSUAMMD,U,6)            ;Conjunction | 
|---|
| 73 | S PSURTMD=$P($P(PSUAMMD,U,7),";",2)   ;Route | 
|---|
| 74 | S PSUSCHMD=$P(PSUAMMD,U,8)            ;Schedule | 
|---|
| 75 | S PSUVRBMD=$P(PSUAMMD,U,9)            ;Verb | 
|---|
| 76 | ; | 
|---|
| 77 | Q | 
|---|