outcomesinsights / generalized_data_model

Outcomes Insights' Data Model for Clinical Research
MIT License
16 stars 3 forks source link

add er_payment for MEDPAR files? #117

Open markdanese opened 5 years ago

markdanese commented 5 years ago

It is useful for finding ED visits. Should this be added to the cost table? Or should we include this elsewhere. It seems very specific to the Medicare MEDPAR file.

Background: We are creating ER visit algorithms using Venkatesh 2017 and need to include the ResDac definition of finding ER visits. ResDac suggests checking the medpar file for emergency room charge > $0. Medpar does not give revenue codes to users and use variables that roll up charge amounts based on revenue codes values. For ER payments (variable ER_AMT), Medpar rolls up the charge amounts for revenue codes 045x (specifying emergency room charges). Currently GDM does not store this variable. It does currently store revenue codes in the clinical_codes table. We need to store this variable to complete ResDac's ER visit algorithm.

needed for ticket https://github.com/outcomesinsights/conceptql/issues/196.

markdanese commented 5 years ago

https://www.resdac.org/cms-data/variables/medpar-emergency-room-charge-amount

jenniferduryea commented 5 years ago

Options @markdanese and I discussed:

  1. For rolled up medpar variables with charge amounts, we can add a revenue code to the clinical_codes table for that collection_id
    1. Add "045x" as a revenue code in clinical_codes table. That is a custom revenue code Outins can use to specify a rolled up revenue code category. Should we assign it to the Revenue Code vocabulary? Or create a new Revenue Code vocabulary for Outins (i.e. Revenue Code Extension)?
    2. Add "0450" for "general" charges associated with emergency room use (definition here: https://med.noridianmedicare.com/web/jea/topics/claim-submission/revenue-codes). Create an extra column in the clinical_codes table to indicate if a code is imputed.
  2. Add ER_AMT (medpar rolled up value) as a cost.value_type_concept_id and add the value in the cost table (cost.value). We would need to figure out how to query this field in conceptql to chieck if the field exists and then return that record.

Tagging @markdanese @marc-outins @aguynamedryan for discussion.

jenniferduryea commented 5 years ago

There is a third option to consider, formulated after talking to @marc-outins ;

  1. Use the contexts.care_site_type_concept_id field. Currently, this field is not used for anything. We would have to create an Outins vocabulary for it. A context_id will be created for any ER_AMT > $0 in medpar and set contexts.care_site_type_concept_id field = 'emergency room'. We would also need to set the contexts.care_site_type_concept_id field = 'inpatient' for the original medpar record. Then we can use a new operator to find contexts.care_site_type_concept_id field of 'emergency room' and 'inpatient' with the same collection_id.

To implement this, we need an operator that is similar to co-reported but checks for the same collection_id.

Consequences to implementing this:

markdanese commented 5 years ago

I like the idea of using 0450 and adding a "comment" column to the clinical code table. We would record a comment to the effect that we used 0450 because the specific code was not provided.

I suspect that there will be other cases where the ETL will need to provide a value that wasn't provided with sufficient detail. It might be nice to be able to store the comment about it with the data, and even output it into the analysis data set. We could even print out all of the unique comments as part of the ETL process for the data.

Again, we can discuss, but I think the logic of the ER algorithm makes it more reusable if we use the actual revenue code.