# 시르데컴프유닛코어 (CirrDecompUnit-Kor)

MASLD/MASH cirrhosis decompensation 입원 episode를 episode/입원 단위 QI(Quality Improvement)
KPI로 한 화면에서 추적하는 standalone Streamlit 대시보드 MVP.

> **참고용·연구용 디스클레이머**
> 본 대시보드는 합성(synthetic) 데이터 기반 연구·QI·교육 도구입니다.
> 실제 임상의사결정에 사용해서는 안 되며, 모든 환자 처치는 담당 의사의 책임 하에
> 공식 가이드라인(KASL, KLTS, AASLD, EASL, Baveno VII 등)에 따라 이루어져야 합니다.

## 도메인 / 카테고리
- 도메인: MASLD (대사성간질환)
- 카테고리: 웹기반 대시보드 (코호트 모니터링·KPI 추적)

## 5개 핵심 기능
1. **Decompensation episode + 환자 attribute ingest + MASLD etiology 분류**
   환자(연령·성별·BMI·etiology·이전 decomp 횟수·이전 TIPS) + episode(decomp type·lab·HE·CLIF-SOFA·MELD·Child-Pugh·LOS·LT·30d mortality·90d readmission) CSV/REDCap export → 표준화 + PHI de-identification.
2. **EASL-CLIF ACLF grade + CLIF-SOFA + MELD 3.0 trajectory**
   ACLF grade (no/1/2/3) 분류 + CLIF-SOFA 일별 trajectory + MELD/MELD-Na/MELD 3.0 + Child-Pugh 분포 + 등급별 30d mortality.
3. **Decompensation type별 protocol 부합 + complication**
   Ascites (diuretic·albumin·LVP·TIPS), VB (EBL·vasoactive·NSBB·Baveno VII pre-emptive TIPS), HE (lactulose·rifaximin·precipitant), HRS-AKI (terlipressin·albumin·KDIGO), SBP (empirical abx·albumin·prophylaxis), ACLF (LT·ICU·PE/MARS) 별 부합률.
4. **LT 후보 식별 + KONOS alignment**
   MELD ≥15 · ACLF grade · Child-Pugh · HCC Milan/UCSF → KONOS priority band proxy + SLK flag.
5. **Post-discharge transition + KASL/KLTS 호환 리포트**
   POD7/30/90 외래 attend, 퇴원 약물 (NSBB·diuretic·rifaximin·SBP prophylaxis·resmetirom) + KASL/KLTS/AASLD/EASL 호환 국·영문 QI 리포트 docx (python-docx 없으면 md fallback).

## 데이터 소스
- 사이트의 REDCap/CSV/EDW export (환자·episode·lab·outcome).
- 내장 reference (오프라인): EASL-CLIF (Moreau 2013, Jalan 2014), Baveno VII, KASL 2023, AASLD 2021 / EASL 2018 decompensated cirrhosis, KONOS LT allocation, MELD 3.0 (Kim 2021, OPTN 2023).
- 외부 유료 API 0, EMR 실시간 연동 0 (nightly/weekly export 가정).

## 실행법
```bash
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

python3 main.py --gen                # synthetic CSV 생성
python3 main.py --summary --top 5    # KPI 요약 + 부합률 상위 ward 5
python3 main.py --report             # reports/ 에 docx 생성
python3 main.py --episode E00001     # episode 상세

streamlit run app.py                 # 대시보드
```

`python3 main.py --help` 는 외부 라이브러리 없이도 실행됩니다 (표준 라이브러리만 사용).

## 디렉토리 구조
```
2026-05-27-3-cirr-decomp-unit-kor/
├── app.py                  # Streamlit 대시보드
├── main.py                 # CLI (synthetic gen + summary + report + episode)
├── modules/
│   ├── __init__.py
│   ├── scoring.py          # MELD/MELD-Na/MELD 3.0/Child-Pugh/CLIF-SOFA
│   ├── aclf.py             # EASL-CLIF ACLF grade
│   ├── protocols.py        # 6종 protocol 부합 rule
│   ├── lt_candidacy.py     # MELD 3.0 / KONOS / SLK
│   ├── ingest.py           # CSV ingest + PHI de-identification
│   └── kpi_report.py       # KPI aggregation + docx 리포트
├── data/                   # synthetic CSV
├── reports/                # 자동 생성 KPI 리포트 docx/md/json
├── requirements.txt
├── README.md
└── QA.md                   # 검수 로그
```

## 검수 체크리스트
- [ ] `python3 main.py --help` 실행 시 사용법 표시
- [ ] `python3 main.py --gen` 으로 data/ 에 CSV 6종 생성
- [ ] `python3 main.py --summary` 가 한국어 KPI 리포트 출력
- [ ] `python3 main.py --report` 가 reports/ 에 docx (또는 md) 생성
- [ ] Streamlit 대시보드가 5개 탭 모두 렌더링
- [ ] 모든 .py 가 `python3 -c "import ast; ast.parse(open('x.py').read())"` 통과

## 제약 / 안전성
- 외부 네트워크/유료 API 호출 0, 오프라인 standalone.
- 전역 패키지 설치 금지 — `.venv` 가정.
- PHI(name/RRN/MRN/phone/address)는 ingest 단계에서 자동 drop.
- 모든 lab 값·grade·protocol 부합은 합성 데이터이며 실제 환자 정보가 아님.
- **임상 의사결정 도구로 사용 금지.**

## 출처 (offline reference, 코드에 인용)
- Kamath PS et al. *Hepatology* 2001 (MELD)
- Kim WR et al. *NEJM* 2008 (MELD-Na)
- Kim WR et al. *Gastroenterology* 2021 (MELD 3.0); OPTN policy 2023-07
- Pugh RNH et al. *Br J Surg* 1973 (Child-Pugh)
- Moreau R et al. *Gastroenterology* 2013 (CANONIC / ACLF)
- Jalan R et al. *J Hepatol* 2014 (CLIF-C ACLF)
- Baveno VII Consensus Workshop, *J Hepatol* 2022
- KASL guideline (decompensated cirrhosis), 2023
- AASLD 2021 / EASL 2018 (decompensated cirrhosis)
- KONOS LT allocation policy / KLTS LT guideline
