1 | SCCVDEL ;ALB/TMP - OLD SCHED VISITS FILE DELETE; [ 03/04/98 09:39 AM ]
|
---|
2 | ;;5.3;Scheduling;**211**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | EN ; Main entry point - display scheduling files to delete
|
---|
5 | N Z
|
---|
6 | D DT^DICRW
|
---|
7 | D FULL^VALM1
|
---|
8 | W !!,*7," *** WARNING ***"
|
---|
9 | W !,"This action allows PERMANENT DELETION of old Scheduling files!"
|
---|
10 | W !,"If you are at all uncertain about this option, DO NOT delete any files.",!!
|
---|
11 | D PAUSE^SCCVU
|
---|
12 | D EN^VALM("SCCV CONV DELETE FILE MENU")
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | INIT ; -- set up initial variables
|
---|
16 | D FNL
|
---|
17 | S U="^",VALMCNT=0,VALMBG=1
|
---|
18 | D BLD
|
---|
19 | Q
|
---|
20 | ;
|
---|
21 | FNL ; Clean up
|
---|
22 | K ^TMP("SCCV.DELETE",$J),^TMP("SCCV.DELETE.DX",$J)
|
---|
23 | K SCCVFIL
|
---|
24 | S VALMBCK="Q"
|
---|
25 | Q
|
---|
26 | ;
|
---|
27 | BLD ;Build parameter display
|
---|
28 | N SCCVFIL,SCCVFNM,SCCVGBL,SCCVST,SCCVDDT,SCCVEDT
|
---|
29 | S SCCVEDT=+$G(^SD(404.91,1,"CNV")) IF 'SCCVEDT S SCCVEDT=9999999 ; earliest date
|
---|
30 | S VALMBG=1
|
---|
31 | K ^TMP("SCCV.DELETE",$J),^TMP("SCCV.DELETE.DX",$J)
|
---|
32 | S VALMCNT=0
|
---|
33 | F SCCVFIL=40.1,40.15,409.5,409.43,409.44 D
|
---|
34 | . S VALMCNT=VALMCNT+1,X=""
|
---|
35 | . S SCCVFNM=$$FNAME(SCCVFIL)
|
---|
36 | . S SCCVGBL=$$FGLB(SCCVFIL)
|
---|
37 | . S SCCVDDT=$$FDELDT(SCCVFIL)
|
---|
38 | . S SCCVST=2 ; nothing deleted
|
---|
39 | . IF SCCVDDT<SCCVEDT S SCCVST=3 ; can't delete
|
---|
40 | . IF $D(@SCCVGBL)=0 S SCCVST=0 ; data deleted
|
---|
41 | . IF SCCVST,$D(^DIC(SCCVFIL,0))=0 S SCCVST=1 ; dd deleted
|
---|
42 | . S X=$$SETFLD^VALM1(VALMCNT,X,"NUMBER")
|
---|
43 | . S X=$$SETFLD^VALM1(SCCVFIL,X,"FNUMBER")
|
---|
44 | . S X=$$SETFLD^VALM1(SCCVFNM,X,"FNAME")
|
---|
45 | . S X=$$SETFLD^VALM1(SCCVGBL,X,"GLOBAL")
|
---|
46 | . S X=$$SETFLD^VALM1($S('SCCVST:"Data and DD Deleted",SCCVST=1:"DD Deleted Only",SCCVST=2:"Nothing Deleted",1:"Deletion Not Allowed"),X,"STATUS")
|
---|
47 | . ;
|
---|
48 | . S ^TMP("SCCV.DELETE",$J,VALMCNT,0)=X
|
---|
49 | . S ^TMP("SCCV.DELETE",$J,"IDX",VALMCNT,VALMCNT)=""
|
---|
50 | . S ^TMP("SCCV.DELETE"_".DX",$J,VALMCNT)=SCCVFIL_U_SCCVST_U_"("_SCCVFNM_")"
|
---|
51 | Q
|
---|
52 | ;
|
---|
53 | DELDD ; Delete DDs and templates for files
|
---|
54 | N VALMY,SCCV,SCCVFIL
|
---|
55 | D FULL^VALM1
|
---|
56 | W !
|
---|
57 | ;
|
---|
58 | IF '$$GAP() G DELDDQ
|
---|
59 | ;
|
---|
60 | IF '$$COMPL() G DELDDQ
|
---|
61 | ;
|
---|
62 | I '$O(^SD(404.98,0))!'$$COMPL^SCCVPAR(1) D G:'SCOK DELDDQ
|
---|
63 | . N DIR,Y
|
---|
64 | . S DIR("B")="NO"
|
---|
65 | . S DIR(0)="YA"
|
---|
66 | . S DIR("A",1)="It appears that no conversion was completed at your site."
|
---|
67 | . S DIR("A",2)="If you choose to continue, all data in the old Scheduling files could be lost."
|
---|
68 | . S DIR("A")="Are you sure you want to do this?: "
|
---|
69 | . D ^DIR K DIR
|
---|
70 | . S SCOK=(Y=1)
|
---|
71 | ;
|
---|
72 | S DIR(0)="YA"
|
---|
73 | S DIR("A",1)="This action will PERMANENTLY DELETE any selected files!"
|
---|
74 | S DIR("A")="Are you absolutely sure you want to do this?: "
|
---|
75 | S DIR("B")="NO"
|
---|
76 | D ^DIR K DIR
|
---|
77 | G:Y'=1 DELDDQ
|
---|
78 | ;
|
---|
79 | W !
|
---|
80 | D EN^VALM2($G(XQORNOD(0)))
|
---|
81 | S SCCV=0 F S SCCV=$O(VALMY(SCCV)) Q:'SCCV D
|
---|
82 | . S SCCVFIL=$G(^TMP("SCCV.DELETE.DX",$J,SCCV))
|
---|
83 | . IF $P(SCCVFIL,U,2)=3 D Q
|
---|
84 | . . W !!,"Deleting File # "_+SCCVFIL_" "_$P(SCCVFIL,U,3)," is not allowed."
|
---|
85 | . . W !,"You did not convert back to '"_$$FMTE^XLFDT($$FDELDT(+SCCVFIL),"5Z")_"'."
|
---|
86 | . . D PAUSE^SCCVU
|
---|
87 | . . ;
|
---|
88 | . IF $P(SCCVFIL,U,2)'=2 D Q
|
---|
89 | . . W !!,"DD and templates for File # "_+SCCVFIL_" "_$P(SCCVFIL,U,3)
|
---|
90 | . . W !,"have already been deleted!"
|
---|
91 | . . D PAUSE^SCCVU
|
---|
92 | . D DELFIL(+SCCVFIL,$P(SCCVFIL,U,3))
|
---|
93 | D BLD
|
---|
94 | DELDDQ S VALMBCK="R"
|
---|
95 | Q
|
---|
96 | ;
|
---|
97 | GAP() ; -- check to see if there gaps in conversion
|
---|
98 | ; -- return: 1 - no gap | 0 - gaps exist
|
---|
99 | N SCOK
|
---|
100 | S SCOK=0
|
---|
101 | I $$SEQGAP^SCCVPAR() D G GAPQ
|
---|
102 | . N DIR,Y,SCDT1
|
---|
103 | . S SCDT1=$P($G(^SD(404.91,1,"CNV")),U)
|
---|
104 | . S:SCDT1 SCDT1=$$FMTE^XLFDT(SCDT1,"5Z")
|
---|
105 | . W !,"You have one or more gaps in conversion dates from your earliest"
|
---|
106 | . W !,"date to convert ("_$S(SCDT1'="":SCDT1,1:"NOT ENTERED")_") to 09/30/1996."
|
---|
107 | . W !,"You must finish converting before you can delete any of these files."
|
---|
108 | . D PAUSE^SCCVU
|
---|
109 | S SCOK=1
|
---|
110 | GAPQ Q SCOK
|
---|
111 | ;
|
---|
112 | COMPL() ; -- check if conversion complete flag is set
|
---|
113 | ; -- return: 1 - set | 0 - not set
|
---|
114 | N SCOK
|
---|
115 | S SCOK=0
|
---|
116 | I '$P($G(^SD(404.91,1,"CNV")),U,4) D G COMPLQ
|
---|
117 | . W !,"No file deletes can be performed until a date has been"
|
---|
118 | . W !,"recorded in the conversion site parameters indicating"
|
---|
119 | . W !,"that the conversion is complete."
|
---|
120 | . D PAUSE^SCCVU
|
---|
121 | S SCOK=1
|
---|
122 | COMPLQ Q SCOK
|
---|
123 | ;
|
---|
124 | DELFIL(FNO,FNM) ;Delete dd and templates for the specified file #FNO
|
---|
125 | ; FNM = the file name in ()
|
---|
126 | N DIR,Y,SCOK
|
---|
127 | S SCOK=0
|
---|
128 | ;
|
---|
129 | S DIR(0)="YA"
|
---|
130 | S DIR("B")="NO"
|
---|
131 | S DIR("A",1)="I am about to PERMANENTLY DELETE file #"_FNO_" "_FNM_"!"
|
---|
132 | S DIR("A")="Are you absolutely sure you want to do this? "
|
---|
133 | D ^DIR
|
---|
134 | K DIR
|
---|
135 | S SCOK=Y
|
---|
136 | ;
|
---|
137 | IF SCOK=1 D
|
---|
138 | . S DIR(0)="YA"
|
---|
139 | . S DIR("B")="NO"
|
---|
140 | . S DIR("A")="Does your site have a backup/archive of this file? "
|
---|
141 | . D ^DIR
|
---|
142 | . K DIR
|
---|
143 | . S SCOK=Y
|
---|
144 | . ;
|
---|
145 | . ; -- log user and date/time info
|
---|
146 | . IF SCOK=1 D
|
---|
147 | . . S Y=$$LOG(FNO,$G(DUZ),"DD")
|
---|
148 | . . S SCOK=+Y
|
---|
149 | . . IF 'Y D
|
---|
150 | . . . W !,"Cannot delete data dictionary and templates for file!"
|
---|
151 | . . . W !,$P(Y,U,2)
|
---|
152 | ;
|
---|
153 | I SCOK=1 D G DFQ
|
---|
154 | . W !!,"Data Dictionary and Template Deletion of"
|
---|
155 | . W !,"file # "_FNO_" "_FNM_" is in process...",!
|
---|
156 | . S DIU=FNO
|
---|
157 | . S DIU(0)="ET"
|
---|
158 | . D EN^DIU2
|
---|
159 | . W !!,"Data Dictionary and Templates for File # "_FNO_" "_FNM
|
---|
160 | . W !,"have been deleted."
|
---|
161 | . D MSG(FNO)
|
---|
162 | ;
|
---|
163 | W !,"Data Dictionary and Templates for File # "_FNO_" "_FNM
|
---|
164 | W !,"have NOT been deleted."
|
---|
165 | ;
|
---|
166 | DFQ D PAUSE^SCCVU
|
---|
167 | Q
|
---|
168 | ;
|
---|
169 | MSG(FNO) ; -- display protect message
|
---|
170 | N SCGLB
|
---|
171 | S SCGLB=$$FGLB(FNO)
|
---|
172 | W !
|
---|
173 | W !,"NOTE: Only the data dictionary and templates have been"
|
---|
174 | W !," deleted."
|
---|
175 | W !
|
---|
176 | W !," In order to delete the data, execute the following action:"
|
---|
177 | W !," Data Global Deletion"
|
---|
178 | W !
|
---|
179 | ;
|
---|
180 | IF FNO=409.43!(FNO=409.44) G MSGQ
|
---|
181 | ;
|
---|
182 | W !," However, you must first determine if KILLing at the global"
|
---|
183 | W !," root level is allowed for this global '",SCGLB,"' on your"
|
---|
184 | W !," system."
|
---|
185 | W !
|
---|
186 | W !," Unfortunately, there is no programmer API to check this"
|
---|
187 | W !," global characteristic using Kernel tools."
|
---|
188 | W !
|
---|
189 | W !," If you need help checking and setting this global parameter,"
|
---|
190 | W !," please contact National VistA Support (NVS)."
|
---|
191 | W !
|
---|
192 | MSGQ Q
|
---|
193 | ;
|
---|
194 | LOG(FILE,USER,TYPE) ; -- log file deletion
|
---|
195 | N SCFIN,SCRET,SCDEL,DIE,DA,Y,DR,X
|
---|
196 | S SCRET="1^Log data successfully filed."
|
---|
197 | ;
|
---|
198 | IF $G(TYPE)="DD"!(TYPE="DATA") D
|
---|
199 | . S SCDEL("TYPE")=TYPE
|
---|
200 | ELSE D
|
---|
201 | . S SCRET="0^Not a valid deletion type"
|
---|
202 | ;
|
---|
203 | IF 'SCRET G LOGQ
|
---|
204 | ;
|
---|
205 | IF $G(FILE) D
|
---|
206 | . IF FILE=409.5!(FILE=409.43)!(FILE=409.44)!(FILE=40.1)!(FILE=40.15) D
|
---|
207 | . . S SCDEL("FILE")=FILE
|
---|
208 | . ELSE D
|
---|
209 | . . S SCRET="0^Not a file that can be deleted."
|
---|
210 | ELSE D
|
---|
211 | . S SCRET="0^No file specified."
|
---|
212 | ;
|
---|
213 | IF 'SCRET G LOGQ
|
---|
214 | ;
|
---|
215 | IF $G(USER) D
|
---|
216 | . S SCDEL("USER")=USER
|
---|
217 | ELSE D
|
---|
218 | . S SCRET="0^No user specified."
|
---|
219 | ;
|
---|
220 | IF 'SCRET G LOGQ
|
---|
221 | ;
|
---|
222 | S SCDEL("DATE/TIME")=$$NOW^XLFDT
|
---|
223 | ;
|
---|
224 | L +^SD(404.91,1):2
|
---|
225 | IF '$T S SCRET="0^Unable to lock SCHEDULING PARAMETER file." G LOGQ
|
---|
226 | S DIE="^SD(404.91,",DA=1,DR="[SCCV CONV FILE DELETION LOG]" D ^DIE
|
---|
227 | L -^SD(404.91,1)
|
---|
228 | IF '$G(SCFIN) S SCRET="0^Filing of deletion log data failed." G LOGQ
|
---|
229 | ;
|
---|
230 | LOGQ Q SCRET
|
---|
231 | ;
|
---|
232 | FNAME(FNO) ; -- get file name
|
---|
233 | N F
|
---|
234 | S F(40.1)="OPC"
|
---|
235 | S F(40.15)="OPC ERRORS"
|
---|
236 | S F(409.5)="SCHEDULING VISITS"
|
---|
237 | S F(409.43)="OUTPATIENT DIAGNOSIS"
|
---|
238 | S F(409.44)="OUTPATIENT PROVIDER"
|
---|
239 | Q F(FNO)
|
---|
240 | ;
|
---|
241 | FGLB(FNO) ; -- get data global for file
|
---|
242 | N F
|
---|
243 | S F(40.1)="^SDASF"
|
---|
244 | S F(40.15)="^SDASE"
|
---|
245 | S F(409.5)="^SDV"
|
---|
246 | S F(409.43)="^SDD(409.43)"
|
---|
247 | S F(409.44)="^SDD(409.44)"
|
---|
248 | Q F(FNO)
|
---|
249 | ;
|
---|
250 | FDELDT(FNO) ; -- get date the site must convert back to in order to delete
|
---|
251 | ; file dd and data
|
---|
252 | N F
|
---|
253 | S F(40.1)=9999998
|
---|
254 | S F(40.15)=9999998
|
---|
255 | S F(409.5)=2871001
|
---|
256 | S F(409.43)=2931001
|
---|
257 | S F(409.44)=2931001
|
---|
258 | Q F(FNO)
|
---|
259 | ;
|
---|