1 | PSAWARD ;BIR/LTL,JMB-Set Up/Edit a Pharmacy Location ;7/23/97
|
---|
2 | ;;3.0; DRUG ACCOUNTABILITY/INVENTORY INTERFACE;; 10/24/97
|
---|
3 | ;This routine links wards to the pharmacy location.
|
---|
4 | ;
|
---|
5 | N DIC,DIE,D0,D1,DLAYGO,DR,DIR,DIRUT,DTOUT,DUOUT,DA,PSAW,PSADR,X,Y,PSAOUT
|
---|
6 | W @IOF,!?5,"For the purpose of collecting Unit Dose and IV dispensing data,",!,"any ward at which such dispensing might ever occur should be added."
|
---|
7 | W !,"The ONLY reason to NOT add a ward would be if the dispensing at that ward",!,"should NOT update ",$G(PSALOCN),"."
|
---|
8 | W !!,"There is NO harm in adding inactive wards."
|
---|
9 | I '$D(^PSD(58.8,+PSALOC,3,0)) S ^(0)="^58.842P^^"
|
---|
10 | ALL I $G(PSA(2))=1 S PSA(3)=0,DIC="^PSD(58.8,+PSALOC,3,",DA(1)=PSALOC,DIC(0)="LNX" W !!,PSALOCN," is linked to " F S (DA,DINUM,X,PSA(3))=$O(^DIC(42,PSA(3))) Q:'PSA(3) K DD,DO D:'$G(^PSD(58.8,+PSALOC,3,+PSA(3),0)) FILE^DICN D
|
---|
11 | .W $P($G(^DIC(42,+PSA(3),0)),U) W:$O(^DIC(42,PSA(3))) ", "
|
---|
12 | .I '$O(^DIC(42,PSA(3))) W ".",!
|
---|
13 | .W:$X+10>IOM !!
|
---|
14 | K DINUM
|
---|
15 | G:$G(PSA(2))=1 QUIT
|
---|
16 | MUL I $O(^PSD(58.8,+PSALOC,3,0)) D G:$G(PSAOUT) QUIT
|
---|
17 | .S PSA(3)=0
|
---|
18 | .W !!,"The following wards are currently connected to ",PSALOCN,":",!!
|
---|
19 | .F S PSA(3)=$O(^PSD(58.8,+PSALOC,3,+PSA(3))) Q:'PSA(3) W:$X+10>IOM !! W $P($G(^DIC(42,+PSA(3),0)),U),$S($O(^PSD(58.8,+PSALOC,3,+PSA(3))):", ",1:".")
|
---|
20 | .S DIR(0)="Y",DIR("A")="Do you wish to change this",DIR("B")="No",DIR("?")="Any dispensing to these wards by the UD or IV modules will update this location"
|
---|
21 | .W ! D ^DIR K DIR I Y'=1 S PSAOUT=1 Q
|
---|
22 | .S DIR(0)="SBOA^A:ADD;D:DELETE",DIR("A")="Do you wish to ADD or DELETE WARDS? (A/D): "
|
---|
23 | .S DIR("?",1)="Enter 'A' to ADD a Ward, 'D' to DELETE a Ward"
|
---|
24 | .S DIR("?")="or '^' to quit" D ^DIR K DIR S PSAOUT(1)=Y I $D(DIRUT) S PSAOUT=1 Q
|
---|
25 | .I Y="D" S DIC="^PSD(58.8,+PSALOC,3,",DIC(0)="AEMQ",DA(1)=PSALOC,DIC("A")="Select "_$G(PSALOCN)_" WARD: " F D ^DIC Q:Y<0!(Y="") S PSAW=+Y,PSAW(1)=$P($G(^DIC(42,+PSAW,0)),U) D I $D(DIRUT) S PSAOUT=1 Q
|
---|
26 | ..S DIR(0)="Y",DIR("A")="OK to delete "_$G(PSAW(1))
|
---|
27 | ..S DIR("B")="No",DIR("?")="If yes, I'll remove it from "_$G(PSALOCN)
|
---|
28 | ..D ^DIR I Y'=1 S PSAOUT=1 Q
|
---|
29 | ..S DIK=DIC,DA(1)=PSALOC,DA=PSAW D ^DIK W !,$G(PSAW(1))," deleted."
|
---|
30 | .K DIC,DIK,DA,PSAW S:PSAOUT(1)'="A" PSAOUT=1
|
---|
31 | S DIR(0)="SBOA^A:ALL;R:RANGE",DIR("A")="Do you wish to add ALL wards or select a RANGE of wards? (A/R): "
|
---|
32 | S DIR("?",1)="Enter 'A' to add ALL wards, 'R' to select a range"
|
---|
33 | S DIR("?")="or '^' to quit" D ^DIR K DIR I $D(DIRUT) S PSAOUT=1 Q
|
---|
34 | I Y="A" S PSA(2)=1 G ALL
|
---|
35 | S PSAW=0,(PSA,PSA(3))=1,PSA(2)=20
|
---|
36 | LOOP F PSA=PSA:1:PSA(2) S PSAW=$O(^DIC(42,PSAW)) Q:'PSAW S PSA=PSA-1 I '$O(^PSD(58.8,"AB",+PSAW,0)) S PSA=PSA+1 W !,PSA,?10,$P($G(^DIC(42,PSAW,0)),U) S PSADR(PSA)=PSAW W:$D(^DIC(42,+PSAW,"I")) ?40,"***INACTIVE***"
|
---|
37 | I PSA=1 W !!,"Sorry, you've already added all the wards that you can." G QUIT
|
---|
38 | S:$O(PSADR(PSA)) PSA=$O(PSADR(PSA))
|
---|
39 | I $G(PSAW) F PSAW(1)=PSAW:0 S PSAW(1)=$O(^DIC(42,PSAW(1))) Q:'PSAW(1)!($G(PSAW(2))>19) I '$O(^PSD(58.8,"AB",+PSAW(1),0)) S PSAW(2)=$G(PSAW(2))+1
|
---|
40 | I $G(PSA)'>$G(PSA(3)) G QUIT
|
---|
41 | S PSA(2)=$G(PSA(2))+$G(PSAW(2))
|
---|
42 | S DIR("?")="You can only select wards that are not yet linked to a location"
|
---|
43 | S DIR(0)="LA^"_PSA(3)_":"_$S($O(PSADR((PSA-1))):PSA,1:PSA-1),DIR("A",1)="Select the ward(s) or range of wards from which you want "_PSALOCN,DIR("A")="to collect dispensing data: " D ^DIR K DIR G:$D(DIRUT) QUIT S PSAC=Y
|
---|
44 | S DIC="^PSD(58.8,"_+PSALOC_",3,",DIC(0)="LNX",DA(1)=PSALOC
|
---|
45 | F PSAB=1:1:PSA I $P($G(PSAC),",",PSAB) K DD,DO S (DA,DINUM,X)=$G(PSADR($P(PSAC,",",PSAB))) D FILE^DICN W "." K DINUM,PSA(1) Q:$G(PSAOUT)
|
---|
46 | K PSAB I $G(PSAW(2)) W @IOF S (PSA,PSA(3))=$G(PSA)+1 G LOOP
|
---|
47 | K DIC,PSA,PSADR G MUL
|
---|
48 | QUIT I '$D(DIRUT) W ! S DIE="^PS(59.7,",DA=$O(^PS(59.7,0)),DR="72Inpatient Dispensing Update?" D ^DIE K DIE,DA S:$D(Y) PSAOUT=1
|
---|
49 | Q
|
---|