Body of PUT /v1/physicians/{id}/languages — the languages this physician
consults in. A whole-list replace, like the specialties.
Base codes only (fr, en); a full locale such as fr_CH is refused
with 400 invalid_request rather than collapsed, because the region is a
fact about a patient and a caller sending one has the two lists confused.
Order is kept as sent (the physician's own preference), duplicates are
dropped, and at most MAX_PHYSICIAN_LANGUAGES entries fit — the
whole catalogue.
This is a RANKED PREFERENCE, not a constraint: language never excludes a
physician from a patient. Among the physicians a consult may go to, the
platform offers it first to one who speaks the patient's language, then
to one who speaks English, then to anyone — so an EMPTY list means
"nothing recorded" and ranks last (it is never read as English), and
turning the feature on can never leave a rota empty.
Body of
PUT /v1/physicians/{id}/languages— the languages this physician consults in. A whole-list replace, like the specialties.Base codes only (
fr,en); a full locale such asfr_CHis refused with400 invalid_requestrather than collapsed, because the region is a fact about a patient and a caller sending one has the two lists confused. Order is kept as sent (the physician's own preference), duplicates are dropped, and at most MAX_PHYSICIAN_LANGUAGES entries fit — the whole catalogue.This is a RANKED PREFERENCE, not a constraint: language never excludes a physician from a patient. Among the physicians a consult may go to, the platform offers it first to one who speaks the patient's language, then to one who speaks English, then to anyone — so an EMPTY list means "nothing recorded" and ranks last (it is never read as English), and turning the feature on can never leave a rota empty.