afb6d5185d
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
320 lines
5.2 KiB
CSS
320 lines
5.2 KiB
CSS
body {
|
|
font-family: Helvetica, Arial, sans-serif;
|
|
font-size: 12px;
|
|
/* do not increase min-width as some may use split screens */
|
|
min-width: 800px;
|
|
color: #999;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 24px;
|
|
color: black;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 16px;
|
|
color: black;
|
|
}
|
|
|
|
p {
|
|
color: black;
|
|
}
|
|
|
|
a {
|
|
color: #999;
|
|
}
|
|
|
|
table {
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
/******************************
|
|
* SUMMARY INFORMATION
|
|
******************************/
|
|
#environment td {
|
|
padding: 5px;
|
|
border: 1px solid #e6e6e6;
|
|
vertical-align: top;
|
|
}
|
|
#environment tr:nth-child(odd) {
|
|
background-color: #f6f6f6;
|
|
}
|
|
#environment ul {
|
|
margin: 0;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
/******************************
|
|
* TEST RESULT COLORS
|
|
******************************/
|
|
span.passed,
|
|
.passed .col-result {
|
|
color: green;
|
|
}
|
|
|
|
span.skipped,
|
|
span.xfailed,
|
|
span.rerun,
|
|
.skipped .col-result,
|
|
.xfailed .col-result,
|
|
.rerun .col-result {
|
|
color: orange;
|
|
}
|
|
|
|
span.error,
|
|
span.failed,
|
|
span.xpassed,
|
|
.error .col-result,
|
|
.failed .col-result,
|
|
.xpassed .col-result {
|
|
color: red;
|
|
}
|
|
|
|
.col-links__extra {
|
|
margin-right: 3px;
|
|
}
|
|
|
|
/******************************
|
|
* RESULTS TABLE
|
|
*
|
|
* 1. Table Layout
|
|
* 2. Extra
|
|
* 3. Sorting items
|
|
*
|
|
******************************/
|
|
/*------------------
|
|
* 1. Table Layout
|
|
*------------------*/
|
|
#results-table {
|
|
border: 1px solid #e6e6e6;
|
|
color: #999;
|
|
font-size: 12px;
|
|
width: 100%;
|
|
}
|
|
#results-table th,
|
|
#results-table td {
|
|
padding: 5px;
|
|
border: 1px solid #e6e6e6;
|
|
text-align: left;
|
|
}
|
|
#results-table th {
|
|
font-weight: bold;
|
|
}
|
|
|
|
/*------------------
|
|
* 2. Extra
|
|
*------------------*/
|
|
.logwrapper {
|
|
max-height: 230px;
|
|
overflow-y: scroll;
|
|
background-color: #e6e6e6;
|
|
}
|
|
.logwrapper.expanded {
|
|
max-height: none;
|
|
}
|
|
.logwrapper.expanded .logexpander:after {
|
|
content: "collapse [-]";
|
|
}
|
|
.logwrapper .logexpander {
|
|
z-index: 1;
|
|
position: sticky;
|
|
top: 10px;
|
|
width: max-content;
|
|
border: 1px solid;
|
|
border-radius: 3px;
|
|
padding: 5px 7px;
|
|
margin: 10px 0 10px calc(100% - 80px);
|
|
cursor: pointer;
|
|
background-color: #e6e6e6;
|
|
}
|
|
.logwrapper .logexpander:after {
|
|
content: "expand [+]";
|
|
}
|
|
.logwrapper .logexpander:hover {
|
|
color: #000;
|
|
border-color: #000;
|
|
}
|
|
.logwrapper .log {
|
|
min-height: 40px;
|
|
position: relative;
|
|
top: -50px;
|
|
height: calc(100% + 50px);
|
|
border: 1px solid #e6e6e6;
|
|
color: black;
|
|
display: block;
|
|
font-family: "Courier New", Courier, monospace;
|
|
padding: 5px;
|
|
padding-right: 80px;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
div.media {
|
|
border: 1px solid #e6e6e6;
|
|
float: right;
|
|
height: 240px;
|
|
margin: 0 5px;
|
|
overflow: hidden;
|
|
width: 320px;
|
|
}
|
|
|
|
.media-container {
|
|
display: grid;
|
|
grid-template-columns: 25px auto 25px;
|
|
align-items: center;
|
|
flex: 1 1;
|
|
overflow: hidden;
|
|
height: 200px;
|
|
}
|
|
|
|
.media-container--fullscreen {
|
|
grid-template-columns: 0px auto 0px;
|
|
}
|
|
|
|
.media-container__nav--right,
|
|
.media-container__nav--left {
|
|
text-align: center;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.media-container__viewport {
|
|
cursor: pointer;
|
|
text-align: center;
|
|
height: inherit;
|
|
}
|
|
.media-container__viewport img,
|
|
.media-container__viewport video {
|
|
object-fit: cover;
|
|
width: 100%;
|
|
max-height: 100%;
|
|
}
|
|
|
|
.media__name,
|
|
.media__counter {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-around;
|
|
flex: 0 0 25px;
|
|
align-items: center;
|
|
}
|
|
|
|
.collapsible td:not(.col-links) {
|
|
cursor: pointer;
|
|
}
|
|
.collapsible td:not(.col-links):hover::after {
|
|
color: #bbb;
|
|
font-style: italic;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.col-result {
|
|
width: 130px;
|
|
}
|
|
.col-result:hover::after {
|
|
content: " (hide details)";
|
|
}
|
|
|
|
.col-result.collapsed:hover::after {
|
|
content: " (show details)";
|
|
}
|
|
|
|
#environment-header h2:hover::after {
|
|
content: " (hide details)";
|
|
color: #bbb;
|
|
font-style: italic;
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
}
|
|
|
|
#environment-header.collapsed h2:hover::after {
|
|
content: " (show details)";
|
|
color: #bbb;
|
|
font-style: italic;
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
}
|
|
|
|
/*------------------
|
|
* 3. Sorting items
|
|
*------------------*/
|
|
.sortable {
|
|
cursor: pointer;
|
|
}
|
|
.sortable.desc:after {
|
|
content: " ";
|
|
position: relative;
|
|
left: 5px;
|
|
bottom: -12.5px;
|
|
border: 10px solid #4caf50;
|
|
border-bottom: 0;
|
|
border-left-color: transparent;
|
|
border-right-color: transparent;
|
|
}
|
|
.sortable.asc:after {
|
|
content: " ";
|
|
position: relative;
|
|
left: 5px;
|
|
bottom: 12.5px;
|
|
border: 10px solid #4caf50;
|
|
border-top: 0;
|
|
border-left-color: transparent;
|
|
border-right-color: transparent;
|
|
}
|
|
|
|
.hidden, .summary__reload__button.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.summary__data {
|
|
flex: 0 0 550px;
|
|
}
|
|
.summary__reload {
|
|
flex: 1 1;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
.summary__reload__button {
|
|
flex: 0 0 300px;
|
|
display: flex;
|
|
color: white;
|
|
font-weight: bold;
|
|
background-color: #4caf50;
|
|
text-align: center;
|
|
justify-content: center;
|
|
align-items: center;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
}
|
|
.summary__reload__button:hover {
|
|
background-color: #46a049;
|
|
}
|
|
.summary__spacer {
|
|
flex: 0 0 550px;
|
|
}
|
|
|
|
.controls {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.filters,
|
|
.collapse {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.filters button,
|
|
.collapse button {
|
|
color: #999;
|
|
border: none;
|
|
background: none;
|
|
cursor: pointer;
|
|
text-decoration: underline;
|
|
}
|
|
.filters button:hover,
|
|
.collapse button:hover {
|
|
color: #ccc;
|
|
}
|
|
|
|
.filter__label {
|
|
margin-right: 10px;
|
|
}
|