Imaging Intelligence Agent -- Demo Guide¶
UI-driven walkthrough for demonstrating the Imaging Intelligence Agent on DGX Spark.
All live demo interaction uses the Streamlit Imaging Workbench -- no terminal commands during the presentation.
License: Apache 2.0 | Date: March 2026
Demo Overview¶
| Parameter | Value |
|---|---|
| Total Duration | 25 minutes |
| Hardware | NVIDIA DGX Spark (GB10, 128 GB unified) |
| Total Vectors | 876 seed vectors across 10 owned collections |
| Streamlit URL | http://localhost:8525 |
| API URL | http://localhost:8524 |
| LLM | Claude Sonnet 4.6 (Anthropic) |
| Milvus | http://localhost:19530 |
| Collections | 10 owned + 1 shared genomic_evidence |
| Workflows | 6 (CT Head Hemorrhage, CT Chest Lung Nodule, CT Coronary Angiography, CXR Rapid Findings, MRI Brain MS Lesion, MRI Prostate PI-RADS) |
What the Audience Will See¶
- Four pre-loaded clinical demo cases run through imaging AI workflows with mock-realistic results
- Cross-modal genomic enrichment linking imaging findings to genetic risk factors via the shared
genomic_evidencecollection - Image Gallery with AI-annotated CXR showcase, cross-modality gallery, and 3D volume slice viewer
- Interactive Plotly network graph in Patient 360 showing gene-finding relationships
- Multi-collection RAG queries across 10 imaging-specific knowledge bases with Claude-synthesized answers and citations, with pre-filled example queries in Evidence Explorer and Protocol Advisor
- Automatic comparative analysis triggered by natural language -- "CT vs MRI" produces structured comparison tables
- Patient-specific imaging protocol recommendations with AI-optimized dose reduction
- A landscape of 50 FDA-cleared and research AI devices filterable by modality and clinical task
- Dose intelligence showing 36% average radiation dose reduction across 20 protocols via DLIR
- 6-step pipeline animation in Workflow Runner with annotated AI images
- Sidebar guided tour with 9-step demo flow
- Professional reports exported as Markdown, JSON, NVIDIA-themed PDF, and FHIR R4 DiagnosticReport Bundles
Pre-Demo Setup¶
Step 1: Verify Milvus Running¶
curl -s http://localhost:19530/v1/vector/collections
# Expected: JSON response listing imaging collections
Step 2: Verify Docker Containers¶
docker ps | grep imaging
# Expected: imaging-intelligence-agent containers running (API + Streamlit)
Step 3: Health Check¶
Expected response:
{
"status": "healthy",
"collections": {
"imaging_literature": 50,
"imaging_trials": 40,
"imaging_findings": 50,
"imaging_protocols": 40,
"imaging_devices": 50,
"imaging_anatomy": 30,
"imaging_benchmarks": 40,
"imaging_guidelines": 40,
"imaging_report_templates": 50,
"imaging_datasets": 50
},
"total_vectors": 440,
"nim_services": {
"vista3d": "mock",
"maisi": "mock",
"vila_m3": "mock",
"llm": "anthropic"
}
}
All 10 collections should have non-zero counts. NIM services will show mock unless NVIDIA API keys are configured; the LLM should show anthropic.
Step 4: Verify Streamlit¶
Step 5: Verify ANTHROPIC_API_KEY¶
Step 6: Open Browser Tabs¶
Before starting the live demo, open the following tabs in your browser so you can switch between them without typing URLs:
| Tab | URL | Used In |
|---|---|---|
| Imaging Agent UI | http://localhost:8525 | All steps |
| Imaging Agent API docs | http://localhost:8524/docs | Reference only |
| Landing Page | http://localhost:8080 | Opening context |
Route A: Guided Demo Cases (15 minutes)¶
These four cases demonstrate the full imaging AI workflow: detection, classification, measurement, and cross-modal genomic enrichment.
All cases use pre-loaded mock data that runs without live DICOM images or NIM GPU services.
Step 1: Emergency Stroke (5 minutes)¶
Click: the Workflow Runner tab (the second tab) in the Streamlit UI at http://localhost:8525.
Select: "DEMO-001: Emergency Stroke: Acute Intracranial Hemorrhage" from the demo case dropdown.
Expected result: The clinical scenario populates:
62-year-old male presents to ED with sudden onset severe headache, left-sided weakness, and slurred speech. GCS 12. History of uncontrolled hypertension and type 2 diabetes. BP 195/110 on arrival. Non-contrast CT head ordered stat for acute stroke workup.
Click: the Run button.
Expected result: The workflow executes the ct_head_hemorrhage pipeline and displays:
- Hemorrhage Detection: Intraparenchymal hemorrhage detected
- Location: Right basal ganglia extending to internal capsule
- Volume: 28.5 mL (ABC/2 method)
- Midline Shift: 4.8 mm
- Max Thickness: 42.0 mm
- Hounsfield Units: Mean 65, Max 82
- Surrounding Edema: 12.1 mL
- Intraventricular Extension: Present
- Fisher Grade: 3
- Severity Classification: Critical
Click: the Patient 360 tab (the eighth tab).
Show: Cross-modal genomic enrichment results linking the hemorrhage finding to genetic risk factors:
- APOE -- e4 allele associated with lobar hemorrhage risk and worse outcomes
- COL3A1 -- Variants linked to vascular fragility
- ACE -- Insertion/deletion polymorphism affects cerebrovascular risk
Talking points:
- "AI detected the hemorrhage in under 90 seconds -- faster than radiologist page response time."
- "Automatic midline shift measurement eliminates subjective assessment. 4.8 mm shift is clinically significant."
- "Cross-modal genomic enrichment identifies genetic risk factors for hemorrhage recurrence -- APOE, COL3A1, and ACE polymorphisms."
- "Structured report with ICH Score automatically generated for neurosurgery consult."
Step 2: Lung Cancer Screening (5 minutes)¶
Click: the Workflow Runner tab.
Select: "DEMO-002: Lung Cancer Screening: Suspicious Nodule Detection" from the demo case dropdown.
Expected result: The clinical scenario populates:
58-year-old female, 30 pack-year smoking history, undergoing annual low-dose CT lung cancer screening per USPSTF guidelines. Prior screening CT 12 months ago showed a 6mm ground-glass nodule in the right upper lobe (Lung-RADS 3). Follow-up scan ordered.
Click: the Run button.
Expected result: The workflow executes the ct_chest_lung_nodule pipeline and displays two nodules:
-
Nodule 1 (Primary):
- Location: Right upper lobe, posterior segment
- Type: Part-solid, spiculated margin
- Size: 18 mm (long axis) x 14 mm (short axis)
- Solid component: 10 mm
- Volume: 1,890 mm3 (prior: 680 mm3)
- Volume doubling time: 245 days
- Density: -450 HU
- Lung-RADS: 4B -- Tissue sampling recommended
-
Nodule 2 (Incidental):
- Location: Left lower lobe, superior segment
- Type: Ground-glass, smooth margin
- Size: 5 mm
- Volume: 52 mm3
- Density: -650 HU
- Lung-RADS: 2 -- Benign appearance, no intervention
Show: Genomic enrichment panel linking to driver mutations:
- EGFR -- Mutations found in 15-50% of lung adenocarcinomas
- ALK -- Rearrangements in 3-7% of NSCLC
- ROS1, KRAS, BRAF, MET -- Additional targetable driver mutations
Talking points:
- "AI tracked nodule growth from 6 mm to 18 mm over 12 months -- volume doubling time of 245 days is concerning for malignancy."
- "Automatic Lung-RADS 4B classification triggers tissue sampling recommendation per ACR guidelines."
- "The second nodule (5 mm GGN, Lung-RADS 2) is appropriately classified as benign -- no intervention needed."
- "Cross-modal genomic query identifies targetable driver mutations: EGFR, ALK, ROS1, KRAS."
- "Complete screening-to-genomics pipeline: low-dose CT -> AI detection -> Lung-RADS classification -> molecular profiling -> treatment planning."
Step 3: Cardiac Workup (5 minutes)¶
Click: the Workflow Runner tab.
Select: "DEMO-003: Cardiac Workup: Coronary Artery Disease Assessment" from the demo case dropdown.
Expected result: The clinical scenario populates:
55-year-old male presents with exertional chest pain and dyspnea on exertion for 3 weeks. Family history of premature CAD (father MI at age 50). BMI 28, total cholesterol 265 mg/dL, LDL 185 mg/dL. Stress test equivocal. Coronary CT angiography ordered for definitive evaluation.
Click: the Run button.
Expected result: The workflow executes the ct_coronary_angiography pipeline and displays:
- Calcium Score: 385 Agatston (92nd percentile for age/sex)
- CAD-RADS Classification: 4A
- Vessel Assessment:
- LAD (proximal): 72% stenosis, mixed plaque -- significant
- LAD (mid): 40% stenosis, calcified plaque
- LCx (proximal): 30% stenosis, calcified plaque
- RCA (proximal): 15% stenosis, no plaque
- Left Main: 0% stenosis, no plaque
- High-Risk Plaque Features: Low-attenuation plaque, positive remodeling
- Ejection Fraction Estimate: 55%
- Severity Classification: Urgent
Show: Genomic enrichment panel linking to familial hypercholesterolemia genes:
- LDLR -- Variants cause 60-80% of familial hypercholesterolemia cases
- PCSK9 -- Gain-of-function variants increase LDL cholesterol
- APOB -- Defective ligand binding causes FH
- LPA -- Elevated Lp(a) is an independent cardiovascular risk factor
- 9p21 -- Strongest common CAD risk variant locus
Talking points:
- "Calcium score of 385 (92nd percentile for age and sex) -- high atherosclerotic burden quantified in seconds."
- "AI detected 72% LAD stenosis with high-risk plaque features: low-attenuation plaque and positive remodeling."
- "CAD-RADS 4A classification automatically generated with guideline-concordant follow-up recommendations."
- "Cross-modal genomic enrichment identifies familial hypercholesterolemia genes -- LDLR, PCSK9, APOB -- family cascade screening is indicated."
- "Complete cardiac loop: CTA -> calcium score -> stenosis grading -> genomics -> risk management."
Route B: Interactive Exploration (10 minutes)¶
This route demonstrates the breadth of the knowledge base, protocol intelligence, dose optimization, and export capabilities.
Step 4: Evidence Explorer (3 minutes)¶
Click: the Evidence Explorer tab (the first tab).
Type this query in the "Ask a question" text input:
What AI models are used for intracranial hemorrhage detection?
Click: the Ask button.
Expected result:
- A markdown answer appears identifying specific models and approaches: CNN-based classifiers, U-Net segmentation, attention-based architectures, and FDA-cleared commercial solutions.
- Evidence sources display badges from multiple collections:
imaging_literature,imaging_devices,imaging_benchmarks,imaging_findings. - Each source shows its cosine similarity score and a text excerpt.
- Processing time caption appears at the bottom.
Show: The evidence count -- 20+ sources retrieved across multiple collections in a single query.
Type this comparative query in the text input:
CT vs MRI for stroke detection
Click: the Ask button.
Expected result: Claude detects the comparative keywords ("vs") and produces a structured comparison table:
| Dimension | CT | MRI |
|---|---|---|
| Speed | Minutes | 30-60 minutes |
| Sensitivity (acute hemorrhage) | >95% | Lower for acute blood |
| Sensitivity (ischemic stroke) | Limited (<6h) | High (DWI within minutes) |
| Availability | Ubiquitous, 24/7 | Limited off-hours |
| Cost | Lower | Higher |
| Guideline Role | First-line for acute stroke | Follow-up and characterization |
Talking points:
- "One question searched all 10 collections in parallel -- literature, devices, benchmarks, and findings all contributed evidence."
- "The comparative query was auto-detected. Claude parsed 'CT' and 'MRI' as two entities and ran dual retrieval."
- "Every claim is backed by a citation with cosine similarity scores."
Step 5: Protocol Advisor (2 minutes)¶
Click: the Protocol Advisor tab (the third tab).
Type this value in the clinical indication input:
acute chest pain, rule out pulmonary embolism
Enter: Patient age = 45, Patient weight = 80 kg.
Click: the Recommend Protocol button.
Expected result: A protocol recommendation card displays:
- Protocol: CT Pulmonary Angiography (CTPA)
- Modality: CT
- Contrast Agent: Iodinated IV contrast (100 mL, bolus tracking)
- Estimated Dose: Optimized CTDIvol with AI dose reduction percentage
- Duration: Estimated scan time
- AI Optimization Notes: DLIR (Deep Learning Image Reconstruction) recommendations, kVp optimization for patient weight
- Alternatives: V/Q scan (if contrast allergy), D-dimer follow-up (if low pretest probability)
Talking points:
- "Patient-specific dose adjustment based on age and weight -- the protocol adapts to the individual."
- "AI optimization notes recommend DLIR for noise reduction at lower dose levels."
- "Alternatives are provided for patients with contrast allergies -- following the ALARA principle."
Step 6: Dose Intelligence (2 minutes)¶
Click: the Dose Intelligence tab (the fifth tab).
Expected result: The dose comparison dashboard displays:
- Summary Statistics: 20 protocols analyzed, average dose reduction, max/min reduction by modality.
- Standard vs AI-Optimized Dose Chart: Side-by-side bar chart comparing CTDIvol (mGy) for standard protocols vs AI-optimized protocols.
- Protocol Table: All 20 protocols with standard dose, AI-optimized dose, reduction percentage, technique used, and image quality assessment.
Show: The average dose reduction metric.
Expected result: ~36% average dose reduction across all 20 protocols. Individual protocols range from 15-55% reduction depending on body region and technique.
Talking points:
- "DLIR (Deep Learning Image Reconstruction) reduces radiation dose by an average of 36% without sacrificing diagnostic image quality."
- "The highest reductions are in pediatric protocols and repeat imaging studies."
- "Image quality is maintained or improved -- AI reconstruction compensates for lower photon counts."
- "This directly supports the ALARA principle: As Low As Reasonably Achievable."
Step 7: Device & AI Ecosystem (1 minute)¶
Click: the Device & AI Ecosystem tab (the fourth tab).
Expected result: A searchable, filterable catalog of AI devices displays with columns for device name, manufacturer, modality, clinical task, regulatory status, and performance metrics.
Select: Modality filter = CT, Task filter = detection.
Expected result: The table filters to show CT-specific AI detection devices -- triage tools, hemorrhage detectors, pulmonary embolism detectors, nodule detection, and fracture detection solutions.
Show: The total device count: 50 FDA-cleared and research AI devices across all modalities.
Talking points:
- "A landscape of 50+ AI devices spanning CT, MRI, X-ray, ultrasound, mammography, and PET."
- "Each device is catalogued with regulatory status, clinical task, and published performance benchmarks."
- "This collection enables evidence-based evaluation of AI tools for clinical deployment."
Step 8: Reports & Export (2 minutes)¶
Click: the Reports & Export tab (the sixth tab).
Click: the Generate Report button to create a report from the last query.
Expected result: A formatted clinical report renders inline with sections:
- Clinical Question -- the original query
- Analysis -- Claude-synthesized answer with structured findings
- Evidence Citations -- numbered list with collection badges, document IDs, and relevance scores
Show: The four export format buttons:
- Markdown -- Copy-paste ready for clinical notes
- JSON -- Structured data for programmatic consumption
- PDF -- NVIDIA-themed report with green headers and professional formatting
- FHIR R4 -- DiagnosticReport Bundle with SNOMED CT and LOINC coding
Click: the PDF button.
Expected result: A PDF downloads with NVIDIA-branded formatting, clinical question, analysis, evidence citations with relevance scores, and a disclaimer footer.
Click: the FHIR R4 button.
Expected result: A FHIR R4 DiagnosticReport Bundle renders as JSON, including resourceType: "Bundle", DiagnosticReport resource with LOINC-coded sections, and Observation resources for each finding.
Talking points:
- "Four export formats for different integration needs: Markdown for sharing, JSON for APIs, PDF for clinical documentation, FHIR R4 for EHR interoperability."
- "The FHIR R4 bundle uses SNOMED CT and LOINC coding for standards-based interoperability."
- "PDF reports include all evidence citations with relevance scores -- fully auditable AI-assisted findings."
Troubleshooting¶
No Collections Found¶
If the health check shows zero vectors or collections are missing:
cd ai_agent_adds/imaging_intelligence_agent/agent
python3 scripts/setup_collections.py --drop-existing
python3 scripts/seed_literature.py
python3 scripts/seed_trials.py
python3 scripts/seed_findings.py
python3 scripts/seed_protocols.py
python3 scripts/seed_devices.py
python3 scripts/seed_anatomy.py
python3 scripts/seed_benchmarks.py
python3 scripts/seed_guidelines.py
python3 scripts/seed_report_templates.py
python3 scripts/seed_datasets.py
RAG Returns Empty Answers¶
If queries return evidence but the answer is empty or generic:
# Verify ANTHROPIC_API_KEY is set and valid
echo $ANTHROPIC_API_KEY | head -c 10
# Expected: sk-ant-api
# Test Claude directly
curl -s https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-sonnet-4-6", "max_tokens": 10, "messages": [{"role": "user", "content": "Hi"}]}'
Workflow Failed¶
If a demo case workflow fails to execute:
# Check Docker containers are healthy
docker ps | grep imaging
docker compose logs imaging-api
# Verify workflow registry
curl -s http://localhost:8524/demo-cases | python3 -m json.tool
# Expected: 4 demo cases listed
Port In Use¶
If services fail to start due to port conflicts:
# Check what is using the API port
ss -tlnp | grep 8524
# Check what is using the Streamlit port
ss -tlnp | grep 8525
# Check running Docker containers
docker ps --format "table {{.Names}}\t{{.Ports}}"
Streamlit UI Not Loading¶
# Check Streamlit container status
docker compose ps
# View Streamlit logs
docker compose logs streamlit-imaging
# Restart Streamlit service
docker compose restart streamlit-imaging
PDF Export Fails¶
PDF generation requires ReportLab. If PDF export returns a 501 error:
Quick Reference¶
URLs¶
| Resource | URL |
|---|---|
| Imaging Agent UI (Streamlit) | http://localhost:8525 |
| Imaging Agent API docs (Swagger) | http://localhost:8524/docs |
| Landing Page | http://localhost:8080 |
| Milvus | http://localhost:19530 |
| Attu (Milvus UI) | http://localhost:8000 |
| Grafana Monitoring | http://localhost:3000 |
Collections Reference¶
| Collection | Purpose | Approx. Vectors |
|---|---|---|
imaging_literature |
Published research papers and reviews | 50 |
imaging_trials |
ClinicalTrials.gov AI-in-imaging records | 40 |
imaging_findings |
Imaging finding templates and patterns | 50 |
imaging_protocols |
Acquisition protocols and parameters | 40 |
imaging_devices |
FDA-cleared AI/ML medical devices | 50 |
imaging_anatomy |
Anatomical structure references | 30 |
imaging_benchmarks |
Model performance benchmarks | 40 |
imaging_guidelines |
Clinical practice guidelines (ACR, RSNA) | 40 |
imaging_report_templates |
Structured radiology report templates | 50 |
imaging_datasets |
Public imaging datasets (TCIA, PhysioNet) | 50 |
genomic_evidence |
Shared genomic variants (read-only, Stage 1) | 3,561,170 |
Key curl Examples¶
# Health check
curl -s http://localhost:8524/health | python3 -m json.tool
# List collections
curl -s http://localhost:8524/collections | python3 -m json.tool
# List demo cases
curl -s http://localhost:8524/demo-cases | python3 -m json.tool
# Run a demo case
curl -s -X POST http://localhost:8524/demo-cases/DEMO-001/run | python3 -m json.tool
# Protocol recommendation
curl -s -X POST http://localhost:8524/protocol/recommend \
-H "Content-Type: application/json" \
-d '{
"indication": "acute chest pain, rule out pulmonary embolism",
"patient_age": 45,
"patient_weight_kg": 80
}' | python3 -m json.tool
# Dose summary
curl -s http://localhost:8524/dose/summary | python3 -m json.tool
Appendix: API Reference¶
All endpoints below are served by the FastAPI server at http://localhost:8524. These are provided for programmatic integration, automated testing, and scripting -- not for live demo use. Use the Streamlit UI at port 8525 for demos.
Interactive API documentation is available at http://localhost:8524/docs (Swagger UI).
Health and Status¶
# Health check -- all collections, vectors, and NIM service status
curl -s http://localhost:8524/health | python3 -m json.tool
# List all collections with vector counts and labels
curl -s http://localhost:8524/collections | python3 -m json.tool
# Knowledge graph statistics
curl -s http://localhost:8524/knowledge/stats | python3 -m json.tool
# Prometheus metrics
curl -s http://localhost:8524/metrics
Demo Cases¶
# List all demo cases
curl -s http://localhost:8524/demo-cases | python3 -m json.tool
# Run a specific demo case (DEMO-001, DEMO-002, DEMO-003, or DEMO-004)
curl -s -X POST http://localhost:8524/demo-cases/DEMO-001/run | python3 -m json.tool
# Response includes: workflow_result, genomic_context, talking_points
RAG Queries¶
# Full RAG query (multi-collection retrieval + LLM synthesis)
curl -s -X POST http://localhost:8524/query \
-H "Content-Type: application/json" \
-d '{
"question": "What AI models are used for intracranial hemorrhage detection?",
"modality": "ct",
"body_region": "head",
"top_k": 5,
"include_genomic": true
}' | python3 -m json.tool
# Evidence-only search (retrieval only, no LLM synthesis)
curl -s -X POST http://localhost:8524/search \
-H "Content-Type: application/json" \
-d '{
"question": "lung nodule detection deep learning",
"modality": "ct",
"top_k": 10
}' | python3 -m json.tool
# Cross-collection entity linking
curl -s -X POST http://localhost:8524/find-related \
-H "Content-Type: application/json" \
-d '{
"entity": "pulmonary embolism",
"top_k": 5
}' | python3 -m json.tool
Protocol Optimization¶
# Recommend imaging protocol
curl -s -X POST http://localhost:8524/protocol/recommend \
-H "Content-Type: application/json" \
-d '{
"indication": "acute chest pain, rule out pulmonary embolism",
"patient_age": 45,
"patient_weight_kg": 80,
"patient_sex": "male",
"contrast_allergy": false,
"pregnancy": false
}' | python3 -m json.tool
Dose Intelligence¶
# Get all dose comparison data (20 protocols)
curl -s http://localhost:8524/dose/reference | python3 -m json.tool
# Get dose comparison for a specific protocol
curl -s http://localhost:8524/dose/comparison/chest | python3 -m json.tool
# Get summary statistics (avg/max/min reduction, by modality)
curl -s http://localhost:8524/dose/summary | python3 -m json.tool
Report Export¶
# Markdown report
curl -s -X POST http://localhost:8524/reports/generate \
-H "Content-Type: application/json" \
-d '{
"question": "What is the optimal imaging protocol for suspected stroke?",
"modality": "ct",
"format": "markdown"
}' | python3 -m json.tool
# JSON report
curl -s -X POST http://localhost:8524/reports/generate \
-H "Content-Type: application/json" \
-d '{
"question": "What is the optimal imaging protocol for suspected stroke?",
"format": "json"
}' | python3 -m json.tool
# PDF report (binary download)
curl -s -X POST http://localhost:8524/reports/generate \
-H "Content-Type: application/json" \
-d '{
"question": "What is the optimal imaging protocol for suspected stroke?",
"format": "pdf"
}' --output imaging_report.pdf
HCLS AI Factory -- Apache 2.0 | March 2026