76 lines
3.0 KiB
TypeScript
76 lines
3.0 KiB
TypeScript
/* EXAMPLE ONLY: an extract from the Superbill Review prototype, kept as reference for porting. ECW/eClinicalWorks, Tebra, 'Example Client', SPB_* tables and patient/ticket wording are that project's examples. Don't copy them into a new project. */
|
|
/**
|
|
* The confidence bands, and the exact colours the workbook paints.
|
|
*
|
|
* These hexes are not a design choice made here — they are the same values
|
|
* patient_extractor_v2.py fills cells with. A reviewer moves between the sheet
|
|
* and this dashboard looking at the same field; if the two disagreed about what
|
|
* red looks like, the colour would stop being a shared language.
|
|
*
|
|
* GREEN B6E2B6 green channel high
|
|
* AMBER F4E2B6 red + green high <- sits visually between the other two
|
|
* RED F4B6B6 red channel high
|
|
*/
|
|
export const BAND_COLOR = {
|
|
green: '#B6E2B6',
|
|
amber: '#F4E2B6',
|
|
red: '#F4B6B6',
|
|
blank: '#FFFFFF',
|
|
unscored: '#FFFFFF',
|
|
} as const
|
|
|
|
/** Border, so a white "blank" cell is still visibly a cell. */
|
|
export const BAND_BORDER = {
|
|
green: '#9AC79A',
|
|
amber: '#D9C79A',
|
|
red: '#D99A9A',
|
|
blank: '#D0D0D0',
|
|
unscored: '#D0D0D0',
|
|
} as const
|
|
|
|
export const BAND_LABEL = {
|
|
green: 'Clean print',
|
|
amber: 'Slightly unclear',
|
|
red: 'Handwritten / messy',
|
|
blank: 'Billing code missing',
|
|
unscored: 'Not found in transcription',
|
|
} as const
|
|
|
|
/**
|
|
* What the colour does NOT say. Kept next to the palette on purpose: the score
|
|
* rates how legibly the text was printed, not whether the value is right. A
|
|
* confident misread comes back green — measured on this document set, "J27.20"
|
|
* scored 0.9 while the correct "I27.20" sat on the same page.
|
|
*/
|
|
export const BAND_CAVEAT =
|
|
'Colour reflects print clarity, not correctness. A cleanly printed value can still be misread.'
|
|
|
|
export type Band = keyof typeof BAND_COLOR
|
|
|
|
/**
|
|
* The band as a THEME TOKEN, for anything drawn in the interface rather than on
|
|
* the scan: status pills, the 3px grade rule down a field input, legend
|
|
* swatches, donut segments, quality meters.
|
|
*
|
|
* These reference the CSS variables rather than carrying hexes, so a band
|
|
* follows the appearance the same way every other surface does, and so the
|
|
* grading triple is declared in exactly one place (index.css).
|
|
*
|
|
* `blank` and `unscored` collapse to the same grey: nothing was read, so there
|
|
* is no print clarity to grade, and inventing a fourth hue for "no data" would
|
|
* put a colour on the legend that means nothing a reviewer can act on.
|
|
*
|
|
* BAND_COLOR / BAND_BORDER above are NOT replaced by this and are still the
|
|
* right choice in one place: the highlight chips drawn over the scanned page
|
|
* itself. Those sit on the document, mirror what the workbook fills, and are
|
|
* the shared language between the sheet and this dashboard — interface tokens
|
|
* would break that and would be unreadable on a white scan besides.
|
|
*/
|
|
export const BAND_VAR = {
|
|
green: 'var(--clean)',
|
|
amber: 'var(--verify)',
|
|
red: 'var(--review)',
|
|
blank: 'var(--absent)',
|
|
unscored: 'var(--absent)',
|
|
} as const
|