| 1 | PSIVOD ;BIR/JCH-CREATE NEW IV ORDER FROM OLD ONE ;25 Nov 98 / 3:34 PM
 | 
|---|
| 2 |  ;;5.0; INPATIENT MEDICATIONS ;**110,127**;16 DEC 97
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Reference to ^PS(55 is supported by DBIA 2191.
 | 
|---|
| 5 |  ; Reference to ^ORX2 is supported by DBIA 867.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | COPY(DFN,OLDON) ;Ask to enter new order.
 | 
|---|
| 8 |  N PSIVOORD,OLDP,PSIVCOPY,PSGCOPY M OLDP=P
 | 
|---|
| 9 |  Q:'$$HIDDEN^PSJLMUTL("COPY")  D ^PSJHVARS
 | 
|---|
| 10 |  I $P($G(^PS(55,PSGP,"IV",+PSGORD,.2)),U,4)="D",'$P($G(^(4)),"^",3) D  G Q
 | 
|---|
| 11 |  .W !!,"Nurse verified orders with a priority of DONE may not be Copied." D PAUSE^VALM1 Q
 | 
|---|
| 12 |  S PSGOEAV=$P(PSJSYSP0,U,9)&PSJSYSU S PSIVOORD=PSJORD
 | 
|---|
| 13 |  D FULL^VALM1
 | 
|---|
| 14 |  F  W !!,"Do you want to copy this order" S %=2 D YN^DICN Q:%  D CH
 | 
|---|
| 15 |  G:%'=1 Q
 | 
|---|
| 16 |  S P("RES")="N",PSIVAC="PN",P("PON")=ON55,PSIVUP=+$$GTPCI^PSIVUTL,PSJORD=ON55,PSGORD=PSJORD
 | 
|---|
| 17 |  N OLDACT,PSIVCHG S OLDACT=PSGACT S PSGACT=PSGACT_"E",P(17)="N",(P("LOG"),P("LF"))="",P(21)="" K P("NAT")
 | 
|---|
| 18 |  S:'$G(PSGDT) PSGDT=$$DATE^PSJUTL2() S P("LOG")=PSGDT,P("PRNTON")=""
 | 
|---|
| 19 |  D ENT^PSIVCAL,ENSTOP^PSIVCAL S ND4="^^^^" F I=5,6,8,9 S $P(ND2,"^",I)=""
 | 
|---|
| 20 |  S P(17)=$S($G(PSGOEAV):"A",1:"N") S P("CLRK")=DUZ_"^"_$P($G(^VA(200,+DUZ,0)),"^")
 | 
|---|
| 21 |  S PSIVCHG=0,PSJNEWOE=0,PSIVCOPY=1,VALMBCK="Q" K PSIVACEP
 | 
|---|
| 22 |  N PSGORD,ON,ON55,PSJORD D NEW55^PSIVORFB S (PSJORD,ON)=ON55,PSIVCOPY=2
 | 
|---|
| 23 |  D EN^VALM("PSJ LM IV AC/EDIT")
 | 
|---|
| 24 |  I $G(P("NAT"))=""&($G(PSJORNAT)="") D  G Q
 | 
|---|
| 25 |  .D FULL^VALM1 W !!,"Order not copied" D PAUSE^VALM1
 | 
|---|
| 26 |  W !!,"...copying..."
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  I '$G(PSGOEAV) D INMED
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  D FULL^VALM1 W !!?5,"You are finished with the new order.",!,"The following ACTION prompt is for the original order." D PAUSE^VALM1
 | 
|---|
| 31 | Q ; Kill and exit.
 | 
|---|
| 32 |  L:'$D(PSJOE) -^PS(53.45,DUZ) S PSJNKF=1 D Q^PSIV
 | 
|---|
| 33 |  K FIL,I1,ND,PC,PDM,PSGDT,PSGID,PSGLMT,PSGSI,PSJNARC,PSIVAC,PSIVCHG,PSIVUP,PSIVX,PSJOPC
 | 
|---|
| 34 |  S VALMBCK="R"
 | 
|---|
| 35 |  I '$G(PSGDT) S PSGDT=$$DATE^PSJUTL2
 | 
|---|
| 36 |  S PSGACT=$$ENACTION^PSGOE1(PSGP,PSIVOORD) ; resets PSGACT after copy
 | 
|---|
| 37 |  D RESTORE^PSJHVARS
 | 
|---|
| 38 |  K P M P=OLDP
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | INMED ;
 | 
|---|
| 42 |  K PSJACEPT S VALMBCK="Q",PSIVCOPY=2,PSIVCHG=0 ;D ACEDIT^PSJLIACT
 | 
|---|
| 43 |  N ON55TMP,P21TMP S ON55TMP=ON55,P21TMP=$G(P(21)) S P(21)="" I $G(ON55)["P",($G(PSJORD)["V") S ON55=PSJORD
 | 
|---|
| 44 |  D DEL55^PSIVORE2 I $G(ON55TMP)]"" S ON55=ON55TMP,P(21)=P21TMP
 | 
|---|
| 45 |  ;S (PSJORNAT,P("NAT"))="W"
 | 
|---|
| 46 |  ;D OK^PSIVORE
 | 
|---|
| 47 |  D EN^VALM("PSJ LM IV INPT ACTIVE")
 | 
|---|
| 48 |  L -^PS(55,DFN,"IV",+ON55) D ULK
 | 
|---|
| 49 |  I $G(P("NAT"))="" D  G Q
 | 
|---|
| 50 |  .D FULL^VALM1 W !!,"Order not copied" D PAUSE^VALM1
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | ULK ;
 | 
|---|
| 53 |  Q:'$G(PSJLSORX)  ;If NEW^PSIVORE did not lock, don't kill it here.
 | 
|---|
| 54 |  NEW X S X=DFN_";DPT(" D ULK^ORX2 K PSJLSORX
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | HK ;Queue job to print MAR labels generated for this patient.
 | 
|---|
| 57 |  I PSGOP,PSGOP'=DFN D
 | 
|---|
| 58 |  .N PSJACPF,PSJACNWP,PSJPWD,PSJSYSL,PSJSYSW,PSJSYSW0,DFN,VAIN,VAERR S DFN=PSGOP
 | 
|---|
| 59 |  .D INP^VADPT S PSJPWD=+VAIN(4) I PSJPWD S PSJACPF=10 S PSJACPF=10 D WP^PSJAC D:$P(PSJSYSL,U,2)]"" ENQL^PSGLW
 | 
|---|
| 60 |  S PSGOP=DFN
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | SPSOL S SPSOL=0 F XXX=0:0 S XXX=$O(^PS(55,DFN,"IV",+ON55,"SOL",XXX)) Q:'XXX  S SPSOL=SPSOL+$P(^(XXX,0),U,2)
 | 
|---|
| 64 |  K XXX Q
 | 
|---|
| 65 | CH ;
 | 
|---|
| 66 |  W !!?2,"Answer 'YES' to have a new, non-verified order created for this patient,"
 | 
|---|
| 67 |  W !,"using the information from this order.  (The START and STOP dates will be",!,"recalculated.)  Enter 'NO' (or '^') to stop now."
 | 
|---|
| 68 |  Q
 | 
|---|