| 1 | GMRCTIUE ;SLC/DCM,DLT,JFR - Complete/Update TIU notes ;07/10/03 15:26
 | 
|---|
| 2 |  ;;3.0;CONSULT/REQUEST TRACKING;**4,10,14,12,15,17,35**;DEC 27, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine invokes IA #2410,#2694,#2833,#2699,#2700
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  Q
 | 
|---|
| 7 | ENTER(GMRCO) ; Enter a note in TIU for the consult result
 | 
|---|
| 8 |  ;If consult from list is defined in GMRCO, then use it.
 | 
|---|
| 9 |  K GMRCQUT N TIUDA,TIUCLASS,GMRCLCK
 | 
|---|
| 10 |  N GMRCMC
 | 
|---|
| 11 |  I '$L($G(GMRCO)) D SELECT^GMRCA2(.GMRCO)
 | 
|---|
| 12 |  Q:$D(GMRCQUT)!'$L($G(GMRCO))
 | 
|---|
| 13 |  I $P($G(^GMR(123,GMRCO,12)),U,5)="P" D  D EDEX Q
 | 
|---|
| 14 |  . N DIR
 | 
|---|
| 15 |  . W !,"The requesting facility may not complete an inter-facility "
 | 
|---|
| 16 |  . W "consult."
 | 
|---|
| 17 |  . S DIR(0)="E" D ^DIR
 | 
|---|
| 18 |  I '$$LOCK^GMRCA1(GMRCO) D EDEX Q
 | 
|---|
| 19 |  S GMRCLCK=1
 | 
|---|
| 20 |  D CHKSTS I $G(GMRCQUT) D EDEX Q
 | 
|---|
| 21 |  I $D(VALM) D FULL^VALM1
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;Find out access if a Clinical Procedure request
 | 
|---|
| 24 |  N GMRCCP
 | 
|---|
| 25 |  S GMRCCP=$$CPACTM^GMRCCP(+GMRCO)
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  ;If service administrative user, then use administrative complete logic
 | 
|---|
| 28 |  N GMRCAU
 | 
|---|
| 29 |  S GMRCAU=$$VALID^GMRCAU($P(^GMR(123,GMRCO,0),U,5))
 | 
|---|
| 30 |  I GMRCAU=3 D  Q
 | 
|---|
| 31 |  . I $P(^GMR(123,+GMRCO,0),U,12)'=2,'GMRCCP S GMRCMC=$$MED(GMRCO)
 | 
|---|
| 32 |  . I $G(GMRCMC),$P(^GMR(123,+GMRCO,0),U,12)=2 D EDEX Q
 | 
|---|
| 33 |  . W !,$$CJ^XLFSTR("- Proceeding with Administrative Complete -",80)
 | 
|---|
| 34 |  . D COMP^GMRCAAC(+GMRCO)
 | 
|---|
| 35 |  . D EDEX
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  I GMRCAU=4 D  I $G(GMRCQIT)=1 D EDEX Q
 | 
|---|
| 38 |  . N DIRUT
 | 
|---|
| 39 |  . I $P(^GMR(123,+GMRCO,0),U,12)'=2,'GMRCCP S GMRCMC=$$MED(GMRCO)
 | 
|---|
| 40 |  . I $G(GMRCMC),$P(^GMR(123,+GMRCO,0),U,12)=2 Q
 | 
|---|
| 41 |  . S DIR(0)="YA",DIR("A")="Administratively complete this request? "
 | 
|---|
| 42 |  . D ^DIR I $D(DIRUT) S GMRCQIT=1 Q
 | 
|---|
| 43 |  . I Y<1 Q
 | 
|---|
| 44 |  . W !,$$CJ^XLFSTR("- Proceeding with Administrative Complete -",80)
 | 
|---|
| 45 |  . D COMP^GMRCAAC(+GMRCO) S GMRCQIT=1
 | 
|---|
| 46 |  . Q 
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ;Assume the user is a clinical user
 | 
|---|
| 49 |  I GMRCCP=0 S GMRCMC=$$MED(GMRCO) ;only go med if not a CP
 | 
|---|
| 50 |  ;If a Procedure, allow Medicine or fall through to a note
 | 
|---|
| 51 |  I $G(GMRCMC) D  I $G(GMRCQIT)=1 D EDEX Q
 | 
|---|
| 52 |  . N DUOUT,DTOUT,DIROUT,DIRUT,X,Y,DIR
 | 
|---|
| 53 |  . W !
 | 
|---|
| 54 |  . S DIR(0)="YA",DIR("B")="Y",DIR("A")="Continue with Note Entry? "
 | 
|---|
| 55 |  . D ^DIR I Y<1 S GMRCQIT=1
 | 
|---|
| 56 |  . W !
 | 
|---|
| 57 |  . Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  ;Get list of notes If no new notes, add new then quit
 | 
|---|
| 60 |  S GMRCDFN=$P(^GMR(123,+GMRCO,0),"^",2)
 | 
|---|
| 61 |  I $D(VALM) D FULL^VALM1
 | 
|---|
| 62 |  I '$$GETLIST(GMRCDFN,GMRCO,.GMRCTIUC) D  D EDEX Q
 | 
|---|
| 63 |  . I GMRCCP>1,GMRCCP'=4 D CPGUI Q
 | 
|---|
| 64 |  . D NEW
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;If TIU Document already exists, use single record edit, and quit
 | 
|---|
| 67 |  S GMRCVF="TIU(8925,"
 | 
|---|
| 68 |  I GMRCTIUC(GMRCVF)=1 D  Q
 | 
|---|
| 69 |  . I GMRCCP=3 D CPGUI Q  ;incomplete CP document, must go to GUI
 | 
|---|
| 70 |  . N DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT
 | 
|---|
| 71 |  . D SHOWTIU^GMRCTIUL
 | 
|---|
| 72 |  . S DIR(0)="YA",DIR("B")="Yes",DIR("A")="Edit/Review this note? "
 | 
|---|
| 73 |  . D ^DIR I Y>0 D
 | 
|---|
| 74 |  .. S GMRCTUFN=$$SINGLE(GMRCVF)
 | 
|---|
| 75 |  .. I +GMRCTUFN D EDITNOTE(GMRCTUFN)
 | 
|---|
| 76 |  . S DIR(0)="YA"
 | 
|---|
| 77 |  . S DIR("B")="No",DIR("A")="Would you like to enter a new note? "
 | 
|---|
| 78 |  . W ! D ^DIR I Y>0 D NEW
 | 
|---|
| 79 |  . D EDEX
 | 
|---|
| 80 |  . Q
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 |  ;Show the list of multiple tiu results for selection
 | 
|---|
| 83 |  D SHOWTIU^GMRCTIUL
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  ;Select a note from the list and then get the TIU internal entry
 | 
|---|
| 86 |  S GMRCSELR=$$SELR^GMRCTIUL(.GMRCTIUC)
 | 
|---|
| 87 |  I $D(GMRCQUT) D EDEX Q
 | 
|---|
| 88 |  I '+(GMRCSELR) D  D EDEX Q
 | 
|---|
| 89 |  . ;didn't select existing note, allow a new entry
 | 
|---|
| 90 |  . N DIR,X,Y
 | 
|---|
| 91 |  . S DIR(0)="Y",DIR("A")="Would you like to enter a new note"
 | 
|---|
| 92 |  . S DIR("B")="N" D ^DIR
 | 
|---|
| 93 |  . I Y<1 K DTOUT,DUOUT,X,Y Q
 | 
|---|
| 94 |  . D NEW
 | 
|---|
| 95 |  S GMRCTUFN=$$GETTUFN(GMRCSELR)
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  I +GMRCTUFN D EDITNOTE(GMRCTUFN)
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 |  D EDEX
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | MED(GMRCO) ;allow med results if appropriate
 | 
|---|
| 103 |  ;If a Procedure and setu properly, allow Medicine
 | 
|---|
| 104 |  N GMRCMED,GMRCQIT S GMRCMED=0
 | 
|---|
| 105 |  I $P(^GMR(123,+GMRCO,0),U,17)="P" D
 | 
|---|
| 106 |  . Q:'$P(^GMR(123.3,+$P(^GMR(123,+GMRCO,0),U,8),0),U,5)
 | 
|---|
| 107 |  . D FULL^VALM1
 | 
|---|
| 108 |  . N DIR,DIROUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 109 |  . S DIR(0)="YA",DIR("B")="Y"
 | 
|---|
| 110 |  . S DIR("A",1)="  ",DIR("A")="Attach Medicine Results? "
 | 
|---|
| 111 |  . D ^DIR Q:Y<1
 | 
|---|
| 112 |  . K DIR
 | 
|---|
| 113 |  . S GMRCMED=1
 | 
|---|
| 114 |  . D ARMED^GMRCAR
 | 
|---|
| 115 |  Q GMRCMED
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 | SAUSER() ; admin user?
 | 
|---|
| 118 |  N GMRCSS,GMRCADUS
 | 
|---|
| 119 |  S GMRCSS=+$P($G(^GMR(123,+GMRCO,0)),"^",5) Q:'+GMRCSS 0
 | 
|---|
| 120 |  I $D(^GMR(123.5,+$P($G(^GMR(123,+GMRCO,0)),"^",5),123.33,"B",DUZ)) Q 1
 | 
|---|
| 121 |  I '$L($TEXT(VALIDU^GMRCAU)) Q 0
 | 
|---|
| 122 |  S GMRCADUS=0
 | 
|---|
| 123 |  I $L($TEXT(VALIDU^GMRCAU)) D TEAM^GMRCAU(.GMRCADUS,123.34,DUZ)
 | 
|---|
| 124 |  Q +GMRCADUS
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 | CHKSTS ;Check the order status before allowing entry of a note
 | 
|---|
| 127 |  N STATUS S STATUS=$P($G(^GMR(123,+GMRCO,0)),"^",12)
 | 
|---|
| 128 |  I $S(STATUS=1:1,STATUS=13:1,1:0) D
 | 
|---|
| 129 |  . W !,"This order has been "
 | 
|---|
| 130 |  . W $S(STATUS=1:"DISCONTINUED",1:"CANCELLED")
 | 
|---|
| 131 |  . W ".  A note cannot be entered."
 | 
|---|
| 132 |  . D PAUSE S GMRCQUT=1
 | 
|---|
| 133 |  Q
 | 
|---|
| 134 |  ;
 | 
|---|
| 135 | EDITNOTE(GMRCTUFN) ;use TIU LM for an existing note
 | 
|---|
| 136 |  I +$D(^TIU(8925,+GMRCTUFN,0)) D  Q
 | 
|---|
| 137 |  . D EXSTNOTE^TIUBR1(+GMRCDFN,+GMRCTUFN)
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 |  ; link is missing
 | 
|---|
| 140 |  W !,"A note #"_+GMRCTUFN_" is linked to the consult,"
 | 
|---|
| 141 |  W !,"  but the note is no longer in TIU!"
 | 
|---|
| 142 |  D PAUSE
 | 
|---|
| 143 |  Q
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 | SINGLE(GMRCVF) ;Get the single result entry from the list for the file type
 | 
|---|
| 146 |  N RSLT,GMRCVP
 | 
|---|
| 147 |  S RSLT="",GMRCVP=0
 | 
|---|
| 148 |  F  S RSLT=$O(^TMP("GMRC50",$J,RSLT)) Q:RSLT=""  D  Q:+GMRCVP
 | 
|---|
| 149 |  . I $P(RSLT,";",2)=GMRCVF S GMRCVP=RSLT
 | 
|---|
| 150 |  Q +GMRCVP
 | 
|---|
| 151 |  ;
 | 
|---|
| 152 | GETTUFN(GMRCSELR) ;Get the result entry from the selected entry
 | 
|---|
| 153 |  N RSLT
 | 
|---|
| 154 |  S RSLT=$O(^TMP("GMRC50R",$J,GMRCSELR,""))
 | 
|---|
| 155 |  Q RSLT
 | 
|---|
| 156 |  ;
 | 
|---|
| 157 | NEW ;Enter a new result through TIU if implemented or old Completion logic
 | 
|---|
| 158 |  S TIUCLASS=+$$CLASS(+$$CPACTM^GMRCCP(+GMRCO))
 | 
|---|
| 159 |  I TIUCLASS'>0 D  Q
 | 
|---|
| 160 |  . W !!,$C(7),"Consult Resulting through TIU is not yet implemented."
 | 
|---|
| 161 |  . W !,"Proceeding with Administrative Complete."
 | 
|---|
| 162 |  . D COMP^GMRCAAC(+GMRCO)
 | 
|---|
| 163 |  ;
 | 
|---|
| 164 |  N GMRCTIDA
 | 
|---|
| 165 |  D MAIN^TIUEDIT(TIUCLASS,.GMRCTIDA,GMRCDFN,"","","","",1)
 | 
|---|
| 166 |  ;
 | 
|---|
| 167 |  Q
 | 
|---|
| 168 |  ;
 | 
|---|
| 169 | CLASS(CPSTAT) ; Get TIU doc def for CONSULTS OR clinical procedures
 | 
|---|
| 170 |  N GMRCY,GMRCDTYP,ERR
 | 
|---|
| 171 |  I 'CPSTAT D
 | 
|---|
| 172 |  . S GMRCY=$$FIND1^DIC(8925.1,,"X","CONSULTS","B",,"ERR")
 | 
|---|
| 173 |  I '$D(GMRCY) D
 | 
|---|
| 174 |  . S GMRCY=$$FIND1^DIC(8925.1,,"X","CLINICAL PROCEDURES","B",,"ERR")
 | 
|---|
| 175 |  S GMRCDTYP=$$GET1^DIQ(8925.1,+GMRCY,.04,"I")
 | 
|---|
| 176 |  I +GMRCY>0,$S(GMRCDTYP="CL":0,GMRCDTYP="DC":0,1:1) S GMRCY=0
 | 
|---|
| 177 |  Q GMRCY
 | 
|---|
| 178 |  ;
 | 
|---|
| 179 | GETLIST(GMRCDFN,GMRCO,GMRCLIST) ;
 | 
|---|
| 180 |  ;
 | 
|---|
| 181 |  N GMRCVF
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 |  D GETLIST^GMRCTIUL(GMRCO,2,1,.GMRCTIUC)
 | 
|---|
| 184 |  S GMRCVF="TIU(8925,"
 | 
|---|
| 185 |  Q +$G(GMRCTIUC(GMRCVF))
 | 
|---|
| 186 |  ;
 | 
|---|
| 187 | ADDEND(GMRCO) ; Make an addendum action for a selected consult
 | 
|---|
| 188 |  N TIUDA,GMRCTX,GMRCDFN,GMRCADUZ,RSLTINFO,GMRCACT,GMRCTIUC
 | 
|---|
| 189 |  N GMRCLCK,RSLTIEN
 | 
|---|
| 190 |  K GMRCQUT
 | 
|---|
| 191 |  I '$L($G(GMRCO)) D SELECT^GMRCA2(.GMRCO)
 | 
|---|
| 192 |  Q:$D(GMRCQUT)!'+($G(GMRCO))
 | 
|---|
| 193 |  ;
 | 
|---|
| 194 |  ;If service administrative user, then QUIT.
 | 
|---|
| 195 |  I $$VALID^GMRCAU($P(^GMR(123,+GMRCO,0),U,5))=3 D  Q
 | 
|---|
| 196 |  . D EXAC^GMRCADC("You do not have the ability to edit this note.")
 | 
|---|
| 197 |  ;
 | 
|---|
| 198 |  ;Assume the user is a clinical user
 | 
|---|
| 199 |  ;
 | 
|---|
| 200 |  ;Get list of notes for this consult. if no notes, then quit.
 | 
|---|
| 201 |  S GMRCDFN=$P(^GMR(123,+GMRCO,0),"^",2)
 | 
|---|
| 202 |  I '$$GETLIST(GMRCDFN,+GMRCO,.GMRCTIUC) D  Q
 | 
|---|
| 203 |  . W !,"This consult does not yet have an associated note."
 | 
|---|
| 204 |  . W !,"  Use the Complete action to enter a new note."
 | 
|---|
| 205 |  . D PAUSE,EDEX
 | 
|---|
| 206 |  ;
 | 
|---|
| 207 |  I '$$LOCK^GMRCA1(GMRCO) D EDEX Q
 | 
|---|
| 208 |  S GMRCLCK=1
 | 
|---|
| 209 |  ;If TIU Document already exists, use single record edit, and quit
 | 
|---|
| 210 |  S GMRCVF="TIU(8925,"
 | 
|---|
| 211 |  I GMRCTIUC(GMRCVF)=1 D  D EDEX Q
 | 
|---|
| 212 |  . S GMRCTUFN=$$SINGLE(GMRCVF)
 | 
|---|
| 213 |  . Q:'+GMRCTUFN
 | 
|---|
| 214 |  . D SHOWTIU^GMRCTIUL
 | 
|---|
| 215 |  . N GMRCVP,RSLTINFO,AUTHOR
 | 
|---|
| 216 |  . S GMRCVP=+GMRCTUFN_";"_GMRCVF
 | 
|---|
| 217 |  . S RSLTIEN=$O(^TMP("GMRC50",$J,GMRCVP,0))
 | 
|---|
| 218 |  . S RSLTINFO=$G(^TMP("GMRC50",$J,GMRCVP,RSLTIEN))
 | 
|---|
| 219 |  . I $P(RSLTINFO,"^",6)="completed" D ADDEND1(+GMRCTUFN) Q
 | 
|---|
| 220 |  . I (DUZ=+$P(RSLTINFO,"^",4)) D EDITNOTE(+GMRCTUFN) Q
 | 
|---|
| 221 |  . W !,"You may not addend to the incomplete associated note."
 | 
|---|
| 222 |  . W !,"You are not the author of the existing note."
 | 
|---|
| 223 |  . I $$READ^GMRCACMT("Y","Do you want to add a new note ","YES") D NEW
 | 
|---|
| 224 |  . Q
 | 
|---|
| 225 |  ;
 | 
|---|
| 226 |  ;Show the list of multiple tiu results for selection
 | 
|---|
| 227 |  D SHOWTIU^GMRCTIUL
 | 
|---|
| 228 |  ;
 | 
|---|
| 229 |  ;Select a note from the list and then get the TIU internal entry
 | 
|---|
| 230 |  S GMRCSELR=$$SELR^GMRCTIUL(.GMRCTIUC)
 | 
|---|
| 231 |  I $D(GMRCQUT)!'+(GMRCSELR) D EDEX Q
 | 
|---|
| 232 |  S GMRCTUFN=$$GETTUFN(GMRCSELR)
 | 
|---|
| 233 |  ;
 | 
|---|
| 234 |  I +GMRCTUFN D ADDEND1(+GMRCTUFN),EDEX Q
 | 
|---|
| 235 |  ;
 | 
|---|
| 236 |  D EDEX
 | 
|---|
| 237 |  Q
 | 
|---|
| 238 | ADDEND1(TIUDA) ;Add an addendum
 | 
|---|
| 239 |  ;
 | 
|---|
| 240 |  D FULL^VALM1,ADDEND1^TIURA1
 | 
|---|
| 241 |  Q
 | 
|---|
| 242 |  ;
 | 
|---|
| 243 | EDEX ;
 | 
|---|
| 244 |  I $G(GMRCLCK) D UNLOCK^GMRCA1(GMRCO)
 | 
|---|
| 245 |  K GMRCDFN,GMRCO,GMRCQUT,GMRCTUFN,GMRCSEL,GMRCQIT
 | 
|---|
| 246 |  Q
 | 
|---|
| 247 |  ;
 | 
|---|
| 248 | PAUSE ; Pause for user
 | 
|---|
| 249 |  ;
 | 
|---|
| 250 |  N X W !,"Press <RETURN> to continue: " R X:DTIME E  W " (timeout)"
 | 
|---|
| 251 |  Q
 | 
|---|
| 252 |  ;
 | 
|---|
| 253 | CPGUI ;it's GUI way or no way
 | 
|---|
| 254 |  N MSG
 | 
|---|
| 255 |  S MSG="You must use the CPRS GUI to complete this Clinical Procedure"
 | 
|---|
| 256 |  D EXAC^GMRCADC(MSG)
 | 
|---|
| 257 |  Q
 | 
|---|