| 1 | GMRCART ;SLC/DCM,DLT,JFR - Result display logic ;12/17/01 22:39
 | 
|---|
| 2 |  ;;3.0;CONSULT/REQUEST TRACKING;**4,15,17,23,22,38**;DEC 27, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine invokes IA #2638,#10060
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | RT(GMRCO) ;Result Display logic - called from GMRCA1
 | 
|---|
| 7 |  N GMRCCT,GMRCTMP,GMRCSR,GMRCTUFN,GMRCSTS,GMRCMSG
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  S GMRCSR=$P($G(^GMR(123,+GMRCO,0)),"^",15),GMRCTUFN=$P(^(0),"^",20)
 | 
|---|
| 10 |  S GMRCSTS=$P($G(^GMR(123,+GMRCO,0)),"^",12)
 | 
|---|
| 11 |  I '$$RESOLUS^GMRCAU(GMRCSTS),('+GMRCSR&('GMRCTUFN)) S GMRCMSG="No results available for review." D EXAC^GMRCADC(GMRCMSG),END S GMRCQUT=1 Q
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  W !,"Compiling Result Display..."
 | 
|---|
| 14 |  I $D(IOTM),$D(IOBM),$D(IOSTBM) D FULL^VALM1
 | 
|---|
| 15 |  K ^TMP("GMRCR",$J,"DT") S GMRCCT=1
 | 
|---|
| 16 |  S XQORM("A")="Select Action: "
 | 
|---|
| 17 |  S:$D(VALMAR) GMRCVAL=VALMAR
 | 
|---|
| 18 |  S GMRCTMP="^TMP(""GMRCR"",$J,""DT"")"
 | 
|---|
| 19 |  S GMRCDVL="",$P(GMRCDVL,"-",41)=""
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  D GETRSLT(GMRCTMP)
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  D EN^VALM("GMRC RESULTS DISPLAY")
 | 
|---|
| 24 |  S:$D(GMRCVAL) VALMAR=GMRCVAL S:$D(LNCT) VALMCNT=LNCT
 | 
|---|
| 25 |  D KILL^VALM10()
 | 
|---|
| 26 |  K OREND,ORAGE,ORIO,ORDOB,ORFT,ORHI,ORIFN,ORNP,ORL,ORPD,ORPNM,ORPV,ORSEQ,ORSEX,ORWARD,ORDG
 | 
|---|
| 27 |  K GMRCDVL,GMRCLCT,GMRCRPT,GMRCTUFN,GMRCVAL,MCFILE,MCPROC,GMRCX,GMRCTO,GMRCPRNM
 | 
|---|
| 28 |  D END
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | GETRSLT(TMPGLOB,GMRCDET) ;load the results into global defined in TMPGLOB
 | 
|---|
| 32 |  ;used for GUI formated results and list manager
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;I GMRCDET=1 coming from a detailed display not results display
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  N GMRCCT,GMRCCTS,SF,TAB
 | 
|---|
| 37 |  S TAB="",$P(TAB," ",31)=""
 | 
|---|
| 38 |  S GMRCDVL="",$P(GMRCDVL,"-",41)=""
 | 
|---|
| 39 |  K @TMPGLOB,^TMP("GMRCR",$J,"CP")
 | 
|---|
| 40 |  S GMRCCT=1
 | 
|---|
| 41 |  S:'$D(GMRCDET) GMRCDET=0
 | 
|---|
| 42 |  I $L($P(^GMR(123,GMRCO,0),"^",19)) S SF=$P(^(0),"^",19),@TMPGLOB@(GMRCCT,0)="Significant Findings: "_$S(SF="Y":"**Yes**",SF="N":"No",1:"Unknown"),GMRCCT=GMRCCT+1
 | 
|---|
| 43 |  ;S @TMPGLOB@(GMRCCT,0)=GMRCDVL_GMRCDVL,GMRCCT=GMRCCT+1 ;GMRCDVL_GMRCDVL
 | 
|---|
| 44 |  D PRINT^GMRCTIUP(GMRCO,GMRCCT,1,GMRCDET)
 | 
|---|
| 45 |  S GMRCCTS=GMRCCT ;save the line count before printing med and TIU notes
 | 
|---|
| 46 |  D GETMCAR
 | 
|---|
| 47 |  D GETCP
 | 
|---|
| 48 |  D GETRES
 | 
|---|
| 49 |  ; I '$D(GMRCDET) D GETREMOT(GMRCO,TMPGLOB,.GMRCCT)
 | 
|---|
| 50 |  I GMRCCT=GMRCCTS D  ;check if count changed for notes or med results
 | 
|---|
| 51 |  . S:+$L($G(SF)) @TMPGLOB@(GMRCCT,0)=GMRCDVL_GMRCDVL,GMRCCT=GMRCCT+1 ;GMRCDVL_GMRCDVL
 | 
|---|
| 52 |  . S @TMPGLOB@(GMRCCT,0)="No local TIU results or Medicine results available for this consult"
 | 
|---|
| 53 |  . S GMRCCT=GMRCCT+1
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  I '$D(GMRCDET) D GETCOM
 | 
|---|
| 56 |  I GMRCCT>2 S @TMPGLOB@(GMRCCT,0)="",$P(@TMPGLOB@(GMRCCT,0),"=",81)="",GMRCCT=GMRCCT+1
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | GETMCAR ;load the medicine results into TMPGLOB
 | 
|---|
| 60 |  Q:'$O(^TMP("GMRCR",$J,"MCAR",0))
 | 
|---|
| 61 |  N ND,ND1
 | 
|---|
| 62 |  S ND=0 F  S ND=$O(^TMP("GMRCR",$J,"MCAR",ND)) Q:ND=""!(ND?1A.E)  D
 | 
|---|
| 63 |  .S @TMPGLOB@(GMRCCT,0)="",$P(^(0),"-",80)="",GMRCCT=GMRCCT+1
 | 
|---|
| 64 |  .S @TMPGLOB@(GMRCCT,0)=TAB_"Medicine Package Report",GMRCCT=GMRCCT+1
 | 
|---|
| 65 |  .S ND1=0 F  S ND1=$O(^TMP("GMRCR",$J,"MCAR",ND,ND1)) Q:ND1=""  S @TMPGLOB@(GMRCCT,0)=^TMP("GMRCR",$J,"MCAR",ND,ND1,0),GMRCCT=GMRCCT+1
 | 
|---|
| 66 |  .Q
 | 
|---|
| 67 |  K ^TMP("GMRCR",$J,"MCAR")
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | GETCP ; Load up any Clin. Proc. results
 | 
|---|
| 71 |  Q:'$O(^TMP("GMRCR",$J,"CP",0))
 | 
|---|
| 72 |  N ND,ND1
 | 
|---|
| 73 |  S ND=0 F  S ND=$O(^TMP("GMRCR",$J,"CP",ND)) Q:ND=""!(ND?1A.E)  D
 | 
|---|
| 74 |  .S @TMPGLOB@(GMRCCT,0)="",$P(^(0),"-",80)="",GMRCCT=GMRCCT+1
 | 
|---|
| 75 |  .S @TMPGLOB@(GMRCCT,0)=TAB_"Clinical Procedure Report",GMRCCT=GMRCCT+1
 | 
|---|
| 76 |  .S ND1=0 F  S ND1=$O(^TMP("GMRCR",$J,"CP",ND,ND1)) Q:ND1=""  D
 | 
|---|
| 77 |  .. S @TMPGLOB@(GMRCCT,0)=^TMP("GMRCR",$J,"CP",ND,ND1,0),GMRCCT=GMRCCT+1
 | 
|---|
| 78 |  .Q
 | 
|---|
| 79 |  K ^TMP("GMRCR",$J,"CP")
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 | GETRES ;load the TIU notes into TMPGLOB
 | 
|---|
| 83 |  Q:'+$O(^TMP("GMRCR",$J,"RES",0))
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  N ND,ND1
 | 
|---|
| 86 |  S ND=0 F  S ND=$O(^TMP("GMRCR",$J,"RES",ND)) Q:(ND="")!(ND?1A.E)  D
 | 
|---|
| 87 |  . I $D(^TMP("GMRCR",$J,"RES",ND,"TEXT","GMRCRPT")) D
 | 
|---|
| 88 |  . . S @TMPGLOB@(GMRCCT,0)="",GMRCCT=GMRCCT+1
 | 
|---|
| 89 |  . . S @TMPGLOB@(GMRCCT,0)=$E(GMRCDVL,1,80-$L(^TMP("GMRCR",$J,"RES",ND,"TEXT","GMRCRPT"))\2)_^("GMRCRPT")_$E(GMRCDVL,1,80-$L(^("GMRCRPT"))\2)
 | 
|---|
| 90 |  . . S GMRCCT=GMRCCT+1
 | 
|---|
| 91 |  . S:'$D(^TMP("GMRCR",$J,"RES",ND,"TEXT","GMRCRPT")) @TMPGLOB@(GMRCCT,0)=GMRCDVL_GMRCDVL,GMRCCT=GMRCCT+1
 | 
|---|
| 92 |  . S:$O(^TMP("GMRCR",$J,"RES",ND,"TEXT",0)) @TMPGLOB@(GMRCCT,0)="",GMRCCT=GMRCCT+1
 | 
|---|
| 93 |  . S ND1=0 F  S ND1=$O(^TMP("GMRCR",$J,"RES",ND,"TEXT",ND1)) Q:ND1?1A.E!(ND1="")  S @TMPGLOB@(GMRCCT,0)=^TMP("GMRCR",$J,"RES",ND,"TEXT",ND1,0),GMRCCT=GMRCCT+1
 | 
|---|
| 94 |  . I $O(^TMP("GMRCR",$J,"RES",ND,"ADD",0)) S ND1=0 F  S ND1=$O(^TMP("GMRCR",$J,"RES",ND,"ADD",ND1)) Q:ND1=""   D
 | 
|---|
| 95 |  . . S @TMPGLOB@(GMRCCT,0)="",GMRCCT=GMRCCT+1
 | 
|---|
| 96 |  . . S @TMPGLOB@(GMRCCT,0)=TAB_"ADDENDUM TO REPORT",GMRCCT=GMRCCT+1
 | 
|---|
| 97 |  . . S ND2=0 F  S ND2=$O(^TMP("GMRCR",$J,"RES",ND,"ADD",ND1,ND2)) Q:ND2=""!(ND2?1A.E)  S @TMPGLOB@(GMRCCT,0)=^TMP("GMRCR",$J,"RES",ND,"ADD",ND1,ND2,0),GMRCCT=GMRCCT+1
 | 
|---|
| 98 |  . . Q
 | 
|---|
| 99 |  . Q
 | 
|---|
| 100 |  K ^TMP("GMRCR",$J,"RES")
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | GETCOM ;Get the comments for resolution actions
 | 
|---|
| 104 |  S GMRCSTS=$P($G(^GMR(123,+GMRCO,0)),"^",12)
 | 
|---|
| 105 |  Q:'$$RESOLUS^GMRCAU(+GMRCSTS) 
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 |  ;Loop thru actions to find the resolution type actions
 | 
|---|
| 108 |  N ND,ND1,ND2
 | 
|---|
| 109 |  S ND="" F  S ND=$O(^GMR(123,+GMRCO,40,"B",ND)) Q:ND=""  S ND1=$O(^GMR(123,+GMRCO,40,"B",ND,"")) D
 | 
|---|
| 110 |  . ;
 | 
|---|
| 111 |  . ;Check for resulting action types:complete,sig finding,dc,cancel
 | 
|---|
| 112 |  . N GMRCAIEN
 | 
|---|
| 113 |  . S GMRCAIEN=$P($G(^GMR(123,+GMRCO,40,ND1,0)),"^",2)
 | 
|---|
| 114 |  . I '$$RESOLUA^GMRCAU(GMRCAIEN) Q
 | 
|---|
| 115 |  . ;
 | 
|---|
| 116 |  . ;save the action header info in case there are comments
 | 
|---|
| 117 |  . N GMRCAHDR,GMRCPROV,GMRCENBY,GMRCENDT
 | 
|---|
| 118 |  . D SAVEHDR
 | 
|---|
| 119 |  . ;
 | 
|---|
| 120 |  . ;check for comments, print header on first pass
 | 
|---|
| 121 |  . S ND2=0
 | 
|---|
| 122 |  . F  S ND2=$O(^GMR(123,GMRCO,40,ND1,1,ND2)) Q:ND2=""  D
 | 
|---|
| 123 |  . . I +$G(GMRCAHDR) D GETHDR ;GMRCAHDR will =1 on first pass
 | 
|---|
| 124 |  . . S @TMPGLOB@(GMRCCT,0)=^GMR(123,GMRCO,40,ND1,1,ND2,0),GMRCCT=GMRCCT+1
 | 
|---|
| 125 |  . . Q
 | 
|---|
| 126 |  . Q
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 | SAVEHDR ;Save the action header info to print later if there are comments
 | 
|---|
| 130 |  S GMRCAHDR=1 ;flag to print action header on first pass of comments
 | 
|---|
| 131 |  ;save the provider, entered by and date
 | 
|---|
| 132 |  S GMRCPROV=$P(^GMR(123,GMRCO,40,ND1,0),"^",4),GMRCENBY=$P(^(0),"^",5)
 | 
|---|
| 133 |  S GMRCENDT=$$FMTE^XLFDT($P($G(^GMR(123,GMRCO,40,ND1,0)),"^",3))
 | 
|---|
| 134 |  Q
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 | GETHDR ;Print the comment header if the action had a comment
 | 
|---|
| 137 |  S @TMPGLOB@(GMRCCT,0)="",GMRCCT=GMRCCT+1
 | 
|---|
| 138 |  S @TMPGLOB@(GMRCCT,0)=$$CENTER^GMRCP5D("("_$P($G(^GMR(123.1,GMRCAIEN,0)),"^",8)_" Comment)"),GMRCCT=GMRCCT+1
 | 
|---|
| 139 |  S @TMPGLOB@(GMRCCT,0)="      Entered by: "_$S($L(GMRCENBY):$P(^VA(200,GMRCENBY,0),"^",1),1:"")_" - "_GMRCENDT,GMRCCT=GMRCCT+1
 | 
|---|
| 140 |  I +GMRCPROV S @TMPGLOB@(GMRCCT,0)="      Responsible Clinician: "_$P($G(^VA(200,GMRCPROV,0)),"^",1),GMRCCT=GMRCCT+1
 | 
|---|
| 141 |  K GMRCAHDR
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 | GETREMOT(GMRCDA,GMRCAR,GMRCNT) ;retrieve remote results and load up in display
 | 
|---|
| 145 |  ; Input:
 | 
|---|
| 146 |  ; GMRCDA  = consult ien from file 123
 | 
|---|
| 147 |  ; GMRCAR  = array to return results in (e.g. $NA(^TMP("GMRCAR",$J)) )
 | 
|---|
| 148 |  ; GMRCNT  = number within GMRCAR to start placing results (pass by ref)
 | 
|---|
| 149 |  ;
 | 
|---|
| 150 |  ;Output:
 | 
|---|
| 151 |  ; array containing remote results in format:
 | 
|---|
| 152 |  ;   ^TMP("GMRCAR",$J,1,0)= result text line 1
 | 
|---|
| 153 |  ;   ^TMP("GMRCAR",$J,2,0)= result text line 2
 | 
|---|
| 154 |  ;
 | 
|---|
| 155 |  I '$O(^GMR(123,GMRCDA,51,0)) Q  ;no remote results
 | 
|---|
| 156 |  N HDR,GMRCREM,GMRCDATA,FTR,GMRCIO
 | 
|---|
| 157 |  S @GMRCAR@(GMRCNT,0)="",GMRCNT=GMRCNT+1
 | 
|---|
| 158 |  S HDR=$$REPEAT^XLFSTR("*",31)_" REMOTE RESULTS "_$$REPEAT^XLFSTR("*",31)
 | 
|---|
| 159 |  S FTR=$$REPEAT^XLFSTR("*",27)_" END OF REMOTE RESULTS "_$$REPEAT^XLFSTR("*",28)
 | 
|---|
| 160 |  S @GMRCAR@(GMRCNT,0)=HDR,GMRCNT=GMRCNT+1
 | 
|---|
| 161 |  S @GMRCAR@(GMRCNT,0)="",GMRCNT=GMRCNT+1
 | 
|---|
| 162 |  S GMRCREM=0 F  S GMRCREM=$O(^GMR(123,GMRCDA,51,GMRCREM)) Q:'GMRCREM  D
 | 
|---|
| 163 |  . N GMRCSITE,GMRCRES,GMRCSTA,GMRCRPC,GMRCREM0
 | 
|---|
| 164 |  . S GMRCREM0=^GMR(123,GMRCDA,51,GMRCREM,0) Q:'$L(GMRCREM0)
 | 
|---|
| 165 |  . S GMRCSTA=$$STA^XUAF4($P(GMRCREM0,U,3))
 | 
|---|
| 166 |  . D F4^XUAF4(GMRCSTA,.GMRCSITE) I '+GMRCSITE Q
 | 
|---|
| 167 |  . S GMRCRES=$P(GMRCREM0,U,2)_","
 | 
|---|
| 168 |  . I GMRCRES["TIU" S GMRCRPC="TIU GET RECORD TEXT",GMRCRES=+GMRCRES
 | 
|---|
| 169 |  . I GMRCRES["MCAR" S GMRCRPC="ORQQCN GET MED RESULT DETAILS"
 | 
|---|
| 170 |  . D SAVDEV^%ZISUTL("GMRCIO") ; save off current device settings
 | 
|---|
| 171 |  . D DIRECT^XWB2HL7(.GMRCDATA,GMRCSTA,GMRCRPC,"0",GMRCRES)
 | 
|---|
| 172 |  . D USE^%ZISUTL("GMRCIO") ; restore IO to previous settings
 | 
|---|
| 173 |  . D RMDEV^%ZISUTL("GMRCIO") ; kills data saved in GMRCIO
 | 
|---|
| 174 |  . I '$D(GMRCDATA) Q
 | 
|---|
| 175 |  . S @GMRCAR@(GMRCNT,0)=$$CJ^XLFSTR($S(GMRCRES["MCAR":"Medicine report from:",1:"TIU Document from:"),80),GMRCNT=GMRCNT+1
 | 
|---|
| 176 |  . S @GMRCAR@(GMRCNT,0)=$$CJ^XLFSTR(GMRCSITE("NAME"),80)
 | 
|---|
| 177 |  . S GMRCNT=GMRCNT+1
 | 
|---|
| 178 |  . S @GMRCAR@(GMRCNT,0)=$$CJ^XLFSTR("Associated on: "_$$FMTE^XLFDT(+GMRCREM0),80),GMRCNT=GMRCNT+1
 | 
|---|
| 179 |  . S @GMRCAR@(GMRCNT,0)="",GMRCNT=GMRCNT+1
 | 
|---|
| 180 |  . N GMRCQT S GMRCQT=0
 | 
|---|
| 181 |  . I '$L($G(GMRCDATA)) D
 | 
|---|
| 182 |  .. N I S I="" F  S I=$O(GMRCDATA(I)) Q:I=""!(GMRCQT)  D
 | 
|---|
| 183 |  ... I $P(GMRCDATA(I),U)=-1 D  S GMRCQT=1 Q
 | 
|---|
| 184 |  .... S @GMRCAR@(GMRCNT,0)="Report not currently available"
 | 
|---|
| 185 |  .... S GMRCNT=GMRCNT+1
 | 
|---|
| 186 |  ... S @GMRCAR@(GMRCNT,0)=GMRCDATA(I),GMRCNT=GMRCNT+1
 | 
|---|
| 187 |  . I $L($G(GMRCDATA)),$D(@GMRCDATA) D
 | 
|---|
| 188 |  .. N I S I="" F  S I=$O(@GMRCDATA@(I)) Q:I=""!(GMRCQT)  D
 | 
|---|
| 189 |  ... I $P(@GMRCDATA@(I),U)=-1 D  S GMRCQT=1 Q
 | 
|---|
| 190 |  .... S @GMRCAR@(GMRCNT,0)="Report not currently available"
 | 
|---|
| 191 |  .... S GMRCNT=GMRCNT+1
 | 
|---|
| 192 |  ... S @GMRCAR@(GMRCNT,0)=@GMRCDATA@(I),GMRCNT=GMRCNT+1
 | 
|---|
| 193 |  .. K @GMRCDATA
 | 
|---|
| 194 |  . K GMRCDATA
 | 
|---|
| 195 |  . Q
 | 
|---|
| 196 |  S @GMRCAR@(GMRCNT,0)="",GMRCNT=GMRCNT+1
 | 
|---|
| 197 |  S @GMRCAR@(GMRCNT,0)=FTR,GMRCNT=GMRCNT+1
 | 
|---|
| 198 |  S @GMRCAR@(GMRCNT,0)=""
 | 
|---|
| 199 |  Q
 | 
|---|
| 200 |  ;
 | 
|---|
| 201 | END ;kill off variables and exit
 | 
|---|
| 202 |  I $D(DTOUT)!$D(DIROUT) S GMRCQIT=""
 | 
|---|
| 203 |  K DTOUT,DIROUT,DUOUT
 | 
|---|
| 204 |  S:$D(^TMP("GMRC",$J,"CURRENT","MENU")) XQORM("HIJACK")=^("MENU")
 | 
|---|
| 205 |  Q
 | 
|---|