File size: 5,521 Bytes
660ffb5 7df763f 660ffb5 7df763f 660ffb5 3a338e5 924ef30 3a338e5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
---
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. μ μ₯μ ν΄λ‘
```bash
git clone https://github.com/your-username/nurse-handover-simulator.git
cd nurse-handover-simulator
```
### 2. νκ²½ λ³μ μ€μ
#### Supabase μ¬μ© (κΆμ₯)
1. `ENV_EXAMPLE` νμΌμ `.env`λ‘ λ³΅μ¬ν©λλ€:
```bash
cp ENV_EXAMPLE .env
```
2. Supabase νλ‘μ νΈ μ€μ μμ νμν μ 보λ₯Ό 볡μ¬ν©λλ€:
- Project URL: `https://project_id.supabase.co`
- API Key (anon key)
- Database URL (Connection String)
3. `.env` νμΌμ Supabase μ 보λ₯Ό μ
λ ₯ν©λλ€:
```env
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. μμ‘΄μ± μ€μΉ
```bash
# uvλ₯Ό μ¬μ©νλ κ²½μ°
uv sync
# λλ μΌλ° pip μ¬μ©
pip install -e .
```
### 4. Google Gemini API ν€ λ°κΈ
1. [Google AI Studio](https://makersuite.google.com/app/apikey)μμ API ν€ λ°κΈ
2. `.env` νμΌμ `GOOGLE_API_KEY` μΆκ°
### 5. μ ν리μΌμ΄μ
μ€ν
```bash
# start.sh μ¬μ© (κΆμ₯)
bash start.sh
# λλ μ§μ μ€ν
uv run app.py
```
## π³ Docker λ°°ν¬
### λ‘컬 Docker μ€ν
```bash
# 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λ μΈμ λ νμν©λλ€!
|