# apprajauniq/lepto-multiagent-mortality architecture

> Architecture diagram of the GitHub repository apprajauniq/lepto-multiagent-mortality, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/apprajauniq/lepto-multiagent-mortality
- Repository: https://github.com/apprajauniq/lepto-multiagent-mortality

## Overview

This repository implements a seven-stage LLM workflow for ICU mortality prediction, then analyzes and visualizes its results. The README documents the architecture and module responsibilities, but source excerpts were not provided; links below reflect documented workflow and CLI behavior rather than inspected call sites.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inference["Inference pipeline"]
  node_pipeline_cli["Pipeline CLI"]
  node_pipeline["Batch orchestration"]
  node_patient_format["Patient formatting"]
  node_prompt_templates["Agent prompts"]
  node_specialists["Five specialists"]
  node_intensivist["Intensivist"]
  node_judge["Judge"]
  node_llm_client["LLM client"]
  node_parsing["JSON parsing"]
end

subgraph group_analysis["Statistical analysis"]
  node_statistics_cli["Statistics CLI"]
  node_results_io["Results loading"]
  node_metrics["Classification metrics"]
  node_delong["DeLong tests"]
  node_failure_mode["Failure analysis"]
end

subgraph group_presentation["Results presentation"]
  node_figures_cli["Figures CLI"]
  node_figures["Figure generation"]
end

subgraph group_configuration["Configuration"]
  node_config["Configuration"]
  node_settings["YAML settings"]
end

node_clinical_data["Patient CSV"]
node_groq["Groq API"]
node_results_csv["Results CSV"]
node_statistics_json["Statistics JSON"]
node_figure_files["Figures 1–5"]
node_environment["Environment variables"]

node_clinical_data -->|"provides input"| node_pipeline_cli
node_pipeline_cli -->|"runs"| node_pipeline
node_pipeline_cli -->|"loads settings"| node_config
node_pipeline -->|"formats records"| node_patient_format
node_pipeline -->|"runs on records"| node_specialists
node_pipeline -->|"runs after specialists"| node_intensivist
node_pipeline -->|"runs after integration"| node_judge
node_pipeline -->|"writes results"| node_results_csv
node_patient_format -->|"supplies patient text"| node_specialists
node_specialists -->|"supplies predictions"| node_intensivist
node_specialists -->|"supplies predictions"| node_judge
node_intensivist -->|"supplies prediction"| node_judge
node_specialists -->|"uses prompts"| node_prompt_templates
node_intensivist -->|"uses prompts"| node_prompt_templates
node_judge -->|"uses prompts"| node_prompt_templates
node_specialists -->|"requests inference"| node_llm_client
node_intensivist -->|"requests inference"| node_llm_client
node_judge -->|"requests inference"| node_llm_client
node_llm_client -->|"calls API"| node_groq
node_llm_client -->|"parses response"| node_parsing
node_statistics_cli -->|"loads results"| node_results_io
node_results_csv -->|"provides data"| node_results_io
node_statistics_cli -->|"computes metrics"| node_metrics
node_statistics_cli -->|"runs paired tests"| node_delong
node_statistics_cli -->|"analyzes dissent"| node_failure_mode
node_statistics_cli -->|"writes summary"| node_statistics_json
node_figures_cli -->|"generates figures"| node_figures
node_results_csv -->|"provides data"| node_figures_cli
node_figures_cli -->|"writes PNGs"| node_figure_files
node_config -->|"reads settings"| node_settings
node_config -->|"reads secrets"| node_environment

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pipeline_cli,node_pipeline,node_patient_format,node_prompt_templates,node_specialists,node_intensivist,node_judge,node_llm_client,node_parsing toneBlue
class node_statistics_cli,node_results_io,node_metrics,node_delong,node_failure_mode toneAmber
class node_figures_cli,node_figures,node_groq toneMint
class node_config,node_settings toneRose
class node_clinical_data,node_results_csv,node_statistics_json,node_figure_files,node_environment toneIndigo
```

## Components

### Inference pipeline

- **Pipeline CLI**
- **Batch orchestration**
- **Patient formatting**
- **Agent prompts**
- **Five specialists**
- **Intensivist**
- **Judge**
- **LLM client**
- **JSON parsing**

### Statistical analysis

- **Statistics CLI**
- **Results loading**
- **Classification metrics**
- **DeLong tests**
- **Failure analysis**

### Results presentation

- **Figures CLI**
- **Figure generation**

### Configuration

- **Configuration**
- **YAML settings**

### Other components

- **Patient CSV**
- **Groq API**
- **Results CSV**
- **Statistics JSON**
- **Figures 1–5**
- **Environment variables**

## Connections

- Patient CSV → Pipeline CLI: provides input
- Pipeline CLI → Batch orchestration: runs
- Pipeline CLI → Configuration: loads settings
- Batch orchestration → Patient formatting: formats records
- Batch orchestration → Five specialists: runs on records
- Batch orchestration → Intensivist: runs after specialists
- Batch orchestration → Judge: runs after integration
- Batch orchestration → Results CSV: writes results
- Patient formatting → Five specialists: supplies patient text
- Five specialists → Intensivist: supplies predictions
- Five specialists → Judge: supplies predictions
- Intensivist → Judge: supplies prediction
- Five specialists → Agent prompts: uses prompts
- Intensivist → Agent prompts: uses prompts
- Judge → Agent prompts: uses prompts
- Five specialists → LLM client: requests inference
- Intensivist → LLM client: requests inference
- Judge → LLM client: requests inference
- LLM client → Groq API: calls API
- LLM client → JSON parsing: parses response
- Statistics CLI → Results loading: loads results
- Results CSV → Results loading: provides data
- Statistics CLI → Classification metrics: computes metrics
- Statistics CLI → DeLong tests: runs paired tests
- Statistics CLI → Failure analysis: analyzes dissent
- Statistics CLI → Statistics JSON: writes summary
- Figures CLI → Figure generation: generates figures
- Results CSV → Figures CLI: provides data
- Figures CLI → Figures 1–5: writes PNGs
- Configuration → YAML settings: reads settings
- Configuration → Environment variables: reads secrets
