| 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 |  ;
 | 
|---|