| 1 | TIUPRPN1 ;SLC/JER - Print SF 509-Progress Notes ;10/5/04
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**45,52,87,100,162,182,211,222**;Jun 20, 1997
 | 
|---|
| 3 |  ; DBIA 908 ^SC(D0,0)
 | 
|---|
| 4 | PRINT(TIUFLAG,TIUSPG) ; Print Document
 | 
|---|
| 5 |  ; ^TMP("TIUPR",$J) is array of records to be printed
 | 
|---|
| 6 |  ; TIUFLAG=1 --> Chart Copy     TIUSPG=1 --> Contiguous
 | 
|---|
| 7 |  ; TIUFLAG=0 --> Work Copy      TIUSPG=0 --> Fresh Page- each note
 | 
|---|
| 8 |  ; TIUCONT=1 --> Continue printing
 | 
|---|
| 9 |  ; TIUCONT1=1 --> Write "Continue to next/from previous-page" msgs
 | 
|---|
| 10 |  ; TIUPFNBR ---> Print Form # like vice 509
 | 
|---|
| 11 |  ; TIUMISC=TIUFLAG_U_TIUPFNBR_U_TIUDA
 | 
|---|
| 12 |  N CONT,TIUASK,TIUI,TIUJ,TIUKID,TIUPAGE,TIUFOOT,TIUK,TIUDA,TIUCONT,TIUPGRP,TIUTYP
 | 
|---|
| 13 |  N TIUPFHDR,TIUPFNBR,TIUMISC,TIUCONT1,TIUIDONE,TMP
 | 
|---|
| 14 |  S TIUFLAG=+$G(TIUFLAG),TIUSPG=+$G(TIUSPG)
 | 
|---|
| 15 |  S (CONT,TIUCONT)=1,(TIUASK,TIUCONT1)=0
 | 
|---|
| 16 |  S TIUI=0 F  S TIUI=$O(^TMP("TIUPR",$J,TIUI)) Q:TIUI=""  D  Q:'TIUCONT
 | 
|---|
| 17 |  . N DFN,TIU
 | 
|---|
| 18 |  . ; -- P182 TIUI has form PGRP$PFHDR;DFN with PGRP possibly 0, and
 | 
|---|
| 19 |  . ;    PFHDR possibly null (see TIURA):
 | 
|---|
| 20 |  . S TIUPGRP=+$P(TIUI,"$"),TIUPFHDR=$P($P(TIUI,";"),"$",2)
 | 
|---|
| 21 |  . I TIUPFHDR']"" S TIUPFHDR="Progress Notes"
 | 
|---|
| 22 |  . S DFN=$P(TIUI,";",2)
 | 
|---|
| 23 |  . I $G(TIUPGRP)>2 S TIUSPG=0
 | 
|---|
| 24 |  . D PATPN^TIULV(.TIUFOOT,DFN)
 | 
|---|
| 25 |  . I +$G(TIUSPG) D HEADER^TIUPRPN2(.TIUFOOT,TIUFLAG,.TIUPFHDR,TIUCONT1)
 | 
|---|
| 26 |  . ; Use TIUJ="" (not TIUJ=0), to print "complete" notes w/o sigdt:
 | 
|---|
| 27 |  . S TIUJ="" F  S TIUJ=$O(^TMP("TIUPR",$J,TIUI,TIUJ)) Q:TIUJ=""  D  Q:'TIUCONT
 | 
|---|
| 28 |  . . S TIUK=0 F  S TIUK=$O(^TMP("TIUPR",$J,TIUI,TIUJ,TIUK)) Q:'TIUK  D  Q:'TIUCONT
 | 
|---|
| 29 |  . . . S TIUCONT1=0 S TIUPFNBR=^TMP("TIUPR",$J,TIUI,TIUJ,TIUK)
 | 
|---|
| 30 |  . . . ; Note: TIUPFNBR may be null
 | 
|---|
| 31 |  . . . ;P182 Set TIUMISC BEFORE quitting if deleted
 | 
|---|
| 32 |  . . . S TIUDA=TIUK,TIUMISC=TIUFLAG_U_TIUPFNBR_U_TIUDA
 | 
|---|
| 33 |  . . . ; Quit docmt if deleted:
 | 
|---|
| 34 |  . . . I '$D(^TIU(8925,+TIUDA,0)) D  Q
 | 
|---|
| 35 |  . . . . S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 36 |  . . . . W !!,"NOTE DATED:",!,"Document #",TIUDA," for ",$G(TIUFOOT("PNMP")),!,"no longer exists in the TIU DOCUMENT file.",!!!
 | 
|---|
| 37 |  . . . . S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT))
 | 
|---|
| 38 |  . . . N TIUROOT
 | 
|---|
| 39 |  . . . I '+$G(TIUSPG) D HEADER^TIUPRPN2(.TIUFOOT,TIUFLAG,.TIUPFHDR,TIUCONT1)
 | 
|---|
| 40 |  . . . K ^TMP("TIULQ",$J)
 | 
|---|
| 41 |  . . . D EXTRACT^TIULQ(+TIUDA,"^TMP(""TIULQ"",$J)",.TIUERR,"","",1)
 | 
|---|
| 42 |  . . . I +$G(TIUERR) W !,$P(TIUERR,U,2) Q
 | 
|---|
| 43 |  . . . Q:'$D(^TMP("TIULQ",$J))
 | 
|---|
| 44 |  . . . S TIUROOT="^TMP(""TIULQ"",$J,"_TIUDA_")"
 | 
|---|
| 45 |  . . . D REPORT(TIUROOT,.TIUFOOT,TIUMISC,.TIUCONT) Q:'TIUCONT
 | 
|---|
| 46 |  . . . D IDKIDS(TIUROOT,.TIUFOOT,TIUMISC,TIUCONT1,.TIUCONT) Q:'TIUCONT
 | 
|---|
| 47 |  . . . I '+$G(TIUKID),'+$G(TIUSPG) S TIUCONT1=0 S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,1,$G(TIUROOT))
 | 
|---|
| 48 |  . Q:'TIUCONT
 | 
|---|
| 49 |  . I $E(IOST,1,2)="C-" S TIUCONT=$$STOP^TIUPRPN2() Q:'TIUCONT
 | 
|---|
| 50 |  . I '+$G(TIUKID),+$G(TIUSPG),$E(IOST,1,2)'="C-" S TIUCONT1=0 S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,1,$G(TIUROOT))
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | REPORT(TIUROOT,TIUFOOT,TIUMISC,TIUCONT,TIUIDEND) ; Report Text
 | 
|---|
| 54 |  ; Requires array TIUFOOT, vars TIUMISC, TIUCONT
 | 
|---|
| 55 |  ; Requires TIUROOT =
 | 
|---|
| 56 |  ; ^TMP("TIULQ",$J,NOTEIFN) for parent/stand-alone note, or
 | 
|---|
| 57 |  ; ^TMP("TIULQ",$J,NOTEIFN,"ZADD",ADDMIFN) for addendum, or
 | 
|---|
| 58 |  ; ^TMP("TIULQ",$J,NOTEIFN,"ZZID",KIDSEQ#,IDKIDIFN) for ID kid, or
 | 
|---|
| 59 |  ; ^TMP("TIULQ",$J,NOTEIFN,"ZZID",KIDSEQ#,IDKIDIFN,"ZADD",KIDADDMIFN)
 | 
|---|
| 60 |  ;       for ID kid addm.
 | 
|---|
| 61 |  N DIW,DIWF,DIWL,DIWR,DIWT,TIUERR,TIU,TIUI,X,Z,LOC
 | 
|---|
| 62 |  N REFDT,TITLE,LOINCNM,ADT,HLOC,SUBJ
 | 
|---|
| 63 |  N TIUDA,TIUCONT1,HASIDKID,HASIDDAD
 | 
|---|
| 64 |  S TIUDA=$P(TIUMISC,U,3),TIUCONT1=0
 | 
|---|
| 65 |  S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 66 |  S HASIDKID=$G(^TMP("TIULQ",$J,TIUDA,"ZZID",0)) ;how many ID kids
 | 
|---|
| 67 |  S HASIDDAD=$S(TIUROOT["ZZID":1,1:0)
 | 
|---|
| 68 |  I HASIDKID W "<< Interdisciplinary Note - Begin >>",!
 | 
|---|
| 69 |  I HASIDDAD W "<< Interdisciplinary Note - Cont. >>",!
 | 
|---|
| 70 |  W $S('HASIDKID&'HASIDDAD:"NOTE DATED: ",1:"ENTRY DATED: ")
 | 
|---|
| 71 |  S REFDT=@TIUROOT@(1301,"I")
 | 
|---|
| 72 |  W $$DATE^TIULS(REFDT,"MM/DD/CCYY HR:MIN")
 | 
|---|
| 73 |  S TITLE=@TIUROOT@(.01,"E") ; ,LOINCNM=@TIUROOT@(89261,"E")
 | 
|---|
| 74 |  W !,"LOCAL TITLE: ",$$UP^XLFSTR(TITLE),!
 | 
|---|
| 75 |  ; I $L(LOINCNM)>1 W "STANDARD TITLE: ",$$UP^XLFSTR(LOINCNM),!
 | 
|---|
| 76 |  S LOC=$G(@TIUROOT@(1205,"I"))
 | 
|---|
| 77 |  I +LOC D
 | 
|---|
| 78 |  . W $S($P(^SC(LOC,0),U,3)="W":"ADMITTED: ",1:"VISIT: ")
 | 
|---|
| 79 |  . S ADT=$G(@TIUROOT@(.07,"I"))
 | 
|---|
| 80 |  . W $$DATE^TIULS(ADT,"MM/DD/CCYY HR:MIN")
 | 
|---|
| 81 |  . S HLOC=$G(@TIUROOT@(1205,"E"))
 | 
|---|
| 82 |  . W " ",HLOC
 | 
|---|
| 83 |  S SUBJ=$G(@TIUROOT@(1701,"E"))
 | 
|---|
| 84 |  I SUBJ]"" W !,"SUBJECT: ",^("E"),!
 | 
|---|
| 85 |  S TIUCONT1=1
 | 
|---|
| 86 |  I $D(@TIUROOT@("PROBLEM")) D  Q:'TIUCONT
 | 
|---|
| 87 |  . S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 88 |  . W !,"ASSOCIATED PROBLEMS:"
 | 
|---|
| 89 |  . N TIUI S TIUI=0
 | 
|---|
| 90 |  . F  S TIUI=$O(@TIUROOT@("PROBLEM",TIUI)) Q:'TIUI  D  Q:'TIUCONT
 | 
|---|
| 91 |  ..W !,^(TIUI,0)
 | 
|---|
| 92 |  ..S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 93 |  W !
 | 
|---|
| 94 |  S TIUI=0,DIWF="WN",DIWL=1,DIWR=79 K ^UTILITY($J,"W")
 | 
|---|
| 95 |  F  S TIUI=$O(@TIUROOT@("TEXT",TIUI)) Q:TIUI'>0  D  Q:'TIUCONT  ; D ^DIWW
 | 
|---|
| 96 |  . S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 97 |  . S X=@TIUROOT@("TEXT",TIUI,0) S:X="" X=" " D ^DIWP
 | 
|---|
| 98 |  D ^DIWW K ^UTILITY($J,"W")
 | 
|---|
| 99 |  Q:'TIUCONT
 | 
|---|
| 100 |  D GETSIG(TIUROOT,.TIUSIG)
 | 
|---|
| 101 |  S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 102 |  W !
 | 
|---|
| 103 |  D SIGBLK^TIUPRPN8(.TIUFOOT,TIUMISC,TIUCONT1,.TIUCONT,.TIUSIG,TIUROOT)
 | 
|---|
| 104 |  Q:'TIUCONT
 | 
|---|
| 105 | ADDENDA ; Fall through and do Addenda of docmt TIUDA
 | 
|---|
| 106 |  N DIW,DIWF,DIWL,DIWR,DIWT,X,Z,TIUI,TIUADD,ADDMRDT
 | 
|---|
| 107 |  S TIUADD=0,DIWF="WN",DIWL=1,DIWR=79 K ^UTILITY($J,"W")
 | 
|---|
| 108 |  F  S TIUADD=$O(@TIUROOT@("ZADD",TIUADD)) Q:TIUADD'>0  D  Q:'TIUCONT
 | 
|---|
| 109 |  . S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 110 |  . S ADDMRDT=@TIUROOT@("ZADD",TIUADD,1301,"I")
 | 
|---|
| 111 |  . W !!,$$DATE^TIULS(ADDMRDT,"MM/DD/CCYY HR:MIN"),?21,"ADDENDUM"
 | 
|---|
| 112 |  . W ?39,"STATUS: ",@TIUROOT@("ZADD",TIUADD,.05,"E") ;P162
 | 
|---|
| 113 |  . S TIUI=0
 | 
|---|
| 114 |  . F  S TIUI=$O(@TIUROOT@("ZADD",TIUADD,"TEXT",TIUI)) Q:TIUI'>0  D  Q:'TIUCONT
 | 
|---|
| 115 |  . . S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,0,$G(TIUROOT)) Q:'TIUCONT
 | 
|---|
| 116 |  . . S X=@TIUROOT@("ZADD",TIUADD,"TEXT",TIUI,0) S:X="" X=" " D ^DIWP
 | 
|---|
| 117 |  . D ^DIWW
 | 
|---|
| 118 |  . Q:'TIUCONT
 | 
|---|
| 119 |  . N TIUADRT
 | 
|---|
| 120 |  . S TIUADRT=$P(TIUROOT,")")_",""ZADD"","_TIUADD_")"
 | 
|---|
| 121 |  . D GETSIG(TIUADRT,.TIUSIG)
 | 
|---|
| 122 |  . D SIGBLK^TIUPRPN8(.TIUFOOT,TIUMISC,TIUCONT1,.TIUCONT,.TIUSIG,TIUADRT)
 | 
|---|
| 123 |  ; Need ! in front for amended notes:
 | 
|---|
| 124 |  I $G(TIUIDEND) W !,"<< Interdisciplinary Note - End >>",!
 | 
|---|
| 125 |  K ^UTILITY($J,"W")
 | 
|---|
| 126 |  ; Write 2 linefeeds between records
 | 
|---|
| 127 |  S:$E(IOST,1,2)="C-" TIUCONT=$$STOP^TIUFLP1,TIUASK=1
 | 
|---|
| 128 |  W:TIUCONT !!
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 | IDKIDS(TIUROOT,TIUFOOT,TIUMISC,TIUCONT1,TIUCONT) ; Print ID kids
 | 
|---|
| 132 |  ;of docmt TIUDA (each kid does its own addenda)
 | 
|---|
| 133 |  N TIUL,KIDDA,TIUDA,TIUSORT,TIUIDRT,TIUIDEND
 | 
|---|
| 134 |  S TIUDA=$P(TIUMISC,U,3),TIUIDEND=0
 | 
|---|
| 135 |  S TIUL=0
 | 
|---|
| 136 |  F  S TIUL=$O(^TMP("TIULQ",$J,TIUDA,"ZZID",TIUL)) Q:'TIUL  D  Q:'TIUCONT
 | 
|---|
| 137 |  . S KIDDA=$O(^TMP("TIULQ",$J,TIUDA,"ZZID",TIUL,0))
 | 
|---|
| 138 |  . I +$$MEMBEROF^TIUPR222(+$G(^TIU(8925,+KIDDA,0)),"FORM LETTERS") D  Q  ; hand off to TIUFLP1 (Form Letter Print)
 | 
|---|
| 139 |  . . I '+$G(TIUKID),'+$G(TIUSPG) S TIUCONT1=0 S TIUCONT=$$SETCONT(.TIUFOOT,TIUMISC,TIUCONT1,1,$G(TIUROOT))
 | 
|---|
| 140 |  . . I 'TIUCONT!'CONT Q
 | 
|---|
| 141 |  . . I $E(IOST,1,2)="C-",'+TIUASK S CONT=$$STOP^TIUFLP1,TIUCONT=CONT Q:'+CONT
 | 
|---|
| 142 |  . . S TIUASK=0,TIUKID=1 D IDKID^TIUFLP1(TIUDA,KIDDA)
 | 
|---|
| 143 |  . S TIUMISC=TIUFLAG_U_TIUPFNBR_U_KIDDA
 | 
|---|
| 144 |  . S TIUIDRT="^TMP(""TIULQ"",$J,"_TIUDA_",""ZZID"","_TIUL_","_KIDDA_")"
 | 
|---|
| 145 |  . I '$O(^TMP("TIULQ",$J,TIUDA,"ZZID",TIUL)) S TIUIDEND=1
 | 
|---|
| 146 |  . D REPORT(TIUIDRT,.TIUFOOT,TIUMISC,.TIUCONT,TIUIDEND)
 | 
|---|
| 147 |  Q
 | 
|---|
| 148 |  ;
 | 
|---|
| 149 | GETSIG(TIUROOT,TIUSIG) ; Get signature info from TIULQ global;
 | 
|---|
| 150 |  ; Set info into TIUSIG array **100**
 | 
|---|
| 151 |  ; Requires array name TIUROOT; passes back array TIUSIG
 | 
|---|
| 152 |  ; TIUROOT = ^TMP("TIULQ",$J,NOTEIFN) for parent note, or
 | 
|---|
| 153 |  ;           ^TMP("TIULQ",$J,NOTEIFN,"ZADD",ADDMIFN) for addendum, or
 | 
|---|
| 154 |  ;           ^TMP("TIULQ",$J,NOTEIFN,"ZZID",IDKIDIFN) for ID kid.
 | 
|---|
| 155 |  ; Signature should be on bottom of form, Addenda on Subsequent pages
 | 
|---|
| 156 |  N TIULINE S $P(TIULINE,"-",81)=""
 | 
|---|
| 157 |  S TIUSIG("AUTHOR")=$G(@TIUROOT@(1202,"I"))_";"_$G(^("E"))
 | 
|---|
| 158 |  S TIUSIG("EXPSIGNR")=$G(@TIUROOT@(1204,"I"))_";"_$G(^("E"))
 | 
|---|
| 159 |  S TIUSIG("EXPCOSNR")=$G(@TIUROOT@(1208,"I"))_";"_$G(^("E"))
 | 
|---|
| 160 |  S TIUSIG("SIGNDATE")=$G(@TIUROOT@(1501,"I"))
 | 
|---|
| 161 |  S TIUSIG("SIGNEDBY")=$G(@TIUROOT@(1502,"I"))_";"_$G(^("E"))
 | 
|---|
| 162 |  S TIUSIG("SIGNNAME")=$G(@TIUROOT@(1503,"E"))
 | 
|---|
| 163 |  S TIUSIG("SIGTITL")=$G(@TIUROOT@(1504,"E"))
 | 
|---|
| 164 |  S TIUSIG("SIGNMODE")=$G(@TIUROOT@(1505,"I"))_";"_$G(^("E"))
 | 
|---|
| 165 |  S TIUSIG("COSGDATE")=$G(@TIUROOT@(1507,"I"))
 | 
|---|
| 166 |  S TIUSIG("COSGEDBY")=$G(@TIUROOT@(1508,"I"))_";"_$G(^("E"))
 | 
|---|
| 167 |  S TIUSIG("COSGNAME")=$G(@TIUROOT@(1509,"E"))
 | 
|---|
| 168 |  S TIUSIG("COSGTITL")=$G(@TIUROOT@(1510,"E"))
 | 
|---|
| 169 |  S TIUSIG("COSGMODE")=$G(@TIUROOT@(1511,"I"))_";"_$G(^("E"))
 | 
|---|
| 170 |  S TIUSIG("SIGCHRT")=$G(@TIUROOT@(1512,"I"))_";"_$G(^("E"))
 | 
|---|
| 171 |  S TIUSIG("COSCHRT")=$G(@TIUROOT@(1513,"I"))_";"_$G(^("E"))
 | 
|---|
| 172 |  ; -- P182 Set Admin Clos Date:
 | 
|---|
| 173 |  S TIUSIG("ADMINCDT")=$G(@TIUROOT@(1606,"I"))_";"_$G(^("E"))
 | 
|---|
| 174 |  Q
 | 
|---|
| 175 |  ;
 | 
|---|
| 176 | SETCONT(TIUFOOT,TIUMISC,TIUCONT1,TIUHEAD,TIUROOT) ;Does footer
 | 
|---|
| 177 |  ;and returns TIUCONT
 | 
|---|
| 178 |  ; Requires array TIUFOOT, vars TIUMISC,TIUCONT1; optional TIUHEAD
 | 
|---|
| 179 |  ; Optional TIUROOT
 | 
|---|
| 180 |  Q $$FOOTER^TIUPRPN2(.TIUFOOT,TIUMISC,TIUCONT1,TIUHEAD,$G(TIUROOT))
 | 
|---|