2025-11-10 04:14:51 +07:00

7.1 KiB

MONOREPO AI MEDICAL

ภาพรวม

โครงการนี้คือ Monorepo แบบ Full-Stack ที่สร้างบนโครงสร้างพื้นฐานที่มีความพร้อมใช้งานสูง (HA) และถูกออกแบบมาเพื่อรองรับการพัฒนา AI ทางการแพทย์ (Medical AI) โดยใช้เฟรมเวิร์ก MONAI เพื่อสนับสนุนโปรเจค https://gitea.softwarecraft.tech/gitea/hospital-management-api:

  1. Backend (Django/DRF): โครงสร้าง Modular Monolith พร้อมระบบ Authentication ด้วย Djoser/JWT รวมถึง Stateless โดยสมบูรณ์ เนื่องจาก Session/Cache ถูกย้ายไปเก็บที่ Redis
  2. ฐานข้อมูล (HA): CockroachDB Cluster 3 Node (เข้ากันได้กับ PostgreSQL)
  3. Frontend (Web): React + Vite + Tailwind CSS / DaisyUI และ Mobile ผ่าน Expo
  4. Automation: Docker Compose พร้อมตั้งค่า Database อัตโนมัติเมื่อเริ่มต้น
  5. Caching/Broker: Redis สำหรับการเก็บ Session/Cache และใช้เป็น Message Broker ให้ Celery
  6. Async Processing: Celery Worker สำหรับจัดการ Asynchronous Tasks (งานเบื้องหลัง เช่น การส่งอีเมล, การสร้างรายงาน)
  7. Model Serving: FastAPI / MONAI / PyTorch สำหรับการโหลดและทำ Inference โมเดล AI (เช่น spleen_ct_spleen_model.ts) โดยดึงโมเดลจาก MinIO

การเริ่มต้นใช้งาน (Run Local)

1. การเตรียม Repository และ Environment

  1. Clone และเตรียมโค้ด

    git clone https://gitea.softwarecraft.tech/gitea/monorepo-ai-medical.git
    cd monorepo-ai-medical
    
    # ล้าง History ของ Template เก่า และเริ่มต้นใหม่
    Remove-Item -Path .git -Recurse -Force   # สำหรับ PowerShell
    # หรือใช้คำสั่ง Linux/Mac
    rm -rf .git
    
    git init
    git add .
    git commit -m "Initialize MLOps AI Medical Project Base"
    
  2. เตรียม AI Environment (สำคัญ) เข้าโฟลเดอร์ ai-medical/ และสร้าง Virtual Environment เพื่อติดตั้ง MONAI/FastAPI

    cd ai-medical
    python -m venv venv
    .\venv\Scripts\Activate.ps1   # Windows
    # หรือ source venv/bin/activate (Linux/Mac)
    
    # ติดตั้ง Dependencies
    pip install -r requirements.ai.txt 
    cd ..
    

2. การรัน Infrastructure (DB, Cache, Storage)

รัน Services พื้นฐานทั้งหมดใน Docker (ยกเว้น Backend/AI Service ที่จะรันใน Local CLI)

cd infra
# รัน DB, Redis, MinIO (ต้องมี MinIO Service ใน docker-compose.yml แล้ว)
docker compose up -d cockroach-1 cockroach-2 cockroach-3 init-cluster redis minio

การหยุดชั่วคราวและรันต่อ

ถ้าต้องการหยุดพัฒนาโดยไม่ลบฐานข้อมูล สามารถรัน:

 cd ../infra
 docker compose down

เมื่อต้องการกลับมาพัฒนาต่อ ให้รัน:

 cd ../infra
 docker compose up -d

คำสั่ง docker compose down -v จะลบ Volume และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่

บริการโมเดล AI ทางการแพทย์ (Medical AI Models)

โครงการนี้มุ่งมั่นที่จะนำเสนอโมเดล AI คุณภาพสูงเพื่อช่วยในการวิเคราะห์ภาพทางการแพทย์

➡️ สถานะ: กำลังพัฒนาโมเดลใหม่ ๆ เพิ่มเติมอย่างต่อเนื่อง


1. ⚙️ Spleen Segmentation (ม้าม)

ภาพรวม

API นี้ให้บริการ Segmentation (การระบุขอบเขต) ของอวัยวะ ม้าม จากไฟล์ภาพ CT (NIfTI format) โดยเฉพาะ โดยใช้โมเดล MONAI UNet ที่ผ่านการฝึกฝนมาเพื่อตอบโจทย์ทางคลินิก

ตอบคำถาม: "ม้ามอยู่ที่ไหนและมีปริมาตรเท่าไหร่ในภาพนี้"

บริการนี้ถูกออกแบบมาเพื่อส่งคืนข้อมูลที่สำคัญสำหรับรายงานทางการแพทย์โดยอัตโนมัติ:

  1. การระบุตำแหน่ง: ตำแหน่งของม้ามถูกระบุผ่าน Segmentation Map ซึ่งแสดงตำแหน่งของม้ามในระบบพิกัด RAS ที่ได้มาตรฐาน
  2. การคำนวณปริมาตร: คำนวณปริมาตรของม้ามในหน่วยลูกบาศก์เซนติเมตร (\text{cm}^3) โดยใช้ข้อมูล Voxel Spacing
  3. การวิเคราะห์ม้ามโต (Splenomegaly): ประเมินขนาดม้ามตามเกณฑ์มาตรฐาน และส่งคืนผลการวินิจฉัยเบื้องต้น (เช่น Normal Spleen Size, Borderline Enlarged, หรือ Splenomegaly Detected)

Endpoint

Method Path Description
POST /inference/spleen รับไฟล์ NIfTI และส่งคืนผลลัพธ์ Segmentation และ Volume Analysis

🛠️ เทคโนโลยีโมเดล

  • เฟรมเวิร์ก: MONAI / PyTorch
  • ไฟล์โมเดล: spleen_ct_spleen_model.ts (โหลดจาก MinIO)
  • Input: 3D CT Scan (NIfTI)
  • Output: JSON ที่มีปริมาตร (\text{cm}^3) และการวินิจฉัยม้ามโต

2. โมเดลที่กำลังพัฒนา

เราวางแผนที่จะขยายบริการไปยังอวัยวะและพยาธิสภาพอื่น ๆ ในอนาคตอันใกล้ เช่น:

  • Liver and Tumor Segmentation
  • Kidney Segmentation
  • Lung Nodule Detection