[613] | 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 | ;
|
---|