Försättsbladets OCR-kontrakt (v1)
Fas 0-beslutet: nedströmssystemet läser mottagningen från försättsbladet med server-side OCR på text (ingen streckkod, ingen metadatafil). Vi äger formatet.
Vad som renderas på sida 1
| Element | Syfte | Formatering |
|---|---|---|
REMISS | Ankare: "det här är ett remiss-försättsblad" | Arial, 48 pt, fet |
HSA-ID: <id> | Maskinläsbar rad – den enda parsern behöver | Consolas (monospace), 20 pt, fet, egen rad, ≥0,8 cm luft över och under |
Mottagning: <namn> | Människoläsbar kontroll | Arial, 14 pt |
Remiss bifogad som sida 2. | Instruktion till mottagaren | Arial, 16 pt, fet |
| Genereringstidpunkt | Spårbarhet | Arial, 9 pt |
Allt vänsterställt, överst på A4, svart på vitt. Ingen patientdata på bladet.
Parserkontrakt
Kontraktet är kod, inte bara text: OcrContract.
- Skriva:
OcrContract.FormatHsaIdLine(hsaId)→"HSA-ID: SE2321000131-E000000000001" - Läsa:
OcrContract.TryParseHsaId(ocrText, out var hsaId)körs på OCR-textenfrån sida 1.
Parsern tål vanligt OCR-brus:
- versaler/gemener spelar ingen roll (
HSA-ID,hsa id) - tappat kolon eller bindestreck i etiketten
- enstaka blanksteg som OCR:n lagt in mitt i id:t (
SE2321000131 - E000…) - omgivande text och radbrytningar före/efter
Den stannar vid radslut, så den läcker inte in i Mottagning:-raden under.
Inte med i v1
- Kontrollsiffra / checksumma. Medvetet utelämnad nu. Läggs till i Fas 3 om
pilottestet visar att OCR:n läser fel – då kan servern validera i stället för att skicka remissen till fel mottagning.
- Fast geometrisk OCR-zon. Vi ankrar på nyckelordet
HSA-ID:, inte på koordinater.
Iterera på layouten
dotnet run --project tools/Remiss.CoverPreview -- preview.pdf SE2321000131-E000000000009 "Testmottagning"