RadarTopicsBuildersWeeklyReads
Open Source Radar
maziyarpanahi/

openmed

GitHubWebsite

OpenMed is a local-first healthcare AI SDK for on-device clinical NER and HIPAA PII de-identification, with cross-platform support (Python, Swift, Android, browser) and a large model catalog. It emphasizes on-device processing, configurable PII handling, and optional network paths for models/datasets.

4.9kstars
600forks
363issues
Apache-2.0license
2025since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

OpenMed is a local-first runtime that turns clinical text into structured, de-identified insight on hardware you control. It supports extraction of medical entities and PII de-identification without cloud processing, though model downloads, remote adapters, telemetry, and some integrations may use a network. SDKs and runtimes exist for Python, Swift, Android, and browser surfaces. The project is Apache-2.0 licensed.

How it works

The workflow runs clinical text through a local OpenMed runtime to produce medical entities, PII findings, and de-identified text. It provides multiple execution paths (CPU, CUDA, MLX, mobile, service, browser adapters) and can load models from a local directory or remote catalogs. Outputs include entities, PII detections, and de-identified text, without necessarily contacting cloud services.

Getting started

Quick start sections show installation and usage across environments:

  • Core + Hugging Face runtime (Linux, macOS, Windows; CPU or CUDA):
    pip install --upgrade "openmed[hf]"
    
  • REST service:
    uvicorn openmed.service.app:app \
      --host 0.0.0.0 --port 8080
    
  • Apple Silicon acceleration (MLX):
    pip install --upgrade "openmed[mlx]"
    
  • Android (Kotlin) dependency example:
    dependencies {
        implementation("com.github.maziyarpanahi:openmed:v2.0.0")
    }
    
  • Python example usage snippets for analyze_text and examples with local or offline models are provided in the README.

Recent releases

Latest releases show continued cross-platform expansion and bug fixes:

  • v2.0.0 (2026-07-28): OpenMed v2.0.0 expands local-first privacy and platform coverage across Python, Swift, Kotlin.
  • v1.9.1 (2026-07-14): SwiftPM packaging and release distribution fixes; cross-platform rollout for 1.9.
  • v1.9.0 (2026-07-14): OpenMed + ONNX: faster CPU, browser and Android support.
  • v1.8.1 (2026-07-10): architecture-safe attention hotfix for DebertaV2ForTokenClassification loading.
  • v1.8.0 (2026-07-09): cross-platform runtime, production service, privacy coverage, and browser/ONNX support.

Traction

Stars: 4851 Forks: 600 Open issues: 363

Behind the repo

(Links to startup/company not provided in facts.)

Caveats

  • License: Apache-2.0
  • Age: Created 2025-10-04; last push 2026-08-04
  • Local-first runtime note: model downloads, remote adapters, telemetry-enabled paths, and certain integrations may use a network; review terms per model/dataset.
Agent skills inside · 72
All skills →
coding-icd10Suggests candidate ICD-10-CM diagnosis codes (and ICD-10-PCS procedure codes) for diagnoses and procedures extracted by OpenMed, with rationale and a human-coder caveat. Use when the user wants to code a problem list, map a diagnosis span to a billable ICD-10-CM code, route a finding to the right chapter, cross-walk ICD-9 via GEMs, or pre-fill an encounter for coder review. Trigger keywords: ICD-10-CM, ICD-10-PCS, diagnosis coding, billable code, GEMs, problem list coding, encounter diagnosis, chapter range, CMS code lookup. references/icd10-chapters.md holds the chapter/section ranges. Pairs Code Review & Qualityextracting-sdohExtracts social determinants of health (SDOH) — housing instability, food insecurity, unemployment, transportation barriers, social isolation, financial strain — from clinical narrative and maps the spans to ICD-10-CM Z-codes (Z55–Z65). Use after running OpenMed NER when the user wants SDOH surfacing, Z-code suggestion, health-equity analytics, or to recover SDOH that is documented in free text but not coded. Pairs with OpenMed analyze_text output. Standards: ICD-10-CM Z55–Z65, Gravity Project value sets, n2c2 2022 SDOH track. Trigger keywords: SDOH, social determinants, Z-codes, housing, foodData & Analyticsauthoring-model-cardsGenerate a model card for an OpenMed clinical NER or de-identification model documenting intended use, quantitative metrics, subgroup performance, limitations, and a medical-device disclaimer for clinical AI governance. Use when the user wants to write or update a model card, a README model section, or governance documentation, or to turn OpenMed eval outputs (release gate report, fairness_report, error_report) into the card's metrics and limitations sections. Trigger on \"model card\", \"intended use\", \"model documentation\", \"governance\", \"limitations section\", \"datasheet\", or \"FDA/Documentationchecking-hipaa-complianceRuns a HIPAA Privacy and Security Rule checklist over a data pipeline and produces a gap report before deploying OpenMed on PHI. Use when the user is about to process protected health information, needs a pre-deployment compliance review, wants to know which administrative, physical, and technical safeguards apply, is scoping a Business Associate Agreement, or must document minimum-necessary and de-identification controls. Trigger keywords: HIPAA, Privacy Rule, Security Rule, 45 CFR 164, PHI, BAA, business associate, minimum necessary, safeguards, Safe Harbor, Expert Determination, gap analysiSecurityetl-to-omop-cdmMap OpenMed-extracted, terminology-coded conditions, drugs, and measurements into OMOP CDM v5.4 clinical tables (condition_occurrence, drug_exposure, measurement) for OHDSI/ATLAS analytics. Use when the user wants to load NLP-derived facts into an OMOP database, build an OHDSI ETL from clinical notes, populate condition_occurrence or drug_exposure from text, or standardize note-derived findings to OMOP standard concepts. Covers the source-to-standard concept mapping pattern, required vs optional CDM fields, type concepts for NLP-derived rows, and the user-supplied OHDSI vocabulary (CONCEPT/CONDatabasesingesting-clinical-documentsTurn scanned faxes, images, and CSV/CDA exports into clean text ready for OpenMed de-identification and NER, fully on-device. Use when the user has clinical documents (image scans, photographed/faxed notes, tabular CSV/TSV exports, C-CDA XML) and needs OCR or structured intake before openmed.deidentify and openmed.analyze_text, asks about openmed.multimodal, OCR engines (Tesseract / PaddleOCR), tabular redaction, or layout and reading order. Covers the verified ocr() and redact_document() entry points and the ExtractedDocument contract. Pairs before deidentifying-clinical-text and extracting-cData & Analytics
SharePost on XLinkedIn
All trending reposRevenue-verified startups →