PSOLMUTL ;BIR/SAB - listman utilities ;29-May-2012 14:54;PLS
;;7.0;OUTPATIENT PHARMACY;**19,46,84,99,131,132,1005,1006,1013,148,268,225,305,1015**;DEC 1997;Build 62
;External reference FULL^VALM1 supported by dbia 10116
;External reference $$SETSTR^VALM1 supported by dbia 10116
;External reference EN2^GMRAPEMO supported by dbia 190
;External reference to ^ORD(101 supported by DBIA 872
;External reference to RE^VALM4 supported by dbia 10120
;
; Modified - IHS/CIA/PLS - 12/10/03 - Line HDR+3
; IHS/MSC/PLS - 10/11/07 - Line HDR+12 and HDR+14
; 09/16/2011 - Line HDR+8
EN W @IOF S VALMCNT=0
D:'$D(PSOPAR) ^PSOLSET I '$D(PSOPAR) W $C(7),!!?5,"Site parameter must be defined!",! G INITQ
D EN^PSOLMPI
INITQ Q
HDR ;patient med profile display
K VALMHDR S HDR=^TMP("PSOHDR",$J,1,0)
S:^TMP("PSOHDR",$J,8,0) X=IORVON_"<A>"_IORVOFF,HDR=$$SETSTR^VALM1(X,HDR,80-$L(X),80) S VALMHDR(1)=HDR
I '(^TMP("PSOHDR",$J,8,0)) S PSONOAL="" D ALLERGY^PSOORUT2 I PSONOAL'="" D K PSONOAL
.S X=IORVON_"<NO ALLERGY ASSESSMENT>"_IORVOFF,HDR=$$SETSTR^VALM1(X,HDR,80-$L(X),80) S VALMHDR(1)=HDR
; IHS/CIA/PLS - 12/10/03 added call to retrieve HRN, HT and WT from PCC Vitals
;S HDR=" PID: "_^TMP("PSOHDR",$J,2,0)
;S VALMHDR(2)=$$SETSTR^VALM1("Ht(cm): "_^TMP("PSOHDR",$J,7,0),HDR,52,27)
;S HDR=" DOB: "_^TMP("PSOHDR",$J,3,0)_" ("_^TMP("PSOHDR",$J,4,0)_")"
;S VALMHDR(3)=$$SETSTR^VALM1(" Wt(kg): "_^TMP("PSOHDR",$J,6,0),HDR,51,28)
;IHS/MSC/PLS - 09/16/2011 - Added mask to SSN
;S HDR=" PID: "_^TMP("PSOHDR",$J,2,0)_" (HRN: "_$G(VA("PID"))_")"
S HDR=" PID: "_$$FMTSSN^APSPFUNC(^TMP("PSOHDR",$J,2,0))_" (HRN: "_$G(VA("PID"))_")"
S VALMHDR(2)=$$SETSTR^VALM1("Ht(cm): "_^TMP("PSOHDR",$J,7,0),HDR,52,27)
S HDR=" DOB: "_^TMP("PSOHDR",$J,3,0)_" ("_^TMP("PSOHDR",$J,4,0)_")"
S VALMHDR(3)=$$SETSTR^VALM1(" Wt(kg): "_^TMP("PSOHDR",$J,6,0),HDR,51,28)
S HDR=" SEX: "_$E(^TMP("PSOHDR",$J,5,0),1,45) ;IHS/MSC/PLS - 10/11/07 - CHANGED 44 TO 45
S VALMHDR(4)=HDR
S $P(VALMHDR(5)," ",26)=" "_$E(^TMP("PSOHDR",$J,5,0),48,80) ;IHS/MSC/PLS - 10/11/07 - CHANGED 30 TO 26
Q:$G(PS)="VIEW"!($G(PS)="DELETE")
;S $P(VALMHDR(5)," ",30)=$E(^TMP("PSOHDR",$J,5,0),48,80)
S VALMHDR(6)=^TMP("PSOHDR",$J,9,0)
S VALMHDR(7)=^TMP("PSOHDR",$J,10,0)
Q
;
NEWALL(DFN) ; Enter Allergy info.
N PSOID D FULL^VALM1,EN2^GMRAPEM0,^PSOORUT2 S VALMBCK="R"
Q
NEWSEL ;allows order selection by number instead of action
S Y=$P(XQORNOD(0),"=",2) N VALMCNT D NEWSEL^PSOORNE2
Q
EDTSEL ;allows edit selection by number instead of action - active orders
N VALMCNT S Y=$P(XQORNOD(0),"=",2) D EDTSEL^PSOOREDT
Q
SELAL ;selection of allergy by number instead of action - select allergy
N VALMCNT S Y=$P(XQORNOD(0),"=",2) D SELAL^PSOORDA
Q
EDTNEW ;allows edit selection by number instead of action - new orders
N VALMCNT S Y=$P(XQORNOD(0),"=",2) D EDTSEL^PSOORNE1
Q
EDTRNEW ;allows edit selection by number instead of action - renew orders
N VALMCNT S Y=$P(XQORNOD(0),"=",2) D EDTSEL^PSOORNE4
Q
EDTPEN ;allows edit selection by number instead of action - pending orders
N VALMCNT S Y=$P(XQORNOD(0),"=",2),SEDT=1 G EDTSEL^PSOORNEW
Q
HLDHDR ;keeps patient's header info
S IOTM=VALM("TM"),IOBM=IOSL W IOSC W @IOSTBM W IORC
Q
;
BYPASS S:$G(PSOFDR) SIGOK=1 S Y=-1,VALMBCK="Q"
Q
ACTIONS() ;screen actions on active orders
Q:$G(PKI1)=2 0
N DIC,X,Y K DIC,Y S DIC="^ORD(101,"_DA(1)_",10,",X=DA,DIC(0)="ZN" D ^DIC Q:Y<0 0
S Y=Y(0,0)
I Y="PSO REFILL" Q $S(PSOACT["R":1,1:0)
I Y="PSO RENEW" Q $S(PSOACT["N":1,1:0)
I Y="PSO REPRINT" Q $S(PSOACT["P":1,1:0)
I Y="PSO EDIT ORDERS" Q $S(PSOACT["E":1,1:0)
I Y="PSO RELEASE" Q $S(PSOACT["L":1,1:0)
I Y="PSO PARTIAL" Q $S(PSOACT["T":1,1:0)
I Y="PSO CANCEL" Q $S(PSOACT["D":1,1:0)
I Y="PSO HOLD" Q $S(PSOACT["H":1,1:0)
I Y="PSO UNHOLD" Q $S(PSOACT["U":1,1:0)
I Y="PSO LM BACKDOOR COPY" Q $S(PSOACT["C":1,1:0)
I Y="PSO VERIFY" Q $S(PSOACT["V":1,1:0)
I Y="PSO ACTIVITY LOGS" Q 1
Q 1
ACTIONS1() ;screen actions on pending orders
Q:$G(PKI1)=2 0
N DIC,X,Y K DIC,Y S DIC="^ORD(101,"_DA(1)_",10,",X=DA,DIC(0)="ZN" D ^DIC Q:Y<0 0
S Y=Y(0,0)
I Y="PSO LM DISCONTINUE" Q $S(PSOACT["D":1,1:0)
I Y="PSO LM EDIT" Q $S(PSOACT["E":1,1:0)
I Y="PSO LM FINISH" Q $S(PSOACT["F":1,1:0)
I Y="PSO LM FLAG" Q $S(PSOACT["X":1,1:0)
Q 1
PKIACT() ;screen actions on pending orders DEA/PKI proj.
Q:$G(PKI1)=2 0
Q 1
RFDSP ;screen action to toggle display of prescriptions between LAST FILL date and LAST RELEASE Date.
S PSORFG='$G(PSORFG)
I '$D(PSOSD) D ^PSOBUILD
D ^PSOORUT2,BLD^PSOORUT1
K VALMHDR
D RE^VALM4
Q
PSOLMUTL ;BIR/SAB - listman utilities ;29-May-2012 14:54;PLS
+1 ;;7.0;OUTPATIENT PHARMACY;**19,46,84,99,131,132,1005,1006,1013,148,268,225,305,1015**;DEC 1997;Build 62
+2 ;External reference FULL^VALM1 supported by dbia 10116
+3 ;External reference $$SETSTR^VALM1 supported by dbia 10116
+4 ;External reference EN2^GMRAPEMO supported by dbia 190
+5 ;External reference to ^ORD(101 supported by DBIA 872
+6 ;External reference to RE^VALM4 supported by dbia 10120
+7 ;
+8 ; Modified - IHS/CIA/PLS - 12/10/03 - Line HDR+3
+9 ; IHS/MSC/PLS - 10/11/07 - Line HDR+12 and HDR+14
+10 ; 09/16/2011 - Line HDR+8
EN WRITE @IOF
SET VALMCNT=0
+1 IF '$DATA(PSOPAR)
DO ^PSOLSET
IF '$DATA(PSOPAR)
WRITE $CHAR(7),!!?5,"Site parameter must be defined!",!
GOTO INITQ
+2 DO EN^PSOLMPI
INITQ QUIT
HDR ;patient med profile display
+1 KILL VALMHDR
SET HDR=^TMP("PSOHDR",$JOB,1,0)
+2 IF ^TMP("PSOHDR",$JOB,8,0)
SET X=IORVON_"<A>"_IORVOFF
SET HDR=$$SETSTR^VALM1(X,HDR,80-$LENGTH(X),80)
SET VALMHDR(1)=HDR
+3 IF '(^TMP("PSOHDR",$JOB,8,0))
SET PSONOAL=""
DO ALLERGY^PSOORUT2
IF PSONOAL'=""
Begin DoDot:1
+4 SET X=IORVON_"<NO ALLERGY ASSESSMENT>"_IORVOFF
SET HDR=$$SETSTR^VALM1(X,HDR,80-$LENGTH(X),80)
SET VALMHDR(1)=HDR
End DoDot:1
KILL PSONOAL
+5 ; IHS/CIA/PLS - 12/10/03 added call to retrieve HRN, HT and WT from PCC Vitals
+6 ;S HDR=" PID: "_^TMP("PSOHDR",$J,2,0)
+7 ;S VALMHDR(2)=$$SETSTR^VALM1("Ht(cm): "_^TMP("PSOHDR",$J,7,0),HDR,52,27)
+8 ;S HDR=" DOB: "_^TMP("PSOHDR",$J,3,0)_" ("_^TMP("PSOHDR",$J,4,0)_")"
+9 ;S VALMHDR(3)=$$SETSTR^VALM1(" Wt(kg): "_^TMP("PSOHDR",$J,6,0),HDR,51,28)
+10 ;IHS/MSC/PLS - 09/16/2011 - Added mask to SSN
+11 ;S HDR=" PID: "_^TMP("PSOHDR",$J,2,0)_" (HRN: "_$G(VA("PID"))_")"
+12 SET HDR=" PID: "_$$FMTSSN^APSPFUNC(^TMP("PSOHDR",$JOB,2,0))_" (HRN: "_$GET(VA("PID"))_")"
+13 SET VALMHDR(2)=$$SETSTR^VALM1("Ht(cm): "_^TMP("PSOHDR",$JOB,7,0),HDR,52,27)
+14 SET HDR=" DOB: "_^TMP("PSOHDR",$JOB,3,0)_" ("_^TMP("PSOHDR",$JOB,4,0)_")"
+15 SET VALMHDR(3)=$$SETSTR^VALM1(" Wt(kg): "_^TMP("PSOHDR",$JOB,6,0),HDR,51,28)
+16 ;IHS/MSC/PLS - 10/11/07 - CHANGED 44 TO 45
SET HDR=" SEX: "_$EXTRACT(^TMP("PSOHDR",$JOB,5,0),1,45)
+17 SET VALMHDR(4)=HDR
+18 ;IHS/MSC/PLS - 10/11/07 - CHANGED 30 TO 26
SET $PIECE(VALMHDR(5)," ",26)=" "_$EXTRACT(^TMP("PSOHDR",$JOB,5,0),48,80)
+19 IF $GET(PS)="VIEW"!($GET(PS)="DELETE")
QUIT
+20 ;S $P(VALMHDR(5)," ",30)=$E(^TMP("PSOHDR",$J,5,0),48,80)
+21 SET VALMHDR(6)=^TMP("PSOHDR",$JOB,9,0)
+22 SET VALMHDR(7)=^TMP("PSOHDR",$JOB,10,0)
+23 QUIT
+24 ;
NEWALL(DFN) ; Enter Allergy info.
+1 NEW PSOID
DO FULL^VALM1
DO EN2^GMRAPEM0
DO ^PSOORUT2
SET VALMBCK="R"
+2 QUIT
NEWSEL ;allows order selection by number instead of action
+1 SET Y=$PIECE(XQORNOD(0),"=",2)
NEW VALMCNT
DO NEWSEL^PSOORNE2
+2 QUIT
EDTSEL ;allows edit selection by number instead of action - active orders
+1 NEW VALMCNT
SET Y=$PIECE(XQORNOD(0),"=",2)
DO EDTSEL^PSOOREDT
+2 QUIT
SELAL ;selection of allergy by number instead of action - select allergy
+1 NEW VALMCNT
SET Y=$PIECE(XQORNOD(0),"=",2)
DO SELAL^PSOORDA
+2 QUIT
EDTNEW ;allows edit selection by number instead of action - new orders
+1 NEW VALMCNT
SET Y=$PIECE(XQORNOD(0),"=",2)
DO EDTSEL^PSOORNE1
+2 QUIT
EDTRNEW ;allows edit selection by number instead of action - renew orders
+1 NEW VALMCNT
SET Y=$PIECE(XQORNOD(0),"=",2)
DO EDTSEL^PSOORNE4
+2 QUIT
EDTPEN ;allows edit selection by number instead of action - pending orders
+1 NEW VALMCNT
SET Y=$PIECE(XQORNOD(0),"=",2)
SET SEDT=1
GOTO EDTSEL^PSOORNEW
+2 QUIT
HLDHDR ;keeps patient's header info
+1 SET IOTM=VALM("TM")
SET IOBM=IOSL
WRITE IOSC
WRITE @IOSTBM
WRITE IORC
+2 QUIT
+3 ;
BYPASS IF $GET(PSOFDR)
SET SIGOK=1
SET Y=-1
SET VALMBCK="Q"
+1 QUIT
ACTIONS() ;screen actions on active orders
+1 IF $GET(PKI1)=2
QUIT 0
+2 NEW DIC,X,Y
KILL DIC,Y
SET DIC="^ORD(101,"_DA(1)_",10,"
SET X=DA
SET DIC(0)="ZN"
DO ^DIC
IF Y<0
QUIT 0
+3 SET Y=Y(0,0)
+4 IF Y="PSO REFILL"
QUIT $SELECT(PSOACT["R":1,1:0)
+5 IF Y="PSO RENEW"
QUIT $SELECT(PSOACT["N":1,1:0)
+6 IF Y="PSO REPRINT"
QUIT $SELECT(PSOACT["P":1,1:0)
+7 IF Y="PSO EDIT ORDERS"
QUIT $SELECT(PSOACT["E":1,1:0)
+8 IF Y="PSO RELEASE"
QUIT $SELECT(PSOACT["L":1,1:0)
+9 IF Y="PSO PARTIAL"
QUIT $SELECT(PSOACT["T":1,1:0)
+10 IF Y="PSO CANCEL"
QUIT $SELECT(PSOACT["D":1,1:0)
+11 IF Y="PSO HOLD"
QUIT $SELECT(PSOACT["H":1,1:0)
+12 IF Y="PSO UNHOLD"
QUIT $SELECT(PSOACT["U":1,1:0)
+13 IF Y="PSO LM BACKDOOR COPY"
QUIT $SELECT(PSOACT["C":1,1:0)
+14 IF Y="PSO VERIFY"
QUIT $SELECT(PSOACT["V":1,1:0)
+15 IF Y="PSO ACTIVITY LOGS"
QUIT 1
+16 QUIT 1
ACTIONS1() ;screen actions on pending orders
+1 IF $GET(PKI1)=2
QUIT 0
+2 NEW DIC,X,Y
KILL DIC,Y
SET DIC="^ORD(101,"_DA(1)_",10,"
SET X=DA
SET DIC(0)="ZN"
DO ^DIC
IF Y<0
QUIT 0
+3 SET Y=Y(0,0)
+4 IF Y="PSO LM DISCONTINUE"
QUIT $SELECT(PSOACT["D":1,1:0)
+5 IF Y="PSO LM EDIT"
QUIT $SELECT(PSOACT["E":1,1:0)
+6 IF Y="PSO LM FINISH"
QUIT $SELECT(PSOACT["F":1,1:0)
+7 IF Y="PSO LM FLAG"
QUIT $SELECT(PSOACT["X":1,1:0)
+8 QUIT 1
PKIACT() ;screen actions on pending orders DEA/PKI proj.
+1 IF $GET(PKI1)=2
QUIT 0
+2 QUIT 1
RFDSP ;screen action to toggle display of prescriptions between LAST FILL date and LAST RELEASE Date.
+1 SET PSORFG='$GET(PSORFG)
+2 IF '$DATA(PSOSD)
DO ^PSOBUILD
+3 DO ^PSOORUT2
DO BLD^PSOORUT1
+4 KILL VALMHDR
+5 DO RE^VALM4
+6 QUIT