GMTSPSI ; SLC/JER,KER - IV Rx Summary Component (V4.5) ; 08/27/2002
;;2.7;Health Summary;**15,28,56**;Oct 20, 1995
;
; External References
; DBIA 10141 $$VERSION^XPDUTL
; DBIA 68 ENHS^PSJEEU0
;
MAIN ; Controls Branching
I $$VERSION^XPDUTL("PSJ")'<5 G MAIN^GMTSPSI5
N GMI,GMTSIDT,MAX,ON,PS,PSIVREA,PSJEDT,PSJNKF,PSJPFWD,TN
S PSJEDT=$S(GMTS2'=9999999:(9999999-GMTS2),1:""),PSJNKF=1
K ^UTILITY("PSIV",$J) I '$L($T(ENHS^PSJEEU0)) D NOPSJ Q
D ENHS^PSJEEU0
I '$D(^UTILITY("PSIV",$J)) Q
S GMI=0
S GMTSIDT=-9999999 F S GMTSIDT=$O(^UTILITY("PSIV",$J,GMTSIDT)) Q:'GMTSIDT D WRT Q:$D(GMTSQIT)
K ^UTILITY("PSIV",$J),^UTILITY("PSG",$J)
Q
NOPSJ ; Handles case where ^PSJEEU0 not present
D CKP^GMTSUP Q:$D(GMTSQIT) W "Inpatient Pharmacy version 3.2 or greater is required.",!
Q
WRT ; Prints IV Pharmacy order
N GMV,GMW,GMTSAD,GMTSDRUG,SOL,SD,SLN,FD,STAT,IR,SCH
S SD=$P(^UTILITY("PSIV",$J,GMTSIDT,0),U),FD=$P(^(0),U,2),STAT=$P($P(^(0),U,4),";"),IR=$P(^(0),U,5),SCH=$P(^(0),U,6)
; Don't display data when start date is after To Date
Q:+$G(GMRANGE)&(SD>(9999999-GMTS1))
F GMV="SD","FD" S X=@GMV D REGDT4^GMTSU S @GMV=X K X
I GMI'>0 D HEAD
D CKP^GMTSUP Q:$D(GMTSQIT) W:GMI>0&('GMTSNPG) !
S GMI=1
I $D(^UTILITY("PSIV",$J,GMTSIDT,"A",1)) D CKP^GMTSUP Q:$D(GMTSQIT) D:GMTSNPG HEAD W $E($P($P(^UTILITY("PSIV",$J,GMTSIDT,"A",1),";",2),U),1,36),?38,$P(^(1),U,2),?50,STAT,?57,SD,?69,FD,!
S GMTSAD=1
F S GMTSAD=$O(^UTILITY("PSIV",$J,GMTSIDT,"A",GMTSAD)) Q:GMTSAD'>0 S GMTSDRUG=^(GMTSAD) D CKP^GMTSUP Q:$D(GMTSQIT) D:GMTSNPG HEAD W $E($P($P(GMTSDRUG,";",2),U),1,36),?38,$P(GMTSDRUG,U,2),!
LSTSOL ; Write Solutions
S SOL=0
F S SOL=$O(^UTILITY("PSIV",$J,GMTSIDT,"S",SOL)) Q:SOL'>0 S SLN=^(SOL) D CKP^GMTSUP Q:$D(GMTSQIT) D
. D:GMTSNPG HEAD
. W ?3,$S(SOL=1!GMTSNPG:"In: ",1:" ")
. W $P($P(SLN,";",2),U)," ",$P(SLN,U,2)," ",IR," ",SCH,!
Q
HEAD ; Prints Header
I 'GMTSNPG D CKP^GMTSUP Q:$D(GMTSQIT)
W "Drug",?38,"Dose",?50,"Status",?58,"Start",?68,"Stop",! W:$Y'>(IOSL-GMTSLO) !
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMTSPSI 2077 printed Nov 22, 2024@17:09:40 Page 2
GMTSPSI ; SLC/JER,KER - IV Rx Summary Component (V4.5) ; 08/27/2002
+1 ;;2.7;Health Summary;**15,28,56**;Oct 20, 1995
+2 ;
+3 ; External References
+4 ; DBIA 10141 $$VERSION^XPDUTL
+5 ; DBIA 68 ENHS^PSJEEU0
+6 ;
MAIN ; Controls Branching
+1 IF $$VERSION^XPDUTL("PSJ")'<5
GOTO MAIN^GMTSPSI5
+2 NEW GMI,GMTSIDT,MAX,ON,PS,PSIVREA,PSJEDT,PSJNKF,PSJPFWD,TN
+3 SET PSJEDT=$SELECT(GMTS2'=9999999:(9999999-GMTS2),1:"")
SET PSJNKF=1
+4 KILL ^UTILITY("PSIV",$JOB)
IF '$LENGTH($TEXT(ENHS^PSJEEU0))
DO NOPSJ
QUIT
+5 DO ENHS^PSJEEU0
+6 IF '$DATA(^UTILITY("PSIV",$JOB))
QUIT
+7 SET GMI=0
+8 SET GMTSIDT=-9999999
FOR
SET GMTSIDT=$ORDER(^UTILITY("PSIV",$JOB,GMTSIDT))
if 'GMTSIDT
QUIT
DO WRT
if $DATA(GMTSQIT)
QUIT
+9 KILL ^UTILITY("PSIV",$JOB),^UTILITY("PSG",$JOB)
+10 QUIT
NOPSJ ; Handles case where ^PSJEEU0 not present
+1 DO CKP^GMTSUP
if $DATA(GMTSQIT)
QUIT
WRITE "Inpatient Pharmacy version 3.2 or greater is required.",!
+2 QUIT
WRT ; Prints IV Pharmacy order
+1 NEW GMV,GMW,GMTSAD,GMTSDRUG,SOL,SD,SLN,FD,STAT,IR,SCH
+2 SET SD=$PIECE(^UTILITY("PSIV",$JOB,GMTSIDT,0),U)
SET FD=$PIECE(^(0),U,2)
SET STAT=$PIECE($PIECE(^(0),U,4),";")
SET IR=$PIECE(^(0),U,5)
SET SCH=$PIECE(^(0),U,6)
+3 ; Don't display data when start date is after To Date
+4 if +$GET(GMRANGE)&(SD>(9999999-GMTS1))
QUIT
+5 FOR GMV="SD","FD"
SET X=@GMV
DO REGDT4^GMTSU
SET @GMV=X
KILL X
+6 IF GMI'>0
DO HEAD
+7 DO CKP^GMTSUP
if $DATA(GMTSQIT)
QUIT
if GMI>0&('GMTSNPG)
WRITE !
+8 SET GMI=1
+9 IF $DATA(^UTILITY("PSIV",$JOB,GMTSIDT,"A",1))
DO CKP^GMTSUP
if $DATA(GMTSQIT)
QUIT
if GMTSNPG
DO HEAD
WRITE $EXTRACT($PIECE($PIECE(^UTILITY("PSIV",$JOB,GMTSIDT,"A",1),";",2),U),1,36),?38,$PIECE(^(1),U,2),?50,STAT,?57,SD,?69,FD,!
+10 SET GMTSAD=1
+11 FOR
SET GMTSAD=$ORDER(^UTILITY("PSIV",$JOB,GMTSIDT,"A",GMTSAD))
if GMTSAD'>0
QUIT
SET GMTSDRUG=^(GMTSAD)
DO CKP^GMTSUP
if $DATA(GMTSQIT)
QUIT
if GMTSNPG
DO HEAD
WRITE $EXTRACT($PIECE($PIECE(GMTSDRUG,";",2),U),1,36),?38,$PIECE(GMTSDRUG,U,2),!
LSTSOL ; Write Solutions
+1 SET SOL=0
+2 FOR
SET SOL=$ORDER(^UTILITY("PSIV",$JOB,GMTSIDT,"S",SOL))
if SOL'>0
QUIT
SET SLN=^(SOL)
DO CKP^GMTSUP
if $DATA(GMTSQIT)
QUIT
Begin DoDot:1
+3 if GMTSNPG
DO HEAD
+4 WRITE ?3,$SELECT(SOL=1!GMTSNPG:"In: ",1:" ")
+5 WRITE $PIECE($PIECE(SLN,";",2),U)," ",$PIECE(SLN,U,2)," ",IR," ",SCH,!
End DoDot:1
+6 QUIT
HEAD ; Prints Header
+1 IF 'GMTSNPG
DO CKP^GMTSUP
if $DATA(GMTSQIT)
QUIT
+2 WRITE "Drug",?38,"Dose",?50,"Status",?58,"Start",?68,"Stop",!
if $Y'>(IOSL-GMTSLO)
WRITE !
+3 QUIT