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