Relecture (Proofreading)
Vue d’ensemble
Section titled “Vue d’ensemble”La relecture permet à un orthoptiste d’envoyer un dossier patient à un ophtalmologue pour validation. L’ophtalmologue peut valider, rejeter ou mettre en attente le dossier.
Cette feature est activable par tenant via is_proofreading_enabled.
Workflow
Section titled “Workflow”sequenceDiagram
participant O as Orthoptiste
participant API as API HerVe
participant P as Ophtalmologue
O->>API: Crée le RDV, saisit variables
O->>API: Soumet en relecture (AppointmentProofreading)
API->>P: Notification de relecture
P->>API: Ouvre la page relecture
P->>API: Examine les données
alt Validation
P->>API: Valide (approved)
else Rejet
P->>API: Rejette (rejected)
else En attente
P->>API: Met en attente (pending)
end
API->>O: Notification du résultat
Statuts de relecture (AppointmentProofreadingStatus)
Section titled “Statuts de relecture (AppointmentProofreadingStatus)”| Statut | Description |
|---|---|
pending | En attente de relecture |
approved | Validé par l’ophtalmologue |
rejected | Rejeté par l’ophtalmologue |
Modèles
Section titled “Modèles”AppointmentProofreading
Section titled “AppointmentProofreading”Modèle : src/Domain/Appointment/Models/AppointmentProofreading.php
| Champ | Type | Description |
|---|---|---|
appointment_id | uuid | RDV concerné |
proofreader_id | uuid | Ophtalmologue relecteur |
requester_id | uuid | Orthoptiste demandeur |
status | enum | pending, approved, rejected |
is_urgent | bool | Urgence signalée |
proofreading_at | datetime | Date de la relecture |
Relations relecteurs (User ↔ User)
Section titled “Relations relecteurs (User ↔ User)”Sur le modèle User (tenant) :
proofreaders()— les ophtalmos qui relisent pour cet orthoptisteproofreaderOf()— les orthoptistes pour lesquels cet ophtalmo relit
Pivot table : proofreaders (user_id ↔ proofreader_id)
Invitations relecteur
Section titled “Invitations relecteur”Avant de pouvoir envoyer des relectures, l’orthoptiste doit inviter un ophtalmologue.
Modèle : src/Domain/Proofreader/Models/ProofreaderInvitation.php
- L’orthoptiste crée une
ProofreaderInvitation(requester_id→proofreader_id) send()envoie une notification par email- L’ophtalmo peut :
accept()→ attache le proofreader dans la pivot + supprime l’invitationdecline()→ supprime l’invitation
Lien avec la rétrocession
Section titled “Lien avec la rétrocession”Chaque relecture peut générer une ligne de rétrocession (RetrocessionLineType::PROOFREADING_BETWEEN_USERS). Voir la page Rétrocession.
Fichiers clés
Section titled “Fichiers clés”| Fichier | Rôle |
|---|---|
src/Domain/Appointment/Models/AppointmentProofreading.php | Modèle de relecture |
src/Domain/Appointment/Enums/AppointmentProofreadingStatus.php | Statuts |
src/Domain/Proofreader/Models/ProofreaderInvitation.php | Invitation relecteur |
src/Domain/Appointment/Observers/AppointmentProofreadingObserver.php | Observer (notifications, side effects) |
src/Domain/Appointment/Policies/AppointmentProofreadingPolicy.php | Autorisations |
app/Modules/Proofreaders/ | Controllers proofreading |