| 1 | PSOHELP1 ;BIR/SAB-OUTPATIENT HELP TEXT/UTILITY ROUTINE 2 ;11/09/92
 | 
|---|
| 2 |  ;;7.0;OUTPATIENT PHARMACY;**23,36,88,146,227,222**;DEC 1997;Build 12
 | 
|---|
| 3 |  ;External reference ^DIC(19.2 supported by DBIA 1472
 | 
|---|
| 4 |  ;External reference ^PSDRUG( supported by DBIA 221
 | 
|---|
| 5 |  ;External reference ^PS(55 supported by DBIA 2228
 | 
|---|
| 6 | 2001 N PSOHLP S PSOHLP(1,"F")="!!"
 | 
|---|
| 7 |  S PSOHLP(1)="Enter the lowest prescription number for this site."
 | 
|---|
| 8 |  S PSOHLP(2,"F")="!"
 | 
|---|
| 9 |  S PSOHLP(2)="If this is the first time you are entering this field,"
 | 
|---|
| 10 |  S PSOHLP(3,"F")="!"
 | 
|---|
| 11 |  S PSOHLP(3)="you should pick a number LARGER than the last prescription number used."
 | 
|---|
| 12 |  S PSOHLP(4,"F")="!!"
 | 
|---|
| 13 |  D WRITE
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | 2002 N PSOHLP S PSOHLP(1,"F")="!!"
 | 
|---|
| 17 |  S PSOHLP(1)="Enter the largest acceptable prescription number for this site."
 | 
|---|
| 18 |  S PSOHLP(2,"F")="!"
 | 
|---|
| 19 |  S PSOHLP(2)="The difference between this number and the lowest prescription"
 | 
|---|
| 20 |  S PSOHLP(3,"F")="!"
 | 
|---|
| 21 |  S PSOHLP(3)="number should be substantial. The system will not allow numbers"
 | 
|---|
| 22 |  S PSOHLP(4,"F")="!"
 | 
|---|
| 23 |  S PSOHLP(4)="larger than the one you choose. It will give a warning message"
 | 
|---|
| 24 |  S PSOHLP(5,"F")="!"
 | 
|---|
| 25 |  S PSOHLP(5)="and not allow entry of any more prescriptions."
 | 
|---|
| 26 |  S PSOHLP(6,"F")="!!"
 | 
|---|
| 27 |  D WRITE
 | 
|---|
| 28 |  Q
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | 2003 N PSOHLP S PSOHLP(1,"F")="!!"
 | 
|---|
| 31 |  S PSOHLP(1)="Enter the last prescription number used."
 | 
|---|
| 32 |  S PSOHLP(2,"F")="!"
 | 
|---|
| 33 |  S PSOHLP(2)="If you are entering this for the first time, this number"
 | 
|---|
| 34 |  S PSOHLP(3,"F")="!"
 | 
|---|
| 35 |  S PSOHLP(3)="should be the same as the number you entered for LOW RX#."
 | 
|---|
| 36 |  S PSOHLP(4,"F")="!"
 | 
|---|
| 37 |  S PSOHLP(4)="The system will take this number, increment it by one"
 | 
|---|
| 38 |  S PSOHLP(5,"F")="!"
 | 
|---|
| 39 |  S PSOHLP(5)="until it finds a number that has not been used, and then"
 | 
|---|
| 40 |  S PSOHLP(6,"F")="!"
 | 
|---|
| 41 |  S PSOHLP(6)="use that number for the next prescription."
 | 
|---|
| 42 |  S PSOHLP(7,"F")="!!"
 | 
|---|
| 43 |  D WRITE
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 | WRITE ;EN^DDIOL call
 | 
|---|
| 46 |  D EN^DDIOL(.PSOHLP) K PSOHLP
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 | AUTOQ ;entry point to queue all background jobs
 | 
|---|
| 49 |  D:0 RESET1^PSOTPHL1  ;placed out of order by PSO*7*227
 | 
|---|
| 50 |  D AUTO^PSOAUTOC ;ques auto cancel job
 | 
|---|
| 51 |  D SETUP^PSOAUTOC ;ques nightly cost compile
 | 
|---|
| 52 |  D SETUP1^PSOAUTOC ;ques nightly mgmt compile
 | 
|---|
| 53 |  D QUP,CLO ;ques amis compile
 | 
|---|
| 54 |  D SETUP^PSOHLEXP ;ques exipration status update
 | 
|---|
| 55 |  D AUTO^PSOSUDEL ;ques job to deleted rxs printed from 52.5
 | 
|---|
| 56 | CLO K Y,C,D,D0,DI,DQ,DA,DIE,DR,DIC,Y,X,PSOTM,PSOOPTN,%DT,PSOPTN
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | QUP K %DT,DIC,DTOUT S DIC(0)="XZM",DIC="^DIC(19.2,",X="PSO AMIS COMPILE" D ^DIC
 | 
|---|
| 59 |  I +Y>0 D EDIT^XUTMOPT("PSO AMIS COMPILE") G CLO
 | 
|---|
| 60 |  D RESCH^XUTMOPT("PSO AMIS COMPILE","","","24H","L"),EDIT^XUTMOPT("PSO AMIS COMPILE")
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | EXP ;reset "P","A" xref in 55 from cancel option
 | 
|---|
| 63 |  Q:$G(REA)="C"
 | 
|---|
| 64 |  S PCD=+$P($G(^PSRX(DA,3)),"^",5) I 'PCD D  K EXP,PCD,IFN Q
 | 
|---|
| 65 |  .S (IFN,EXP)=0
 | 
|---|
| 66 |  .F  S EXP=$O(^PS(55,PSODFN,"P","A",EXP)) Q:'EXP  F  S IFN=$O(^PS(55,PSODFN,"P","A",EXP,IFN)) Q:'IFN  I IFN=DA K ^PS(55,PSODFN,"P","A",EXP,DA) S ^PS(55,PSODFN,"P","A",$P(^PSRX(DA,2),"^",6),DA)=""
 | 
|---|
| 67 |  K ^PS(55,PSODFN,"P","A",PCD,DA) S ^PS(55,PSODFN,"P","A",$P(^PSRX(DA,2),"^",6),DA)="",$P(^PSRX(DA,3),"^",5)=""
 | 
|---|
| 68 |  K PCD Q
 | 
|---|
| 69 | SREF ;set "P","A" xref in 55 from fileman
 | 
|---|
| 70 |  I $P($G(^PSRX(X,"STA")),"^")=12,'$P($G(^PSRX(X,3)),"^",5) D  Q
 | 
|---|
| 71 |  .F PX=0:0 S PA=$O(^PSRX(X,"A",PX)) Q:'PX  S:$P(^PSRX(X,"A",PX,0),"^",2)="C" PCD=$P($P(^PSRX(X,"A",PX,0),"^"),".")
 | 
|---|
| 72 |  .I $G(PCD) S ^PS(55,DA(1),"P","A",PCD,X)="",$P(^PSRX(X,3),"^",5)=PCD
 | 
|---|
| 73 |  .E  S:$P($G(^PSRX(X,2)),"^",6) ^PS(55,DA(1),"P","A",$P(^PSRX(X,2),"^",6),X)=""
 | 
|---|
| 74 |  .K PCD,PX
 | 
|---|
| 75 |  I $P($G(^PSRX(X,"STA")),"^")=12,$P($G(^PSRX(X,3)),"^",5) S ^PS(55,DA(1),"P","A",$P(^PSRX(X,3),"^",5),X)="" Q
 | 
|---|
| 76 |  S:$P($G(^PSRX(X,2)),"^",6) ^PS(55,DA(1),"P","A",$P(^PSRX(X,2),"^",6),X)=""
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 | KREF ;kill "P","A" xref in 55 from fileman
 | 
|---|
| 79 |  K:+$P($G(^PSRX(X,2)),"^",6) ^PS(55,DA(1),"P","A",+$P(^PSRX(X,2),"^",6),X)
 | 
|---|
| 80 |  I $P($G(^PSRX(X,"STA")),"^")=12,'$P($G(^PSRX(X,3)),"^",5) D  K PCD,PX Q
 | 
|---|
| 81 |  .F PX=0:0 S A=$O(^PSRX(X,"A",PX)) Q:'PX  S:$P(^PSRX(X,"A",PX,0),"^",2)="C" PCD=$P($P(^PSRX(X,"A",PX,0),"^"),".")
 | 
|---|
| 82 |  .I $G(PCD) K ^PS(55,DA(1),"P","A",PCD,X)
 | 
|---|
| 83 |  I $P($G(^PSRX(X,"STA")),"^")=12,$P($G(^PSRX(X,3)),"^",5) K ^PS(55,DA(1),"P","A",$P(^PSRX(X,3),"^",5),X)
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 | DAYS K PSMAX I $P($G(^PSDRUG(+$P(^PSRX(DA,0),"^",6),0)),"^",4),$P(^PSRX(DA,0),"^",7)/X>$P($G(^PSDRUG(+$P(^PSRX(DA,0),"^",6),0)),"^",4) D EN^DDIOL("Max Daily Dose of "_$P($G(^(0)),"^",4)_" Exceeded","","$C(7),!?5") D EN^DDIOL(" ","","!")
 | 
|---|
| 86 |  S PSDAYS=$P(^PSRX(DA,0),"^",8),PSRF=+$P(^(0),"^",9),PTST=$G(^PS(53,$P(^(0),"^",3),0)),PTDY=$P(PTST,"^",3),PTRF=$P(PTST,"^",4),PSODEA=$P(^PSDRUG($P(^PSRX(DA,0),"^",6),0),"^",3),CS=0
 | 
|---|
| 87 |  D NARC I $G(CLOZPAT)=1,'PSRF,X>14 K X D EN^DDIOL("     14 Day Supply Max for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 88 |  I $G(CLOZPAT)=0,'PSRF,X>7 K X D EN^DDIOL("     7 Day Supply Max for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 89 |  I $G(CLOZPAT)=1,X'=7,PSRF K X D EN^DDIOL("     Day Supply Must Equal 7 with 1 refill for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 90 |  I $G(CLOZPAT)=1,'PSRF,X>14 K X D EN^DDIOL("     14 Day Supply Max for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 91 |  I $G(CLOZPAT)=2,'PSRF,X>28 K X D EN^DDIOL("     28 Day Supply Max for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 92 |  I $G(CLOZPAT)=2,PSRF=1,X>14 K X D EN^DDIOL("     Day Supply Must Equal 14 with 1 refill for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 93 |  I $G(CLOZPAT)=2,PSRF=3,X>7 K X D EN^DDIOL("     Day Supply Must Equal 7 with 3 refill for Clozapine Prescriptions.","","$C(7),!!") Q
 | 
|---|
| 94 |  I PSRF>MAX S DS=X D
 | 
|---|
| 95 |  .D FULL^VALM1,EN^DDIOL(PSRF_" refills are not correct for a "_DS_" day supply.","","$C(7),!!") D EN^DDIOL("Please enter correct # of refills for a "_DS_" day supply. Max refills allowed is "_MAX_".","","!") D EN^DDIOL(" ","","!")
 | 
|---|
| 96 |  .K DIR S DIR(0)="E",DIR("A")="Press Return to Continue" D ^DIR K DIR,X,Y,DIRUT S VALMBCK="R"
 | 
|---|
| 97 |  K PSTMAX,DS D EDSTAT^PSOUTLA
 | 
|---|
| 98 |  K MAX,DAYS,PSDAYS,PSODEA,PSOX,PSOX1,PSDY,PSDY1,DEA,CS,PTST,PSRF,PTRF,PTDY
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 | DAYS1 K PSRMAX S PSRF=$P(^PSRX(DA(1),0),"^",9),PTST=$G(^PS(53,$P(^(0),"^",3),0)),PTDY=$P(PTST,"^",3),PTRF=$P(PTST,"^",4)
 | 
|---|
| 101 |  S PSDAYS=$P(^PSRX(DA(1),1,DA,0),"^",10),PSODEA=$P(^PSDRUG($P(^PSRX(DA(1),0),"^",6),0),"^",3),CS=0
 | 
|---|
| 102 |  D NARC I PSRF>MAX S DS=X D
 | 
|---|
| 103 |  .D EN^DDIOL(PSRF_" refills are not correct for a "_DS_" day supply.","","$C(7),!!") D EN^DDIOL("Please enter correct # of refills for a "_DS_" day supply. Max refills allowed is "_MAX_".","","!") D EN^DDIOL(" ","","!")
 | 
|---|
| 104 |  .K DIR S DIR(0)="E",DIR("A")="Press Return to Continue" D ^DIR K DIR,X,Y,DIRUT S VALMBCK="R"
 | 
|---|
| 105 |  K PSTMAX,DS ;D EDSTAT^PSOUTLA
 | 
|---|
| 106 |  K MAX,DAYS,PSDAYS,PSODEA,PSOX,PSOX1,PSDY,PSDY1,DEA,CS,PTST,PSRF,PTDY,PTRF
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 | NARC F DEA=1:1 Q:$E(PSODEA,DEA)=""  I $E(+PSODEA,DEA)>1,$E(+PSODEA,DEA)<6 S CS=1
 | 
|---|
| 109 |  I $D(CLOZPAT) S MAX=$S(CLOZPAT=2&($P(^PSRX(DA,0),"^",8)=14):1,CLOZPAT=2&($P(^PSRX(DA,0),"^",8)=7):3,CLOZPAT=1&($P(^PSRX(DA,0),"^",8)=7):1,1:0),MIN=0 Q
 | 
|---|
| 110 |  I CS D
 | 
|---|
| 111 |  .S PSOX1=$S(PTRF>5:5,1:PTRF),PSOX=$S(PSOX1=5:5,1:PSOX1)
 | 
|---|
| 112 |  .S PSOX=$S('PSOX:0,X=90:1,1:PSOX),PSDY1=$S(X<60:5,X'<60&(X'>89):2,X=90:1,1:0) S MAX=$S(PSOX'>PSDY1:PSOX,1:PSDY1)
 | 
|---|
| 113 |  E  D
 | 
|---|
| 114 |  .S PSOX1=PTRF,PSOX=$S(PSOX1=11:11,1:PSOX1),PSOX=$S('PSOX:0,X=90:3,1:PSOX)
 | 
|---|
| 115 |  .S PSDY1=$S(X<60:11,X'<60&(X'>89):5,X=90:3,1:0) S MAX=$S(PSOX'>PSDY1:PSOX,1:PSDY1)
 | 
|---|
| 116 |  Q
 | 
|---|