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