| [613] | 1 | SCDXUTL4 ;ALB/JRP - ACRP ERROR CODE UTILITIES;08-OCT-1996 | 
|---|
|  | 2 | ;;5.3;Scheduling;**68**;AUG 13, 1993 | 
|---|
|  | 3 | PAT4XMIT(XMITPTR) ;Return patient associated to entry in TRANSMITTED | 
|---|
|  | 4 | ; OUTPATIENT ENCOUNTER file (#409.73) | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | ;Input  : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT | 
|---|
|  | 7 | ;                   ENCOUNTER file (#409.73) | 
|---|
|  | 8 | ;Output : DFN^Name - Patient that is associated to the encounter | 
|---|
|  | 9 | ;                  DFN = Pointer to PATIENT file (#2) | 
|---|
|  | 10 | ;                  Name = Patient's name | 
|---|
|  | 11 | ;         0 - Error/bad input | 
|---|
|  | 12 | ;Notes  : This call follows the link from the TRANSMITTED OUTPATIENT | 
|---|
|  | 13 | ;         ENCOUNTER file (#409.73) to the OUTPATIENT ENCOUNTER file | 
|---|
|  | 14 | ;         (#409.68) [or DELETED OUTPATIENT ENCOUNTER file (#409.74)] | 
|---|
|  | 15 | ;         to the PATIENT file (#2) | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | ;Check input | 
|---|
|  | 18 | S XMITPTR=+$G(XMITPTR) | 
|---|
|  | 19 | Q:('$D(^SD(409.73,XMITPTR,0))) 0 | 
|---|
|  | 20 | ;Declare variables | 
|---|
|  | 21 | N DFN,DELPTR,ENCPTR,NODE,NAME | 
|---|
|  | 22 | S DFN=0 | 
|---|
|  | 23 | ;Determine if entry in transmit file is for a deleted encounter or | 
|---|
|  | 24 | ; an existing encounter | 
|---|
|  | 25 | S NODE=$G(^SD(409.73,XMITPTR,0)) | 
|---|
|  | 26 | S ENCPTR=+$P(NODE,"^",2) | 
|---|
|  | 27 | S DELPTR=+$P(NODE,"^",3) | 
|---|
|  | 28 | Q:(('ENCPTR)&('DELPTR)) 0 | 
|---|
|  | 29 | ;Existing encounter | 
|---|
|  | 30 | I (ENCPTR) D | 
|---|
|  | 31 | .;Follow pointer to OUTPATIENT ENCOUNTER file | 
|---|
|  | 32 | .S NODE=$G(^SCE(ENCPTR,0)) | 
|---|
|  | 33 | .;Get pointer to PATIENT file | 
|---|
|  | 34 | .S DFN=+$P(NODE,"^",2) | 
|---|
|  | 35 | ;Deleted encounter | 
|---|
|  | 36 | I (DELPTR) D | 
|---|
|  | 37 | .;Follow pointer to DELETED OUTPATIENT ENCOUNTER file | 
|---|
|  | 38 | .S NODE=$G(^SD(409.74,DELPTR,0)) | 
|---|
|  | 39 | .;Get pointer to PATIENT file | 
|---|
|  | 40 | .S DFN=+$P(NODE,"^",2) | 
|---|
|  | 41 | ;Bad pointer to PATIENT file | 
|---|
|  | 42 | Q:('$D(^DPT(DFN,0))) 0 | 
|---|
|  | 43 | ;Get patient's name | 
|---|
|  | 44 | S NODE=$G(^DPT(DFN,0)) | 
|---|
|  | 45 | S NAME=$P(NODE,"^",1) | 
|---|
|  | 46 | ;No name on file | 
|---|
|  | 47 | S:(NAME="") NAME="NAME NOT ON FILE (#"_DFN_")" | 
|---|
|  | 48 | ;Done | 
|---|
|  | 49 | Q DFN_"^"_NAME | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | PAT4ERR(PTRERR) ;Return patient associated to entry in TRANSMITTED OUTPATIENT | 
|---|
|  | 52 | ; ENCOUNTER ERROR file (#409.75) | 
|---|
|  | 53 | ; | 
|---|
|  | 54 | ;Input  : PTRERR - Pointer to entry in TRANSMITTED OUTPATIENT | 
|---|
|  | 55 | ;                  ENCOUNTER ERROR file (#409.75) | 
|---|
|  | 56 | ;Output : DFN^Name - Patient that is associated to the error | 
|---|
|  | 57 | ;                  DFN = Pointer to PATIENT file (#2) | 
|---|
|  | 58 | ;                  Name = Patient's name | 
|---|
|  | 59 | ;         0 - Error/bad input | 
|---|
|  | 60 | ;Notes  : This call follows the link from the TRANSMITTED OUTPATIENT | 
|---|
|  | 61 | ;         ENCOUNTER ERROR file (#409.75) to the TRANSMITTED OUTPATIENT | 
|---|
|  | 62 | ;         ENCOUNTER file (#409.73) to the OUTPATIENT ENCOUNTER file | 
|---|
|  | 63 | ;         (#409.68) [or DELETED OUTPATIENT ENCOUNTER file (#409.74)] | 
|---|
|  | 64 | ;         to the PATIENT file (#2) | 
|---|
|  | 65 | ; | 
|---|
|  | 66 | ;Check input | 
|---|
|  | 67 | S PTRERR=+$G(PTRERR) | 
|---|
|  | 68 | Q:('$D(^SD(409.75,PTRERR,0))) 0 | 
|---|
|  | 69 | ;Declare variables | 
|---|
|  | 70 | N NODE,XMITPTR | 
|---|
|  | 71 | ;Get pointer to TRANSMITTED OUTPATIENT ENCOUNTER file | 
|---|
|  | 72 | S NODE=$G(^SD(409.75,PTRERR,0)) | 
|---|
|  | 73 | S XMITPTR=+$P(NODE,"^",1) | 
|---|
|  | 74 | Q:('XMITPTR) 0 | 
|---|
|  | 75 | ;Return patient info | 
|---|
|  | 76 | Q $$PAT4XMIT(XMITPTR) | 
|---|
|  | 77 | ; | 
|---|
|  | 78 | GETREJ(OUTARR,SCREEN,DOTS) ;Return list of all patients/encounters in the | 
|---|
|  | 79 | ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73) that were rejected | 
|---|
|  | 80 | ; | 
|---|
|  | 81 | ;Input  : OUTARR - Array to store output in (full global reference) | 
|---|
|  | 82 | ;                  Defaults to ^TMP("SCDX",$J) | 
|---|
|  | 83 | ;         SCREEN - Flag denoting if entries should be screen | 
|---|
|  | 84 | ;                  0 = Don't apply any screens (default) | 
|---|
|  | 85 | ;                  1 = Screen out entries that are marked for [re]xmit | 
|---|
|  | 86 | ;                  2 = Only return entries that are demographic rejects | 
|---|
|  | 87 | ;                  3 = Apply screen #1 & #2 | 
|---|
|  | 88 | ;         DOTS - Flag denoting if dots (.) should be printed | 
|---|
|  | 89 | ;                0 = Don't print dots whild building list (default) | 
|---|
|  | 90 | ;                N = Print 1 dot for every N encounters found | 
|---|
|  | 91 | ;Output : PATCNT ^ ENCCNT | 
|---|
|  | 92 | ;           PATS = Number of patients that were found | 
|---|
|  | 93 | ;           COUNT = Number of entries in TRANSMITTED OUTPATIENT | 
|---|
|  | 94 | ;                   ENCOUNTER file (#409.73) that were found | 
|---|
|  | 95 | ;         If entries are found, OUTARR() will be in the format | 
|---|
|  | 96 | ;             OUTARR("NAME",NAME) = DFN ^ REJ | 
|---|
|  | 97 | ;             OUTARR("DFN",DFN,XMITPTR) = NAME | 
|---|
|  | 98 | ;         Where NAME = Patient's name | 
|---|
|  | 99 | ;               DFN = Pointer to entry in PATIENT file (#2) | 
|---|
|  | 100 | ;               REJ = Total number of encounters rejected for patient | 
|---|
|  | 101 | ;               XMITPTR = Pointer to entry in TRANSMITTED OUTPATIENT | 
|---|
|  | 102 | ;                         ENCOUNTER file (#409.73) | 
|---|
|  | 103 | ;Notes  : It is the responsibility of the calling program to | 
|---|
|  | 104 | ;         initialize (ie KILL) the output array | 
|---|
|  | 105 | ; | 
|---|
|  | 106 | ;Check input | 
|---|
|  | 107 | S OUTARR=$G(OUTARR) | 
|---|
|  | 108 | S:(OUTARR="") OUTARR="^TMP(""SCDX"","_$J_")" | 
|---|
|  | 109 | S SCREEN=+$G(SCREEN) | 
|---|
|  | 110 | S DOTS=+$G(DOTS) | 
|---|
|  | 111 | S:(DOTS<0) DOTS=0 | 
|---|
|  | 112 | ;Declare variables | 
|---|
|  | 113 | N DFN,XMITPTR,PATCNT,ENCCNT,NAME,TMP,MARKED | 
|---|
|  | 114 | S PATCNT=0 | 
|---|
|  | 115 | S ENCCNT=0 | 
|---|
|  | 116 | ;Loop through all encounters that have been rejected | 
|---|
|  | 117 | S XMITPTR="" | 
|---|
|  | 118 | F  S XMITPTR=+$O(^SD(409.75,"B",XMITPTR)) Q:('XMITPTR)  D | 
|---|
|  | 119 | .;If applicable, screen out encounters marked for [re]transmission | 
|---|
|  | 120 | .I ((SCREEN=1)!(SCREEN=3)) D  Q:(MARKED) | 
|---|
|  | 121 | ..S TMP=$G(^SD(409.73,XMITPTR,0)) | 
|---|
|  | 122 | ..S MARKED=+$P(TMP,"^",4) | 
|---|
|  | 123 | .;If applicable, screen out encounters that are not demographic rejects | 
|---|
|  | 124 | .I ((SCREEN=2)!(SCREEN=3)) Q:'$$REJ4DEMO^SCDXUTL3(XMITPTR) | 
|---|
|  | 125 | .;Get pointer to encounter's patient | 
|---|
|  | 126 | .S TMP=$$PAT4XMIT(XMITPTR) | 
|---|
|  | 127 | .S DFN=+$P(TMP,"^",1) | 
|---|
|  | 128 | .S NAME=$P(TMP,"^",2) | 
|---|
|  | 129 | .;Couldn't find patient - ignore | 
|---|
|  | 130 | .Q:('DFN) | 
|---|
|  | 131 | .;Increment patient count | 
|---|
|  | 132 | .S:('$D(@OUTARR@("DFN",DFN))) PATCNT=PATCNT+1 | 
|---|
|  | 133 | .;Store patient & encounter in output array | 
|---|
|  | 134 | .S @OUTARR@("DFN",DFN,XMITPTR)=NAME | 
|---|
|  | 135 | .;Increment encounter counts | 
|---|
|  | 136 | .S TMP=$G(@OUTARR@("NAME",NAME)) | 
|---|
|  | 137 | .S @OUTARR@("NAME",NAME)=DFN_"^"_(1+$P(TMP,"^",2)) | 
|---|
|  | 138 | .S ENCCNT=ENCCNT+1 | 
|---|
|  | 139 | .;Print dots ? | 
|---|
|  | 140 | .I (DOTS) W:('(ENCCNT#DOTS)) "." | 
|---|
|  | 141 | Q PATCNT_"^"_ENCCNT | 
|---|
|  | 142 | ; | 
|---|
|  | 143 | XMIT4DFN(DFN,OUTARR) ;Return list of entries in TRANSMITTED OUTPATIENT | 
|---|
|  | 144 | ; ENCOUNTER file (#409.73) for a given patient | 
|---|
|  | 145 | ; | 
|---|
|  | 146 | ;Input  : DFN - Pointer to entry in PATIENT file (#2) | 
|---|
|  | 147 | ;         OUTARR - Array to store output in (full global reference) | 
|---|
|  | 148 | ;                  Defaults to ^TMP("SCDX",$J) | 
|---|
|  | 149 | ;Output : X - Number of entries in TRANSMITTED OUTPATIENT ENCOUNTER | 
|---|
|  | 150 | ;             file (#409.73) that were found | 
|---|
|  | 151 | ;         If entries are found, OUTARR() will be in the format | 
|---|
|  | 152 | ;             OUTARR(DFN,XMITPTR) = "" | 
|---|
|  | 153 | ;         Where XMITPTR = Pointer to entry in TRANSMITTED OUTPATIENT | 
|---|
|  | 154 | ;                         ENCOUNTER file (#409.73) | 
|---|
|  | 155 | ;Notes  : It is the responsibility of the calling program to | 
|---|
|  | 156 | ;         initialize (ie KILL) the output array | 
|---|
|  | 157 | ; | 
|---|
|  | 158 | ;Check input | 
|---|
|  | 159 | S DFN=+$G(DFN) | 
|---|
|  | 160 | Q:('$D(^DPT(DFN,0))) 0 | 
|---|
|  | 161 | S OUTARR=$G(OUTARR) | 
|---|
|  | 162 | S:(OUTARR="") OUTARR="^TMP(""SCDX"","_$J_")" | 
|---|
|  | 163 | ;Declare variables | 
|---|
|  | 164 | N ENCPTR,DELPTR,XMITPTR,COUNT | 
|---|
|  | 165 | S COUNT=0 | 
|---|
|  | 166 | ;Find all entries in the OUTPATIENT ENCOUNTER file (#409.68) that | 
|---|
|  | 167 | ;pertain to the given patient | 
|---|
|  | 168 | S ENCPTR="" | 
|---|
|  | 169 | F  S ENCPTR=+$O(^SCE("C",DFN,ENCPTR)) Q:('ENCPTR)  D | 
|---|
|  | 170 | .;Find entry in TRANSMITTED OUTPATIENT ENCOUNTER file | 
|---|
|  | 171 | .S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0)) | 
|---|
|  | 172 | .Q:('XMITPTR) | 
|---|
|  | 173 | .;Store pointer in output array an increment counter | 
|---|
|  | 174 | .S @OUTARR@(DFN,XMITPTR)="" | 
|---|
|  | 175 | .S COUNT=COUNT+1 | 
|---|
|  | 176 | ;Find all entries in DELETED OUTPATIENT ENCOUNTER file (#409.74) that | 
|---|
|  | 177 | ;pertain to the given patient | 
|---|
|  | 178 | S DELPTR="" | 
|---|
|  | 179 | F  S DELPTR=+$O(^SD(409.74,"PAT",DFN,DELPTR)) Q:('DELPTR)  D | 
|---|
|  | 180 | .;Find entry in TRANSMITTED OUTPATIENT ENCOUNTER file | 
|---|
|  | 181 | .S XMITPTR=+$O(^SD(409.73,"ADEL",DELPTR,0)) | 
|---|
|  | 182 | .Q:('XMITPTR) | 
|---|
|  | 183 | .;Store pointer in output array an increment counter | 
|---|
|  | 184 | .S @OUTARR@(DFN,XMITPTR)="" | 
|---|
|  | 185 | .S COUNT=COUNT+1 | 
|---|
|  | 186 | Q COUNT | 
|---|