Rendez-vous & Variables
Vue d’ensemble
Section titled “Vue d’ensemble”Le rendez-vous (Appointment) est l’entité métier centrale. Il lie un patient, un praticien, un site et un créneau horaire. Il contient les variables médicales saisies pendant la consultation et les documents générés.
Appointment
Section titled “Appointment”Modèle : src/Domain/Appointment/Models/Appointment.php
Relations
Section titled “Relations”| Relation | Modèle | Description |
|---|---|---|
patient | Patient | Patient concerné |
user | User | Praticien (orthoptiste) |
site | Site | Lieu de la consultation |
agenda | Agenda | Agenda du praticien |
appointmentType | AppointmentType | Type de consultation |
appointmentVariables | AppointmentVariable | Variables saisies |
documents | AppointmentDocument | Documents générés |
documentAssets | AppointmentDocumentAsset | Assets (images, etc.) |
invoices | AppointmentInvoice | Factures |
proofreadings | AppointmentProofreading | Demandes de relecture |
actionLogs | AppointmentActionLog | Journal d’actions |
waitingRoom | WaitingRoom | Salle d’attente |
Statuts (AppointmentStatus)
Section titled “Statuts (AppointmentStatus)”| Statut | Description |
|---|---|
confirmed | Confirmé |
rescheduled | Reprogrammé |
waiting | En salle d’attente |
in_progress | En cours |
done | Terminé |
deleted | Supprimé |
no_show_but_ok | Absent mais ok |
no_show | Absent |
suspended | Suspendu |
Lock éditeur
Section titled “Lock éditeur”Un système de verrou Redis empêche l’édition simultanée :
- Clé :
appointments:{id}:editor userHasAcquireLock(userId)vérifie si l’utilisateur courant a le verrou
Variables médicales
Section titled “Variables médicales”Les variables représentent les mesures et données saisies pendant la consultation.
Types (VariableType)
Section titled “Types (VariableType)”| Type | Description |
|---|---|
string | Texte court |
long_string | Texte long |
list | Liste déroulante |
boolean | Oui/Non |
radio | Choix unique |
checkbox | Choix multiples |
form | Formulaire structuré |
special_form | Formulaire spécial (hardware) |
Organisation
Section titled “Organisation”CentralVariable/Variable: définition des variables (centrales et par tenant)AppointmentVariable: valeur d’une variable pour un RDV donné- Les variables hardware (tonométrie, kératométrie, etc.) sont identifiées par UUID dans
config/app.php → variables.hardware
Types de consultation (AppointmentType)
Section titled “Types de consultation (AppointmentType)”Définis centralement (CentralAppointmentType) et associés aux sites. Chaque type définit la catégorie (AppointmentTypeCategory) et la couleur de l’agenda (AppointmentTypeColor).
Documents
Section titled “Documents”Types de documents (DocumentType)
Section titled “Types de documents (DocumentType)”Les documents sont générés à partir de templates et stockés sur S3.
Templates (DocumentTemplate)
Section titled “Templates (DocumentTemplate)”- Définis centralement (
CentralDocumentTemplate) - Organisés par dossiers (
DocumentTemplateFolderType) - Types :
DocumentTemplateType
Génération PDF
Section titled “Génération PDF”La génération PDF utilise Gotenberg (conteneur Docker) :
GotenbergService::libreOfficeToPdf()— conversion LibreOffice → PDFGotenbergService::chromium()— rendu HTML → PDF via Chromium
Génération IA (Comptes-rendus)
Section titled “Génération IA (Comptes-rendus)”L’application utilise l’API Claude pour générer des comptes-rendus médicaux.
Client : src/Infrastructure/Claude/ClaudeClient.php
- Modèle configurable via
services.claude.model - Méthode
generate(prompt, maxTokens)→ texte
Types de comptes-rendus (MedicalReportTemplateType)
Section titled “Types de comptes-rendus (MedicalReportTemplateType)”| Type | Label |
|---|---|
telemedicine | Consultation de télémédecine |
assessment | Bilan complet |
screening | Dépistage préventif |
Paramètres supplémentaires :
MedicalReportDetailLevel— niveau de détailMedicalReportTone— ton du compte-rendu
Fichiers clés
Section titled “Fichiers clés”| Fichier | Rôle |
|---|---|
src/Domain/Appointment/Models/Appointment.php | Modèle RDV |
src/Domain/Appointment/Models/AppointmentVariable.php | Valeur variable pour un RDV |
src/Domain/Appointment/Models/AppointmentDocument.php | Document généré |
src/Domain/Appointment/Models/AppointmentProofreading.php | Demande de relecture |
src/Domain/Core/Models/Variable.php | Définition des variables |
src/Domain/Core/Models/CentralAppointmentType.php | Types de consultation |
src/Domain/Core/Models/CentralDocumentTemplate.php | Templates de documents |
src/Infrastructure/Claude/ClaudeClient.php | Client API Claude |
src/Infrastructure/Gotenberg/GotenbergService.php | Génération PDF |