LearningnRunning's picture
chore: Update README with new emoji and color scheme, and revise short description to reflect AI-based nurse handover training platform.
7df763f
metadata
title: Nurse Handover Simulator
emoji: πŸ₯
colorFrom: purple
colorTo: pink
sdk: docker
pinned: false
short_description: AI 기반 κ°„ν˜Έμ‚¬ SBAR μΈμˆ˜μΈκ³„ ν›ˆλ ¨ ν”Œλž«νΌ - EMR λ°μ΄ν„°λ‘œ μ‹€μ „ μ—°μŠ΅

πŸ₯ κ°„ν˜Έ μΈμˆ˜μΈκ³„ ꡐ윑 ν”Œλž«νΌ

Clinical Handover Training Chatbot utilizing SBAR/ISBAR, EMR data, and immersive technology (Metaverse/VR) for standardized, high-fidelity nursing handover practice.

πŸ“‹ κ°œμš”

κ°„ν˜Έμ‚¬ SBAR ν˜•μ‹ μΈμˆ˜μΈκ³„ ν›ˆλ ¨μ„ μœ„ν•œ AI 기반 ꡐ윑 ν”Œλž«νΌμž…λ‹ˆλ‹€. Gradio 기반 μ›Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ‹€μ œ EMR 데이터λ₯Ό ν™œμš©ν•œ μΈμˆ˜μΈκ³„ μ—°μŠ΅μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

πŸš€ μ‹œμž‘ν•˜κΈ°

1. μ €μž₯μ†Œ 클둠

git clone https://github.com/your-username/nurse-handover-simulator.git
cd nurse-handover-simulator

2. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

Supabase μ‚¬μš© (ꢌμž₯)

  1. ENV_EXAMPLE νŒŒμΌμ„ .env둜 λ³΅μ‚¬ν•©λ‹ˆλ‹€:
cp ENV_EXAMPLE .env
  1. Supabase ν”„λ‘œμ νŠΈ μ„€μ •μ—μ„œ ν•„μš”ν•œ 정보λ₯Ό λ³΅μ‚¬ν•©λ‹ˆλ‹€:

    • Project URL: https://project_id.supabase.co
    • API Key (anon key)
    • Database URL (Connection String)
  2. .env νŒŒμΌμ— Supabase 정보λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€:

SUPABASE_URL=https://[project_id].supabase.co
SUPABASE_ANON_KEY=your_anon_key_here
SUPABASE_DB_URL=postgresql://postgres:[password]@aws-0-[region].pooler.supabase.com:6543/postgres
GOOGLE_API_KEY=your_google_api_key_here

둜컬 PostgreSQL μ‚¬μš© (개발 ν™˜κ²½)

ν™˜κ²½ λ³€μˆ˜μ— SUPABASE_DB_URL을 μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μžλ™μœΌλ‘œ 둜컬 PostgreSQL을 μ‚¬μš©ν•©λ‹ˆλ‹€.

3. μ˜μ‘΄μ„± μ„€μΉ˜

# uvλ₯Ό μ‚¬μš©ν•˜λŠ” 경우
uv sync

# λ˜λŠ” 일반 pip μ‚¬μš©
pip install -e .

4. Google Gemini API ν‚€ λ°œκΈ‰

  1. Google AI Studioμ—μ„œ API ν‚€ λ°œκΈ‰
  2. .env νŒŒμΌμ— GOOGLE_API_KEY μΆ”κ°€

5. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰

# start.sh μ‚¬μš© (ꢌμž₯)
bash start.sh

# λ˜λŠ” 직접 μ‹€ν–‰
uv run app.py

🐳 Docker 배포

둜컬 Docker μ‹€ν–‰

# Docker 이미지 λΉŒλ“œ
docker build -t nurse-handover-simulator .

# Docker μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ (ν™˜κ²½ λ³€μˆ˜ 포함)
docker run -p 7860:7860 \
  -e SUPABASE_URL="https://your-project.supabase.co" \
  -e SUPABASE_ANON_KEY="your_key" \
  -e SUPABASE_DB_URL="postgresql://..." \
  -e GOOGLE_API_KEY="your_key" \
  nurse-handover-simulator

# λ˜λŠ” .env 파일 μ‚¬μš©
docker run -p 7860:7860 --env-file .env nurse-handover-simulator

Hugging Face Spaces 배포

  1. Hugging Face Spaces에 μƒˆ Space 생성 (Docker νƒ€μž… 선택)
  2. Repository Secrets에 λ‹€μŒ ν™˜κ²½ λ³€μˆ˜ 등둝:
    • SUPABASE_URL
    • SUPABASE_ANON_KEY
    • SUPABASE_DB_URL
    • GOOGLE_API_KEY
  3. Dockerfileκ³Ό μ½”λ“œ ν‘Έμ‹œ
  4. μžλ™ λΉŒλ“œ 및 배포 μ™„λ£Œ

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

nurse-handover-simulator/
β”œβ”€β”€ app.py                    # Gradio 메인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜
β”œβ”€β”€ config/
β”‚   └── database.py          # λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° μ„€μ •
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ patient_data.py      # ν™˜μž 및 μ‹œλ‚˜λ¦¬μ˜€ λͺ¨λΈ
β”‚   β”œβ”€β”€ handoff_record.py    # μΈμˆ˜μΈκ³„ 기둝 λͺ¨λΈ
β”‚   └── chat_history.py      # μ±„νŒ… νžˆμŠ€ν† λ¦¬ λͺ¨λΈ
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ db_service.py        # λ°μ΄ν„°λ² μ΄μŠ€ CRUD μ„œλΉ„μŠ€
β”‚   └── gemini_service.py   # Google Gemini AI μ„œλΉ„μŠ€
β”œβ”€β”€ data/
β”‚   └── scenarios.json      # μ‹œλ‚˜λ¦¬μ˜€ 데이터
β”œβ”€β”€ Dockerfile               # Docker 배포 μ„€μ •
β”œβ”€β”€ docker-compose.yml       # 둜컬 PostgreSQL μ„€μ •
β”œβ”€β”€ ENV_EXAMPLE              # ν™˜κ²½ λ³€μˆ˜ ν…œν”Œλ¦Ώ
β”œβ”€β”€ start.sh                 # μ‹œμž‘ 슀크립트
└── init_db.py              # λ°μ΄ν„°λ² μ΄μŠ€ μ΄ˆκΈ°ν™” 슀크립트

πŸ”‘ ν™˜κ²½ λ³€μˆ˜ μ„€λͺ…

λ³€μˆ˜ μ„€λͺ… ν•„μˆ˜ μ—¬λΆ€
SUPABASE_URL Supabase ν”„λ‘œμ νŠΈ URL Supabase μ‚¬μš© μ‹œ
SUPABASE_ANON_KEY Supabase Anon API Key Supabase μ‚¬μš© μ‹œ
SUPABASE_DB_URL Supabase λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° URL Supabase μ‚¬μš© μ‹œ
GOOGLE_API_KEY Google Gemini API ν‚€ ν•„μˆ˜
DB_HOST 둜컬 PostgreSQL 호슀트 둜컬 PostgreSQL μ‚¬μš© μ‹œ
DB_PORT 둜컬 PostgreSQL 포트 둜컬 PostgreSQL μ‚¬μš© μ‹œ

πŸ”’ λ³΄μ•ˆ κ°€μ΄λ“œ

ν™˜κ²½ λ³€μˆ˜ 관리

  1. μ ˆλŒ€ .env νŒŒμΌμ„ Git에 μ»€λ°‹ν•˜μ§€ λ§ˆμ„Έμš”

    • .gitignore에 .envκ°€ 이미 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€
  2. Supabase Keys

    • SUPABASE_ANON_KEY: ν΄λΌμ΄μ–ΈνŠΈ λ…ΈμΆœ κ°€λŠ₯ (RLS둜 보호됨)
    • SUPABASE_DB_URL: μ„œλ²„μ—μ„œλ§Œ μ‚¬μš©, λ…ΈμΆœ κΈˆμ§€
  3. Google API Key

    • μ„œλ²„μ—μ„œλ§Œ μ‚¬μš©, λ…ΈμΆœ κΈˆμ§€
  4. Hugging Face Spaces

    • Repository Secretsλ₯Ό μ‚¬μš©ν•˜μ—¬ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ•ˆμ „ν•˜κ²Œ 관리

πŸ“Š μ£Όμš” κΈ°λŠ₯

  • πŸ“‹ EMR 정보 쑰회: μ‹€μ œ 병원 EMRκ³Ό μœ μ‚¬ν•œ μΈν„°νŽ˜μ΄μŠ€
  • πŸ’¬ AI ν”Όλ“œλ°±: Google Gemini AIλ₯Ό ν™œμš©ν•œ μ‹€μ‹œκ°„ ν”Όλ“œλ°±
  • πŸ“ SBAR ν˜•μ‹ μΈμˆ˜μΈκ³„: ν‘œμ€€ μΈμˆ˜μΈκ³„ ν˜•μ‹ μ—°μŠ΅
  • πŸ“Š 평가 μ‹œμŠ€ν…œ: μ™„μ „μ„±, μ •ν™•μ„±, λͺ…λ£Œμ„±, μš°μ„ μˆœμœ„ 평가
  • πŸ“š 학생 이λ ₯ 쑰회: 학생별 ν•™μŠ΅ 이λ ₯ 및 톡계

πŸ› οΈ 기술 μŠ€νƒ

  • Backend: Python 3.12
  • UI: Gradio
  • Database: Supabase (PostgreSQL) / 둜컬 PostgreSQL
  • AI: Google Gemini 2.0 Flash
  • ORM: SQLAlchemy

πŸ“ λΌμ΄μ„ μŠ€

MIT License

🀝 κΈ°μ—¬ν•˜κΈ°

Pull RequestλŠ” μ–Έμ œλ“  ν™˜μ˜ν•©λ‹ˆλ‹€!