| 1 | PSIV ;BIR/PR,MLM-MISC UTILITIES ;19 Mar 99 / 9:45 AM
 | 
|---|
| 2 |  ;;5.0; INPATIENT MEDICATIONS ;**7,16,29,38,53,56,72,58,110**;16 DEC 97
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Reference to ^PS(55 is supported by DBIA 2191
 | 
|---|
| 5 |  ; Reference to ^PSSLOCK is supported by DBIA 2789
 | 
|---|
| 6 |  ; Reference to ^%DTC is supported by DBIA 10000
 | 
|---|
| 7 |  ; Reference to ^DIC is supported by DBIA 10006
 | 
|---|
| 8 |  ; Reference to ^DIE is supported by DBIA 10018
 | 
|---|
| 9 |  ; Reference to ^DIR is supported by DBIA 10026
 | 
|---|
| 10 |  ; Reference to ^VALM is supported by DBIA 10118
 | 
|---|
| 11 |  ; Reference to ^VALM1 is supported by DBIA 10116
 | 
|---|
| 12 |  ; Reference to ^PS(51.1 is supported by DBIA 2177
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | ENGETP ;Enter here to select patient.
 | 
|---|
| 15 |  K DIC S DIC("W")="W ""  "",$P(^(0),""^"",9) W:$D(^(.1)) ""  "",^(.1)",DIC="^DPT(",DIC(0)="QEM"
 | 
|---|
| 16 |  D FULL^VALM1
 | 
|---|
| 17 | GETP1 ;
 | 
|---|
| 18 |  S PSGPTMP=0,PPAGE=1,DFN=-1,X="Select PATIENT:^^^^1" D ENQ Q:"^"[X
 | 
|---|
| 19 |  D EN^PSJDPT
 | 
|---|
| 20 |  I Y<0 G ENGETP
 | 
|---|
| 21 |  N PSGP,PSJACNWP S (PSGP,DFN)=+Y D ENBOTH^PSJAC S PSJORL=$$ENORL^PSJUTL($G(VAIN(4)))
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | ENYN ;Enter here for yes/no responses. This is a general reader that I have
 | 
|---|
| 25 |  ;been phasing out with ^DICN
 | 
|---|
| 26 |  S X=X_"^Y:YES;N:NO^YES,NO"
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | ENQ ;Enter here to read X. This is the general reader that I have
 | 
|---|
| 29 |  ;been slowly phasing out
 | 
|---|
| 30 |  S QUD=$P(X,"^",2) W !!,$P(X,"^")," " W:QUD]"" QUD,"// " R QUX:DTIME W:'$T $C(7) S:'$T QUX="^" S:QUX="" QUX=QUD I QUX["^"!(QUX["?") G KILL
 | 
|---|
| 31 |  I $L(QUX)>500 W "    ??" G ENQ
 | 
|---|
| 32 |  S:QUX?1L QUX=$C($A(QUX)-32)
 | 
|---|
| 33 |  S QUD=";"_$P(X,"^",3)_";" G:QUD'[(";"_QUX_":") VAR S QUX1=$E(QUD,$F(QUD,QUX_":"),($F(QUD,";",$F(QUD,QUX_":"))-2)) G:QUX1[":" VAR W "    ",QUX1 G KILL
 | 
|---|
| 34 | VAR F QUX1=1:1 S QUD=$P($P(X,"^",4),",",QUX1) Q:QUD=""  I $P(QUD,QUX)="" W $S($P(X,"^",2)=QUX:"    "_QUX,1:"")_$P(QUD,QUX,2,99) S QUX=QUD G KILL
 | 
|---|
| 35 | PAT I $P(X,"^",5)]"",@$P(X,"^",5,999) G KILL
 | 
|---|
| 36 |  W $C(7)," ???" G ENQ
 | 
|---|
| 37 | KILL S X=QUX K QUX,QUX1,QUD Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | ENADM ;Edit administration schedules.
 | 
|---|
| 40 |  S DIC="^PS(51.1,",DIC(0)="QEAML",DLAYGO=51.1 D ^DIC K:+Y<0 %,DA,D0,DIC,DIE,DLAYGO,DR,Z,Y Q:'$D(Y)  S DIE=DIC,DR=".01;1",DA=+Y K DIC D ^DIE G ENADM
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | ENOW D NOW^%DTC S Y=% K %,%H,%I
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | ENC ;Get unit of measure for drug seleted.
 | 
|---|
| 46 |  S X=$P($P(";"_$P(Y,U,3),";"_X_":",2),";")
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 | ENCHS ;Needs PSIVBR (Branch point)
 | 
|---|
| 50 |  D ENGETP G:DFN<0 Q
 | 
|---|
| 51 |  ;* Lock patient if calling FROM PSJI DELETE ORDER.
 | 
|---|
| 52 |  ;* I PSIVBR="D ENT^PSIVPGE" S X=DFN_";DPT(" D LK^ORX2 Q:'Y
 | 
|---|
| 53 |  I PSIVBR="D ENT^PSIVPGE",('$$L^PSSLOCK(DFN,1)) Q
 | 
|---|
| 54 | OE N CONT S CONT=0
 | 
|---|
| 55 |  F  Q:CONT  D ENCHS1
 | 
|---|
| 56 |  Q:$D(ORVP)
 | 
|---|
| 57 |  G ENCHS
 | 
|---|
| 58 | ENCHS1 ;
 | 
|---|
| 59 |  S PSJORQF=0,CONT=0
 | 
|---|
| 60 |  S PSJPROT=2,PSJOL="",(PSGOP,PSGP)=DFN
 | 
|---|
| 61 |  K PSJLMPRO D EN^VALM("PSJ LM BRIEF PATIENT INFO")
 | 
|---|
| 62 |  S VALMCNT=30
 | 
|---|
| 63 |  I PSIVBR="D PROCESS^PSIVRD",(PSJOL="N") D ORDNO^PSIVRD Q
 | 
|---|
| 64 |  I $G(PSJNEWOE) S PSJOL="S"
 | 
|---|
| 65 |  I PSJOL="S"!(PSJOL="L") F  Q:CONT  S P("PT")=PSJOL D
 | 
|---|
| 66 |  . S PSJORQF=0,PSJNEWOE=0
 | 
|---|
| 67 |  . D ENNB^PSIVACT
 | 
|---|
| 68 |  . I '$D(^TMP("PSIV",$J)) D FULL^VALM1 W !!,?30,"NO ORDERS FOUND",! K DIR S DIR(0)="E" D ^DIR W @IOF S CONT=0
 | 
|---|
| 69 |  . NEW PSJIVPRF S PSJIVPRF=1
 | 
|---|
| 70 |  . S PSJOL=$S(",S,L,"[(","_$G(PSJOL)_","):PSJOL,1:"S")
 | 
|---|
| 71 |  . D EN^VALM("PSJ LM IV OE")
 | 
|---|
| 72 |  . I $G(VALMBCK)="Q" Q
 | 
|---|
| 73 |  . S CONT=1
 | 
|---|
| 74 |  ;* Unlock patient if come from PSJI DELETE ORDER
 | 
|---|
| 75 |  ;* I PSIVBR="D ENT^PSIVPGE" S X=DFN_";DPT(" D ULK^ORX2
 | 
|---|
| 76 |  I '$G(PSJORQF) S CONT=1
 | 
|---|
| 77 |  I PSIVBR="D ENT^PSIVPGE" D UL^PSSLOCK(DFN)
 | 
|---|
| 78 |  K PSJLMPRO
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 | SELSO ;SELECT ORDER USING "SO" OPTION
 | 
|---|
| 81 |  S PSGLMT=^TMP("PSJPRO",$J,0) D ENASR^PSGON,OV
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 | SELNUM ;SELECT ORDERS WITH NUMBERS
 | 
|---|
| 84 |  S PSGLMT=^TMP("PSJPRO",$J,0),X=$P(XQORNOD(0),"=",2) D ENCHK^PSGON,OV
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 | OV ;
 | 
|---|
| 87 |  I '$D(PSGODDD) S VALMBCK="R" Q
 | 
|---|
| 88 |  N DONE
 | 
|---|
| 89 |  F PSIVOV1=1:1:PSGODDD F PSIVOV2=1:1:$L(PSGODDD(PSIVOV1),",")-1 D
 | 
|---|
| 90 |  .;;S ON=+$P(PSGODDD(PSIVOV1),",",PSIVOV2),ON=$S($D(^TMP("PSIV",$J,"AB",ON)):^(ON),$D(^TMP("PSIV",$J,"PB",ON)):^(ON),$D(^TMP("PSIV",$J,"XB",ON)):^(ON),1:"") Q:'ON!$G(DONE)  D OV1
 | 
|---|
| 91 |  .S ON=+$P(PSGODDD(PSIVOV1),",",PSIVOV2)
 | 
|---|
| 92 |  .S ON=$S($D(^TMP("PSIV",$J,"AB",ON)):^(ON),$D(^TMP("PSIV",$J,"NB",ON)):^(ON),$D(^TMP("PSIV",$J,"PB",ON)):^(ON),$D(^TMP("PSIV",$J,"XB",ON)):^(ON),$D(^TMP("PSIV",$J,"NDB",ON)):^(ON),$D(^TMP("PSIV",$J,"PDB",ON)):^(ON),1:"")
 | 
|---|
| 93 |  .Q:'ON!$G(DONE)
 | 
|---|
| 94 |  .D OV1
 | 
|---|
| 95 |  S VALMBCK="Q"
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 | OV1 ;
 | 
|---|
| 98 |  S (ON,ON55,P("PON"))=9999999999-ON_$S(ON["V":"V",1:"P")
 | 
|---|
| 99 |  I PSIVBR["D ^PSIVVW1" D
 | 
|---|
| 100 |  . S VALMSG="Select either ""AL"" , ""LL"" or ""AL,LL"" for both"
 | 
|---|
| 101 |  . S PSJORD=ON D EN^PSJLIPRF
 | 
|---|
| 102 |  E  D
 | 
|---|
| 103 |  . I PSIVBR="D ^PSIVOPT",'($$LS^PSSLOCK(PSGP,ON)) Q
 | 
|---|
| 104 |  . X PSIVBR
 | 
|---|
| 105 |  . D:PSIVBR="D ^PSIVOPT" UNL^PSSLOCK(PSGP,ON)
 | 
|---|
| 106 |  ;K:'$D(DUOUT) DONE
 | 
|---|
| 107 |  K:'$D(DUOUT)&($G(Y)'=-1) DONE
 | 
|---|
| 108 |  Q
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | ENU ;Get IV additive strength. Called from templates.
 | 
|---|
| 112 |  N Y S Y=+^PS(55,DA(2),"IV",DA(1),"AD",DA,0),PSIVSTR=$$ENU^PSIVUTL(Y)
 | 
|---|
| 113 |  Q
 | 
|---|
| 114 | Q ;
 | 
|---|
| 115 |  K ^TMP("PSIV",$J),^TMP("PSJ",$J),^TMP("PSJPRO",$J),^TMP("PSJALL",$J),^TMP("PSJI",$J),^TMP("PSJON",$J)
 | 
|---|
| 116 |  K DRG,DRGI,DRGN,DRGT,ERR,I,JJ,MI,N,N2,ON,ON55,P,P1,P3,P16,P17,PNOW,PS,PSGODD,PSGODDD,PSIV,PSIVAAT,PSIVACT,PSIVADM,PSIVAT
 | 
|---|
| 117 |  K PSIVC,PSIVDT,PSIVFLAG,PSIVLN,PSIVNOW,PSIVNU,PSIVON,PSIVOV1,PSIVOV2,PSIVREA,PSIVSTR,PSIVSTRT,PSIVNOL,PSIVTYPE,PSJNKF
 | 
|---|
| 118 |  K PSJORF,PSJORIFN,RDWARD,START,STOP,SCHED,USER,V,XT
 | 
|---|
| 119 |  K %,%I,DIC,PSIVC,PSIVNU,PSIVON,PSIVREA,PSIVOV1,PSIVOV2,RDWARD,V,VAERR,VW,X,X2,Y,Y1,Z,Z1,Z2
 | 
|---|
| 120 |  ;D KVAR^VADPT ;ENKV^PSGSETU
 | 
|---|
| 121 |  Q
 | 
|---|