Feature Map & Capabilities¶
This page inventories the main surfaced capabilities in OpenMed and maps them back to source modules, docs, and runnable examples. For release-specific coverage, see OpenMed v3.0.0 migration and the changelog, the historical OpenMed v2.5.0 Release Notes, the OpenMed v1.9.1 Release Notes, the OpenMed v1.8.0 Release Notes, and the historical OpenMed v1.6-v1.7 Feature Coverage. For the model families available by clinical specialty, use the clinical-domain model guide.
Longitudinal Patient Journey¶
Journey capabilities are primarily implemented in Python. Shared client and OpenMedKit contracts do not imply native execution of every Python feature. Optional training is not a feature or SDK-release prerequisite; independently qualified local models and explicit caller-supplied providers remain subject to runtime calibration, privacy and evidence requirements.
| Area | What it covers | Where to look |
|---|---|---|
| Versioned evidence and history | Immutable source artifacts, facts, conflicts, corrections and point-in-time snapshots. | Journey contracts, Longitudinal Journey |
| Governed local storage | Content-addressed files, transactional SQLite history, optional PostgreSQL metadata and replay-safe ingestion. | Local Journey store, PostgreSQL/object store |
| Common resource surfaces | Governed Python, REST, GraphQL and read-only SQL resources with pagination and typed errors. | Journey resource API |
| Contract and release evidence | Synthetic end-to-end fixtures, replay, privacy, provenance and platform-sensitive release gates. | Golden Journey, Journey release gate |
Guarded Clinical Intelligence¶
The v3.0 clinical workstreams map to these Python modules, guides and examples. Optional runtimes, model artifacts and caller-supplied local providers have their own admission requirements. The synthetic brief demonstrates contracts and review hand-offs; it does not establish clinical validation or model quality.
| Area | Source modules | Guides | Runnable examples |
|---|---|---|---|
| Guarded clinical brief | openmed/clinical/brief.py | Brief pipeline, synthetic walkthrough | Fixed synthetic brief |
| Post-de-identification summarization | openmed/clinical/summarize.py, openmed/clinical/summarize_backends.py | Summarization, input contract, safety envelope | Composed in the fixed synthetic brief; no standalone script. |
| Clinical NLI and claim verification | openmed/clinical/nli.py, openmed/clinical/nli_backends.py, openmed/clinical/nli_gate.py | Verification, local checkpoints, abstention | Test-only NLI provider in the fixed synthetic brief; no standalone script. |
| Social determinants of health | openmed/clinical/sdoh.py, openmed/clinical/sdoh_evidence.py, openmed/clinical/sdoh_temporal.py | Evidence contract, temporal qualifiers, counterfactuals, false-positive stress | No standalone script. |
| Guarded clinical relations | openmed/clinical/relations/ | Medication changes, review priority, multilingual relations | No standalone script. |
| Timelines and temporal normalization | openmed/clinical/timeline/, openmed/clinical/temporal_normalizer.py, openmed/clinical/timeline_graph.py | Timeline assembler, temporal normalization, timeline evidence | No standalone script. |
| Note routing and document profiles | openmed/clinical/note_router.py, openmed/clinical/radiology_profile.py, openmed/clinical/pathology_profile.py, openmed/clinical/discharge_profile.py | Routing, radiology, pathology, discharge | No standalone script. |
| OCR and laboratory measurements | openmed/multimodal/ocr.py, openmed/clinical/lab_measurements.py | Memory-only OCR, lab normalization, reference ranges | OCR in multimodal example; no standalone laboratory script. |
| Evidence, citations and human review | openmed/clinical/evidence_packet.py, openmed/clinical/review_packet.py, openmed/clinical/review_state_machine.py | Evidence packets, citation boundaries, review packets, review transitions | Evidence and synthetic review transitions in the fixed synthetic brief; no standalone review script. |
| Language packs and Indic/Chinese routing | openmed/clinical/lexicons/context_cues.py, openmed/clinical/relations/multilingual.py, openmed/core/script_detect.py | Context analysis, language matrix, Chinese grounding, multilingual relations | Chinese synthetic note, Hindi/Hinglish note cover de-identification; no standalone clinical language-pack script. |
| Clinical SLM manifests and probes | openmed/models/clinical_slm_manifest.py, openmed/models/clinical_slm_capabilities.py, openmed/models/clinical_slm_memory.py, openmed/models/clinical_slm_templates.py | Artifact manifest, capabilities, memory preflight, template digests | No standalone script. |
Privacy And De-identification¶
The guarded clinical brief composes local de-identification, reviewed evidence, generation, NLI, citations and review metadata. examples/v30_clinical_brief.py demonstrates the full hand-off on a fixed synthetic note with clearly labelled test-only providers; it is not a model-quality or clinical readiness claim.
| Area | What it covers | Where to look |
|---|---|---|
| Policy-aware de-identification | deidentify, policy profiles, calibrated thresholds, arbitration, cascade routing, safety sweeps, custom recognizers, and clinical term protection. | openmed/core/pii.py, openmed/core/pipeline.py, openmed/core/policy.py, openmed/core/clinical_protect.py, PII Anonymization |
| Canonical span contracts | Versioned OpenMedSpan, schema fingerprints, redaction action schemas, provenance, and compatibility gates. | openmed/core/schemas/, De-identification API, examples/v16_policy_audit_release_gates.py |
| Audit and review evidence | Signed audit reports, reproducibility hashes, review bundles, FHIR Provenance/AuditEvent, audit diffs, and PHI-safe previews. | openmed/core/audit.py, openmed/core/redaction_preview.py, openmed/risk/audit_diff.py, openmed/clinical/exporters/fhir/provenance.py, examples/v16_policy_audit_release_gates.py |
| Runtime de-identification features | DeidentificationResult.to_dataframe, surrogate vaults, patient-keyed date shifting, format-preserving redaction, minimum-necessary action selection, streaming redaction, explain traces, section stamping, and risk budgets. | openmed/core/pii.py, openmed/core/surrogate_vault.py, openmed/core/date_shift.py, openmed/core/anonymizer/format_preserve.py, openmed/core/redaction_strength.py, openmed/core/streaming.py, openmed/core/explain.py, openmed/risk/budget.py |
| Multilingual PII | 42 supported PII language codes: am, ar, as, bn, cs, da, de, el, en, es, fa, fr, gu, he, hi, id, it, ja, kn, ko, ml, mr, nl, no, or, pa, pl, pt, ro, ru, sv, sw, ta, te, th, tr, uk, ur, vi, xh, zh, and zu; Russian uses a documented default-model placeholder. Bengali, Chinese, and Tamil have dedicated registry entries. A user-configured Indic adapter can serve Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, and Telugu. Locale validators, script detection, date/number normalization, deterministic locale PHI generation, and ID-only national-ID providers cover the wider routing surface. | openmed/core/pii_i18n.py, openmed/core/script_detect.py, openmed/core/locale_formats.py, openmed/core/anonymizer/locales.py, openmed/training/synthetic/locale_phi.py, examples/pii_multilingual_new_languages.py |
Multimodal And Structured Inputs¶
| Area | What it covers | Where to look |
|---|---|---|
| Multimodal document contract | ExtractedDocument, SourceSpan, lazy handler registration, source-offset mapping, and dispatcher-based redaction. | openmed/multimodal/base.py, examples/v17_multimodal_browser_interop.py |
| OCR and scanned documents | Shared OCR result contract, fake test engine, Tesseract, PaddleOCR, EasyOCR, docTR, OCR language selection, and available-engine discovery. | openmed/multimodal/ocr.py, tests/unit/multimodal/test_ocr_engines.py, examples/v17_multimodal_browser_interop.py |
| Documents and metadata | HTML/HTM source-offset extraction and markup-preserving redaction, EML/optional MSG ingestion with MIME and attachment redaction, Markdown/AsciiDoc, EPUB, and RTF extraction, DOCX offset extraction, PPTX slide/table/speaker-notes redaction, source text redaction, image/PDF/DOCX metadata scrubbing, and residual metadata verification. | openmed/multimodal/documents_html.py, openmed/multimodal/email.py, Email Ingestion, openmed/multimodal/documents_docx.py, openmed/multimodal/pptx.py, PPTX Redaction, openmed/multimodal/epub.py, openmed/multimodal/rtf.py, RTF Extraction, openmed/multimodal/metadata_scrub.py |
| DICOM, contacts, and PDFs | DICOM header de-identification, burned-in pixel OCR redaction, vCard/iCalendar PHI redaction, bbox-preserving multi-column PDF reading-order reconstruction, deterministic redacted-PDF rendering, global text-removal verification, and masked layout-fidelity regression gates. | openmed/multimodal/dicom.py, openmed/multimodal/contacts_calendar.py, openmed/multimodal/documents_pdf_layout.py, openmed/multimodal/render_pdf.py, openmed/multimodal/verify_pdf.py, PDF Reading Order, Redacted PDF Rendering And Fidelity |
| Chat logs and tabular data | JSONL chat-log redaction with speaker pseudonymization, CSV/TSV PHI column classification, column actions, and PHI-safe manifests. | openmed/multimodal/chatlog_jsonl.py, openmed/multimodal/tabular_csv.py, examples/v17_multimodal_browser_interop.py |
| Community health worker forms | ODK, CommCare, and KoBoToolbox JSON/CSV export detection, XForm path semantics, repeat preservation, narrative de-identification, metadata hashing, and coordinate generalization. | openmed/multimodal/chw_forms.py, CHW Form Export De-identification, examples/chw_form_deid.py |
Health-data Interop¶
| Area | What it covers | Where to look |
|---|---|---|
| FHIR helpers | Deterministic R4 Bundles, bundled base-R4 structural validation, local IG profile checks, stable urn:uuid references, OperationOutcome, Provenance, AuditEvent, CodeableConcept builders/checkers, SMART-on-FHIR bulk ingestion, and coding provenance. | openmed/clinical/exporters/fhir/, openmed/clinical/exporters/codeable_concept.py, openmed/clinical/exporters/codeable_concept_check.py, openmed/service/smart_backend.py, FHIR Interop Helpers |
| OMOP and CDM loading | Deterministic note-to-CDM extraction, versioned clinical-fact projection, digest-bound aggregate quality reports, and synthetic reference reconciliation. | openmed/interop/cdm_etl.py, openmed/interop/omop/, OMOP fact projection, OMOP quality bridge |
| FHIR operations and bulk export | $de-identify resource/Bundle wrappers and FHIR Bulk NDJSON de-identification summaries. | openmed/interop/fhir_operations.py, openmed/interop/fhir_bulk.py, examples/v17_multimodal_browser_interop.py |
| HL7 v2 and CDA/C-CDA | HL7 v2 segment/field redaction, CDA/C-CDA XML de-identification, and multimodal XML dispatch. | openmed/interop/hl7v2.py, openmed/interop/cda.py, HL7 v2 De-identification |
| Optional adapters | Presidio, PHILTER, pyDeid, GLiNER-BioMed, LangChain, and spaCy adapter surfaces. | openmed/interop/, Integration Capability Matrix, LangChain Redaction Wrapper, spaCy Pipeline Component |
Clinical Extraction¶
| Area | What it covers | Where to look |
|---|---|---|
| Clinical context | Negation, temporality, uncertainty, experiencer, section-aware priors, context offsets, multilingual cue lexicons, and negation-scope boundaries. | openmed/clinical/context.py, openmed/clinical/negation_scope.py, openmed/clinical/lexicons/context_cues.py, Clinical Context & Extraction Depth |
| Clinical relations | Medication attributes plus character-offset Chinese and Hindi relation candidates, constrained graph decoding, assertion propagation, and per-language relation F1. | openmed/clinical/relations/, openmed/eval/relation_metrics.py, Multilingual Clinical Relations |
| Clinical normalization | Labs, vitals, medication sigs, problem-list status, summary cards, assertion graphs, event frames, terminology normalization, UCUM units, and flat-table export. | openmed/clinical/, openmed/clinical/assertion_graph.py, openmed/clinical/events/, openmed/clinical/normalization/, openmed/clinical/units/, Clinical Context & Extraction Depth |
| Clinical grounding | Free vocabulary grounding, lexical aliases, RxNorm, ICD-10-CM, HPO, and CodeableConcept export. | openmed/clinical/grounding/, openmed/clinical/exporters/codeable_concept.py |
| Zero-shot domains | GLiNER label maps, clinical NER families, cardiology, dermatology, ophthalmology, microbiology, nutrition, anesthesia, endocrinology, gastroenterology, clinical genomics, and routing metadata. | openmed/zero_shot/, openmed/ner/families/, Zero-shot Toolkit, Zero-shot NER How-to |
Models, Backends, And Browser Export¶
| Area | What it covers | Where to look |
|---|---|---|
| Model registry and manifests | Curated metadata, manifest schema validation, manifest diffs, model recommendations, model card generation, and publishing metadata. | models.jsonl, openmed/core/model_registry.py, openmed/core/manifest_schema.py, openmed/core/manifest_diff.py, openmed/core/model_card.py, Model Registry, Model Manifest |
| One-call inference | analyze_text, typed AnalyzeResult, validation, grouping, and dict/JSON/HTML/CSV formatting. | openmed/__init__.py, openmed/core/results.py, Analyze Text Helper |
| Loader and batch processing | Model loading, cache reuse, tokenizer caching, batch analyze_text, batch PII extraction, and ordered de-identification output. | openmed/core/models.py, openmed/processing/tokenizer_cache.py, openmed/processing/batch.py, ModelLoader & Pipelines, Batch Processing |
| Apple and mobile runtimes | Python MLX, Laneformer MLX-LM, Swift OpenMedKit, Kotlin/Android OpenMedKit, React Native bridge, Core ML export, MLX quantized export, mobile benchmarks, and PyTorch MPS selection/tuning. | openmed/mlx/, openmed/coreml/, openmed/torch/, swift/OpenMedKit, android/openmedkit, js/openmedkit-react-native, MLX Backend, Swift Package, Android Span Parity, CoreML Packaging |
| Quantized and browser formats | AWQ, GPTQ, bitsandbytes loading, ONNX/WebGPU, ONNX Runtime Web, ORT Mobile, OpenVINO, TensorRT, Transformers.js bundle export, and ONNX/quantized manifest metadata. | openmed/onnx/, js/openmedkit-web/, Android ONNX Export, ONNX Runtime Web Loader, OpenVINO Runtime, TensorRT Runtime, Transformers.js Export |
| Training infrastructure | DAPT corpus assembly, Mode-A distillation, DirectID contracts, hard-negative sampling, active learning, adjudication, and span-relation graph decoding. | openmed/training/, openmed/core/decoding/graph.py |
Service, Clients, And Operations¶
| Area | What it covers | Where to look |
|---|---|---|
| REST and gRPC service | FastAPI endpoints, shared runtime, API-key/JWT auth, no-PHI logging, tracing, gRPC, async jobs, webhooks, model warm pools, dynamic batching, request coalescing, rate/concurrency limits, trusted hosts, CORS, /livez, /readyz, and metrics. | openmed/service/, REST Service, REST Authentication, gRPC Service, Async REST Jobs & Webhooks, REST Tracing |
| Kubernetes model operations | Declarative OpenMedModel resources, manifest-pointer warm-pool rollouts, status conditions, events, rollback, CRD validation, and least-privilege RBAC. | deploy/operator/, Kubernetes Model Operator |
| Core pipeline observability | Optional, no-PHI spans and aggregate histograms for all ten de-identification pipeline stages, with lazy OpenTelemetry loading and no exporter by default. | openmed/core/telemetry.py, openmed/core/pipeline.py, Core Pipeline Observability |
| Typed clients | Python service client and TypeScript REST client parity. | openmed/service/client.py, clients/typescript/, clients/typescript/README.md |
| Streaming and connectors | Core incremental de-identification, Kafka/Pulsar streaming, Spark structured streaming, object storage, Dask, DuckDB, lakehouse, columnar redaction, warehouse remote functions, and transformation packages. | openmed/processing/, openmed/integrations/, openmed/interop/duckdb_udf.py, Columnar Redactor, Lakehouse Table Redaction, Warehouse Remote-Function Handler, Dask DataFrame De-identification |
| CLI | openmed init, openmed deid, FHIR bundle, model recommendation/diff/card, policy diff/lint, doctor, gates preview/bundle, audit/risk, active learning, benchmark, and calibration commands. | openmed/cli/, Project Scaffold, Contributing & Releases |
Evaluation, Risk, And Release Evidence¶
| Area | What it covers | Where to look |
|---|---|---|
| Evaluation harness | Benchmark reports, public biomedical NER, DrugProt, i2b2 loader stubs, SHIELD, clinical PHI manifests, dataset cards, coverage, section recall, caching, fairness, robustness, and error analysis. | openmed/eval/, Eval Harness & Metrics, Golden Benchmark |
| Leakage and utility evidence | Leakage heatmaps, model scorecards, threshold sweeps, paired significance, flaky-run detection, calibration reliability, over-redaction, utility loss, policy compliance, and benchmark history diffs. | openmed/eval/leakage_heatmap.py, openmed/eval/scorecard.py, openmed/eval/threshold_sweep.py, openmed/eval/utility.py, openmed/eval/history.py |
| Risk metrics | Re-identification risk, membership/linkage probes, k-anonymity, l-diversity, t-closeness, risk budgets, dashboards, and audit diffs. | openmed/risk/, openmed/eval/attacks/, examples/v16_policy_audit_release_gates.py |
| Release gates and status | Fail-closed gates, evidence bundles, last-green baseline, device tiers, nano certification, status pages, and leaderboard pages. | openmed/eval/release_gates.py, openmed/eval/evidence_bundle.py, openmed/eval/tiers.py, openmed/eval/nano_cert.py, docs/status/, docs/leaderboard/, Release Streams & Channels |
Security And Supply Chain¶
| Area | What it covers | Where to look |
|---|---|---|
| Responsible disclosure | Private vulnerability reporting, security issue routing, breach notification runbook, and breach report template. | SECURITY.md, docs/security/disclosure-policy.md, docs/compliance/breach-notification-runbook.md, docs/compliance/templates/breach-report-template.md |
| Dependency and release controls | License policy, pip-audit ignores, SBOM generation, container SBOMs, image signing, SLSA provenance, secret scanning, vulnerability scanning, reproducible locks, GitHub Actions ref validation, lockfile drift, repo policy, and doctest-backed examples. | docs/security/, docs/supply-chain/, scripts/release/, scripts/security/, docs/contributing/reproducible-dependencies.md, tests/unit/release/ |
| Privacy-safe diagnostics | PHI-safe progress callbacks, NDJSON errors, active-learning records, hashed examples, explain traces, dataset cards, metadata scrubbing, and no-raw-PHI guidance. | openmed/multimodal/metadata_scrub.py, openmed/training/active_learning.py, openmed/eval/dataset_card.py, Compliance Posture, Secret Handling |
Suggested Reading Order¶
- Quick Start - install plus first inference.
- OpenMed 3.0.0 migration - review intentional API changes and validation requirements.
- Examples - runnable notebooks and scripts.
- PII Anonymization - de-identification methods and policy workflows.
- REST Service, Swift Package, and Transformers.js Export - deployment surfaces.
- Eval Harness & Metrics, Device Tiers & SLOs, and Release Streams & Channels - release evidence and operations.