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
ClinicianProfileathealth.afia.app.clinician.profile.ClinicianProfile. ContractClinicianProfile.
Persistence
ClinicianProfileEntity table clinician_profile. Columns match the contract fields only.
HTTP DTOs
ClinicianProfileRequestDtoinbound. Fieldspecialty.ClinicianProfileResponseDtooutbound. FieldsaccountId,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
ClinicianProfileControlleron reserved/api/v1/afia/clinician/profile.GETand 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.