Cardiology Visual System
A unified meta-skill that intelligently routes visual content requests to the optimal tool. No more switching between Napkin.ai, NotebookLM, or other subscriptions—everything happens in Claude Code.
Quick Reference: What Tool Does What
You Ask For Tool Used Output
Blog header, lifestyle photo, patient scenario Fal.ai PNG image
Infographic, explainer graphic, medical illustration Gemini PNG/JPG image
Flowchart, treatment algorithm, clinical pathway Mermaid SVG/PNG diagram
Slide deck, presentation Marp PPTX/PDF/HTML slides
Data chart, trial results, trends over time Plotly Interactive HTML or PNG
Interactive explainer, dashboard React Artifact Interactive HTML
Quick visualization prototype, exploratory data viz LIDA ⚠️ PNG + Code (prototype only)
Automatic Routing Logic
When you ask for visuals, I determine the best tool by analyzing your request:
→ Route to Fal.ai (Stock/Human Imagery)
Keywords: blog image , header , hero image , lifestyle , patient photo , stock , person , family , emotional , scenario
Best for:
-
Blog post headers
-
Patient experience illustrations
-
Lifestyle/wellness imagery
-
Emotional/human-centered scenes
-
Recovery and hope imagery
NOT for: Medical devices, ECGs, diagrams, data, or text-heavy content
→ Route to Gemini (Infographics & Medical Illustrations)
Keywords: infographic , explainer , illustration , visual summary , concept diagram , icons , steps , process visual , simplified , educational graphic
Best for:
-
Infographics (like Napkin.ai produces)
-
Medical concept illustrations
-
Simplified explainer graphics
-
Educational visuals with icons
-
Text-in-image content
-
Visual summaries of articles
→ Route to Mermaid (Diagrams & Flowcharts)
Keywords: flowchart , algorithm , pathway , decision tree , sequence , timeline , process flow , treatment algorithm , diagnostic pathway , workflow
Best for:
-
Clinical decision trees
-
Treatment algorithms
-
Diagnostic pathways
-
Process workflows
-
Organizational charts
-
Sequence diagrams
-
Gantt charts for timelines
→ Route to Marp (Slide Decks)
Keywords: slides , presentation , deck , powerpoint , lecture , talk , keynote
Best for:
-
Conference presentations
-
Educational lectures
-
Patient education slides
-
Grand rounds presentations
-
CME content
→ Route to Plotly (Data Visualization)
Keywords: chart , graph , plot , data , statistics , trial results , forest plot , trends , comparison , survival curve , Kaplan-Meier , bar chart , line graph , scatter
Best for:
-
Clinical trial results
-
Statistical comparisons
-
Trends over time
-
Forest plots
-
Survival curves
-
Before/after data
-
Multi-study comparisons
→ Route to React Artifact (Interactive)
Keywords: interactive , dashboard , calculator , tool , widget , animated , explorable
Best for:
-
Risk calculators
-
Interactive explainers
-
Animated diagrams
-
Patient education tools
-
Explorable explanations
→ Route to LIDA (Quick Prototyping) ⚠️ PROTOTYPING ONLY
Keywords: quick , prototype , exploratory , rough draft , multiple options , try , experiment , brainstorm visualization
⚠️ CRITICAL LIMITATIONS:
-
PROTOTYPING ONLY - NOT for publication or patient-facing materials
-
Quality varies - ALWAYS review for medical accuracy
-
Works best with ≤10 data columns
-
No specialized medical charts (true forest plots, Kaplan-Meier)
-
Requires manual validation before ANY use
Best for:
-
Quick exploratory data visualization ("what does this data show?")
-
Generating multiple visualization candidates
-
Brainstorming chart types for new data
-
Internal research review only
NOT for:
-
Publication-ready charts → Use Plotly instead
-
Patient-facing materials → Use production tools
-
Regulatory submissions → Never
-
Final blog posts → Use Plotly or Gemini
When in doubt, use Plotly for data visualization instead of LIDA.
Tool 1: Fal.ai (Blog Imagery)
Setup
export FAL_KEY="your-fal-api-key"
Get key from: https://fal.ai/dashboard/keys
Usage
python scripts/fal_image.py "A 55-year-old man experiencing chest pain at work" --output hero.png
Models
Model Cost Best For
fal-ai/recraft-v3
$0.04 Default - Best quality
fal-ai/flux-pro/v1.1
$0.04 Photorealism
fal-ai/flux/schnell
$0.003 Fast/cheap drafts
What to Generate vs Not Generate
✅ GENERATE:
-
Patient symptoms/experiences (chest pain, shortness of breath)
-
Lifestyle scenes (exercise, healthy cooking)
-
Doctor-patient conversations
-
Family support moments
-
Recovery celebrations
❌ DO NOT GENERATE:
-
Medical devices (pacemakers, stents, valves)
-
Clinical imagery (ECGs, angiograms, OR scenes)
-
Anatomical diagrams
-
Medications
Tool 2: Gemini (Infographics)
Setup
export GEMINI_API_KEY="your-gemini-api-key"
Usage
python scripts/gemini_infographic.py
--topic "Heart Failure Stages"
--style "minimalist medical"
--output hf_stages.jpg
Prompting for Medical Infographics
Structure your prompt:
Create a [STYLE] infographic showing [TOPIC].
Include:
- [Key point 1]
- [Key point 2]
- [Key point 3]
Style: [clean/minimalist/modern medical], use icons, clear hierarchy, professional color palette (blues, teals for medical), easy to read text
Example prompts:
Disease Progression:
"Create a minimalist medical infographic showing the 4 stages of heart failure (A, B, C, D). Use icons for each stage, show progression with arrows, include brief descriptions. Clean layout, medical blue color scheme."
Treatment Comparison:
"Create an infographic comparing medication vs intervention for AFib. Two columns, icons for each approach, bullet points for pros/cons. Modern medical style."
Risk Factor Summary:
"Create a visual summary of 7 modifiable risk factors for heart disease. Icon for each factor, clean grid layout, actionable tips. Professional medical illustration style."
Tool 3: Mermaid (Diagrams)
You have Mermaid Chart MCP connected. Use it for structured diagrams.
Common Cardiology Diagram Types
- Treatment Algorithm:
flowchart TD A[Acute Chest Pain] --> B{STEMI?} B -->|Yes| C[Primary PCI < 90 min] B -->|No| D{High-risk NSTEMI?} D -->|Yes| E[Early invasive < 24h] D -->|No| F[Ischemia-guided strategy]
- Clinical Pathway:
flowchart LR A[Diagnosis] --> B[Risk Stratification] B --> C[Treatment Selection] C --> D[Follow-up Protocol]
- Diagnostic Decision Tree:
flowchart TD A[Dyspnea] --> B{BNP elevated?} B -->|Yes| C{Echo findings?} B -->|No| D[Consider other causes] C -->|HFrEF| E[GDMT initiation] C -->|HFpEF| F[Diuretics + address comorbidities]
- Timeline (Gantt):
gantt title Post-MI Care Timeline dateFormat YYYY-MM-DD section Acute Hospital stay :a1, 2024-01-01, 5d section Recovery Cardiac rehab :a2, after a1, 12w section Long-term Medication titration :a3, after a1, 6m
Tool 4: Marp (Slides)
Setup
npm install -g @marp-team/marp-cli
Usage
-
I write Markdown with Marp syntax
-
Save as presentation.md
-
Convert:
marp presentation.md --pptx # PowerPoint marp presentation.md --pdf # PDF marp presentation.md -o slides.html # HTML
Marp Template for Medical Slides
marp: true theme: default paginate: true backgroundColor: #ffffff color: #333333
Heart Failure Management
Modern Approaches in 2024
Dr. [Your Name] Interventional Cardiology
Agenda
- Current Guidelines
- New Therapies
- Case Discussion
Key Statistics
- 6.7 million Americans with HF
- 50% mortality at 5 years
- $30.7 billion annual cost

Treatment Algorithm
flowchart TD
A[HFrEF Diagnosis] --> B[GDMT Initiation]
B --> C[Titrate to target doses]
Take-Home Points
- Early initiation matters
- Quadruple therapy is standard
- Device therapy in appropriate patients
Questions?
Contact: your@email.com
---
## Tool 5: Plotly (Data Visualization)
### Setup
```bash
pip install plotly kaleido pandas --break-system-packages
Common Medical Visualizations
1. Bar Chart (Trial Results):
import plotly.express as px
data = {
'Treatment': ['Drug A', 'Drug B', 'Placebo'],
'Event Rate (%)': [12.3, 15.1, 18.7]
}
fig = px.bar(data, x='Treatment', y='Event Rate (%)',
title='Primary Endpoint: Major Cardiovascular Events',
color='Treatment')
fig.write_html('trial_results.html')
fig.write_image('trial_results.png')
2. Forest Plot Style:
import plotly.graph_objects as go
studies = ['PARADIGM-HF', 'DAPA-HF', 'EMPEROR-Reduced']
hr = [0.80, 0.74, 0.75]
lower = [0.73, 0.65, 0.65]
upper = [0.87, 0.85, 0.86]
fig = go.Figure()
for i, study in enumerate(studies):
fig.add_trace(go.Scatter(
x=[lower[i], upper[i]], y=[study, study],
mode='lines', line=dict(color='gray', width=2)
))
fig.add_trace(go.Scatter(
x=[hr[i]], y=[study],
mode='markers', marker=dict(size=12, color='navy')
))
fig.add_vline(x=1.0, line_dash="dash", line_color="red")
fig.update_layout(title='Hazard Ratios for Heart Failure Trials',
xaxis_title='Hazard Ratio (95% CI)')
3. Trend Over Time:
import plotly.express as px
fig = px.line(df, x='Year', y='Mortality Rate',
color='Treatment Era',
title='Heart Failure Mortality Trends 1990-2024')
fig.write_html('trends.html')
Tool 6: LIDA (Quick Prototyping) ⚠️ PROTOTYPING ONLY
⚠️ Critical Warning
LIDA is a PROTOTYPING TOOL ONLY. Do NOT use for:
- Publication-ready visualizations
- Patient-facing materials
- Regulatory submissions
- Final blog posts or social media
For production visualizations, use:
- Plotly (data charts)
- Gemini (infographics)
- Fal.ai (images)
Setup
# Install LIDA
pip install lida llmx openai --break-system-packages
# Set API key (choose one)
export OPENAI_API_KEY="your-key" # Recommended
export GOOGLE_API_KEY="your-key" # Free tier (Gemini)
export ANTHROPIC_API_KEY="your-key" # Claude
What LIDA Does
LIDA (Automatic Visualization Generation) uses LLMs to:
- Analyze your data structure
- Generate visualization code from natural language
- Create multiple visualization candidates
- Support multiple libraries (Plotly, Matplotlib, Seaborn, Altair)
Published: ACL 2023 (Microsoft Research)
Limitations
- ≤10 columns recommended - LLM context constraints
- Quality varies - AI-generated, needs review
- No specialized medical charts - No true forest plots, Kaplan-Meier
- Error rate: <3.5% reported, but ALWAYS verify medical accuracy
- Not production-ready - Use for exploration only
Usage
Basic Usage:
python scripts/lida_quick_viz.py "Show mortality by treatment group" trial_data.csv
Multiple Candidates:
python scripts/lida_quick_viz.py "Compare outcomes" data.csv --candidates 3
Use Medical Template:
python scripts/lida_quick_viz.py "Trial results" data.csv --template trial_comparison
Specify Library:
python scripts/lida_quick_viz.py "Trends over time" data.csv --library plotly
Interactive Mode:
python scripts/lida_quick_viz.py --interactive data.csv
List Templates:
python scripts/lida_quick_viz.py --list-templates
Medical Templates
Template
Description
Use Case
trial_comparison
Compare treatment arms
Primary endpoint results
patient_demographics
Baseline characteristics
Patient population summary
outcome_comparison
Primary/secondary endpoints
Multiple outcomes comparison
trend_analysis
Trends over time
Longitudinal data
survival_curve
Time-to-event (simplified)
Event-free survival (NOT true KM)
Example Workflow
1. Exploratory Analysis (LIDA):
# Quick exploration of new trial data
python scripts/lida_quick_viz.py \
"Show primary endpoint by treatment arm with confidence intervals" \
trial_results.csv \
--template trial_comparison \
--candidates 3
2. Review Candidates:
- Check medical accuracy
- Verify data interpretation
- Select best approach
3. Production Version (Plotly):
# Recreate selected visualization in production quality
python scripts/plotly_charts.py bar --data trial_results.csv --output final_chart.png
Quality Validation Checklist
Every LIDA output includes this checklist:
⚠️ QUALITY VALIDATION CHECKLIST - REVIEW BEFORE USE
Medical Accuracy:
[ ] Data interpretation is correct
[ ] Statistical measures are appropriate
[ ] Confidence intervals/error bars are correct
[ ] P-values and significance are accurate
[ ] Sample sizes are represented correctly
Visual Design:
[ ] Chart type is appropriate
[ ] Color scheme is professional
[ ] Labels are clear and complete
[ ] Legend is accurate
[ ] Title describes the content
Medical Standards:
[ ] Follows publication standards
[ ] No misleading visualizations
[ ] Appropriate precision
[ ] Context is provided
[ ] Source attribution if needed
When to Use LIDA vs Plotly
Scenario
Tool
Reason
"What's the best way to show this data?"
LIDA
Exploration, multiple options
"Show me trial results quickly"
LIDA
Speed over perfection
"Generate 3 chart options"
LIDA
Multiple candidates
"Publication-ready chart"
Plotly
Production quality
"Blog post visualization"
Plotly
Final output
"Patient education"
Plotly
Accuracy critical
"Regulatory submission"
Plotly
Never use LIDA
Cost
Model
Cost
Speed
Quality
OpenAI (GPT-4o-mini)
$0.60/M tokens
Fast
Good
Gemini (Free tier)
FREE
Fast
Good
Claude (Sonnet)
Variable
Medium
Excellent
Typical cost per visualization: $0.01-0.05 (negligible)
Example: Interactive Session
python scripts/lida_quick_viz.py --interactive trial_data.csv
# In interactive mode:
> list # Show templates
> template trial_comparison # Set template
> library plotly # Set library
> viz Show mortality by treatment # Generate viz
> viz Compare age distribution # Another viz
> quit
Output Structure
lida_output/
├── candidate_1_code.py # Generated Python code
├── candidate_1.png # Rendered visualization
├── candidate_2_code.py
├── candidate_2.png
└── ...
Integrated Workflow Example
Scenario: You're writing a blog post about heart failure medications.
Step 1: Hero Image (Fal.ai)
python scripts/fal_image.py \
"Elderly patient having hopeful conversation with cardiologist about new treatment options" \
--output images/hero.png
Step 2: Treatment Algorithm (Mermaid)
Create a Mermaid flowchart showing HFrEF GDMT initiation:
- Start with diagnosis
- Branch to ARNI/ACEi + Beta-blocker
- Add SGLT2i + MRA
- Device consideration
Step 3: Trial Data (Plotly)
# Compare mortality reduction across trials
trials_df = pd.DataFrame({
'Trial': ['PARADIGM-HF', 'DAPA-HF', 'EMPEROR-Reduced'],
'Mortality Reduction': [20, 17, 14]
})
fig = px.bar(trials_df, x='Trial', y='Mortality Reduction',
title='Mortality Reduction in Landmark HF Trials (%)')
Step 4: Key Concepts Infographic (Gemini)
Create a clean medical infographic summarizing the "4 Pillars of HFrEF Therapy":
1. ARNI/ACEi - heart icon
2. Beta-blocker - heart rate icon
3. MRA - kidney/electrolyte icon
4. SGLT2i - glucose/kidney icon
Style: modern medical, blue color scheme, minimal text, icon-focused
API Key Checklist
Before using this system, ensure these are set:
# Fal.ai (blog images)
export FAL_KEY="your-key"
# Gemini (infographics)
export GEMINI_API_KEY="your-key"
# LIDA (prototyping) - choose one
export OPENAI_API_KEY="your-key" # Recommended
export GOOGLE_API_KEY="your-key" # FREE (Gemini)
export ANTHROPIC_API_KEY="your-key" # Claude
# Mermaid - uses MCP, no key needed
# Plotly - local, no key needed
# Marp - local, no key needed
Cost Summary
Tool
Cost
Typical Use
Fal.ai (Recraft)
$0.04/image
3-4 per blog = $0.16
Gemini
Free tier available
Infographics
LIDA (prototyping)
$0.01-0.05/viz
Quick exploration (optional)
Mermaid
Free (MCP)
Diagrams
Plotly
Free
Data viz
Marp
Free
Slides
Total per blog post: ~$0.16-0.25 (vs separate subscriptions)
Note: LIDA is optional - use FREE Gemini model for zero-cost prototyping
Files in This Skill
cardiology-visual-system/
├── SKILL.md # This file
├── scripts/
│ ├── fal_image.py # Fal.ai image generation
│ ├── gemini_infographic.py # Gemini infographic generation
│ ├── plotly_charts.py # Common chart templates
│ ├── lida_quick_viz.py # LIDA prototyping (⚠️ prototype only)
│ └── convert_slides.sh # Marp conversion helper
├── templates/
│ ├── marp_medical.md # Medical slide template
│ └── plotly_medical.py # Medical chart templates
└── references/
└── prompt_examples.md # Curated prompts for each tool