liver_cirrhosis_diagnosis/liver_cirrhosis_diagnosis_v...

5.9 KiB
Raw Permalink Blame History

Диагностика цирроза печени

Обзор

Этот модуль предназначен для анализа медицинских данных и выявления возможного цирроза печени на основе результатов анализов крови и клинических симптомов. Скрипт вычисляет диагностические индексы APRI и FIB-4 и предоставляет предварительный диагноз с рекомендациями.

Структура файлов

medical_analysis/
 ├── liver/
 │    ├── liver_cirrhosis_diagnosis.py

Установка и использование

Требования

  • Python 3.7+
  • Внешние зависимости отсутствуют (используется встроенная обработка JSON)

Использование

Модуль принимает JSON с результатами анализов крови и клиническими показателями. Возвращает JSON-объект с диагнозом и рекомендациями.

Пример входных данных

{
    "AST": 120,
    "ALT": 80,
    "Platelets": 100,
    "Bilirubin": 2.5,
    "Albumin": 3.0,
    "Age": 55,
    "AST_ULN": 40,
    "Ascites": true,
    "Jaundice": false,
    "Encephalopathy": false,
    "LiverFibrosis": false
}

Пример выходных данных

{
    "diagnosis": "возможный цирроз",
    "recommendations": "консультация с гепатологом"
}

Обязательные и дополнительные параметры

Обязательные параметры (важны для расчётов)

Эти параметры критически важны для вычисления индексов APRI и FIB-4, поэтому их лучше всегда передавать:

  • AST (АСТ) нужен для APRI и FIB-4.
  • ALT (АЛТ) нужен для FIB-4.
  • Platelets (Тромбоциты) нужен для APRI и FIB-4.
  • Age (Возраст) нужен для FIB-4.
  • AST_ULN (Верхняя граница нормы AST) важен для APRI (по умолчанию 40, но лучше передавать реальное значение).

Желательные параметры (улучшают диагностику)

Эти параметры не влияют на APRI и FIB-4, но помогают точнее поставить диагноз:

  • Bilirubin (Билирубин) повышенный уровень указывает на проблемы с печенью.
  • Albumin (Альбумин) низкий уровень указывает на нарушение функции печени.

Дополнительные параметры (клинические признаки цирроза)

Эти параметры помогут сразу выявить высокий риск цирроза:

  • Ascites (Асцит) наличие жидкости в брюшной полости.
  • Jaundice (Желтуха) желтизна кожи, вызванная высоким билирубином.
  • Encephalopathy (Печёночная энцефалопатия) когнитивные нарушения из-за печёночной недостаточности.
  • LiverFibrosis (Фиброз печени) если есть подтверждённые данные.

Итог

  • Минимально необходимый набор: AST, ALT, Platelets, Age, AST_ULN
  • Желательный набор: всё выше + Bilirubin, Albumin
  • Полный набор: всё выше + клинические признаки (Ascites, Jaundice, Encephalopathy, LiverFibrosis)

Если переданы только AST и ALT, диагностика будет неполной. Но если хотя бы один из обязательных параметров (AST, ALT, Platelets, Age) отсутствует индексы APRI и FIB-4 не будут рассчитаны.

Функции

calculate_apri(ast, platelets, ast_uln)

Вычисляет индекс APRI (AST to Platelet Ratio Index).

  • Параметры:
    • ast (int): Уровень АСТ.
    • platelets (int): Количество тромбоцитов.
    • ast_uln (int): Верхняя граница нормы АСТ.
  • Возвращает: Значение APRI (float) или None, если входные данные некорректны.

calculate_fib4(age, ast, alt, platelets)

Вычисляет индекс FIB-4 (Fibrosis-4 Score).

  • Параметры:
    • age (int): Возраст пациента.
    • ast (int): Уровень АСТ.
    • alt (int): Уровень АЛТ.
    • platelets (int): Количество тромбоцитов.
  • Возвращает: Значение FIB-4 (float) или None, если входные данные некорректны.

diagnose_cirrhosis(data)

Обрабатывает входной JSON, вычисляет APRI и FIB-4, и предоставляет диагноз.

  • Параметры: JSON-объект с информацией о пациенте.
  • Возвращает: JSON-объект с диагнозом и рекомендациями.

Критерии диагностики

  • Нет цирроза: Нормальные показатели крови, низкие APRI и FIB-4.
  • Возможный цирроз: APRI > 2.0 или FIB-4 > 3.25.
  • Высокий риск цирроза: Наличие клинических симптомов (асцит, желтуха, энцефалопатия, фиброз печени).