foxygit / digitalskrivare_merge Log in
commits tags

/docs/forsattsblad-ocr.md · 1.9 KB

raw

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

ElementSyfteFormatering
REMISSAnkare: "det här är ett remiss-försättsblad"Arial, 48 pt, fet
HSA-ID: <id>Maskinläsbar rad – den enda parsern behöverConsolas (monospace), 20 pt, fet, egen rad, ≥0,8 cm luft över och under
Mottagning: <namn>Människoläsbar kontrollArial, 14 pt
Remiss bifogad som sida 2.Instruktion till mottagarenArial, 16 pt, fet
GenereringstidpunktSpårbarhetArial, 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-texten

    frå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"