Exemple #1
0
def test_does_claim_meet_additional_procedure_criteria():
    """"Check that the eligibility option correctly filters by additional diagnosis codes."""
    measure_code = MeasureCode({
        'code': 'code'
    })
    additional_measure_code = MeasureCode({
        'code': 'additional_code'
    })
    option = EligibilityOption({
        'procedureCodes': [measure_code],
        'additionalProcedureCodes': [additional_measure_code]
    })

    claim_measure_code_only = claim.Claim({
        'claim_lines': [claim_line.ClaimLine({'clm_line_hcpcs_cd': 'code'})]
    })
    claim_additional_code_only = claim.Claim({
        'claim_lines': [claim_line.ClaimLine({'clm_line_hcpcs_cd': 'additional_code'})]
    })
    claim_both_codes = claim.Claim({
        'claim_lines': [
            claim_line.ClaimLine({'clm_line_hcpcs_cd': 'code'}),
            claim_line.ClaimLine({'clm_line_hcpcs_cd': 'additional_code'})]
    })

    assert option._does_claim_meet_additional_procedure_criteria(claim_additional_code_only)
    assert option._does_claim_meet_additional_procedure_criteria(claim_both_codes)
    assert not (option._does_claim_meet_additional_procedure_criteria(claim_measure_code_only))
Exemple #2
0
    def setup(self):
        claim_line_data = [
            {
                'clm_line_hcpcs_cd': 'code',
                'mdfr_cds': ['GQ', 'GY'],
                'clm_pos_code': '23',
                'clm_line_num': 1
            },
            {'clm_line_hcpcs_cd': 'code', 'mdfr_cds': ['GQ'], 'clm_pos_code': '24'},
            {'clm_line_hcpcs_cd': 'code', 'mdfr_cds': ['GY'], 'clm_pos_code': '25'},
            {'clm_line_hcpcs_cd': 'code', 'mdfr_cds': [], 'clm_pos_code': None}
        ]
        self.claim_lines = [claim_line.ClaimLine(line) for line in claim_line_data]

        self.claim_line_GQ_GY_23 = self.claim_lines[0]
        self.claim_line_GQ_24 = self.claim_lines[1]
        self.claim_line_GY_25 = self.claim_lines[2]
        self.claim_line_no_modifier_no_pos = self.claim_lines[3]

        self.plain_measure_code = MeasureCode({'code': 'code'})

        self.irrelevant_measure_code = MeasureCode({'code': 'bad_code'})

        self.measure_code_pos_24 = MeasureCode(
            {'code': 'code', 'placesOfService': ['24']}
        )
        self.measure_code_pos_26 = MeasureCode(
            {'code': 'code', 'placesOfService': ['26']}
        )
        self.measure_code_exclude_pos_24 = MeasureCode(
            {'code': 'code', 'placesOfServiceExclusions': ['24']}
        )
        self.measure_code_exclude_pos_26 = MeasureCode(
            {'code': 'code', 'placesOfServiceExclusions': ['26']}
        )

        self.measure_code_exclude_GQ = MeasureCode(
            {'code': 'code', 'modifierExclusions': ['GQ']}
        )
        self.measure_code_exclude_GT = MeasureCode(
            {'code': 'code', 'modifierExclusions': ['GT']}
        )

        self.measure_code_include_GQ = MeasureCode(
            {'code': 'code', 'modifiers': ['GQ']}
        )
        self.measure_code_include_GT = MeasureCode(
            {'code': 'code', 'modifiers': ['GT']}
        )

        self.measure_code_both_modifier_x_and_modifiers = MeasureCode(
            {'code': 'code', 'modifiers': ['GY'], 'modifierExclusions': ['GT', 'GQ']}
        )
Exemple #3
0
    def setup(self):
        """Initialization of measure 155."""
        self.measure = measure_mapping.get_measure_calculator('155')
        self.claim_meets_prefilter_and_filter = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1920, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1100F'},
                                     {'mdfr_cds': []}),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '92541'}, )
            ]
        })
        self.claim_meets_prefilter_but_not_filter = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1920, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1100F'},
                                     {'mdfr_cds': []})
            ]
        })
        self.claim_does_not_meet_prefilter_1 = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1920, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine(
                    {'clm_line_hcpcs_cd': '1100F'},
                    {'mdfr_cds': ['1P']},
                ),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '92541'}, )
            ]
        })
        self.claim_does_not_meet_prefilter_2 = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1920, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines':
            [claim_line.ClaimLine({'clm_line_hcpcs_cd': '92541'}, )]
        })

        self.claims = [
            self.claim_meets_prefilter_and_filter,
            self.claim_meets_prefilter_but_not_filter,
            self.claim_does_not_meet_prefilter_1,
            self.claim_does_not_meet_prefilter_2,
        ]
Exemple #4
0
    def setup(self):
        """Initialization of a Measure226 object and sample claims."""
        self.measure = measure_mapping.get_measure_calculator('226')

        # Initialize claims for use in the tests.
        self.claim_0_1_performance_met = claim.Claim({
            'clm_from_dt':
            datetime.date(2018, 1, 1),
            'clm_ptnt_birth_dt':
            datetime.date(2000, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': '90791',
                    'mdfr_cds': [],
                }),
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': 'G9902',
                    'mdfr_cds': [],
                }),
            ]
        })
        self.claim_2_eligible = claim.Claim({
            'clm_from_dt':
            datetime.date(2018, 1, 1),
            'clm_ptnt_birth_dt':
            datetime.date(2000, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': '90791',
                    'mdfr_cds': [],
                }),
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': 'G9902',
                    'mdfr_cds': [],
                }),
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': 'G9906',
                    'mdfr_cds': [],
                }),
            ]
        })
        self.claim_irrelevant = claim.Claim({
            'clm_from_dt':
            datetime.date(2018, 1, 1),
            'clm_ptnt_birth_dt':
            datetime.date(2000, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': '90791',
                    'mdfr_cds': [],
                }),
                claim_line.ClaimLine({
                    'clm_line_hcpcs_cd': '4004F',
                    'mdfr_cds': ['8P'],
                }),
            ]
        })
        self.claims = [
            self.claim_0_1_performance_met, self.claim_2_eligible,
            self.claim_irrelevant
        ]
    def setup(self):
        """Initialisation of measure 46."""
        self.measure = measure_mapping.get_measure_calculator('046')
        self.senior_patient_claim_performance_met = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1920, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1111F'},
                                     {'mdfr_cds': []}),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '99344'}, )
            ]
        })

        self.senior_patient_claim_not_performance_met = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1920, 1, 1),
            'clm_from_dt':
            date(2017, 1, 2),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1111F'},
                                     {'mdfr_cds': ['8P']}),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '99344'}, )
            ]
        })

        self.borderline_senior_patient_claim_performance_met = claim.Claim({
            'bene_sk':
            'elderly_patient_id',
            'clm_ptnt_birth_dt':
            date(1953, 1, 30),
            'clm_from_dt':
            date(2017, 5, 20),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1111F'},
                                     {'mdfr_cds': []}),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '99344'}, )
            ]
        })

        self.middle_aged_patient_claim_performance_not_met = claim.Claim({
            'bene_sk':
            'middle_aged_patient_id',
            'clm_ptnt_birth_dt':
            date(1977, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1111F'},
                                     {'mdfr_cds': ['8P']}),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '99344'}, )
            ]
        })

        self.too_young_patient_claim_no_strata = claim.Claim({
            'bene_sk':
            'young_patient_id',
            'clm_ptnt_birth_dt':
            date(2010, 1, 1),
            'clm_from_dt':
            date(2017, 1, 1),
            'claim_lines': [
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '1111F'},
                                     {'mdfr_cds': []}),
                claim_line.ClaimLine({'clm_line_hcpcs_cd': '99344'}, )
            ]
        })

        self.claims = [
            self.senior_patient_claim_performance_met,
            self.middle_aged_patient_claim_performance_not_met,
            self.too_young_patient_claim_no_strata
        ]
def test_str_method():
    """Test that claim lines are represented in a readable format."""
    line = claim_line.ClaimLine(
        {'clm_line_hcpcs_cd': 'code', 'mdfr_cds': ['GQ'], 'clm_pos_code': '24', 'clm_line_num': 1}
    )
    assert line.__str__() == 'ClaimLine - line_number: 1'
def test_execute():
    """
    Test for execute method.

    Note that some patient process measures have multiple eligibility options.
    """
    performance_options = [
        PerformanceOption({
            'optionType': 'performanceMet',
            'qualityCodes': [{
                'code': 'pn_code'
            }]
        }),
        PerformanceOption({
            'optionType': 'performanceNotMet',
            'qualityCodes': [{
                'code': 'pn_x_code'
            }]
        }),
        PerformanceOption({
            'optionType': 'eligiblePopulationExclusion',
            'qualityCodes': [{
                'code': 'pd_exl_code'
            }]
        }),
        PerformanceOption({
            'optionType': 'eligiblePopulationException',
            'qualityCodes': [{
                'code': 'pd_exe_code'
            }]
        })
    ]

    eligibility_options = [
        EligibilityOption(
            {'procedureCodes': [MeasureCode({'code': 'enc_code'})]}),
        EligibilityOption(
            {'procedureCodes': [MeasureCode({'code': 'other_enc_code'})]})
    ]

    measure = PatientProcessMeasure(measure_definition=MeasureDefinition(
        {
            'eligibility_options': eligibility_options,
            'performance_options': performance_options
        }))

    best_line = claim_line.ClaimLine({'clm_line_hcpcs_cd': 'pn_code'})
    second_best_line = claim_line.ClaimLine(
        {'clm_line_hcpcs_cd': 'pd_exl_code'})
    worst_claim_line = claim_line.ClaimLine({'clm_line_hcpcs_cd': 'pn_x_code'})
    enc_line = claim_line.ClaimLine({'clm_line_hcpcs_cd': 'enc_code'})
    exception_line = claim_line.ClaimLine({'clm_line_hcpcs_cd': 'pd_exe_code'})
    other_enc_line = claim_line.ClaimLine(
        {'clm_line_hcpcs_cd': 'other_enc_code'})

    claim_best_a = claim.Claim({
        'bene_sk': 'a',
        'claim_lines': [second_best_line, enc_line]
    })
    claim_worst_a = claim.Claim({
        'bene_sk': 'a',
        'claim_lines': [worst_claim_line, enc_line]
    })
    claim_best_b = claim.Claim({
        'bene_sk': 'b',
        'claim_lines': [worst_claim_line, enc_line]
    })
    claim_best_c = claim.Claim({
        'bene_sk': 'c',
        'claim_lines': [best_line, enc_line]
    })
    claim_worst_c = claim.Claim({
        'bene_sk': 'c',
        'claim_lines': [second_best_line, enc_line]
    })
    claim_best_d = claim.Claim({
        'bene_sk': 'd',
        'claim_lines': [exception_line, enc_line]
    })
    claim_irrelevant_e = claim.Claim({
        'bene_sk': 'e',
        'claim_lines': [best_line]
    })
    claim_best_f = claim.Claim({
        'bene_sk': 'f',
        'claim_lines': [best_line, other_enc_line]
    })

    claims = [
        claim_best_a, claim_worst_a, claim_best_b, claim_best_c, claim_worst_c,
        claim_best_d, claim_irrelevant_e, claim_best_f
    ]

    output = measure.execute(claims)

    expected = {
        'eligible_population_exclusion': 1,
        'eligible_population_exception': 1,
        'performance_met': 2,
        'performance_not_met': 1,
        'eligible_population': 5
    }

    assert output == expected