- 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)
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HTIUPD 5841 printed Feb 19, 2025@00:09:34 Page 2
- 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)