medicaid_utils.adapted_algorithms.py_elixhauser package

Submodules

medicaid_utils.adapted_algorithms.py_elixhauser.elixhauser_comorbidity module

This a python package for computing Elixhauser comorbidity score

class medicaid_utils.adapted_algorithms.py_elixhauser.elixhauser_comorbidity.ElixhauserScoring[source]

Bases: object

classmethod calculate_final_score(df: DataFrame, output_column_name: str = 'elixhauser_score') DataFrame[source]

Calculate the final Elixhauser comorbidity score.

Sums the 31 ELX_GRP binary columns into a single integer score.

Parameters:
  • df (dask.DataFrame) – DataFrame with ELX_GRP_1 through ELX_GRP_31 columns.

  • output_column_name (str, default='elixhauser_score') – Name for the output score column.

Returns:

DataFrame with the score column appended.

Return type:

dask.DataFrame

Examples

>>> # Requires a dask DataFrame with ELX_GRP columns
>>> df = ElixhauserScoring.calculate_final_score(df)
data_folder = '/home/runner/work/medicaid-utils/medicaid-utils/medicaid_utils/adapted_algorithms/py_elixhauser/data'
filename = 'elixhauser_comorbidity.py'
classmethod flag_comorbidities(df: DataFrame, lst_diag_col_name: str, cms_format: str = 'MAX') DataFrame[source]

Flag Elixhauser comorbidity groups based on diagnosis codes.

Adds 31 binary columns (ELX_GRP_1 through ELX_GRP_31) indicating the presence of each Elixhauser comorbidity group.

Parameters:
  • df (dask.DataFrame) – Bene-level DataFrame with a diagnosis code list column.

  • lst_diag_col_name (str) – Column name containing comma-separated diagnosis codes.

  • cms_format ({'MAX', 'TAF'}, default='MAX') – CMS file format, determines ICD-9 vs ICD-10 mapping.

Returns:

DataFrame with ELX_GRP columns appended.

Return type:

dask.DataFrame

Examples

>>> # Requires a dask DataFrame with diagnosis codes
>>> df = ElixhauserScoring.flag_comorbidities(
...     df, 'LST_DIAG_CD', cms_format='MAX')
package_folder = '/home/runner/work/medicaid-utils/medicaid-utils/medicaid_utils/adapted_algorithms/py_elixhauser'
medicaid_utils.adapted_algorithms.py_elixhauser.elixhauser_comorbidity.score(df: DataFrame, lst_diag_col_name: str, cms_format: str = 'MAX', output_column_name: str = 'elixhauser_score') DataFrame[source]

Computes Elixhauser score for the benes in the input dataframe. The input dataframe should be at bene level, with a column containing each bene’s comma separated list of diagnosis codes from the observed period.

Parameters:
  • df (dask.DataFrame) – Bene level dataframe

  • lst_diag_col_name (str) – Column name containing the list of diagnosis codes

  • cms_format ({'MAX', 'TAF'}) – CMS file format.

  • output_column_name (str, default='elixhauser_score') – Output column name. Defaults to elixhauser score

Return type:

dask.DataFrame

Examples

>>> # Requires a bene-level dask DataFrame with diagnosis codes
>>> df = score(df, 'LST_DIAG_CD', cms_format='MAX')