| 1 | GMRCTIUL ;SLC/DCM,DLT - Get list of existing results for consults ;5/01/98  10:09
 | 
|---|
| 2 |  ;;3.0;CONSULT/REQUEST TRACKING;**4,14,15**;DEC 27, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine invokes IA #2834
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | GETLIST(GMRCO,GETWHAT,TYPE,GMRCNT) ;Get the count and list of results
 | 
|---|
| 7 |  ;Input variables:
 | 
|---|
| 8 |  ;GMRCO=consult entry from 123
 | 
|---|
| 9 |  ;GETWHAT=how much to return
 | 
|---|
| 10 |  ;       0 = count only returned
 | 
|---|
| 11 |  ;       1 = count + ^TMP internal values from TIU
 | 
|---|
| 12 |  ;       2 = count + ^TMP internal values from TIU
 | 
|---|
| 13 |  ;                 + ^TMP display format array
 | 
|---|
| 14 |  ;TYPE=what type of results to return
 | 
|---|
| 15 |  ;       0=all types
 | 
|---|
| 16 |  ;       1=TIU only
 | 
|---|
| 17 |  ;       2=Medicine results only
 | 
|---|
| 18 |  ;returns GMRCNT() = result count
 | 
|---|
| 19 |  ;        ^TMP("GMRC50",$J,GMRCRVP,GMRCRIEN)=summary data from source
 | 
|---|
| 20 |  ;             where GMRCRVP is the variable pointer value
 | 
|---|
| 21 |  ;             where GMRCRIEN is the entry in the 50th node
 | 
|---|
| 22 |  ;        ^TMP("GMRC50R",$J,GMRCRIEN)= external list for review
 | 
|---|
| 23 |  N COUNT,GMRCRIEN,TAB
 | 
|---|
| 24 |  K ^TMP("GMRC50",$J),^TMP("GMRC50R",$J),GMRCNT
 | 
|---|
| 25 |  S (COUNT,GMRCRIEN)=0,GMRCNT(0)=COUNT
 | 
|---|
| 26 |  S TAB="",$P(TAB," ",30)=""
 | 
|---|
| 27 |  ;Get results from the result multiple
 | 
|---|
| 28 |  F  S GMRCRIEN=$O(^GMR(123,+GMRCO,50,GMRCRIEN)) Q:'GMRCRIEN  D  I $G(GMRCQUT) K GMRCQUT Q
 | 
|---|
| 29 |  . S GMRCRVP=$P($G(^GMR(123,+GMRCO,50,+GMRCRIEN,0)),"^",1) I GMRCRVP="" S GMRCQUT=1 Q
 | 
|---|
| 30 |  . D UPDCNT
 | 
|---|
| 31 |  . Q
 | 
|---|
| 32 |  ;Get TIU NARRATIVE RESULT if the result multiple is not loaded yet
 | 
|---|
| 33 |  I COUNT=0,'$D(^GMR(123,+GMRCO,50)),+$P(^GMR(123,+GMRCO,0),"^",20) D
 | 
|---|
| 34 |  . S GMRCRVP=$P($G(^GMR(123,+GMRCO,0)),"^",20)_";TIU(8925,"
 | 
|---|
| 35 |  . D UPDCNT
 | 
|---|
| 36 |  . Q
 | 
|---|
| 37 |  S GMRCNT(0)=COUNT
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | UPDCNT ;Update count of existing results for the consult and build array
 | 
|---|
| 41 |  S GMRCVF=$P(GMRCRVP,";",2)
 | 
|---|
| 42 |  I '$G(GMRCNT(GMRCVF)) S GMRCNT(GMRCVF)=0
 | 
|---|
| 43 |  S COUNT=COUNT+1
 | 
|---|
| 44 |  S GMRCNT(GMRCVF)=GMRCNT(GMRCVF)+1
 | 
|---|
| 45 |  I +GETWHAT,TYPE=1 D TIUTMP(+GETWHAT)
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | TIUTMP(GETWHAT) ;build ^TMP array for results based on TIU when type=1
 | 
|---|
| 49 |  I $G(GMRCRVP)["MCAR" D  Q
 | 
|---|
| 50 |  .S COUNT=COUNT-1
 | 
|---|
| 51 |  .S GMRCNT(GMRCVF)=GMRCNT(GMRCVF)-1
 | 
|---|
| 52 |  S ^TMP("GMRC50",$J,GMRCRVP,COUNT)=$$RESOLVE^TIUSRVLO(+GMRCRVP)
 | 
|---|
| 53 |  Q:GETWHAT=1  ;get internal value global
 | 
|---|
| 54 |  N GMRCRDAT,GMRCDOCT,GMRCEDT,GMRCAUTH,GMRCSTS,GMRCTX
 | 
|---|
| 55 |  S GMRCRDAT=^TMP("GMRC50",$J,GMRCRVP,COUNT)
 | 
|---|
| 56 |  S GMRCDOCT=$E($P(GMRCRDAT,"^",1),1,19)
 | 
|---|
| 57 |  S GMRCEDT=$$FMTE^XLFDT($P(GMRCRDAT,U,2),"D")
 | 
|---|
| 58 |  S GMRCAUTH=$E($P($G(^VA(200,+$P(GMRCRDAT,"^",4),0)),U,1),1,12)
 | 
|---|
| 59 |  S GMRCSTS=$E($P(GMRCRDAT,"^",6),1,5)
 | 
|---|
| 60 |  S GMRCTX=$J(COUNT,3)_"> "_$E(GMRCDOCT_TAB,1,20)_$E("#"_+GMRCRVP_TAB,1,9)_$E(GMRCEDT_TAB,1,13)_$E(GMRCAUTH_TAB,1,14)_$E(GMRCSTS_TAB,1,6)_$E("#"_+$P(GMRCRDAT,"^",9)_TAB,1,10)
 | 
|---|
| 61 |  S ^TMP("GMRC50R",$J,COUNT,GMRCRVP)=GMRCTX
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | PROCTMP ;build ^TMP array for procedure results when type note=1
 | 
|---|
| 65 |  Q:TYPE=1
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 | SHOWTIU ;Display the current TIU results available
 | 
|---|
| 69 |  N GMRCRVP,GMRCRCT
 | 
|---|
| 70 |  W !,"Notes associated with this consult:",!
 | 
|---|
| 71 |  W !," No.  Document Title       TIU    Entered      Author        Sts  Consult"
 | 
|---|
| 72 |  S GMRCRCT=0
 | 
|---|
| 73 |  F  S GMRCRCT=$O(^TMP("GMRC50R",$J,GMRCRCT)) Q:'+GMRCRCT  D
 | 
|---|
| 74 |  . S GMRCRVP=$O(^TMP("GMRC50R",$J,GMRCRCT,""))
 | 
|---|
| 75 |  . W !,^TMP("GMRC50R",$J,GMRCRCT,GMRCRVP)
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 | SELR(GMRCRCT) ;Select a note from the list
 | 
|---|
| 78 |  ;Input GMRCNT=array with the count of TIU notes
 | 
|---|
| 79 |  I '+$G(GMRCRCT("TIU(8925,")),'+$O(^TMP("GMRC50R",$J,0)) S GMRCMSG="No results available" D EXAC^GMRCADC(GMRCMSG) K GMRCMSG Q 0
 | 
|---|
| 80 |  ;Select a note
 | 
|---|
| 81 |  N DIR,Y,DTOUT,DUOUT,DIRUT,DIROUT
 | 
|---|
| 82 |  S DIR("A")="Select an existing note"
 | 
|---|
| 83 |  S DIR(0)="NO^1:"_GMRCRCT("TIU(8925,")
 | 
|---|
| 84 |  D ^DIR
 | 
|---|
| 85 |  Q +Y
 | 
|---|
| 86 | LN1 ;Used by filemanager print template to format line
 | 
|---|
| 87 |  S:'$G(COUNT) COUNT=1
 | 
|---|
| 88 |  S GMRCVF="TIU(8925,",GMRCNT(GMRCVF)=1,TAB=" "
 | 
|---|
| 89 |  S GMRCRVP=+($G(^GMR(123,D0,50,D1,0)))
 | 
|---|
| 90 |  Q:'GMRCRVP
 | 
|---|
| 91 |  N GMRCDOCT,GMRCEDT
 | 
|---|
| 92 |  S GMRCRDAT=$$RESOLVE^TIUSRVLO(+GMRCRVP)
 | 
|---|
| 93 |  S GMRCDOCT=$E($P(GMRCRDAT,"^",1),1,19)
 | 
|---|
| 94 |  S GMRCEDT=$$FMTE^XLFDT(GMRCRDAT,"D")
 | 
|---|
| 95 |  S GMRCTX=$E("#"_+GMRCRVP_TAB,1,9)_$E(GMRCDOCT_TAB,1,22)_$E(GMRCEDT_TAB,1,13)_$P(GMRCRDAT,U,3)
 | 
|---|
| 96 |  W GMRCTX
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | LN2 ;Used by Fileman to write second line
 | 
|---|
| 99 |  N GMRCAUTH,GMRCSTS
 | 
|---|
| 100 |  S GMRCAUTH=$E($P($G(^VA(200,+$P(GMRCRDAT,"^",4),0)),U,1),1,12)
 | 
|---|
| 101 |  S GMRCSTS=$E($P(GMRCRDAT,"^",6),1,5)
 | 
|---|
| 102 |  S GMRCTX=$E(TAB,1,5)_$E("Author: "_GMRCAUTH_TAB,1,16)_$E(GMRCSTS_TAB,1,8)_$E("#"_+$P(GMRCRDAT,"^",9)_TAB,1,10)
 | 
|---|
| 103 |  W GMRCTX
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 |  ;
 | 
|---|