Merged in bugfix/unit_of_measure (pull request #626)

Bugfix/unit of measure

* updated trigger_cap definition

* updated trigger_cap definition_new

* updated triggerbase threshold prompt

* updated Trigger Cap Def

* Merge branch 'main' into bugfix/special_case_fixes

* Merge branch 'main' into bugfix/special_case_fixes

* prompt changes

* Merge branch 'main' into bugfix/unit_of_measure

* post processing and prompts updated

* print statements removed

* print statements removed

* prompt updated


Approved-by: Katon Minhas
This commit is contained in:
Mayank Aamseek
2025-07-21 17:42:02 +00:00
committed by Katon Minhas
parent 1c30c12672
commit 3f3e1b1c7a
4 changed files with 6 additions and 6 deletions
@@ -115,6 +115,7 @@ VALID_UNIT_OF_MEASURE = [
"Per Training Session",
"Per Visit",
"Per Case",
"Per Procedure",
]
VALID_CARVEOUTS = {
@@ -397,9 +397,8 @@ def standardize_reimb_method_and_fee_schedule(df: pd.DataFrame) -> pd.DataFrame:
# remove cases of Per Member Per Month (PMPM)
df = df[~df['UNIT_OF_MEASURE'].isin(['Per Member Per Month (PMPM)'])]
# delete values of UNIT_OF_MEASURE that are not in testbed yet. (temporary)
df['UNIT_OF_MEASURE'] = df['UNIT_OF_MEASURE'].replace(['Per Month', 'Per Visit', 'Per Case'
, 'Per Service', 'Per Procedure'], '')
# Ensure UNIT_OF_MEASURE is one of the valid values
df['UNIT_OF_MEASURE'] = df['UNIT_OF_MEASURE'].apply(lambda x: x if x in investment_values.VALID_UNIT_OF_MEASURE else "")
return df
@@ -45,14 +45,14 @@
"field_name": "AARETE_DERIVED_REIMB_METHOD",
"relationship": "one_to_n",
"field_type": "methodology_breakout",
"prompt": "What is the method of reimbursement? Choose only from the following valid values: {valid_values}.\nFollow these mapping rules:\n- If any of Medicare, Medicaid, Average Sales Price (ASP), AWP (Average Wholesale Price), WAC (Wholesale Acquisition Cost), RBRVS (Resource-Based Relative Value Scale) or RVU (Relative Value Unit) or any type of Fee Schedule is mentioned, return 'Fee Schedule'\n- In case of MS-DRG, AP-DRG, APR-DRG, APG, EAPG, APC/ OPPS or ASC, return 'Grouper'.\n- In case of Percent of Charge or Percentage of Billed, return 'Billed Charges'.\n- When reimbursement is defined on a per-day basis, the applicable method is Per Diem.\n- For mixed methodologies (e.g., 'cost plus 5% based on AWP'), prioritize the base method (AWP)\n- answer 'DOFR' only when this exact term i.e. 'DOFR' is present.\n- answer 'Medicare Member Cost Share' only when this exact phrase appears.\n\nImportant exceptions and additional rules:\n- Reimbursements with specific dollar values cannot be 'Fee Schedule'\n- Provider interest rates are not considered 'Flat Rate'. \n- ASA is not a reimbursement method and not a fee schedule. \n If no specific rule is matched, map to the most appropriate value from the given valid values.",
"prompt": "What is the method of reimbursement? Choose only from the following valid values: {valid_values}.\nFollow these mapping rules:\n- If any of Medicare, Medicaid, Average Sales Price (ASP), AWP (Average Wholesale Price), WAC (Wholesale Acquisition Cost), RBRVS (Resource-Based Relative Value Scale), RVU (Relative Value Unit) or ASA (American Society of Anesthesiology) or any type of Fee Schedule is mentioned, return 'Fee Schedule'\n- In case of MS-DRG, AP-DRG, APR-DRG, APG, EAPG, APC/ OPPS or ASC, return 'Grouper'.\n- In case of Percent of Charge or Percentage of Billed, return 'Billed Charges'.\n- When reimbursement is defined on a per-day basis, the applicable method is Per Diem.\n- For mixed methodologies (e.g., 'cost plus 5% based on AWP'), prioritize the base method (AWP)\n- answer 'DOFR' only when this exact term i.e. 'DOFR' is present.\n- answer 'Medicare Member Cost Share' only when this exact phrase appears.\n\nImportant exceptions and additional rules:\n- Reimbursements with specific dollar values cannot be 'Fee Schedule'\n- Provider interest rates are not considered 'Flat Rate'. \n If no specific rule is matched, map to the most appropriate value from the given valid values.",
"valid_values": "VALID_REIMB_TERM_FULL"
},
{
"field_name": "UNIT_OF_MEASURE",
"relationship": "one_to_n",
"field_type": "methodology_breakout",
"prompt": "If the reimbursement rate is a flat rate, what is its unit of measure? Valid values are: {valid_values}. If the unit of measure is not explicitly mentioned or is not included in the list of provided valid values, return 'N/A'. If the reimbursement rate is not a flat rate, return 'N/A'.",
"prompt": "If the reimbursement method is a flat rate or follows certain fee schedules (e.g., ASA), extract the unit of measure. Otherwise, return 'N/A'. If the unit of measure is not explicitly mentioned, return 'N/A'. If a unit of measure is explicitly mentioned but not included in the list of provided valid values, return 'per unit'. Valid values are: {valid_values}",
"valid_values": "VALID_UNIT_OF_MEASURE"
},
{
@@ -610,7 +610,7 @@ For any fields that don't apply to a particular methodology, use "N/A" as the va
- If the methodology includes two reimbursement methodologies that are comparative or equal, such as "70% of Billed Charges equal to Provider's Acquisition Cost plus five percent (5%)", each should be represented as a separate dictionary in the output list.
- For each dictionary, only one of the following fields should be present: REIMB_FEE_RATE, REIMB_PCT_RATE, or REIMB_CONVERSION_FACTOR. The others should be "N/A".
In the case of 'RBRVS', 'RVU', or 'ASA', any dollar amount mentioned refers to a conversion factor (even if not explicitly labeled as such), and not to a flat fee rate. In such cases, the output should have 'REIMB_CONVERSION_FACTOR' field populated with the dollar amount, and 'REIMB_FEE_RATE' field should be blank.
In the case of 'RBRVS', 'RVU', or American Society of Anesthesiology ('ASA'), any dollar amount mentioned refers to a conversion factor (even if it is not explicitly labeled as such), and not to a flat fee rate. In such cases, the output should have 'REIMB_CONVERSION_FACTOR' field populated with the dollar amount, and 'REIMB_FEE_RATE' field should be blank.
[C: ANALYSIS CONTEXT]
Here is the text to analyze and respond to: