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/OUTPATIENT_PHARMACY-PSO-APSP-HUIP/PSOPTPST.m

    r613 r623  
    1 PSOPTPST        ;BIR/DSD - Post Patient Selection Action ;07/25/96
    2         ;;7.0;OUTPATIENT PHARMACY;**7,71,88,146,157,143,225**;DEC 1997;Build 29
    3         ;External reference to SDCO22 supported by DBIA 1579
    4         ;External reference to IBE(350.1,"ANEW" supported by DBIA 592
    5         ;External reference to PS(55 supported by DBIA 2228
    6         ;External reference to IBARX supported by DBIA 125
    7         ;External reference to $$GETSHAD^DGUTL3 supported by DBIA 4462
    8 START   S PSOQFLG=0
    9         D GET ; Gets data from Patient file
    10         D DEAD G:PSOQFLG END ; Checks to see if patient still alive
    11         G:$G(PSOFROM("PTLKUP"))']"" END ; skips questions if not called by RX data entry
    12         D INP G:PSOQFLG END ;Checks to see if inpatient and whether to continue
    13         D CNH G:PSOQFLG END ; Checks to see if nursing home patient
    14         D ELIG ; Checks eligibility
    15         D:$G(DUZ("AG"))="V" COPAY ; Deals with copay
    16         D ADDRESS ; Display address information
    17         D:$G(^PS(55,PSODFN,1))]"" REMARKS ; Displays narrative about patient
    18 END     D EOJ
    19         Q
    20         ;----------------------------------------------------------
    21 GET     K DIC,DR,DIQ S DIC=2,DA=PSODFN,DR=".1;.172;.351;.361;148",DIQ="PSOPTPST"
    22         D EN^DIQ1 K DIC,DA,DR,DIQ
    23         Q
    24         ;
    25 DEAD    ;
    26         I $G(PSOPTPST(2,PSODFN,.351))]"" S (PSODEATH,PSOQFLG)=1 S SSN=$P(^DPT(PSODFN,0),"^",9) W !?10,$C(7),PSORX("NAME")_" ("_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)_") DIED "_PSOPTPST(2,PSODFN,.351),! S:$G(POERR) POERR("DEAD")=1 D
    27         .;I '$O(^PS(55,PSODFN,"P","A",DT)) Q
    28         .S ACOM="Date of Death "_PSOPTPST(2,PSODFN,.351)_".",ZTRTN="CAN^PSOCAN3",ZTDESC="Outpatient Pharmacy Autocancel Due to Death of Patient",ZTSAVE("ACOM")="",ZTSAVE("PSODFN")="",ZTSAVE("PSODEATH")=""
    29         .S ZTIO="",PSOCLC=DUZ,ZTSAVE("PSOCLC")="",ZTDTH=$H D ^%ZTLOAD K ACOM,ZTSK,PSODEATH
    30         Q
    31         ;
    32 INP     I '$G(PSOXFLG),'$G(PSOFIN),$G(PSOPTPST(2,PSODFN,.1))]"" S PSOXFLG=1,SSN=$P(^DPT(PSODFN,0),"^",9) W !!?10,$C(7),PSORX("NAME")_" ("_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)_")" K SSN
    33         I $G(PSOPTPST(2,PSODFN,.1))]"" W !?10,$C(7),"Patient is an Inpatient on Ward "_PSOPTPST(2,PSODFN,.1)_" !!" D DIR
    34         Q
    35 TPB     ;
    36         N PSOTPSSN
    37         I '$G(PSODFN) Q
    38         I $D(^PS(52.91,PSODFN,0)) I '$P(^PS(52.91,PSODFN,0),"^",3)!($P(^(0),"^",3)>DT) D
    39         .S PSOTPSSN=$P($G(^DPT(PSODFN,0)),"^",9)
    40         .I $G(PSOFIN)!($G(MEDP)) D
    41         ..I $G(MEDP) W !!?10,$C(7),$P($G(^DPT(PSODFN,0)),"^")_" ("_$E(PSOTPSSN,1,3)_"-"_$E(PSOTPSSN,4,5)_"-"_$E(PSOTPSSN,6,9)_")" Q
    42         ..I $G(PSOFIN) I $G(PSOPTPST(2,PSODFN,148))="YES"!($G(PSOPTPST(2,PSODFN,.1))]"") W !!?10,$C(7),$P($G(^DPT(PSODFN,0)),"^")_" ("_$E(PSOTPSSN,1,3)_"-"_$E(PSOTPSSN,4,5)_"-"_$E(PSOTPSSN,6,9)_")"
    43         .I '$G(PSOFIN),'$G(MEDP) W !
    44         .W !?10,"Patient is eligible for the Transitional Pharmacy Benefit!!" D DIR
    45         Q
    46         ;
    47 CNH     I $G(MEDP),$G(PSOPTPST(2,PSODFN,148))="YES",$G(PSOPTPST(2,PSODFN,.1))']"" D
    48         .S SSN=$P(^DPT(PSODFN,0),"^",9) W !!?10,$C(7),PSORX("NAME")_" ("_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)_")" K SSN
    49         K PSORX("CNH") I $G(PSOPTPST(2,PSODFN,148))="YES" W !?10,$C(7),"Patient is in a Contract Nursing Home !!" D DIR S:'$G(PSOQFLG) PSORX("CNH")=1
    50         Q
    51         ;
    52 ELIG    I $G(PSOPTPST(2,PSODFN,.361))]"",$G(PSOPTPST(2,PSODFN,.172))'="I" W !,"MAS Eligibility: "_PSOPTPST(2,PSODFN,.361)
    53         S DFN=PSODFN D RE^PSODEM
    54         Q
    55         ;
    56 COPAY   K PSOBILL,PSOCPAY S DFN=PSODFN,(X,PSOPTIB)=$P($G(^PS(59,+PSOSITE,"IB")),"^")_"^"_PSODFN D XTYPE^IBARX
    57         I '$D(^IBE(350.1,"ANEW",+PSOPTIB,1,1)) S PSOQFLG=1 D  K PSOPTIB Q
    58         .W $C(7),!!,"There is a problem with the IB SERVICE/SECTION entry in your Pharmacy Site File."
    59         .W !,"You will not be able to enter any new prescriptions until this is corrected!",!
    60         S (ACTYP,BL)="",(PSOBILL,PSOCPAY)=0 I +Y=-1 W !,"ERROR IN COPAY ELIGIBILITY ENCOUNTERED." G COPAYX
    61 COPAY1  S ACTYP=$O(Y(ACTYP)) G:'ACTYP COPAYX F III=0:0 S BL=$O(Y(ACTYP,BL)) Q:BL=""  I BL>0 S PSOBILL=BL,PSOCPAY=BL_"^"_Y(ACTYP,BL)
    62         G COPAY1
    63 COPAYX  K X,Y,ACTYP,BL,III,PSOPTIB
    64         ;I $G(PSOBILL)
    65         D QST
    66         Q
    67         ;
    68 ADDRESS N DFN S (DA,DFN)=PSODFN D ADD^VADPT K DFN,PSOI,DA,DR
    69         Q
    70         ;
    71 REMARKS S PSOX=$G(^PS(55,PSODFN,1)) W !!,?5
    72         F PSOI=1:1 Q:$P(PSOX," ",PSOI,900)=""  W:$X+$L($P(PSOX," ",PSOI))+$L(" ")>IOM !?5 W $P(PSOX," ",PSOI)_" "
    73         K PSOX,PSOI
    74         Q
    75         ;
    76 DIR     K DIR W !
    77         S DIR(0)="Y",DIR("B")="NO",DIR("A")="Do You Want To Continue" D ^DIR K DIR
    78         S:'Y PSOQFLG=1 K X,Y,DIRUT,DTOUT,DUOUT
    79         Q
    80         ;
    81 EOJ     K:PSOQFLG PSORX("CNH") K PSOPTPST,VAPA
    82         Q
    83 QST     ;Ask new questions for Copay
    84         I '$$DT^PSOMLLDT Q
    85         K PSOIBQS
    86         I $G(PSOBILL) S PSOIBQS(PSODFN,"SC")=""
    87         S PSOIBQS(PSODFN,"SC>50")=""
    88         I +$P($$CVEDT^DGCV(PSODFN),"^",3) S PSOIBQS(PSODFN,"CV")=""
    89         I $$AO^SDCO22(PSODFN) S PSOIBQS(PSODFN,"VEH")=""
    90         I $$IR^SDCO22(PSODFN) S PSOIBQS(PSODFN,"RAD")=""
    91         I $$EC^SDCO22(PSODFN) S PSOIBQS(PSODFN,"PGW")=""
    92         I $L($T(GETSHAD^DGUTL3)) S:$$GETSHAD^DGUTL3(PSODFN)=1 PSOIBQS(PSODFN,"SHAD")=""
    93         I $P($$GETSTAT^DGMSTAPI(PSODFN),"^",2)="Y" S PSOIBQS(PSODFN,"MST")=""
    94         I $T(GETCUR^DGNTAPI)]"" N PSONCP,PSONCPX S PSONCPX=$$GETCUR^DGNTAPI(PSODFN,"PSONCP") I $P($G(PSONCP("IND")),"^")="Y" S PSOIBQS(PSODFN,"HNC")=""
    95         Q
     1PSOPTPST ;BIR/DSD - Post Patient Selection Action ;07/25/96
     2 ;;7.0;OUTPATIENT PHARMACY;**7,71,88,146,157,143**;DEC 1997
     3 ;External reference to SDCO22 supported by DBIA 1579
     4 ;External reference to IBE(350.1,"ANEW" supported by DBIA 592
     5 ;External reference to PS(55 supported by DBIA 2228
     6 ;External reference to IBARX supported by DBIA 125
     7START S PSOQFLG=0
     8 D GET ; Gets data from Patient file
     9 D DEAD G:PSOQFLG END ; Checks to see if patient still alive
     10 G:$G(PSOFROM("PTLKUP"))']"" END ; skips questions if not called by RX data entry
     11 D INP G:PSOQFLG END ;Checks to see if inpatient and whether to continue
     12 D CNH G:PSOQFLG END ; Checks to see if nursing home patient
     13 D ELIG ; Checks eligibility
     14 D:$G(DUZ("AG"))="V" COPAY ; Deals with copay
     15 D ADDRESS ; Display address information
     16 D:$G(^PS(55,PSODFN,1))]"" REMARKS ; Displays narrative about patient
     17END D EOJ
     18 Q
     19 ;----------------------------------------------------------
     20GET K DIC,DR,DIQ S DIC=2,DA=PSODFN,DR=".1;.172;.351;.361;148",DIQ="PSOPTPST"
     21 D EN^DIQ1 K DIC,DA,DR,DIQ
     22 Q
     23 ;
     24DEAD ;
     25 I $G(PSOPTPST(2,PSODFN,.351))]"" S (PSODEATH,PSOQFLG)=1 S SSN=$P(^DPT(PSODFN,0),"^",9) W !?10,$C(7),PSORX("NAME")_" ("_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)_") DIED "_PSOPTPST(2,PSODFN,.351),! S:$G(POERR) POERR("DEAD")=1 D
     26 .;I '$O(^PS(55,PSODFN,"P","A",DT)) Q
     27 .S ACOM="Date of Death "_PSOPTPST(2,PSODFN,.351)_".",ZTRTN="CAN^PSOCAN3",ZTDESC="Outpatient Pharmacy Autocancel Due to Death of Patient",ZTSAVE("ACOM")="",ZTSAVE("PSODFN")="",ZTSAVE("PSODEATH")=""
     28 .S ZTIO="",PSOCLC=DUZ,ZTSAVE("PSOCLC")="",ZTDTH=$H D ^%ZTLOAD K ACOM,ZTSK,PSODEATH
     29 Q
     30 ;
     31INP I '$G(PSOXFLG),'$G(PSOFIN),$G(PSOPTPST(2,PSODFN,.1))]"" S PSOXFLG=1,SSN=$P(^DPT(PSODFN,0),"^",9) W !!?10,$C(7),PSORX("NAME")_" ("_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)_")" K SSN
     32 I $G(PSOPTPST(2,PSODFN,.1))]"" W !?10,$C(7),"Patient is an Inpatient on Ward "_PSOPTPST(2,PSODFN,.1)_" !!" D DIR
     33 Q
     34TPB ;
     35 N PSOTPSSN
     36 I '$G(PSODFN) Q
     37 I $D(^PS(52.91,PSODFN,0)) I '$P(^PS(52.91,PSODFN,0),"^",3)!($P(^(0),"^",3)>DT) D
     38 .S PSOTPSSN=$P($G(^DPT(PSODFN,0)),"^",9)
     39 .I $G(PSOFIN)!($G(MEDP)) D
     40 ..I $G(MEDP) W !!?10,$C(7),$P($G(^DPT(PSODFN,0)),"^")_" ("_$E(PSOTPSSN,1,3)_"-"_$E(PSOTPSSN,4,5)_"-"_$E(PSOTPSSN,6,9)_")" Q
     41 ..I $G(PSOFIN) I $G(PSOPTPST(2,PSODFN,148))="YES"!($G(PSOPTPST(2,PSODFN,.1))]"") W !!?10,$C(7),$P($G(^DPT(PSODFN,0)),"^")_" ("_$E(PSOTPSSN,1,3)_"-"_$E(PSOTPSSN,4,5)_"-"_$E(PSOTPSSN,6,9)_")"
     42 .I '$G(PSOFIN),'$G(MEDP) W !
     43 .W !?10,"Patient is eligible for the Transitional Pharmacy Benefit!!" D DIR
     44 Q
     45 ;
     46CNH I $G(MEDP),$G(PSOPTPST(2,PSODFN,148))="YES",$G(PSOPTPST(2,PSODFN,.1))']"" D
     47 .S SSN=$P(^DPT(PSODFN,0),"^",9) W !!?10,$C(7),PSORX("NAME")_" ("_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)_")" K SSN
     48 K PSORX("CNH") I $G(PSOPTPST(2,PSODFN,148))="YES" W !?10,$C(7),"Patient is in a Contract Nursing Home !!" D DIR S:'$G(PSOQFLG) PSORX("CNH")=1
     49 Q
     50 ;
     51ELIG I $G(PSOPTPST(2,PSODFN,.361))]"",$G(PSOPTPST(2,PSODFN,.172))'="I" W !,"MAS Eligibility: "_PSOPTPST(2,PSODFN,.361)
     52 S DFN=PSODFN D RE^PSODEM
     53 Q
     54 ;
     55COPAY K PSOBILL,PSOCPAY S DFN=PSODFN,(X,PSOPTIB)=$P($G(^PS(59,+PSOSITE,"IB")),"^")_"^"_PSODFN D XTYPE^IBARX
     56 I '$D(^IBE(350.1,"ANEW",+PSOPTIB,1,1)) S PSOQFLG=1 D  K PSOPTIB Q
     57 .W $C(7),!!,"There is a problem with the IB SERVICE/SECTION entry in your Pharmacy Site File."
     58 .W !,"You will not be able to enter any new prescriptions until this is corrected!",!
     59 S (ACTYP,BL)="",(PSOBILL,PSOCPAY)=0 I +Y=-1 W !,"ERROR IN COPAY ELIGIBILITY ENCOUNTERED." G COPAYX
     60COPAY1 S ACTYP=$O(Y(ACTYP)) G:'ACTYP COPAYX F III=0:0 S BL=$O(Y(ACTYP,BL)) Q:BL=""  I BL>0 S PSOBILL=BL,PSOCPAY=BL_"^"_Y(ACTYP,BL)
     61 G COPAY1
     62COPAYX K X,Y,ACTYP,BL,III,PSOPTIB
     63 ;I $G(PSOBILL)
     64 D QST
     65 Q
     66 ;
     67ADDRESS N DFN S (DA,DFN)=PSODFN D ADD^VADPT K DFN,PSOI,DA,DR
     68 Q
     69 ;
     70REMARKS S PSOX=$G(^PS(55,PSODFN,1)) W !!,?5
     71 F PSOI=1:1 Q:$P(PSOX," ",PSOI,900)=""  W:$X+$L($P(PSOX," ",PSOI))+$L(" ")>IOM !?5 W $P(PSOX," ",PSOI)_" "
     72 K PSOX,PSOI
     73 Q
     74 ;
     75DIR K DIR W !
     76 S DIR(0)="Y",DIR("B")="NO",DIR("A")="Do You Want To Continue" D ^DIR K DIR
     77 S:'Y PSOQFLG=1 K X,Y,DIRUT,DTOUT,DUOUT
     78 Q
     79 ;
     80EOJ K:PSOQFLG PSORX("CNH") K PSOPTPST,VAPA
     81 Q
     82QST ;Ask new questions for Copay
     83 I '$$DT^PSOMLLDT Q
     84 K PSOIBQS
     85 I $G(PSOBILL) S PSOIBQS(PSODFN,"SC")=""
     86 S PSOIBQS(PSODFN,"SC>50")=""
     87 I +$P($$CVEDT^DGCV(PSODFN),"^",3) S PSOIBQS(PSODFN,"CV")=""
     88 I $$AO^SDCO22(PSODFN) S PSOIBQS(PSODFN,"VEH")=""
     89 I $$IR^SDCO22(PSODFN) S PSOIBQS(PSODFN,"RAD")=""
     90 I $$EC^SDCO22(PSODFN) S PSOIBQS(PSODFN,"PGW")=""
     91 I $P($$GETSTAT^DGMSTAPI(PSODFN),"^",2)="Y" S PSOIBQS(PSODFN,"MST")=""
     92 I $T(GETCUR^DGNTAPI)]"" N PSONCP,PSONCPX S PSONCPX=$$GETCUR^DGNTAPI(PSODFN,"PSONCP") I $P($G(PSONCP("IND")),"^")="Y" S PSOIBQS(PSODFN,"HNC")=""
     93 Q
Note: See TracChangeset for help on using the changeset viewer.