PSGOU ;BIR/CML3,MV-PROFILE UTILITIES ;19 SEP 96 / 3:59 PM ;;5.0; INPATIENT MEDICATIONS ;**34,110**;16 DEC 97 ; ; Reference to ^PS(51.1 is supported by DBIA# 2177 ; Reference to ^PS(55 is supported by DBIA# 2191. ; ECHK ; D NOW^%DTC N PSGDT S PSGDT=% ;***Store PSGDT with seconds. S C="A",ON=O_"U" G:SD>PSGDT DS S ND=$G(^PS(55,PSGP,5,O,0)) G:$S($P(ND,"^",9)="":1,1:"DE"'[$P(ND,"^",9)) DS S ND4=$G(^(4)) I ST'="O",SD'PSGDT F PSGO3=0:0 S PSGO3=$O(^PS(55,PSGP,5,"AUS",PSGO2,PSGO3)) Q:'PSGO3 S PSGO4=$G(^PS(55,PSGP,5,PSGO3,0)) D .I PSGO4]"",$S($E($G(PSGALO),1,2)="10":"AHR"[$E($P(PSGO4,"^",9)),1:"AR"[$E($P(PSGO4,"^",9))) D ENUH K PSGO1,PSGO2,PSGO3,PSGO4,UD Q ; ENGORD ; get and sort orders D NOW^%DTC S PSGDT=%,X1=$P(%,"."),X2=-2 D C^%DTC S PSGODT=X_(PSGDT#1),HDT=$$ENDTC^PSGMI(PSGDT),UDU=$S($P(PSJSYSU,";",3)>1:3,1:1) K ^TMP("PSG",$J) W:'$D(PSGPR) !!,"...a few moments, please..." D ENUNM F ST="C","O","OC","P","R" F SD=+PSJPAD:0 S SD=$O(^PS(55,PSGP,5,"AU",ST,SD)) Q:'SD F O=0:0 S O=$O(^PS(55,PSGP,5,"AU",ST,SD,O)) Q:'O D ECHK Q:$D(PSGONNV) NEW DRUGNAME N PRNTON F SD="I","N" S (PRNTON,O)=0 F S O=$O(^PS(53.1,"AS",SD,PSGP,O)) Q:'O S ON=+O_"P",ND=$G(^PS(53.1,O,0)) I $P(ND,"^",4)="U" D . S ST=$P(ND,"^",7),P("PRNTON")=$P($G(^PS(53.1,O,.2)),"^",8) S:ST="" ST="z" . D DRGDISP^PSJLMUT1(PSGP,+O_"P",80,0,.DRUGNAME,1) S DRG=DRUGNAME(1) . S C=$S(P("PRNTON")]"":"BD",1:"BA") D SET Q:+PSJSYSU'=3 S SD="P",O=0 N PRNTON F S (PRNTON,O)=$O(^PS(53.1,"AS",SD,PSGP,O)) Q:'O S ON=+O_"P",ND=$G(^PS(53.1,O,0)) I $P(ND,"^",4)="U" D . S ST=$P(ND,"^",7),P("PRNTON")=$P($G(^PS(53.1,O,.2)),"^",8) S:ST="" ST="z" . D DRGDISP^PSJLMUT1(PSGP,+O_"P",80,0,.DRUGNAME,1) S DRG=DRUGNAME(1) . S C=$$CKPC^PSGOU(PSGP,$P(ND,U,25),O) . I C="CB",$P($G(^PS(53.1,O,.2)),U,4)="S" S C="CA" . I P("PRNTON")]"" S C="CD" . D SET Q ; MAE ; change status to expired ENUH ; S $P(^PS(55,PSGP,5,PSGO3,0),"^",9)="E",ORIFN=$P(PSGO4,"^",21) I ORIFN D EN1^PSJHL2(PSGP,"SC",PSGO3_"U") Q ; CKPC(DFN,OLDON,NEWON) ; Compare old provider comments to new for speed finish. N X,Y,Q,QQ,PSGOEEWF,PSJFLAG I $P($G(^PS(53.1,+NEWON,0)),U,24)'="R" Q "CB" S PSJFLAG=0,PSGOEEWF="^PS(55,"_DFN_","_$S(OLDON["V":"""IV""",1:5)_","_+OLDON_"," S (Q,QQ)=0 F S Q=$O(^PS(53.1,NEWON,12,Q)) Q:'Q S QQ=Q,X=$G(^(Q,0)),Y=$G(@(PSGOEEWF_"12,"_Q_",0)")) I X'=Y S PSJFLAG=1 Q I PSJFLAG!$O(@(PSGOEEWF_"12,"_QQ_")")) Q "CB" S (Q,QQ)=0 F S Q=$O(@(PSGOEEWF_"12,"_Q_")")) Q:'Q S QQ=Q,X=$G(^(Q,0)),Y=$G(^PS(53.1,NEWON,12,Q,0)) I X'=Y S PSJFLAG=1 Q I PSJFLAG!$O(^PS(53.1,+NEWON,12,QQ)) Q "CB" Q "CC" ; ENRNAT(OWD,NWD,SC,OAT) ; Determine admin times for renewal orders. ;OWD=ORIGINAL W, NWD=NEW WD LOCATION, SC=SCHEDULE, OAT=ORDER ADMIN TIMES N OWAT,SCP,X,Y S OOAT=OAT,SCP=+$O(^PS(51.1,"APPSJ",+SC,0)),WAT=$P($G(^PS(51.1,SCP,1,+$G(OWD),0)),U,2) F X="WAT","OAT" F Y=1:1 Q:$L(@X)>240!($P(@X,"-",Y)="") S $P(@X,"-",Y)=$P(@X,"-",Y)_$E("0000",1,4-$L($P(@X,"-",Y))) I OAT'=WAT Q OOAT S X=$P($G(^PS(51.1,+SCP,1,NWD,0)),U,2) I X Q X Q OOAT