| 1 | SD53105A ;ALB/JRP - XMIT, DELETE, AND ERROR FILE CLEAN UP;12-MAR-1997
 | 
|---|
| 2 |  ;;5.3;Scheduling;**105**;Aug 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | SCAN ;Entry point to scan only (prints what would have been deleted)
 | 
|---|
| 5 |  N ZTRTN,ZTDESC
 | 
|---|
| 6 |  D INTRO
 | 
|---|
| 7 |  W !
 | 
|---|
| 8 |  W !,"You are running this routine in scan mode, which will only identify"
 | 
|---|
| 9 |  W !,"the problems corrected.  Please select a device (queueing allowed) so"
 | 
|---|
| 10 |  W !,"that a listing of what would have been done can be obtained."
 | 
|---|
| 11 |  W !!
 | 
|---|
| 12 |  S ZTRTN="EN^SD53105A(1)"
 | 
|---|
| 13 |  S ZTDESC="ACRP cleanup of files 409.73, 409.74, and 409.75"
 | 
|---|
| 14 |  D EN^XUTMDEVQ(ZTRTN,ZTDESC)
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | FIX ;Entry point to schedule clean up
 | 
|---|
| 18 |  N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSK,TXT
 | 
|---|
| 19 |  D INTRO
 | 
|---|
| 20 |  W !
 | 
|---|
| 21 |  W !,"Please enter the date/time that you would like this clean up queued to"
 | 
|---|
| 22 |  W !,"run.  A summary of what was done will be sent to you and the"
 | 
|---|
| 23 |  W !,"recipients of the SCDX AMBCARE TO NPCDB SUMMARY bulletin."
 | 
|---|
| 24 |  W !!
 | 
|---|
| 25 |  S ZTRTN="EN^SD53105A(0)"
 | 
|---|
| 26 |  S ZTDESC="ACRP cleanup of files 409.73, 409.74, and 409.75"
 | 
|---|
| 27 |  S ZTDTH=""
 | 
|---|
| 28 |  S ZTIO=""
 | 
|---|
| 29 |  D ^%ZTLOAD
 | 
|---|
| 30 |  W:(+$G(ZTSK)) !,"Scheduled as task number ",ZTSK
 | 
|---|
| 31 |  W:('$G(ZTSK)) !,"** Unable to schedule correction **"
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | INTRO ;Print intro text
 | 
|---|
| 35 |  W !!,"This routine will clean up dangling pointers and orphan entries within"
 | 
|---|
| 36 |  W !,"the ACRP transmission files.  The following actions/checks will be"
 | 
|---|
| 37 |  W !,"performed:"
 | 
|---|
| 38 |  W !
 | 
|---|
| 39 |  W !,"(1) Entries in the Transmitted Outpatient Encounter file (409.73)"
 | 
|---|
| 40 |  W !,"    that do not have a valid pointer to the Outpatient Encounter"
 | 
|---|
| 41 |  W !,"    file (#409.68) or the Deleted Outpatient Encounter file"
 | 
|---|
| 42 |  W !,"    (#409.74) are deleted."
 | 
|---|
| 43 |  W !
 | 
|---|
| 44 |  W !,"(2) Entries in the Transmitted Outpatient Encounter file that have"
 | 
|---|
| 45 |  W !,"    been rejected by the Austin Automation Center and do not have an"
 | 
|---|
| 46 |  W !,"    entry in the Transmitted Outpatient Encounter Error file"
 | 
|---|
| 47 |  W !,"    (#409.75) are marked for re-transmission."
 | 
|---|
| 48 |  W !
 | 
|---|
| 49 |  W !,"(3) Entries in the Deleted Outpatient Encounter file that do not"
 | 
|---|
| 50 |  W !,"    have a corresponding entry in the Transmitted Outpatient"
 | 
|---|
| 51 |  W !,"    Encounter file are deleted."
 | 
|---|
| 52 |  W !
 | 
|---|
| 53 |  W !,"(4) Entries in the Transmitted Outpatient Encounter Error file that"
 | 
|---|
| 54 |  W !,"    do not have a valid pointer to the Transmitted Outpatient"
 | 
|---|
| 55 |  W !,"    Encounter file are deleted."
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | EN(SCANMODE) ;Main entry point
 | 
|---|
| 59 |  ; Routine deletes entries in the Transmitted Outpatient Encounter file
 | 
|---|
| 60 |  ; (409.73) that do not have a valid pointer to the Outpatient Encounter
 | 
|---|
| 61 |  ; file (#409.68) or the Deleted Outpatient Encounter file (#409.74).
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ; Routine marks entries in the Transmitted Outpatient Encounter file
 | 
|---|
| 64 |  ; that have been rejected by the Austin Automation Center and do not
 | 
|---|
| 65 |  ; have an entry in the Transmitted Outpatient Encounter Error file
 | 
|---|
| 66 |  ; (#409.75) for re-transmission.
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  ; Routine deletes entries in the Deleted Outpatient Encounter file that
 | 
|---|
| 69 |  ; do not have a corresponding entry in the Transmitted Outpatient
 | 
|---|
| 70 |  ; Encounter file.
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  ; Routine deletes entries in the Transmitted Outpatient Encounter Error
 | 
|---|
| 73 |  ; file that do not have a valid pointer to the Transmitted Outpatient
 | 
|---|
| 74 |  ; Encounter file.
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  ;Input  : SCANMODE - Flag denoting if routine should only scan
 | 
|---|
| 77 |  ;                    for errors and not fix them
 | 
|---|
| 78 |  ;                    0 = No - scan and fix (default)
 | 
|---|
| 79 |  ;                    1 = Yes - scan but don't fix
 | 
|---|
| 80 |  ;Output : None
 | 
|---|
| 81 |  ;Notes  : A completion/summary bulletin will be sent to the current
 | 
|---|
| 82 |  ;         user and the recipients of the SCDX AMBCARE TO NPCDB SUMMARY
 | 
|---|
| 83 |  ;         bulletin.  This bulletin will not be sent if in scan mode.
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  ;Declare variables
 | 
|---|
| 86 |  N XMITPTR,XMITTOT,XMITDEL,XMITXMIT,ENCPTR,DELPTR,DELTOT,DELDEL,ERRPTR
 | 
|---|
| 87 |  N ERRTOT,ERRDEL,NODE,TMP,DIK,DA,X,Y
 | 
|---|
| 88 |  S SCANMODE=+$G(SCANMODE)
 | 
|---|
| 89 |  ;Initialize counters
 | 
|---|
| 90 |  S (XMITTOT,XMITDELE,XMITDELD,XMITXMIT,DELTOT,DELDEL,ERRTOT,ERRDEL)=0
 | 
|---|
| 91 |  ;Initialize summary location
 | 
|---|
| 92 |  K ^TMP($J,"SD53105A")
 | 
|---|
| 93 |  S ^TMP($J,"SD53105A","XMIT")="^^^"
 | 
|---|
| 94 |  S ^TMP($J,"SD53105A","DEL")="^"
 | 
|---|
| 95 |  S ^TMP($J,"SD53105A","ERR")="^"
 | 
|---|
| 96 |  S ^TMP($J,"SD53105A","STOP")=0
 | 
|---|
| 97 |  ;Remember starting time
 | 
|---|
| 98 |  S ^TMP($J,"SD53105A","TIME")=$$NOW^XLFDT()
 | 
|---|
| 99 |  I (SCANMODE) D
 | 
|---|
| 100 |  .W !
 | 
|---|
| 101 |  .W !,"Scanning of the Transmitted Outpatient Encounter, Deleted Outpatient"
 | 
|---|
| 102 |  .W !,"Encounter, and Transmitted Outpatient Encounter Error files for known"
 | 
|---|
| 103 |  .W !,"problems started on "_$$FMTE^XLFDT($$NOW^XLFDT())
 | 
|---|
| 104 |  .W !
 | 
|---|
| 105 |  ;Loop through Transmitted Outpatient Encounter file (#409.73)
 | 
|---|
| 106 |  I (SCANMODE) D
 | 
|---|
| 107 |  .W !!
 | 
|---|
| 108 |  .W !,"The following entries in the Transmitted Outpatient Encounter"
 | 
|---|
| 109 |  .W !,"file (#409.73) will be acted upon when run in fix mode"
 | 
|---|
| 110 |  .W !,$$REPEAT^SCDXUTL1("=",70)
 | 
|---|
| 111 |  S XMITPTR=0
 | 
|---|
| 112 |  F  S XMITPTR=+$O(^SD(409.73,XMITPTR)) Q:('XMITPTR)  D  Q:($G(ZTSTOP))
 | 
|---|
| 113 |  .;Increment total entries checked
 | 
|---|
| 114 |  .S XMITTOT=XMITTOT+1
 | 
|---|
| 115 |  .;Grab zero node
 | 
|---|
| 116 |  .S NODE=$G(^SD(409.73,XMITPTR,0))
 | 
|---|
| 117 |  .;Get Outpatient Encounter & Deleted Outpatient Encounter pointers
 | 
|---|
| 118 |  .S ENCPTR=+$P(NODE,"^",2)
 | 
|---|
| 119 |  .S DELPTR=+$P(NODE,"^",3)
 | 
|---|
| 120 |  .;Validate pointer to Outpatient Encounter
 | 
|---|
| 121 |  .I (ENCPTR) D
 | 
|---|
| 122 |  ..Q:($D(^SCE(ENCPTR,0)))
 | 
|---|
| 123 |  ..;Invalid - delete entry and increment deletion count
 | 
|---|
| 124 |  ..S:('SCANMODE) TMP=$$DELXMIT^SCDXFU03(XMITPTR,0)
 | 
|---|
| 125 |  ..W:(SCANMODE) !,"^SD(409.73,",XMITPTR,",0) has bad pointer to Outpatient Encounter file"
 | 
|---|
| 126 |  ..S XMITDELE=XMITDELE+1
 | 
|---|
| 127 |  .;Validate pointer to Deleted Outpatient Encounter
 | 
|---|
| 128 |  .I (DELPTR) D
 | 
|---|
| 129 |  ..Q:($D(^SD(409.74,DELPTR,0)))
 | 
|---|
| 130 |  ..;Invalid - delete entry and increment deletion count
 | 
|---|
| 131 |  ..S:('SCANMODE) TMP=$$DELXMIT^SCDXFU03(XMITPTR,0)
 | 
|---|
| 132 |  ..W:(SCANMODE) !,"^SD(409.73,",XMITPTR,",0) has bad pointer to Deleted Outpatient Encounter file"
 | 
|---|
| 133 |  ..S XMITDELD=XMITDELD+1
 | 
|---|
| 134 |  .;Check for rejection without entry in Transmitted Outpatient Encounter
 | 
|---|
| 135 |  .; Error file (#409.75)
 | 
|---|
| 136 |  .S TMP=$G(^SD(409.73,XMITPTR,1))
 | 
|---|
| 137 |  .I ($P(TMP,"^",5)="R") D:('$D(^SD(409.75,"B",XMITPTR)))
 | 
|---|
| 138 |  ..;Mark for retransmission
 | 
|---|
| 139 |  ..D:('SCANMODE) STREEVNT^SCDXFU01(XMITPTR)
 | 
|---|
| 140 |  ..D:('SCANMODE) XMITFLAG^SCDXFU01(XMITPTR)
 | 
|---|
| 141 |  ..W:(SCANMODE) !,"^SD(409.73,",XMITPTR,",0) rejected with no reason on file (entry in 409.75)"
 | 
|---|
| 142 |  ..;Increment retransmission counter
 | 
|---|
| 143 |  ..S XMITXMIT=XMITXMIT+1
 | 
|---|
| 144 |  .;Check for request to stop
 | 
|---|
| 145 |  .S:($$S^%ZTLOAD("Last entry in Transmitted Outpatient Encounter file checked >> "_XMITPTR)) ZTSTOP=1
 | 
|---|
| 146 |  ;Remember totals
 | 
|---|
| 147 |  S ^TMP($J,"SD53105A","XMIT")=XMITTOT_"^"_XMITDELE_"^"_XMITDELD_"^"_XMITXMIT
 | 
|---|
| 148 |  I (SCANMODE) D
 | 
|---|
| 149 |  .W !
 | 
|---|
| 150 |  .W !,XMITTOT," entries where checked"
 | 
|---|
| 151 |  .W !,?2,XMITXMIT," would have been marked for retransmission"
 | 
|---|
| 152 |  .W !,?2,(XMITDELE+XMITDELD)," would have been deleted"
 | 
|---|
| 153 |  .W !,?4,(XMITDELE)," have bad Outpatient Encounter pointers"
 | 
|---|
| 154 |  .W !,?4,(XMITDELD)," have bad Deleted Outpatient Encounter pointers"
 | 
|---|
| 155 |  ;Asked to stop
 | 
|---|
| 156 |  I $G(ZTSTOP) G EN1
 | 
|---|
| 157 |  ;Loop through Deleted Outpatient Encounter file (#409.74)
 | 
|---|
| 158 |  I (SCANMODE) D
 | 
|---|
| 159 |  .W !!!
 | 
|---|
| 160 |  .W !,"The following entries in the Deleted Outpatient Encounter"
 | 
|---|
| 161 |  .W !,"file (#409.74) will be deleted when run in fix mode"
 | 
|---|
| 162 |  .W !,$$REPEAT^SCDXUTL1("=",70)
 | 
|---|
| 163 |  S DELPTR=0
 | 
|---|
| 164 |  F  S DELPTR=+$O(^SD(409.74,DELPTR)) Q:('DELPTR)  D  Q:($G(ZTSTOP))
 | 
|---|
| 165 |  .;Increment total entries checked
 | 
|---|
| 166 |  .S DELTOT=DELTOT+1
 | 
|---|
| 167 |  .;Check for entry in Transmitted Outpatient Encounter file
 | 
|---|
| 168 |  .I ('$D(^SD(409.73,"ADEL",DELPTR))) D
 | 
|---|
| 169 |  ..;Not found - delete entry and increment deletion count
 | 
|---|
| 170 |  ..I ('SCANMODE) S DA=DELPTR,DIK="^SD(409.74," D ^DIK K DA,DIK,X,Y
 | 
|---|
| 171 |  ..W:(SCANMODE) !,"^SD(409.74,",DELPTR,",0) not in Transmitted Outpatient Encounter file"
 | 
|---|
| 172 |  ..S DELDEL=DELDEL+1
 | 
|---|
| 173 |  .;Check for request to stop
 | 
|---|
| 174 |  .S:($$S^%ZTLOAD("Last entry in Deleted Outpatient Encounter file checked >> "_DELPTR)) ZTSTOP=1
 | 
|---|
| 175 |  ;Remember totals
 | 
|---|
| 176 |  S ^TMP($J,"SD53105A","DEL")=DELTOT_"^"_DELDEL
 | 
|---|
| 177 |  W:(SCANMODE) !!,DELTOT," entries where checked and ",DELDEL," would have been deleted"
 | 
|---|
| 178 |  ;Asked to stop
 | 
|---|
| 179 |  I $G(ZTSTOP) G EN1
 | 
|---|
| 180 |  ;Loop through Transmitted Outpatient Encounter Error file (#409.75)
 | 
|---|
| 181 |  I (SCANMODE) D
 | 
|---|
| 182 |  .W !!!
 | 
|---|
| 183 |  .W !,"The following entries in the Transmitted Outpatient Encounter"
 | 
|---|
| 184 |  .W !,"Error file (#409.75) will be deleted when run in fix mode"
 | 
|---|
| 185 |  .W !,$$REPEAT^SCDXUTL1("=",70)
 | 
|---|
| 186 |  S ERRPTR=0
 | 
|---|
| 187 |  F  S ERRPTR=+$O(^SD(409.75,ERRPTR)) Q:('ERRPTR)  D  Q:($G(ZTSTOP))
 | 
|---|
| 188 |  .;Increment total entries checked
 | 
|---|
| 189 |  .S ERRTOT=ERRTOT+1
 | 
|---|
| 190 |  .;Get pointer to Transmitted Outpatient Encounter file
 | 
|---|
| 191 |  .S XMITPTR=+$G(^SD(409.75,ERRPTR,0))
 | 
|---|
| 192 |  .;Validate pointer
 | 
|---|
| 193 |  .I ('$D(^SD(409.73,XMITPTR,0))) D
 | 
|---|
| 194 |  ..;Invalid - delete entry and increment deletion count
 | 
|---|
| 195 |  ..S:('SCANMODE) TMP=$$DELERR^SCDXFU02(ERRPTR)
 | 
|---|
| 196 |  ..W:(SCANMODE) !,"^SD(409.75,",ERRPTR,",0) has bad pointer to Transmitted Outpatient Encounter file"
 | 
|---|
| 197 |  ..S ERRDEL=ERRDEL+1
 | 
|---|
| 198 |  .;Check for request to stop
 | 
|---|
| 199 |  .S:($$S^%ZTLOAD("Last entry in Transmitted Outpatient Encounter Error file checked >> "_ERRPTR)) ZTSTOP=1
 | 
|---|
| 200 |  ;Remember totals
 | 
|---|
| 201 |  S ^TMP($J,"SD53105A","ERR")=ERRTOT_"^"_ERRDEL
 | 
|---|
| 202 |  W:(SCANMODE) !!,ERRTOT," entries where checked and ",ERRDEL," would have been deleted"
 | 
|---|
| 203 | EN1 ;Remember ending time
 | 
|---|
| 204 |  S $P(^TMP($J,"SD53105A","TIME"),"^",2)=$$NOW^XLFDT()
 | 
|---|
| 205 |  I (SCANMODE) D
 | 
|---|
| 206 |  .W !!!,"Scan ended on ",$$FMTE^XLFDT($$NOW^XLFDT())
 | 
|---|
| 207 |  .W !!!,"Use the entry point FIX^SD53105A to run in fix mode"
 | 
|---|
| 208 |  .W !,"Use the entry point SCAN^SD53105A to re-run in scan mode"
 | 
|---|
| 209 |  ;Remember if requested to stop
 | 
|---|
| 210 |  S ^TMP($J,"SD53105A","STOP")=+$G(ZTSTOP)
 | 
|---|
| 211 |  ;Send completion/summary bulletin
 | 
|---|
| 212 |  D:('SCANMODE) BULL1^SD53105C
 | 
|---|
| 213 |  ;Done - clean up and quit
 | 
|---|
| 214 |  K ^TMP($J,"SD53105A")
 | 
|---|
| 215 |  S:($D(ZTQUEUED)) ZTREQ="@"
 | 
|---|
| 216 |  Q
 | 
|---|