VistA-WorldVistAEHR/r/OUTPATIENT_PHARMACY-PSO-APS.../PSOTPCEE.m

51 lines
2.5 KiB
Mathematica

PSOTPCEE ;BIR/MHA-transitional pharmacy benefit enter/edit ;07/01/03
;;7.0;OUTPATIENT PHARMACY;**145,153,227,268**;DEC 1997;Build 9
;;External reference to SDPHARM1 supported by DBIA 4196
;;External reference ^DIC(4 supported by DBIA 2251
Q ;placed out of order by PSO87*227
ST N PSODFN,FLG,PSODF,FI,INST,SNO,CDT,UL S FI=52.91,$P(UL,"=",79)="="
PT K DIC,DIE,PSODFN,FLG,PSODF,REC,INST,SNO,CDT
W ! S (DIC,DIE)=52.91,DIC(0)="QEALM",DLAYGO=FI
;S DIC("W")="W ?15,$$GET1^DIQ(2,+Y,.01)"
D ^DIC G:+Y'>0 PTX S FLG=$P(Y,"^",3)
S (PSODFN,DA)=+Y,DR=.351,DIC=2,DIQ="PSODF" D EN^DIQ1 K DIC,DR,DIQ
I $G(PSODF(2,DA,.351))]"",FLG D G PT
.W !!?10,$C(7),"Patient died on "_PSODF(2,PSODFN,.351)_" - Cannot be added to file!!",!
.S DIK="^PS(52.91," D ^DIK K DIK
L +^PS(FI,DA):$S(+$G(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3) I '$T W $C(7),!!,"Patient Data is Being Edited by Another User!",! G PT
S (INST,SNO)="" D:FLG
.S X=$$DEF^SDPHARM1(DA) S:X INST=$P(X,"^"),SNO=$P(X,"^",2)
.S DR="1////"_DT_";5////M;6////"_SNO_";7////"_INST D ^DIE
INS S REC=$G(^PS(FI,DA,0))
S DR="7" D ^DIE I $D(Y)!($D(DTOUT)) D:FLG RM L -^PS(FI,DA) G PT
I X,X'=$P(REC,"^",8) S $P(REC,"^",7)=$P($G(^DIC(4,X,99)),"^"),DR="6////"_$P($G(^DIC(4,X,99)),"^") D ^DIE
S DR="6" D ^DIE I $D(Y)!($D(DTOUT)) D:FLG RM L -^PS(52.91,DA) G PT
I X,X'=$P(REC,"^",7),$$IEN^XUAF4(X) S DR="7////"_$$IEN^XUAF4(X) D ^DIE G INS
S CDT=$P(REC,"^",3)
S DR="2" D ^DIE I $D(Y)!($D(DTOUT)) L -^PS(FI,DA) G PT
I CDT,X="" S DR="3////@" D ^DIE W !,"INACTIVATION REASON CODE: " G CONT
I X S DR="3R",DIE("NO^")="" D ^DIE I $D(DTOUT) S DR="3////3" D ^DIE L -^PS(FI,DA) G PT
CONT L -^PS(FI,DA)
S Y=$S(FLG:DT,1:$P(REC,"^",2)) X ^DD("DD")
W !!,UL,!,"DATE PHARMACY BENEFIT BEGAN: "_Y
S Y=$P(REC,"^",6),Y=$S(Y="E":"EWL",Y="S":"SCHEDULED APPOINTMENT",Y="X":"EWL & SCHEDULED APPOINTMENT",Y="M":"MANUAL",1:"")
W ?42,"WAIT TYPE: "_Y
S Y=$P(REC,"^",5) I Y X ^DD("DD")
W !,"DESIRED APPOINTMENT DATE: "_Y
W !,"EXCLUSION REASON: " S Y=$P(REC,"^",9)
W:Y=1 "ACTIVE RX"
W:Y=2 "ACTUAL APPT. < 30 DAYS FROM DATE APPT. MADE"
W:Y=3 "ACTIVE RX & ACTUAL APPT. < 30 DAYS FROM DATE APPT. MADE"
S Y=$P(REC,"^",10) I Y X ^DD("DD")
W !,"PRIMARY CARE SCHEDULE APT DATE: "_Y_" "_"RX #: "_$P(REC,"^",11)
S Y=$P(REC,"^",12) I Y X ^DD("DD")
W !,"DATE LETTER PRINTED: "_Y,!,UL
G PT
PTX K DIC,DIE,%DT,DR,DA Q
RM ;
;W !?10,$C(7),"Required Data - Setting patient as Inactive"
;S DR="2////"_DT_";3////3" D ^DIE
W !!,$C(7),"Required Data - deleting patient entry from TPB ELIGIBILITY (#52.91) File."
K DIK S DIK="^PS(52.91,",DA=PSODFN D ^DIK K DIK,^PS(52.91,"AX",DT,DA)
Q