| 1 | SCENIA1 ;ALB/SCK - INCOMPLETE ENCOUNTER ERROR DISPLAY PROTOCOLS ; 09 Oct 98  3:03 PM | 
|---|
| 2 | ;;5.3;Scheduling;**66,154,323,378**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | VE ; View Expanded Error | 
|---|
| 5 | N SDHDR1,SDHDR2 | 
|---|
| 6 | S SDHDR1=VALMHDR(1) | 
|---|
| 7 | S SDHDR2=VALMHDR(2) | 
|---|
| 8 | S VALMBCK="" | 
|---|
| 9 | D EN^SCENIB0 | 
|---|
| 10 | S VALMBCK="R" | 
|---|
| 11 | Q | 
|---|
| 12 | ; | 
|---|
| 13 | CE ;  Entry point for getting corrective action for error and executing it. | 
|---|
| 14 | ;    Variables | 
|---|
| 15 | ;      SCXER  - Ptr to 409.76 | 
|---|
| 16 | ;      SCEN   - Ptr to 409.75 | 
|---|
| 17 | ;      SDXMT   - Ptr to 409.73 | 
|---|
| 18 | ; | 
|---|
| 19 | N SCXER,SCEN | 
|---|
| 20 | ;;;; MOD | 
|---|
| 21 | K ^TMP("SCENI COR",$J) | 
|---|
| 22 | ; | 
|---|
| 23 | D SELERM("O") | 
|---|
| 24 | Q:'$D(SCXER) | 
|---|
| 25 | ; | 
|---|
| 26 | ;;;;; MOD | 
|---|
| 27 | ;F I=1:1 S SCTEXT=$P($T(HDR+I),";;",2) Q:SCTEXT["$$END"  D | 
|---|
| 28 | ;. W !?2,SCTEXT | 
|---|
| 29 | ; | 
|---|
| 30 | S SCEN=0 | 
|---|
| 31 | S SDXMT=$G(^TMP("SCENI XMT",$J,0)) Q:'SDXMT | 
|---|
| 32 | F  S SCEN=$O(SCXER(SCEN)) Q:'SCEN  D | 
|---|
| 33 | . Q:'$D(^SD(409.75,SCEN,0)) | 
|---|
| 34 | . S SCCOR=$G(^SD(409.76,$P(^SD(409.75,SCEN,0),U,2),"COR")) | 
|---|
| 35 | . I SCCOR="" D ERMSG(1) Q | 
|---|
| 36 | .;;;;;; MOD | 
|---|
| 37 | . Q:$D(^TMP("SCENI COR",$J,$P(SCCOR,"("))) | 
|---|
| 38 | . W !!,$G(^SD(409.76,$P(^SD(409.75,SCEN,0),U,2),1)) | 
|---|
| 39 | . X SCCOR | 
|---|
| 40 | . I 'RTN D ERMSG(2) ;;;Q | 
|---|
| 41 | .;;;;; MOD | 
|---|
| 42 | . S ^TMP("SCENI COR",$J,$P(SCCOR,"("))="" | 
|---|
| 43 | ; | 
|---|
| 44 | ; ** After correcting selected errors, fire off the validator and reflag | 
|---|
| 45 | ;    transmission entry | 
|---|
| 46 | W !,"Performing Ambulatory Care Validation Checks..." | 
|---|
| 47 | S RTN=$$VALIDATE^SCMSVUT2(SDXMT) | 
|---|
| 48 | I RTN<0 D ERMSG(5) G CEQ | 
|---|
| 49 | S RTN=$$SETRFLG(SDXMT) | 
|---|
| 50 | I RTN<0 D ERMSG(3) G CEQ | 
|---|
| 51 | ; | 
|---|
| 52 | ;;;;; MOD | 
|---|
| 53 | K ^TMP("SCENI COR",$J) | 
|---|
| 54 | CEQ Q | 
|---|
| 55 | ; | 
|---|
| 56 | EDI() ; Entry point for ENCOUNTER INFORMATION corrective action | 
|---|
| 57 | S SDOK=0 | 
|---|
| 58 | D EI^SCENIA2 | 
|---|
| 59 | Q SDOK | 
|---|
| 60 | ; | 
|---|
| 61 | DEM1() ; Entry point for correction logic | 
|---|
| 62 | S SDOK=0 | 
|---|
| 63 | D DEM | 
|---|
| 64 | Q SDOK | 
|---|
| 65 | ; | 
|---|
| 66 | DEM ; Entry point for the SCENI PATIENT DEMOGRAPHICS protocol | 
|---|
| 67 | N DFN,SDXMT,RTN | 
|---|
| 68 | ; | 
|---|
| 69 | S DFN=$G(^TMP("SCENI DFN",$J,0)) Q:'DFN | 
|---|
| 70 | S SDXMT=$G(^TMP("SCENI XMT",$J,0)) Q:'SDXMT | 
|---|
| 71 | D FULL^VALM1 | 
|---|
| 72 | ;SD*5.3*323 add sensitive record warning if applicable | 
|---|
| 73 | ;reference to DGRPU1 allowed in Integration Agreement 413 | 
|---|
| 74 | N DIC S DIC=2,DIC(0)="EM",X="`"_DFN D ^DIC I Y=-1 S SDOK=1 Q | 
|---|
| 75 | D QUES^DGRPU1(DFN,"ADD3") | 
|---|
| 76 | ; | 
|---|
| 77 | I '$D(SDOK) D | 
|---|
| 78 | . W !,"Performing Ambulatory Care Validation Checks..." | 
|---|
| 79 | . S RTN=$$VALIDATE^SCMSVUT2(SDXMT) | 
|---|
| 80 | . ;;; MOD | 
|---|
| 81 | . I RTN<0 D ERMSG(5) Q  ;G DEMQ | 
|---|
| 82 | . S RTN=$$SETRFLG(SDXMT) | 
|---|
| 83 | . I RTN<0 D ERMSG(3) Q  ;G DEMQ | 
|---|
| 84 | I $D(SDOK) S SDOK=1 | 
|---|
| 85 | DEMQ Q | 
|---|
| 86 | ; | 
|---|
| 87 | INTV() ;  Entry point for correction logic for checkout errors | 
|---|
| 88 | S SDOK=0 | 
|---|
| 89 | D CO | 
|---|
| 90 | Q SDOK | 
|---|
| 91 | ; | 
|---|
| 92 | CO ;  Entry point for SCENI CHECKOUT INTERVIEW | 
|---|
| 93 | N SDXMT,SCENFLG,SDOE,SDDT,SDOEND | 
|---|
| 94 | K SCINF | 
|---|
| 95 | ;SD*5.3*323 add sensitive record warning if applicable next 5 lines | 
|---|
| 96 | N DFN | 
|---|
| 97 | S DFN=$G(^TMP("SCENI DFN",$J,0)) Q:'DFN | 
|---|
| 98 | S SDXMT=$G(^TMP("SCENI XMT",$J,0)) Q:'SDXMT | 
|---|
| 99 | D FULL^VALM1 | 
|---|
| 100 | N DIC S DIC=2,DIC(0)="EM",X="`"_DFN D ^DIC I Y=-1 S SDOK=1 Q | 
|---|
| 101 | S SCSTAT=$$OPENC^SCUTIE1(SDXMT,"SCINF") | 
|---|
| 102 | I SCSTAT D  G COQ | 
|---|
| 103 | . D FULL^VALM1 | 
|---|
| 104 | . W !!,$CHAR(7),"This is a deleted encounter.  Checkout information cannot be changed!" | 
|---|
| 105 | . D PAUSE^VALM1 | 
|---|
| 106 | ; | 
|---|
| 107 | S SDOE=$P(^SD(409.73,SDXMT,0),U,2) | 
|---|
| 108 | S SDOEND=$G(^SCE(+SDOE,0)) | 
|---|
| 109 | S SDCOHDL="",SCENFLG=1,VALMBCK="" | 
|---|
| 110 | ; | 
|---|
| 111 | I $P(SDOEND,U,8)=2,$P(SDOEND,U,6)="" D ADDEDIT(SDOEND) I 1 | 
|---|
| 112 | E  D EN^SDCO6 | 
|---|
| 113 | ; | 
|---|
| 114 | S VALMBCK="R" | 
|---|
| 115 | ; | 
|---|
| 116 | I '$D(SDOK) D | 
|---|
| 117 | . W !,"Performing Ambulatory Care Validation Checks..." | 
|---|
| 118 | . S RTN=$$VALIDATE^SCMSVUT2(SDXMT) | 
|---|
| 119 | . ;;; MOD | 
|---|
| 120 | . I RTN<0 D ERMSG(5) Q  ;G COQ | 
|---|
| 121 | . S RTN=$$SETRFLG(SDXMT) | 
|---|
| 122 | . I RTN<0 D ERMSG(3) Q  ;G COQ | 
|---|
| 123 | I $D(SDOK) S SDOK=1 | 
|---|
| 124 | COQ ; | 
|---|
| 125 | Q | 
|---|
| 126 | ; | 
|---|
| 127 | ADDEDIT(SDOEND) ;this is to edit add/edits | 
|---|
| 128 | N VAR | 
|---|
| 129 | Q:'$P(SDOEND,U,5) | 
|---|
| 130 | S VAR=$$INTV^PXAPI("ADDEDIT","SD","PIMS",$P(SDOEND,U,5),"",$P(SDOEND,U,2)) | 
|---|
| 131 | Q | 
|---|
| 132 | ; | 
|---|
| 133 | LEDT() ; | 
|---|
| 134 | S SDOK=0 | 
|---|
| 135 | D LE | 
|---|
| 136 | Q SDOK | 
|---|
| 137 | ; | 
|---|
| 138 | LE ;  Entry point patient load edit. | 
|---|
| 139 | N DFN,SDXMT | 
|---|
| 140 | ; | 
|---|
| 141 | S DFN=$G(^TMP("SCENI DFN",$J,0)) Q:'DFN | 
|---|
| 142 | S SDXMT=$G(^TMP("SCENI XMT",$J,0)) Q:'SDXMT | 
|---|
| 143 | S VALMBCK="",DGNEW=0 | 
|---|
| 144 | D FULL^VALM1 | 
|---|
| 145 | ;SD*5.3*323 add sensitive record warning if applicable | 
|---|
| 146 | N DIC S DIC=2,DIC(0)="EM",X="`"_DFN D ^DIC I Y=-1 S SDOK=1 Q | 
|---|
| 147 | D A1^DG10 | 
|---|
| 148 | I '$D(SDOK) D | 
|---|
| 149 | . W !,"Performing Ambulatory Care Validation Checks." | 
|---|
| 150 | . S RTN=$$VALIDATE^SCMSVUT2(SDXMT) | 
|---|
| 151 | . ;;;;; MOD | 
|---|
| 152 | . I RTN<0 D ERMSG(5) Q  ;G LEQ | 
|---|
| 153 | . S RTN=$$SETRFLG(SDXMT) | 
|---|
| 154 | . I RTN<0 D ERMSG(3) Q  ;G LEQ | 
|---|
| 155 | I $D(SDOK) S SDOK=1 | 
|---|
| 156 | LEQ ; | 
|---|
| 157 | Q | 
|---|
| 158 | ; | 
|---|
| 159 | REFLG() ; Entry point for reflag correction action | 
|---|
| 160 | ;;;; MOD | 
|---|
| 161 | ;S SDOK=0 | 
|---|
| 162 | ;D FLG | 
|---|
| 163 | ;Q SDOK | 
|---|
| 164 | Q 1 | 
|---|
| 165 | ; | 
|---|
| 166 | FLG ; Entry point for Reflag Transmission protocol | 
|---|
| 167 | N SDXMT | 
|---|
| 168 | ; | 
|---|
| 169 | S SDXMT=$G(^TMP("SCENI XMT",$J,0)) Q:'SDXMT | 
|---|
| 170 | W !,"Performing Ambulatory Care Validation Checks..." | 
|---|
| 171 | S RTN=$$VALIDATE^SCMSVUT2(SDXMT) | 
|---|
| 172 | I RTN<0 D ERMSG(5) G FLQ | 
|---|
| 173 | S RTN=$$SETRFLG(SDXMT) | 
|---|
| 174 | I RTN<0 D ERMSG(3) G FLQ | 
|---|
| 175 | ;;;; MOD | 
|---|
| 176 | ;I $D(SDOK) S SDOK=1 | 
|---|
| 177 | FLQ Q | 
|---|
| 178 | ; | 
|---|
| 179 | SETRFLG(SDXMT) ; | 
|---|
| 180 | ;  Input | 
|---|
| 181 | ;     SDXMT  - Pointer to Transmission File, #409.73 | 
|---|
| 182 | ; | 
|---|
| 183 | ;  Output | 
|---|
| 184 | ;      -1  - There was a problem reflaging the transmission | 
|---|
| 185 | ;       0  - No errors occured | 
|---|
| 186 | ;       1  - The entry is already flagged for transmission | 
|---|
| 187 | ; | 
|---|
| 188 | S RESULT=-1 | 
|---|
| 189 | S STATUS=$P($G(^SD(409.73,SDXMT,0)),U,4) | 
|---|
| 190 | I STATUS S RESULT=1 | 
|---|
| 191 | E  D | 
|---|
| 192 | . D XMITFLAG^SCDXFU01(SDXMT,0),STREEVNT^SCDXFU01(SDXMT,0) | 
|---|
| 193 | . S RESULT=0 | 
|---|
| 194 | D INIT^SCENIA0 | 
|---|
| 195 | D RE^VALM4 | 
|---|
| 196 | Q RESULT | 
|---|
| 197 | ; | 
|---|
| 198 | MSG(SDTEXT,SDEXMT) ; | 
|---|
| 199 | W:SDTEXT]"" !!,SDTEXT,! | 
|---|
| 200 | S DIR(0)="FAO",DIR("A")="Press ENTER to continue " D ^DIR K DIR | 
|---|
| 201 | Q 1 | 
|---|
| 202 | ; | 
|---|
| 203 | SELERM(FLG) ;  Select Multiple entries | 
|---|
| 204 | N VALMY | 
|---|
| 205 | ; | 
|---|
| 206 | D FULL^VALM1 | 
|---|
| 207 | I $G(FLG)']"" S FLG="O" | 
|---|
| 208 | D EN^VALM2(XQORNOD(0),FLG) S VALMI=0 | 
|---|
| 209 | I '$D(VALMY) S VALMBCK="R" Q | 
|---|
| 210 | S SDN1="" | 
|---|
| 211 | F  S SDN1=$O(VALMY(SDN1)) Q:'SDN1  D | 
|---|
| 212 | . S SCEPTR="",SCEPTR=$O(^TMP("SCENI ERR",$J,"DA",SDN1,SCEPTR)) | 
|---|
| 213 | . I SCEPTR>0 S SCXER(SCEPTR)="" | 
|---|
| 214 | Q | 
|---|
| 215 | ; | 
|---|
| 216 | ERMSG(MSGN) ; | 
|---|
| 217 | D FULL^VALM1 | 
|---|
| 218 | S SCTEXT=$P($T(@MSGN),";;",2) | 
|---|
| 219 | W $CHAR(7) | 
|---|
| 220 | W !!?5,SCTEXT,! | 
|---|
| 221 | S DIR(0)="FAO",DIR("A")="Press ENTER to continue " D ^DIR K DIR | 
|---|
| 222 | S VALMBCK="R" | 
|---|
| 223 | Q | 
|---|
| 224 | ; | 
|---|
| 225 | EXIT ; | 
|---|
| 226 | I $D(VALMBCK),VALMBCK="R" D REFRESH^VALM S VALMBCK=$P(VALMBCK,"R")_$P(VALMBCK,"R",2) | 
|---|
| 227 | Q | 
|---|
| 228 | ; | 
|---|
| 229 | HDR ; | 
|---|
| 230 | ;;Selecting a range of errors to correct may result in one or | 
|---|
| 231 | ;;more similar errors being removed from the display list after | 
|---|
| 232 | ;;correction of the initial error. | 
|---|
| 233 | ;;$$END | 
|---|
| 234 | ; | 
|---|
| 235 | 1 ;;No correction logic has been defined for this error. | 
|---|
| 236 | 2 ;;Unable to execute Correction Logic. | 
|---|
| 237 | 3 ;;There was a problem trying to flag this entry for retransmission. | 
|---|
| 238 | 4 ;;This transmission entry is already flagged for transmission. | 
|---|
| 239 | 5 ;;The validator encountered a problem with this transmission entry. | 
|---|