[613] | 1 | PSGDL ;BIR/CML3-CALCULATE STOP DATE/TIME WITH DOSE LIMIT ;27 Aug 98 / 8:47 AM
|
---|
| 2 | ;;5.0; INPATIENT MEDICATIONS ;**16,50,64,58,111,170**;16 DEC 97
|
---|
| 3 | ;
|
---|
| 4 | ; Reference to ^PS(55 is supported by DBIA #2191.
|
---|
| 5 | ;
|
---|
| 6 | EN ;
|
---|
| 7 | K PSGDLS S ND2=^PS(53.1,DA,2) I $P(ND2,"^",5)!$P(ND2,"^",6) W " ...Dose Limit... " G ENGO
|
---|
| 8 | G DONE
|
---|
| 9 | ;
|
---|
| 10 | ENE ;
|
---|
| 11 | S ND2=PSGSCH_"^"_PSGSD_"^^^"_PSGAT_"^"_PSGS0XT G ENGO
|
---|
| 12 | ;
|
---|
| 13 | EN1 ;
|
---|
| 14 | S ND2=$P(PSGNEDFD,"^",4)_"^"_PSGNESD_"^^^"_PSGS0Y_"^"_PSGS0XT G ENGO
|
---|
| 15 | ;
|
---|
| 16 | EN2 ;
|
---|
| 17 | K PSGDLS S ND2=^PS(55,DA(1),5,DA,2) I '$P(ND2,"^",5),'$P(ND2,"^",6) G DONE
|
---|
| 18 | W " ...Dose Limit... "
|
---|
| 19 | ;
|
---|
| 20 | ENGO ;
|
---|
| 21 | S SCH=$P(ND2,"^")
|
---|
| 22 | S ST=$S($D(PSGDLS):PSGDLS,1:$P(ND2,"^",2))
|
---|
| 23 | S TS=$P(ND2,"^",5),MN=$P(ND2,"^",6)
|
---|
| 24 | I $P(PSJSYSW0,U,5)=2 D
|
---|
| 25 | . Q:'TS S:TS'[$P(ST,".",2) $P(PSJSYSW0,U,5)=1 D
|
---|
| 26 | .. S X=$G(PSGSD),%DT="T" D ^%DT I Y'=-1 N PSGSD S PSGSD=Y
|
---|
| 27 | .. S X=$G(PSGFD),%DT="T" D ^%DT I Y'=-1 N PSGFD S PSGFD=Y
|
---|
| 28 | .. I '$G(PSGSD) N PSGSD S PSGSD=$$DATE^PSJUTL2
|
---|
| 29 | .. I '$G(PSGFD) N PSGFD S PSGFD=$$FMADD^XLFDT(PSGSD,30)
|
---|
| 30 | .. N STRING,ND2,SCH,TS,MN S STRING=$G(PSGSD)_"^"_$G(PSGFD)_"^"_$G(PSGSCH)_"^"_$G(PSGST)_"^"_$G(PSGPDRG)_"^"_$G(PSGAT)
|
---|
| 31 | .. I $G(PSGP) S ST=$$ENQ^PSJORP2(PSGP,STRING) S:'ST ST=$S($D(PSGDLS):PSGDLS,1:$P(ND2,"^",2))
|
---|
| 32 | . S $P(PSJSYSW0,U,5)=2
|
---|
| 33 | G MWF:SCH["@",DONE:'TS&'MN
|
---|
| 34 | I 'TS S AM=MN*PSGDL,X=$$EN^PSGCT(ST,AM) G DONE
|
---|
| 35 | S TM=$E(ST_"00000",9,8+$L($P(TS,"-")))
|
---|
| 36 | F Q=1:1 Q:$P(TS,"-",Q)=""!(TM<$P(TS,"-",Q))
|
---|
| 37 | S X=ST\1,C=0 F Q=Q:1 D:$P(TS,"-",Q)="" ADD S C=C+1 I C=PSGDL S X=X_"."_$P(TS,"-",Q) G DONE
|
---|
| 38 | ;
|
---|
| 39 | MWF ; if schedule is similar to monday-wednesday-friday
|
---|
| 40 | S TS=$P(SCH,"@",2),SCH=$P(SCH,"@"),X=$P(ST,"."),C=0 D SCHK G:C=PSGDL DONE F Q=1:1 S X1=$P(ST,"."),X2=Q D C^%DTC S X1=X D DW^%DTC D CHK G:C=PSGDL DONE
|
---|
| 41 | SCHK S X1=X D DW^%DTC F Q=1:1:$L(SCH,"-") S WKD=$P(SCH,"-",Q) I WKD=$E(X,1,$L(WKD)) Q
|
---|
| 42 | E Q
|
---|
| 43 | S TM=$E(ST_"00000",9,8+$L($P(TS,"-"))) F Q=1:1:$L(TS,"-") I TM<$P(TS,"-",Q) S C=C+1 I C=PSGDL S X=X1_"."_$P(TS,"-",Q) Q
|
---|
| 44 | Q
|
---|
| 45 | CHK F QQ=1:1:$L(SCH,"-") S WKD=$P(SCH,"-",QQ) I WKD=$E(X,1,$L(WKD)) D TS Q
|
---|
| 46 | Q
|
---|
| 47 | TS F Q1=1:1:$L(TS,"-") S C=C+1 I C=PSGDL S X=X1_"."_$P(TS,"-",Q1) Q
|
---|
| 48 | Q
|
---|
| 49 | ;
|
---|
| 50 | DONE ;
|
---|
| 51 | K %H,%T,%Y,MN,ND2,ND4,PSGDLS,PSGDL,Q1,QQ,SCH,TM,WKD,TS,X1,X2 Q
|
---|
| 52 | ;
|
---|
| 53 | ADD ;
|
---|
| 54 | S X1=$P(X,"."),X2=$S(MN&'(MN#1440):MN\1440,1:1) D C^%DTC S Q=1 Q
|
---|
| 55 | ;
|
---|
| 56 | ENPREV ; when "P" is enter at start date
|
---|
| 57 | W "REVIOUS" S (X,Y)=0 I '$D(PSGP)!'$D(PSGPDRG) G:$D(DA)[0 POUT S PSGP=$P($G(^PS(53.1,DA,0)),"^",15),PSGPDRG=+$G(^(.2)),Y=1 I 'PSGP!'PSGPDRG W:'PSGPDRG !?17,"Must have drug from formulary list." G POUT
|
---|
| 58 | F Q=0:0 S Q=$O(^PS(53.1,"AC",PSGP,Q)) Q:'Q I +$G(^PS(53.1,Q,.2))=PSGPDRG,$D(^PS(53.1,Q,2)),$P(^(2),"^",4)>X S X=$P(^(2),"^",4)
|
---|
| 59 | F Q=0:0 S Q=$O(^PS(55,PSGP,5,"C",PSGPDRG,Q)) Q:'Q I $D(^PS(55,PSGP,5,Q,2)),$P(^(2),"^",4)>X S X=$P(^(2),"^",4)
|
---|
| 60 | W:'X !?17,"No other order found with this drug."
|
---|
| 61 | ;
|
---|
| 62 | POUT ;
|
---|
| 63 | K:'X X K:Y PSGPDRG,PSGP,Q Q
|
---|
| 64 | ENDL(SCH,DL) ;validate that dose limit should be allowed with this schedule
|
---|
| 65 | ;and that the dose limit is a whole number
|
---|
| 66 | I $G(SCH)="" Q 1
|
---|
| 67 | I ",ON CALL,ON-CALL,ONCALL,"[(","_SCH_",")!($$ONE^PSJBCMA(DFN,"",SCH)="O") W " Dose limit invalid with this schedule" Q 0
|
---|
| 68 | I DL'?1N.N W " Dose limit must be a whole number" Q 0
|
---|
| 69 | Q 1
|
---|