feat(labs): show a reading's conversion in the scan review and beside the value

Slice 3 of phase 3 of #1095. The scan review no longer treats every reading in
another unit as unwritable. The server tells it which analyte the matched marker
is (markerAnalyteKey on each extracted row); a row whose unit differs but can be
converted starts selected and carries a badge saying what Save will store and
what the report stated ("Saved as 100.9 mg/dL, converted from 5.6 mmol/L"). A
row that cannot be converted keeps the existing blocked badge and error. Save
still sends what the report printed; the server converts, as in slice 2.

The review's duplicate flag also recognises a re-scan of a reading that was
stored converted, by what the report printed, the same rule the commit applies.

A converted reading carries a quiet "converted from 5.6 mmol/L" on the lab list
(row and tile) and the history list (phone and table), so a number nobody typed
can always be traced back to what the report printed.

Strings in all seven locales.

Refs #1095
This commit is contained in:
BernhardBuckel committed 2026-10-11 20:41:08 +02:00
1 parent caa7a937fd
commit 747e0964ad
22 files changed
+465 -19

No files matched your search

+11 -2
View File
@@ -68232,8 +68232,16 @@ components:
- type: string
- type: "null"
description: "The unit the matched marker is tracked in, or null when the marker does not exist yet (it will adopt this
row's unit). A row whose `unit` differs from it cannot be committed: the commit skips it with `reason:
unit_mismatch`, and the review screen marks it before Save."
row's unit). A row whose `unit` differs from it is converted on commit when the marker's analyte is known
and the pair is in the unit-conversion registry; otherwise the commit skips it with `reason: unit_mismatch`,
and the review screen marks it before Save."
markerAnalyteKey:
anyOf:
- type: string
- type: "null"
description: The analyte the matched marker is (the unit-conversion registry's key, e.g. `fasting-glucose`), or null
when the marker does not exist yet or its name matches none. With `markerUnit` it tells a client whether a
row in another unit can be converted on commit.
duplicateOf:
anyOf:
- type: string
@@ -68250,6 +68258,7 @@ components:
- confidence
- biomarkerMatch
- markerUnit
- markerAnalyteKey
- duplicateOf
additionalProperties: false
description: "One proposed reading transcribed from the upload. UNTRUSTED model output annotated server-side: