| 1 | TIURA ; SLC/JER - Review screen actions ; 7/7/04
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**1,10,20,79,88,58,100,109,182**;Jun 20, 1997
 | 
|---|
| 3 |  ; Call to ISA^USRLM supported by DBIA 2324
 | 
|---|
| 4 | EDIT ; Edit Documents
 | 
|---|
| 5 |  N TIUDA,DFN,TIUDDT,TIUDATA,TIUCHNG,TIUEDIT,TIUI,DIROUT,TIUDAARY
 | 
|---|
| 6 |  N TIULST,MSGVERB
 | 
|---|
| 7 |  S TIUI=0
 | 
|---|
| 8 |  I '$D(VALMY) D EN^VALM2(XQORNOD(0))
 | 
|---|
| 9 |  F  S TIUI=$O(VALMY(TIUI)) Q:+TIUI'>0  D  Q:$D(DIROUT)
 | 
|---|
| 10 |  . N RSTRCTD
 | 
|---|
| 11 |  . S TIUDATA=$G(^TMP("TIURIDX",$J,TIUI))
 | 
|---|
| 12 |  . D CLEAR^VALM1 W !!,"Editing #",+TIUDATA
 | 
|---|
| 13 |  . S TIUDA=+$P(TIUDATA,U,2) S RSTRCTD=$$DOCRES^TIULRR(TIUDA)
 | 
|---|
| 14 |  . I RSTRCTD D  Q
 | 
|---|
| 15 |  . . W !!,$C(7),"Ok, no harm done...",!
 | 
|---|
| 16 |  . . I $$READ^TIUU("EA","RETURN to continue...") ; pause
 | 
|---|
| 17 |  . S TIUDAARY(TIUI)=TIUDA
 | 
|---|
| 18 |  . S TIUCHNG=0
 | 
|---|
| 19 |  . I +$D(^TIU(8925,+TIUDA,0)) D EDIT1
 | 
|---|
| 20 |  . I +$G(TIUCHNG) D
 | 
|---|
| 21 |  . . S TIULST=$G(TIULST)_$S($G(TIULST)]"":",",1:"")_TIUI
 | 
|---|
| 22 |  ; -- Update or Rebuild list, restore video: --
 | 
|---|
| 23 |  I $G(TIUCHNG("ADDM"))!$G(TIUCHNG("DELETE")) S TIUCHNG("RBLD")=1
 | 
|---|
| 24 |  E  S TIUCHNG("UPDATE")=1
 | 
|---|
| 25 |  D UPRBLD^TIURL(.TIUCHNG,.VALMY) K VALMY
 | 
|---|
| 26 |  S VALMBCK="R"
 | 
|---|
| 27 |  S MSGVERB=$S($G(TIUCHNG("ADDM")):"edited/addended",1:"edited")
 | 
|---|
| 28 |  D VMSG^TIURS1($G(TIULST),.TIUDAARY,MSGVERB)
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 | EDIT1 ; Single record edit
 | 
|---|
| 31 |  ; Receives TIUDA
 | 
|---|
| 32 |  N %X,%Y,C,D,D0,DDWTMP,DFN,DI,DIC,TIUEDIT,TIUMSG,TIUQUIT,TIUADD,TIUREL
 | 
|---|
| 33 |  N TIUTYP,TIUT0,TIUDPRM,TIULDT,DIWESUB,TIU,TIUCMMTX
 | 
|---|
| 34 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 35 |  I '+$G(TIUDA) W !,"No Documents selected." H 2 Q
 | 
|---|
| 36 |  ; Evaluate edit privilege
 | 
|---|
| 37 |  S TIUEDIT=$$CANDO^TIULP(TIUDA,"EDIT RECORD")
 | 
|---|
| 38 |  ; if 'canedit, offer explanation, and let add addendum
 | 
|---|
| 39 |  I '+TIUEDIT D  Q
 | 
|---|
| 40 |  . K ^TIU(8925,"ASAVE",DUZ,TIUDA)
 | 
|---|
| 41 |  . W !!,$C(7),$P(TIUEDIT,U,2),!
 | 
|---|
| 42 |  . I $$READ^TIUU("EA","Press RETURN to continue...")
 | 
|---|
| 43 |  . D ADDENDUM^TIUADD(TIUDA,"",.TIUCHNG)
 | 
|---|
| 44 |  S TIUTYP=+$G(^TIU(8925,+TIUDA,0)),TIUT0=$G(^TIU(8925.1,+TIUTYP,0))
 | 
|---|
| 45 |  S TIUTYP(1)="1^"_+TIUTYP_U_$P(TIUT0,U,3)_U
 | 
|---|
| 46 |  S DFN=$P($G(^TIU(8925,+TIUDA,0)),U,2),TIULDT=$P(^(0),U,8)
 | 
|---|
| 47 |  D GETTIU^TIULD(.TIU,TIUDA)
 | 
|---|
| 48 |  S DIWESUB="Patient: "_$G(TIU("PNM"))
 | 
|---|
| 49 |  D DIE^TIUEDI4(TIUDA,.TIUQUIT,.TIUCHNG) ; **100**
 | 
|---|
| 50 |  K ^TIU(8925,"ASAVE",DUZ,TIUDA)
 | 
|---|
| 51 |  I +$G(TIUCPYNG),+$G(TIUQUIT) D DELETE^TIUEDIT(TIUDA,0,"",1) Q
 | 
|---|
| 52 |  Q:+$G(TIUQUIT)=2
 | 
|---|
| 53 |  ;If (CP) and (Timeout or Not Select Consult) and (Consult Associated), Quit before EMPTYDOC check
 | 
|---|
| 54 |  I +$$ISA^TIULX(TIUTYP,+$$CLASS^TIUCP),+$G(TIUQUIT)=1,+$P($G(^TIU(8925,+TIUDA,14)),U,5)>0 Q
 | 
|---|
| 55 |  I $$EMPTYDOC^TIULF(TIUDA) D DELETE^TIUEDIT(TIUDA,0) S TIUCHNG("DELETE")=1 H 2 Q
 | 
|---|
| 56 |  Q:+$G(TIUQUIT)
 | 
|---|
| 57 |  I +$G(TIU("STOP")) D DEFER^TIUVSIT(TIUDA,TIU("STOP")) I 1
 | 
|---|
| 58 |  E  I +$P($G(^TIU(8925,+TIUDA,0)),U,3)'>0 D QUE^TIUPXAP1
 | 
|---|
| 59 |  ; - Commit proc -
 | 
|---|
| 60 |  S TIUCMMTX=$$COMMIT^TIULC1(+$P(TIUTYP(1),U,2))
 | 
|---|
| 61 |  I TIUCMMTX]"" D
 | 
|---|
| 62 |  . N DA S DA=TIUDA X TIUCMMTX
 | 
|---|
| 63 |  ;   i. Execute RELEASE logic
 | 
|---|
| 64 |  D RELEASE^TIUT(+TIUDA)
 | 
|---|
| 65 |  ;  ii. Execute VERIFICATION logic
 | 
|---|
| 66 |  D VERIFY^TIUT(+TIUDA)
 | 
|---|
| 67 |  ; iii. Execute ES logic
 | 
|---|
| 68 |  D EDSIG^TIURS(+TIUDA,"",1)
 | 
|---|
| 69 |  ;  iv. If document is an ADDENDUM process alert
 | 
|---|
| 70 |  I +$$ISADDNDM^TIULC1(+TIUDA) D SENDADD^TIUALRT(+TIUDA)
 | 
|---|
| 71 |  I $D(^TMP("TIUR",$J,"CTXT")),(+$P($G(^TIU(8925,+TIUDA,0)),U,5)'<6) S VALMBCK="Q"
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | PRINT ; Print selected documents
 | 
|---|
| 74 |  N DFN,TIUDA,TIUDARR,TIUDATA,TIUI,DIROUT,TIUDE,POP,TIUPFLG,TIUDEV
 | 
|---|
| 75 |  I '$D(VALMY) D EN^VALM2(XQORNOD(0)) G:$D(VALMY)'>9 PRINTX
 | 
|---|
| 76 |  D CLEAR^VALM1
 | 
|---|
| 77 |  D PRNTSCRN^TIURA2(.VALMY)
 | 
|---|
| 78 |  I '$D(VALMY) D  G PRINTX
 | 
|---|
| 79 |  . W !!,"No Printable Documents Remain in your List.",!
 | 
|---|
| 80 |  . I $$READ^TIUU("EA","Press RETURN to continue...")
 | 
|---|
| 81 |  I +$$CHARTANY^TIURA1(.VALMY) S TIUPFLG=$$FLAG^TIUPRPN3
 | 
|---|
| 82 |  S TIUDEV=$$DEVICE^TIUDEV(.IO) ; Get Device/allow queueing
 | 
|---|
| 83 |  I $S(IO']"":1,TIUDEV']"":1,1:0) G PRINTX
 | 
|---|
| 84 |  I $D(IO("Q")) D QUE^TIUDEV("PRINTN^TIURA",TIUDEV) G PRINTX
 | 
|---|
| 85 |  D PRINTN
 | 
|---|
| 86 | PRINTX N IOSTBM D ^%ZISC,FIXLSTNW^TIULM
 | 
|---|
| 87 |  K VALMY S VALMBCK="R"
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 | PRINTN ; Loop through selected doc's & invoke print code
 | 
|---|
| 90 |  N TIUI,TIUTYP,TIUDARR,DFN K ^TMP("TIUPR",$J)
 | 
|---|
| 91 |  N ARRAYDA
 | 
|---|
| 92 |  U IO
 | 
|---|
| 93 |  S TIUI=0
 | 
|---|
| 94 |  F  S TIUI=$O(VALMY(TIUI)) Q:+TIUI'>0  D  Q:$D(DIROUT)
 | 
|---|
| 95 |  . N TIUPMTHD,TIUDTYP,TIUPFHDR,TIUPFNBR,TIUPGRP,TIUPRINT,TIUFLAG
 | 
|---|
| 96 |  . S TIUDATA=$G(^TMP("TIURIDX",$J,TIUI))
 | 
|---|
| 97 |  . S TIUDA=+$P(TIUDATA,U,2)
 | 
|---|
| 98 |  . S TIUTYP=+$G(^TIU(8925,TIUDA,0)) ;P182
 | 
|---|
| 99 |  . I TIUTYP'>0 D  Q
 | 
|---|
| 100 |  . . W !!,"Item #",TIUI," no longer exists.",!
 | 
|---|
| 101 |  . . I IO=IO(0),'$D(ZTQUEUED),$$READ^TIUU("EA","RETURN to continue...")
 | 
|---|
| 102 |  . S ARRAYDA(TIUDA)=""
 | 
|---|
| 103 |  . ; -- If TIUDA is an addendum, print its parent instead,
 | 
|---|
| 104 |  . ;    or quit if the parent has already been printed: --
 | 
|---|
| 105 |  . I +$$ISADDNDM^TIULC1(TIUDA) D  Q:'TIUDA
 | 
|---|
| 106 |  . . S TIUDA=+$P($G(^TIU(8925,TIUDA,0)),U,6)
 | 
|---|
| 107 |  . . I $D(ARRAYDA(TIUDA)) S TIUDA=0 Q
 | 
|---|
| 108 |  . . S TIUDTYP=+$G(^TIU(8925,TIUDA,0))
 | 
|---|
| 109 |  . ; -- If TIUDA is an ID kid, print its parent instead,
 | 
|---|
| 110 |  . ;    or quit if the parent has already been printed: --
 | 
|---|
| 111 |  . I $G(^TIU(8925,TIUDA,21)) D  Q:'TIUDA
 | 
|---|
| 112 |  . . S TIUDA=^TIU(8925,TIUDA,21)
 | 
|---|
| 113 |  . . I $D(ARRAYDA(TIUDA)) S TIUDA=0 Q
 | 
|---|
| 114 |  . . S TIUDTYP=+$G(^TIU(8925,TIUDA,0))
 | 
|---|
| 115 |  . S TIUPRINT=$$CANDO^TIULP(TIUDA,"PRINT RECORD")
 | 
|---|
| 116 |  . I +TIUPRINT'>0 D  Q  ; Exclude records user can't print
 | 
|---|
| 117 |  . . W !!,"Item #",TIUI,": ",!,$P(TIUPRINT,U,2),!
 | 
|---|
| 118 |  . . I IO=IO(0),'$D(ZTQUEUED),$$READ^TIUU("EA","RETURN to continue...")
 | 
|---|
| 119 |  . I +$G(TIUPFLG) S TIUFLAG=+$$CHARTONE^TIURA1(TIUDA)
 | 
|---|
| 120 |  . S DFN=$P($G(^TIU(8925,+TIUDA,0)),U,2)
 | 
|---|
| 121 |  . I +TIUTYP,'$G(TIUDTYP) D
 | 
|---|
| 122 |  . . S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUTYP)
 | 
|---|
| 123 |  . . S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYP)
 | 
|---|
| 124 |  . . S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYP)
 | 
|---|
| 125 |  . . S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYP)
 | 
|---|
| 126 |  . I +$G(TIUDTYP) S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUDTYP),TIUPGRP=$$PRNTGRP^TIULG(+TIUDTYP),TIUPFHDR=$$PRNTHDR^TIULG(+TIUDTYP),TIUPFNBR=$$PRNTNBR^TIULG(+TIUDTYP)
 | 
|---|
| 127 |  . I $G(TIUPMTHD)']"" D  Q  ; Exclude records lacking print method P182
 | 
|---|
| 128 |  . . W !!,"Item #",TIUI," has no Print Method.",!
 | 
|---|
| 129 |  . . I IO=IO(0),'$D(ZTQUEUED),$$READ^TIUU("EA","RETURN to continue...")
 | 
|---|
| 130 |  . ;I +$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") S TIUDARR(TIUPMTHD,$G(TIUPGRP)_"$"_TIUPFHDR_";"_DFN,TIUI,TIUDA)=TIUPFNBR
 | 
|---|
| 131 |  . ;E  S TIUDARR(TIUPMTHD,DFN,TIUI,TIUDA)=""
 | 
|---|
| 132 |  . ; -- P182: Set array same whether or not flds are defined, with
 | 
|---|
| 133 |  . ;    TIUPGRP piece possibly 0, TIUPFHDR piece possibly null, and
 | 
|---|
| 134 |  . ;    array value TIUPFNBR possibly null.
 | 
|---|
| 135 |  . S TIUDARR(TIUPMTHD,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,TIUI,TIUDA)=$G(TIUPFNBR)
 | 
|---|
| 136 |  . D:'$D(ZTQUEUED) RESTORE^VALM10(+TIUI)
 | 
|---|
| 137 |  S TIUPMTHD="" F  S TIUPMTHD=$O(TIUDARR(TIUPMTHD)) Q:TIUPMTHD=""  D
 | 
|---|
| 138 |  . D PRNTDOC(TIUPMTHD,.TIUDARR)
 | 
|---|
| 139 |  Q
 | 
|---|
| 140 | PRINT1 ; Print a single document
 | 
|---|
| 141 |  N TIUDARR,TIUDEV,TIUTYP,DFN,TIUPMTHD,TIUD0,TIUDPRM,TIUFLAG,TIUDTYP
 | 
|---|
| 142 |  N TIUPGRP,TIUPFHDR,TIUPFNBR,TIUPRINT,POP,TIUTMPDA
 | 
|---|
| 143 |  D CLEAR^VALM1
 | 
|---|
| 144 |  S TIUTMPDA=TIUDA
 | 
|---|
| 145 |  I +$$ISADDNDM^TIULC1(TIUTMPDA) D
 | 
|---|
| 146 |  . S TIUTMPDA=+$P($G(^TIU(8925,TIUTMPDA,0)),U,6)
 | 
|---|
| 147 |  . S TIUDTYP=+$G(^TIU(8925,TIUTMPDA,0))
 | 
|---|
| 148 |  I $G(^TIU(8925,TIUTMPDA,21)) D
 | 
|---|
| 149 |  . S TIUTMPDA=^TIU(8925,TIUTMPDA,21)
 | 
|---|
| 150 |  . S TIUDTYP=+$G(^TIU(8925,TIUTMPDA,0))
 | 
|---|
| 151 |  S TIUPRINT=$$CANDO^TIULP(TIUTMPDA,"PRINT RECORD")
 | 
|---|
| 152 |  I +TIUPRINT'>0 D  Q
 | 
|---|
| 153 |  . W !!,$C(7),$P(TIUPRINT,U,2),!
 | 
|---|
| 154 |  . I $$READ^TIUU("EA","RETURN to continue...") ; pause
 | 
|---|
| 155 |  I +$G(TIUDTYP) D
 | 
|---|
| 156 |  . S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUDTYP)
 | 
|---|
| 157 |  . S TIUPGRP=$$PRNTGRP^TIULG(+TIUDTYP)
 | 
|---|
| 158 |  . S TIUPFHDR=$$PRNTHDR^TIULG(+TIUDTYP)
 | 
|---|
| 159 |  . S TIUPFNBR=$$PRNTNBR^TIULG(+TIUDTYP)
 | 
|---|
| 160 |  . D DOCPRM^TIULC1(+TIUDTYP,.TIUDPRM,TIUTMPDA)
 | 
|---|
| 161 |  S TIUD0=$G(^TIU(8925,TIUTMPDA,0))
 | 
|---|
| 162 |  S TIUTYP=$P(TIUD0,U),DFN=$P(TIUD0,U,2)
 | 
|---|
| 163 |  I +TIUTYP'>0 Q
 | 
|---|
| 164 |  I '$G(TIUDTYP) D
 | 
|---|
| 165 |  . S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUTYP)
 | 
|---|
| 166 |  . S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYP)
 | 
|---|
| 167 |  . S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYP)
 | 
|---|
| 168 |  . S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYP)
 | 
|---|
| 169 |  . D DOCPRM^TIULC1(+TIUTYP,.TIUDPRM,TIUTMPDA)
 | 
|---|
| 170 |  I +$P($G(TIUDPRM(0)),U,9) S TIUFLAG=$$FLAG^TIUPRPN3
 | 
|---|
| 171 |  I (+$P($G(TIUDPRM(0)),U,9)'>0),+$$ISA^USRLM(DUZ,"MEDICAL INFORMATION SECTION") S TIUFLAG=$$FLAG^TIUPRPN3
 | 
|---|
| 172 |  ;I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") S TIUDARR(TIUPMTHD,$G(TIUPGRP)_"$"_TIUPFHDR_";"_DFN,1,TIUTMPDA)=TIUPFNBR
 | 
|---|
| 173 |  ;E  S TIUDARR(TIUPMTHD,DFN,1,TIUTMPDA)=""
 | 
|---|
| 174 |  I $G(TIUPMTHD)']"" W !,$C(7),"No Print Method Defined for ",$P($G(^TIU(8925.1,+TIUTYP,0)),U) H 2 G PRINT1X
 | 
|---|
| 175 |  ; -- P182: See PRINTN
 | 
|---|
| 176 |  S TIUDARR(TIUPMTHD,+$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUTMPDA)=$G(TIUPFNBR)
 | 
|---|
| 177 |  S TIUDEV=$$DEVICE^TIUDEV(.IO) ; Get Device
 | 
|---|
| 178 |  I $S(IO']"":1,TIUDEV']"":1,1:0) G PRINT1X
 | 
|---|
| 179 |  I $D(IO("Q")) D QUE^TIUDEV("PRINTQ^TIURA",TIUDEV) G PRINT1X
 | 
|---|
| 180 |  D PRINTQ
 | 
|---|
| 181 | PRINT1X D ^%ZISC
 | 
|---|
| 182 |  Q
 | 
|---|
| 183 | PRINTQ ; Queued document print
 | 
|---|
| 184 |  D PRNTDOC(TIUPMTHD,.TIUDARR)
 | 
|---|
| 185 |  Q
 | 
|---|
| 186 | PRNTDOC(TIUPMTHD,TIUDARR) ; Print docmts w/ Print Method TIUPMTHD in
 | 
|---|
| 187 |  ;array TIUDARR
 | 
|---|
| 188 |  ; Requires TIUPMTHD & TIUDARR
 | 
|---|
| 189 |  N TIUDA
 | 
|---|
| 190 |  I '+$D(TIUDARR) W !,"No Documents selected." Q
 | 
|---|
| 191 |  M ^TMP("TIUPR",$J)=TIUDARR(TIUPMTHD)
 | 
|---|
| 192 |  I TIUPMTHD']"" D  G PRNTDOCX
 | 
|---|
| 193 |  . W !!,"No Print Method Defined for ",$P(TIUTYP,U,2) H 2
 | 
|---|
| 194 |  X TIUPMTHD
 | 
|---|
| 195 | PRNTDOCX K ^TMP("TIUPR",$J)
 | 
|---|
| 196 |  Q
 | 
|---|
| 197 | BROWS1(TIULTMP) ; -- Call to BROWS1 for backward compatibility
 | 
|---|
| 198 |  D BROWS1^TIURA2(TIULTMP,TIUDA)
 | 
|---|
| 199 |  Q
 | 
|---|