def load_raw_data(self): cli_output('Initiated process to load raw tables') if ExtractFiles().create_and_unzip_files(): HFSLoad = HFSLoadData(self.database, self.release_num, self.data_source) HFSLoad.load_data() HFSLoad.inline_loader() cli_output('load_raw_data complete')
def raw_stage(self): self.connector.stored_procedure( 'proc_wrapper_move_hfs_raw_to_stage', [self.start_date, self.release_date, self.release_num]) self.connector.stored_procedure( 'proc_get_sc_hfs_main_claims_new', [self.start_date, self.release_date, self.release_num]) mcn_file_name = 'mcn_categorization.csv' cli_output('Loaded raw to stage, performing MCN categorization') self.mcn_cat_upload(mcn_file_name) self.connector.stored_procedure('update_mcn') os.remove(mcn_file_name) return "Raw to stage complete"
def analysis(self): cli_output('Cost analysis started...') self.conn.stored_procedure('rid_cost_insert') cli_output('Loading data to pt_window') cli_output( pt_window_load(self.release_num, self.release_date, self.database).window_load()) pp_n_months = [6, 12, 18] for pp_n_month in pp_n_months: cli_output('''Pre and post analysis for %s months period started...''' % (pp_n_month)) pre_post_analysis(pp_n_month, self.release_num, self.database).full_run(True) cli_output('Analysis completed.')
def initiate_process(self): # validate the release_num entered last_release_num = self.conn.query('''select max(ReleaseNum) as ReleaseNum from hfs_release_info ''')['ReleaseNum'][0] if last_release_num >= self.release_num: cli_output( '''Data for release number {} is already present in the database.''' .format(self.release_num)) elif (last_release_num + 1) != self.release_num: cli_output( '''Previous release number was {}. Hence the next release number should be {}''' .format(last_release_num, last_release_num + 1)) else: etl_start_string = '''ETL process initiated for ReleaseNum: {}'''.format( self.release_num) cli_output(etl_start_string) self.load_demo_data() self.load_raw_data() self.load_raw_to_stage_data() self.load_complete_pat_info() self.analysis() self.load_release_info() cli_output("Data Load Complete!")
def load_complete_pat_info(self): cli_output('Processing and loading diagnosis categorization data...') cli_output(DiagnosisMaster(self.database).load_diag_data()) cli_output('Calculating and loading risk data...') # Risk Calculation risk_cal = RiskCalculator(self.database, self.release_num, self.release_date) # for current release cli_output(risk_cal.cal_current_risk()) # for all releases cli_output(risk_cal.cal_all_release_risk()) cli_output('Loading data into pat_info_complete table...') self.conn.stored_procedure('pat_info_demo_complete_generation', [self.release_num, self.release_date]) cli_output('Data load for pat_info_complete done.')
def load_raw_to_stage_data(self): cli_output('Loading data from raw to staging tables...') cli_output( raw_to_stage(self.release_date, self.release_num, self.database).raw_stage())
def load_demo_data(self): cli_output('Loading demographics data...') self.conn.stored_procedure('pat_info_demo_load', [self.release_num, self.release_date]) cli_output('Demographics data loaded')