| 1 | SCRPI01 ;ALB/SCK - IEMM REPORT OF INCOMPLETE ENCOUNTERS ; 2/2/97 | 
|---|
| 2 | ;;5.3;Scheduling;**66,338**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ;  Main entry point for report of incomplete encounters report | 
|---|
| 5 | ;  Variables | 
|---|
| 6 | ;      SDTXT        - String array for initial message display | 
|---|
| 7 | ;      SDDT         - date Range, Begin^End | 
|---|
| 8 | ;      SDSEL1,2     - Selection methods Line Tag | 
|---|
| 9 | ;      SDOK         - Flag, 1 - Ok to continu, 0 - Quit | 
|---|
| 10 | ; | 
|---|
| 11 | N VAUTD,VAUTC,VAUDS,VAUTSTR,VAUTNI,SDTXT,SDDT,ZTSAVE,VAUTN,VAUER,SDSEL1,SDSEL2,SDOK,NDX,VAUTVB | 
|---|
| 12 | ; | 
|---|
| 13 | W !,$C(7) | 
|---|
| 14 | F NDX=1:1 S SDTXT=$P($T(MSG+NDX),";;",2) Q:SDTXT="$$END"  D | 
|---|
| 15 | . W !,SDTXT | 
|---|
| 16 | W !! | 
|---|
| 17 | S DIR(0)="E" D ^DIR K DIR Q:'$G(Y) | 
|---|
| 18 | ; | 
|---|
| 19 | I $$DIV^SCRPIUT1<0 G ENQ | 
|---|
| 20 | D MSG2 | 
|---|
| 21 | S SDSEL1=$$SELCT("","First") G:SDSEL1']"" ENQ | 
|---|
| 22 | S SDSEL2=$$SELCT(SDSEL1,"Next") G:SDSEL2']"" ENQ | 
|---|
| 23 | I '$$ASKDT^SCENI01(.SDDT) G ENQ | 
|---|
| 24 | ; | 
|---|
| 25 | D @SDSEL1 Q:$G(SDOK)<0 | 
|---|
| 26 | D @SDSEL2 Q:$G(SDOK)<0 | 
|---|
| 27 | ; | 
|---|
| 28 | F X="SDDT","VAUTC","VAUTD","VAUDS","VAUDS(","VAUTC(","VAUTD(","SDSEL1","SDSEL2","VAUTN","VAUTN(","VAUER","VAUER(" D | 
|---|
| 29 | . S ZTSAVE(X)="" | 
|---|
| 30 | S IOP="Q" | 
|---|
| 31 | W !!,"This report requires 132 columns and could take some time.",!,"Remember to QUEUE the report.",! | 
|---|
| 32 | D EN^XUTMDEVQ("RPT^SCRPI01","IEMM Error Listing",.ZTSAVE) | 
|---|
| 33 | D HOME^%ZIS | 
|---|
| 34 | ENQ Q | 
|---|
| 35 | ; | 
|---|
| 36 | RPT ; Build report, then call print | 
|---|
| 37 | K ^TMP("SCRPI ERR",$J) | 
|---|
| 38 | D BLD | 
|---|
| 39 | D PRINT^SCRPI01A | 
|---|
| 40 | Q | 
|---|
| 41 | ; | 
|---|
| 42 | EXIT ; | 
|---|
| 43 | K ^TMP("SCRPI ERR",$J) | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | SELCT(S1,SCT) ;  Set selection criteria | 
|---|
| 47 | ;   Input | 
|---|
| 48 | ;       S1    - Previous selection method | 
|---|
| 49 | ;       SCT   - first or second selection method | 
|---|
| 50 | ; | 
|---|
| 51 | ;   Returns | 
|---|
| 52 | ;       CLN - Clinic | 
|---|
| 53 | ;       ERR - Error Code | 
|---|
| 54 | ;       PAT - Patient | 
|---|
| 55 | ;       DSS - Stop Code | 
|---|
| 56 | ; | 
|---|
| 57 | ;   Variables | 
|---|
| 58 | ;       SCTEXT - Set up display list | 
|---|
| 59 | ; | 
|---|
| 60 | N X,CNT,SCTEXT | 
|---|
| 61 | S X="SM^" | 
|---|
| 62 | F CNT=1:1 S SCTEXT=$P($T(OPTIONS+CNT),";;",2) Q:SCTEXT="$$END"  D | 
|---|
| 63 | . Q:S1[$P(SCTEXT,":") | 
|---|
| 64 | . S X=X_SCTEXT | 
|---|
| 65 | ; | 
|---|
| 66 | S DIR(0)=X,DIR("A")="Set "_SCT_" Selection Criteria" | 
|---|
| 67 | S DIR("?")="Pick a selection criteria from those listed below." | 
|---|
| 68 | S DIR("??")="^D HLP^SCRPI01" | 
|---|
| 69 | D ^DIR K DIR | 
|---|
| 70 | Q $S(Y["C":"CLN",Y["P":"PAT",Y["E":"ERR",Y["D":"DSS",1:"") | 
|---|
| 71 | ; | 
|---|
| 72 | CLN ; Clinic selection o/m/a | 
|---|
| 73 | W !!,"Clinic Selection" | 
|---|
| 74 | S VAUTNI=2 | 
|---|
| 75 | D CLINIC^VAUTOMA | 
|---|
| 76 | W ! | 
|---|
| 77 | S SDOK=Y | 
|---|
| 78 | Q | 
|---|
| 79 | ; | 
|---|
| 80 | PAT ; Patient selection o/m/a | 
|---|
| 81 | W !!,"Patient Selection" | 
|---|
| 82 | S VAUTNI=2 | 
|---|
| 83 | D PATIENT^VAUTOMA | 
|---|
| 84 | W ! | 
|---|
| 85 | S SDOK=Y | 
|---|
| 86 | Q | 
|---|
| 87 | ; | 
|---|
| 88 | ERR ; Error selection o/m/a | 
|---|
| 89 | W !!,"Transmission Error Selection" | 
|---|
| 90 | S DIC="^SD(409.76,",VAUTSTR="Error",VAUTVB="VAUER",VAUTNI=2 | 
|---|
| 91 | D FIRST^VAUTOMA | 
|---|
| 92 | W ! | 
|---|
| 93 | S SDOK=Y | 
|---|
| 94 | Q | 
|---|
| 95 | ; | 
|---|
| 96 | DSS ; Clinic Stop code selection o/m/a | 
|---|
| 97 | W !!,"Clinic Stop Code Selection" | 
|---|
| 98 | S DIC="^DIC(40.7,",VAUTSTR="Stop Code",VAUTVB="VAUDS",VAUTNI=2 | 
|---|
| 99 | D FIRST^VAUTOMA | 
|---|
| 100 | W ! | 
|---|
| 101 | S SDOK=1 | 
|---|
| 102 | Q | 
|---|
| 103 | ; | 
|---|
| 104 | BLD ; Search for incomplete encounters and build TMP global | 
|---|
| 105 | ;    Variables | 
|---|
| 106 | ;        SDEND  - End date of date range | 
|---|
| 107 | ;        SDOE   - Encounter IEN | 
|---|
| 108 | ;        SDOEDT - Encounter date | 
|---|
| 109 | ;        SDCNT  - Entry count | 
|---|
| 110 | ; | 
|---|
| 111 | N SDEND,SDOE,SDOEDT,SDCNT | 
|---|
| 112 | ; | 
|---|
| 113 | S SDOEDT=$P(SDDT,U)-.1,SDEND=$P(SDDT,U,2)+.9,SDCNT=0 | 
|---|
| 114 | F  S SDOEDT=$O(^SD(409.75,"AEDT",SDOEDT)) Q:'SDOEDT!(SDOEDT>SDEND)  D | 
|---|
| 115 | . S SDXMT=0 F  S SDXMT=$O(^SD(409.75,"AEDT",SDOEDT,SDXMT)) Q:'SDXMT  D | 
|---|
| 116 | .. S SDXER=0 F  S SDXER=$O(^SD(409.75,"AEDT",SDOEDT,SDXMT,SDXER)) Q:'SDXER  D BLD1(SDXER,SDXMT) | 
|---|
| 117 | Q | 
|---|
| 118 | ; | 
|---|
| 119 | BLD1(SDE,SDX) ;  If error passes checks, add to sorted TMP global | 
|---|
| 120 | ;   Input | 
|---|
| 121 | ;       SDE  - Pointer to #409.75 | 
|---|
| 122 | ;       SDX  - Pointer to #409.73 | 
|---|
| 123 | ; | 
|---|
| 124 | ;   Variables | 
|---|
| 125 | ;       SCEN   - Temporary array for encounter information | 
|---|
| 126 | ;       SDDEL  - Deleted Encounter Marker "*" | 
|---|
| 127 | ;       SDRSLT - -1:error, 1:Deleted Encounter, 0:Not deleted | 
|---|
| 128 | ;       SDIV   - Division IEN | 
|---|
| 129 | ;       SDCDE  - Stop code | 
|---|
| 130 | ; | 
|---|
| 131 | ;   Output | 
|---|
| 132 | ;       ^TMP("SCRPI ERR",$J,Division Name,Clinic Name,Patient Name,Encounter Date,Error code IEN,0)=DFN^#409.73 Pointer^Deleted Flag | 
|---|
| 133 | ; | 
|---|
| 134 | N SCEN,SDDEL,SDRSLT,SDIV,SDCDE | 
|---|
| 135 | ; | 
|---|
| 136 | I '$D(ZTQUEUED) S SDCNT=SDCNT+1 W:(SDCNT#10)=0 "." | 
|---|
| 137 | ; | 
|---|
| 138 | S SDRSLT=$$OPENC^SCUTIE1(SDXMT,"SCEN") | 
|---|
| 139 | Q:SDRSLT<0 | 
|---|
| 140 | S:SDRSLT SDDEL="*" | 
|---|
| 141 | ; | 
|---|
| 142 | I SDRSLT D | 
|---|
| 143 | . S SDIV=$P(^SD(409.74,SCEN("DELIEN"),1),U,11) | 
|---|
| 144 | . S SDCDE=$P(^SD(409.74,SCEN("DELIEN"),1),U,3) | 
|---|
| 145 | E  D | 
|---|
| 146 | . S SDIV=$P(^SCE(SCEN("SDOIEN"),0),U,11) | 
|---|
| 147 | . S SDCDE=$P(^SCE(SCEN("SDOIEN"),0),U,3) | 
|---|
| 148 | ; | 
|---|
| 149 | I $S(VAUTD:0,$D(VAUTD(SDIV)):0,1:1) Q | 
|---|
| 150 | ; | 
|---|
| 151 | I SDSEL1="CLN",$S(VAUTC:0,$D(VAUTC(SCEN("CLINIC"))):0,1:1) Q | 
|---|
| 152 | I SDSEL1="PAT",$S(VAUTN:0,$D(VAUTN(SCEN("DFN"))):0,1:1) Q | 
|---|
| 153 | I SDSEL1="ERR" Q:'$D(^SD(409.75,SDE,0))  I $S(VAUER:0,$D(VAUER($P(^SD(409.75,SDE,0),U,2))):0,1:1) Q  ; SD*5.3*338 | 
|---|
| 154 | I SDSEL1="DSS",$S(VAUDS:0,$D(VAUDS(SDCDE)):0,1:1) Q | 
|---|
| 155 | ; | 
|---|
| 156 | I SDSEL2="CLN",$S(VAUTC:0,$D(VAUTC(SCEN("CLINIC"))):0,1:1) Q | 
|---|
| 157 | I SDSEL2="PAT",$S(VAUTN:0,$D(VAUTN(SCEN("DFN"))):0,1:1) Q | 
|---|
| 158 | I SDSEL2="ERR" Q:'$D(^SD(409.75,SDE,0))  I $S(VAUER:0,$D(VAUER($P(^SD(409.75,SDE,0),U,2))):0,1:1) Q  ; SD*5.3*338 | 
|---|
| 159 | I SDSEL2="DSS",$S(VAUDS:0,$D(VAUDS(SDCDE)):0,1:1) Q | 
|---|
| 160 | ; | 
|---|
| 161 | S ^TMP("SCRPI ERR",$J,$P(^DG(40.8,SDIV,0),U),$P(^SC(SCEN("CLINIC"),0),U),$P(^DPT(SCEN("DFN"),0),U),SCEN("ENCOUNTER"),SDE,0)=SCEN("DFN")_U_SDX_U_$G(SDDEL) | 
|---|
| 162 | Q | 
|---|
| 163 | ; | 
|---|
| 164 | SELMTHD(SEL) ;  Returns 'external' version of selection method | 
|---|
| 165 | Q $S(SEL="CLN":"Clinic",SEL="PAT":"Patient",SEL="ERR":"Error Code",SEL="DSS":"Clinic Stop Code") | 
|---|
| 166 | ; | 
|---|
| 167 | HLP ;  '??' help for the selection criteria. | 
|---|
| 168 | ; | 
|---|
| 169 | W !?2,"You may select any two of the following selection criteria, one at a time, for" | 
|---|
| 170 | W !?2,"your report.  You will be asked for one/many/all selections for each criteria" | 
|---|
| 171 | W !?2,"selected." | 
|---|
| 172 | W ! | 
|---|
| 173 | W !?2,"Selection criteria are not sort criteria.  The sort criteria are  Division," | 
|---|
| 174 | W !?2,"Clinic, Patient, and Encounter.  Selection criteria limit what will be" | 
|---|
| 175 | W !?2,"printed in the report." | 
|---|
| 176 | Q | 
|---|
| 177 | ; | 
|---|
| 178 | MSG2 ; | 
|---|
| 179 | W !!! | 
|---|
| 180 | W "The following are selection criteria which are used to specify a group of or" | 
|---|
| 181 | W !,"particular clinic, patient, error code or clinic stop code to be printed." | 
|---|
| 182 | W !,"You are asked to pick two, one at a time.  Type '??' for more details." | 
|---|
| 183 | Q | 
|---|
| 184 | ; | 
|---|
| 185 | MSG ; | 
|---|
| 186 | ;;  This report requires 132 columns to print and will default to | 
|---|
| 187 | ;;  QUEUING required.  If you print this report to your terminal, | 
|---|
| 188 | ;;  answer 'NO' to the 'Do you still want your output queued' prompt. | 
|---|
| 189 | ;;$$END | 
|---|
| 190 | ; | 
|---|
| 191 | OPTIONS ;  Selection methods | 
|---|
| 192 | ;;C:Clinic; | 
|---|
| 193 | ;;P:Patient; | 
|---|
| 194 | ;;E:Error Code; | 
|---|
| 195 | ;;D:Clinic Stop Code; | 
|---|
| 196 | ;;$$END | 
|---|
| 197 | ; | 
|---|