mirror of
https://github.com/NVIDIA/dgx-spark-playbooks.git
synced 2026-06-23 06:39:31 +00:00
136 lines
4.6 KiB
Markdown
136 lines
4.6 KiB
Markdown
# Local Healthcare Agent
|
|
|
|
Multi-agent healthcare system that automates quality measure reporting, patient case summaries, population health queries, and molecular visualization — running entirely on-premises inside an OpenShell sandbox so patient data never leaves the machine.
|
|
|
|
**[Setup Guide →](SETUP-GUIDE.md)** · **[Architecture →](ARCHITECTURE.md)**
|
|
|
|
---
|
|
|
|
## Architecture
|
|
|
|
```mermaid
|
|
graph TB
|
|
subgraph DGX["DGX Station — PHI never leaves this machine"]
|
|
subgraph Docker["Docker Compose"]
|
|
Ollama["Ollama · nemotron-3-super:120b-a12b"]
|
|
OF3["OpenFold3 NIM"]
|
|
end
|
|
subgraph Sandbox["OpenShell Sandbox"]
|
|
OC["OpenClaw + 6 Agents"]
|
|
Skills["7 Skill Files + fhir_helpers.py"]
|
|
end
|
|
Sandbox -->|"inference.local"| Ollama
|
|
Sandbox -->|"Docker bridge"| OF3
|
|
end
|
|
Sandbox -->|"sandbox proxy"| FHIR["FHIR R4 Server"]
|
|
Sandbox -->|"sandbox proxy"| PubChem["PubChem"]
|
|
```
|
|
|
|
## Stack
|
|
|
|
| Component | Purpose |
|
|
|-----------|---------|
|
|
| DGX Station (284 GB VRAM) | On-prem GPU platform |
|
|
| OpenShell | Sandbox orchestration, implicit-deny networking, L7 policy enforcement |
|
|
| OpenClaw | Agent framework, tool calling, web UI |
|
|
| Ollama + nemotron-3-super:120b-a12b | Local LLM inference (120B total, 12B active MoE) |
|
|
| OpenFold3 NIM | Protein structure prediction |
|
|
|
|
## Agents
|
|
|
|
| Agent | Role |
|
|
|-------|------|
|
|
| **Coordinator** | Receives questions, writes Python, executes analysis |
|
|
| **Patient Data** | Finds patients, retrieves conditions from FHIR |
|
|
| **Labs/Vitals** | Retrieves lab results and vital signs |
|
|
| **Medications** | Retrieves prescriptions, classifies by drug class |
|
|
| **Analyst** | Writes validated Python analysis code |
|
|
| **Molecular** | PubChem → OpenFold3 → 3D protein-ligand viewer |
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
git clone https://github.com/jaival-nvidia/local-healthcare-agent.git
|
|
cd local-healthcare-agent
|
|
cp .env.example .env # set NGC_API_KEY
|
|
|
|
make up # start Ollama + OpenFold3
|
|
make status # wait for all healthy
|
|
|
|
# One-time: start OpenShell gateway + configure provider (see SETUP-GUIDE.md)
|
|
|
|
make setup # create sandbox, deploy everything
|
|
make test # verify (~1 min)
|
|
|
|
# SSH tunnel from your laptop:
|
|
ssh -f -N -L 18789:localhost:18789 <user>@<dgx-ip>
|
|
open http://localhost:18789/
|
|
```
|
|
|
|
See **[SETUP-GUIDE.md](SETUP-GUIDE.md)** for the complete walkthrough.
|
|
|
|
## Demo Prompts
|
|
|
|
```
|
|
Find all diabetic patients, get their latest A1c and medications.
|
|
Identify gap patients with A1c above 9% not on insulin or GLP-1.
|
|
Show the A1c distribution as a histogram.
|
|
```
|
|
|
|
```
|
|
Show me the 3D protein structure of atorvastatin bound to its target
|
|
```
|
|
|
|
|
|
## What's Inside
|
|
|
|
```
|
|
IDENTITY.md # Coordinator persona + rules
|
|
agents/ # Specialist agent definitions
|
|
patient-data-agent.md
|
|
labs-vitals-agent.md
|
|
medications-agent.md
|
|
analyst-agent.md
|
|
molecular-agent.md
|
|
skills/ # Clinical knowledge (Markdown)
|
|
fhir-basics/SKILL.md
|
|
clinical-knowledge/SKILL.md
|
|
analysis-methods/
|
|
SKILL.md # Code guidelines + helper function reference
|
|
scripts/fhir_helpers.py # Importable FHIR query library (batched)
|
|
molecular-viz/SKILL.md
|
|
clinical-delegation/SKILL.md
|
|
case-summary/SKILL.md
|
|
cohort-compare/SKILL.md
|
|
scripts/
|
|
build_viewer.py # PubChem + OpenFold3 + 3D viewer
|
|
check_sandbox_config.sh # Verify sandbox config matches repo
|
|
setup_sandbox.sh # Automated sandbox setup
|
|
restart_sandbox.sh # Gateway restart helper
|
|
test-all.sh # CLI test suite (L1-L5)
|
|
test-lib.sh # Test utilities
|
|
docker/
|
|
test/Dockerfile # Test runner container
|
|
docker-compose.yml # Ollama + OpenFold3
|
|
Makefile # One-command operations (up, setup, check, test)
|
|
sandbox-policy.yaml # Network policy (L7 enforced, Landlock best_effort)
|
|
```
|
|
|
|
## Network Policy
|
|
|
|
Implicit-deny. Only these endpoints are reachable from the sandbox:
|
|
|
|
| Endpoint | Purpose |
|
|
|----------|---------|
|
|
| `inference.local:443` | LLM via OpenShell privacy router |
|
|
| `r4.smarthealthit.org:443` | FHIR patient data (read-only) |
|
|
| `pubchem.ncbi.nlm.nih.gov:443` | Drug → SMILES lookup (read-only) |
|
|
| `<docker-bridge>:8000` | OpenFold3 NIM |
|
|
| `code.jquery.com`, `3Dmol.org` | JS for 3D viewers |
|
|
|
|
Everything else is blocked. Patient data never leaves the sandbox.
|
|
|
|
---
|
|
|
|
Not a regulated medical device. Test data is synthetic (Synthea). All clinical decisions must be made by qualified clinicians.
|