# Диагностика цирроза печени ## Обзор Этот модуль предназначен для анализа медицинских данных и выявления возможного цирроза печени на основе результатов анализов крови и клинических симптомов. Скрипт вычисляет диагностические индексы APRI и FIB-4 и предоставляет предварительный диагноз с рекомендациями. ## Структура файлов ``` medical_analysis/ ├── liver/ │ ├── liver_cirrhosis_diagnosis.py ``` ## Установка и использование ### Требования - Python 3.7+ - Внешние зависимости отсутствуют (используется встроенная обработка JSON) ### Использование Модуль принимает 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 } ``` #### Пример выходных данных ```json { "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. - **Высокий риск цирроза:** Наличие клинических симптомов (асцит, желтуха, энцефалопатия, фиброз печени).