Pinned Tweet
OpenMed 3.0 is out: Patient Journey.
One synthetic patient, five systems: a clinic note, hospital FHIR, an outside clinic's HL7, a lab CSV, a retina DICOM report. They disagree.
3.0 links every fact to its exact source, keeps the conflict open and amends without erasing.
The access check in code: one boundary, two views.
A researcher asking for the identified view gets role_denied. The de-identified view answers without a subject id. Withdraw consent and the same clinician request comes back consent_withdrawn.
Docs: github.com/maziyarpanahi/ope…
Runs offline, no hosted policy service. Synthetic data.
Same patient, same question, three answers.
Clinician: the identified record.
Researcher: refused on the identified view, served the de-identified one.
Consent withdrawn: nothing, for anyone.
OpenMed 3.0 audits every attempt, and the audit log holds none of the content.
Separated projections in openmed 3.0.0:
github.com/maziyarpanahi/ope…
Synthetic journey. The demo script wrote the de-identified view; the SDK keeps both apart, gates each read and writes a content-free audit row. Apache 2.0.
Three mentions, three honest outcomes: mapped, ambiguous, unmapped.
"hypertensive urgency" stays unmapped even though I10 (hypertension) is in the vocabulary. Close is not the same as correct.
Docs: github.com/maziyarpanahi/ope…
The mention text is stored as a keyed hash, not as text. Synthetic demo subset.
In a note, "PE" can mean pulmonary embolism or pleural effusion.
OpenMed 3.0 returns both codes, I26.99 and J90, marks the mention ambiguous and sends it to review. It does not pick one.
A term with no match stays unmapped instead of being forced onto the nearest code.
Terminology resolution in openmed 3.0.0:
github.com/maziyarpanahi/ope…
Synthetic 3-concept ICD-10-CM subset. OpenMed bundles no vocabularies; you bring your own. Apache 2.0.
Hugging Face's science team counts OpenMed among the most active AI-for-science contributors, with Ai2 and NVIDIA.
2,277 open models and 26 open datasets for medicine:
huggingface.co/OpenMed
Open weights and open data are how medical AI earns trust.
Hugging Face is becoming more and more the home of AI x Science projects. Open source accelerates scientific discovery when models, datasets, and tools are shared openly, all researchers can reproduce them and build on top of them.
A big thanks to @allen_ai, @OpenMed_AI, and @NVIDIAAI for being the most active contributors of AI for Science artifacts on @huggingface these days!
🤗 Hugging science heatmap: huggingface.co/spaces/huggin…
The FHIR round trip in code.
Export a 2-fact slice and the loss report names what did not fit: resolution_target_unsupported. Import it back and the facts are identical. Edit one status in transit and you get fhir_custody_conflict.
Docs: github.com/maziyarpanahi/ope…
Local and offline: no terminology server, no hosted validator.
A patient journey to FHIR R4 and back: 6 facts out as 8 entries, 6 identical facts back.
Now flip one Condition from inactive to active in transit. OpenMed 3.0 refuses the import as a custody conflict instead of merging it.
Every trip also reports what it could not carry.
FHIR Journey round trips in openmed 3.0.0:
github.com/maziyarpanahi/ope…
Synthetic record, 5 sources. The added resources and the edit were made by our test script. Apache 2.0.
Liquid's new LFM2.5-24B-A2B did a full skin follow-up review in 19 seconds, for under half a cent.
4 visits, synthetic patient, 5 tool calls, 0 failed. It caught the spot that grew 1.29 mm and cited the exact measurement for every finding.
2B active. Strong release @liquidai
The spot that grew: 8.70, 8.98, 9.40, 9.99 mm. +1.29 mm vs ±0.20 mm measurement error, so it's flagged. L02 moved −0.05 mm, inside the error, and it got that right.
LFM never sees the images. OpenDerm measures, LFM pulls the history via tool calls and writes the cited review.
It also left L07 open. It has no verified match in earlier visits, so there's no trend to report, and it didn't invent one.
Open weights on @huggingface:
huggingface.co/LiquidAI/LFM2…
Synthetic images, hosted run, model wait sped up 3x in the video. A review aid, not a diagnosis.
Ask OpenMed 3.0 for a clinical brief from a model that isn't on the machine, and you get nothing back.
No quiet cloud fallback. The deterministic local path returned a brief where every sentence cites an exact span of the note, with contact details masked first.
Guarded clinical briefs:
github.com/maziyarpanahi/ope…
Synthetic walkthrough with fixture NER/NLI. The brief contract is synthetic-only in 3.0, not a qualified summarizer for real patients.











