| 1 | TIUPD ; SLC/JER - Background Print Driver ;5/3/04
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**7,89,100,182**;Jun 20, 1997
 | 
|---|
| 3 | MAIN(DA,TIUACT) ; Control Branching
 | 
|---|
| 4 |  ;  TIUACT=R ==> Release from transcription,
 | 
|---|
| 5 |  ;         V ==> Verified by MAS,
 | 
|---|
| 6 |  ;         A ==> AMENDED by Privacy Act Officer
 | 
|---|
| 7 |  ;         S ==> On completion by electronic signature by appropriate
 | 
|---|
| 8 |  ;               person (i.e., author or expected cosigner)
 | 
|---|
| 9 |  ; TIUSTAT=1 ==> STAT urgency,
 | 
|---|
| 10 |  ;   TIURP=routine print event(s)
 | 
|---|
| 11 |  ;   TIUSP=stat print event(s)
 | 
|---|
| 12 |  N TIUSTAT,TIURP,TIUSP,TIUDPARM
 | 
|---|
| 13 |  D DOCPRM^TIULC1(+$G(^TIU(8925,+DA,0)),.TIUDPARM,+DA)
 | 
|---|
| 14 |  Q:+$P($G(TIUDPARM(0)),U,8)>0!(+$G(TIUDPARM(0))'>0)
 | 
|---|
| 15 |  Q:$G(TIUACT)=""!("ARVS"'[TIUACT)!(+$G(DA)'>0)
 | 
|---|
| 16 |  S:$P($G(^TIU(8925,+DA,0)),U,9)="P" TIUSTAT=1
 | 
|---|
| 17 |  S TIURP=$P($G(TIUDPARM(0)),U,6),TIUSP=$P($G(TIUDPARM(0)),U,7)
 | 
|---|
| 18 |  I TIUACT="S" D TSKPRINT(DA,2,"",.TIUDPARM) Q
 | 
|---|
| 19 |  I TIUACT="A" D TSKPRINT(DA,1,"",.TIUDPARM) Q
 | 
|---|
| 20 |  I TIUACT="V",TIUSP]"","VB"[TIUSP D TSKPRINT(DA,1,"",.TIUDPARM) Q
 | 
|---|
| 21 |  I +$G(TIUSTAT) D  ;STAT Document processing
 | 
|---|
| 22 |  . I TIUACT="R",TIUSP]"","RB"[TIUSP D TSKPRINT(DA,1,TIUSTAT,.TIUDPARM) Q
 | 
|---|
| 23 |  . I TIUACT="V",TIUSP]"","VB"[TIUSP D TSKPRINT(DA,1,"",.TIUDPARM) Q
 | 
|---|
| 24 |  E  D  ;Non-stat Document processing
 | 
|---|
| 25 |  . I TIUACT="R",TIURP]"","RB"[TIURP D TSKPRINT(DA,1,"",.TIUDPARM) Q
 | 
|---|
| 26 |  . I TIUACT="V",TIURP]"","VB"[TIURP D TSKPRINT(DA,1,"",.TIUDPARM) Q
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | RPC(TIUY,TIUDA,TIUIO,TIUFLAG,TIUWIN) ; Remote Procedure to print a record
 | 
|---|
| 29 |  ;TIUFLAG > 1 Chart Copy, TIUFLAG = 2 Electronically signed Chart Copy
 | 
|---|
| 30 |  ;TIUWIN = 1 Windows printer, 0 or "" VistA printer
 | 
|---|
| 31 |  N DFN,TIUD0,TIUX,ZTIO,ZTDTH,ZTRTN,ZTSK,ZTDESC,TIUTYPE,TIUPMTHD,TIUTNM
 | 
|---|
| 32 |  N TIUDATE,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUD13,TIUD15,TIUIDDAD
 | 
|---|
| 33 |  K ^TMP("TIUPR",$J)
 | 
|---|
| 34 |  I '$D(^TIU(8925,+$G(TIUDA),0)) S TIUY="1^No such record in TIU" Q
 | 
|---|
| 35 |  I $G(TIUIO)']"" S TIUY="1^No device selected" Q
 | 
|---|
| 36 |  ; Get Print Method for the document
 | 
|---|
| 37 |  S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIUD13=$G(^TIU(8925,+TIUDA,13))
 | 
|---|
| 38 |  S TIUD15=$G(^TIU(8925,+TIUDA,15)),TIUTYPE=+TIUD0,TIUFLAG=+$G(TIUFLAG)
 | 
|---|
| 39 |  S TIUDATE=$S(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$G(DT))
 | 
|---|
| 40 |  I '+TIUTYPE Q
 | 
|---|
| 41 |  S DFN=+$P(TIUD0,U,2)
 | 
|---|
| 42 |  S TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
 | 
|---|
| 43 |  S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUTYPE,TIUDA)
 | 
|---|
| 44 |  S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,TIUDA)
 | 
|---|
| 45 |  S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,TIUDA)
 | 
|---|
| 46 |  S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,TIUDA)
 | 
|---|
| 47 |  I +$$ISADDNDM^TIULC1(TIUDA) S TIUDA=+$P($G(^TIU(8925,+TIUDA,0)),U,6)
 | 
|---|
| 48 |  S TIUIDDAD=$$HASIDDAD^TIUGBR(TIUDA)
 | 
|---|
| 49 |  I TIUIDDAD S TIUDA=TIUIDDAD
 | 
|---|
| 50 |  I $G(TIUPMTHD)']"" S TIUY="1^No Print Method Defined" Q
 | 
|---|
| 51 |  ;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
 | 
|---|
| 52 |  ;. S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA)=$G(TIUPFNBR)
 | 
|---|
| 53 |  ;E  S ^TMP("TIUPR",$J,DFN,1,TIUDA)=""
 | 
|---|
| 54 |  ; -- P182: Set array same whether or not flds are defined, with
 | 
|---|
| 55 |  ;    TIUPGRP piece possibly 0, TIUPFHDR piece possibly null, and
 | 
|---|
| 56 |  ;    array value TIUPFNBR possibly null.
 | 
|---|
| 57 |  S ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA)=$G(TIUPFNBR)
 | 
|---|
| 58 |  I +$G(TIUWIN) D
 | 
|---|
| 59 |  . U IO
 | 
|---|
| 60 |  . X TIUPMTHD
 | 
|---|
| 61 |  E  D
 | 
|---|
| 62 |  . S ZTIO=TIUIO,ZTDTH=$H
 | 
|---|
| 63 |  . S ZTDESC=$S(+TIUFLAG:"CHART",1:"WORK")_" copy of "_$$UPPER^TIULS(TIUTNM)
 | 
|---|
| 64 |  . S ZTRTN=$P(TIUPMTHD," ",2),ZTSAVE("^TMP(""TIUPR"",$J,")=""
 | 
|---|
| 65 |  . S ZTSAVE("TIUFLAG")="",ZTSAVE("TIUPRM*")="",ZTSAVE("DUZ(")=""
 | 
|---|
| 66 |  . D ^%ZTLOAD ;K ^TMP("TIUPR",$J,+$P(TIUD0,U,2),1,TIUDA) P182
 | 
|---|
| 67 |  . I $D(ZTSK) S TIUY="0^"_$S(+$G(TIUFLAG):"Chart",1:"Draft")_" copy queued"
 | 
|---|
| 68 |  . E  S TIUY="1^Task Rejected"
 | 
|---|
| 69 |  K ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA) ;P182
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | TSKPRINT(DA,TIUFLAG,TIUSTAT,TIUDPARM) ;Set up task and do a queued print
 | 
|---|
| 72 |  ;TIUFLAG > 1 Chart Copy, TIUFLAG = 2 Electronically signed Chart Copy
 | 
|---|
| 73 |  ;TIUSTAT > 1 Stat printed at Release, check for Stat Chart Copy Printer
 | 
|---|
| 74 |  N TIUD0,TIUDA,TIUX,ZTIO,ZTDTH,ZTRTN,ZTSK,ZTDESC,TIUTYPE,TIUPMTHD,TIUTNM
 | 
|---|
| 75 |  N TIUDATE,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUD13,TIUD15,TIUIDDAD
 | 
|---|
| 76 |  K ^TMP("TIUPR",$J)
 | 
|---|
| 77 |  I '$D(^TIU(8925,+$G(DA),0)) Q
 | 
|---|
| 78 |  ; Get Print Method for the document
 | 
|---|
| 79 |  S TIUD0=$G(^TIU(8925,+DA,0)),TIUD13=$G(^TIU(8925,+DA,13))
 | 
|---|
| 80 |  S TIUD15=$G(^TIU(8925,+DA,15)),TIUTYPE=+TIUD0
 | 
|---|
| 81 |  S TIUDATE=$S(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$G(DT))
 | 
|---|
| 82 |  I '+TIUTYPE Q
 | 
|---|
| 83 |  S TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
 | 
|---|
| 84 |  S TIUPMTHD=$P($$PRNTMTHD^TIULG(+TIUTYPE,DA)," ",2)
 | 
|---|
| 85 |  S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,DA)
 | 
|---|
| 86 |  S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,DA)
 | 
|---|
| 87 |  S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,DA)
 | 
|---|
| 88 |  I +$$ISADDNDM^TIULC1(DA) S DA=+$P($G(^TIU(8925,+DA,0)),U,6)
 | 
|---|
| 89 |  S TIUIDDAD=$$HASIDDAD^TIUGBR(DA)
 | 
|---|
| 90 |  I TIUIDDAD S DA=TIUIDDAD
 | 
|---|
| 91 |  I TIUPMTHD']"" Q
 | 
|---|
| 92 |  S ZTIO=$$GETDEV(DA,.TIUDPARM,+$G(TIUSTAT)),ZTDTH=$H
 | 
|---|
| 93 |  I ZTIO']"" K ^TMP("TIUPR",$J) Q
 | 
|---|
| 94 |  S ZTDESC="CHART COPY OF "_$$UPPER^TIULS(TIUTNM)
 | 
|---|
| 95 |  S ZTRTN=TIUPMTHD,ZTSAVE("^TMP(""TIUPR"",$J,")="",ZTSAVE("TIUFLAG")=""
 | 
|---|
| 96 |  S ZTSAVE("TIUPRM*")="",ZTSAVE("DUZ(")=""
 | 
|---|
| 97 |  ;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
 | 
|---|
| 98 |  ;. S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA)=$G(TIUPFNBR)
 | 
|---|
| 99 |  ;E  S ^TMP("TIUPR",$J,+$P(TIUD0,U,2),TIUDATE,DA)=""
 | 
|---|
| 100 |  ; -- P182: See RPC
 | 
|---|
| 101 |  S ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA)=$G(TIUPFNBR)
 | 
|---|
| 102 |  D ^%ZTLOAD ;K ^TMP("TIUPR",$J,+$P(TIUD0,U,2),TIUDATE,DA) P182
 | 
|---|
| 103 |  K ^TMP("TIUPR",$J,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_+$P(TIUD0,U,2),TIUDATE,DA) ;P182
 | 
|---|
| 104 |  I $D(ZTSK),'$D(XWBOS) W !,$S(+$G(TIUFLAG):"Chart",1:"Draft")," copy queued."
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 | GETDEV(DA,TIUDPARM,TIUSTAT) ; Get Chart copy print device name
 | 
|---|
| 107 |  N DIC,DIQ,DR,X,Y,TIUDPDA,TIUDIV,TIUDEV,TIUI,TIU,TIUY
 | 
|---|
| 108 |  D GETTIU^TIULD(.TIU,+DA)
 | 
|---|
| 109 |  S TIUDPDA=+$O(^TIU(8925.95,"B",+$G(TIUDPARM(0)),0)) I '+TIUDPDA G GETDX
 | 
|---|
| 110 |  S TIUDIV=+$O(^TIU(8925.95,+TIUDPDA,2,"B",+$G(TIU("DIV")),0))
 | 
|---|
| 111 |  I +TIUDIV>0 D
 | 
|---|
| 112 |  . S DIC="^TIU(8925.95,"_TIUDPDA_",2,",DA=+TIUDIV
 | 
|---|
| 113 |  . S DIQ="TIUDEV",DR=".02;.03" D EN^DIQ1
 | 
|---|
| 114 |  . I +$G(TIUSTAT),($G(TIUDEV(8925.952,+DA,.03))]"") S TIUY=$G(TIUDEV(8925.952,+DA,.03))
 | 
|---|
| 115 |  . E  S TIUY=$G(TIUDEV(8925.952,+DA,.02))
 | 
|---|
| 116 | GETDX Q $G(TIUY)
 | 
|---|