1 | PSOORRD2 ;BHAM-ISC/EJW - Remote Data Interoperabilty Order Checks - backdoor ;06/26/05
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**207**;DEC 1997
|
---|
3 | ;
|
---|
4 | DUP ;Remote order - duplicate drug
|
---|
5 | N PSOD0,PSOD1,PSOREMX,RDIINST,FSIG,PSOULN,PSOLF,PSORDI
|
---|
6 | S $P(PSOULN,"-",79)="",PSOT="DD"
|
---|
7 | S PSORDI=0 F S PSORDI=$O(^TMP($J,"DD",PSORDI)) Q:'PSORDI S PSOD0=^TMP($J,"DD",PSORDI,0),PSOD1=^(1),PSOREMX=$P($P(PSOD0,"^",4),";"),RDIINST=$P(PSOD0,"^",5),PSOLF=$P(PSOD1,"^",3) D
|
---|
8 | .W !,PSOULN,!
|
---|
9 | .W "Duplicate Drug ",$P(PSOD1,"^")," in Remote Prescription",!
|
---|
10 | .W ">> ",RDIINST,!
|
---|
11 | .W $J("Rx #: ",20)_$E(PSOREMX,1,$L(PSOREMX)-1),!
|
---|
12 | .W $J("Status: ",20),$P(PSOD1,"^",2)
|
---|
13 | .W ?44,$J("Issued: ",20),$P(PSOD1,"^",9)
|
---|
14 | .D FSIG(.FSIG)
|
---|
15 | .W !,$J("SIG: ",20) F I=1:1 Q:'$D(FSIG(I)) W ?20,FSIG(I),!
|
---|
16 | .W $J("QTY: ",20),$P(PSOD1,"^",5),!
|
---|
17 | .W $J("Provider: ",20),$P(PSOD1,"^",8)
|
---|
18 | .W ?44,$J("Refills remaining: ",20),$P(PSOD1,"^",6)
|
---|
19 | .W !?44,$J("Last filled on: ",20),PSOLF
|
---|
20 | .W !?44,$J("Days Supply: ",20),$P(PSOD1,"^",4)
|
---|
21 | .D PAUSE
|
---|
22 | K PSOT
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | CLS ;Remote order - duplicate drug class
|
---|
26 | N PSOD0,PSOD1,PSOREMX,RDIINST,FSIG,PSOULN,PSOLF,PSORDI
|
---|
27 | S $P(PSOULN,"-",79)="",PSOT="DC"
|
---|
28 | S PSORDI=0 F S PSORDI=$O(^TMP($J,"DC",PSORDI)) Q:'PSORDI S PSOD0=^TMP($J,"DC",PSORDI,0),PSOD1=^(1),PSOREMX=$P($P(PSOD0,"^",6),";"),RDIINST=$P(PSOD0,"^",7),PSOLF=$P(PSOD1,"^",3) D
|
---|
29 | .W !,PSOULN,!
|
---|
30 | .W " *** SAME CLASS *** OF DRUG IN REMOTE RX FOR ",$P(PSOD1,"^"),!
|
---|
31 | .W ">> ",RDIINST,!
|
---|
32 | .W "CLASS: ",$P(PSOD0,"^"),!
|
---|
33 | .W $J("Rx #: ",20)_$E(PSOREMX,1,$L(PSOREMX)-1),!
|
---|
34 | .W $J("Status: ",20),$P(PSOD1,"^",2)
|
---|
35 | .W ?44,$J("Issued: ",20),$P(PSOD1,"^",9)
|
---|
36 | .D FSIG(.FSIG)
|
---|
37 | .W !,$J("SIG: ",20) F I=1:1 Q:'$D(FSIG(I)) W ?20,FSIG(I),!
|
---|
38 | .W $J("QTY: ",20),$P(PSOD1,"^",5),!
|
---|
39 | .W $J("Provider: ",20),$P(PSOD1,"^",8)
|
---|
40 | .W ?44,$J("Refills remaining: ",20),$P(PSOD1,"^",6)
|
---|
41 | .W !?44,$J("Last filled on: ",20),PSOLF
|
---|
42 | .W !?44,$J("Days Supply: ",20),$P(PSOD1,"^",4)
|
---|
43 | .D PAUSE
|
---|
44 | K PSOT
|
---|
45 | Q
|
---|
46 | FSIG(FSIG) ;Format sig from remote site
|
---|
47 | ;returned in the FSIG array
|
---|
48 | N FFF,NNN,CNT,FVAR,FVAR1,FLIM,HSIG,II,I
|
---|
49 | F I=0:1 Q:'$D(^TMP($J,PSOT,PSORDI,1,I)) S HSIG(I+1)=^(I)
|
---|
50 | FSTART S (FVAR,FVAR1)="",II=1
|
---|
51 | F FFF=0:0 S FFF=$O(HSIG(FFF)) Q:'FFF S CNT=0 F NNN=1:1:$L(HSIG(FFF)) I $E(HSIG(FFF),NNN)=" "!($L(HSIG(FFF))=NNN) S CNT=CNT+1 D I $L(FVAR)>52 S FSIG(II)=FLIM_" ",II=II+1,FVAR=FVAR1
|
---|
52 | .S FVAR1=$P(HSIG(FFF)," ",(CNT))
|
---|
53 | .S FLIM=FVAR
|
---|
54 | .S FVAR=$S(FVAR="":FVAR1,1:FVAR_" "_FVAR1)
|
---|
55 | I $G(FVAR)'="" S FSIG(II)=FVAR
|
---|
56 | I $G(FSIG(1))=""!($G(FSIG(1))=" ") S FSIG(1)=$G(FSIG(2)) K FSIG(2)
|
---|
57 | FQUIT Q
|
---|
58 | SIGNIF ;
|
---|
59 | S DIR(0)="SA^1:YES;0:NO",DIR("A")="Do you want to Intervene? ",DIR("B")="Y" W ! D ^DIR
|
---|
60 | I Y I '$D(PSORX("INTERVENE")) S PSORX("INTERVENE")=2
|
---|
61 | I '$G(Y) K DIR,DTOUT,DIRUT,DIROUT,DUOUT,Y Q
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | PAUSE ;
|
---|
65 | K DIR W ! S DIR(0)="EA",DIR("A")="Press Return to continue..." D ^DIR W ! K DIR
|
---|
66 | Q
|
---|
67 | DRGINT ;DRUG-DRUG INTERACTION WITH ORDER FROM REMOTE SITE
|
---|
68 | N PSOD0,PSOD1,PSOREMX,RDIINST,FSIG,PSOULN,PSOLF,PSOINT,PSORDI
|
---|
69 | S $P(PSOULN,"-",79)="",PSOT="DI"
|
---|
70 | S PSORDI=0 F S PSORDI=$O(^TMP($J,"DI",PSORDI)) Q:'PSORDI Q:$G(PSORX("DFLG")) S PSOD0=^TMP($J,"DI",PSORDI,0),PSOD1=^(1),PSOREMX=$P($P(PSOD0,"^",8),";"),RDIINST=$P(PSOD0,"^",9),PSOLF=$P(PSOD1,"^",3) D
|
---|
71 | .S PSOINT=$P(PSOD0,"^",4)
|
---|
72 | .W !,PSOULN,!
|
---|
73 | .W ">> ",RDIINST,!
|
---|
74 | .W ?5,"** ",PSOINT," ** DRUG-DRUG interaction ",$P(PSOD0,"^",5)," & ",$P(PSOD0,"^",6),!
|
---|
75 | .W ?5,"Remote RX # ",$E(PSOREMX,1,$L(PSOREMX)-1)," Drug: ",$P(PSOD1,"^"),!
|
---|
76 | .W $J("Status: ",20),$P(PSOD1,"^",2)
|
---|
77 | .W ?44,$J("Issued: ",20),$P(PSOD1,"^",9)
|
---|
78 | .D FSIG(.FSIG)
|
---|
79 | .W !,$J("SIG: ",20) F I=1:1 Q:'$D(FSIG(I)) W ?20,FSIG(I),!
|
---|
80 | .W $J("QTY: ",20),$P(PSOD1,"^",5),!
|
---|
81 | .W $J("Provider: ",20),$P(PSOD1,"^",8)
|
---|
82 | .W !?44,$J("Refills remaining: ",20),$P(PSOD1,"^",6)
|
---|
83 | .W !?44,$J("Last filled on: ",20),PSOLF
|
---|
84 | .W !?44,$J("Days Supply: ",20),$P(PSOD1,"^",4)
|
---|
85 | .I '$D(^XUSEC("PSORPH",DUZ)) Q ; CLERK/TECH ENTRY
|
---|
86 | .I PSOINT'="CRITICAL" D SIGNIF
|
---|
87 | .I PSOINT="CRITICAL" D CRI
|
---|
88 | K PSOT,PSORDI
|
---|
89 | Q
|
---|
90 | ;
|
---|
91 | CRI ;process new drug interactions entered by pharmacist
|
---|
92 | K DIR S DIR("A",1)="",DIR("A",2)="Do you want to Process medication",DIR("A")=PSODRUG("NAME")_": ",DIR(0)="SA^1:PROCESS;0:ABORT ORDER ENTRY",DIR("B")="P"
|
---|
93 | S DIR("?",1)="Enter '1' or 'P' to Activate medication",DIR("?")=" '0' or 'A' to Abort Order Entry process" D ^DIR K X1,DIR I 'Y S PSORX("DFLG")=1,DGI="" K DTOUT,DIRUT,DIROUT,DUOUT,PSORX("INTERVENE") Q
|
---|
94 | D SIG^XUSESIG I X1="" K PSORX("INTERVENE") S PSORX("DFLG")=1 Q
|
---|
95 | S PSORX("INTERVENE")=1
|
---|
96 | K DUOUT,DTOUT,DIRUT,DIROUT
|
---|
97 | Q
|
---|