| 1 | GMRCITR ;SLC/JAK - IFC transactions ; 09/27/02 15:50
 | 
|---|
| 2 |  ;;3.0;CONSULT/REQUEST TRACKING;**22,28**;DEC 27, 1997
 | 
|---|
| 3 | EN ; -- main entry point for GMRC IF TRANSACTION
 | 
|---|
| 4 |  N GMRCDAS,GMRCLOG,GMRCQUT,GMRCS,X,Y
 | 
|---|
| 5 |  N GMRCDT1,GMRCDT2,GMRCEDT1,GMRCEDT2
 | 
|---|
| 6 |  D CON I $D(GMRCQUT) D EXIT^GMRCINC Q
 | 
|---|
| 7 |  ;Ask for date range
 | 
|---|
| 8 |  D ^GMRCSPD
 | 
|---|
| 9 |  I $D(GMRCQUT) D EXIT^GMRCINC Q
 | 
|---|
| 10 |  D LISTDATE^GMRCSTU1(GMRCDT1,GMRCDT2,.GMRCEDT1,.GMRCEDT2)
 | 
|---|
| 11 |  D VIEW I $D(GMRCQUT) D EXIT^GMRCINC Q
 | 
|---|
| 12 |  I GMRCSEL="ALL" D
 | 
|---|
| 13 |  . S GMRCNUM=0 F  S GMRCNUM=$O(^GMR(123.6,"C",GMRCNUM)) Q:'GMRCNUM  D
 | 
|---|
| 14 |  .. D BLD(GMRCNUM)
 | 
|---|
| 15 |  E  D
 | 
|---|
| 16 |  . S GMRCNUM=GMRCSEL
 | 
|---|
| 17 |  . D BLD(GMRCNUM)
 | 
|---|
| 18 |  I '$O(GMRCLOG(0)) D
 | 
|---|
| 19 |  . S ^TMP("GMRCINC",$J,1,0)="No transactions for consult#: "_GMRCSEL
 | 
|---|
| 20 |  E  D
 | 
|---|
| 21 |  . D DATA(GMRCS)
 | 
|---|
| 22 |  D EN^VALM("GMRC IF TRANSACTION")
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | CON ; ask for consult number or all
 | 
|---|
| 26 |  S GMRCSEL=0
 | 
|---|
| 27 |  F  D ASK S:X["^" GMRCQUT=1 Q:X["^"  Q:X="ALL"  D LKUP Q:GMRCSEL
 | 
|---|
| 28 |  Q
 | 
|---|
| 29 | ASK ; write prompt, do read
 | 
|---|
| 30 |  W !!,"Select Consult/Request Number: ALL// "
 | 
|---|
| 31 |  R X:DTIME
 | 
|---|
| 32 |  I '$T S X="^"
 | 
|---|
| 33 |  I X'["^" S X=$S('$L(X):"ALL",1:X)
 | 
|---|
| 34 |  S:X="ALL" GMRCSEL="ALL"
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | LKUP ; use value of x for lookup
 | 
|---|
| 37 |  N DIC
 | 
|---|
| 38 |  S DIC="^GMR(123,",DIC(0)="MNEQZ"
 | 
|---|
| 39 |  D ^DIC I '$D(Y(0)) W "...invalid entry"
 | 
|---|
| 40 |  S:Y>0 GMRCSEL=+Y
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | VIEW ; ask for sort/view
 | 
|---|
| 43 |  N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 44 |  K GMRCQUT
 | 
|---|
| 45 |  ;old code
 | 
|---|
| 46 |  ; S DIR(0)="SA^C:CONSULT;D:DATE;A:ACTIVITY;M:MESSAGE STATUS"
 | 
|---|
| 47 |  ; S DIR("A")="View by (C)onsult, (D)ate, (A)ctivity or (M)essage Status: "
 | 
|---|
| 48 |  ;new code w/ patch 28
 | 
|---|
| 49 |  S DIR(0)="SA^C:CONSULT;D:DATE;A:ACTIVITY"
 | 
|---|
| 50 |  S DIR("A")="View by (C)onsult, (D)ate, or (A)ctivity: "
 | 
|---|
| 51 |  S DIR("B")="Consult"
 | 
|---|
| 52 |  S DIR("?")="Data will be sorted by your selection."
 | 
|---|
| 53 |  D ^DIR I $D(DIRUT) S GMRCQUT=1 Q
 | 
|---|
| 54 |  S GMRCS=Y
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | BLD(GMRCDA) ; get list of IF transactions for one or all consults
 | 
|---|
| 57 |  ; Input:
 | 
|---|
| 58 |  ;   GMRCDA = ien of consult from file 123
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  N ACT,ENT,GMRCDTE
 | 
|---|
| 61 |  S ACT=0
 | 
|---|
| 62 |  F  S ACT=$O(^GMR(123.6,"C",GMRCDA,ACT)) Q:'ACT  D
 | 
|---|
| 63 |  . S ENT=$O(^GMR(123.6,"C",GMRCDA,ACT,0)) Q:'ENT
 | 
|---|
| 64 |  . I $S(GMRCDT1="ALL":0,1:1) D  Q:GMRCDTE<GMRCDT1!(GMRCDTE'<GMRCDT2)
 | 
|---|
| 65 |  .. S GMRCDTE=+$P($G(^GMR(123.6,ENT,0)),"^")
 | 
|---|
| 66 |  .. S GMRCDT2=GMRCDT2+1
 | 
|---|
| 67 |  . S GMRCLOG(GMRCDA,ACT)=ENT
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 | DATA(GMRCS) ; get data for IF transaction(s)
 | 
|---|
| 70 |  ; Input:
 | 
|---|
| 71 |  ;   GMRCS = sort/view by selection
 | 
|---|
| 72 |  ; Output:
 | 
|---|
| 73 |  ;   ^TMP("GMRCINC",$J array
 | 
|---|
| 74 |  N ACT,GMRCSV,TAB
 | 
|---|
| 75 |  I $O(GMRCLOG(0)) D
 | 
|---|
| 76 |  . K GMRCDAS
 | 
|---|
| 77 |  . K ^TMP("GMRCS",$J),^TMP("GMRCINC",$J)
 | 
|---|
| 78 |  S (GMRCDA,LINE)=0
 | 
|---|
| 79 |  S TAB="",$P(TAB," ",30)=""
 | 
|---|
| 80 |  F  S GMRCDA=$O(GMRCLOG(GMRCDA)) Q:'GMRCDA  D
 | 
|---|
| 81 |  . S ACT=0
 | 
|---|
| 82 |  . F  S ACT=$O(GMRCLOG(GMRCDA,ACT)) Q:'ACT  D
 | 
|---|
| 83 |  .. S GMRCLOG=$G(GMRCLOG(GMRCDA,ACT)) D
 | 
|---|
| 84 |  ... N ACTTXT,EDT,IERR,STA,GMRCACT,GMRCLOG0
 | 
|---|
| 85 |  ... S GMRCLOG0=$G(^GMR(123.6,GMRCLOG,0)) Q:'GMRCLOG0
 | 
|---|
| 86 |  ... S GMRCDA(0)=$G(^GMR(123,GMRCDA,40,ACT,0)) Q:'GMRCDA(0)
 | 
|---|
| 87 |  ... S LINE=LINE+1
 | 
|---|
| 88 |  ... S X=$P(GMRCLOG0,"^") D REGDTM^GMRCU
 | 
|---|
| 89 |  ... S EDT=$S(X]"":X,1:"No Date/Time")
 | 
|---|
| 90 |  ... S GMRCACT=$P(GMRCDA(0),"^",2)
 | 
|---|
| 91 |  ... S ACTTXT=$P($G(^GMR(123.1,+GMRCACT,0)),"^",1)
 | 
|---|
| 92 |  ... S:'$L(ACTTXT) ACTTXT=GMRCACT_" action?"
 | 
|---|
| 93 |  ... S STA=$P(GMRCLOG0,"^",3),STA=$$MSGSTAT^HLUTIL(STA) ; IA #3098
 | 
|---|
| 94 |  ... S STA=$S(+STA>0:$E($$GET1^DIQ(771.6,+STA,.01),1,22),1:"No Status")
 | 
|---|
| 95 |  ... S IERR=$T(@("ERR"_$P(GMRCLOG0,"^",8)_"^GMRCIUTL"))
 | 
|---|
| 96 |  ... S IERR=$S(IERR]"":$E($P(IERR,";",2),1,45),1:"No Error")
 | 
|---|
| 97 |  ... ;
 | 
|---|
| 98 |  ... S GMRCDAS(GMRCDA)=""
 | 
|---|
| 99 |  ... ; sort data
 | 
|---|
| 100 |  ... S GMRCSV=$S(GMRCS="C":GMRCDA,GMRCS="D":EDT,GMRCS="A":ACTTXT,1:STA)
 | 
|---|
| 101 |  ... S ^TMP("GMRCS",$J,GMRCSV,GMRCLOG)=GMRCDA
 | 
|---|
| 102 |  ... S ^TMP("GMRCS",$J,GMRCSV,GMRCLOG)=^TMP("GMRCS",$J,GMRCSV,GMRCLOG)_$E(TAB,1,13-$L(^(GMRCLOG)))_EDT_$E(TAB,1,5)_ACTTXT
 | 
|---|
| 103 |  ... ;S ^TMP("GMRCS",$J,GMRCSV,GMRCLOG)=^TMP("GMRCS",$J,GMRCSV,GMRCLOG)_$E(TAB,1,56-$L(^(GMRCLOG)))_STA  ;msg status not included after patch 28
 | 
|---|
| 104 |  ... S ^TMP("GMRCS",$J,GMRCSV,GMRCLOG)=^TMP("GMRCS",$J,GMRCSV,GMRCLOG)_$E(TAB,1,56-$L(^(GMRCLOG)))_IERR
 | 
|---|
| 105 |  .. Q
 | 
|---|
| 106 |  . ; set data in array name
 | 
|---|
| 107 |  . N GMRC1,LINE
 | 
|---|
| 108 |  . S GMRC1="",LINE=0
 | 
|---|
| 109 |  . F  S GMRC1=$O(^TMP("GMRCS",$J,GMRC1)) Q:GMRC1=""  D
 | 
|---|
| 110 |  .. N GMRC2
 | 
|---|
| 111 |  .. S GMRC2=""
 | 
|---|
| 112 |  .. F  S GMRC2=$O(^TMP("GMRCS",$J,GMRC1,GMRC2)) Q:GMRC2=""  D
 | 
|---|
| 113 |  ... S LINE=LINE+1
 | 
|---|
| 114 |  ... S ^TMP("GMRCINC",$J,LINE,0)=$G(^TMP("GMRCS",$J,GMRC1,GMRC2))
 | 
|---|
| 115 |  .. Q
 | 
|---|
| 116 |  . Q
 | 
|---|
| 117 |  Q
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 | HDR ; -- header code
 | 
|---|
| 120 |  S VALMHDR(1)="Transaction(s) for consult#: "_GMRCSEL
 | 
|---|
| 121 |  S VALMHDR(2)="From: "_$G(GMRCEDT1)_"   To: "_$G(GMRCEDT2)
 | 
|---|
| 122 |  Q
 | 
|---|
| 123 | LM ; set caption line
 | 
|---|
| 124 |  D CHGCAP^VALM("CAPTION LINE","Consult     Entry Date/Time    Activity                Error")
 | 
|---|
| 125 |  ;D CHGCAP^VALM("CAPTION LINE 1","Error") ; error moved over w/ patch 28
 | 
|---|
| 126 |  Q
 | 
|---|
| 127 | SELECT ; select a consult for detailed display of information
 | 
|---|
| 128 |  N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y,GMRCDDS
 | 
|---|
| 129 |  K GMRCLOG
 | 
|---|
| 130 |  S DIR(0)="NO^1:9999999^D CKSEL^GMRCITR(X) K:'GMRCDDS X"
 | 
|---|
| 131 |  S DIR("A")="Select a Consult number from the display"
 | 
|---|
| 132 |  S DIR("?")="This response must be a number from the display."
 | 
|---|
| 133 |  D ^DIR I $D(DIRUT) Q
 | 
|---|
| 134 |  K ^TMP("GMRCINC",$J)
 | 
|---|
| 135 |  S GMRCSEL=Y
 | 
|---|
| 136 |  D BLD(GMRCSEL)
 | 
|---|
| 137 |  N ACT,ENT,GMRCND,LINE
 | 
|---|
| 138 |  S (ACT,LINE)=0
 | 
|---|
| 139 |  F  S ACT=$O(^GMR(123.6,"C",GMRCSEL,ACT)) Q:'ACT  D
 | 
|---|
| 140 |  . S ENT=$O(^GMR(123.6,"C",GMRCSEL,ACT,0)) Q:'ENT  D
 | 
|---|
| 141 |  .. Q:'$D(^GMR(123.6,ENT,0))
 | 
|---|
| 142 |  .. N DIC,DR,DA,DIQ,GMRCA
 | 
|---|
| 143 |  .. S DIC="^GMR(123.6,",DR=".01:.08",DA=ENT,DIQ="GMRCA"
 | 
|---|
| 144 |  .. D EN^DIQ1
 | 
|---|
| 145 |  .. S LINE=LINE+1
 | 
|---|
| 146 |  .. S GMRCND="^TMP(""GMRCINC"",$J,LINE,0)"
 | 
|---|
| 147 |  .. S @GMRCND="ENTRY DATE/TIME: "_GMRCA(123.6,ENT,.01),LINE=LINE+1
 | 
|---|
| 148 |  .. S @GMRCND="FACILITY: "_GMRCA(123.6,ENT,.02),LINE=LINE+1
 | 
|---|
| 149 |  .. S @GMRCND="MESSAGE #: "_GMRCA(123.6,ENT,.03),LINE=LINE+1
 | 
|---|
| 150 |  .. S @GMRCND="ACTIVITY #: "_GMRCA(123.6,ENT,.05),LINE=LINE+1
 | 
|---|
| 151 |  .. S @GMRCND="INCOMPLETE: "_GMRCA(123.6,ENT,.06),LINE=LINE+1
 | 
|---|
| 152 |  .. S @GMRCND="TRANS. ATTEMPTS: "_GMRCA(123.6,ENT,.07),LINE=LINE+1
 | 
|---|
| 153 |  .. S @GMRCND="ERROR: "_GMRCA(123.6,ENT,.08),LINE=LINE+1
 | 
|---|
| 154 |  .. S @GMRCND=""
 | 
|---|
| 155 |  S VALMHDR(1)="Detailed Display"
 | 
|---|
| 156 |  S VALMHDR(2)="Consult#: "_GMRCSEL
 | 
|---|
| 157 |  D CHGCAP^VALM("CAPTION LINE","")
 | 
|---|
| 158 |  D CHGCAP^VALM("CAPTION LINE 1","")
 | 
|---|
| 159 |  S VALMCNT=$O(^TMP("GMRCINC",$J," "),-1)
 | 
|---|
| 160 |  S VALMBG=1
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 | CKSEL(X) ; check selection
 | 
|---|
| 163 |  N GMRCDA
 | 
|---|
| 164 |  S (GMRCDA,GMRCDDS)=0
 | 
|---|
| 165 |  F  S GMRCDA=$O(GMRCDAS(GMRCDA)) Q:'GMRCDA!GMRCDDS  D
 | 
|---|
| 166 |  . I GMRCDA=X S GMRCDDS=1
 | 
|---|
| 167 |  Q
 | 
|---|