| 1 | TIUSRVR2 ; SLC/JER - RPC for record-wise GET ; 4/14/03 | 
|---|
| 2 | ;;1.0;TEXT INTEGRATION UTILITIES;**100,109,162,222**;Jun 20, 1997 | 
|---|
| 3 | ; 4/12/01 Moved signature modules to new rtn TIUSRVR3 | 
|---|
| 4 | LOADREC(TIUDA,TIUL,TIUGDATA,TIUGWHOL,ACTION) ; Load ^TMP | 
|---|
| 5 | ;Requires TIUDA, array TIUL, TIUGDATA | 
|---|
| 6 | ;optional TIUGWHOL = 1 if we're mid-load for browse, and we're already | 
|---|
| 7 | ;                    loading the whole note after the original entry, | 
|---|
| 8 | ;                    so DON'T load the whole note again. | 
|---|
| 9 | N TIUKID,TIUDADT,TIUI,CANSEE | 
|---|
| 10 | N TIUPARNT,TIUPNAME,TIUPDATE | 
|---|
| 11 | N TIUGPRNT,TIUGPNM,TIUGPDT,TIUPDATA,TIUHASKD | 
|---|
| 12 | S ACTION=$G(ACTION,"VIEW") | 
|---|
| 13 | ; ---- If user cannot view, say so and quit: ---- | 
|---|
| 14 | ;      TIU*1*100 | 
|---|
| 15 | S CANSEE=$S(+$$ISCOMP^TIUSRVR1(TIUDA)>0:1,1:$$CANDO^TIULP(+TIUDA,ACTION)) | 
|---|
| 16 | I +CANSEE'>0 D  Q | 
|---|
| 17 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=$P(CANSEE,U,2) | 
|---|
| 18 | ; ---- Load text of TIUDA: ---- | 
|---|
| 19 | S TIUI=0 | 
|---|
| 20 | F  S TIUI=$O(^TIU(8925,+TIUDA,"TEXT",TIUI)) Q:+TIUI'>0  D | 
|---|
| 21 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=$G(^TIU(8925,+TIUDA,"TEXT",+TIUI,0)) | 
|---|
| 22 | ; ---- if TIUDA is a COMPONENT, QUIT | 
|---|
| 23 | Q:+$$ISCOMP^TIUSRVR1(TIUDA) | 
|---|
| 24 | ; ---- If TIUDA **IS** an addendum, load addm signature, | 
|---|
| 25 | ;         load original document, quit: ---- | 
|---|
| 26 | I +$$ISADDNDM^TIULC1(+TIUDA) D  Q | 
|---|
| 27 | . N TIULINE,TIUPARNT S $P(TIULINE,"=",79)="" | 
|---|
| 28 | . D LOADSIG^TIUSRVR3(TIUDA,.TIUL) | 
|---|
| 29 | . S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 30 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=TIULINE | 
|---|
| 31 | . S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 32 | . S TIUPARNT=+$P(^TIU(8925,+TIUDA,0),U,6) | 
|---|
| 33 | . S TIUPNAME=$$PNAME^TIULC1(+^TIU(8925,TIUPARNT,0)) | 
|---|
| 34 | . S TIUPDATE=+$G(^TIU(8925,TIUPARNT,13)) | 
|---|
| 35 | . S TIUPDATE=$$DATE^TIULS(TIUPDATE,"MM/DD/YY") | 
|---|
| 36 | . S TIUPDATA=$$IDDATA^TIURECL1(TIUPARNT) | 
|---|
| 37 | . S TIUHASKD=$P(TIUPDATA,U,2),TIUGPRNT=+$P(TIUPDATA,U,3) | 
|---|
| 38 | . S TIUL=+$G(TIUL)+1 | 
|---|
| 39 | . I TIUHASKD D | 
|---|
| 40 | . . S @TIUARR@(TIUL)=" --- Original Addended Interdisciplinary Entry ---" | 
|---|
| 41 | . I TIUGPRNT D | 
|---|
| 42 | . . S @TIUARR@(TIUL)=" --- Original Addended Interdisciplinary Entry ---" | 
|---|
| 43 | . . S TIUGPNM=$$PNAME^TIULC1(+^TIU(8925,TIUGPRNT,0)) | 
|---|
| 44 | . . S TIUGPDT=+$G(^TIU(8925,TIUGPRNT,13)) | 
|---|
| 45 | . . S TIUGPDT=$$DATE^TIULS(TIUGPDT,"MM/DD/YY") | 
|---|
| 46 | . I 'TIUHASKD,'TIUGPRNT S @TIUARR@(TIUL)=" --- Original Document ---" | 
|---|
| 47 | . S TIUL=+$G(TIUL)+1,@TIUARR@(TIUL)="" | 
|---|
| 48 | . S TIUL=+$G(TIUL)+1 | 
|---|
| 49 | . I TIUHASKD D | 
|---|
| 50 | . . S @TIUARR@(TIUL)="                    << Addended Interdisciplinary Entry >>" | 
|---|
| 51 | . . S TIUL=+$G(TIUL)+1 | 
|---|
| 52 | . . S @TIUARR@(TIUL)=TIUPDATE_" "_TIUPNAME_":" | 
|---|
| 53 | . I TIUGPRNT D | 
|---|
| 54 | . . S @TIUARR@(TIUL)="                         << Interdisciplinary Note >>" | 
|---|
| 55 | . . S TIUL=+$G(TIUL)+1 | 
|---|
| 56 | . . S @TIUARR@(TIUL)=TIUGPDT_" "_TIUGPNM | 
|---|
| 57 | . . S TIUL=+$G(TIUL)+1 | 
|---|
| 58 | . . S @TIUARR@(TIUL)="                    << Addended Interdisciplinary Entry >>" | 
|---|
| 59 | . . S TIUL=+$G(TIUL)+1,@TIUARR@(TIUL)=TIUPDATE_" "_TIUPNAME_":" | 
|---|
| 60 | . I 'TIUHASKD,'TIUGPRNT D | 
|---|
| 61 | . . S @TIUARR@(TIUL)=TIUPDATE_" "_TIUPNAME_":" | 
|---|
| 62 | . D LOADREC(TIUPARNT,.TIUL,TIUGDATA) | 
|---|
| 63 | ; ---- Load components of TIUDA: ---- | 
|---|
| 64 | S TIUKID=0 | 
|---|
| 65 | F  S TIUKID=$O(^TIU(8925,"DAD",+TIUDA,TIUKID)) Q:+TIUKID'>0  D | 
|---|
| 66 | . I +$$ISADDNDM^TIULC1(TIUKID)'>0 D LOADREC(TIUKID,.TIUL,$G(TIUGDATA)) | 
|---|
| 67 | ; ---- Load signature of TIUDA if TIUDA is not addm | 
|---|
| 68 | ;           or comp: ---- | 
|---|
| 69 | ; *222 don't display sig info. for FORM LETTERS | 
|---|
| 70 | I '+$$MEMBEROF^TIUPR222(+$G(^TIU(8925,+TIUDA,0)),"FORM LETTERS") D | 
|---|
| 71 | . I '$$ISCOMP^TIUSRVR1(TIUDA) D LOADSIG^TIUSRVR3(TIUDA,.TIUL) | 
|---|
| 72 | ; ---- Load addenda of TIUDA: ---- | 
|---|
| 73 | S TIUKID=0 | 
|---|
| 74 | F  S TIUKID=$O(^TIU(8925,"DAD",+TIUDA,TIUKID)) Q:+TIUKID'>0  D | 
|---|
| 75 | . ; If acting on an addendum, don't show it again. | 
|---|
| 76 | . I +TIUKID=+$G(^TMP("TIU FOCUS",$J)) Q | 
|---|
| 77 | . I +$$ISADDNDM^TIULC1(TIUKID) D LOADADD(TIUKID,.TIUL) | 
|---|
| 78 | N IDDAD | 
|---|
| 79 | S IDDAD=+$P(TIUGDATA,U,3) | 
|---|
| 80 | ; ---- If Browsed Record is an ID Note, & this cycle has | 
|---|
| 81 | ;      just loaded the parent entry, then load ID kids | 
|---|
| 82 | ;      and quit: **100** ---- | 
|---|
| 83 | I $P(TIUGDATA,U,2),TIUDA=+TIUGDATA D LOADKIDS(TIUDA,.TIUL,TIUGDATA) Q | 
|---|
| 84 | ; ---- If Browsed Record is an ID Entry, & this cycle hasn't begun | 
|---|
| 85 | ;      loading the whole note, then load the whole ID Note after | 
|---|
| 86 | ;      the browsed entry and quit: ---- | 
|---|
| 87 | I IDDAD,'$G(TIUGWHOL) D  Q | 
|---|
| 88 | . S TIUGWHOL=1 | 
|---|
| 89 | . N TIULINE S $P(TIULINE,"=",79)="" | 
|---|
| 90 | . S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 91 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=TIULINE | 
|---|
| 92 | . S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 93 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=" --- Interdisciplinary Note ---" | 
|---|
| 94 | . S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 95 | . D LOADID(IDDAD,.TIUL,TIUGDATA,TIUGWHOL) | 
|---|
| 96 | ; ---- If Browsed Record is an ID Entry, & this cycle has begun | 
|---|
| 97 | ;      loading the whole ID note, and is currently loading the first | 
|---|
| 98 | ;      entry of the whole note, then load kids and quit: ---- | 
|---|
| 99 | I IDDAD,$G(TIUGWHOL),TIUDA=IDDAD D LOADKIDS(TIUDA,.TIUL,TIUGDATA,TIUGWHOL) K TIUGWHOL | 
|---|
| 100 | Q | 
|---|
| 101 | ; | 
|---|
| 102 | LOADKIDS(TIUDA,TIUL,TIUGDATA,TIUGWHOL) ; Load ID kids of TIUDA | 
|---|
| 103 | ; Requires TIUDA, array TIUL, TIUGDATA | 
|---|
| 104 | N TIUK,PRMSORT,KIDDA,TIUD0,TIUD21 | 
|---|
| 105 | I $G(^TMP("TIUR",$J,"IDDATA",TIUDA)) S PRMSORT=$P(^TMP("TIUR",$J,"IDDATA",TIUDA),U,4) | 
|---|
| 106 | E  S TIUD0=$G(^TIU(8925,TIUDA,0)),TIUD21=$G(^TIU(8925,TIUDA,21)),PRMSORT=$P($$IDDATA^TIURECL1(TIUDA,TIUD0,TIUD21),U,4) | 
|---|
| 107 | D GETIDKID^TIURECL2(TIUDA,PRMSORT) ; sets array ^TMP("TIUIDKID",$J, | 
|---|
| 108 | S TIUK=0 | 
|---|
| 109 | F  S TIUK=$O(^TMP("TIUIDKID",$J,TIUDA,TIUK)) Q:+TIUK'>0  D | 
|---|
| 110 | . S KIDDA=^TMP("TIUIDKID",$J,TIUDA,TIUK) | 
|---|
| 111 | . D LOADID(KIDDA,.TIUL,TIUGDATA,$G(TIUGWHOL)) | 
|---|
| 112 | K ^TMP("TIUIDKID",$J) | 
|---|
| 113 | Q | 
|---|
| 114 | ; | 
|---|
| 115 | LOADID(TIUDA,TIUL,TIUGDATA,TIUWHOL) ; Load ID note for browse | 
|---|
| 116 | N TIUREC,TIU | 
|---|
| 117 | I '$D(^TIU(8925,+TIUDA,0)) Q | 
|---|
| 118 | ; ---- If ID Kid has focus, don't show it again ---- | 
|---|
| 119 | ; I TIUDA=+$G(^TMP("TIU FOCUS",$J)) Q | 
|---|
| 120 | S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 121 | D GETTIU^TIULD(.TIU,+TIUDA) | 
|---|
| 122 | D INQUIRE(TIUDA,.TIUREC) | 
|---|
| 123 | ; ---- Load info missing from header since this is ID note entry: ---- | 
|---|
| 124 | ; ---- Load dictation, transcription data, etc.: ---- | 
|---|
| 125 | D LOADTOP^TIUSRVR1(.TIUREC,TIUDA,.TIUL,$G(TIUGDATA)) | 
|---|
| 126 | ; ---- Load the remainder of the record: ---- | 
|---|
| 127 | D LOADREC(TIUDA,.TIUL,$G(TIUGDATA),$G(TIUWHOL)) | 
|---|
| 128 | Q | 
|---|
| 129 | ; | 
|---|
| 130 | INQUIRE(TIUDA,TIUREC,TIUCPF) ; Inquire to document TIUDA and set TIUREC | 
|---|
| 131 | N DA,DIC,DIQ,DR | 
|---|
| 132 | S DA=TIUDA,DIC=8925,DIQ="TIUREC(" | 
|---|
| 133 | S DR=".01;.02;.05;.09;1201;1202;1208;1209;1301;1307;1501;1502;1505;1506" | 
|---|
| 134 | ;If the document is a member of the Clinical Procedures Class, include the | 
|---|
| 135 | ;Procedure Summary Code field and the Date/Time Performed field | 
|---|
| 136 | I $G(TIUCPF) S DR=DR_";70201;70202" | 
|---|
| 137 | D EN^DIQ1 | 
|---|
| 138 | Q | 
|---|
| 139 | LOADADD(TIUDADD,TIUL) ; Load addenda | 
|---|
| 140 | N TIUDAUTH,TIUDATT,TIUJ,TIUSIG,TIUCSIG,TIUVIEW | 
|---|
| 141 | S TIUL=TIUL+1,@TIUARR@(TIUL)="" | 
|---|
| 142 | S TIUDADT=$$DATE^TIULS($P($G(^TIU(8925,+TIUDADD,13)),U),"MM/DD/CCYY") | 
|---|
| 143 | S TIUL=TIUL+1,@TIUARR@(TIUL)=TIUDADT_" ADDENDUM"_"                      STATUS: "_$$STATUS^TIULF(TIUDADD) ;P162 | 
|---|
| 144 | S TIUVIEW=$$CANDO^TIULP(+TIUDADD,"VIEW") | 
|---|
| 145 | I '+TIUVIEW D  Q | 
|---|
| 146 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=$P(TIUVIEW,U,2) | 
|---|
| 147 | S TIUJ=0 | 
|---|
| 148 | F  S TIUJ=$O(^TIU(8925,+TIUDADD,"TEXT",TIUJ)) Q:+TIUJ'>0  D | 
|---|
| 149 | . S TIUL=TIUL+1,@TIUARR@(TIUL)=$G(^TIU(8925,+TIUDADD,"TEXT",TIUJ,0)) | 
|---|
| 150 | D LOADSIG^TIUSRVR3(TIUDADD,.TIUL) | 
|---|
| 151 | Q | 
|---|