| 1 | SCDXUTL3 ;ALB/JRP - ACRP ERROR CODE UTILITIES;08-OCT-1996 | 
|---|
| 2 | ;;5.3;Scheduling;**68**;AUG 13, 1993 | 
|---|
| 3 | DEMOCODE(PTRCODE) ;Determine if NPCDB error code is related to a | 
|---|
| 4 | ; patient's demographic data or if it is related to the encounter data | 
|---|
| 5 | ; | 
|---|
| 6 | ;Input  : PTRCODE - Pointer to entry in TRANSMITTED OUTPATIENT | 
|---|
| 7 | ;                   ENCOUNTER ERROR CODE file (#409.76) | 
|---|
| 8 | ;Output : 1 - Error is related to patient's demographic data | 
|---|
| 9 | ;         0 - Error is related to the encounter data | 
|---|
| 10 | ;         0 - Bad input | 
|---|
| 11 | ; | 
|---|
| 12 | ;Check input | 
|---|
| 13 | S PTRCODE=+$G(PTRCODE) | 
|---|
| 14 | Q:('$D(^SD(409.76,PTRCODE,0))) 0 | 
|---|
| 15 | ;Declare variables | 
|---|
| 16 | N ERRCODE,TMP,DEMOCODE,DEMOGRP | 
|---|
| 17 | ;Convert pointer to error code | 
|---|
| 18 | S ERRCODE=$P($G(^SD(409.76,PTRCODE,0)),"^",1) | 
|---|
| 19 | Q:(ERRCODE="") 0 | 
|---|
| 20 | ;Establish series of codes that relate to patient demographic data | 
|---|
| 21 | F TMP=200,300,400,700,800,"000","B00","C00" S DEMOGRP(TMP)=1 | 
|---|
| 22 | ;Convert error code to it's series range and determine if that range | 
|---|
| 23 | ;relates to patient demographic data | 
|---|
| 24 | S TMP=$E(ERRCODE,1)_"00" | 
|---|
| 25 | S DEMOCODE=+$G(DEMOGRP(TMP)) | 
|---|
| 26 | ;Done | 
|---|
| 27 | Q DEMOCODE | 
|---|
| 28 | ; | 
|---|
| 29 | DEMOERR(PTRERR) ;Determine if error is related to a patient's demographic | 
|---|
| 30 | ; data or if it is related to the encounter data | 
|---|
| 31 | ; | 
|---|
| 32 | ;Input  : PTRERR - Pointer to entry in TRANSMITTED OUTPATIENT | 
|---|
| 33 | ;                  ENCOUNTER ERROR file (#409.75) | 
|---|
| 34 | ;Output : 1 - Error is related to patient's demographic data | 
|---|
| 35 | ;         0 - Error is related to the encounter data | 
|---|
| 36 | ;         0 - Bad input | 
|---|
| 37 | ; | 
|---|
| 38 | ;Check input | 
|---|
| 39 | S PTRERR=+$G(PTRERR) | 
|---|
| 40 | Q:('$D(^SD(409.75,PTRERR,0))) 0 | 
|---|
| 41 | ;Declare variables | 
|---|
| 42 | N PTRCODE,NODE | 
|---|
| 43 | ;Get pointer to TRANSMITTED OUTPATIENT ENCOUNTER ERROR CODE file | 
|---|
| 44 | S NODE=$G(^SD(409.75,PTRERR,0)) | 
|---|
| 45 | S PTRCODE=+$P(NODE,"^",2) | 
|---|
| 46 | ;Return whether or not error code is related to demographic data | 
|---|
| 47 | Q $$DEMOCODE(PTRCODE) | 
|---|
| 48 | ; | 
|---|
| 49 | REJ4DEMO(XMITPTR) ;Determine if encounter was rejected due to a | 
|---|
| 50 | ; demographic error | 
|---|
| 51 | ; | 
|---|
| 52 | ;Input  : XMITPTR - Pointer to TRANSMITTED OUTPATIENT ENCOUNTER | 
|---|
| 53 | ;                   file (#409.73) | 
|---|
| 54 | ;Output : 1 - At least one of the error codes listed for the | 
|---|
| 55 | ;             encounter is related to the patient's demographic data | 
|---|
| 56 | ;         0 - None of the error codes listed for the encounter are | 
|---|
| 57 | ;             related to the patient's demographic data | 
|---|
| 58 | ;         0 - Bad input/no error codes listed | 
|---|
| 59 | ; | 
|---|
| 60 | ;Check input | 
|---|
| 61 | S XMITPTR=+$G(XMITPTR) | 
|---|
| 62 | Q:('$D(^SD(409.73,XMITPTR,0))) 0 | 
|---|
| 63 | ;Declare variables | 
|---|
| 64 | N PTRERR,PTRCODE,NODE,REJ4DEMO | 
|---|
| 65 | S REJ4DEMO=0 | 
|---|
| 66 | ;Loop through TRANSMITTED OUTPATIENT ENCOUNTER ERROR file (#409.75) | 
|---|
| 67 | S PTRERR="" | 
|---|
| 68 | F  S PTRERR=+$O(^SD(409.75,"B",XMITPTR,PTRERR)) Q:('PTRERR)  D  Q:(REJ4DEMO) | 
|---|
| 69 | .;Get pointer to error code | 
|---|
| 70 | .S NODE=$G(^SD(409.75,PTRERR,0)) | 
|---|
| 71 | .S PTRCODE=+$P(NODE,"^",2) | 
|---|
| 72 | .Q:('PTRCODE) | 
|---|
| 73 | .;Determine if code is based on demographic data | 
|---|
| 74 | .S REJ4DEMO=+$$DEMOCODE(PTRCODE) | 
|---|
| 75 | ;Done | 
|---|
| 76 | Q REJ4DEMO | 
|---|