[613] | 1 | GMRCGUIA ;SLC/DCM,JFR - File Consult actions from GUI ;7/8/03 07:36
|
---|
| 2 | ;;3.0;CONSULT/REQUEST TRACKING;**1,4,12,15,22,35**;DEC 27, 1997
|
---|
| 3 | ;
|
---|
| 4 | ; This routine invokes IA #2638,#2926
|
---|
| 5 | ;
|
---|
| 6 | NEW(DFN,GMRCDA,GMRCLOC,GMRCTYPE,GMRCSVC,GMRCPROV,GMRCURG,GMRCPLI,GMRCNP,GMRCATN,GMRCINOT,GMRCDIAG,GMRCRFQ) ;Add a new consult for a patient.
|
---|
| 7 | ;DFN=Patient ^DPT( file number
|
---|
| 8 | ;GMRCRFQ=Reason For Request, why the consult is being ordered. Passed in as
|
---|
| 9 | ; an array
|
---|
| 10 | ;GMRCDIAG=Povisional diagnosis; what is suspected to be the problem
|
---|
| 11 | ;GMRCTYPE=Request type -Consult or Procedure
|
---|
| 12 | ;GMRCLOC=Patient location.
|
---|
| 13 | ;GMRCDA=Date Time of Request
|
---|
| 14 | ;GMRCSVC=To Service; consulting service
|
---|
| 15 | ;GMRCLOC=Hospital Location ordering consult
|
---|
| 16 | ;GMRCPR=If a procedure, the procedure ordered (pointer to file 101)
|
---|
| 17 | ;GMRCURG=Urgency of request (stat, routine, etc) from file 101
|
---|
| 18 | ;GMRCPLI=Place of consultation (bedside, consultants choice, etc.) from file 101
|
---|
| 19 | ;GMRCPROV=Sending Provider
|
---|
| 20 | ;GMRCATN=if consult is to go to a specific provider, this provider is identified here.
|
---|
| 21 | ;GMRCINOT=Service provided as Inpatient or Outpatient
|
---|
| 22 | N DIC,DLAYGO,Y,DIE,GMRCADUZ,X,GMRCO,DR
|
---|
| 23 | S DIC="^GMR(123,",DIC(0)="L",X="""N""",DLAYGO=123 D ^DIC K DLAYGO
|
---|
| 24 | S (DA,GMRCO)=+Y,GMRCSTS=5,GMRCA=1,DIE=DIC
|
---|
| 25 | L +^GMR(123,GMRC0)
|
---|
| 26 | S DR=".02////^S X=DFN;.04////^S X=GMRCLOC;1////^S X=GMRCSVC;3////^S X=GMRCDA;4////^S X=GMRCPR;5////^S X=GMRCURG;6////^S X=GMRCPLI"_$S(GMRCATN]"":"7////^S X=GMRCATN",1:"")
|
---|
| 27 | D ^DIE
|
---|
| 28 | S DR="8////^S X=GMRCSTS;9////^S X=GMRCA;10////^S X=GMRCPROV;11////^S X=GMRCATN;13////^S X=GMRCTYPE;14////^S X=GMRCINOT"_$S($D(GMRCDIAG):"30:////^S X=GMRCDIAG",1:"")
|
---|
| 29 | D ^DIE L -^GMR(123,GMRCO)
|
---|
| 30 | I $O(GMRCRFQ(0)) D REASON^GMRCGUIB(GMRCO,GMRCRFQ,GMRCDA)
|
---|
| 31 | D EN^GMRCHL7(DFN,GMRCDA,GMRCTYPE,$G(GMRCRB),"NW",DUZ,$G(VISIT),"")
|
---|
| 32 | D EXIT
|
---|
| 33 | Q
|
---|
| 34 | ;
|
---|
| 35 | RC(GMRCO,GMRCORNP,GMRCAD,GMRCMT,GMRCDUZ) ;Receive consult into service
|
---|
| 36 | ;
|
---|
| 37 | ;Input variables:
|
---|
| 38 | ;GMRCO - The internal file number of the consult from File 123
|
---|
| 39 | ;GMRCORNP - Name of the person who actually 'Received'the consult
|
---|
| 40 | ;GMRCDUZ - DUZ of person entering the consult as being 'RECEIVED'.
|
---|
| 41 | ;GMRCAD - Actual date time that consult was received into the service.
|
---|
| 42 | ;GMRCMT - array of comments if entered (by reference)
|
---|
| 43 | ; ARRAY(1)="FIRST LINE OF COMMENT"
|
---|
| 44 | ; ARRAY(2)="SECOND LINE OF COMMENT"
|
---|
| 45 | ;GMRCDUZ - DUZ of person entering the consult as being 'RECEIVED'
|
---|
| 46 | ;
|
---|
| 47 | ;Output:
|
---|
| 48 | ;GMRCERR - Error Condition Code: 0 = NO error, 1=error
|
---|
| 49 | ;GMRCERMS - Error message or null
|
---|
| 50 | ; returned as GMRCERR^GMRCERMS
|
---|
| 51 | ;
|
---|
| 52 | N DFN,GMRCSTS,GMRCNOW,GMRCERR,GMRCERMS
|
---|
| 53 | S GMRCERR=0,GMRCERMS="",GMRCNOW=$$NOW^XLFDT
|
---|
| 54 | S:$G(GMRCAD)="" GMRCAD=GMRCNOW
|
---|
| 55 | S:'$G(GMRCDUZ) GMRCDUZ=DUZ
|
---|
| 56 | S DFN=$P($G(^GMR(123,GMRCO,0)),"^",2) I DFN="" S GMRCERR="1",GMRCERMS="Not A Valid Consult - File Not Found." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 57 | S GMRCSTS=6,GMRCA=21
|
---|
| 58 | D STATUS^GMRCP I $D(GMRCQUT) D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 59 | I '$O(GMRCMT(0)) D AUDIT^GMRCP
|
---|
| 60 | I $O(GMRCMT(0)) D
|
---|
| 61 | . S DA=$$SETDA^GMRCGUIB
|
---|
| 62 | . D SETCOM^GMRCGUIB(.GMRCMT,GMRCDUZ)
|
---|
| 63 | D EN^GMRCHL7(DFN,GMRCO,"","","SC",GMRCORNP,"","")
|
---|
| 64 | D EXIT
|
---|
| 65 | Q GMRCERR_"^"_GMRCERMS
|
---|
| 66 | ;
|
---|
| 67 | DC(GMRCO,GMRCORNP,GMRCAD,GMRCACTM,GMRCOM) ;Discontinue or Deny a consult
|
---|
| 68 | ;
|
---|
| 69 | ;Input variables:
|
---|
| 70 | ;GMRCO - Internal file number of consult from File 123
|
---|
| 71 | ;GMRCORNP - Provider who Discontinued or Denied consult
|
---|
| 72 | ;GMRCAD - FM date/time of actual activity.
|
---|
| 73 | ;GMRCACTM - set to "DY" if 'CANCELLED'(old DENY)
|
---|
| 74 | ; set to "DC" if consult is Discontinued
|
---|
| 75 | ;GMRCOM - Comment array containing explanation of action
|
---|
| 76 | ; Passed by reference in the following form :
|
---|
| 77 | ; ARRAY(1)="xxx xxx xxx"
|
---|
| 78 | ; ARRAY(2)="XXX XXX"
|
---|
| 79 | ; ARRAY(3)="XXX XXX xx", etc.
|
---|
| 80 | ; Comment is a required field when consult is denied or discontinued.
|
---|
| 81 | ;
|
---|
| 82 | ;Output:
|
---|
| 83 | ;GMRCERR=Error Flag: 0 if no error, 1 if error occurred
|
---|
| 84 | ;GMRCERMS - Error message or null
|
---|
| 85 | ; returned as GMRCERR^GMRCERMS
|
---|
| 86 | ;
|
---|
| 87 | N GMRCDUZ,DFN,GMRCNOW,GMRCSTS,GMRCERR,GMRCERMS,GMRCADUZ,GMRCTRLC
|
---|
| 88 | S GMRCERR=0,GMRCERMS=""
|
---|
| 89 | S GMRCDUZ=DUZ,GMRCERR=0,GMRCERMS="",GMRCNOW=$$NOW^XLFDT
|
---|
| 90 | K GMRCQUT
|
---|
| 91 | S:$G(GMRCAD)="" GMRCAD=GMRCNOW
|
---|
| 92 | S DFN=$P($G(^GMR(123,GMRCO,0)),"^",2) I DFN="" S GMRCERR="1",GMRCERMS="Not A Valid Consult - File Not Found." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 93 | I '$D(GMRCOM) S GMRCERR=1,GMRCERMS="Comments are required for this action." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 94 | S GMRCSTS=$P(^ORD(100.01,$P(^GMR(123,GMRCO,0),"^",12),0),U,2)
|
---|
| 95 | I GMRCSTS="dc" S GMRCERR=1,GMRCERMS="Order Has Already Been Discontinued." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 96 | I GMRCSTS="ca" S GMRCERR=1,GMRCERMS="Order Has Already Been Cancelled." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 97 | I GMRCSTS="comp" S GMRCERR=1,GMRCERMS="Order Has Already Been Completed." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 98 | S GMRCA=$S(GMRCACTM="DC":6,1:19),GMRCSTS=$S(GMRCA=6:1,1:13)
|
---|
| 99 | D STATUS^GMRCP I $D(GMRCQUT) D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 100 | I GMRCACTM="DC",$$DCPRNT^GMRCUTL1(GMRCO,DUZ) D PRNT^GMRCUTL1("",GMRCO)
|
---|
| 101 | S DA=$$SETDA^GMRCGUIB D SETCOM^GMRCGUIB(.GMRCOM)
|
---|
| 102 | S GMRCOM(0)=DA
|
---|
| 103 | S GMRCTRLC=$S(GMRCACTM="DC":"OD",1:"OC")
|
---|
| 104 | D EN^GMRCHL7(DFN,GMRCO,$G(GMRCTYPE),$G(GMRCRB),GMRCTRLC,GMRCORNP,$G(GMRCVSIT),.GMRCOM,,GMRCAD)
|
---|
| 105 | S GMRCORTX=$S(GMRCACTM="DY":"Cancelled",1:"Discontinued")_" consult "
|
---|
| 106 | S GMRCORTX=GMRCORTX_$$ORTX^GMRCAU(+GMRCO)
|
---|
| 107 | S GMRCADUZ="",GMRCFL=0
|
---|
| 108 | I GMRCACTM="DC" D
|
---|
| 109 | . S GMRCFL=$$DCNOTE^GMRCADC(GMRCO,DUZ) ;NOTIFY SERVICE ON DC ?
|
---|
| 110 | I +$P($G(^GMR(123,+GMRCO,0)),"^",14),$P(^(0),"^",14)'=DUZ D
|
---|
| 111 | . S GMRCADUZ($P(^(0),"^",14))=""
|
---|
| 112 | ;send notification
|
---|
| 113 | N NOTYPE S NOTYPE=$S(GMRCA=6:23,1:30)
|
---|
| 114 | D MSG^GMRCP(DFN,GMRCORTX,+GMRCO,NOTYPE,.GMRCADUZ,GMRCFL)
|
---|
| 115 | D EXIT
|
---|
| 116 | Q GMRCERR_"^"_GMRCERMS
|
---|
| 117 | ;
|
---|
| 118 | FR(GMRCO,GMRCSS,GMRCORNP,GMRCATTN,GMRCURGI,GMRCOM,GMRCAD) ;FWD consult
|
---|
| 119 | ;to another service
|
---|
| 120 | ;
|
---|
| 121 | ;Input variables:
|
---|
| 122 | ;GMRCO=File 123 IEN of the consult record
|
---|
| 123 | ;GMRCSS=service being forwarded to; ptr to REQUEST SERVICES (#123.5)
|
---|
| 124 | ;GMRCORNP=Provider Responsible for action
|
---|
| 125 | ;GMRCATTN=NEW PERSON to whose attention action should be directed
|
---|
| 126 | ;GMRCURGI=urgency from PROTOCOL(#101) file
|
---|
| 127 | ;GMRCOM=Comment array containing explanation of action
|
---|
| 128 | ; Passed by reference in the following form :
|
---|
| 129 | ; ARRAY(1)="xxx xxx xxx"
|
---|
| 130 | ; ARRAY(2)="XXX XXX"
|
---|
| 131 | ; ARRAY(3)="XXX XXX xx", etc.
|
---|
| 132 | ;GMRCAD=FM date/time of actual activity
|
---|
| 133 | ;
|
---|
| 134 | ;Output:
|
---|
| 135 | ; GMRCERR=Error Flag: 0 if no error, 1 if error occurred
|
---|
| 136 | ; GMRCERMS - Error message or null
|
---|
| 137 | ; returned as GMRCERR^GMRCERMS
|
---|
| 138 | ;
|
---|
| 139 | N DR,GMRCDUZ,GMRCNOW,GMRCFF,GMRCFR,GMRCADUZ,GMRCURG
|
---|
| 140 | N GMRCERR,GMRCERMS,GMRCIROL,GMRCINM,GMRCIROU
|
---|
| 141 | S GMRCERR=0,GMRCERMS=""
|
---|
| 142 | S DFN=$P(^GMR(123,+GMRCO,0),U,2)
|
---|
| 143 | S GMRCDUZ=DUZ,GMRCNOW=$$NOW^XLFDT
|
---|
| 144 | S:'$G(GMRCAD) GMRCAD=GMRCNOW ;Actual FM date/time consult was FWD'd
|
---|
| 145 | S:'$G(GMRCURGI) GMRCURGI=$P(^GMR(123,GMRCO,0),U,9)
|
---|
| 146 | S GMRCA=17,GMRCSTS=5
|
---|
| 147 | S GMRCFF=$P($G(^GMR(123.5,+GMRCSS,123)),U,9) ;printed to new serv
|
---|
| 148 | S GMRCFR=$P($G(^GMR(123,+GMRCO,0)),"^",5) ;Get current service
|
---|
| 149 | S DIE="^GMR(123,",DA=GMRCO,DR=""
|
---|
| 150 | I $D(^GMR(123.5,+GMRCSS,"IFC")) D ; if fwd to IFC serv, get extra flds
|
---|
| 151 | . S GMRCIROU=$P(^GMR(123.5,+GMRCSS,"IFC"),U) Q:GMRCIROU="" ;no rout fac
|
---|
| 152 | . S GMRCINM=$P(^GMR(123.5,+GMRCSS,"IFC"),U,2) Q:GMRCINM="" ;no serv nm
|
---|
| 153 | . S GMRCA=25,GMRCIROL="P"
|
---|
| 154 | . S DR=".07////^S X=GMRCIROU;.125////^S X=GMRCIROL;.131///^S X=GMRCINM;"
|
---|
| 155 | S DR=DR_"1////^S X=$G(GMRCSS);5////^S X=$G(GMRCURGI);8////^S X=$G(GMRCSTS);9////^S X=$G(GMRCA);.1///@"_$S($L($G(GMRCATTN)):";7////^S X=GMRCATTN",1:"")
|
---|
| 156 | L +^GMR(123,GMRCO):3 I '$T K DIE,DA,DR S GMRCERR=1,GMRCERMS="Data Not Filed - File In Use By Another User." D EXIT Q GMRCERR_"^"_GMRCERMS
|
---|
| 157 | D ^DIE L -^GMR(123,GMRCO) K DIE,DA,DR
|
---|
| 158 | S DA=$$SETDA^GMRCGUIB D SETCOM^GMRCGUIB(.GMRCOM)
|
---|
| 159 | S GMRCURG=$P($G(^ORD(101,+GMRCURGI,0)),"^",2)
|
---|
| 160 | D DEM^GMRCU ;sets GMRCRB and other variables
|
---|
| 161 | D TYPE^GMRCAFRD ;sets GMRCTYPE
|
---|
| 162 | D FRMSG^GMRCAFRD ;create XX HL7 message for OE/RR and send alert
|
---|
| 163 | D EXIT
|
---|
| 164 | Q GMRCERR_"^"_GMRCERMS
|
---|
| 165 | ;
|
---|
| 166 | RT(GMRCO,TMPGLOB) ;Set ^TMP("GMRCR",$J,"DT", with results from med and TIU
|
---|
| 167 | ;GMRCO=IEN of consult from file 123
|
---|
| 168 | ;Set TMPGLOB to a ^TMP global other than ^TMP("GMRCR",$J,"MCAR", or ^TMP("GMRCR",$J,"RES", i.e., S TMPGLOB="^TMP(""GMRCR"",$J,""RT"")"'
|
---|
| 169 | Q:'$G(GMRCO)
|
---|
| 170 | K @TMPGLOB
|
---|
| 171 | S GMRCDVL="",$P(GMRCDVL,"-",41)=""
|
---|
| 172 | S GMRCSR=$P(^GMR(123,+GMRCO,0),"^",15),GMRCTUFN=$P(^(0),"^",20)
|
---|
| 173 | S GMRCRTFL=$S('+GMRCSR&('GMRCTUFN):1,1:0)
|
---|
| 174 | ;
|
---|
| 175 | D GETRSLT^GMRCART(TMPGLOB)
|
---|
| 176 | ;
|
---|
| 177 | D EXIT
|
---|
| 178 | Q
|
---|
| 179 | EXIT ;kill off variables for exit from actions
|
---|
| 180 | K GMRCA,GMRCDVL,GMRCSR,GMRCRTFL,GMRCFL,GMRCORNP,GMRCQUT,GMRCSTS,GMRCTUFN
|
---|
| 181 | K GMRCRTFL,GMRCADUZ,GMRCORTX
|
---|
| 182 | Q
|
---|