| 1 | SCMCHLR4 ;ALB/KCL - PCMM HL7 Reject Processing - Protocols; 10-JAN-2000
|
---|
| 2 | ;;5.3;Scheduling;**210,272**;AUG 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ;This routine contains the PCMM Transmission Error processing protocols.
|
---|
| 5 | ;See EN^SCMCHLR2 for additional documentation on 'system wide' variables
|
---|
| 6 | ;used in this routine.
|
---|
| 7 | ;
|
---|
| 8 | CS ; Description: Entry point for SCMC LE CHANGE STATUS protocol.
|
---|
| 9 | ;
|
---|
| 10 | ; Input:
|
---|
| 11 | ; SCEPS - Error Processing Status
|
---|
| 12 | ; 1 -> New
|
---|
| 13 | ; 2 -> Checked
|
---|
| 14 | ; 3 -> Both
|
---|
| 15 | ;
|
---|
| 16 | ; Output:
|
---|
| 17 | ; SCEPS - Error Processing Status
|
---|
| 18 | ; 1 -> New
|
---|
| 19 | ; 2 -> Checked
|
---|
| 20 | ; 3 -> Both
|
---|
| 21 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 22 | ;
|
---|
| 23 | N DIR,DTOUT,DUOUT,Y
|
---|
| 24 | ;
|
---|
| 25 | ;Set screen to full scrolling region
|
---|
| 26 | D FULL^VALM1
|
---|
| 27 | ;
|
---|
| 28 | ;Ask user to select error processing status
|
---|
| 29 | S DIR(0)="SMO^1:New;2:Checked;3:Both"
|
---|
| 30 | S DIR("A")="Select Error Processing Status"
|
---|
| 31 | D ^DIR
|
---|
| 32 | ;
|
---|
| 33 | ;Process user response
|
---|
| 34 | I Y D
|
---|
| 35 | .S SCEPS=Y
|
---|
| 36 | .;rebuild error list for selected error processing status
|
---|
| 37 | .D BUILD^SCMCHLR1
|
---|
| 38 | ;
|
---|
| 39 | ;Place custom msg in msg window
|
---|
| 40 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 41 | ;
|
---|
| 42 | ;Refresh screen when returning from action
|
---|
| 43 | S VALMBCK="R"
|
---|
| 44 | Q
|
---|
| 45 | ;
|
---|
| 46 | ;
|
---|
| 47 | CD ; Description: Entry point for SCMC LE CHANGE DATE RANGE protocol.
|
---|
| 48 | ;
|
---|
| 49 | ; Input:
|
---|
| 50 | ; SCBEG - Begin date for date range
|
---|
| 51 | ; SCEND - End date for date range
|
---|
| 52 | ;
|
---|
| 53 | ; Output:
|
---|
| 54 | ; SCBEG - Begin date for date range
|
---|
| 55 | ; SCEND - End date for date range
|
---|
| 56 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 57 | ;
|
---|
| 58 | N VALMB,VALMBEG,VALMEND,X,X1,X2
|
---|
| 59 | ;
|
---|
| 60 | ;Ask user for date range (default 2 wks prior to today)
|
---|
| 61 | S X1=DT,X2=-14
|
---|
| 62 | D C^%DTC
|
---|
| 63 | S VALMB=X
|
---|
| 64 | D RANGE^VALM1
|
---|
| 65 | ;
|
---|
| 66 | ;Process user response
|
---|
| 67 | I 'VALMBEG!('VALMEND)!((SCBEG=VALMBEG)&(SCEND=VALMEND)) D
|
---|
| 68 | .W !!,"Date Range was not changed."
|
---|
| 69 | .D PAUSE^VALM1
|
---|
| 70 | .S VALMBCK=""
|
---|
| 71 | E D
|
---|
| 72 | .S SCBEG=VALMBEG,SCEND=VALMEND
|
---|
| 73 | .;rebuild error list for selected date range
|
---|
| 74 | .D BUILD^SCMCHLR1
|
---|
| 75 | .;Refresh screen when returning from action
|
---|
| 76 | .S VALMBCK="R"
|
---|
| 77 | ;
|
---|
| 78 | ;Place custom msg in msg window
|
---|
| 79 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 80 | ;
|
---|
| 81 | Q
|
---|
| 82 | ;
|
---|
| 83 | ;
|
---|
| 84 | SL ; Description: Entry point for SCMC LE SORT LIST protocol.
|
---|
| 85 | ;
|
---|
| 86 | ; Input:
|
---|
| 87 | ; SCSORTBY - Sort by criteria
|
---|
| 88 | ;
|
---|
| 89 | ; Output:
|
---|
| 90 | ; SCSORTBY - Sort by criteria
|
---|
| 91 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 92 | ;
|
---|
| 93 | N DIR,DTOUT,DUOUT,Y
|
---|
| 94 | ;
|
---|
| 95 | ;Sets screen to full scrolling region
|
---|
| 96 | D FULL^VALM1
|
---|
| 97 | ;
|
---|
| 98 | ;Ask user to select sort by criteria
|
---|
| 99 | S DIR(0)="SMO^N:Patient Name;D:Date Error Received;P:Provider"
|
---|
| 100 | S DIR("A")="Select Sort By"
|
---|
| 101 | D ^DIR
|
---|
| 102 | ;
|
---|
| 103 | ;Process user response
|
---|
| 104 | I "^N^D^P^"[("^"_Y_"^"),SCSORTBY'=Y D
|
---|
| 105 | .S SCSORTBY=Y
|
---|
| 106 | .;rebuild error list for selected sort criteria
|
---|
| 107 | .D BUILD^SCMCHLR1
|
---|
| 108 | ;
|
---|
| 109 | ;Place custom msg in msg window
|
---|
| 110 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 111 | ;
|
---|
| 112 | ;Refresh screen when returning from action
|
---|
| 113 | S VALMBCK="R"
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | ;
|
---|
| 117 | CE ; Description: Entry point for SCMC LE CHECK ERROR OFF LIST protocol.
|
---|
| 118 | ;
|
---|
| 119 | ; Input: None
|
---|
| 120 | ;
|
---|
| 121 | ; Output:
|
---|
| 122 | ; VALMSG - Custom message
|
---|
| 123 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 124 | ;
|
---|
| 125 | N NODE,SCLINE,SCNUM,SCTLIEN,SCERIEN,VALMY
|
---|
| 126 | ;
|
---|
| 127 | ;Ask user to select transmission errors to check off the list
|
---|
| 128 | D EN^VALM2(XQORNOD(0))
|
---|
| 129 | D FULL^VALM1
|
---|
| 130 | ;
|
---|
| 131 | ;Process user selection
|
---|
| 132 | S SCNUM=0
|
---|
| 133 | F S SCNUM=$O(VALMY(SCNUM)) Q:'SCNUM D
|
---|
| 134 | .;invoke call to check error off list
|
---|
| 135 | .I $D(^TMP(SCARY_"IDX",$J,SCNUM)) D
|
---|
| 136 | ..S NODE=$G(^TMP(SCARY_"IDX",$J,SCNUM))
|
---|
| 137 | ..S SCLINE=+NODE,SCTLIEN=+$P(NODE,"^",2),SCERIEN=+$P(NODE,"^",3)
|
---|
| 138 | ..D CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN)
|
---|
| 139 | ;
|
---|
| 140 | ;Place custom msg in msg window
|
---|
| 141 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 142 | ;
|
---|
| 143 | ;Refresh screen when returning from action
|
---|
| 144 | S VALMBCK="R"
|
---|
| 145 | Q
|
---|
| 146 | ;
|
---|
| 147 | ;
|
---|
| 148 | RP ; Description: Entry point for SCMC LE RETRANSMIT PATIENT protocol.
|
---|
| 149 | ;
|
---|
| 150 | ; Input: None
|
---|
| 151 | ;
|
---|
| 152 | ; Output:
|
---|
| 153 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 154 | ;
|
---|
| 155 | N NODE,SCLINE,SCNUM,SCTLIEN,SCTLOG,VALMY
|
---|
| 156 | ;
|
---|
| 157 | ;Ask user to select transmission errors to retransmit patient
|
---|
| 158 | D EN^VALM2(XQORNOD(0))
|
---|
| 159 | D FULL^VALM1
|
---|
| 160 | ;
|
---|
| 161 | ;Process user selections
|
---|
| 162 | S SCNUM=0
|
---|
| 163 | F S SCNUM=$O(VALMY(SCNUM)) Q:'SCNUM D
|
---|
| 164 | .;
|
---|
| 165 | .I $D(^TMP(SCARY_"IDX",$J,SCNUM)) D
|
---|
| 166 | ..S NODE=$G(^TMP(SCARY_"IDX",$J,SCNUM))
|
---|
| 167 | ..S SCLINE=+NODE,SCTLIEN=+$P(NODE,"^",2),SCERIEN=+$P(NODE,"^",3)
|
---|
| 168 | ..;get information for PCMM HL7 Transmission Log entry and invoke code
|
---|
| 169 | ..;to set patient to 'retransmit'.
|
---|
| 170 | ..I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D SETPAT(SCARY,SCLINE,.SCTLOG)
|
---|
| 171 | ;
|
---|
| 172 | ;Place custom msg in msg window
|
---|
| 173 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 174 | ;
|
---|
| 175 | ;Refresh screen when returning from action
|
---|
| 176 | S VALMBCK="R"
|
---|
| 177 | Q
|
---|
| 178 | ;
|
---|
| 179 | ;
|
---|
| 180 | PE ; Description: Entry point for SCMC LE PRINT ERROR CODES protocol.
|
---|
| 181 | ;
|
---|
| 182 | ; Input: None
|
---|
| 183 | ;
|
---|
| 184 | ; Output:
|
---|
| 185 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 186 | ;
|
---|
| 187 | ;Sets screen to full scrolling region
|
---|
| 188 | D FULL^VALM1
|
---|
| 189 | ;
|
---|
| 190 | ;Print PCMM Transmission Error Code Report
|
---|
| 191 | D ECRPRT^SCMCHLR7
|
---|
| 192 | D PAUSE^VALM1
|
---|
| 193 | ;
|
---|
| 194 | ;Place custom msg in msg window
|
---|
| 195 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 196 | ;
|
---|
| 197 | ;Refresh screen when returning from action
|
---|
| 198 | S VALMBCK="R"
|
---|
| 199 | Q
|
---|
| 200 | ;
|
---|
| 201 | ;
|
---|
| 202 | RA ; Description: Entry point for SCMC LE RETRANSMIT ALL protocol.
|
---|
| 203 | ;
|
---|
| 204 | ; Input: None
|
---|
| 205 | ;
|
---|
| 206 | ; Output:
|
---|
| 207 | ; VALMBCK - 'R'=Refresh screen
|
---|
| 208 | ;
|
---|
| 209 | N DIR,DTOUT,DUOUT,Y
|
---|
| 210 | ;
|
---|
| 211 | ;Sets screen to full scrolling region
|
---|
| 212 | D FULL^VALM1
|
---|
| 213 | ;
|
---|
| 214 | ;Ask user if they want to retransmit all patients
|
---|
| 215 | S DIR(0)="Y"
|
---|
| 216 | S DIR("A")="Mark all patients for re-transmission"
|
---|
| 217 | S DIR("A",1)="This action will allow all patients to be marked for re-transmission."
|
---|
| 218 | S DIR("A",2)="The error processing status for all patients will be marked as checked."
|
---|
| 219 | S DIR("B")="NO"
|
---|
| 220 | D ^DIR
|
---|
| 221 | ;
|
---|
| 222 | ;Process user response
|
---|
| 223 | I '$D(DIRUT) D
|
---|
| 224 | .I +Y D
|
---|
| 225 | ..;set all patients as re-transmit
|
---|
| 226 | ..D UPDALL
|
---|
| 227 | ;
|
---|
| 228 | ;Place custom msg in msg window
|
---|
| 229 | ;S VALMSG=$$MRKMSG^SCMCHLR1
|
---|
| 230 | ;
|
---|
| 231 | ;Refresh screen when returning from action
|
---|
| 232 | S VALMBCK="R"
|
---|
| 233 | Q
|
---|
| 234 | ;
|
---|
| 235 | ;
|
---|
| 236 | CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN) ;
|
---|
| 237 | ; Description: Used to check an error off the list.
|
---|
| 238 | ;
|
---|
| 239 | ; Input:
|
---|
| 240 | ; SCARY - Global array subscript
|
---|
| 241 | ; SCLINE - Line number
|
---|
| 242 | ; SCTLIEN - PCMM HL7 Transmission Log IEN
|
---|
| 243 | ; SCERIEN - IEN of recrord in Error Code (#404.47142) multiple
|
---|
| 244 | ;
|
---|
| 245 | ; Output: None
|
---|
| 246 | ;
|
---|
| 247 | N SCERMSG
|
---|
| 248 | ;
|
---|
| 249 | I $$UPDEPS^SCMCHLA(SCTLIEN,SCERIEN,2,.SCERMSG) D
|
---|
| 250 | .D FLDTEXT^VALM10(SCLINE,"STATUS","Checked")
|
---|
| 251 | .D FLDCTRL^VALM10(SCLINE,"STATUS",IOINHI,IOINORM)
|
---|
| 252 | E D
|
---|
| 253 | .W !,^TMP(SCARY,$J,SCLINE,0)
|
---|
| 254 | .W:$G(SCERMSG)'="" !,"...",$$LOWER^VALM1(SCERMSG)
|
---|
| 255 | .W !,"...Unable to check error off list"
|
---|
| 256 | .D PAUSE^VALM1
|
---|
| 257 | Q
|
---|
| 258 | ;
|
---|
| 259 | ;
|
---|
| 260 | SETPAT(SCARY,SCLINE,SCTLOG) ; Description: Used to set patient to marked for re-transmit.
|
---|
| 261 | ;
|
---|
| 262 | ; Input:
|
---|
| 263 | ; SCARY - Global array subscript
|
---|
| 264 | ; SCLINE - Line number
|
---|
| 265 | ; SCTLOG - Transmission log entry array
|
---|
| 266 | ;
|
---|
| 267 | ; Output: None
|
---|
| 268 | ;
|
---|
| 269 | N SCERROR
|
---|
| 270 | ;
|
---|
| 271 | ;Set patient to marked for re-transmit
|
---|
| 272 | I $$UPDSTAT^SCMCHLA(SCTLIEN,"M",.SCERROR) D
|
---|
| 273 | .D UPDPAT(SCARY,$S($G(SCTLOG("DFN")):SCTLOG("DFN"),1:"W"),$S('$G(SCTLOG("DFN")):SCLINE,1:""))
|
---|
| 274 | E D
|
---|
| 275 | .W !,^TMP(SCARY,$J,SCLINE,0)
|
---|
| 276 | .W:$G(SCERMSG)'="" !,"...",$$LOWER^VALM1(SCERROR)
|
---|
| 277 | .W !,"...Unable to mark patient for re-transmit"
|
---|
| 278 | .D PAUSE^VALM1
|
---|
| 279 | Q
|
---|
| 280 | ;
|
---|
| 281 | ;
|
---|
| 282 | UPDPAT(SCARY,SCDFN,LINE) ; Description: Update all PCMM HL7 Transmssion Log
|
---|
| 283 | ; entries in the list for the patient as 'marked for re-transmit'.
|
---|
| 284 | ;
|
---|
| 285 | ; Input:
|
---|
| 286 | ; SCARY - Global array subscript
|
---|
| 287 | ; SCDFN - Patient IEN
|
---|
| 288 | ;
|
---|
| 289 | ; Output: None
|
---|
| 290 | ;
|
---|
| 291 | N SCLINE,SCTLIEN
|
---|
| 292 | S:'$G(LINE) LINE=9999999
|
---|
| 293 | ;
|
---|
| 294 | ;Loop thru entries in the list for the patient
|
---|
| 295 | S SCLINE=0
|
---|
| 296 | I SCDFN="W",LINE'=9999999 S SCLINE=LINE-.01
|
---|
| 297 | F S SCLINE=$O(^TMP(SCARY_"IDX",$J,"PT",SCDFN,SCLINE)) Q:(('SCLINE)!(SCLINE>LINE)) S SCTLIEN=+^(SCLINE) D
|
---|
| 298 | .;update entry as marked for re-transmit
|
---|
| 299 | .D FLDTEXT^VALM10(SCLINE,"RETRANS","*")
|
---|
| 300 | .D FLDCTRL^VALM10(SCLINE,"RETRANS",IOINHI,IOINORM)
|
---|
| 301 | .;invoke code to check error off the list
|
---|
| 302 | .D CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN)
|
---|
| 303 | Q
|
---|
| 304 | ;
|
---|
| 305 | ;
|
---|
| 306 | UPDALL ; Description: Update all PCMM HL7 Transmssion Log
|
---|
| 307 | ; entries in the list as 'marked for re-transmit'.
|
---|
| 308 | ;
|
---|
| 309 | ; Input: None
|
---|
| 310 | ; Output: None
|
---|
| 311 | ;
|
---|
| 312 | N SCLINE,SCTLIEN,SCDFN
|
---|
| 313 | ;
|
---|
| 314 | ;Loop thru entries in the list for all patients
|
---|
| 315 | S SCDFN=""
|
---|
| 316 | F S SCDFN=$O(^TMP(SCARY_"IDX",$J,"PT",SCDFN)) Q:'SCDFN D
|
---|
| 317 | .;Loop thru entries in the list for the patient
|
---|
| 318 | .S SCLINE=0
|
---|
| 319 | .F S SCLINE=$O(^TMP(SCARY_"IDX",$J,"PT",SCDFN,SCLINE)) Q:'SCLINE D
|
---|
| 320 | ..S NODE=^TMP(SCARY_"IDX",$J,"PT",SCDFN,SCLINE)
|
---|
| 321 | ..S SCTLIEN=+NODE,SCERIEN=+$P(NODE,"^",2)
|
---|
| 322 | ..;
|
---|
| 323 | ..;get information for PCMM HL7 Transmission Log entry and invoke code
|
---|
| 324 | ..;to set patient to 'retransmit'.
|
---|
| 325 | ..I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D SETPAT(SCARY,SCLINE,.SCTLOG)
|
---|
| 326 | ..;
|
---|
| 327 | ..;update entry as marked for re-transmit
|
---|
| 328 | ..D FLDTEXT^VALM10(SCLINE,"RETRANS","*")
|
---|
| 329 | ..D FLDCTRL^VALM10(SCLINE,"RETRANS",IOINHI,IOINORM)
|
---|
| 330 | ..;invoke code to check error off the list
|
---|
| 331 | ..D CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN)
|
---|
| 332 | ;
|
---|
| 333 | Q
|
---|