# GLP1DiscontRebound-Kor (지엘피원디스컨티뉴리바운드코어)

> GLP-1RA · tirzepatide · orforglipron 중단·rebound·재시작 cohort 모니터링 대시보드

- **도메인**: Obesity
- **카테고리**: 웹 기반 대시보드 (코호트 모니터링·KPI 추적)
- **생성일**: 2026-05-20

---

## ⚠️ 의학 디스클레이머

본 대시보드는 **연구·post-marketing 보조용 도구**이며,  
실제 임상 의사결정은 **담당 의사 판단 하에** 이루어져야 함.  
EMR 연동 0, 외부 API 0, 합성 데이터 기반 오프라인 동작.

---

## 목적

GLP-1RA cohort 의 다음 정보를 **한 화면**에서 추적:
- 중단 사유 (AE · 비용 · 품귀 · 목표 달성 · 임신 · CV 사건 · 기타)
- 중단 후 체중·HbA1c·BP·지질 **rebound trajectory**
- **재시작 dose titration** 및 outcome
- **약물 holiday vs 영구 중단** 비교 (KM survival)
- **외과적/내시경 중재 전환** 및 **CV 사건**
- 식약처·제약사 형식의 **post-marketing 리포트 export** (docx)

## 핵심 기능 (5개)

1. **중단 이벤트 인제스트 + 사유 분류**
   - 약물 timeline, 사유별 stack chart, 3/6/12/24개월 horizon별 cohort 중단율 KPI
2. **Rebound trajectory 시각화**
   - 중단 시점=0 정렬 longitudinal, STEP-1 ext / SURMOUNT-4 reference envelope overlay
3. **재시작 dose titration 추적**
   - dose escalation 스케줄, GI AE 재발률, 재시작 후 추가 감량, 재시작 vs 신규 비교
4. **Holiday vs 영구 중단 outcome**
   - <12주 holiday vs ≥12주 영구 중단 cohort KM survival (60% rebound proxy)
5. **Post-marketing AE · 외과적 전환 리포트**
   - 췌장염·담석·sarcopenia·갑상샘 C-cell·CV 사건, 외과/내시경 전환률
   - **docx export** (식약처/제약사 형식 초안)

## 기술 스택

- Python: `streamlit`, `pandas`, `numpy`, `plotly`, `lifelines`, `statsmodels`, `python-docx`
- standalone · 오프라인 · 외부 유료 API 0

## 실행법

```bash
cd projects/2026-05-20-2-glp1-discont-rebound-kor
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# 1. 합성 데이터 생성 (재현 가능, seed 고정)
python data/generate_synthetic.py

# 2. Streamlit 앱 실행
streamlit run app.py
```

기본 포트: `http://localhost:8501`

## 파일 트리

```
2026-05-20-2-glp1-discont-rebound-kor/
├── README.md
├── app.py                       # Streamlit 진입점 (5개 탭)
├── requirements.txt
├── QA.md                        # 검수 로그
├── assets/
│   └── reference_curves.json    # STEP-1 ext / SURMOUNT-4 envelope
└── data/
    ├── generate_synthetic.py    # seed 고정 합성 cohort + longitudinal 생성
    ├── synthetic_glp1_cohort.csv
    └── synthetic_longitudinal.csv
```

## 검수 체크리스트

- [ ] `python3 data/generate_synthetic.py` 실행 후 두 CSV 생성됨
- [ ] `python3 -m py_compile app.py` 성공
- [ ] `streamlit run app.py` 정상 기동, 5개 탭 모두 그래프 렌더링
- [ ] 의학 디스클레이머가 메인 화면 상단에 표시됨
- [ ] reference envelope 이 weight trajectory 차트에 overlay 됨
- [ ] docx export 동작 확인

## 출처 (요약 reference)

- **STEP-1 extension**: Wilding JPH et al. *Diabetes Obes Metab* 2022 — semaglutide 2.4mg 중단 후 52주 시점 체중 ~2/3 회복
- **SURMOUNT-4**: Aronne LJ et al. *JAMA* 2024 — tirzepatide 중단군 88주 시점 +14% regain
- **SELECT** (post-hoc discontinuation subgroup): Lincoff AM et al. *NEJM* 2023
- **SURMOUNT-MMO**: NCT05556512 (ongoing long-term morbidity/mortality)
- **ATTAIN-1** (orforglipron): Eli Lilly Phase 3 readout 2025–2026

---

본 빌드는 합성 데이터로 동작하며, 실제 환자 정보는 포함하지 않음.
실제 운영 시 IRB 승인·개인정보보호법·의료기기법 검토 필수.
