Fix: reprise fiable du wizard diagnostic (schéma, navigation, code mort) - #49
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (8)
📝 WalkthroughWalkthroughLe wizard de diagnostic persiste désormais l’étape courante, reprend les brouillons avec leurs données, sépare la création initiale de l’édition, restaure l’analyse ICD-11 sauvegardée et adapte les actions selon le statut de validation. ChangesParcours du wizard de diagnostic
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant DiagnosticNewPage
participant getDiagnosticById
participant updateDiagnosticPatientProfile
participant SupabaseDiagnostics
DiagnosticNewPage->>getDiagnosticById: charge le brouillon via resumeId
getDiagnosticById->>SupabaseDiagnostics: lit le diagnostic
SupabaseDiagnostics-->>DiagnosticNewPage: retourne les données patient
DiagnosticNewPage->>updateDiagnosticPatientProfile: soumet le profil modifié
updateDiagnosticPatientProfile->>SupabaseDiagnostics: vérifie la clinique et met à jour le brouillon
SupabaseDiagnostics-->>DiagnosticNewPage: retourne success
DiagnosticNewPage-->>DiagnosticNewPage: redirige vers l’édition à l’étape 2
Poem
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
Contexte
Audit de la fonctionnalité diagnostic suite à une question sur le découpage en étapes avec reprise. L'architecture serveur (colonne de suivi d'étape, action dédiée par étape, page
/edit?step=N) était la bonne, mais plusieurs bugs empêchaient la reprise de fonctionner réellement.Corrections
Schéma (bloquant)
016_diagnostics_wizard_step_tracking.sql: ajoute la colonnecurrent_step(lue/écrite paractions/diagnostics.tssur chaque étape mais absente de tout le schéma versionné) et assouplit les contraintesNOT NULLsurchief_complaint/patient_age_years/patient_age_group/patient_sex, remplies progressivement par le wizard (createDiagnosticDraftinséraitchief_complaint: nulldans une colonneNOT NULL).Navigation cassée
?resumeId=..., un paramètre jamais lu nulle part : perte du brouillon en cours + création d'un diagnostic dupliqué en base. Ajout deupdateDiagnosticPatientProfile+ lecture deresumeIddansnew/page.tsxpour éditer le brouillon existant au lieu d'en recréer un./editpour un diagnostic en cours (statutdraft) : la liste affichait "Voir" vers une fiche lecture seule quasi vide. Ajout d'un bouton "Continuer" routant vers/edit.?step=avait un fallback codé en dur à"2", ce qui masquait en permanence la logique de reprise basée surcurrent_step— même sans paramètre explicite, l'utilisateur retombait toujours à l'étape 2 au lieu de l'étape réellement atteinte.current_stepdansvalidateDiagnostic.Qualité
new/page.tsx(state/handlers pour les étapes 2-5, jamais atteignables cardiagnosticId/patientProfilen'étaient jamais renseignés).IcdAnalysisStepaccepte désormais des valeurs par défaut (defaultCandidates/defaultAdditionalTests/defaultClinicalNotes) : reprendre à l'étape 3 ne relance plus une analyse IA à zéro.buildPatientProfileFromRecord/buildSymptomsFromRecordextraits danslib/diagnostics/build-profile-from-record.ts, partagés entrenew/page.tsxetedit/page.tsx.Test plan
npx tsc --noEmit— 0 erreurnpm run test:run— 184/184 testsnpm run build— build de production completSummary by CodeRabbit
Nouvelles fonctionnalités
Améliorations