| 1 | GMRCSLM ;SLC/DCM,JFR - List Mgr routine for consult tracking list ;9/8/99 14:52
 | 
|---|
| 2 |  ;;3.0;CONSULT/REQUEST TRACKING;**1,4,14,12,22**;DEC 27, 1997
 | 
|---|
| 3 | EN ; -- main entry point for GMRC CONSULT TRACKING
 | 
|---|
| 4 |  K GMRCOER
 | 
|---|
| 5 |  S GMRCEN=1 K GMRCQUT
 | 
|---|
| 6 |  ;IF Consults
 | 
|---|
| 7 |  I $D(GMRCIS) D  I $D(GMRCQUT) K GMRCEN,GMRCIS,GMRCQUT Q
 | 
|---|
| 8 |  .N DIR,DIRUT,DTOUT,DUOUT,Y
 | 
|---|
| 9 |  .S DIR(0)="SB^R:REQUESTING;C:CONSULTING"
 | 
|---|
| 10 |  .S DIR("A")="Are you the Requesting site or the Consulting site"
 | 
|---|
| 11 |  .D ^DIR I $D(DIRUT) S GMRCQUT=1 Q
 | 
|---|
| 12 |  .S GMRCIS=Y
 | 
|---|
| 13 |  D SP K GMRCEN I $D(GMRCQUT) K GMRCQUT Q
 | 
|---|
| 14 |  D EN^VALM("GMRC CONSULT TRACKING")
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | HDR ; -- header code
 | 
|---|
| 18 |  ;override title if IF Consults
 | 
|---|
| 19 |  I $D(GMRCIS) S VALM("TITLE")="IFC Requests: "_$S(GMRCIS="R":"Requesting",1:"Consulting")_" Site"
 | 
|---|
| 20 |  D HDR1 ;format line 1 of header
 | 
|---|
| 21 |  D:$L(GMRCWT) HDR2("")
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | HDR1 ;format VALMHDR(1) with patient information
 | 
|---|
| 25 |  N GMRCX,GMRCX1,GMRCX2,GMRCX3,TIUCWAD,GMRVSTR,X
 | 
|---|
| 26 |  ;Expects DFN
 | 
|---|
| 27 |  S GMRVSTR="WT" D EN6^GMRVUTL
 | 
|---|
| 28 |  S GMRCWT="Wt.(lb): "_$S($L($P(X,U,8)):$P(X,U,8),1:"No Entry")
 | 
|---|
| 29 |  D DEM^GMRCU ;returns GMRCPNM,GMRCSN,GMRCAGE,SEX,GMRCWARD,GMRCRB,GMRCDOB,GMRCWLI
 | 
|---|
| 30 |  S GMRCX1=GMRCPNM_"   "_GMRCSN
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  S GMRCLOC=+$G(^DIC(42,+GMRCWLI,44))_";SC(" I 'GMRCLOC,'$D(XQAID) S GMRCLOC=""
 | 
|---|
| 33 |  S GMRCX2="" I +$G(GMRCLOC) D
 | 
|---|
| 34 |  . N L S L=$G(^SC(+GMRCLOC,0)),GMRCX2=$P(L,U,2)
 | 
|---|
| 35 |  . S:'$L(GMRCX2) GMRCX2=$E($P(L,U),1,4)
 | 
|---|
| 36 |  S:$L($G(GMRCRB)) GMRCX2=GMRCX2_"/"_GMRCRB
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  S GMRCX=GMRCX1_$J(GMRCX2,40+($L(GMRCX2)\2)-$L(GMRCX1))
 | 
|---|
| 39 |  S GMRCX3=" "_GMRCDOB_" ("_GMRCAGE_")"
 | 
|---|
| 40 |  S TIUCWAD=$$CWAD^ORQPT2(+DFN) S:TIUCWAD]"" GMRCX3=GMRCX3_"   <"_TIUCWAD_">"
 | 
|---|
| 41 |  S VALMHDR(1)=GMRCX_$J(GMRCX3,79-$L(GMRCX))
 | 
|---|
| 42 |  K VALMHDR(2)
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | HDR2(GMRCX) ;format VALMHDR(2) with patient weight
 | 
|---|
| 45 |  S VALMHDR(2)=$G(GMRCX)_$J($G(GMRCWT),79-$L($G(GMRCX)))
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | INIT ; -- init variables and list array
 | 
|---|
| 49 |  K ^TMP("GMRCR",$J,"LIST")
 | 
|---|
| 50 |  S DSPLINE=0,DATA="",VALMAR="^TMP(""GMRCR"",$J,""LIST"")"
 | 
|---|
| 51 |  F LINE=1:1:LNCT S DSPLINE=$O(^TMP("GMRCR",$J,"CS",DSPLINE)) Q:DSPLINE=""!(DSPLINE?1A.E)  S DATA=^(DSPLINE,0) D SET^VALM10(LINE,DATA)
 | 
|---|
| 52 |  S VALMCNT=LNCT,VALMPGE=1,XQORM("A")="Select Action: "
 | 
|---|
| 53 |  K DSPLINE,DATA,LINE
 | 
|---|
| 54 |  S:$D(^TMP("GMRC",$J,"CURRENT","MENU")) XQORM("HIJACK")=^("MENU")
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | HELP ; -- help code
 | 
|---|
| 58 |  N X,DX,DY D FULL^VALM1
 | 
|---|
| 59 |  W !!,"Enter the display number of the item you wish to act on, or select an action."
 | 
|---|
| 60 |  W !!,"If you'd like another view of the consults, enter CV."
 | 
|---|
| 61 |  W !!,"Status key:",!?5,"'a' - active",?27,"'c' - complete",?50,"'dc' - discontinued",!?5,"'p' - pending",?27,"'x' - cancelled",?50,"'pr' - partial results",!?5,"'s' - scheduled",?27,"'e' - expired"
 | 
|---|
| 62 |  W !!,"Enter ?? to see a list of actions available for navigating the list."
 | 
|---|
| 63 |  W !!,"Press <return> to continue ..." R X:DTIME
 | 
|---|
| 64 |  S VALMBCK="R"
 | 
|---|
| 65 |  ; S VALMSG=$$MSG
 | 
|---|
| 66 |  S (DX,DY)=0 X ^%ZOSF("XY")
 | 
|---|
| 67 |  D EXIT^GMRCSLMA("R")
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | EXIT ; -- exit code
 | 
|---|
| 71 |  K ^TMP("GMRCR",$J,"LIST")
 | 
|---|
| 72 |  K VALMCNT,VALMBCK,VALMPGE
 | 
|---|
| 73 |  D ^GMRCREXT
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | PHYEN ;Entry Point When Provider's service is known and only needs to look at consults for that service
 | 
|---|
| 77 |  Q:'$D(DUZ)  Q:'$D(^VA(200,DUZ,5))  Q:'$L(^VA(200,DUZ,5))
 | 
|---|
| 78 |  S DIC="^DIC(49,",DIC(0)="MNO",X=^VA(200,DUZ,5) D ^DIC K DIC S GMRCSSNM=$S($L($P(Y,"^",2)):$P(Y,"^",2),1:"") I $L(GMRCSSNM) S GMRCSS=$O(^GMR(123.5,"B",GMRCSSNM,0))
 | 
|---|
| 79 |  S GMRCFL=1 D SP I $D(GMRCQUT),GMRCQUT=1 Q
 | 
|---|
| 80 |  D SPD I $D(GMRCQUT) D END,EXIT Q
 | 
|---|
| 81 |  K GMRCFL
 | 
|---|
| 82 |  D AD^GMRCSLM1
 | 
|---|
| 83 |  I GMRCSSNM'["MEDICINE" D EN^VALM("GMRC CONSULT TRACKING"),END,EXIT Q
 | 
|---|
| 84 |  D EN^VALM("GMRC TRK MEDICINE CONSULTS"),END,EXIT Q
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 | SP ;;Select a new patient and return DFN and GMRCSSNM to display consults and requested Service.
 | 
|---|
| 87 |  I $D(VALM) D FULL^VALM1
 | 
|---|
| 88 |  K GMRCQUT S GMRCDFN1=$S($D(DFN):DFN,1:0)
 | 
|---|
| 89 |  D SELPT^GMRCS I $S($D(GMRCQUT):1,'$D(DFN):1,1:0) S GMRCQUT=1,DFN=GMRCDFN1 G SPK
 | 
|---|
| 90 |  I $D(Y),Y<0&(X["^") S GMRCQUT=1 G SPK
 | 
|---|
| 91 |  I $D(Y),Y<0 S DFN=GMRCDFN1 S GMRCQUT=1 G SPK
 | 
|---|
| 92 |  I $D(GMRC("NMBR")) D RESET^GMRCSLMV(GMRC("NMBR")) K GMRC("NMBR")
 | 
|---|
| 93 |  S GMRCWRD=GMRCWARD
 | 
|---|
| 94 |  I $D(GMRCFL) D SPK Q
 | 
|---|
| 95 |  D ASRV^GMRCASV I $S($D(GMRCQUT):1,$D(DTOUT):1,$D(DUOUT):1,1:0) K DTOUT,DIROUT,DUOUT S (GMRCQUT,GMRCQIT)=1 Q
 | 
|---|
| 96 |  S GMRCSS=GMRCDG,GMRCSSNM=$P(^GMR(123.5,GMRCSS,0),"^",1) S GMRCSTCK=""
 | 
|---|
| 97 |  D EN^GMRCMENU
 | 
|---|
| 98 | SPD ;Enter a date range for serching consults;  null entry selects all consults and does not exclude by date
 | 
|---|
| 99 |  D ^GMRCSPD Q:$D(GMRCQUT)
 | 
|---|
| 100 |  I $D(GMRCEN) D SPK Q  ;GMRCEN defined if branched to here from EN^GMRCSLM
 | 
|---|
| 101 |  S GMRCOER=0
 | 
|---|
| 102 |  D AD^GMRCSLM1 ;Do not delete. Needed to get new Pt. data into ^TMP("GMRCR",
 | 
|---|
| 103 |  S VALMCNT=LNCT,VALMBCK="R",VALMPGE=1 K GMRCDFN1
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 | SPQ ;New patient has not been selected - keep current patient
 | 
|---|
| 106 |  I '$D(DFN),GMRCDFN1<1 S GMRCQUT=1 K GMRCDFN1 Q
 | 
|---|
| 107 |  S DFN=GMRCDFN1 Q:DFN<1  W " "_GMRCPNM K GMRCDFN1
 | 
|---|
| 108 |  S VALMBCK="R",GMRCQUT=1 K GMRCDFN1
 | 
|---|
| 109 | SPK ;Kill variables
 | 
|---|
| 110 |  ;I $D(GMRCTM),$D(GMRCBM),$D(IOSTBM) S IOTM=GMRCTM,IOBM=IOSTBM
 | 
|---|
| 111 |  K GMRCDFN1,GMRCBM,GMRCTM
 | 
|---|
| 112 |  Q
 | 
|---|
| 113 | SS ;Select A New Service or ALL SERVICES to Display Patient Consults
 | 
|---|
| 114 |  K GMRCQUT,GMRCVP S GMRCOER=0
 | 
|---|
| 115 |  D FULL^VALM1
 | 
|---|
| 116 |  D ASRV^GMRCASV I $D(GMRCQUT),GMRCQUT=1 Q
 | 
|---|
| 117 |  S GMRCSS=GMRCDG,GMRCSSNM=$P(^GMR(123.5,GMRCSS,0),"^",1)
 | 
|---|
| 118 |  D AD^GMRCSLM1,INIT,HDR
 | 
|---|
| 119 |  S VALMBCK="R",VALMCNT=LNCT
 | 
|---|
| 120 |  D EN^GMRCACTM,EN^GMRCMENU
 | 
|---|
| 121 |  I $D(GMRC("NMBR")) D RESET^GMRCSLMV(GMRC("NMBR")) K GMRC("NMBR")
 | 
|---|
| 122 |  Q
 | 
|---|
| 123 | STS ;Select a status for view. i.e., only active, pendings, DC'd, etc.
 | 
|---|
| 124 |  I $D(IOTM),$D(IOBM),$D(IOSTBM) D FULL^VALM1
 | 
|---|
| 125 |  S GMRCERR=0
 | 
|---|
| 126 |  N DIR,X,Y
 | 
|---|
| 127 |  S DIR(0)="SAOM^dc:Discontinued;c:Complete;p:Pending;a:Active;pr:Partial Results;s:Scheduled;x:Cancelled"
 | 
|---|
| 128 |  S $P(DIR(0),U,2)="al:All Status's;"_$P(DIR(0),U,2)
 | 
|---|
| 129 |  S DIR("A")="Only Display Consults With Status of: "
 | 
|---|
| 130 |  S DIR("B")="All Status's"
 | 
|---|
| 131 |  I $G(GMRCSTCK) D
 | 
|---|
| 132 |  . S DIR("A")="Another Status to display: "
 | 
|---|
| 133 |  . K DIR("B")
 | 
|---|
| 134 |  D ^DIR
 | 
|---|
| 135 |  I $D(DUOUT)!($D(DTOUT))!('$L(Y)) G END
 | 
|---|
| 136 |  D STCK($$LOW^XLFSTR(Y)) I $G(GMRCSTCK)="" D:$D(GMRC("NMBR"))  G END
 | 
|---|
| 137 |  . D RESET^GMRCSLMV(GMRC("NMBR"))
 | 
|---|
| 138 |  . K GMRC("NMBR")
 | 
|---|
| 139 |  . Q
 | 
|---|
| 140 |  I $D(GMRC("NMBR")) D RESET^GMRCSLMV(GMRC("NMBR")) K GMRC("NMBR")
 | 
|---|
| 141 |  G STS
 | 
|---|
| 142 | STCK(RES)     ;change code to status
 | 
|---|
| 143 |  N CODE
 | 
|---|
| 144 |  I RES="al" S GMRCSTCK="" Q
 | 
|---|
| 145 |  I RES="dc" S CODE=1
 | 
|---|
| 146 |  I RES="c" S CODE=2
 | 
|---|
| 147 |  I RES="p" S CODE=5
 | 
|---|
| 148 |  I RES="a" S CODE=6
 | 
|---|
| 149 |  I RES="pr" S CODE=9
 | 
|---|
| 150 |  I RES="x" S CODE=13
 | 
|---|
| 151 |  I RES="s" S CODE=8
 | 
|---|
| 152 |  I $D(GMRCSTCK)  I $$FND(CODE) W $C(7),!,"Already selected" Q
 | 
|---|
| 153 |  I +$G(GMRCSTCK) S GMRCSTCK=GMRCSTCK_","_CODE Q
 | 
|---|
| 154 |  S GMRCSTCK=CODE
 | 
|---|
| 155 |  Q
 | 
|---|
| 156 | FND(CD) ;status already selected?
 | 
|---|
| 157 |  I GMRCSTCK=CD Q 1
 | 
|---|
| 158 |  I $F(GMRCSTCK,(CD_",")) Q 1
 | 
|---|
| 159 |  I $E(GMRCSTCK,$L(GMRCSTCK))=CD Q 1
 | 
|---|
| 160 |  Q 0
 | 
|---|
| 161 | END K DIR,GMRCERR,Y
 | 
|---|
| 162 |  Q
 | 
|---|