| [613] | 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
 | 
|---|