623799f2a6a39c3c54371516b83ec7342d86188f
1636 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
623799f2a6 |
Merged in stg (pull request #1003)
Merged in dev (pull request #1001) * Merged in feature/fixPlaceholder2 (pull request #979) Updated feature> dev gate to print variables of echo statements * Updated feature> dev gate to print variables of echo statement * Reverted placeholder changes Approved-by: Sujit Deokar * Merged in bugfix/prov_info_json_fixes (pull request #981) fix: fall back to PROVIDER_NAME in PROV_INFO_JSON when no TIN/NPI extracted * fix: fall back to PROVIDER_NAME in PROV_INFO_JSON when no TIN/NPI extracted When get_prov_info_json short-circuits due to no TIN/NPI regex matches, PROV_INFO_JSON was left as [] even when PROVIDER_NAME was successfully extracted via the one-to-one pipeline. This caused inconsistent output across contracts with the same provider — some files produced a NAME-only entry (via a false-positive regex hit triggering the LLM), others produced []. Reconcile at add_group_and_other, the first point where both extraction streams' results are available. When PROV_INFO_JSON is empty but PROVIDER_NAME is known, synthesize a NAME-only entry with IS_GROUP:"Y" and populate PROV_GROUP_NAME_FULL directly — skipping the provider_name_match_check LLM call since the match is tautological by construction. Adds 5 unit tests covering the str, list, already-populated, empty-name, and all-empty-lis… * Merged in feature/DAIP2-pacificsource-reimbursements-issues (pull request #982) Feature/DAIP2 pacificsource reimbursements issues * Tighten PREMIUM_TERM and DISCOUNT_TERM classifier prompts CARVEOUT_CHECK was misrouting table rate rows into special-case fields, dropping them from the reimbursement output: - "110% of CMS allowed" (base fee-schedule rates) was being classified as PREMIUM_TERM because the prompt treated "above 100% of reference" as an implicit premium. Seen on PacificSource Medicare_Attachment_A1 and A2 Facility contracts where Inpatient/Outpatient rows were missing (2556) or silently fell back to 100% fee-schedule (2557). - Per-service discount rates like "Progressive Lenses: 15% discount", "Contact Lenses: 2% discount", "Frame: 20% discount" were being classified as DISCOUNT_TERM because the prompt only required the word "discount" to appear. Seen on PacificSource Commercial_Attachment_A2 and A5 Professional contracts (2558, 2559). Prompts now require the literal keyword … * Merged in bugfix/filter-docusign-lines (pull request #983) remove docusign lines * remove docusign lines * add unit tests for clean_header_footer docusign/deleted_lines changes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * black forrmatting Approved-by: Katon Minhas * Merged in feature/PC_logic_cleanup_output (pull request #984) Feature/PC logic cleanup output * Few tweaks PC_logics * Fixed orphan_ranking * black formatting * Changes on output field and ranking method * updated few hotfixes * black format fix Approved-by: Katon Minhas * Merged in hotfix/provider_name_group_fix (pull request #988) Hotfix/provider name group fix * Fixes done in GROUP column * black format fix Approved-by: Katon Minhas * Merged in bugfix/DAIP2-2524-carveout-code-optimization (pull request #980) CARVEOUT_CD issue fixed * CARVEOUT_CD issue fixed * pipeline error fixed * Merged dev into bugfix/DAIP2-2524-carveout-code-optimization * Merged dev into bugfix/DAIP2-2524-carveout-code-optimization * Merged dev into bugfix/DAIP2-2524-carveout-code-optimization * trigger cap issue fixed * trigger cap prompt updated * Merged dev into bugfix/DAIP2-2524-carveout-code-optimization Approved-by: Katon Minhas * Merged in bugfix/exhibit-smart-chunking-cost-improvements (pull request #985) Bugfix/exhibit smart chunking cost improvements * Add opt-in instrumentation for per-call token and row-count tracing Introduce src/utils/instrumentation.py (thread-safe CSV logger) and src/utils/instrumentation_context.py (ContextVar scope plus submit_with_context / map_with_context helpers for propagating context into ThreadPoolExecutor workers). Emit events at every Bedrock call in llm_utils.invoke_claude, including in-memory claude_cache hits, with full input/output/cache-read/cache-write token breakdown. Emit row-count events at each row-mutating stage in the one-to-N pipeline (clean_reimbursement_primary, filter_services_without_reimbursements, methodology_breakout, split_service_terms, carveout, dynamic_code_assignment, lesser_of_distribution, dynamic_assignment) and chunking / retrieval events in exhibit smart chunking (chunking_done, retrieval_done) plus exhibit lifecycle events (exhibit_start, exhibit_gate_skip, stage_… * Merged in hotfix/fileextension_issue (pull request #989) Hotfix/fileextension issue * fixed strip_ext issue * black format Approved-by: Katon Minhas * Merged in hotfix/exhibit-header-in-tables (pull request #987) Hotfix/exhibit header in tables * Merged in feature/FixplaceholderIssue (pull request #977) Remove curly braces from echo statements in dev->stg * Remove curly brances from echo statements in dev->stg * Removed curly braces in echo statements in feature-> dev gate Approved-by: Sujit Deokar * Merged in feature/standardized-services (pull request #958) Feature/standardized services * service term standardization * prompt update * prompt updates for standardization * only service standardization * new file * add supporting files and test scripts for standardization work Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove old files * Merge remote-tracking branch 'origin/dev' into feature/standardized-services * final fixes * Merged dev into feature/standardized-services * additional features * removed unwanted files * remove unwanted files * Merge branch 'dev' into feature/standardized-services * Merge remote-tr… * Merged in hotfix/postprocess_csv (pull request #990) Hotfix/postprocess csv * date issue_fix * black_format * Merged dev into hotfix/postprocess_csv Approved-by: Katon Minhas * Merged in bugfix/molina_ut_dynamic_primary (pull request #991) Bugfix/molina ut dynamic primary * Prompt changes for dynamic primary * Route cover-sheet-only files to ERRORS.csv instead of leaking phantom rows When every page of a contract was filtered out as a cover sheet / quick-review form, process_file silently returned a FILE_NAME-only DataFrame. Because the runner routes by checking for an "error" column, that file landed in RESULTS.csv as a near-empty row and no ERRORS.csv was generated for the run. - saas/file_processing.py: raise ValueError when text_dict is empty after cover-sheet filtering, so safe_process_file produces a proper error row. - runner.py: add _is_phantom_result defense-in-depth — promote any result with no extracted fields beyond FILE_NAME to error_results with error_type=PhantomSuccess. * Merged dev into bugfix/molina_ut_dynamic_primary * Tighten PRODUCT prompt: restrict to valid_values, prune LOB/PROGRAM examples * Merge branch 'bugfix/molina_ut_dynamic_primary' of bit… * Merged in bugfix/black-format (pull request #994) Black format for pipeline pass * Black format for pipeline pass * Merged in bugfix/DAIP2-2679-fix-nebraska-issues (pull request #995) incorrect inclusion of CPT4_PROC_CD fixed * incorrect inclusion of CPT4_PROC_CD fixed Approved-by: Katon Minhas * Merged in feature/DAIP2-2314-DAIP2-1687-hybrid (pull request #993) Feature/DAIP2-2314 DAIP2 1687 hybrid * remove -files from s3 prefix requirements * Resolve input paths * fix: VendorProcessor.process_file returns (df, None) tuple runner.safe_process_file unpacks the result as (cc_df, dashboard_df), so returning a single DataFrame caused every vendor/generic file to fail with "too many values to unpack (expected 2)" — Python iterates DataFrame columns during unpacking. Vendor pipelines have no dashboard variant; second slot is None and the existing `dashboard_result is not None` guard in runner.py already handles it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * DAIP2-2314 + DAIP2-1687: pad DYNAMIC_PRIMARY + DYNAMIC_PRIMARY_ENTITY_CLASSIFICATION over 1024-token cache floor - Pad DYNAMIC_PRIMARY_INSTRUCTION with three new sections: [SCOPE BOUNDARIES], [SOURCE TEXT INTERPRETATION], [REASONING DISCIPLINE], plus a [WORKED EXAMPLES] block. Estimated tokens: 447 -> 1117 (Sonnet 4.5 … * Merged in bugfix/postprocessing_date_fix (pull request #996) Date formatting changes * Date formatting changes * Merged dev into bugfix/postprocessing_date_fix Approved-by: Katon Minhas * Merged in bugfix/parent-child-rank-orphan-uniqueness (pull request #999) PC_logic bugfix * PC_logic bugfix Approved-by: Katon Minhas * Merged in feature/document-index (pull request #1005) Feature/document index * Add Document Index preprocessing — Layers 1, 2, and 3 wiring Parse the Textract-emitted Document Index block at the top of each contract with a single cached LLM call (prompt_document_index) instead of one per-page call per page. Layer 2 verifies parsed entries via literal string match and structural regex sweep, escalating suspect pages back to the existing per-page path. Layer 1+2 failure triggers a full fallback to today's per-page flow. New symbols: - preprocessing_funcs.extract_document_index_block — regex slice of index prefix - preprocessing_funcs.verify_index_against_pages — structural verifier (plain dict return) - prompt_templates.DOCUMENT_INDEX_INSTRUCTION / DOCUMENT_INDEX — cached prompt pair - prompt_calls.prompt_document_index — LLM wrapper (usage_label DOCUMENT_INDEX_PARSE) - config: DOCUMENT_INDEX_PARSE_ENABLED and three threshold flags - instrumentation: DOCUMENT_INDEX_PARSE mapped to preprocessing segment one… * Merged in feature/active-rates (pull request #1004) Feature/active rates * initial commit * Merged in feature/FixplaceholderIssue (pull request #977) Remove curly braces from echo statements in dev->stg * Remove curly brances from echo statements in dev->stg * Removed curly braces in echo statements in feature-> dev gate Approved-by: Sujit Deokar * Merged in feature/standardized-services (pull request #958) Feature/standardized services * service term standardization * prompt update * prompt updates for standardization * only service standardization * new file * add supporting files and test scripts for standardization work Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove old files * Merge remote-tracking branch 'origin/dev' into feature/standardized-services * final fixes * Merged dev into feature/standardized-services * additional features * removed unwanted files * remove unwanted files * Merge branch 'dev' into feature/standardized-services * Merge remote-track… * Merged in feature/one-to-one-confidence-scoring (pull request #1002) Feature/one to one confidence scoring * T1 plumbing: capture per-field confidence + retrieved-chunk metadata for 1:1 HSC fields Prep work for the 1:1 confidence-scoring stage. No scoring logic yet — this just collects the inputs the next ticket (rule-based scorer) will consume. - ONE_TO_ONE_SINGLE_FIELD_TEMPLATE: ask the LLM for confidence (0.0-1.0), verdict (correct/uncertain/not_found), and supporting_snippet alongside the field value. Existing field parser passes the extra keys through unchanged. - prompt_hsc_single_field: now returns a 4-tuple (name, value, field, metadata) where metadata holds the confidence/verdict/snippet plus a lightweight summary of which chunks the LLM saw (count + ids). _extract_hsc_metadata is defensive: clamps out-of-range confidences, defaults a missing/garbage verdict, caps the snippet at 500 chars, returns _empty_hsc_metadata() on every bail-out path. - run_hybrid_smart_chunked_fields: opt… * Merged in bugfix/confidence-flagged-missing-field-col (pull request #1006) Fix KeyError in compute_flagged when a *_CONF column has no value sibling * Fix KeyError in compute_flagged when a *_CONF column has no value sibling Production hit a hard crash at the end of every run: KeyError: "['DYNAMIC_PRIMARY_ENTITIES'] not in index" src/qc_qa/confidence/summary.py:143 compute_flagged was iterating over *_CONF columns and unconditionally indexing the dataframe with both the FILE_NAME column and the stripped value column. That assumed every <FIELD>_CONF column has a sibling <FIELD> value column in final_df. That isn't always true: dynamic-primary features carry only the _CONF side (their value side is dropped by reorder_columns since it isn't in FIELD_FORMAT_MAPPING but its _CONF suffix matches the explicit _CONF carve-out). When the model produced a below-threshold score for one of these and the value column was absent, pandas .loc raised KeyError and the runner crashed. Fix: - Build the .loc colu… * Merged in feature/active-rates (pull request #1007) Feature/active rates * amendment intent tag * prompt update * Merge remote-tracking branch 'origin/dev' into feature/active-rates * Merge remote-tracking branch 'origin/dev' into feature/active-rates * Merge branch 'dev' into feature/active-rates * exhibit standardization updates * use AARETE_DERIVED_EXHIBIT_TITLE for intent * active rates stuff * Merge branch 'dev' into feature/active-rates * prompt update * amendment intent types * active rates logic update * unit tests * Merged dev into feature/active-rates * logic updates * Merge remote-tracking branch 'origin/dev' into feature/active-rates * Merge remote-tracking branch 'origin/dev' into feature/active-rates * updated instrumentation cost logs * cost loging * caching updates * Merge remote-tracking branch 'origin/dev' into feature/active-rates * Merge remote-tracking branch 'origin/dev' into feature/active-rates * logging fix * null check issue fixes * caching fix Approved-by… * Merged in bugfix/stg-to-main-prep (pull request #1012) Bugfix/stg to main prep * Merged in dev (pull request #1001) Dev * Revert premature merge of bugfix/retire_stale_client_file_processing PR #959 was merged into dev without approval. This reverts commits |
||
|
|
0d00d581b1 |
Merged in DEV (pull request #913)
DEV * Apply formatting fix * Merged in DAIP2-1898-one-to-one-issues-filename-tin-auto-renewal-and-contract-title (pull request #888) DAIP2-1898 one to one issues filename tin auto renewal and contract title * contract title fixes * Add instruction to strip hyphens from TIN and NPI * prompt update * Merge branch 'bugfix/auto-renewal-term' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * removed print statements * pipeline error fixed * signed_ind logic changed * signatory_ind logic updated * prompt update * prompt update * pipeline error fixed * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * requested changes applied * test case added * prompt update * contract title prompt update * prompt update * Merge branch 'DEV' into DAIP2-1898-one-to-one-issues-filename-tin-auto-renewal-and-contract-title Approved-by: Siddhant Medar * Merged in feature/DAIP2-1803-add-aarete-derived-provider-name (pull request #884) Feature/DAIP2-1803 add aarete derived provider name * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * state logic added in clustering * removed print statements * pull request updates * black format fix * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * added scalability feature and optimization * black format * Pull Request Changes * generalised funcs from aarete derived payer name * updated remove states and updated docstring for build similarity matrix * derived payer name functionality added * config and main file changes * sync dev into ADD AARETE DERIVED PROVIDER GROUP NAME FULL * updated derived_provider name * pipeline fixes * Merged DEV into feature/DAIP2-1803-add-aarete-derived-provider-name * config changes * field name updated to AARETE_DERIVED_PROVIDER_NAME * Merged DEV into feature/DAIP2-1803-add-aarete-derived-provider-name * black format fix * Fix docstr… * Merged in improve-logging (pull request #886) Improve logging * Add timing blocks for comprehensive pipeline logging - Add timing_utils.timed_block() to key extraction functions in one_to_n_funcs.py: - exhibit_level sub-functions (prompt_exhibit_level, dynamic_primary, etc.) - reimbursement_level extraction and cleaning - breakout functions (methodology_breakout, special_case_breakout) - carveout_and_special_case parallel processing - one_to_n_cleaning sub-steps (crosswalk, lob_relationship, split_reimb_dates) - Add timing to dynamic_funcs.py: - dynamic_assignment parallel processing - Add timing to postprocess.py: - standard_postprocess, contract_config_postprocess, dashboard_postprocess - Add timing to preprocess.py: - exhibit_chunking sub-steps (get_exhibit_pages, link_exhibit_pages, chunk_by_exhibit) - Add info-level logging statements for completed operations with row/item counts * Standardize logging levels and remove deprecated code DAIP2-1798: Ensure logging statements are at … * Merged in bugfix/DAIP2-1913-lesser-of-indicator-issues (pull request #889) Bugfix/DAIP2-1913 lesser of indicator issues * contract title fixes * Add instruction to strip hyphens from TIN and NPI * prompt update * Merge branch 'bugfix/auto-renewal-term' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * removed print statements * pipeline error fixed * signed_ind logic changed * signatory_ind logic updated * prompt update * prompt update * pipeline error fixed * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * requested changes applied * test case added * prompt update * contract title prompt update * prompt update * Merge branch 'DEV' into DAIP2-1898-one-to-one-issues-filename-tin-auto-renewal-and-contract-title * handle nested cases of lesser_of and greater_of * Merge branch 'DEV' into bugfix/DAIP2-1913-lesser-of-indicator-issues * pi… * Merged in bugfix/reimb_primary (pull request #890) Update reimbursement prompts for consistent PMPM handling, time-unit dedup, and validation improvements * Update reimbursement prompts for consistent PMPM handling, time-unit dedup, and validation improvements - REIMBURSEMENT_PRIMARY: append unit of measure (PMPM, per visit, etc.) from table headers into REIMB_TERM - METHODOLOGY_BREAKOUT: collapse mathematically equivalent time-unit rates into single entry - VALIDATE_REIMBURSEMENTS: add umbrella terms as valid service terms, accept CPT/HCPCS percentage as concrete rate, narrow COB disqualifier to primary subject only Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Approved-by: Siddhant Medar * Merged in feature/update-postprocessing-columns (pull request #893) move column order to final step * move column order to final step * Black Approved-by: Siddhant Medar * Merged in bugfix/update-postprocessing-paths (pull request #896) Update postprocessing paths * Update postprocessing paths Approved-by: Siddhant Medar * Merged in feature/TIN_stats_update (pull request #898) Feature/TIN stats update * Tin_stats_report * black formatting * minor changes * black format applied * Addressed the katons comments * Merged DEV into feature/TIN_stats_update * black reformat Approved-by: Katon Minhas * Merged main into DEV * Merged in feature/exhibit-smart-chunking (pull request #883) Feature/exhibit smart chunking * exhibit processing per page * header dict deduplication * dedup prompt refinment * refinment for header extraction proecess * Merge remote-tracking branch 'origin/DEV' into feature/exhibit-smart-chunking * merge updates * minor fix * prompt fix for reimb type * COB defenition for clear understanding * black formatting * remove quit statement * pipiline test * pipeline test * black formatting * Merge remote-tracking branch 'origin/DEV' into feature/exhibit-smart-chunking * black formating * Merge remote-tracking branch 'origin/DEV' into feature/exhibit-smart-chunking * typo * PR comment fixes * exhibit funcs refactored * black formatting * Refactor exhibit chunking config into dedicated class Created ExhibitChunkingConfig class to centralize exhibit smart chunking configuration parameters (DEFAULT_SUBCHUNK_SIZE, MIN_PARENT_CHUNK_SIZE, CHUNK_RELEVANCE_THRESHOLD). This improves code organization … * Merged in bugfix/DAIP2-1870-dynamic-issues (pull request #892) Bugfix/DAIP2-1870 dynamic issues * updated list format appending * fill bill type from claim type cd * Fixed remaining format fixes * Merged DEV into bugfix/DAIP2-1870-dynamic-issues * changed crosswalk mapping from PRODUCT to AARETE_DERIVED_PRODUCT * Merged DEV into bugfix/DAIP2-1870-dynamic-issues * updating LOB field values as well from PRODUCT AND PROGRAM * updated apply crosswalk for reverse mapping * Merged DEV into bugfix/DAIP2-1870-dynamic-issues * added QHP and BHP * removed lob reverse mapping * Merged DEV into bugfix/DAIP2-1870-dynamic-issues * Remove Bill Type/Claim Type fill * Merged DEV into bugfix/DAIP2-1870-dynamic-issues * Black format * Merged DEV into bugfix/DAIP2-1870-dynamic-issues Approved-by: Katon Minhas * Merged in bugfix/prov_info_json_fixes (pull request #899) Bugfix/prov info json fixes * fix: robust PROV_INFO_JSON sanitization and TIN backfill logic json_utils: - Add sanitize_prov_info_json with layered parsing (JSON, literal_eval, empty-value-after-colon fix, best-effort dict extraction). - Add _normalize_prov_entries and _prov_value_to_str for uniform str-valued output; flatten list values, strip TIN hyphens. - format_prov_info_json now delegates to sanitize_prov_info_json. postprocessing_funcs: - Add fill_prov_info_tin_from_filename_tin for TIN backfill. - Add validate_and_reformat_date (pipe-wrapped, datetime strings). - Add format_as_json_list (pipe-delimited, comma-separated, quote stripping). postprocess: - Integrate new postprocessing helpers into pipeline flow. postprocess_existing_output: - Support CSV and Excel input, configurable paths, fillna for CSV. tests: - Add test_json_parsers.py for PROV_INFO_JSON parsing coverage. - Add test_postprocess.py for date/list formatting and defau… * Merged in bugfix/reimb_primary_issues (pull request #900) Bugfix/reimb primary issues * Update lesser of distribution prompt to preserve reimb term langauge * Added prompt change to extract correct service when there are multiple sub-rates; Updated validate reimb term to prevent filtering out erm with valid rate * Make reimb primary prompt change * Revert "Make reimb primary prompt change" This reverts commit 55f7d73b9cb523097c96ea50b6614c1db53b46d2. Approved-by: Katon Minhas * Merged in dtc_report (pull request #902) Dtc report * dtc_report_added * lint format fixed * Changed regex location call Approved-by: Katon Minhas * Merged in feature/historical-cost-analysis (pull request #901) Feature/historical cost analysis * Initial commit * Finalize cost_analysis * Black format * Merged DEV into feature/historical-cost-analysis * Refactor * Black * Merged DEV into feature/historical-cost-analysis Approved-by: Siddhant Medar * Merged in feature/ai-pr-review-agent (pull request #906) Add AI code review agent to pull request pipeline * Add AI code review agent to pull request pipeline Adds a pull-requests pipeline that runs CI checks (lint, type check, unit tests) followed by an AI code review step. The AI review uses OIDC to authenticate with AWS Bedrock - no hardcoded AWS keys. It clones the code-review-agent repo and posts a review comment on the PR. * Fix AI code review step: install git in python:3.12-slim image * Trigger pipeline * Trigger pipeline * Trigger pipeline * Trigger pipeline * Trigger pipeline * Trigger pipeline * Trigger pipeline * Remove debug token decode line * Update guide: all checklist items complete, agent working * Remove guide file from repo * Trigger pipeline Approved-by: Katon Minhas * Merged in DAIP2-1980-aarete-derived-effective-dt-issues (pull request #904) DAIP2-1980 aarete derived effective dt issues * fixed earlier of a and b * prompt update * prompt shortened * test changes reverted * Merge branch 'DEV' into DAIP2-1980-aarete-derived-effective-dt-issues * test changes reverted * Merged DEV into DAIP2-1980-aarete-derived-effective-dt-issues * Fix effective date prompt * Replace em-dashes with readable version Approved-by: Katon Minhas * Merged in feature/DAIP2-2023-eliminate-full-context-processing (pull request #905) Feature/DAIP2-2023 eliminate full context processing * testing full context fields * remove full context processing * merge Dev with DAIP2-2-23 * full context removal in client codes * AARETE_DERIVED_PROVIDER_NAME field changes * Merged DEV into feature/DAIP2-2023-eliminate-full-context-processing * optimized provider name * black format fix * contract title fixes * PAYER NAME AUTO RENEWAL IND fixes * Merged DEV into feature/DAIP2-2023-eliminate-full-context-processing * Merge branch 'DEV' into feature/DAIP2-2023-eliminate-full-context-processing * Remove prints Approved-by: Katon Minhas * Merged in feature/code_optimization (pull request #903) Feature/code optimization * Ran Black * made a small change in code_last_check, fixed so it returns string and not single char * Made changes to make sure that default_ind postprocess only happens to the cc output and not dashboard * Merge bugfix/default_ind_postprocess into feature/code_optimization - Parent-child: child_rank column init and cols_to_keep filter - Postprocess: default_ind only on cc output - code_last_check: parser str/list return handling + exception logging - Prompt: FIELD ASSIGNMENT for code extraction (no CRITICAL prefix) * More prompt changes and debugging print statements * Added system to group same service term + bill type cd + claim type cd and then parallelize the code extraction (will improve consistency) * Revert one-time PROV_INFO_JSON ad hoc logic; retain json_utils and output format - Remove temporary postprocess step that filled empty TIN in PROV_INFO_JSON from FILENAME_TIN (fill_prov_info_tin_from_filename_ti… * Merged in DAIP2-2121-prov-info-fields-issue-fixes (pull request #908) empty prov_info_json fixed * empty prov_info_json fixed * Merged DEV into DAIP2-2121-prov-info-fields-issue-fixes * format of PROV_OTHER_TIN fixed * Revert "format of PROV_OTHER_TIN fixed" This reverts commit 580847de03265520b1b4fad473bbf38ef1573753. * formatting and deduplication * pipeline error fixed * test cases added * pipeline error fixed Approved-by: Katon Minhas * Merged in feature/context-caching (pull request #909) Feature/context caching * Initial commit - context caching for DYNAMIC_PRIMARY * implement context caching for all relevant prompts * Remove option to not context cache * IndentationError fixed * Merge branch 'DEV' into feature/context-caching * Merge and format * Move documentation * Merged DEV into feature/context-caching * Update unit tests * Merged DEV into feature/context-caching * Update signatures * Fix test coverage gap Approved-by: Praneel Panchigar Approved-by: Karan Desai * Merged in bugfix/DAIP2-2138-reimbursement-primary-testing (pull request #910) Bugfix/DAIP2-2138 reimbursement primary testing * updated table instructions for reimb term extraction * updated split tables to include header rows * issue fix * Merged DEV into bugfix/DAIP2-2138-reimbursement-primary-testing * black format fix Approved-by: Katon Minhas * Merged in feature/doczy_reports (pull request #911) Feature/doczy reports * Added post_doczy_reports * black format fix * Merged DEV into feature/doczy_reports * fixed code review Approved-by: Katon Minhas * Merged in feature/median-cost-analysis (pull request #912) Add median * Add median Approved-by: Siddhant Medar Approved-by: Siddhant Medar |
||
|
|
8afe64f60f |
Merged in DEV (pull request #895)
DEV * Merged in bugfix/parser-downstream-improvements (pull request #875) Bugfix/parser downstream improvements * Refactor: Implement field-aware JSON parsers with centralized normalization This refactor introduces a robust system for normalizing LLM output based on field format mappings, ensuring consistent data types throughout the pipeline. Key Changes: - Add FIELD_FORMAT_MAPPING constant defining expected formats for all fields - Create format_normalization.py utility for type-aware normalization - Update json_utils.py parsers to accept field_names/field_name parameters - Refactor prompt_templates.py to use parser factories (_create_json_dict_parser, _create_json_list_parser) that bind field metadata for automatic normalization - Update prompt_calls.py to pass field names to parsers, eliminating redundant normalization logic - Remove parse_json_dict_or_list (unused, ambiguous function) - Simplify METHODOLOGY_BREAKOUT and REIMBURSEMENT_PRIMARY to use helper functions - Add comprehensive integration tests… * Update other lists * Black format * Remove prints * Update qa_qc to account for lists in is_empty check * Resolve issues * Black format * Merged main into DEV * Merged in feature/claim-type-only-runner (pull request #876) Feature/claim type only runner * Add specific_fields config for running extraction on field groups ## What Changed 4 files modified: 1. src/config.py - Added configuration for field-specific extraction: - SPECIFIC_FIELDS arg (default: 'all') - pass field group name or comma-separated field names - FIELD_GROUPS dict - predefined groups: claim_type, dates, provider - get_specific_fields_list() - resolves config to actual field list 2. src/prompts/fieldset.py - Added filter_by_names() method to FieldSet class to filter fields by a list of names 3. src/pipelines/shared/extraction/one_to_n_funcs.py - Updated exhibit_level() to accept specific_fields parameter and skip prompts for fields not in the list 4. src/pipelines/saas/file_processing.py - Passes specific_fields through the call chain to both one_to_n and one_to_one extraction ## How It Works When specific_fields is set to something other than 'all': 1. Config resolves the field l… * Merged in bugfix/generic_lesser_of (pull request #880) Bugfix/generic lesser of * Updated lesser of ditribution and lesser of check prompt * Remove excessive logging * Updated prompt for combining and formatting lesser of statement and reimb term * Code clean upt * Removed unneeded instruction on output format * style: format prompt_calls.py with black Approved-by: Katon Minhas * Merged in feature/new_output_format (pull request #879) Feature/new output format * bugfix * Merge branch 'DEV' into Optimize/DAIP2-1474-restructure-postprocess * requested postprocessing changes * prompt changes reverted * fix pipeline issues * fix pipeline issues * fix pipeline issues * fixed formatting * fixed formatting * Merge branch 'DEV' into Optimize/DAIP2-1474-restructure-postprocess * Merge branch 'DEV' into Optimize/DAIP2-1474-restructure-postprocess * save dashboard and cc output separately * save dashboard output in s3 * pipeline error fixed * json list through postprocessing * Merged DEV into Optimize/DAIP2-1474-restructure-postprocess * Merge remote-tracking branch 'origin/Optimize/DAIP2-1474-restructure-postprocess' into feature/new_output_format * Restructure output file organization and add standard field sanitization Output Structure Changes: - Reorganize output files into hierarchical directory structure: - full_outputs/cc_results/ for consolidated CC results - full… * Merged in bugfix/dynamic_issues_feb12 (pull request #882) Bugfix/dynamic issues feb12 * prompt changes reverted * fix pipeline issues * fix pipeline issues * fix pipeline issues * fixed formatting * fixed formatting * Merge branch 'DEV' into Optimize/DAIP2-1474-restructure-postprocess * Merge branch 'DEV' into Optimize/DAIP2-1474-restructure-postprocess * save dashboard and cc output separately * save dashboard output in s3 * pipeline error fixed * json list through postprocessing * Merged DEV into Optimize/DAIP2-1474-restructure-postprocess * Merge remote-tracking branch 'origin/Optimize/DAIP2-1474-restructure-postprocess' into feature/new_output_format * Restructure output file organization and add standard field sanitization Output Structure Changes: - Reorganize output files into hierarchical directory structure: - full_outputs/cc_results/ for consolidated CC results - full_outputs/dashboard_results/ for consolidated dashboard results - full_outputs/ for error files - automation_q… * Merged in feature/DAIP2-1562-add-aarete_derived_payer_name (pull request #867) Feature/DAIP2-1562 add aarete derived payer name * black format * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * llm_choose_derived_payer_name function added * threshold updated * Merge branch 'DEV' into feature/DAIP2-1562-add-aarete_derived_payer_name * aarete_derived_payer_name column added * prompt structure updated * state_flag added * pipeline error fixed * pipeline error fixed * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * remove debug print statement for similarity matrix in clustering function * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * state logic added in clustering * removed print statements * pull request updates * black format fix * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * added scalability feature and optimization * black format * Pull Request Changes * updated config parameters * updated main * no pay… * Merged in bugfix/DAIP2-1701-issue-tracker-fixes-methodology-breakout (pull request #885) Bugfix/DAIP2-1701 issue tracker fixes methodology breakout * testing fee schedules issues * logging debug added for lesser of * Merged DEV into bugfix/DAIP2-1701-issue-tracker-fixes-methodology-breakout * special case term fix * updated lesser of distribution prompt * Merged DEV into bugfix/DAIP2-1701-issue-tracker-fixes-methodology-breakout * refactor: use f-string for special case term concatenation Approved-by: Siddhant Medar * Merged in bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info (pull request #881) bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * contract title fixes * Add instruction to strip hyphens from TIN and NPI * prompt update * Merge branch 'bugfix/auto-renewal-term' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * removed print statements * pipeline error fixed * signed_ind logic changed * signatory_ind logic updated * prompt update * prompt update * pipeline error fixed * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * requested changes applied * test case added * prompt update * contract title prompt update * latest prompt added Approved-by: Siddhant Medar * Merged in bugfix/default_ind_postprocess (pull request #887) Bugfix/default ind postprocess * Add logic to standardize UNIT_OF_MEASURE for flat-rate reimbursement methods - Implemented functionality in `standardize_reimb_method_and_fee_schedule` to set UNIT_OF_MEASURE to blank for rows where DEFAULT_IND is 'Y' and AARETE_DERIVED_REIMB_METHOD is 'flat rate'. - Added unit tests to verify behavior for various scenarios, including case insensitivity and non-default conditions. - Ensured that UNIT_OF_MEASURE remains unchanged for non-flat rate methods. * Enhance child rank handling and ensure column consistency in parent-child mapping - Added initialization for the `child_rank` column in both parents and children DataFrames to prevent KeyError during concatenation when no children exist. - Updated `cols_to_keep` in `parent_child_mapping` to filter out columns not present in `pc_df`, ensuring robustness in data processing. * Ran Black * made a small change in code_last_check, fixed so it returns string and n… * Apply formatting fix * Merged in DAIP2-1898-one-to-one-issues-filename-tin-auto-renewal-and-contract-title (pull request #888) DAIP2-1898 one to one issues filename tin auto renewal and contract title * contract title fixes * Add instruction to strip hyphens from TIN and NPI * prompt update * Merge branch 'bugfix/auto-renewal-term' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * removed print statements * pipeline error fixed * signed_ind logic changed * signatory_ind logic updated * prompt update * prompt update * pipeline error fixed * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * requested changes applied * test case added * prompt update * contract title prompt update * prompt update * Merge branch 'DEV' into DAIP2-1898-one-to-one-issues-filename-tin-auto-renewal-and-contract-title Approved-by: Siddhant Medar * Merged in feature/DAIP2-1803-add-aarete-derived-provider-name (pull request #884) Feature/DAIP2-1803 add aarete derived provider name * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * state logic added in clustering * removed print statements * pull request updates * black format fix * Merged DEV into feature/DAIP2-1562-add-aarete_derived_payer_name * added scalability feature and optimization * black format * Pull Request Changes * generalised funcs from aarete derived payer name * updated remove states and updated docstring for build similarity matrix * derived payer name functionality added * config and main file changes * sync dev into ADD AARETE DERIVED PROVIDER GROUP NAME FULL * updated derived_provider name * pipeline fixes * Merged DEV into feature/DAIP2-1803-add-aarete-derived-provider-name * config changes * field name updated to AARETE_DERIVED_PROVIDER_NAME * Merged DEV into feature/DAIP2-1803-add-aarete-derived-provider-name * black format fix * Fix docstr… * Merged in improve-logging (pull request #886) Improve logging * Add timing blocks for comprehensive pipeline logging - Add timing_utils.timed_block() to key extraction functions in one_to_n_funcs.py: - exhibit_level sub-functions (prompt_exhibit_level, dynamic_primary, etc.) - reimbursement_level extraction and cleaning - breakout functions (methodology_breakout, special_case_breakout) - carveout_and_special_case parallel processing - one_to_n_cleaning sub-steps (crosswalk, lob_relationship, split_reimb_dates) - Add timing to dynamic_funcs.py: - dynamic_assignment parallel processing - Add timing to postprocess.py: - standard_postprocess, contract_config_postprocess, dashboard_postprocess - Add timing to preprocess.py: - exhibit_chunking sub-steps (get_exhibit_pages, link_exhibit_pages, chunk_by_exhibit) - Add info-level logging statements for completed operations with row/item counts * Standardize logging levels and remove deprecated code DAIP2-1798: Ensure logging statements are at … * Merged in bugfix/DAIP2-1913-lesser-of-indicator-issues (pull request #889) Bugfix/DAIP2-1913 lesser of indicator issues * contract title fixes * Add instruction to strip hyphens from TIN and NPI * prompt update * Merge branch 'bugfix/auto-renewal-term' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * removed print statements * pipeline error fixed * signed_ind logic changed * signatory_ind logic updated * prompt update * prompt update * pipeline error fixed * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * Merge branch 'DEV' into bugfix/DAIP2-1699-issue-tracker-fixes-one-to-one-dates-prov-info * requested changes applied * test case added * prompt update * contract title prompt update * prompt update * Merge branch 'DEV' into DAIP2-1898-one-to-one-issues-filename-tin-auto-renewal-and-contract-title * handle nested cases of lesser_of and greater_of * Merge branch 'DEV' into bugfix/DAIP2-1913-lesser-of-indicator-issues * pi… * Merged in bugfix/reimb_primary (pull request #890) Update reimbursement prompts for consistent PMPM handling, time-unit dedup, and validation improvements * Update reimbursement prompts for consistent PMPM handling, time-unit dedup, and validation improvements - REIMBURSEMENT_PRIMARY: append unit of measure (PMPM, per visit, etc.) from table headers into REIMB_TERM - METHODOLOGY_BREAKOUT: collapse mathematically equivalent time-unit rates into single entry - VALIDATE_REIMBURSEMENTS: add umbrella terms as valid service terms, accept CPT/HCPCS percentage as concrete rate, narrow COB disqualifier to primary subject only Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Approved-by: Siddhant Medar * Merged in feature/update-postprocessing-columns (pull request #893) move column order to final step * move column order to final step * Black Approved-by: Siddhant Medar * Merged in bugfix/update-postprocessing-paths (pull request #896) Update postprocessing paths * Update postprocessing paths Approved-by: Siddhant Medar * Merged in feature/TIN_stats_update (pull request #898) Feature/TIN stats update * Tin_stats_report * black formatting * minor changes * black format applied * Addressed the katons comments * Merged DEV into feature/TIN_stats_update * black reformat Approved-by: Katon Minhas |
||
|
|
deef52193c |
Merged in DEV (pull request #873)
DEV * file_processing * Merge branch 'bugfix/code_implicit' into DEV * Update split reimb dates condition * Pipe line general fixes, fixed tests, ran black, and fixed mypy type check issues, still have a list of lists issue with prov other name full * Merged in feature/update-claim-type (pull request #869) Feature/update claim type * Update CLAIM_TYPE_CD extraction to prioritize title/header - Modified retrieval_question to search for title, header, and agreement name - Updated prompt to check title/header first before analyzing body text - Enhanced FULL_CONTEXT_CLAIM_TYPES_ADDITIONAL_INSTRUCTION to emphasize title/header as primary source * Fix CLAIM_TYPE_CD extraction with 3-step fallback 1. Exhibit Level: Updated retrieval_question and prompt to prioritize title/header 2. Contract Title fallback: Added infer_claim_type_from_title() function that extracts claim type from CONTRACT_TITLE when exhibit-level extraction returns empty 3. Postprocessing: fill_claim_type() now uses CONTRACT_TITLE inference when all AARETE_DERIVED_CLAIM_TYPE_CD values are empty Keywords mapped: - Professional/Ancillary -> M (Physician, Professional, Ancillary, Home Health, DME, etc.) - Institutional -> H (Hospital, Facility, Surgery Center, SNF, etc.) * Add more prof… * Merged in bugfix/code-funcs (pull request #872) Bugfix/code funcs * Try-except code extraction * Additional try-except for protection * Black format Approved-by: Praneel Panchigar * Merged in feature/update-testbed-metrics (pull request #871) Feature/update testbed metrics * Combine fee schedule with methodology breakout; remove Reimbursement primary; do not run trigger cap or additions * Deprecate reimb primary functions * combine multiple sheets to one * Clean 1:N metrics * Improve dynamic primary evaluation * Resolve dynamic primary * Update row counts * black format * Merged DEV into feature/update-testbed-metrics Approved-by: Praneel Panchigar * Merged in feature/adding_contract_admenment_num_pc (pull request #870) Feature/adding contract admenment num pc * Updated contract amendment * Format code with Black * updated to have letters * format fixes * Adjusted unit testing * Merge remote-tracking branch 'origin/DEV' into feature/adding_contract_admenment_num_pc * apply formatting * format fixes * Merge remote-tracking branch 'origin/DEV' into feature/adding_contract_admenment_num_pc * test conflicts solved * Format code with Black * format fixes * reverted the changes for prompt templates * test_case reverted * Sorted effective date for ranking * format fix for lint * Merged DEV into feature/adding_contract_admenment_num_pc * format * Merged DEV into feature/adding_contract_admenment_num_pc * Merged DEV into feature/adding_contract_admenment_num_pc Approved-by: Siddhant Medar * Consolidate docs and documentation * Remove PRD * Add Essential Plan as a NY Program * Resolve Comments * Resolve comments * Black format * Resolve remaining comments * Black format * Merged in bugfix/fill_claim_type (pull request #874) Bugfix/fill claim type * Handle if AARETE_DERIVED_CLAIM_TYPE_CD comes in as list * add unit tests * Black format Approved-by: Siddhant Medar * Remove print * Merged in bugfix/parser-downstream-improvements (pull request #875) Bugfix/parser downstream improvements * Refactor: Implement field-aware JSON parsers with centralized normalization This refactor introduces a robust system for normalizing LLM output based on field format mappings, ensuring consistent data types throughout the pipeline. Key Changes: - Add FIELD_FORMAT_MAPPING constant defining expected formats for all fields - Create format_normalization.py utility for type-aware normalization - Update json_utils.py parsers to accept field_names/field_name parameters - Refactor prompt_templates.py to use parser factories (_create_json_dict_parser, _create_json_list_parser) that bind field metadata for automatic normalization - Update prompt_calls.py to pass field names to parsers, eliminating redundant normalization logic - Remove parse_json_dict_or_list (unused, ambiguous function) - Simplify METHODOLOGY_BREAKOUT and REIMBURSEMENT_PRIMARY to use helper functions - Add comprehensive integration tests… * Update other lists * Black format * Remove prints * Update qa_qc to account for lists in is_empty check * Resolve issues * Black format Approved-by: Siddhant Medar |
||
|
|
6efb281d4b |
Merged in bugfix/release_dockerfile (pull request #862)
Updated dockerfile to use uv instead of poetry * Updated dockerfile to use uv instead of poetry Approved-by: Katon Minhas |
||
|
|
02d10e711e |
Merged in hotfix/revert-standardize-list-formats (pull request #861)
Revert "Merged in feature/standardize-list-formats (pull request #844)"
* Revert "Merged in feature/standardize-list-formats (pull request #844)"
This reverts commit
|
||
|
|
0efb0e5369 |
Merged in feature/DAIP2-1529-capture-letters-in-amendment-num (pull request #860)
Feature/DAIP2-1529 capture letters in amendment num * updated CONTRACT_AMENDMENT_NUM Prompt * updated EXTRACT_AMENDMENT_NUM_FROM_FILENAME_INSTRUCTION * updated prompt * commented amendment number fields from numeric fields * Merged main into feature/DAIP2-1529-capture-letters-in-amendment-num Approved-by: Katon Minhas |
||
|
|
faf707265d |
Merged in feature/standardize-list-formats (pull request #844)
Feature/standardize list formats * updated unit test for code funcs * pipeline fixes * Merge branch 'main' into feature/standardize-list-formats * black format * removed duplicates * Merge remote-tracking branch 'origin/main' into feature/standardize-list-formats * updated prov other tin npi names to list * prompt calls code made common for cleints and saas * final format fixes * removed pipes * crosswalk fixes * Merged main into feature/standardize-list-formats * dubug dynamic fields * dynamic format fixes * dyanmic fields fixes * removed pipes from the whole code * fixed provider TIN NPI Name format issues * bill code issue fix * pipeline error fixes * Merge branch 'feature/standardize-list-formats' of https://bitbucket.org/aarete/doczy.ai into feature/standardize-list-formats * Merged main into feature/standardize-list-formats * Black format * pipeline errors fixed * pipeline fixes page funcs and tinnpi funcs * qa_qc_utils fix Approved-by: Katon Minhas |
||
|
|
ff8ec57ed0 |
Merged in bugfix/daip2-1440-contract-amendment-num (pull request #849)
Bugfix/daip2 1440 contract amendment num to main * update full context additional instruction for amendment num * uv formatting done * remove print statements * Merged main into bugfix/daip2-1440-contract-amendment-num * added filename amendment num * updated pipelines and removed print statements * Merged main into bugfix/daip2-1440-contract-amendment-num * code moved to hybrid smart chunking * Merged main into bugfix/daip2-1440-contract-amendment-num * Merged main into bugfix/daip2-1440-contract-amendment-num * removed categorical values from amendment number Approved-by: Katon Minhas |
||
|
|
a5c743f37f |
Merged in feature/chc-client (pull request #857)
Feature/chc client * Add CHC client pipeline with Claims Coding/Editing Determinations extraction - Add CHC client to pipelines with regex-based extraction - Create extraction/claims_coding_funcs.py for section extraction - Add chc_prompts.json with non_prompt field type - Add CHC_PROMPTS_PATH to config - Add tests for extraction function (11 test cases) * Add black[jupyter] for code formatting * Format testing notebook with black * Remove unused prompt field from chc_prompts.json * Merged main into feature/chc-client Approved-by: Katon Minhas |
||
|
|
4d6e08577c |
Merged in bugfix/provider-name-and-tin (pull request #855)
extract correct provider name to match all TINs * extract correct provider name to match all TINs * Merged main into bugfix/provider-name-and-tin Approved-by: Katon Minhas |
||
|
|
f412754167 |
Merged in feature/generic-parent-child (pull request #852)
Feature/generic parent child
* Refactor parent_child module with generic hierarchy lineage
- Add generic_hierarchy_lineage.py for core parent-child mapping
- Add generic_hierarchy_lineage_qc.py for QC validation engine
- Add bcbs_generic_hierarchy_lineage.py for BCBS-specific processing
- Add column_mapper.py for automatic column detection
- Rename parent_child_preprocessing.py to generic_hierarchy_lineage_preprocessing.py
- Remove old parent_child_mapping.py (replaced by generic_hierarchy_lineage.py)
- Fix import paths from src.generic_hierarchy_lineage to src.parent_child
- Replace hardcoded BCBS xwalk path with configurable parameter
- Remove global warning suppression
* Fix code review issues in parent_child module
- Fix import paths from src.generic_hierarchy_lineage to src.parent_child
- Replace hardcoded BCBS crosswalk path with configurable xwalk_path param
- Remove global warnings.filterwarnings('ignore') suppressions
- Change bare except clauses to except Exception with logging
- Add explicit client= CLI argument with backward compatible fallback
- Convert print statements to logging in bcbs_generic_hierarchy_lineage.py
* Add tests for parent_child module and fix JSON path resolution
- Add 55 unit tests covering grouping keys, parent identification,
child ranking, and QC utilities
- Use pathlib to resolve JSON config paths relative to module location,
allowing tests to run from any directory
* WIP: Refactor parent_child module structure
* Extract constants to centralized location for parent_child module
- Create src/constants/parent_child/ with generic.py and bcbs.py
- Update pipeline.py to use centralized constants (ASSIGNMENT_NO_PARENT, tier values, grouping key config)
- Update bcbsnc/mapping.py to use BCBS-specific constants
- Update imports in __main__.py and bcbsnc/__init__.py
- Pass client parameter from runner.py and saas/main.py
* Fix code formatting in parent_child module
* Merge remote-tracking branch 'origin/main' into feature/generic-parent-child
* Fix client detection and output path in parent_child module
* Fix typo in numeric_mappings.json filename and update logging
* Add type hints to parent_child module
* Merged main into feature/generic-parent-child
Approved-by: Katon Minhas
|
||
|
|
9e2de58ee4 |
Merged in bugfix/add-greater_of-in-breakout (pull request #853)
added greater_of_ind in methodology breakout * added greater_of_ind in methodology breakout * Merged main into bugfix/add-greater_of-in-breakout Approved-by: Katon Minhas |
||
|
|
ff01deddf0 |
Merged in feature/remove-bcbs-main (pull request #854)
Remove main * Remove main Approved-by: Siddhant Medar |
||
|
|
55533d5a24 |
Merged in feature/remove-global-lesser-process (pull request #851)
Feature/remove global lesser process * Deprecate GLOBAL_LESSER_OF * remove deprecated * Remove deprecated * Merged main into feature/remove-global-lesser-process * Black formatter * remove deprecated * Remove check redundant lesser * Remove prompt_smart_chunked * Black format * Update logging Approved-by: Sha Brown |
||
|
|
929ff4abf8 |
Merged in bugfix/handwritten-npi-list-updated (pull request #850)
fix ocr issue in list of NPIs * fix ocr issue in list od NPIs * pipeline error fixed Approved-by: Katon Minhas |
||
|
|
afb6d5185d |
Merged in feature/lesser-table-caching-refactor-hybrid (pull request #847)
Feature/lesser table caching refactor hybrid * chore: Remove unused duplicate main.py from shared pipeline * fix: Correct crosswalk paths in aarete_derived.py * chore: Remove unused documentation files from fieldExtraction * docs: Add documentation files to documentation folder * docs: Update README with uv setup, expanded project structure, and branching conventions * docs: Add uv installation steps with Ubuntu/WSL emphasis * Enable prompt caching for all remaining LLM calls - Add _INSTRUCTION() functions for: EXHIBIT_HEADER, EXHIBIT_LINKAGE, EXHIBIT_TITLE_MATCH, DATE_FIX, DERIVED_TERM_DATE, CHECK_PROVIDER_NAME_MATCH, SPECIAL_CASE_ASSIGNMENT - Update all invoke_claude() calls in saas and clover pipelines to use cache=True with corresponding _INSTRUCTION() functions - Add new instructions to get_cacheable_instructions() for cache warming - Update tests for new instruction functions Functions now using caching: - prompt_exhibit_level - prompt_exhibit_lesser (EXHIBIT_LEVEL_LESSER_OF) - prompt_fee_schedule_breakout - prompt_grouper_breakout - prompt_special_case_assignment - prompt_exhibit_linkage - prompt_exhibit_header - prompt_smart_chunked (ONE_TO_ONE templates) - prompt_date_fix - prompt_derived_term_date - prompt_exhibit_title_match - provider_name_match_check 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Reorder * feat: Add bcbs_promise client pipeline with OFFSET_TERM extraction - Add new bcbs_promise client with HSC-based OFFSET_TERM field extraction - Extract full paragraph text of offset/recoupment provisions from contracts - Derive OFFSET_INDICATOR (Y/N) from OFFSET_TERM presence - Fix reorder_columns to preserve extra columns not in COLUMN_ORDER - Update QC/QA output path to outputs/qc_qa/ * fix: Update dev deps and test assertions for QC/QA output path - Add pytest/pytest-mock to dev dependencies for mypy type checking - Update test assertions to expect outputs/qc_qa instead of qa_qc_output * style: Apply black formatting to prompt_templates.py * Merge main, move scripts * Archive some scripts * update py version * remove .py version file * Remove ASCII characters * Restore testbed code * restore tracking * Update testbed metrics * Enable prompt caching for CODE_LAST_CHECK, FILL_BILL_TYPE, DUAL_LOB_CHECK, and GROUPER_BREAKOUT - Add CODE_LAST_CHECK_INSTRUCTION() for service specificity classification - Add FILL_BILL_TYPE_INSTRUCTION() for bill type code determination - Add DUAL_LOB_CHECK_INSTRUCTION() for Medicare/Medicaid classification - Update code_funcs.py to use caching for CODE_LAST_CHECK, FILL_BILL_TYPE, GROUPER_BREAKOUT - Update postprocessing_funcs.py to use caching for DUAL_LOB_CHECK - Add new instructions to get_cacheable_instructions() for cache warming - Add unit tests for new instruction functions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Fix postprocessing_funcs to remove invalid columns * Merge branch 'main' into feature/lesser-table-caching-refactor-hybrid * Revert prompt caching changes from aed1b73c * update formatting * Update imports Approved-by: Sha Brown Approved-by: Praneel Panchigar |
||
|
|
dcec3f4b7a |
Merged in bugfix/preserve_lob_relationship_llm_values (pull request #846)
Bugfix/preserve lob relationship llm values * Relationship values changes * Fix: Preserve LLM-determined LOB relationship values - Prevent fill_na_mapping from overwriting LLM-determined 'Inclusive' relationships - Only set 'Exclusive' when relationship field is empty/NA (preserves LLM values) - Default to 'Exclusive' when PROGRAM/PRODUCT is NA/blank (LLM bypassed cases) - Condensed redundant conditional logic for better maintainability * Changed LOB Relationship prompt to more strictly enforce an output format * Merge remote-tracking branch 'origin/main' into bugfix/preserve_lob_relationship_llm_values Approved-by: Katon Minhas |
||
|
|
ab31139168 |
Merged in bugfix/preserve_lob_relationship_llm_values (pull request #842)
Bugfix/preserve lob relationship llm values * Relationship values changes * Fix: Preserve LLM-determined LOB relationship values - Prevent fill_na_mapping from overwriting LLM-determined 'Inclusive' relationships - Only set 'Exclusive' when relationship field is empty/NA (preserves LLM values) - Default to 'Exclusive' when PROGRAM/PRODUCT is NA/blank (LLM bypassed cases) - Condensed redundant conditional logic for better maintainability * Merged main into bugfix/preserve_lob_relationship_llm_values Approved-by: Katon Minhas |
||
|
|
05a615e8b2 |
Merged in bugfix/claim_type_code (pull request #845)
Bugfix/claim type code * Added retrieval question for hybrid smart chunking CLAIM_TYPE_CD * Update on hybrid smart chunking retrival question * Merged main into bugfix/claim_type_code Approved-by: Katon Minhas |
||
|
|
59e5fe4532 |
Merged in feature/postprocess-script (pull request #843)
Add postprocess script * Add postprocess script Approved-by: Siddhant Medar |
||
|
|
96790f04ba |
Merged in restructure/facility_adjustments_group (pull request #836)
Restructure/facility adjustments group to main * removed _PCT_RATE and _FEE_RATE in facility adjustment_breakout * moved facility adjustments term to exhibit level * added facility adjustmnet breakout * Merged main into restructure/facility_adjustments_group * Update breakout Approved-by: Katon Minhas |
||
|
|
c62dafb7c1 |
Merged in bugfix/conversion-factor (pull request #841)
Bugfix/conversion factor * fixed default value * fixed conversion_factor prompt * post processing error fixed * fixed missing reimb primaries * Merged main into bugfix/conversion-factor Approved-by: Katon Minhas |
||
|
|
7b05d6bfe2 |
Merged in bugfix/rate-escalator-name (pull request #838)
field name updated * field name updated Approved-by: Katon Minhas |
||
|
|
6679bf7f47 |
Merged in feature/pc-functionality (pull request #835)
bug fix for pc module * bug fix for pc module Approved-by: Katon Minhas |
||
|
|
87f3d2f4f0 |
Merged in bugfix/mb-prompts (pull request #833)
Bugfix/mb prompts * reimb primary prompt update * Merge branch 'main' into bugfix/highmark-reimb-primary * prompt reorganised * Merged main into bugfix/mb-prompts * mb prompt refinement * Merge branch 'bugfix/mb-prompts' of https://bitbucket.org/aarete/doczy.ai into bugfix/mb-prompts * Merged main into bugfix/mb-prompts * fee schedule prompt simplified * Merged in bugfix/methodology_breakout_reimb_pct_rate (pull request #831) bugfix/methodology_breakout_reimb_pct_rate to bugfix/mb-prompts * remove case rate from fill empty reimb pct rate * Merged bugfix/mb-prompts into bugfix/methodology_breakout_reimb_pct_rate Approved-by: Katon Minhas * Merged main into bugfix/mb-prompts * grouper breakout prompt changes * Merged main into bugfix/mb-prompts * Merged main into bugfix/mb-prompts * Update reimb primary prompt Approved-by: Katon Minhas |
||
|
|
72f633cad2 |
Merged in bugfix/reimb-primary (pull request #834)
Bugfix/reimb primary * prompt update for reimb primary * reimb primary prompt update to extract more info * prompt update at to priotrize $ amounts * prompt update for split tbales * updated valid entries for reimbs * addition to reimb primary prompt * reimb primary pormpt update * Merge remote-tracking branch 'origin/main' into bugfix/reimb-primary merhing latest main in reimb-primary * Merged main into bugfix/reimb-primary * fix- PR comment Approved-by: Katon Minhas |
||
|
|
8c9060e425 |
Merged in feature/multithreading (pull request #828)
Feature/multithreading * fixes * Merge main into feature/multithreading Resolved conflicts: - Kept timing instrumentation in file_processing.py - Kept new 3-step Exhibit-based approach for one-to-n processing - Maintained parallelization improvements (20 workers) Changes include: - Timing utils integration for performance monitoring - Increased max_workers from 5 to 20 across all components - Parallelized code_breakout and grouper_breakout - Fixed tin_npi_funcs function call parameters * Fix max_workers error for empty documents - Add check to skip parallel processing when no pages exist - Use min(len(all_page_tasks), 20) to prevent max_workers=0 - Handles edge case of documents with no exhibits or pages * Fix max_workers=0 errors in one_to_n_funcs - Add checks before all ThreadPoolExecutor creations - Prevents errors when processing empty lists: - carveout_and_special_case - breakout - special_case_breakout - filter_services_without_reimbursements - run_lob_relationship - Ensures executor only created when there are items to process * Reduce code processing parallelism to prevent API throttling Lower max_workers from 20 to 10 for code_breakout and grouper_breakout to prevent overwhelming Bedrock API with concurrent requests * fixed * Merged main into feature/multithreading * Move documentation into folder * Fix logging statements * Merge branch 'main' into feature/multithreading * Refactor for clarity * Update previous exhibit passing logic * properly simplify exhibits * Merged main into feature/multithreading * update conditional for None * exhibit multithreading changed * exhibit multithreading changed * Merge remote-tracking branch 'origin/main' into feature/multithreading * synced with main * Parallelize dynamic assignment, refactor HSC field worker, add timing/exhibit unit tests, tidy imports/ignore helpers * analyze_regression.py edited online with Bitbucket * count_pages.py edited online with Bitbucket * compare_regressed_with_baseline.py edited online with Bitbucket * simple_testbed_compare.py edited online with Bitbucket * run_testbed_metrics_regressed.py edited online with Bitbucket Approved-by: Katon Minhas |
||
|
|
69f23653a1 |
Merged in bugfix/dynamic_issues (pull request #832)
Bugfix/dynamic issues * Add debug print statements for dynamic primary field discovery and 1:1 escalation tracking * Add reimb_term to bill type CD determination context - Updated fill_bill_type() to accept reimb_term parameter - Modified FILL_BILL_TYPE prompt to include reimbursement term in context - First attempt now uses: service term + reimbursement term - Second attempt uses: service term + reimbursement term + exhibit text - Updated extract_codes_from_service() to pass REIMB_TERM to fill_bill_type() * Remove debug print statements from dynamic_funcs.py and file_processing.py - Removed all DEBUG print statements for dynamic primary discovery - Removed debug prints for field discovery status and 1:1 escalation evaluation - Removed debug prints for exhibit level answers and final summaries - Removed debug comment about one_to_one_fields creation - Cleaned up all temporary debugging code * Merge branch 'main' into bugfix/dynamic_issues * Remove duplicate one_to_one_fields FieldSet initialization from process_file Approved-by: Katon Minhas |
||
|
|
d97a31aa5b |
Merged in optimization/prov_info (pull request #829)
optimization_prov_info to main * removed on signature page field which is unnecessary Approved-by: Katon Minhas |
||
|
|
874354dc44 |
Merged in bugfix/prov_info (pull request #826)
bugfix/prov_info to main * added instruction to add missing info * Merged main into bugfix/prov_info * Prompt update Approved-by: Katon Minhas |
||
|
|
a9b08388e3 |
Merged in bugfix/payer_name (pull request #827)
Bugfix/payer name to main * added full context instruction for payer name * removed print statement Approved-by: Katon Minhas |
||
|
|
04a190d5b7 |
Merged in bugfix/hmk-issues (pull request #824)
Bugfix/hmk issues * fix for missing AARETE_DERIVED_LOB * fix for AARETE_DERIVED_SID * bugfix in universal_json_load * bugfix for normalize_state_field * reimb eff date assignmnet prompt update * prompt update for missing reimb terms * Merged main into bugfix/hmk-issues * test case for universal_json_loads * reveresed the prompt update for missing reimb * prompt fix for reimb dates Approved-by: Katon Minhas |
||
|
|
b0eed711fc |
Merged in bugfix/carveout (pull request #825)
bugfix/carveout to main * removed specific service in base covered * Merged main into bugfix/carveout * Merged main into bugfix/carveout Approved-by: Katon Minhas |
||
|
|
fd390e3907 |
Merged in bugfix/highmark-reimb-primary (pull request #823)
reimb primary prompt update * reimb primary prompt update * Merge branch 'main' into bugfix/highmark-reimb-primary * Update reimb primary prompt Approved-by: Katon Minhas |
||
|
|
49e8964986 |
Merged in bugfix/provider_tin (pull request #822)
bugfix/provider_tin to main * false positives case added to prompt Approved-by: Katon Minhas |
||
|
|
541a0f97e0 |
Merged in hotfix/highmark-issues (pull request #821)
Remove EXHIBIT_TEXT column (and all other invalid columns) * Remove EXHIBIT_TEXT column (and all other invalid columns) |
||
|
|
a8146cad11 |
Merged in bugfix/hmk-1-to-1 (pull request #820)
fix for redundantly populated provider twice * fix for redundantly populated provider twice * Merged main into bugfix/hmk-1-to-1 Approved-by: Katon Minhas |
||
|
|
85f2c8cecc |
Merged in bugfix/bill_type_code_fixes (pull request #819)
Bugfix/bill type code fixes * Fix LOB_PROGRAM_RELATIONSHIP extraction and preserve debugging code - Add format requirements to LOB_RELATIONSHIP_INSTRUCTION for proper caching - Strengthen LOB_RELATIONSHIP prompt with explicit pipe delimiter requirements - Preserve all DEBUG blocks and print statements in dynamic_funcs.py and file_processing.py - Update crosswalk mappings and gitignore - Ensure format instructions are cached at API level to prevent missing pipe delimiters * Merge main into bugfix/dynamic_issuefixes Resolved merge conflicts in: - fieldExtraction/src/investment/dynamic_funcs.py (merged debug print statements) - fieldExtraction/src/investment/file_processing.py (merged debug statements and exhibit inheritance code) All conflicts resolved successfully. * Update FILL_BILL_TYPE prompt with place-of-service priority and optional exhibit_text - Add optional exhibit_text parameter to FILL_BILL_TYPE function - Update instructions to prioritize place-of-service over service-only terminology - Add new examples: 'home dialysis' and 'dialysis' while keeping original examples - Add conditional exhibit context section when exhibit_text is provided - Maintains backward compatibility (exhibit_text defaults to None) Ref: PLAN_BILL_TYPE_CD_IMPROVEMENTS.md * Implement two-step bill type CD determination with exhibit text fallback - Add EXHIBIT_TEXT to answer_dict in combine_one_to_n() for contextual analysis - Update fill_bill_type() to use two-step approach: 1. First attempt: service term only (no exhibit text) 2. Second attempt: service term + exhibit text (only if first fails) - Update extract_codes_from_service() to pass exhibit_text to fill_bill_type() - Add debug print when full exhibit text context is used - More efficient: only makes second LLM call when service term alone fails Ref: PLAN_BILL_TYPE_CD_IMPROVEMENTS.md * Remove debug print statement and merge main into bill_type_code_fixes - Remove debug print statement from fill_bill_type() in code_funcs.py - Merge latest changes from main branch - Includes updates to prompt_templates.py (payer_name parameter) - Includes updates to file_processing.py (provider info ordering) - Includes updates to aarete_derived.py, crosswalk mappings, and tin_npi_funcs * Remove remaining debug print statements from dynamic_funcs.py and file_processing.py Approved-by: Katon Minhas |
||
|
|
b64e1fe4cc |
Merged in bugfix/derived_lob_changes (pull request #817)
Bugfix/derived lob changes * Fix LOB_PROGRAM_RELATIONSHIP extraction and preserve debugging code - Add format requirements to LOB_RELATIONSHIP_INSTRUCTION for proper caching - Strengthen LOB_RELATIONSHIP prompt with explicit pipe delimiter requirements - Preserve all DEBUG blocks and print statements in dynamic_funcs.py and file_processing.py - Update crosswalk mappings and gitignore - Ensure format instructions are cached at API level to prevent missing pipe delimiters * Merge main into bugfix/dynamic_issuefixes Resolved merge conflicts in: - fieldExtraction/src/investment/dynamic_funcs.py (merged debug print statements) - fieldExtraction/src/investment/file_processing.py (merged debug statements and exhibit inheritance code) All conflicts resolved successfully. * Fix AARETE_DERIVED_LOB to merge values from all crosswalks (PROGRAM and PRODUCT) - Updated fill_na_mapping to always check both AARETE_DERIVED_PROGRAM and PRODUCT crosswalks - Merges unique values from all sources (existing, PROGRAM, PRODUCT) instead of only filling when empty - Ensures Duals is included when PRODUCT contains Molina Medicare Options Plus - Deduplicates and sorts values before pipe-delimiting - Each row processed individually for correct LOB assignment per reimbursement term * Merged main into bugfix/derived_lob_changes Approved-by: Katon Minhas |
||
|
|
77c845a82e |
Merged in bugfix/prov-info-issues (pull request #816)
Bugfix/prov info issues * Initial commit * Passed payer name to tin npi llm call to avoid assigning tin npi to payer * Removed record that contains NO_IDENTIFIERS_FOUND from PROV_INFO_JSON * Updated unit test for test_tin_npi_funcs * Changed name check code back to original to be consistent * Updated test_tin_npi_funcs.py to pass in payer_name in functions * Add fix to unit test * Updated output in unit tests * Merged main into bugfix/prov-info-issues Approved-by: Katon Minhas |
||
|
|
7ffd62fd8e |
Merged in bugfix/highmark-methodology-breakout (pull request #815)
Bugfix/highmark methodology breakout * fix reimb_term rows for dates * reimb_primary prompt update * prompt changes * Merge remote-tracking branch 'origin/main' into bugfix/highmark-methodology-breakout * prompt changes * prompt updates * Merge branch 'main' into bugfix/highmark-methodology-breakout * prompt updates * Prompt updates Approved-by: Katon Minhas |
||
|
|
e8cb48643c |
Merged in bugfix/carveout_base (pull request #814)
bugfix/carveout_base to main * updated base covered services Approved-by: Katon Minhas |
||
|
|
46494274ff |
Merged in bugfix/one_to_one_and_prov_info (pull request #808)
Bugfix/one to one and prov info * Add post-processing logic to update PROV_INFO_JSON if needed; Updated prompt to verify the number of digitis in TIN and NPI * Added update_prov_info_with_group_name to postprocessing_funcs.py * Updated FIRST_PAGE_PROVIDER_NAME_TEMPLATE to ask LLM to explain resoning before answering * Updated logic to use LLM to check if provider name matches * Use only Hybrid Smart Chunking to get provider group name * Cleaned up code * Removed commented out code * Updated unit test * Merged main into bugfix/one_to_one_and_prov_info * Edited prompt to distinguish provider names and to enclose answer in pipes * Updated test_tin_npi_funcs Approved-by: Katon Minhas |
||
|
|
d3bfec0b6b |
Merged in bugfix/dynamic_issuefixes-clean (pull request #813)
Fix LOB_PROGRAM_RELATIONSHIP extraction and preserve debugging code * Fix LOB_PROGRAM_RELATIONSHIP extraction and preserve debugging code - Add format requirements to LOB_RELATIONSHIP_INSTRUCTION for proper caching - Strengthen LOB_RELATIONSHIP prompt with explicit pipe delimiter requirements - Preserve all DEBUG blocks and print statements in dynamic_funcs.py and file_processing.py - Update crosswalk mappings and gitignore - Ensure format instructions are cached at API level to prevent missing pipe delimiters * Merge main into bugfix/dynamic_issuefixes-clean and remove all debug print statements * Remove redundant one_to_one_fields initialization to match main Approved-by: Katon Minhas |
||
|
|
f26b83bd0b |
Merged in feature/cross-exhibit-dynamic (pull request #789)
Feature/cross exhibit dynamic * Merge branch 'feature/deprecate-haiku-3' into feature/1toN-Optimization * fix over-filtering of lesser of * Merged in bugfix/UT-methodology-breakout (pull request #794) Bugfix/UT methodology breakout * updated valid values for AARETE_DERIVED_REIMB_METHOD * removed example reimbursements * prompt update * prompt update * Merged feature/1toN-Optimization into bugfix/nv_issue_fixes * add service term in mb prompts * Merged feature/1toN-Optimization into bugfix/UT-methodology-breakout * print statement removed * Merge branch 'bugfix/UT-methodology-breakout' of https://bitbucket.org/aarete/doczy.ai into bugfix/UT-methodology-breakout * primary prompt update * remove duplicate prompt Approved-by: Katon Minhas * Merge branch 'main' into feature/1toN-Optimization * Merge branch 'main' into feature/1toN-Optimization * Update preprocessing to make the exhibit_chunk_mapping start at first page * Merge remote-tracking branch 'origin/feature/1toN-Optimization' into cross-exhibit-dynamic * Address merge request comments: refactor prompt templates and logging - Make DYNAMIC_PRIMARY_TEXT LOB-specific instructions conditional (only show when field_name is LOB) - Remove MEDICAID FEE SCHEDULE point from DYNAMIC_ASSIGNMENT (point #2) - Generalize SERVICE_TERM context guidance to apply to all fields (LOB, PROGRAM, NETWORK, PRODUCT) - Refactor proximity guidance to emphasize contextual connection over strict section boundaries - Update point #1 to explicitly prevent inferring LOB from Programs alone - Change exhibit inheritance logging from info to debug level * Move function to one_to_n_funcs * Merge row_funcs.py changes from feature/cross-exhibit-dynamic * Merged feature/1toN-Optimization into feature/cross-exhibit-dynamic * Merged in bugfix/UT-grouper-issues (pull request #796) Bugfix/UT grouper issues * updated valid values for AARETE_DERIVED_REIMB_METHOD * removed example reimbursements * prompt update * prompt update * Merged feature/1toN-Optimization into bugfix/nv_issue_fixes * add service term in mb prompts * Merged feature/1toN-Optimization into bugfix/UT-methodology-breakout * print statement removed * Merge branch 'bugfix/UT-methodology-breakout' of https://bitbucket.org/aarete/doczy.ai into bugfix/UT-methodology-breakout * primary prompt update * prompt update * Merge remote-tracking branch 'origin/feature/1toN-Optimization' into bugfix/UT-grouper-issues * removed temp changes * removed temp changes * Update reimb primary Approved-by: Katon Minhas * Merged in bugfix/validation_fixes (pull request #795) bugfix/validation_fixes to feature/1toN-Optimization * updated validation of clean claims reimbursement * Merged feature/1toN-Optimization into bugfix/validation_fixes Approved-by: Katon Minhas * Merge branch 'feature/1toN-Optimization' into feature/cross-exhibit-dynamic * Re-add dynamic codes and reimb-info * Re-structure empty reimbursement prompt * Fix lesser of check overfiltering * Merged feature/1toN-Optimization into feature/cross-exhibit-dynamic * Update LOB inference logic and prompt guidance - Revert DYNAMIC_PRIMARY_TEXT to original template (remove LOB-specific conditional section) - Add explicit guidance in DYNAMIC_ASSIGNMENT: presence of Medicaid programs does NOT imply LOB is Medicaid - Update get_dynamic_one_to_one_fields to only check AARETE_DERIVED_LOB (not raw LOB) when skipping PROGRAM/PRODUCT/NETWORK * Fix LOB_PROGRAM_RELATIONSHIP extraction: add pipe format instructions to LOB_RELATIONSHIP_INSTRUCTION * Update Fidelis Essential Plan mappings in crosswalk_product_lob.json - Add mappings for Essential Plan variants (Aliessa, EP-QHP, EP, Essential Plan) - Essential Plan Aliessa and EP Aliessa map to Medicaid - EP-QHP maps to Commercial - EP and Essential Plan map to Medicaid|Commercial * Remove debug logging statements from prompt_lob_relationship * Merge main into feature/cross-exhibit-dynamic: resolved conflicts, removed debug statements, synced prompt_templates.py with main * Sync non-exhibit-merge files with main before merge * Remove test.py to match main Approved-by: Katon Minhas |
||
|
|
ca53ff8395 |
Merged in bugfix/cpt-codes (pull request #812)
Bugfix/cpt codes * formatting fix for revenue_cd * format fix for procedure_codes * bugfix for revenue_codes * working version from code main * code formatting from main and code main * removed dubug prints * removed local file paths * standardize state fields * updated test scenerios * minor fix * Merge branch 'main' into bugfix/cpt-codes merging main into cpt code fix * checks for all fields * reused is_empty functionality * moved normalize_to_json_list to utils * Merge branch 'main' into bugfix/cpt-codes merging upto date main * minor touches * pytest fix Approved-by: Katon Minhas |
||
|
|
f31c02517a |
Merged in bugfix/carveout_cd (pull request #811)
bugfix/carveout_cd to main * added age constraint for payment carveout * Merged main into bugfix/carveout_cd Approved-by: Katon Minhas |
||
|
|
c302c1023a |
Merged in bugfix/qc_qa_filetype (pull request #810)
Bugfix/qc qa filetype * WIP: support multi-filetype * Add graceful error handling to QC/QA standalone CLI Wrap validation pipeline in try/except to ensure no partial results are created/uploaded if the pipeline fails mid-execution. * Add comprehensive QC/QA unit tests, improve coverage to 95% - Add CLI integration tests for __main__.py (6 tests) - Add pipeline validation tests for all validation steps (20+ tests) - Test multi-filetype I/O (CSV, XLSX input/output) - Test graceful error handling - Coverage: 43% → 95% * Merge remote-tracking branch 'origin/main' into bugfix/qc_qa_filetype Approved-by: Katon Minhas |
||
|
|
9b89b0a10a | Merged main into bugfix/UT-reimbursement-dates |