Aller au contenu principal

WP-03 API spec

The module is in afia-api. Contract type: ClinicianProfile in contracts.md. Wire: exchange/clinician-profile.md.

Usage​

A clinician reads and updates their own profile on /api/v1/afia/clinician/profile. accountId comes from the session once WP-01 exists.

Domain​

  • ClinicianProfile at health.afia.app.clinician.profile.ClinicianProfile. Contract ClinicianProfile.

Persistence​

ClinicianProfileEntity table clinician_profile. Columns match the contract fields only.

HTTP DTOs​

  • ClinicianProfileRequestDto inbound. Field specialty.
  • ClinicianProfileResponseDto outbound. Fields accountId, specialty.

Mappers​

ClinicianProfileMapper.toResponse(ClinicianProfile) -> ClinicianProfileResponseDto
ClinicianProfileMapper.toDomain(ClinicianProfileEntity) -> ClinicianProfile
ClinicianProfileMapper.apply(ClinicianProfile, ClinicianProfileRequestDto) -> ClinicianProfile

Services​

ClinicianProfileService
get(accountId) -> ClinicianProfile
update(accountId, specialty) -> ClinicianProfile

Controllers​

  • ClinicianProfileController on reserved /api/v1/afia/clinician/profile. GET and write for the current clinician.

Does not do​

health.afia.app.clinician.agenda or health.afia.app.clinician.encounter. Patient or diagnostics packages. Flutter types. Agenda UI.