Skip to main content

WP-05 Booking and agenda

Load AGENTS.md, contracts.md, and this file. Tech specs: api/booking.md, app/booking.md, exchange/booking.md. Implement only when the user asks and WP-01, WP-02, and WP-03 have landed.

Group G2. May run beside WP-07.

Owns​

  • afia-api/src/main/java/health/afia/app/patient/appointment/
  • afia-api/src/test/java/health/afia/app/patient/appointment/
  • afia-api/src/main/java/health/afia/app/clinician/agenda/
  • afia-api/src/test/java/health/afia/app/clinician/agenda/
  • afia-app/lib/presentation/patient/booking/
  • afia-app/lib/presentation/clinician/agenda/
  • afia-app/lib/data/booking/
  • afia-app/lib/domain/booking/

Features: F-02 book an appointment, F-06 see own patients, F-08 clinician agenda.

Reserved paths: /api/v1/afia/appointments, /api/v1/afia/clinician/agenda, /api/v1/afia/clinician/patients.

Must not write​

  • EndpointUri.java, api_config.dart, docs/api-map.md
  • Profile packages, encounter notes, or diagnostics
  • A second appointment table in clinician

Depends on​

WP-01, WP-02, WP-03. One Appointment row joins PatientProfile and ClinicianProfile.

Done when​

  1. A patient can list and request appointments on /api/v1/afia/appointments.
  2. A clinician can read the day agenda on /api/v1/afia/clinician/agenda.
  3. /api/v1/afia/clinician/patients lists patients who have an appointment with that clinician. It does not copy patient profile storage.
  4. Appointment matches contracts.md. One table. Two HTTP faces.
  5. Tests cover patient write and clinician read of the same row.
  6. cd afia-api && mvn test passes.
  7. cd afia-app && flutter test passes.

Do not invent screens​

Landing copy is "prenez rendez-vous", "gérez vos patients", and "votre agenda". Those are capabilities. Do not name calendar widgets from Stitch.