How yahyalababenah/omnidiag works
OmniDiag is a multi-disease clinical decision-support application. Clinicians enter patient data through the React interface; the FastAPI API routes it by disease to a configured model and returns risk results, with separate explanation and counterfactual capabilities. Patient records and uncertain-prediction review support clinical follow-up, while authentication, administration, monitoring, report generation, and federated learning provide distinct product branches. The README documents routing and active-learning behavior; sampled excerpts do not expose every endpoint’s full call wiring, so uncertain links are omitted.
Main entry points: main.py FastAPI API · database.py Clinical database · router.py Disease router · routes.py Expert review queue
Components 25
Clinical interface
- Clinical UI
frontend/src/App.jsx - Risk workflow
frontend/src/components/EngineeringMode.jsx - API client
frontend/src/api.js
API and inference
- FastAPI API
backend/main.py - Disease router
backend/router.py - Disease configuration
configs/config_loader.py - Feature engineering
features/diabetes_features.py - Model backend
backend/model_backends/base.py - Model loading
backend/model_loader.py - SHAP explanations
backend/shap_service.py - Counterfactuals
backend/counterfactual_generator.py - Authentication and roles
backend/auth/dependencies.py
Clinical records
- Patient records
backend/patients/routes.py - Expert review queue
backend/active_learning/routes.py - Clinical database
backend/database.py - Clinical reports
backend/llm/report_generator.py
Operations and learning
- Administration
backend/admin/routes.py - Monitoring
backend/monitoring/routes.py - Active learning retraining
backend/active_learning/retrain.py - Federated site client
backend/federated/client.py - Federated aggregation
backend/federated/aggregator.py
External services
- LLM provider
- Prometheus
- Federated server
Other components
- Clinician
Connections 25
- Clinician → Clinical UI: uses
- Clinical UI → Risk workflow: opens workflow
- Risk workflow → API client: submits inputs
- API client → FastAPI API: requests prediction
- FastAPI API → Disease router: routes disease
- Disease router → Disease configuration: loads settings
- Disease router → Model backend: selects backend
- Disease router → Feature engineering: engineers features
- Model backend → Model loading: delegates inference
- FastAPI API → SHAP explanations: requests explanation
- FastAPI API → Counterfactuals: requests alternatives
- FastAPI API → Clinical database: persists predictions
- FastAPI API → Expert review queue: queues uncertain results
- Clinician → Patient records: manages patients
- Patient records → Clinical database: reads and writes
- Clinician → Expert review queue: annotates cases
- Expert review queue → Clinical database: reads and writes
- FastAPI API → Authentication and roles: checks identity
- Clinical reports → LLM provider: requests report
- Administration → Clinical database: queries records
- Administration → Active learning retraining: starts retraining
- Monitoring → Clinical database: reads predictions
- Monitoring → Prometheus: records drift metrics
- Federated site client → Federated server: sends model updates
- Federated aggregation → Federated server: aggregates updates