| 1 | TIUBR ; SLC/JER - Browse Action Subroutines ;8/16/06  09:08 | 
|---|
| 2 | ;;1.0;TEXT INTEGRATION UTILITIES;**32,87,93,58,100,162,112,173,208,211**;Jun 20, 1997;Build 26 | 
|---|
| 3 | ; Move LOADSIG, XTRASIG, LOADFOR, LOADREC to TIUBR1. | 
|---|
| 4 | EN ; Entry code for LM templates TIU BROWSE | 
|---|
| 5 | N TIUY | 
|---|
| 6 | ;Kill TIUGDATA in CLEAN; don't new it here | 
|---|
| 7 | ; -- Set TIUGDATA, which describes the note originally | 
|---|
| 8 | ;    selected to be browsed. -- | 
|---|
| 9 | ; TIUGDATA = 0 or | 
|---|
| 10 | ;          = TIUDA^HASIDKID^TIUD21^PRMSORT, where | 
|---|
| 11 | ;            PRMSORT = "TITLE" or "REFDT".  See 8925.95, fld .18 | 
|---|
| 12 | S TIUGDATA=$$IDDATA^TIURECL1(TIUDA) | 
|---|
| 13 | D BLDTMP(TIUDA) | 
|---|
| 14 | Q | 
|---|
| 15 | HDR ; Build Header | 
|---|
| 16 | N TIUDTYP,DFN | 
|---|
| 17 | I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE | 
|---|
| 18 | D:$D(TIU)'>9 GETTIU^TIULD(.TIU,+TIUDA) | 
|---|
| 19 | S VALMHDR(1)=$$CENTER^TIULS($P($G(TIU("DOCTYP")),U,2)) | 
|---|
| 20 | ;  Docmt header line Patname, SSN, [Location, Visit]: | 
|---|
| 21 | S VALMHDR(2)=$$SETREC(TIUGDATA) | 
|---|
| 22 | Q | 
|---|
| 23 | BLDTMP(TIUDA) ; Build ^TMP("TIUVIEW",$J, | 
|---|
| 24 | ; Requires TIUDA = IFN of note selected to be browsed. | 
|---|
| 25 | ; Needs TIUGDATA, set in EN | 
|---|
| 26 | N TIUI,TIUL,TIUREC,TIUDADD,ONBROWSE S (TIUDADD,TIUI)=0 | 
|---|
| 27 | N TIUNAME K ^TMP("TIUVIEW",$J),^TMP("TIU FOCUS",$J) | 
|---|
| 28 | I '$D(^TIU(8925,+TIUDA,0)) S VALMQUIT=1 Q | 
|---|
| 29 | S ^TMP("TIU FOCUS",$J)=TIUDA | 
|---|
| 30 | D INQUIRE^TIUGBR(TIUDA,.TIUREC) | 
|---|
| 31 | I $D(TIUREC)>9 W !!,"Opening "_TIUREC(8925,+TIUDA,.01)_" record for review..." | 
|---|
| 32 | ; --- if the document has a browse action, execute it --- | 
|---|
| 33 | S ONBROWSE=$$ONBROWSE^TIULC1(+$G(^TIU(8925,+TIUDA,0))) | 
|---|
| 34 | I $L(ONBROWSE) D LOADSUPP(ONBROWSE,TIUDA,.TIUL) | 
|---|
| 35 | ; ---- Load dictation, transcription data, etc.: ---- | 
|---|
| 36 | D LOADTOP(.TIUREC,TIUDA,.TIUL,TIUGDATA) | 
|---|
| 37 | ; ---- Load the remainder of the record: ---- | 
|---|
| 38 | D LOADREC^TIUBR1(TIUDA,.TIUL,TIUGDATA) | 
|---|
| 39 | K ^TMP("TIU FOCUS",$J) | 
|---|
| 40 | S ^TMP("TIUVIEW",$J,0)=$G(^TIU(8925,+TIUDA,"TEXT",0)) | 
|---|
| 41 | S $P(^TMP("TIUVIEW",$J,0),U,3,4)=$G(TIUL)_U_$G(TIUL),VALMCNT=+$G(TIUL) | 
|---|
| 42 | Q | 
|---|
| 43 | LOADSUPP(METHOD,TIUDA,TIUL) ; Execute OnBrowse/Load Supplementary data | 
|---|
| 44 | N TIUY,TIUI S TIUI=0 | 
|---|
| 45 | X METHOD I '$D(@TIUY) Q | 
|---|
| 46 | F  S TIUI=$O(@TIUY@(TIUI)) Q:+TIUI'>0  D | 
|---|
| 47 | . S TIUL=+$G(TIUL)+1,@VALMAR@(TIUL,0)=$G(@TIUY@(TIUI)) | 
|---|
| 48 | S TIUL=+$G(TIUL)+1,@VALMAR@(TIUL,0)=" " | 
|---|
| 49 | K @TIUY | 
|---|
| 50 | Q | 
|---|
| 51 | LOADTOP(TIUREC,TIUDA,TIUL,TIUGDATA) ; Load dictation, transcription data, etc. | 
|---|
| 52 | ; Requires array TIUREC, TIUDA, array TIUL, TIUGDATA | 
|---|
| 53 | N TIUY,SHORT,CURCHLD,CURPRNT,SELCHLD,SELPRNT | 
|---|
| 54 | ; ---- For ID note, include Title, [Location, & Visit] with each | 
|---|
| 55 | ;      entry, since they vary by entry. | 
|---|
| 56 | ; ---- Follow with Date, Author, etc. | 
|---|
| 57 | ; ---- For ID children in whole note display, shorten top info: | 
|---|
| 58 | ;      Instead of Title, Location, Visit, Date, Author, etc., | 
|---|
| 59 | ;      use just Title, followed by just Date and Status: | 
|---|
| 60 | S (SHORT,CURCHLD,CURPRNT,SELCHLD,SELPRNT)=0 | 
|---|
| 61 | I $P(TIUGDATA,U,3) S SELCHLD=1 ; Selected record was IDchild | 
|---|
| 62 | I $P(TIUGDATA,U,2) S SELPRNT=1 | 
|---|
| 63 | I SELCHLD,TIUDA'=$P(TIUGDATA,U,3) S CURCHLD=1 ; Current rec is IDchild | 
|---|
| 64 | I SELCHLD,TIUDA=$P(TIUGDATA,U,3) S CURPRNT=1 | 
|---|
| 65 | I SELPRNT,TIUDA=+TIUGDATA S CURPRNT=1 | 
|---|
| 66 | I SELPRNT,TIUDA'=+TIUGDATA S CURCHLD=1 | 
|---|
| 67 | I SELPRNT,CURCHLD S SHORT=1 ;Child in whole note: shorten top info | 
|---|
| 68 | I SELCHLD,CURCHLD,$G(TIUGWHOL) S SHORT=1 | 
|---|
| 69 | I SELCHLD!SELPRNT D | 
|---|
| 70 | . D IDTOP^TIUGBR(TIUDA,.TIUL,SHORT,CURPRNT) | 
|---|
| 71 | S TIUL=+$G(TIUL)+1,TIUY="" | 
|---|
| 72 | I $L(TIUREC(8925,+TIUDA,89261)) D | 
|---|
| 73 | . S TIUY=$$SETSTR^VALM1("STANDARD TITLE: "_TIUREC(8925,+TIUDA,89261),TIUY,1,64) | 
|---|
| 74 | . S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 75 | . S TIUL=TIUL+1,TIUY="" | 
|---|
| 76 | I SHORT D | 
|---|
| 77 | . S TIUY=$$SETSTR^VALM1("DATE OF NOTE: "_TIUREC(8925,+TIUDA,1301),$G(TIUY),1,39) | 
|---|
| 78 | . S TIUY=$$SETSTR^VALM1("STATUS: "_TIUREC(8925,+TIUDA,.05),$G(TIUY),42,38) | 
|---|
| 79 | . S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 80 | I 'SHORT D | 
|---|
| 81 | . I $L(TIUREC(8925,+TIUDA,1307)) D  I 1 | 
|---|
| 82 | . . S TIUY=$$SETSTR^VALM1("DICT DATE: "_TIUREC(8925,+TIUDA,1307),$G(TIUY),4,39) | 
|---|
| 83 | . E  S TIUY=$$SETSTR^VALM1("DATE OF NOTE: "_TIUREC(8925,+TIUDA,1301),$G(TIUY),1,39) | 
|---|
| 84 | . S TIUY=$$SETSTR^VALM1("ENTRY DATE: "_TIUREC(8925,+TIUDA,1201),$G(TIUY),38,39) | 
|---|
| 85 | . S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 86 | . S TIUL=TIUL+1,TIUY="" | 
|---|
| 87 | . I $L(TIUREC(8925,+TIUDA,1307)) D  I 1 | 
|---|
| 88 | . . I +$G(^TIU(8925,+TIUDA,0))=$$CHKFILE^TIUADCL(8925.1,"OPERATION REPORT","I $P(^(0),U,4)=""DOC""") S TIUY=$$SETSTR^VALM1("SURGEON: "_TIUREC(8925,+TIUDA,1202),$G(TIUY),6,32) Q | 
|---|
| 89 | . . S TIUY=$$SETSTR^VALM1("DICTATED BY: "_TIUREC(8925,+TIUDA,1202),$G(TIUY),2,32) | 
|---|
| 90 | . E  D | 
|---|
| 91 | . . S TIUY=$$SETSTR^VALM1("AUTHOR: "_TIUREC(8925,+TIUDA,1202),$G(TIUY),7,27) | 
|---|
| 92 | . . I +$G(^TIU(8925,+TIUDA,0))=$$CHKFILE^TIUADCL(8925.1,"OPERATION REPORT","I $P(^(0),U,4)=""DOC""") S TIUY=$$SETSTR^VALM1("SURGEON: "_TIUREC(8925,+TIUDA,1202),$G(TIUY),6,32) | 
|---|
| 93 | . I $L(TIUREC(8925,+TIUDA,1209)) D  I 1 | 
|---|
| 94 | . . S TIUY=$$SETSTR^VALM1("ATTENDING: "_TIUREC(8925,+TIUDA,1209),$G(TIUY),39,40) | 
|---|
| 95 | . E  S TIUY=$$SETSTR^VALM1("EXP COSIGNER: "_TIUREC(8925,+TIUDA,1208),$G(TIUY),36,40) | 
|---|
| 96 | . S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 97 | . S TIUL=TIUL+1,TIUY="" | 
|---|
| 98 | . S TIUY=$$SETSTR^VALM1("URGENCY: "_TIUREC(8925,+TIUDA,.09),$G(TIUY),6,36) | 
|---|
| 99 | . S TIUY=$$SETSTR^VALM1("STATUS: "_TIUREC(8925,+TIUDA,.05),$G(TIUY),42,38) | 
|---|
| 100 | . S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 101 | S TIUL=TIUL+1,TIUY="" | 
|---|
| 102 | I '$L($G(^TIU(8925,+TIUDA,17))) S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 103 | E  D | 
|---|
| 104 | . S TIUY=$$SETSTR^VALM1("SUBJECT: "_$G(^TIU(8925,+TIUDA,17)),$G(TIUY),6,74) | 
|---|
| 105 | . S @VALMAR@(TIUL,0)=TIUY | 
|---|
| 106 | . S TIUL=TIUL+1,TIUY="",@VALMAR@(TIUL,0)=TIUY | 
|---|
| 107 | I +$$HASADDEN^TIULC1(TIUDA) D | 
|---|
| 108 | . S TIUY="   *** "_$$PNAME^TIULC1(+$G(^TIU(8925,TIUDA,0)))_" Has ADDENDA ***" | 
|---|
| 109 | . S TIUL=+$G(TIUL)+1,@VALMAR@(TIUL,0)=TIUY | 
|---|
| 110 | . S TIUL=+$G(TIUL)+1,@VALMAR@(TIUL,0)="" | 
|---|
| 111 | Q | 
|---|
| 112 | ; | 
|---|
| 113 | LOADKIDS(TIUDA,TIUL,TIUGDATA,TIUGWHOL) ; Load ID kids of TIUDA | 
|---|
| 114 | ; Requires TIUDA, array TIUL, TIUGDATA | 
|---|
| 115 | N TIUK,PRMSORT,KIDDA,TIUD0,TIUD21 | 
|---|
| 116 | I $G(^TMP("TIUR",$J,"IDDATA",TIUDA)) S PRMSORT=$P(^TMP("TIUR",$J,"IDDATA",TIUDA),U,4) | 
|---|
| 117 | E  S TIUD0=$G(^TIU(8925,TIUDA,0)),TIUD21=$G(^TIU(8925,TIUDA,21)),PRMSORT=$P($$IDDATA^TIURECL1(TIUDA,TIUD0,TIUD21),U,4) | 
|---|
| 118 | D GETIDKID^TIURECL2(TIUDA,PRMSORT) ; sets array ^TMP("TIUIDKID",$J, | 
|---|
| 119 | S TIUK=0 | 
|---|
| 120 | F  S TIUK=$O(^TMP("TIUIDKID",$J,TIUDA,TIUK)) Q:+TIUK'>0  D | 
|---|
| 121 | . S KIDDA=^TMP("TIUIDKID",$J,TIUDA,TIUK) | 
|---|
| 122 | . D LOADID^TIUGBR(KIDDA,.TIUL,TIUGDATA,$G(TIUGWHOL)) | 
|---|
| 123 | K ^TMP("TIUIDKID",$J) | 
|---|
| 124 | Q | 
|---|
| 125 | ; | 
|---|
| 126 | ISCOMP(DA) ; Evaluate whether a given record is a component | 
|---|
| 127 | N TIUY,TIUTYP | 
|---|
| 128 | S TIUTYP=+$G(^TIU(8925,DA,0)) | 
|---|
| 129 | S TIUY=$S($P($G(^TIU(8925.1,+TIUTYP,0)),U,4)="CO":1,1:0) | 
|---|
| 130 | Q TIUY | 
|---|
| 131 | LOADADD(TIUDADD,TIUL) ; Load addenda | 
|---|
| 132 | N TIUDADT,TIUJ,CANSEE | 
|---|
| 133 | S CANSEE=$$CANDO^TIULP(+TIUDADD,"VIEW") | 
|---|
| 134 | S TIUJ=0,TIUL=+$G(TIUL)+1,@VALMAR@(TIUL,0)=" " | 
|---|
| 135 | S TIUDADT=$$DATE^TIULS($P($G(^TIU(8925,+TIUDADD,13)),U),"MM/DD/CCYY") | 
|---|
| 136 | S TIUL=TIUL+1,@VALMAR@(TIUL,0)=TIUDADT_" ADDENDUM"_"                      STATUS: "_$$STATUS^TIULF(TIUDADD) ;P162 | 
|---|
| 137 | I +CANSEE'>0 D  Q | 
|---|
| 138 | . S TIUL=+$G(TIUL)+1 | 
|---|
| 139 | . S @VALMAR@(TIUL,0)=$P(CANSEE,U,2) | 
|---|
| 140 | F  S TIUJ=$O(^TIU(8925,+TIUDADD,"TEXT",TIUJ)) Q:+TIUJ'>0  D | 
|---|
| 141 | . S TIUL=+$G(TIUL)+1 | 
|---|
| 142 | . S @VALMAR@(TIUL,0)=$G(^TIU(8925,+TIUDADD,"TEXT",TIUJ,0)) | 
|---|
| 143 | D LOADSIG^TIUBR1(TIUDADD,.TIUL) | 
|---|
| 144 | Q | 
|---|
| 145 | ; | 
|---|
| 146 | SETREC(TIUGDATA) ; Sets docmt header line Patname, SSN, [Location, Visit] | 
|---|
| 147 | ; Requires TIUGDATA | 
|---|
| 148 | N Y | 
|---|
| 149 | S Y=$$SETSTR^VALM1($$NAME^TIULS($G(TIU("PNM")),"LAST,FI MI"),$G(Y),1,15) | 
|---|
| 150 | S Y=$$SETSTR^VALM1($G(TIU("SSN")),$G(Y),16,12) | 
|---|
| 151 | ; ---- If TIUDA is an ID entry, write ID, ADDENDED? in header | 
|---|
| 152 | ;      and leave out entry-specific info (Location, Visit) | 
|---|
| 153 | ;      since that goes with each individual entry: ---- | 
|---|
| 154 | I $P(TIUGDATA,U,2)!$P(TIUGDATA,U,3) D  G SETRX | 
|---|
| 155 | . S Y=$$SETSTR^VALM1("Interdisciplinary "_$S($P(TIUGDATA,U,2):"Note",1:"Entry"),$G(Y),29,23) | 
|---|
| 156 | . I $P(TIUGDATA,U,2) S Y=$$SETSTR^VALM1("ADDENDED?"_$S($$HASADDEN^TIULC1(+TIUDA,1):" Yes",1:" No"),$G(Y),66,13) | 
|---|
| 157 | S Y=$$SETSTR^VALM1($P($G(TIU("LOC")),U,2),$G(Y),30,17) | 
|---|
| 158 | I $L($G(TIU("WARD"))) D | 
|---|
| 159 | . S Y=$$SETSTR^VALM1("Adm: "_$$DATE^TIULS(+TIU("EDT"),"MM/DD/CCYY"),$G(Y),48,15) | 
|---|
| 160 | . S Y=$$SETSTR^VALM1("Dis: "_$$DATE^TIULS(+TIU("LDT"),"MM/DD/CCYY"),$G(Y),65,15) | 
|---|
| 161 | I '$L($G(TIU("WARD"))) D | 
|---|
| 162 | . S Y=$$SETSTR^VALM1("Visit Date: "_$$DATE^TIULS(+$G(TIU("EDT")),"MM/DD/CCYY HR:MIN"),$G(Y),51,28) | 
|---|
| 163 | SETRX Q Y | 
|---|
| 164 | ; | 
|---|
| 165 | CLEAN ; Die, filthy spawn!!! | 
|---|
| 166 | D CLEAN^VALM10 K VALMHDR,TIU,TIUPRM0,TIUPRM1,TIUGDATA | 
|---|
| 167 | Q | 
|---|