Bienvenue dans ce projet de chatbot IA dédié à la cardiologie, conçu pour aider à la pré-évaluation des patients, la génération de rapports médicaux structurés et le suivi post-consultation. L’architecture globale est orchestrée via Docker Compose, et comprend :
- Un backend en FastAPI (Python) utilisant Tortoise ORM pour la base de données PostgreSQL.
- Un frontend en Streamlit permettant l’interaction avec le patient (questionnaire, post-consultation) et avec le médecin (interface de suivi, génération de PDF, etc.).
- Une base de données PostgreSQL pour stocker les informations relatives aux patients, diagnostics et médecins.
- Contexte : use case IA en cardiologie
- Fonctionnalités principales
- Structure du projet
- Prérequis
- Comment lancer le projet ?
- Contribution & Licence
Ce projet répond à un besoin concret dans le domaine médical :
-
Pénurie de cardiologues et répartition inégale de l’expertise.
-
Triage non optimisé des patients, sans évaluation médicale préalable.
-
Perte de temps en consultation (questions de base).
-
Manque de suivi structuré post-consultation.
Objectif : Un assistant IA qui prépare et optimise les consultations :
- Pré-évalue le patient avant la prise de rendez-vous.
- Génère un rapport structuré des symptômes / historique médical.
- Aide le cardiologue à prioriser les cas les plus urgents.
- Assure un suivi post-consultation intelligent (rappels, alertes, etc.).
- Triage des patients : Analyse des réponses et priorisation des cas urgents.
- Consultation préliminaire : Rassemble les informations importantes (symptômes, historique, traitements en cours).
- Suivi post-consultation : Rappels de prise de médicament, vérification de l’évolution, alertes si aggravation.
- Génération de rapports : Export PDF, affichage côté médecin, éventuellement notifications pour le patient.
decapix-doctogreed-hackathon/
├── README.md <-- Vous êtes ici (présentation globale)
├── docker-compose.yaml <-- Configuration Docker Compose
├── .dockerignore <-- Fichiers ignorés par Docker
├── backend/
│ ├── backend.md <-- Documentation spécifique au backend
│ ├── Dockerfile <-- Dockerfile du backend
│ ├── requirements.txt <-- Dépendances Python du backend
│ └── app/
│ ├── __init__.py
│ ├── db_models.py
│ ├── ds.py
│ ├── enter_model.py
│ ├── main.py
│ └── routes.py
└── frontend/
├── frontend.md <-- Documentation spécifique au frontend
├── Dockerfile <-- Dockerfile du frontend
├── requirements.txt <-- Dépendances Python du frontend
└── pages/
├── doctor.py
└── patient.py
- Docker (version 20+ recommandée)
- Docker Compose (version 3.8+)
- (Optionnel) Connaissances basiques de FastAPI, Streamlit et PostgreSQL pour personnaliser l’application.
-
Cloner le dépôt :
bash git clone https://github.com/votre-compte/doctogreed-hackathon.git cd doctogreed-hackathon -
(Facultatif) Mettre à jour les variables d’environnement dans
docker-compose.yamlsi nécessaire (ex.DATABASE_URL,POSTGRES_USER,POSTGRES_PASSWORD, etc.). -
Créer un fichier .env et mettre la bonne clé API ainsi que la bonne URL. Exemple :
https://api.scaleway.ai/c98de2b2-feb7-4780-a578-4c5276194bf4/v1. -
Lancer Docker Compose :
docker-compose up --build
- Créer un utilisateur :
curl -X POST http://127.0.0.1:8000/create/patient/ -H "Content-Type:application/json" -d '{"nom":"votre_nom"}'
- Simuler sa prise de rendez vous dans la partie
chatbot patient - Se mettre à la place du docteur pour comparer les patients
docteur
Cela va lancer :
- Le service backend sur le port
8000 - Le service frontend sur le port
8501 - Le service db (PostgreSQL) sur le port
5432
-
Accéder aux applications :
- Backend (FastAPI) : http://localhost:8000/docs pour la doc auto (Swagger).
- Frontend (Streamlit) : http://localhost:8501 pour l’interface utilisateur.
-
Vérifier la base de données :
- Par défaut, le container PostgreSQL est accessible sur le port
5432. - Les identifiants (ex:
user / password) sont définis dansdocker-compose.yaml.
- Par défaut, le container PostgreSQL est accessible sur le port
-
Arrêter l’environnement :
docker-compose down
- Contributions : Les PR, issues et suggestions sont les bienvenues.
- Licence : Ce projet est sous licence libre (à spécifier selon votre besoin : MIT, Apache 2.0, etc.).
Pour plus de détails, référez-vous aux README spécifiques :
- backend.md dans le dossier
backend. - frontend.md dans le dossier
frontend.