medicaid_utils.adapted_algorithms.py_low_value_care package

Submodules

medicaid_utils.adapted_algorithms.py_low_value_care.low_value_care module

This module generates low value care measures as in Charlesworth CJ, Meath THA, Schwartz AL, McConnell KJ. Low-value care in Medicaid and commercially insured populations: a comprehensive single-state analysis. JAMA Intern Med. Published online May 31, 2016. doi:10.1001/jamainternmed.2016.2086.

class medicaid_utils.adapted_algorithms.py_low_value_care.low_value_care.LowValueCare[source]

Bases: object

This class packages functions to create indicator variables for low value care services

classmethod construct_low_value_care_measures(pdf_dates: DataFrame, year: int, dct_msr_spec: dict, dct_denom_spec: dict) DataFrame[source]

Constructs low value care measures

Parameters:
  • pdf_dates (pd.DataFrame) – Dataframe with condition/ measure date lists and eligibility info

  • year (int) – Year

  • dct_msr_spec – Measure spec dictionary

  • dct_denom_spec – Denomination spec dictionary

Return type:

pd.DataFrame

Examples

>>> # Requires date lists and eligibility DataFrames with proper structure
>>> pdf = LowValueCare.construct_low_value_care_measures(
...     pdf_dates, 2012, dct_msr_spec, dct_denom_spec)
data_folder = '/home/runner/work/medicaid-utils/medicaid-utils/medicaid_utils/adapted_algorithms/py_low_value_care/data'
filename = 'low_value_care.py'
classmethod generate_condn_and_eligibility_indicators(state: str, year: int, pdf_denom_spec: DataFrame, pdf_measure_spec: DataFrame, max_data_root: str, lst_bene_id_filter: List[str], out_folder: str, index_col: str = 'BENE_MSIS') None[source]

Creates condition & eligibility pattern indicators, and saves them as parquet files

Parameters:
  • state (str) – State

  • year (int) – Year

  • pdf_denom_spec (pd.DataFrame) – Denomination spec dataframe

  • pdf_measure_spec (pd.DataFrame) – Measure spec dataframe

  • max_data_root (str) – Max files folder

  • lst_bene_id_filter (List[str]) – List of bene ids to filter to

  • out_folder (str) – Folder where temporary files can be saved

  • index_col (str) – Index column name

Examples

>>> # Requires Medicaid MAX data files on disk
>>> LowValueCare.generate_condn_and_eligibility_indicators(
...     'AL', 2012, pdf_denom_spec, pdf_measure_spec,
...     '/data/max', [], '/output')
classmethod get_dates(state: str, year: int, lst_condn: List[str], index_col: str, claims_folder: str) DataFrame[source]

Aggregates dates at bene level for each denom/ measure condition. Three versions of date lists are returned based on the claim type the condition was present: ip, ed, ot, and all

Parameters:
  • state (str) – State

  • year (int) – Year

  • lst_condn (list of str) – List of conditions

  • index_col (str) – Index column name

  • claims_folder (str) – Folder where claim files with condition flags are present

Returns:

pdf_dates – Dataframe with denom/ measure condition date lists at bene level

Return type:

pd.DataFrame

Examples

>>> # Requires parquet claim files with condition flags
>>> pdf = LowValueCare.get_dates(
...     'AL', 2012, ['msr_sinusitis'], 'BENE_MSIS', '/output')
classmethod get_dates_with_eligibility(state: str, year: int, lst_condn: List[str], index_col: str, claims_folder: str) DataFrame[source]

Returns eligibility info and dates for all conditions at bene level

Parameters:
  • state (str) – State

  • year (int) – Year

  • lst_condn (List[str]) – List of conditions

  • index_col (str) – Index column name

  • claims_folder (str) – Location of claims folder that contains flags for conditions

Return type:

pd.DataFrame

Examples

>>> # Requires parquet claim files with condition flags and PS files
>>> pdf = LowValueCare.get_dates_with_eligibility(
...     'AL', 2012, ['msr_sinusitis'], 'BENE_MSIS', '/output')
classmethod get_denom_measure_spec() Tuple[dict, dict, List[str], DataFrame, DataFrame][source]

Returns denom measure specs

Returns:

  • dct_measures (dict) – Measures dictionary

  • dct_denom (dict) – Denominator dictionary

  • lst_condn (list of str) – List of conditions

  • pdf_denom_spec_codes (pd.DataFrame) – Denominator spec codes dataframe

  • pdf_measure_spec_codes (pd.DataFrame) – Measure spec codes dataframe

Examples

>>> # Requires the bundled low_value_care.xlsx data file
>>> dct_msr, dct_denom, lst, pdf_d, pdf_m = (
...     LowValueCare.get_denom_measure_spec())
classmethod get_diag_proc_codes(pdf_denom_spec: DataFrame, pdf_measure_spec: DataFrame) Tuple[dict, dict][source]

Returns dictionaries of diagnosis & procedure codes

Parameters:
  • pdf_denom_spec (pd.DataFrame) – Denom spec dataframe

  • pdf_measure_spec (pd.DataFrame) – Measure spec dataframe

Returns:

  • dct_diag_codes (dict) – Dictionary of diagnostic codes

  • dct_proc_codes (dict) – Dictionary of procedure codes

Examples

>>> # Requires denom and measure spec DataFrames
>>> dct_diag, dct_proc = LowValueCare.get_diag_proc_codes(
...     pdf_denom_spec, pdf_measure_spec)
classmethod get_diag_proc_specs(pdf_spec: DataFrame, prefix: str) Tuple[dict, dict, dict, dict][source]

Returns DX & procedure code specs as dictionary

Parameters:
  • pdf_spec (pd.DataFrame) – Diagnostic/ procedure code specifications dataframe

  • prefix ({'denom', 'msr'}) – Prefix to denote condition type

Returns:

  • dct_diag_codes (dict) – Diagnosis codes dictionary

  • dct_excl_diag_codes (dict) – Excluded Diagnosis codes dictionary

  • dct_proc_codes (dict) – Procedure codes dictionary

  • dct_excl_proc_codes (dict) – Excluded procedure codes dictionary

Examples

>>> # Requires a properly formatted spec DataFrame
>>> dct_diag, dct_excl_diag, dct_proc, dct_excl_proc = (
...     LowValueCare.get_diag_proc_specs(pdf_spec, 'denom'))
classmethod normalize_condition_names(pdf_spec: DataFrame) DataFrame[source]

Normalizers condition names so they can be used as column names

Parameters:

pdf_spec (pd.DataFrame) – Diagnostic/ procedure code specifications dataframe

Returns:

Dataframe with conditions names normalized

Return type:

pd.DataFrame

Examples

>>> import pandas as pd
>>> pdf = pd.DataFrame({
...     'description': ['Heart Failure (Acute)'],
...     'measure': ['HF Test']
... })
>>> result = LowValueCare.normalize_condition_names(pdf)
>>> result['description'].iloc[0]
'heart_failure_acute_'
package_folder = '/home/runner/work/medicaid-utils/medicaid-utils/medicaid_utils/adapted_algorithms/py_low_value_care'
medicaid_utils.adapted_algorithms.py_low_value_care.low_value_care.construct_low_value_care_measures(state: str, year: int, lst_bene_msis_filter: List[str], index_col: str, max_data_root: str, out_folder: str) DataFrame[source]

Constructs low value care measures for the given year and state

Parameters:
  • state (str) – State

  • year (str) – Year

  • lst_bene_msis_filter (List[str]) – Bene id filder

  • index_col (str) – Index column name

  • max_data_root (str) – Location of claims files

  • out_folder (str) – Location where temporary files will be saved

Returns:

pdf_dates – Dataframe with low value care measures

Return type:

pd.DataFrame

Examples

>>> # Requires actual Medicaid MAX claim files and bundled spec data
>>> construct_low_value_care_measures(
...     'AL', 2012, [], 'BENE_MSIS', '/data/max', '/output')