medical-coding-api / README.md
Distopia22's picture
Production-ready Medical Coding API with Phi-3 support
d03f587
---
title: Medical Coding API
emoji: πŸ₯
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
license: mit
app_port: 7860
tags:
- medical
- healthcare
- icd-10
- cpt
- phi-3
- fastapi
---
# πŸ₯ Medical Coding API
AI-powered API for extracting **ICD-10** and **CPT codes** from clinical provider notes using Microsoft Phi-3.
## πŸš€ Features
- βœ… Extract ICD-10 diagnosis codes
- βœ… Extract CPT procedure codes
- βœ… Supports notes up to 10,000 characters (~2,500 words)
- βœ… JSON output format
- βœ… GPU-accelerated inference (when available)
- βœ… Automatic text truncation
- βœ… Production-ready with error handling
## πŸ“‘ API Endpoints
### POST `/predict`
Extract medical codes from clinical note.
**Request:**
```json
{
"note": "Your clinical note here..."
}
```
**Response:**
```json
{
"result": {
"icd10_codes": ["I10", "E11.9"],
"cpt_codes": ["99213"]
},
"raw_output": "...",
"note_length": 250,
"truncated": false,
"processing_time": 3.45
}
```
### GET `/health`
Check API health status.
### GET `/docs`
Interactive API documentation (Swagger UI).
## πŸ§ͺ Usage Examples
### cURL
```bash
curl -X POST "https://YOUR-SPACE.hf.space/predict" \
-H "Content-Type: application/json" \
-d '{"note": "Patient with HTN, BP 160/95. Prescribed lisinopril."}'
```
### Python
```python
import requests
response = requests.post(
"https://YOUR-SPACE.hf.space/predict",
json={"note": "Patient with diabetes, HbA1c 8.2. Started metformin."}
)
print(response.json())
```
### JavaScript
```javascript
fetch("https://YOUR-SPACE.hf.space/predict", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ note: "Clinical note here..." }),
})
.then((res) => res.json())
.then((data) => console.log(data));
```
## βš™οΈ Technical Details
- **Model:** RayyanAhmed9477/med-coding (Phi-3 based)
- **Framework:** FastAPI + Transformers
- **Deployment:** HuggingFace Spaces (Docker)
- **First Request:** 30-60 seconds (model loading)
- **Subsequent Requests:** 2-10 seconds
## πŸ“ License
MIT License