Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/PHARMACY_BENEFITS_MANAGEMENT-PSU/PSUOPAM.m

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