| 1 | PSIVSPDC ;BIR/PR,MV-SPEED DC IV ORDERS ;02 Mar 99 / 9:27 AM
 | 
|---|
| 2 |  ;;5.0; INPATIENT MEDICATIONS ;**23,29,38,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 |  ;
 | 
|---|
| 7 | EN ;Loop thru to find IV ien to DC
 | 
|---|
| 8 |  I $S(+PSJSYSU=3:0,+PSJSYSU=1:0,1:1) D  Q
 | 
|---|
| 9 |  . W !,"You're not allowed to DC orders." D PAUSE^VALM1
 | 
|---|
| 10 |  NEW ON,ON55,PSIVX,SORT,NAT,PSIVAL,PSJORD,PSGODDD,DIR
 | 
|---|
| 11 |  S PSGLMT=$O(^TMP("PSIV",$J,"XB",0))-1
 | 
|---|
| 12 |  S:PSGLMT<1 PSGLMT=$G(^TMP("PSJPRO",$J,0))
 | 
|---|
| 13 |  Q:'+PSGLMT
 | 
|---|
| 14 |  S DIR("?")="Enter the order number(s) to be Discontinued"
 | 
|---|
| 15 |  S DIR(0)="L^1:"_PSGLMT,DIR("A")="DISCONTINUE which orders" D ^DIR
 | 
|---|
| 16 |  S PSGODDD=Y Q:$D(DIRUT)
 | 
|---|
| 17 |  ;prompt for nature of order and requesting provider
 | 
|---|
| 18 |  D NATURE^PSIVOREN I '$D(P("NAT"))!'$$REQPROV^PSGOEC W !,$C(7),"No order(s) was DC." H 2 Q
 | 
|---|
| 19 |  S NAT=P("NAT") D COMMENT
 | 
|---|
| 20 |  N COMFLG,PSJCOM S PSJCOM=0
 | 
|---|
| 21 |  S SORT="" F  S SORT=$O(^TMP("PSIV",$J,SORT)) Q:SORT=""  F PSIVX=0:0 S PSIVX=$O(^TMP("PSIV",$J,SORT,PSIVX)) Q:'PSIVX  I PSGODDD[PSIVX S ON=^(PSIVX),ON=(9999999999-ON)_$E(ON,11,11) D
 | 
|---|
| 22 |  . D CHKCOM I COMFLG D PRNT Q
 | 
|---|
| 23 |  . D:'PSJCOM SPDCIV
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 | SPDCIV ;Speed DC orders
 | 
|---|
| 26 |  S (PSJORD,ON55)=ON
 | 
|---|
| 27 |  I ON["V",$P($G(^PS(55,DFN,"IV",+ON55,.2)),U,4)="D" W !,"             *****        DONE ORDER        *****" D PRNT Q
 | 
|---|
| 28 |  I '$$LS^PSSLOCK(DFN,ON) D PRNT Q
 | 
|---|
| 29 |  I ON["V" D  Q
 | 
|---|
| 30 |  . S P(3)=$P($G(^PS(55,DFN,"IV",+ON55,0)),U,3)
 | 
|---|
| 31 |  . D NOW^%DTC Q:P(3)<%
 | 
|---|
| 32 |  . D D1^PSIVOPT2
 | 
|---|
| 33 |  . S PSIVALT=1,PSIVALCK="STOP",PSIVREA="D",ON=ON55 D LOG
 | 
|---|
| 34 |  . S:'$D(P("NAT")) P("NAT")=$G(PSJNOO) D HL^PSIVORA
 | 
|---|
| 35 |  . D UNL^PSSLOCK(DFN,ON)
 | 
|---|
| 36 |  .;;I $D(PSJNOO) S P("NAT")=PSJNOO D EN1^PSJHL2(DFN,"OC",PSJORD,"ORDER CANCELED")
 | 
|---|
| 37 |  N DA,DR,DIE,PSJND S DA=+PSJORD,PSJND=$G(^PS(53.1,DA,0)),P("OLDON")=$P(PSJND,U,25),DIE="^PS(53.1,",DR="28///"_$S($P(PSJND,U,27)="E":"DE",1:"D") D ^DIE
 | 
|---|
| 38 |  D HL^PSIVORA
 | 
|---|
| 39 |  D UNL^PSSLOCK(DFN,ON)
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 | COMMENT ;Ask for activity log comments.
 | 
|---|
| 42 |  I $G(PSIVALT)=1,'$G(PSJUNDC) K DA,DIR S DIR(0)="55.04,.04" D ^DIR K DA,DIR S PSIVAL=$S($D(DIRUT):"",1:Y)
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | LOG ;Record activity log comments.
 | 
|---|
| 45 |  S:$G(PSIVALT)=2 PSIVAL="Action taken using OE/RR options." D ENTACT^PSIVAL
 | 
|---|
| 46 |  K DA,DIE,DR S DA(2)=DFN,DA(1)=+ON55,DA=PSIVLN,DIE="^PS(55,"_DFN_",""IV"","_+ON55_",""A"",",DR=".02////"_PSIVREA_";.03////"_$P(^VA(200,DUZ,0),U)_";.04////^S X=$G(PSIVAL)"_";.06////"_DUZ D ^DIE
 | 
|---|
| 47 |  D STOP^PSIVORAL ;* Record the stop dates
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 | PRNT ; DISPLAY IV ORDER AND PRINT MESSAGE
 | 
|---|
| 50 |  N PSJLINE,PSJOC S PSJLINE=1
 | 
|---|
| 51 |  D DSPLORDV^PSJLMUT1(DFN,ON)
 | 
|---|
| 52 |  F X=0:0 S X=$O(PSJOC(ON,X)) Q:'X  D
 | 
|---|
| 53 |  .W !,$G(PSJOC(ON,X))
 | 
|---|
| 54 |  W !,"             ***** NO ACTION TAKEN ON ORDER *****",!
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | CHKCOM ;Check to see if order is part of complex order series.
 | 
|---|
| 57 |  N PSJSTAT
 | 
|---|
| 58 |  S PSJCOM=$P($G(^PS(55,PSGP,"IV",+ON,.2)),U,8),COMFLG=0,PSJSTAT=$P($G(^(0)),"^",17)
 | 
|---|
| 59 |  Q:'PSJCOM  I "DE"[PSJSTAT Q
 | 
|---|
| 60 |  N PSJLINE,PSJOC S PSJLINE=1
 | 
|---|
| 61 |  D DSPLORDV^PSJLMUT1(DFN,ON)
 | 
|---|
| 62 |  W ! F X=0:0 S X=$O(PSJOC(ON,X)) Q:'X  D
 | 
|---|
| 63 |  .W !,$G(PSJOC(ON,X))
 | 
|---|
| 64 |  W !,"is part of a complex order. If you discontinue this order the following orders",!,"will be discontinued too (unless the stop date has already been reached)." D CMPLX^PSJCOM1(DFN,PSJCOM,ON)
 | 
|---|
| 65 |  F  W !!,"Do you want to discontinue this series of complex orders" S %=1 D YN^DICN Q:%
 | 
|---|
| 66 |  I %'=1 S COMFLG=1 Q
 | 
|---|
| 67 |  N O,OO S O=0,OO="" F  S O=$O(^PS(55,"ACX",PSJCOM,O)) Q:'O  F  S OO=$O(^PS(55,"ACX",PSJCOM,O,OO)) Q:OO=""  D  Q:COMFLG
 | 
|---|
| 68 |  .Q:OO=ON  I '$$LS^PSSLOCK(DFN,OO) S COMFLG=1 Q
 | 
|---|
| 69 |  Q:COMFLG
 | 
|---|
| 70 |  N O,OO S O=0,OO="" F  S O=$O(^PS(55,"ACX",PSJCOM,O)) Q:'O  F  S OO=$O(^PS(55,"ACX",PSJCOM,O,OO)) Q:OO=""  D
 | 
|---|
| 71 |  .I (OO["U") N PSGORD S PSGORD=OO D AC^PSGOECS
 | 
|---|
| 72 |  .I (OO["V") N PSGORD S (ON,PSGORD)=OO D SPDCIV^PSIVSPDC
 | 
|---|
| 73 |  .D UNL^PSSLOCK(DFN,PSGORD)
 | 
|---|