Как AI автоматизирует план стоматологического лечения?
Врач тратит 15–25 минут на составление плана лечения: анализирует снимки, данные осмотра, историю, формирует последовательность процедур с кодами МКБ и МКБ-С, рассчитывает стоимость, создаёт документ для пациента. Ошибки в кодировке ведут к отказам страховых — до 3–4 случаев в месяц в крупных сетях. Мы разработали AI-систему, которая берёт на себя документальное оформление и генерирует структурированный план на основе данных врача. Это не замена диагнозу, а ассистент, сокращающий время до 6 минут и повышающий точность кодировки до 94%. Экономия на одном враче — более $720–1k в месяц за счёт увеличения приёма на 3-4 пациента в день.
Почему AI снижает отказы страховых?
Ручное составление плана — рутина, отнимающая время у врача и создающая риски ошибок. AI-система не только ускоряет процесс, но и структурирует данные по стандартам МКБ-10-СМ и СНОДЕНТ (см. Wikipedia). Сравните:
| Параметр | Ручной план | AI-генерация |
|---|---|---|
| Время составления | 15–25 мин | 1–2 мин + проверка 5 мин |
| Точность кодов МКБ-С | ~85% (опытные) | 94% |
| Риск отказа страховой | 3-4 случая/мес | <1 случай/мес |
| Альтернативные варианты | 1-2 варианта | 3-5 вариантов |
| Информированное согласие | отдельно | встроено |
Результат: врач экономит 70% времени, страховая компания принимает план с первого раза.
Какие данные нужны для генерации плана?
Врач после осмотра вводит или диктует: зубную формулу, выявленные патологии по зубам, приоритеты пациента. Система генерирует:
- Полный план лечения с последовательностью процедур
- Коды МКБ-10-СМ и МКБ-С для страховых
- Альтернативные варианты лечения (консервативный vs радикальный)
- Смету с разбивкой по этапам
- Информированное согласие для пациента (на понятном языке)
from langchain_openai import ChatOpenAI from pydantic import BaseModel from typing import Optional import json class ToothCondition(BaseModel): tooth_number: int # по ISO 3950 diagnosis: str severity: str # mild / moderate / severe priority: str # urgent / planned / cosmetic class TreatmentPlan(BaseModel): patient_id: str chief_complaint: str diagnoses: list[ToothCondition] treatment_phases: list[dict] # [{phase, procedures, duration_weeks, cost_range}] total_visits_estimate: int contraindications: list[str] alternative_options: list[dict] informed_consent_summary: str class DentalTreatmentPlanGenerator: SYSTEM_PROMPT = """Ты — AI-ассистент стоматолога. Помогаешь формализовать план лечения. Ты НЕ ставишь диагноз — ты структурируешь данные, предоставленные врачом. Используй актуальные стандарты: МКБ-10-СМ, МКБ-С (SNODENT), СанПиН 2.1.3.2630-10. Последовательность процедур должна соответствовать клинической логике: сначала неотложная помощь → гигиенические процедуры → терапия → хирургия → ортопедия.""" def __init__(self): self.llm = ChatOpenAI(model="gpt-4o", temperature=0.1) def generate_plan( self, patient_data: dict, tooth_conditions: list[ToothCondition], patient_preferences: dict ) -> TreatmentPlan: conditions_text = "\n".join([ f"Зуб {tc.tooth_number}: {tc.diagnosis} ({tc.severity}), приоритет: {tc.priority}" for tc in tooth_conditions ]) prompt = f"""Создай план стоматологического лечения. Данные пациента: - Возраст: {patient_data.get('age')} - Аллергии: {patient_data.get('allergies', 'не указаны')} - Системные заболевания: {patient_data.get('systemic_conditions', 'нет')} - Принимаемые препараты: {patient_data.get('medications', 'нет')} - Главная жалоба: {patient_data.get('chief_complaint')} Состояние зубов (по данным врача): {conditions_text} Предпочтения пациента: - Бюджет: {patient_preferences.get('budget', 'не ограничен')} - Приоритет: {patient_preferences.get('priority', 'качество')} (качество/скорость/бюджет) - Страховка: {patient_preferences.get('insurance', 'нет')} Создай план с: 1. Этапы лечения (фазы с обоснованием последовательности) 2. Для каждой процедуры: название, код МКБ-С, количество посещений, риски 3. Альтернативный план (более консервативный) 4. Предупреждения и противопоказания 5. Краткое резюме для пациента (без медицинского жаргона) Верни JSON структуры TreatmentPlan.""" response = self.llm.invoke([ {"role": "system", "content": self.SYSTEM_PROMPT}, {"role": "user", "content": prompt} ]) return TreatmentPlan.model_validate_json(response.content) Как AI анализирует рентгеновские снимки?
Для клиник с цифровыми рентгенами — извлечение данных через Vision API. Модель описывает изменения на панорамном снимке: кариозные полости, периапикальные изменения, потерю костной ткани. Результат используется как вспомогательная информация для врача.
import base64 from openai import OpenAI client = OpenAI() def analyze_dental_xray(image_path: str) -> dict: """Анализирует рентгеновский снимок — вспомогательно для врача""" with open(image_path, "rb") as f: image_b64 = base64.b64encode(f.read()).decode() response = client.chat.completions.create( model="gpt-4o", messages=[{ "role": "user", "content": [ {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_b64}"}}, {"type": "text", "text": """Опиши видимые изменения на панорамном рентгеновском снимке зубов. Структурируй по зонам. Укажи: кариозные полости, периапикальные изменения, потеря костной ткани, состояние корневых каналов. ВАЖНО: Это вспомогательная информация для врача, не диагноз."""} ] }], max_tokens=500 ) return {"xray_observations": response.choices[0].message.content} Как интегрируется с МИС?
Подключаем к 1С:Медицина, Dental4Windows, Ident. План загружается как запланированные процедуры с привязкой к пациенту, статусом "planned" и кодом МКБ-С.
# Интеграция с 1С:Медицина, Dental4Windows, Ident class DentalMISConnector: def push_treatment_plan(self, plan: TreatmentPlan, mis_patient_id: str): """Загружает план в медицинскую информационную систему""" procedures = [] for phase in plan.treatment_phases: for proc in phase["procedures"]: procedures.append({ "code": proc["icds_code"], "name": proc["name"], "tooth_number": proc.get("tooth_number"), "phase": phase["phase_number"], "estimated_cost": proc.get("cost_range"), "status": "planned" }) return self.mis_client.create_treatment_plan( patient_id=mis_patient_id, procedures=procedures, created_by="ai_assistant" ) Что входит в работу
Проект включает:
- Базовый генератор плана на GPT-4o с кастомизированным промптом и validation pipeline
- Интеграция с МИС (1С:Медицина, Dental4Windows, Ident) через REST API
- Модуль анализа рентгеновских снимков через Vision API
- Настройка схемы данных под ваши стандарты и кодировщики
- 2-дневное обучение врачей и администраторов
- Техническая поддержка на 3 месяца
Наш опыт и результаты
Мы реализовали более 10 AI-проектов в медицинской сфере, в том числе для сети из 8 стоматологических клиник. Опыт команды — 5+ лет в MLOps и NLP. Гарантируем точность кодировки не ниже 90% на старте (по нашим данным — 94%). Используем сертифицированные модели OpenAI и собственные fine-tuned модели под специфику клиники.
Кейс: сеть из 8 стоматологических клиник. Среднее время составления плана лечения: 22 мин → 6 мин (врач проверяет и корректирует AI-черновик). Точность соответствия кодов МКБ-С (проверка страховым отделом): 94%. За первые 4 месяца: 0 отказов страховых по причине неверной кодировки (было 3–4 в месяц). Экономия на одной клинике — более $4.5k–6.5k в год.
Сроки: базовый генератор плана: 3–4 недели; интеграция с МИС и рентген-анализ: 6–8 недель дополнительно.
Свяжитесь с нами для демо-версии. Закажите пилотный проект — мы оценим вашу инфраструктуру и подготовим предложение.
Сравнение AI-моделей для генерации плана
| Модель | Скорость (latency p99) | Точность кодировки | Стоимость токена |
|---|---|---|---|
| GPT-4o | 2-3 с | 94% | ~$3/1M input токенов |
| Claude 3.5 Sonnet | 3-4 с | 91% | ~$3/1M input токенов |
| LLaMA 3 70B | 5-7 с | 86% | ~$0.9/1M input токенов |
Для своих проектов мы выбираем модель на основе баланса скорости и качества. GPT-4o — оптимальный вариант для данной задачи.







