| 1 | ECUTL0 ;ALB/ESD - Event Capture Eligibility and In/Outpat Utilities ;4 May 98
|
---|
| 2 | ;;2.0; EVENT CAPTURE ;**10**;8 May 96
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | CHKDSS(DSSU,INOUT) ; Determine if DSS Unit is sending data to PCE
|
---|
| 6 | ;
|
---|
| 7 | ; Input:
|
---|
| 8 | ; DSSU - DSS Unit IEN
|
---|
| 9 | ; INOUT - Inpatient or Outpatient
|
---|
| 10 | ;
|
---|
| 11 | ; Output:
|
---|
| 12 | ; Function Value - 0 if DSS Unit not sending to PCE or input
|
---|
| 13 | ; parameters not passed in
|
---|
| 14 | ; 1 if DSS Unit sending to PCE
|
---|
| 15 | ;
|
---|
| 16 | N ECDSS,ECSEND
|
---|
| 17 | ;
|
---|
| 18 | ;- Drops out if invalid condition
|
---|
| 19 | D
|
---|
| 20 | . I '$G(DSSU),($G(INOUT)="") S ECDSS=0 Q
|
---|
| 21 | .;
|
---|
| 22 | .;- Get 'Send to PCE' field
|
---|
| 23 | . S ECSEND=$P($G(^ECD(+DSSU,0)),"^",14)
|
---|
| 24 | . I ECSEND="A"!(ECSEND="O"&(INOUT="O")) S ECDSS=1
|
---|
| 25 | . E S ECDSS=0
|
---|
| 26 | Q ECDSS
|
---|
| 27 | ;
|
---|
| 28 | ;
|
---|
| 29 | ELGLST() ; Display list of patient eligibilities and allow user to
|
---|
| 30 | ; select eligibility, given ELIG^VADPT has been previously called.
|
---|
| 31 | ;
|
---|
| 32 | ; Input:
|
---|
| 33 | ; None
|
---|
| 34 | ; Output:
|
---|
| 35 | ; Function value - IEN of eligibility from ELIGIBILITY CODE file
|
---|
| 36 | ; (#8) or 0 if unsuccessful
|
---|
| 37 | ;
|
---|
| 38 | N ECALLEL,ECELIEN,ECELIG,ECPRIMEL
|
---|
| 39 | S (ECELIEN,ECELIG)=0
|
---|
| 40 | ;
|
---|
| 41 | ;- If VAEL not previously called, exit with error condition
|
---|
| 42 | I '$D(VAEL)!('$G(VAEL(1))) G ELGLSTQ
|
---|
| 43 | ELIG S ECALLEL=""
|
---|
| 44 | S ECPRIMEL=$P(VAEL(1),"^",2)
|
---|
| 45 | W !!,"THIS PATIENT HAS OTHER ENTITLED ELIGIBILITIES:"
|
---|
| 46 | ;
|
---|
| 47 | ;- Display all of patient's eligibilities
|
---|
| 48 | F ECELIEN=0:0 S ECELIEN=$O(VAEL(1,ECELIEN)) Q:'ECELIEN D
|
---|
| 49 | . W !?5,$P(VAEL(1,ECELIEN),"^",2)
|
---|
| 50 | . S ECALLEL=ECALLEL_"^"_$P(VAEL(1,ECELIEN),"^",2)
|
---|
| 51 | ;
|
---|
| 52 | ;- Use patient's primary elig as default
|
---|
| 53 | CHOOSE W !!,"ENTER THE ELIGIBILITY FOR THIS APPOINTMENT: "_ECPRIMEL_"// "
|
---|
| 54 | ;
|
---|
| 55 | ;- If return, uparrow, or time out get prim elig w/o searching for match
|
---|
| 56 | R X:DTIME G PRIMELG:"^"[X!('$T) S X=$$UPPER^VALM1(X) G ELIG:X["?",CHOOSE:ECALLEL'[("^"_X)
|
---|
| 57 | S ECPRIMEL=X_$P($P(ECALLEL,"^"_X,2),"^")
|
---|
| 58 | W $P($P(ECALLEL,"^"_X,2),"^")
|
---|
| 59 | ;
|
---|
| 60 | ;- If match found, exit with eligibility IEN from file #8
|
---|
| 61 | F ECELIEN=0:0 S ECELIEN=$O(VAEL(1,ECELIEN)) Q:'ECELIEN I $P(VAEL(1,ECELIEN),"^",2)=ECPRIMEL S ECELIG=+ECELIEN G ELGLSTQ
|
---|
| 62 | ;
|
---|
| 63 | ;- If default or error cond exit with IEN of primary elig from file #8
|
---|
| 64 | PRIMELG I ('$T)!(X["^") D ELIGERR^ECUTL0
|
---|
| 65 | I ('$T)!(X["^")!($P(VAEL(1),"^",2)=ECPRIMEL) S ECELIG=+$P(VAEL(1),"^")
|
---|
| 66 | ;
|
---|
| 67 | ELGLSTQ Q ECELIG
|
---|
| 68 | ;
|
---|
| 69 | ;
|
---|
| 70 | MULTELG(DFN) ; Determine if patient has multiple eligibilites (calls
|
---|
| 71 | ; ELIG^VADPT).
|
---|
| 72 | ;
|
---|
| 73 | ; Input:
|
---|
| 74 | ; DFN - IEN of Patient file (#2)
|
---|
| 75 | ; Output:
|
---|
| 76 | ; Function value - 0 if no additional eligibilities exist,
|
---|
| 77 | ; otherwise a number greater than 0 if addt'l eligibilities exist
|
---|
| 78 | ;
|
---|
| 79 | D ELIG^VADPT
|
---|
| 80 | Q +$O(VAEL(1,0))
|
---|
| 81 | ;
|
---|
| 82 | ;
|
---|
| 83 | ASKIF(ELIGNM) ; Ask user whether to edit the eligibility during the edit
|
---|
| 84 | ; of an existing EC Patient file (#721) record
|
---|
| 85 | ;
|
---|
| 86 | ; Input:
|
---|
| 87 | ; ELIGNM - Eligibility Name
|
---|
| 88 | ;
|
---|
| 89 | ; Output:
|
---|
| 90 | ; Function value - 1 if user wants to edit eligibility
|
---|
| 91 | ; 0 if user does not want to edit eligibility
|
---|
| 92 | ; -1 if uparrow or time out
|
---|
| 93 | ;
|
---|
| 94 | N DIR
|
---|
| 95 | Q:$G(ELIGNM)="" 0
|
---|
| 96 | ;- Display patient's current eligibility
|
---|
| 97 | W !!,"The eligibility previously filed for this patient's procedure is:",!?5,ELIGNM,!!
|
---|
| 98 | ;- Ask user
|
---|
| 99 | S DIR(0)="YA"
|
---|
| 100 | S DIR("A")="Do you wish to edit the patient's eligibility? "
|
---|
| 101 | S DIR("B")="NO"
|
---|
| 102 | D ^DIR
|
---|
| 103 | Q $S($D(DIRUT):-1,'Y:0,1:Y)
|
---|
| 104 | ;
|
---|
| 105 | ;
|
---|
| 106 | ELIGERR ; If user uparrows or times out while choosing eligibility, display
|
---|
| 107 | ; primary eligibility msg to screen
|
---|
| 108 | ;
|
---|
| 109 | ; Input:
|
---|
| 110 | ; None
|
---|
| 111 | ;
|
---|
| 112 | ; Output:
|
---|
| 113 | ; Display primary eligibility message to screen
|
---|
| 114 | ;
|
---|
| 115 | W !!?5,"No eligibility entered. The primary eligibility of the patient"
|
---|
| 116 | W !?5,"will be sent to PCE for workload reporting (if the patient's"
|
---|
| 117 | W !?5,"procedure data is complete).",!
|
---|
| 118 | Q
|
---|
| 119 | ;
|
---|
| 120 | ;
|
---|
| 121 | INOUTPT(DFN,PROCDT) ; Determine inpatient/outpatient status
|
---|
| 122 | ;
|
---|
| 123 | ; Input:
|
---|
| 124 | ; DFN - IEN of Patient file (#2)
|
---|
| 125 | ; PROCDT - Procedure Date/Time
|
---|
| 126 | ;
|
---|
| 127 | ; Output:
|
---|
| 128 | ; Function value - I if inpatient, O if outpatient, null if error
|
---|
| 129 | ;
|
---|
| 130 | N ECPTSTAT
|
---|
| 131 | S ECPTSTAT=1
|
---|
| 132 | I '$G(DFN)!('$G(PROCDT)) S ECPTSTAT=0
|
---|
| 133 | ;
|
---|
| 134 | ;- Call inpat/outpat function if both input variables are present
|
---|
| 135 | I ECPTSTAT D
|
---|
| 136 | . S ECPTSTAT=$$INP^SDAM2(DFN,PROCDT)
|
---|
| 137 | . I $G(ECPTSTAT)="" S ECPTSTAT="O"
|
---|
| 138 | ;
|
---|
| 139 | ;- If either one of input variables are missing, return null (otherwise
|
---|
| 140 | ; return "I" or "O")
|
---|
| 141 | Q $S(ECPTSTAT=0:"",1:ECPTSTAT)
|
---|
| 142 | ;
|
---|
| 143 | ;
|
---|
| 144 | DSPSTAT(ECSTAT) ; Display inpatient/outpatient status
|
---|
| 145 | ;
|
---|
| 146 | ; Input:
|
---|
| 147 | ; ECSTAT - Inpatient/Outpatient status (I=inpatient, O=outpatient)
|
---|
| 148 | ;
|
---|
| 149 | ; Output:
|
---|
| 150 | ; Display inpatient/outpatient status to screen
|
---|
| 151 | ;
|
---|
| 152 | N ECTXT
|
---|
| 153 | S ECTXT="This patient is an "
|
---|
| 154 | W !!,ECTXT_$S(ECSTAT="I":"Inpatient",1:"Outpatient"),!
|
---|
| 155 | Q
|
---|
| 156 | ;
|
---|
| 157 | ;
|
---|
| 158 | INOUTERR ; Display inpat/outpat status error msg to screen and set exit
|
---|
| 159 | ; variable
|
---|
| 160 | ;
|
---|
| 161 | ; Input:
|
---|
| 162 | ; None
|
---|
| 163 | ;
|
---|
| 164 | ; Output:
|
---|
| 165 | ; Display error message to screen
|
---|
| 166 | ;
|
---|
| 167 | W !,"Patient record data or procedure date/time data is missing. No action taken."
|
---|
| 168 | S ECOUT=1
|
---|
| 169 | Q
|
---|