νλΆ X-ray λ° CT κΈ°λ° λ©ν°λͺ¨λ¬ μ€λͺ ν μ§λ¨ μ§μ μμ€ν
Pixel Doctorλ CT segmentation maskμ Radiomics λΆμ κ²°κ³Όλ₯Ό μ λ ₯λ°μ, LangGraph κΈ°λ° νμ΄νλΌμΈμ ν΅ν΄ μμ¬μ© κ·Όκ±° μ€μ¬ μμ½κ³Ό νμμ© μμ ν μ€λͺ μ λΆλ¦¬ μμ±νλ λνν μλ£ AI Assistantμ λλ€.
| λ¬Έμ | ν΄κ²°μ± |
|---|---|
| AI λΆμ κ²°κ³Όκ° νμμκ² μ§μ μ λ¬ μ κ³Όλν νμ ννΒ·μ€ν΄ μ λ° | μμ¬μ©Β·νμμ© μ€λͺ μ μν μ λ°λΌ λΆλ¦¬ μμ± |
| Radiomicsλ₯Ό μμ νμ μ§νμ²λΌ ν΄μ μ λ°μνλ μν | Radiomicsλ₯Ό μ°Έκ³ μ§νλ‘λ§ μ ν β μ§λ¨Β·μΉλ£ μΆμ² μμ² μ°¨λ¨ |
| λ¨μ LLM νΈμΆλ‘λ μΆλ ₯μ μΌκ΄μ±Β·μμ μ± μ μ΄ μ΄λ €μ | LangGraph λ¨κ³ν νμ΄νλΌμΈμΌλ‘ μμ μ± κ²ν Β·κ²μ¦ λΆλ¦¬ |
| μλ£μ§κ³Ό νμ κ° νμν μ 보 μμ€κ³Ό νν λ°©μμ μ°¨μ΄ | RAG κΈ°λ° μν λ¬ΈνΒ·κ°μ΄λλΌμΈΒ·μ μ¬μΌμ΄μ€ κ²μμΌλ‘ κ·Όκ±° λ³΄κ° |
μ¬μ©μ (μμ¬ / νμ)
β
βΌ
βββββββββββββββββββββββββββββββ
β Next.js Web Service β
β μ±ν
UI Β· λμ보λ Β· νμκ΄λ¦¬β
ββββββββββββββ¬βββββββββββββββββ
β
ββββββββββΌβββββββββ
β μ
λ ₯ λ°μ΄ν° β
β ν
μ€νΈΒ·X-rayΒ·CT β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββββββββββββββββββββββ
β LangGraph ν΅ν© νμ΄νλΌμΈ β
β β
β 1λ¨κ³: Diagnose Summary β
β ββββββββββββββββββββββββββββββββ β
β β diagnose_summarizer β β
β β ββ [Doctor] title_gen β β
β β β result_explain β β
β β ββ [Patient] title_gen β β
β β patient_explainβ β
β β ββ follow_up_gen β β
β ββββββββββββββββββββββββββββββββ β
β β
β 2λ¨κ³: RAG Chat QA β
β ββββββββββββββββββββββββββββββββ β
β β Question Classifier β β
β β β FAISS Retriever β β
β β β Retrieval Quality Router β β
β β β Answer Generator β β
β β β Safety Validator βΊ β β
β ββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββΌβββββββββ
β PostgreSQL DB β
β (Prisma ORM) β
βββββββββββββββββββ
CT maskΒ·Radiomics summaryΒ·μ¬μ©μ μ§λ¬Έμ μ
λ ₯λ°μ doctor_summary / patient_friendly JSON κ΅¬μ‘°λ‘ μμ±
- μ§λ¨ νμ Β·μν μμΈ‘Β·μΉλ£ μΆμ²μ μμ² μ°¨λ¨
- AI κ²°κ³Όμ νκ³μ μλ£μ§ νλ νμμ±μ λͺ νν μλ΄
- "μμ λλ€/μ μμ λλ€" κ°μ λ¨μ νν μ λ κΈμ§
μ λ ₯ κ²μ¦ β μ§λ¬Έ λΆλ₯ β κ·Όκ±° λ§€ν β 리ν¬νΈ μμ± β μμ μ± κ²ν β μ΅μ’ μλ΅μ λ Έλ κΈ°λ°μΌλ‘ λ¨κ³ λΆλ¦¬
| μμ¬μ© | νμμ© | |
|---|---|---|
| μΈμ΄ | μ λ¬Έ μν μ©μ΄ | νμ΄ν νκ΅μ΄ |
| λ΄μ© | CT λ°©μ¬μ μ견, GLCM λ± featureλͺ ν¬ν¨ | featureλͺ μ λ λ ΈμΆ κΈμ§ |
| ν€ | κΈ°μ μ Β·νμ μ | μ°¨λΆνκ³ μμ¬μν€λ νν |
- νμ νλ‘μ νΈ κ΄λ¦¬: νμ μμ±Β·κ²μΒ·μμ , λ°©λ¬Έ κΈ°λ‘ νμλΌμΈ, X-rayΒ·CT μ νμ 첨λΆ
- AI μ±ν μΈν°νμ΄μ€: λ©ν°ν΄ λν, μ΄μ€ μ€λͺ λμ μ 곡, νμ μ§λ¬Έ μλ μΆμ²
- λμ보λ & ν΅κ³: X-rayΒ·CT λ³ν μΆμ΄ κ·Έλν, λ°©λ¬Έ νμ€ν 리, κ΄λ¦¬μ νν© μ‘°ν
- νμ λ§ν¬ 곡μ : μκ° κΈ°λ°Β·μλΒ·λ³΅ν© λ§λ£ μ μ± , λ§ν¬ μ μ λ‘κΉ
- κ²μ & κΆν μ μ΄: μμ¬(λ³ΈμΈ λ΄λΉ νμ), κ΄λ¦¬μ(μ 체 νμ) μν λΆλ¦¬
μλ³Έ CT (.nii.gz)
β
βΌ
nnU-Net (3D Segmentation)
β 0: background / 1: liver / 2: tumor
βΌ
PyRadiomics (νΉμ§ μΆμΆ)
β Shape Β· First-order Β· Texture (GLCM, GLRLM, GLSZM...)
βΌ
QC / μμ μ± κ²μ¦
β geometry mismatch Β· tumor label Β· NaN κ²μ¬
βΌ
Radiomics JSON / CSV
β οΈ tumor label λΆμ¬ β μ’ μ μμβ λͺ¨λΈ μΆλ ₯μ μ°Έκ³ μ§νμ΄λ©°, μ΅μ’ νλ¨μ λ°λμ μλ£μ§μ΄ μνν©λλ€.
| μν | λͺ¨λΈ |
|---|---|
| Primary | GPT-4o-mini |
| Fallback | Gemini-1.5-flash-preview (Reasoning=LOW) |
- π NCCN Guideline
- π PubMed
- π Similar Cases
HospitalUnit ββ< User (μμ¬/κ΄λ¦¬μ)
β
βββ< Patient ββ< Visit
β
βββ< XrayImage
βββ< CTScan
βββ< PatientLink
βββ< ChatSession ββ< ChatMessage
cp .env.example .env.env νμΌμμ μλ νλͺ©μ μ€μ νμΈμ:
DATABASE_URL=postgresql://...
OPENAI_API_KEY=sk-...
NEXTAUTH_SECRET=...
NEXTAUTH_URL=http://localhost:3000# μμ‘΄μ± μ€μΉ
npm install
# DB λ§μ΄κ·Έλ μ΄μ
npx prisma migrate dev
# μλ λ°μ΄ν° μ½μ
npx prisma db seed
# κ°λ° μλ² μ€ν
npm run devpip install -r requirements.txt
python -m uvicorn main:app --reload| μ΄λ¦ | μν |
|---|---|
| κΉν¬ν | AI Pipeline Β· LangGraph |
| λ°μν | CT Segmentation Β· Radiomics |
| νλ―Όμ | AI Pipeline Β· LangGraph |
| μ΄ννΈ | AI Pipeline Β· LangGraph |
| μ΄λνΈ | AI Pipeline Β· LangGraph |
λ³Έ μμ€ν μ μλ£ λ³΄μ‘° λꡬλ‘, μλ£μ§μ νλ¨μ λ체νμ§ μμ΅λλ€. λͺ¨λ AI μΆλ ₯ κ²°κ³Όλ λ°λμ μ λ¬Έ μλ£μ§μ κ²ν λ₯Ό κ±°μ³μΌ νλ©°, μ§λ¨Β·μΉλ£ κ²°μ μ κ·Όκ±°λ‘ λ¨λ μ¬μ©ν μ μμ΅λλ€.