[613] | 1 | SCDXPRG0 ;ALB/JRP - ACRP PURGING;04-SEP-97 ; 19 Oct 98 1:16 PM
|
---|
| 2 | ;;5.3;Scheduling;**128,163**;AUG 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | MAIN ;Main entry point (used by option)
|
---|
| 5 | ;Declare variables
|
---|
| 6 | N SCDXBEG,SCDXEND,SCDXH,X
|
---|
| 7 | N ZTSK,ZTIO,ZTDESC,ZTDTH,ZTRTN,ZTSAVE
|
---|
| 8 | ;Get date range for purge
|
---|
| 9 | ; Earliest purge date allowed is ACRP cut-over date
|
---|
| 10 | S SCDXBEG=2961001
|
---|
| 11 | ; Latest purge date allowed is last day of month prior to previous FY
|
---|
| 12 | ; database close-out date
|
---|
| 13 | S SCDXEND=$E(DT,1,3)_"0930"
|
---|
| 14 | S SCDXEND=$S(DT>SCDXEND:SCDXEND-10000,1:SCDXEND-20000)
|
---|
| 15 | ;Begin date help text
|
---|
| 16 | S SCDXH("B",1)="Enter encounter date to begin purging from"
|
---|
| 17 | S SCDXH("B",2)=" "
|
---|
| 18 | S SCDXH("B",3)=$$FMTE^XLFDT(SCDXBEG)_" is the earliest date allowed"
|
---|
| 19 | S SCDXH("B",4)=$$FMTE^XLFDT(SCDXEND)_" will be the latest date allowed"
|
---|
| 20 | S SCDXH("B",5)=" "
|
---|
| 21 | S SCDXH("B",6)="Note: The latest date allowed is the last day of the"
|
---|
| 22 | S SCDXH("B")=" month prior to the previous Fiscal Year."
|
---|
| 23 | ;End date help text
|
---|
| 24 | S SCDXH("E",1)="Enter encounter date to end purging at"
|
---|
| 25 | S SCDXH("E",2)=" "
|
---|
| 26 | S SCDXH("E",3)=$$FMTE^XLFDT(SCDXEND)_" is the latest date allowed"
|
---|
| 27 | S SCDXH("E",4)=$$FMTE^XLFDT(SCDXBEG)_" was the earliest date allowed"
|
---|
| 28 | S SCDXH("E",5)=" "
|
---|
| 29 | S SCDXH("E",6)="Note: The latest date allowed is the last day of the"
|
---|
| 30 | S SCDXH("E")=" month prior to the previous Fiscal Year."
|
---|
| 31 | S X=$$GETDTRNG^SCDXUTL1(SCDXBEG,SCDXEND,$NA(SCDXH("B")),$NA(SCDXH("E")))
|
---|
| 32 | ;User aborted - quit
|
---|
| 33 | I (X<0) W !!,"** Purging of ACRP files not queued **",!! Q
|
---|
| 34 | K SCDXH
|
---|
| 35 | S SCDXBEG=+$P(X,"^",1)
|
---|
| 36 | S SCDXEND=+$P(X,"^",2)
|
---|
| 37 | ;Task purging
|
---|
| 38 | S ZTDESC="Purging of ACRP files from "_$$FMTE^XLFDT(SCDXBEG,2)_" to "_$$FMTE^XLFDT(SCDXEND,2)
|
---|
| 39 | S ZTRTN="TASK^SCDXPRG0"
|
---|
| 40 | S ZTSAVE("SCDXBEG")=SCDXBEG
|
---|
| 41 | S ZTSAVE("SCDXEND")=SCDXEND
|
---|
| 42 | S ZTIO=""
|
---|
| 43 | S ZTDTH=""
|
---|
| 44 | S ZTSK=""
|
---|
| 45 | D ^%ZTLOAD
|
---|
| 46 | S ZTSK=+$G(ZTSK)
|
---|
| 47 | ;Error tasking
|
---|
| 48 | W:('ZTSK) !!,"** Purging of ACRP files not queued **",!!
|
---|
| 49 | ;Tasked
|
---|
| 50 | W:(ZTSK) !!,"Purging of ACRP files queued as task number ",ZTSK,!!
|
---|
| 51 | ;Done
|
---|
| 52 | Q
|
---|
| 53 | ;
|
---|
| 54 | TASK ;Task entry point
|
---|
| 55 | ;
|
---|
| 56 | ;Input : SCDXBEG - Begin date (FileMan)
|
---|
| 57 | ; SCDXEND - End date (FileMan)
|
---|
| 58 | ;Output : None
|
---|
| 59 | ;Notes : Existance and validity of input is assumed
|
---|
| 60 | ;
|
---|
| 61 | ;Don't purge if task was asked to stop
|
---|
| 62 | I ('$$S^%ZTLOAD()) D PURGE(SCDXBEG,SCDXEND)
|
---|
| 63 | ;Done
|
---|
| 64 | S:($D(ZTQUEUED)) ZTREQ="@"
|
---|
| 65 | Q
|
---|
| 66 | ;
|
---|
| 67 | PURGE(BEGDATE,ENDDATE) ;Purge ACRP files over a given date range
|
---|
| 68 | ;
|
---|
| 69 | ;Input : BEGDATE - Encounter date to begin purging from (FileMan)
|
---|
| 70 | ; Defaults to beginning of last fiscal year
|
---|
| 71 | ; ENDDATE - Encounter date to end purging at (FileMan)
|
---|
| 72 | ; Defaults to end of last fiscal year
|
---|
| 73 | ;Output : None
|
---|
| 74 | ;Notes : Purging affects the following files
|
---|
| 75 | ; - Transmitted Outpatient Encounter file (#409.73)
|
---|
| 76 | ; - Deleted Outpatient Encounter file (#409.74)
|
---|
| 77 | ; - Transmitted Outpatient Encounter Error file (#409.75)
|
---|
| 78 | ; - ACRP Transmission History file (#409.77)
|
---|
| 79 | ;
|
---|
| 80 | ;Check input
|
---|
| 81 | S BEGDATE=+$G(BEGDATE)
|
---|
| 82 | S:('BEGDATE) BEGDATE=+$P($$DR4FY^SCDXPRGD($$PREVFY^SCDXPRGD()),"^",1)
|
---|
| 83 | S ENDDATE=+$G(ENDDATE)
|
---|
| 84 | S:('ENDDATE) ENDDATE=+$P($$DR4FY^SCDXPRGD($$PREVFY^SCDXPRGD()),"^",2)
|
---|
| 85 | ;Declare variables
|
---|
| 86 | N TMP,DATE,ENCPTR,XMITPTR,DELPTR,ENCPRG,DELPRG
|
---|
| 87 | ;Initialize purge counts
|
---|
| 88 | S (ENCPRG,DELPRG)=0
|
---|
| 89 | ;Make begin and end dates opposing midnights
|
---|
| 90 | S BEGDATE=$P(BEGDATE,".",1)
|
---|
| 91 | S ENDDATE=$P(ENDDATE,".",1)_".235959"
|
---|
| 92 | ;Loop through Outpatient Encounter file (#409.68)
|
---|
| 93 | S DATE=BEGDATE
|
---|
| 94 | F S DATE=+$O(^SCE("B",DATE)) Q:(('DATE)!(DATE>ENDDATE)) D Q:($$S^%ZTLOAD())
|
---|
| 95 | .S ENCPTR=0
|
---|
| 96 | .F S ENCPTR=+$O(^SCE("B",DATE,ENCPTR)) Q:('ENCPTR) D
|
---|
| 97 | ..;Find associated entry in Transmitted Outpatient Encounter file
|
---|
| 98 | ..S XMITPTR=+$$FINDXMIT^SCDXFU01(ENCPTR)
|
---|
| 99 | ..Q:('XMITPTR)
|
---|
| 100 | ..;Increment purge count
|
---|
| 101 | ..S ENCPRG=ENCPRG+1
|
---|
| 102 | ..;Delete from Transmitted Outpatient Encounter file
|
---|
| 103 | ..S TMP=$$DELXMIT^SCDXFU03(XMITPTR)
|
---|
| 104 | ;Task asked to stop (jump to message generation)
|
---|
| 105 | I ($$S^%ZTLOAD()) G MSG
|
---|
| 106 | ;Loop through Deleted Outpatient Encounter file (#409.74)
|
---|
| 107 | S DATE=BEGDATE
|
---|
| 108 | F S DATE=+$O(^SD(409.74,"B",DATE)) Q:(('DATE)!(DATE>ENDDATE)) D Q:($$S^%ZTLOAD())
|
---|
| 109 | .S DELPTR=0
|
---|
| 110 | .F S DELPTR=+$O(^SD(409.74,"B",DATE,DELPTR)) Q:('DELPTR) D
|
---|
| 111 | ..;Find associated entry in Transmitted Outpatient Encounter file
|
---|
| 112 | ..S XMITPTR=+$$FINDXMIT^SCDXFU01(0,DELPTR)
|
---|
| 113 | ..Q:('XMITPTR)
|
---|
| 114 | ..;Increment purge count
|
---|
| 115 | ..S DELPRG=DELPRG+1
|
---|
| 116 | ..;Delete from Transmitted Outpatient Encounter file
|
---|
| 117 | ..S TMP=$$DELXMIT^SCDXFU03(XMITPTR)
|
---|
| 118 | MSG ;Generate completion message
|
---|
| 119 | K TMP
|
---|
| 120 | N XMSUB,XMTEXT,XMDUZ,XMY,XMZ
|
---|
| 121 | ;Build message text
|
---|
| 122 | I ($$S^%ZTLOAD()) D
|
---|
| 123 | .;Asked to stop
|
---|
| 124 | .S TMP(1,0)="** Purging was asked to stop **"
|
---|
| 125 | .S TMP(2,0)=" "
|
---|
| 126 | S TMP(3,0)=(ENCPRG+DELPRG)_" entries were purged from the Transmitted Outpatient Encounter file"
|
---|
| 127 | S TMP(4,0)="(#409.73). "_ENCPRG_" of them pointed to entries in the Outpatient Encounter"
|
---|
| 128 | S TMP(5,0)="file (#409.68) and "_DELPRG_" of them pointed to entries in the Deleted Outpatient"
|
---|
| 129 | S TMP(6,0)="Encounter file (#409.74)."
|
---|
| 130 | ;Send to current user
|
---|
| 131 | S XMSUB="Purging of ACRP files from "_$$FMTE^XLFDT(BEGDATE,"2D")_" to "_$$FMTE^XLFDT(ENDDATE,"2D")
|
---|
| 132 | S XMTEXT="TMP("
|
---|
| 133 | S XMDUZ="ACRP PURGER"
|
---|
| 134 | S XMY(DUZ)=""
|
---|
| 135 | D ^XMD
|
---|
| 136 | ;Done
|
---|
| 137 | Q
|
---|