AI-система автоматичної генерації плану лікування

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
AI-система автоматичної генерації плану лікування
Середній
~2-4 тижні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

AI-генерація плану стоматологічного лікування

Складання плану лікування — рутинна але відповідальна задача: лікар аналізує знімки, дані огляду, медичну історію, формує послідовність процедур з кодами МКБ та МКБ-С, розраховує вартість, створює документ для пацієнта. На все це йде 15–25 хвилин на пацієнта. AI-система не замінює діагноз лікаря, але автоматизує його документальне оформлення та пропонує структурований план на основі структурованих вхідних даних.

Що робить система

Лікар після огляду вводить або диктує: зубну формулу, виявлені патології по зубах, пріоритети пацієнта. Система генерує:

  • Повний план лікування з послідовністю процедур
  • Коди МКБ-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), клінічні рекомендації.
Послідовність процедур має відповідати клінічній логіці:
невідкладна допомога → гігієнічні процедури → терапія → хірургія → ортопедія."""

    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. Коротке резюме для пацієнта (без медичного жаргону)

Повернення структури TreatmentPlan JSON."""

        response = self.llm.invoke([
            {"role": "system", "content": self.SYSTEM_PROMPT},
            {"role": "user", "content": prompt}
        ])

        return TreatmentPlan.model_validate_json(response.content)

Інтеграція з стоматологічними знімками

Для клінік з цифровими рентгенами — витяг даних через 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}

Інтеграція з системами управління клініками

# Інтеграція з MIS-платформами
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"
        )

Кейс: мережа з 8 стоматологічних клінік. Середній час складання плану лікування: 22 хв → 6 хв (лікар перевіряє та коригує AI-чернетку). Точність відповідності кодів МКБ-С (перевірка страховим відділом): 94%. За перші 4 місяці: 0 відмов страховок з причини неправильної кодування (було 3–4 на місяць).

Строки: базовий генератор плану: 3–4 тижні; інтеграція з MIS та аналіз рентгена: 6–8 тижнів додатково.