def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.frequency_code_index = None
     self.type_of_bill_code_index = None
     self.claim_id_index = None
     self.link_claim_id_index = None
     self.linked_claim_replacement_dic = {}
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnablePullingProviderInformationFromNPPESForChartReview', 'EnablePullingProviderInformationFromNPPESForMedicalClaim')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        enable_chart_review = IPreProcessScript.to_boolean(configurations[
            'EnablePullingProviderInformationFromNPPESForChartReview'])
        enable_claim = IPreProcessScript.to_boolean(configurations[
            'EnablePullingProviderInformationFromNPPESForMedicalClaim'])

        if enable_chart_review is False and enable_claim is False:
            return False

        self._load_npi_configurations()
        if enable_chart_review and enable_claim:
            return True

        is_chart_review = self.file_name.startswith('ChartReview_Merged_')
        if enable_chart_review and is_chart_review:
            return True
        elif enable_claim and is_chart_review is False:
            return True

        return False
Exemplo n.º 3
0
    def __init__(self, context):
        IPreProcessScript.__init__(self, context)
        self.npi_ids = set()
        self.npi_field_index = []

        self.temp_table_name = 'Temp_Update_Npi_Ids_{0}_{1}'.format(
            self.entity_type, self.map_id).replace('-', '')
        pre_process_folder = os.path.split(self.merge_root_path)[-1]
        self.temp_folder = '{0}/Input/UpdateNpiDatabase'.format(
            self.merge_root_path)
        self.temp_s3_folder = 'PythonPreProcess/{0}/Input/UpdateNpiDatabase'.format(
            pre_process_folder)
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.linked_claim_id_column_index = None
     self.cross_reference_number_index = None
     self.claim_process_status_code_index = None
     self.system_assigned_number_index = None
     self.linked_claim_id_file_column_name = None
     self.linked_claim_id_by_previous_claim_number = {}
     self.previous_claim_ids = set()
     self.temp_table_name = 'Temp_PreviousClaimIds_{0}_{1}'.format(self.entity_type, self.map_id).replace('-', '')
     pre_process_folder = os.path.split(self.merge_root_path)[-1]
     self.temp_folder = '{0}/Input/LinkedClaimPopulationFromPreviousClaimId'.format(self.merge_root_path)
     self.temp_s3_folder = 'PythonPreProcess/{0}/Input/LinkedClaimPopulationFromPreviousClaimId'.format(pre_process_folder)
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.npi_ids = set()
     self.npi_field_maps = []
     self.npi_field_dic = {}
     self.configurations_map = {}
     self.npi_lookup_dict = {}
     self.temp_table_name = 'Temp_NpiIds_{0}_{1}'.format(
         self.entity_type, self.map_id).replace('-', '')
     pre_process_folder = os.path.split(self.merge_root_path)[-1]
     self.temp_folder = '{0}/Input/PullingProviderInformationFromNpiTable'.format(
         self.merge_root_path)
     self.temp_s3_folder = 'PythonPreProcess/{0}/Input/PullingProviderInformationFromNpiTable'.format(
         pre_process_folder)
Exemplo n.º 6
0
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableClaimDiagnosisFlattening')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)

        if IPreProcessScript.to_boolean(
                configurations['EnableClaimDiagnosisFlattening']) is False:
            return False

        self.claim_id_index = self.map_columns.where(
            lambda x: x['redshift_name'
                        ] == 'claim_id_medical_claim_header').first()['index']
        claim_type_code_field = self.map_columns.where(lambda x: x[
            'redshift_name'] == 'medical_claim_type_code_medical_claims_header'
                                                       ).first_or_default()
        if claim_type_code_field is None:
            return False
        self.claim_type_code_index = claim_type_code_field['index']

        claim_line_number_field = self.map_columns.where(
            lambda x: x['redshift_name'] ==
            'claim_line_number_medical_claims_detail').first_or_default()
        if claim_line_number_field is None:
            return False
        self.claim_line_number_index = claim_line_number_field['index']

        return True
Exemplo n.º 7
0
    def __init__(self, context):
        IPreProcessScript.__init__(self, context)
        self.npi_ids = set()
        self.npi_taxonomy_code_map = []
        self.npi_ncpdp_map = []
        self.npi_field_index = []
        self.npi_lookup_dict = {}
        self.npi_header_columns = {}

        self.temp_table_name = 'Temp_Taxonomies_Npi_Ids_{0}_{1}'.format(
            self.entity_type, self.map_id).replace('-', '')
        pre_process_folder = os.path.split(self.merge_root_path)[-1]
        self.temp_folder = '{0}/Input/TaxonomyCodePopulation'.format(
            self.merge_root_path)
        self.temp_s3_folder = 'PythonPreProcess/{0}/Input/TaxonomyCodePopulation'.format(
            pre_process_folder)
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableLinkedClaimIdPopulationFromPreviousClaimId')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        if IPreProcessScript.to_boolean(configurations['EnableLinkedClaimIdPopulationFromPreviousClaimId']) is False:
            return False

        return self.has_required_column()
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableClaimHICNReplacement', 'MBITransitionDate')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        if IPreProcessScript.to_boolean(
                configurations['EnableClaimHICNReplacement']) is False:
            return False
        self.mbi_transition_date = configurations['MBITransitionDate']

        return self._has_required_column()
    def __init__(self, context):
        IPreProcessScript.__init__(self, context)
        self.claim_member_id_index = None
        self.claim_hicn_index = None
        self.claim_payment_date_index = None
        self.claim_contract_id_index = None
        self.mbi_transition_date = None
        self.unload_columns = [
            'member_id_member', 'contract_id_product_reference', 'hicn_member',
            'mbi_member'
        ]
        self.unload_columns_index = dict(
            (k[1], k[0]) for k in enumerate(self.unload_columns))
        self.member_contract_set = set()
        self.member_dict = {}

        self.temp_table_name = 'Temp_ClaimHICNReplacement_{0}_{1}'.format(
            self.entity_type, self.map_id).replace('-', '')
        pre_process_folder = os.path.split(self.merge_root_path)[-1]
        self.temp_folder = '{0}/Input/ClaimHICNReplacement'.format(
            self.merge_root_path)
        self.temp_s3_folder = 'PythonPreProcess/{0}/Input/ClaimHICNReplacement'.format(
            pre_process_folder)
Exemplo n.º 11
0
 def will_execute(self):
     query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableDataLoadingFilterCriteria', 'DataLoadingFilterCriteria')"
     data = rds_provider.fetch_all(query)
     configurations = dict((k[0], k[1]) for k in data)
     if IPreProcessScript.to_boolean(
             configurations['EnableDataLoadingFilterCriteria']
     ) is False or configurations['DataLoadingFilterCriteria'].strip(
     ) == '':
         return False
     self.data_loading_filter_criteria = FilterExpressionParser(
         configurations['DataLoadingFilterCriteria'].lower(),
         self.header_columns).to_filter_expression()
     if self.data_loading_filter_criteria:
         return True
     return False
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableLoadingWeeklyPaidClaims')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        if IPreProcessScript.to_boolean(
                configurations['EnableLoadingWeeklyPaidClaims']) is False:
            return False

        paid_date_field = self.map_columns.where(
            lambda x: x['redshift_name'] == 'paid_date_medical_claims_header'
        ).first_or_default()
        if paid_date_field:
            self.paid_date_index = paid_date_field['index']
            return True
        return False
Exemplo n.º 13
0
    def will_execute(self):
        if self.entity_type not in ['Claim', 'DentalClaim']:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableDentalAndMedicalClaimExtractor')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        if IPreProcessScript.to_boolean(configurations['EnableDentalAndMedicalClaimExtractor']) is False:
            return False

        if self.entity_type == 'DentalClaim':
            procedure_code = self.map_columns.where(lambda x: x['redshift_name'] == 'procedure_code_dental_claim_detail').first_or_default()
        else:
            procedure_code = self.map_columns.where(lambda x: x['redshift_name'] == 'procedure_code_medical_claims_detail').first_or_default()
        if procedure_code is None:
            return False

        self.procedure_code_index = procedure_code['index']
        return True
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnableChartPOSTOBPopulation')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        if IPreProcessScript.to_boolean(
                configurations['EnableChartPOSTOBPopulation']) is False:
            return False
        is_chart_review = rds_provider.fetch_one(
            'SELECT IsChartReview FROM ControlFiles WHERE Id={}'.format(
                self.control_file_id))[0]
        if is_chart_review is False:
            return False

        provider_type_field = self.map_columns.where(lambda x: x[
            'redshift_name'] == 'medical_claim_type_code_medical_claims_header'
                                                     ).first_or_default()
        if provider_type_field is None:
            return False
        self.provider_type_code_index = provider_type_field['index']

        place_of_service_code_field = self.map_columns.where(
            lambda x: x['redshift_name'] ==
            'place_of_service_code_medical_claims_header').first_or_default()
        if place_of_service_code_field is not None:
            self.place_of_service_code_index = place_of_service_code_field[
                'index']

        type_of_bill_code_field = self.map_columns.where(
            lambda x: x['redshift_name'] ==
            'type_of_bill_code_medical_claims_header').first_or_default()
        if type_of_bill_code_field is not None:
            self.type_of_bill_code_index = type_of_bill_code_field['index']

        if place_of_service_code_field is None and type_of_bill_code_field is None:
            return False

        return True
Exemplo n.º 15
0
    def will_execute(self):
        if self.entity_type != EntityType.Claim.name:
            return False

        query = "SELECT [Key],Value FROM  Configurations WHERE [Key] IN ('EnablePopulatingDiagnosisPointer')"
        data = rds_provider.fetch_all(query)
        configurations = dict((k[0], k[1]) for k in data)
        if IPreProcessScript.to_boolean(
                configurations['EnablePopulatingDiagnosisPointer']) is False:
            return False

        is_chart_review = self.file_name.startswith('ChartReview_Merged_')
        if is_chart_review:
            return False
        claim_type_code_field = self.map_columns.where(lambda x: x[
            'redshift_name'] == 'medical_claim_type_code_medical_claims_header'
                                                       ).first_or_default()
        if claim_type_code_field is None:
            return False
        self.claim_type_code_index = claim_type_code_field['index']

        return True
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.claim_source_index = None
     self.claim_id_index = None
Exemplo n.º 17
0
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.diagnosis_codes_map = []
     self.claim_type_code_index = None
     self.claim_id_index = None
     self.claim_line_number_index = None
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.max_paid_date = None
     self.paid_date_index = None
     self.any_records_found = False
Exemplo n.º 19
0
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.diagnosis_pointers_map = []
     self.diagnosis_codes_map = []
     self.claim_type_code_index = None
Exemplo n.º 20
0
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.data_loading_filter_criteria = None
     self.any_records_found = False
Exemplo n.º 21
0
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.procedure_code_index = None
 def __init__(self, context):
     IPreProcessScript.__init__(self, context)
     self.provider_type_code_index = None
     self.place_of_service_code_index = None
     self.type_of_bill_code_index = None