How it works
How twenty years of letters becomes one screen.
Documents go in as they are. What comes out is a set of discrete clinical events, each bound to a SNOMED CT concept and, where the terminology supports it, resolved to a place on the body — a history a clinician can read in seconds, and a coded data set underneath it.
Seven modules do the work. Two are built once; five run for every record. They are named the same way everywhere on this site and in the code.
Module 01 Vocabulary
The complete SNOMED CT release is imported into a structured database — concepts, descriptions and relationships — giving the system the full international clinical vocabulary to work against.
350,000+ concepts · findings · procedures · body structuresModule 02 Anatomy
The SNOMED CT body-structure hierarchy is mapped to a library of registered anatomical layers — male and female, front and back, with laterality declared per layer — so an anatomical concept can resolve to a precise place on the figure.
123037004 |Body structure| → layer · ~300 layers · see the libraryModule 03 Ingestion
Discharge summaries, operation notes and specialist letters go in as they are. No templates, no forms to fill — the messy source documents themselves. The framework provides a webhook and a queuing process; you decide what flows through them and when.
webhook · queue · PDFs, letters, op notes → textModule 04 Extraction
Two passes. The first divides the document into coherent clinical sections, so a dated presentation stays with its treatment instead of being split at an arbitrary line break. The second pulls discrete events out of those sections — a diagnosis, a procedure, a finding — each proposed with the passage it came from, so nothing lands in a record without something to check it against.
pass 1 segmentation · pass 2 events · proposed, not assumedModule 05 Coding
Each event is bound to a SNOMED CT concept, and its anatomy resolved through SNOMED CT relationships where they are available. Anatomy that is ambiguous or unresolved is held for human review rather than guessed at.
Condition → 363698007 |Finding site| → body regionModule 06 Review
The gate, set where you choose. Events arrive proposed, scored and shown with their evidence. How much passes automatically and how much a person sees is your policy, not a decision baked into the framework. Anything the coding module could not resolve waits here rather than being guessed at.
your thresholds · evidence attached · audit trailModule 07 Patient history
What a clinician actually opens: timeline, body map and events reading as one thing. The same approved events sit in your own database, coded and dated, ready for whatever you build next.
timeline · body map · coded rowsSee it
Sixty-four events, one screen.
A synthetic patient record taken through the pipeline. The timeline runs across the top, the body shows what is active at the selected point in the history, and the events sit beside it in order.
Screens show a synthetic test record, not a real patient. No identifiable clinical data appears anywhere on this site.
One line, all the way through
What a single sentence becomes.
A clause buried in a twenty-year-old letter, taken through the whole pipeline.
What comes out
Two audiences, one pass.
A clinician opens the patient and sees the whole history at once: what has happened, where on the body, and in what order. No scrolling through correspondence, and no relying on the patient to narrate their own history correctly under pressure.
Historic free text stops being unreadable at scale. Every event leaves the pipeline as a SNOMED-coded row with a date, an anatomical site and a link back to the source document — the shape a health IT team needs before a data lake is worth loading. The load itself is yours to write.
Most of what an organisation knows about its patients was written before structured records existed, and it has stayed effectively unqueryable ever since. Coding it retrospectively is the whole point: once a history is bound to SNOMED CT, it can be counted and cohorted, and it becomes the raw material for a FHIR mapping or a warehouse load — those exports are your build, not something the framework ships today.
- RetrospectiveDecades of letters, op notes and discharge summaries coded against the current release
- PortableStandards-based output rather than a vendor-specific representation
- TraceableEvery coded event keeps its provenance — the document and passage it came from
- YoursSelf-hosted end to end; no patient data leaves the environment you run it in
Where the judgement sits
You set the policy. The framework enforces it.
Extraction proposes. What happens next is your call: how much is accepted automatically, what routes to a person, and where the threshold sits are configuration owned by the implementing organisation, not decisions baked into the framework. What the framework guarantees is that everything arrives with its source evidence attached and that it flags rather than guesses when it can't resolve something confidently.
The framework makes no clinical decision, offers no diagnosis and replaces no record of truth. It is a reading aid and a coding pipeline. How closely a human reads its output — and under what governance — is a decision for the organisation running it, and one worth making deliberately.
The modules in detail
Inputs, outputs and the seam where you can replace each one.
Seen enough?
Six founding implementers get repo access, and a say in what gets hardened first.