TIUPD ; SLC/JER - Background Print Driver ;5/3/04
;;1.0;TEXT INTEGRATION UTILITIES;**7,89,100,182**;Jun 20, 1997
MAIN(DA,TIUACT) ; Control Branching
; TIUACT=R ==> Release from transcription,
; V ==> Verified by MAS,
; A ==> AMENDED by Privacy Act Officer
; S ==> On completion by electronic signature by appropriate
; person (i.e., author or expected cosigner)
; TIUSTAT=1 ==> STAT urgency,
; TIURP=routine print event(s)
; TIUSP=stat print event(s)
N TIUSTAT,TIURP,TIUSP,TIUDPARM
D DOCPRM^TIULC1(+$G(^TIU(8925,+DA,0)),.TIUDPARM,+DA)
Q:+$P($G(TIUDPARM(0)),U,8)>0!(+$G(TIUDPARM(0))'>0)
Q:$G(TIUACT)=""!("ARVS"'[TIUACT)!(+$G(DA)'>0)
S:$P($G(^TIU(8925,+DA,0)),U,9)="P" TIUSTAT=1
S TIURP=$P($G(TIUDPARM(0)),U,6),TIUSP=$P($G(TIUDPARM(0)),U,7)
I TIUACT="S" D TSKPRINT(DA,2,"",.TIUDPARM) Q
I TIUACT="A" D TSKPRINT(DA,1,"",.TIUDPARM) Q
I TIUACT="V",TIUSP]"","VB"[TIUSP D TSKPRINT(DA,1,"",.TIUDPARM) Q
I +$G(TIUSTAT) D ;STAT Document processing
. I TIUACT="R",TIUSP]"","RB"[TIUSP D TSKPRINT(DA,1,TIUSTAT,.TIUDPARM) Q
. I TIUACT="V",TIUSP]"","VB"[TIUSP D TSKPRINT(DA,1,"",.TIUDPARM) Q
E D ;Non-stat Document processing
. I TIUACT="R",TIURP]"","RB"[TIURP D TSKPRINT(DA,1,"",.TIUDPARM) Q
. I TIUACT="V",TIURP]"","VB"[TIURP D TSKPRINT(DA,1,"",.TIUDPARM) Q
Q
RPC(TIUY,TIUDA,TIUIO,TIUFLAG,TIUWIN) ; Remote Procedure to print a record
;TIUFLAG > 1 Chart Copy, TIUFLAG = 2 Electronically signed Chart Copy
;TIUWIN = 1 Windows printer, 0 or "" VistA printer
N DFN,TIUD0,TIUX,ZTIO,ZTDTH,ZTRTN,ZTSK,ZTDESC,TIUTYPE,TIUPMTHD,TIUTNM
N TIUDATE,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUD13,TIUD15,TIUIDDAD
K ^TMP("TIUPR",$J)
I '$D(^TIU(8925,+$G(TIUDA),0)) S TIUY="1^No such record in TIU" Q
I $G(TIUIO)']"" S TIUY="1^No device selected" Q
; Get Print Method for the document
S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIUD13=$G(^TIU(8925,+TIUDA,13))
S TIUD15=$G(^TIU(8925,+TIUDA,15)),TIUTYPE=+TIUD0,TIUFLAG=+$G(TIUFLAG)
S TIUDATE=$S(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$G(DT))
I '+TIUTYPE Q
S DFN=+$P(TIUD0,U,2)
S TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUTYPE,TIUDA)
S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,TIUDA)
S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,TIUDA)
S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,TIUDA)
I +$$ISADDNDM^TIULC1(TIUDA) S TIUDA=+$P($G(^TIU(8925,+TIUDA,0)),U,6)
S TIUIDDAD=$$HASIDDAD^TIUGBR(TIUDA)
I TIUIDDAD S TIUDA=TIUIDDAD
I $G(TIUPMTHD)']"" S TIUY="1^No Print Method Defined" Q
;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
;. S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA)=$G(TIUPFNBR)
;E S ^TMP("TIUPR",$J,DFN,1,TIUDA)=""
; -- P182: Set array same whether or not flds are defined, with
; TIUPGRP piece possibly 0, TIUPFHDR piece possibly null, and
; array value TIUPFNBR possibly null.
S ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA)=$G(TIUPFNBR)
I +$G(TIUWIN) D
. U IO
. X TIUPMTHD
E D
. S ZTIO=TIUIO,ZTDTH=$H
. S ZTDESC=$S(+TIUFLAG:"CHART",1:"WORK")_" copy of "_$$UPPER^TIULS(TIUTNM)
. S ZTRTN=$P(TIUPMTHD," ",2),ZTSAVE("^TMP(""TIUPR"",$J,")=""
. S ZTSAVE("TIUFLAG")="",ZTSAVE("TIUPRM*")="",ZTSAVE("DUZ(")=""
. D ^%ZTLOAD ;K ^TMP("TIUPR",$J,+$P(TIUD0,U,2),1,TIUDA) P182
. I $D(ZTSK) S TIUY="0^"_$S(+$G(TIUFLAG):"Chart",1:"Draft")_" copy queued"
. E S TIUY="1^Task Rejected"
K ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA) ;P182
Q
TSKPRINT(DA,TIUFLAG,TIUSTAT,TIUDPARM) ;Set up task and do a queued print
;TIUFLAG > 1 Chart Copy, TIUFLAG = 2 Electronically signed Chart Copy
;TIUSTAT > 1 Stat printed at Release, check for Stat Chart Copy Printer
N TIUD0,TIUDA,TIUX,ZTIO,ZTDTH,ZTRTN,ZTSK,ZTDESC,TIUTYPE,TIUPMTHD,TIUTNM
N TIUDATE,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUD13,TIUD15,TIUIDDAD
K ^TMP("TIUPR",$J)
I '$D(^TIU(8925,+$G(DA),0)) Q
; Get Print Method for the document
S TIUD0=$G(^TIU(8925,+DA,0)),TIUD13=$G(^TIU(8925,+DA,13))
S TIUD15=$G(^TIU(8925,+DA,15)),TIUTYPE=+TIUD0
S TIUDATE=$S(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$G(DT))
I '+TIUTYPE Q
S TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
S TIUPMTHD=$P($$PRNTMTHD^TIULG(+TIUTYPE,DA)," ",2)
S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,DA)
S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,DA)
S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,DA)
I +$$ISADDNDM^TIULC1(DA) S DA=+$P($G(^TIU(8925,+DA,0)),U,6)
S TIUIDDAD=$$HASIDDAD^TIUGBR(DA)
I TIUIDDAD S DA=TIUIDDAD
I TIUPMTHD']"" Q
S ZTIO=$$GETDEV(DA,.TIUDPARM,+$G(TIUSTAT)),ZTDTH=$H
I ZTIO']"" K ^TMP("TIUPR",$J) Q
S ZTDESC="CHART COPY OF "_$$UPPER^TIULS(TIUTNM)
S ZTRTN=TIUPMTHD,ZTSAVE("^TMP(""TIUPR"",$J,")="",ZTSAVE("TIUFLAG")=""
S ZTSAVE("TIUPRM*")="",ZTSAVE("DUZ(")=""
;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
;. S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA)=$G(TIUPFNBR)
;E S ^TMP("TIUPR",$J,+$P(TIUD0,U,2),TIUDATE,DA)=""
; -- P182: See RPC
S ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA)=$G(TIUPFNBR)
D ^%ZTLOAD ;K ^TMP("TIUPR",$J,+$P(TIUD0,U,2),TIUDATE,DA) P182
K ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA) ;P182
I $D(ZTSK),'$D(XWBOS) W !,$S(+$G(TIUFLAG):"Chart",1:"Draft")," copy queued."
Q
GETDEV(DA,TIUDPARM,TIUSTAT) ; Get Chart copy print device name
N DIC,DIQ,DR,X,Y,TIUDPDA,TIUDIV,TIUDEV,TIUI,TIU,TIUY
D GETTIU^TIULD(.TIU,+DA)
S TIUDPDA=+$O(^TIU(8925.95,"B",+$G(TIUDPARM(0)),0)) I '+TIUDPDA G GETDX
S TIUDIV=+$O(^TIU(8925.95,+TIUDPDA,2,"B",+$G(TIU("DIV")),0))
I +TIUDIV>0 D
. S DIC="^TIU(8925.95,"_TIUDPDA_",2,",DA=+TIUDIV
. S DIQ="TIUDEV",DR=".02;.03" D EN^DIQ1
. I +$G(TIUSTAT),($G(TIUDEV(8925.952,+DA,.03))]"") S TIUY=$G(TIUDEV(8925.952,+DA,.03))
. E S TIUY=$G(TIUDEV(8925.952,+DA,.02))
GETDX Q $G(TIUY)
TIUPD ; SLC/JER - Background Print Driver ;5/3/04
+1 ;;1.0;TEXT INTEGRATION UTILITIES;**7,89,100,182**;Jun 20, 1997
MAIN(DA,TIUACT) ; Control Branching
+1 ; TIUACT=R ==> Release from transcription,
+2 ; V ==> Verified by MAS,
+3 ; A ==> AMENDED by Privacy Act Officer
+4 ; S ==> On completion by electronic signature by appropriate
+5 ; person (i.e., author or expected cosigner)
+6 ; TIUSTAT=1 ==> STAT urgency,
+7 ; TIURP=routine print event(s)
+8 ; TIUSP=stat print event(s)
+9 NEW TIUSTAT,TIURP,TIUSP,TIUDPARM
+10 DO DOCPRM^TIULC1(+$GET(^TIU(8925,+DA,0)),.TIUDPARM,+DA)
+11 IF +$PIECE($GET(TIUDPARM(0)),U,8)>0!(+$GET(TIUDPARM(0))'>0)
QUIT
+12 IF $GET(TIUACT)=""!("ARVS"'[TIUACT)!(+$GET(DA)'>0)
QUIT
+13 IF $PIECE($GET(^TIU(8925,+DA,0)),U,9)="P"
SET TIUSTAT=1
+14 SET TIURP=$PIECE($GET(TIUDPARM(0)),U,6)
SET TIUSP=$PIECE($GET(TIUDPARM(0)),U,7)
+15 IF TIUACT="S"
DO TSKPRINT(DA,2,"",.TIUDPARM)
QUIT
+16 IF TIUACT="A"
DO TSKPRINT(DA,1,"",.TIUDPARM)
QUIT
+17 IF TIUACT="V"
IF TIUSP]""
IF "VB"[TIUSP
DO TSKPRINT(DA,1,"",.TIUDPARM)
QUIT
+18 ;STAT Document processing
IF +$GET(TIUSTAT)
Begin DoDot:1
+19 IF TIUACT="R"
IF TIUSP]""
IF "RB"[TIUSP
DO TSKPRINT(DA,1,TIUSTAT,.TIUDPARM)
QUIT
+20 IF TIUACT="V"
IF TIUSP]""
IF "VB"[TIUSP
DO TSKPRINT(DA,1,"",.TIUDPARM)
QUIT
End DoDot:1
+21 ;Non-stat Document processing
IF '$TEST
Begin DoDot:1
+22 IF TIUACT="R"
IF TIURP]""
IF "RB"[TIURP
DO TSKPRINT(DA,1,"",.TIUDPARM)
QUIT
+23 IF TIUACT="V"
IF TIURP]""
IF "VB"[TIURP
DO TSKPRINT(DA,1,"",.TIUDPARM)
QUIT
End DoDot:1
+24 QUIT
RPC(TIUY,TIUDA,TIUIO,TIUFLAG,TIUWIN) ; Remote Procedure to print a record
+1 ;TIUFLAG > 1 Chart Copy, TIUFLAG = 2 Electronically signed Chart Copy
+2 ;TIUWIN = 1 Windows printer, 0 or "" VistA printer
+3 NEW DFN,TIUD0,TIUX,ZTIO,ZTDTH,ZTRTN,ZTSK,ZTDESC,TIUTYPE,TIUPMTHD,TIUTNM
+4 NEW TIUDATE,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUD13,TIUD15,TIUIDDAD
+5 KILL ^TMP("TIUPR",$JOB)
+6 IF '$DATA(^TIU(8925,+$GET(TIUDA),0))
SET TIUY="1^No such record in TIU"
QUIT
+7 IF $GET(TIUIO)']""
SET TIUY="1^No device selected"
QUIT
+8 ; Get Print Method for the document
+9 SET TIUD0=$GET(^TIU(8925,+TIUDA,0))
SET TIUD13=$GET(^TIU(8925,+TIUDA,13))
+10 SET TIUD15=$GET(^TIU(8925,+TIUDA,15))
SET TIUTYPE=+TIUD0
SET TIUFLAG=+$GET(TIUFLAG)
+11 SET TIUDATE=$SELECT(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$GET(DT))
+12 IF '+TIUTYPE
QUIT
+13 SET DFN=+$PIECE(TIUD0,U,2)
+14 SET TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
+15 SET TIUPMTHD=$$PRNTMTHD^TIULG(+TIUTYPE,TIUDA)
+16 SET TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,TIUDA)
+17 SET TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,TIUDA)
+18 SET TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,TIUDA)
+19 IF +$$ISADDNDM^TIULC1(TIUDA)
SET TIUDA=+$PIECE($GET(^TIU(8925,+TIUDA,0)),U,6)
+20 SET TIUIDDAD=$$HASIDDAD^TIUGBR(TIUDA)
+21 IF TIUIDDAD
SET TIUDA=TIUIDDAD
+22 IF $GET(TIUPMTHD)']""
SET TIUY="1^No Print Method Defined"
QUIT
+23 ;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
+24 ;. S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA)=$G(TIUPFNBR)
+25 ;E S ^TMP("TIUPR",$J,DFN,1,TIUDA)=""
+26 ; -- P182: Set array same whether or not flds are defined, with
+27 ; TIUPGRP piece possibly 0, TIUPFHDR piece possibly null, and
+28 ; array value TIUPFNBR possibly null.
+29 SET ^TMP("TIUPR",$JOB,+$GET(TIUPGRP)_"$"_$GET(TIUPFHDR)_";"_DFN,1,TIUDA)=$GET(TIUPFNBR)
+30 IF +$GET(TIUWIN)
Begin DoDot:1
+31 USE IO
+32 XECUTE TIUPMTHD
End DoDot:1
+33 IF '$TEST
Begin DoDot:1
+34 SET ZTIO=TIUIO
SET ZTDTH=$HOROLOG
+35 SET ZTDESC=$SELECT(+TIUFLAG:"CHART",1:"WORK")_" copy of "_$$UPPER^TIULS(TIUTNM)
+36 SET ZTRTN=$PIECE(TIUPMTHD," ",2)
SET ZTSAVE("^TMP(""TIUPR"",$J,")=""
+37 SET ZTSAVE("TIUFLAG")=""
SET ZTSAVE("TIUPRM*")=""
SET ZTSAVE("DUZ(")=""
+38 ;K ^TMP("TIUPR",$J,+$P(TIUD0,U,2),1,TIUDA) P182
DO ^%ZTLOAD
+39 IF $DATA(ZTSK)
SET TIUY="0^"_$SELECT(+$GET(TIUFLAG):"Chart",1:"Draft")_" copy queued"
+40 IF '$TEST
SET TIUY="1^Task Rejected"
End DoDot:1
+41 ;P182
KILL ^TMP("TIUPR",$JOB,+$GET(TIUPGRP)_"$"_$GET(TIUPFHDR)_";"_DFN,1,TIUDA)
+42 QUIT
TSKPRINT(DA,TIUFLAG,TIUSTAT,TIUDPARM) ;Set up task and do a queued print
+1 ;TIUFLAG > 1 Chart Copy, TIUFLAG = 2 Electronically signed Chart Copy
+2 ;TIUSTAT > 1 Stat printed at Release, check for Stat Chart Copy Printer
+3 NEW TIUD0,TIUDA,TIUX,ZTIO,ZTDTH,ZTRTN,ZTSK,ZTDESC,TIUTYPE,TIUPMTHD,TIUTNM
+4 NEW TIUDATE,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUD13,TIUD15,TIUIDDAD
+5 KILL ^TMP("TIUPR",$JOB)
+6 IF '$DATA(^TIU(8925,+$GET(DA),0))
QUIT
+7 ; Get Print Method for the document
+8 SET TIUD0=$GET(^TIU(8925,+DA,0))
SET TIUD13=$GET(^TIU(8925,+DA,13))
+9 SET TIUD15=$GET(^TIU(8925,+DA,15))
SET TIUTYPE=+TIUD0
+10 SET TIUDATE=$SELECT(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$GET(DT))
+11 IF '+TIUTYPE
QUIT
+12 SET TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
+13 SET TIUPMTHD=$PIECE($$PRNTMTHD^TIULG(+TIUTYPE,DA)," ",2)
+14 SET TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,DA)
+15 SET TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,DA)
+16 SET TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,DA)
+17 IF +$$ISADDNDM^TIULC1(DA)
SET DA=+$PIECE($GET(^TIU(8925,+DA,0)),U,6)
+18 SET TIUIDDAD=$$HASIDDAD^TIUGBR(DA)
+19 IF TIUIDDAD
SET DA=TIUIDDAD
+20 IF TIUPMTHD']""
QUIT
+21 SET ZTIO=$$GETDEV(DA,.TIUDPARM,+$GET(TIUSTAT))
SET ZTDTH=$HOROLOG
+22 IF ZTIO']""
KILL ^TMP("TIUPR",$JOB)
QUIT
+23 SET ZTDESC="CHART COPY OF "_$$UPPER^TIULS(TIUTNM)
+24 SET ZTRTN=TIUPMTHD
SET ZTSAVE("^TMP(""TIUPR"",$J,")=""
SET ZTSAVE("TIUFLAG")=""
+25 SET ZTSAVE("TIUPRM*")=""
SET ZTSAVE("DUZ(")=""
+26 ;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
+27 ;. S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA)=$G(TIUPFNBR)
+28 ;E S ^TMP("TIUPR",$J,+$P(TIUD0,U,2),TIUDATE,DA)=""
+29 ; -- P182: See RPC
+30 SET ^TMP("TIUPR",$JOB,+$GET(TIUPGRP)_"$"_$GET(TIUPFHDR)_";"_+$PIECE(TIUD0,U,2),TIUDATE,DA)=$GET(TIUPFNBR)
+31 ;K ^TMP("TIUPR",$J,+$P(TIUD0,U,2),TIUDATE,DA) P182
DO ^%ZTLOAD
+32 ;P182
KILL ^TMP("TIUPR",$JOB,+$GET(TIUPGRP)_"$"_$GET(TIUPFHDR)_";"_+$PIECE(TIUD0,U,2),TIUDATE,DA)
+33 IF $DATA(ZTSK)
IF '$DATA(XWBOS)
WRITE !,$SELECT(+$GET(TIUFLAG):"Chart",1:"Draft")," copy queued."
+34 QUIT
GETDEV(DA,TIUDPARM,TIUSTAT) ; Get Chart copy print device name
+1 NEW DIC,DIQ,DR,X,Y,TIUDPDA,TIUDIV,TIUDEV,TIUI,TIU,TIUY
+2 DO GETTIU^TIULD(.TIU,+DA)
+3 SET TIUDPDA=+$ORDER(^TIU(8925.95,"B",+$GET(TIUDPARM(0)),0))
IF '+TIUDPDA
GOTO GETDX
+4 SET TIUDIV=+$ORDER(^TIU(8925.95,+TIUDPDA,2,"B",+$GET(TIU("DIV")),0))
+5 IF +TIUDIV>0
Begin DoDot:1
+6 SET DIC="^TIU(8925.95,"_TIUDPDA_",2,"
SET DA=+TIUDIV
+7 SET DIQ="TIUDEV"
SET DR=".02;.03"
DO EN^DIQ1
+8 IF +$GET(TIUSTAT)
IF ($GET(TIUDEV(8925.952,+DA,.03))]"")
SET TIUY=$GET(TIUDEV(8925.952,+DA,.03))
+9 IF '$TEST
SET TIUY=$GET(TIUDEV(8925.952,+DA,.02))
End DoDot:1
GETDX QUIT $GET(TIUY)