PSOPAT ;BHAM ISC/SAB - update pharmacy patient data ;03/08/93 8:35
;;7.0;OUTPATIENT PHARMACY;**74,117,149,233,268,326**;DEC 1997;Build 11
;Reference to ^PS(55, is supported by IA 2228
I '$D(PSOPAR) D ^PSOLSET I '$D(PSOPAR) W $C(7),!,"Site Parameters must be Defined!",! G EX
2 W ! S PSOFROM=1,DIC("A")="Select Patient: ",DIC(0)="AEQMZ" D EN^PSOPATLK S Y=PSOPTLK G:"^"[Y EX G:Y<0 2 S DFN=+Y S PSOLOUD=1 D:$P($G(^PS(55,DFN,0)),"^",6)'=2 EN^PSOHLUP(DFN) K PSOLOUD
S DA=DFN,PI="" D ^PSODEM G 2:PI="^"
I '$P($G(PSOPAR),"^",22),'$D(^XUSEC("PSO ADDRESS UPDATE",+$G(DUZ))) G P55
L +^PS(55,DA):$S(+$G(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3) I '$T D MSG D EX G 2
S PSODFN=DA D UPDATE^PSOBAI S DA=PSODFN
W !
L +^DPT(DA):$S(+$G(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3) I '$T D MSG D EX G 2
S DIE="^DPT(",DR="[PSO OUTPT]" D ^DIE L -^DPT(DA)
P55 I '$D(^PS(55,DFN)) K DIC S DIC="^PS(55,",DIC(0)="LZ",(X,DINUM)=DFN K DD,DO D FILE^DICN D:$G(DFN)&($P($G(^PS(55,DFN,0)),"^",6)'=2) EN^PSOHLUP(DFN) K DIC
I $G(DFN),$P($G(^PS(55,DFN,0)),"^")="" S $P(^PS(55,DFN,0),"^")=DFN K DIK S DA=DFN,DIK="^PS(55,",DIK(1)=".01^B" D EN^DIK K DIK S DA=DFN
S DIE="^PS(55,",DR=".02;.03;.05;.04;1;D ELIG^PSORX1;3;40:41.1;106;106.1" W !!?5,">>PHARMACY PATIENT DATA<<",!
D ^DIE,EX W !! G 2
Q
EX L -^PS(55,+$G(DA)),-^DPT(+$G(DA))
K DIC,X,Y,DIE,D0,DA,DFN,PI,DR,%,%Y,%X,C,DI,DIPGM,DQ,PSOFROM,PSOPTLK
Q
MSG W $C(7),!,"Patient Data is Being Edited by Another User!",! Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOPAT 1461 printed Dec 13, 2024@02:32:38 Page 2
PSOPAT ;BHAM ISC/SAB - update pharmacy patient data ;03/08/93 8:35
+1 ;;7.0;OUTPATIENT PHARMACY;**74,117,149,233,268,326**;DEC 1997;Build 11
+2 ;Reference to ^PS(55, is supported by IA 2228
+3 IF '$DATA(PSOPAR)
DO ^PSOLSET
IF '$DATA(PSOPAR)
WRITE $CHAR(7),!,"Site Parameters must be Defined!",!
GOTO EX
2 WRITE !
SET PSOFROM=1
SET DIC("A")="Select Patient: "
SET DIC(0)="AEQMZ"
DO EN^PSOPATLK
SET Y=PSOPTLK
if "^"[Y
GOTO EX
if Y<0
GOTO 2
SET DFN=+Y
SET PSOLOUD=1
if $PIECE($GET(^PS(55,DFN,0)),"^",6)'=2
DO EN^PSOHLUP(DFN)
KILL PSOLOUD
+1 SET DA=DFN
SET PI=""
DO ^PSODEM
if PI="^"
GOTO 2
+2 IF '$PIECE($GET(PSOPAR),"^",22)
IF '$DATA(^XUSEC("PSO ADDRESS UPDATE",+$GET(DUZ)))
GOTO P55
+3 LOCK +^PS(55,DA):$SELECT(+$GET(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3)
IF '$TEST
DO MSG
DO EX
GOTO 2
+4 SET PSODFN=DA
DO UPDATE^PSOBAI
SET DA=PSODFN
+5 WRITE !
+6 LOCK +^DPT(DA):$SELECT(+$GET(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3)
IF '$TEST
DO MSG
DO EX
GOTO 2
+7 SET DIE="^DPT("
SET DR="[PSO OUTPT]"
DO ^DIE
LOCK -^DPT(DA)
P55 IF '$DATA(^PS(55,DFN))
KILL DIC
SET DIC="^PS(55,"
SET DIC(0)="LZ"
SET (X,DINUM)=DFN
KILL DD,DO
DO FILE^DICN
if $GET(DFN)&($PIECE($GET(^PS(55,DFN,0)),"^",6)'=2)
DO EN^PSOHLUP(DFN)
KILL DIC
+1 IF $GET(DFN)
IF $PIECE($GET(^PS(55,DFN,0)),"^")=""
SET $PIECE(^PS(55,DFN,0),"^")=DFN
KILL DIK
SET DA=DFN
SET DIK="^PS(55,"
SET DIK(1)=".01^B"
DO EN^DIK
KILL DIK
SET DA=DFN
+2 SET DIE="^PS(55,"
SET DR=".02;.03;.05;.04;1;D ELIG^PSORX1;3;40:41.1;106;106.1"
WRITE !!?5,">>PHARMACY PATIENT DATA<<",!
+3 DO ^DIE
DO EX
WRITE !!
GOTO 2
+4 QUIT
EX LOCK -^PS(55,+$GET(DA)),-^DPT(+$GET(DA))
+1 KILL DIC,X,Y,DIE,D0,DA,DFN,PI,DR,%,%Y,%X,C,DI,DIPGM,DQ,PSOFROM,PSOPTLK
+2 QUIT
MSG WRITE $CHAR(7),!,"Patient Data is Being Edited by Another User!",!
QUIT