AI Medical NLP System (EHR Data Extraction)

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Medical NLP System (EHR Data Extraction)
Complex
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Разработка AI-системы медицинского NLP (извлечение данных из историй болезни)

Медицинская история болезни содержит богатые клинические данные в неструктурированном тексте: симптомы, диагнозы, назначения, лабораторные показатели. AI-NLP превращает эти тексты в структурированные данные для аналитики, поддержки клинических решений и автоматизации документооборота.

Клинические NLP-задачи

Clinical NER: извлечение медицинских сущностей

  • DISEASE: «артериальная гипертензия», «сахарный диабет 2 типа»
  • DRUG: «Метформин», «Лизиноприл»
  • DOSAGE: «500 мг», «2 раза в день»
  • PROCEDURE: «ЭКГ», «коронарография»
  • LAB_VALUE: «глюкоза 7.8 ммоль/л», «HbA1c 8.2%»
  • ANATOMY: «левый желудочек», «аорта»

Assertion detection: контекст сущности

  • present: диагноз установлен
  • absent: «болей в груди нет»
  • uncertain: «возможно, стенокардия»
  • history: «в анамнезе инфаркт»
  • family_history: «у отца гипертоническая болезнь»

Temporal reasoning: хронология событий — когда началось, когда выявлено, когда лечили.

Стек для русскоязычного медицинского NLP

Готовые инструменты для медицинского NLP на русском языке ограничены — это нишевая область. Варианты:

BERT fine-tuning на медицинских данных: DeepPavlov/rubert-base-cased + размеченный медицинский корпус. Требует 2000–5000 аннотированных предложений на тип сущности.

BiomedBERT / PubMedBERT (для английского): затем cross-lingual transfer или перевод.

LLM с медицинским промптингом: GPT-4o / Claude с few-shot медицинскими примерами. Хорошее качество без обучения, но:

  • On-premise обязателен для соблюдения медицинской тайны
  • Возможны галлюцинации при редких терминах

medspaCy / scispaCy (английский): специализированные spaCy модели для биомедицинских текстов. Интеграция с UMLS (Unified Medical Language System) для нормализации терминов.

Нормализация медицинских терминов

Одно понятие — множество написаний: «сахарный диабет 2 типа», «СД2», «Diabetes mellitus type 2», «T2DM». Нормализация к UMLS CUI (Concept Unique Identifier) или МКБ-10 коду (E11 для СД2) позволяет агрегировать данные.

from quickumls import QuickUMLS

matcher = QuickUMLS(QUICKUMLS_FP, overlapping_criteria="score", threshold=0.7)

def normalize_medical_term(term: str) -> list[dict]:
    matches = matcher.get_matches([[{"token": t} for t in term.split()]])
    return [{"cui": m["cui"], "name": m["preferred_name"], "score": m["similarity"]}
            for m in matches[0] if m["similarity"] > 0.7]

Privacy и соответствие законодательству

Медицинские данные — особая категория персональных данных (ст. 10 152-ФЗ). Требования:

  • Обработка только с явного согласия или на законном основании (лечение)
  • Деперсонализация для аналитики и обучения моделей
  • Хранение только на российской инфраструктуре
  • Шифрование in-transit и at-rest (AES-256)
  • Специальная лицензия на медицинскую деятельность при определённых применениях

LLM: только on-premise (Llama, Mistral) или российские облака без передачи данных за рубеж.

Применение в клинической практике

Поддержка принятия клинических решений (CDSS): система предупреждает врача о потенциальных взаимодействиях лекарств, противопоказаниях на основе диагнозов из истории болезни.

Автоматическое кодирование диагнозов: МКБ-10 코드 по тексту диагноза (отдельный сервис).

Популяционная аналитика: агрегация de-identified данных для исследования распространённости заболеваний, эффективности лечения.

Клиническое резюме: автоматическая выписка для направлений, структурированный Summary по госпитализации.

Оценка качества

  • Entity-level F1 по каждому типу сущностей
  • Assertion detection accuracy (особенно critical: отличить «присутствует» от «отсутствует»)
  • Drug-dosage linkage accuracy: правильная связь «препарат → доза»

Для safety-critical применений: human validation > 95% F1 обязателен перед production.

Сроки реализации

Месяц 1–2: Сбор и разметка медицинского корпуса, обучение базового NER

Месяц 3–4: Assertion detection, нормализация к МКБ/УМЛС, деперсонализация

Месяц 5–6: Интеграция с МИС, валидация на клинических данных, пилот

Месяц 7–8: CDSS модуль, аналитический дашборд, промышленное внедрение