Skip to content

Relecture (Proofreading)

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.


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)”
StatutDescription
pendingEn attente de relecture
approvedValidé par l’ophtalmologue
rejectedRejeté par l’ophtalmologue

Modèle : src/Domain/Appointment/Models/AppointmentProofreading.php

ChampTypeDescription
appointment_iduuidRDV concerné
proofreader_iduuidOphtalmologue relecteur
requester_iduuidOrthoptiste demandeur
statusenumpending, approved, rejected
is_urgentboolUrgence signalée
proofreading_atdatetimeDate de la relecture

Sur le modèle User (tenant) :

  • proofreaders() — les ophtalmos qui relisent pour cet orthoptiste
  • proofreaderOf() — les orthoptistes pour lesquels cet ophtalmo relit

Pivot table : proofreaders (user_idproofreader_id)


Avant de pouvoir envoyer des relectures, l’orthoptiste doit inviter un ophtalmologue.

Modèle : src/Domain/Proofreader/Models/ProofreaderInvitation.php

  1. L’orthoptiste crée une ProofreaderInvitation (requester_idproofreader_id)
  2. send() envoie une notification par email
  3. L’ophtalmo peut :
    • accept() → attache le proofreader dans la pivot + supprime l’invitation
    • decline() → supprime l’invitation

Chaque relecture peut générer une ligne de rétrocession (RetrocessionLineType::PROOFREADING_BETWEEN_USERS). Voir la page Rétrocession.


FichierRôle
src/Domain/Appointment/Models/AppointmentProofreading.phpModèle de relecture
src/Domain/Appointment/Enums/AppointmentProofreadingStatus.phpStatuts
src/Domain/Proofreader/Models/ProofreaderInvitation.phpInvitation relecteur
src/Domain/Appointment/Observers/AppointmentProofreadingObserver.phpObserver (notifications, side effects)
src/Domain/Appointment/Policies/AppointmentProofreadingPolicy.phpAutorisations
app/Modules/Proofreaders/Controllers proofreading