Skip to content

Admin — Disease categories

Same auth as review types (snr_adm). Payloads use short keys.

Creates a disease category. cond_en / cond_ar must be paired (same length).

FieldTypeRequiredNotes
spec_enstringyesSpecialty (English), trimmed
spec_arstringyesSpecialty (Arabic), trimmed
cond_enstring[]yesNon-empty; each item non-empty after trim
cond_arstring[]yesSame length as cond_en
{
"spec_en": "Cardiology (Heart Conditions)",
"spec_ar": "أمراض القلب",
"cond_en": ["Heart failure", "coronary artery disease"],
"cond_ar": ["قصور القلب", "مرض الشريان التاجي"]
}
{
"status": 1000,
"message": "Disease category saved",
"data": {
"dc_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
{
"status": 1002,
"message": "Disease category already exists for this specialty (English)"
}

(Match is case-insensitive on English specialty for active rows.)


Sets disease_categories.doctor_ids (JSON array of provider id strings) for an active category. Replaces the stored list. Requires D1 migration 0006_disease_categories_doctor_ids.sql. When doctor_ids is non-empty, each id is validated against persistence by trying mapped departments from POST /admin/list-mapped-department until a matching doctor profile is found.

FieldTypeRequiredNotes
dc_idstringyesActive disease_categories.dc_id
doctor_idsstring[]yesEach element non-empty after trim; [] clears all mapped ids
{
"dc_id": "550e8400-e29b-41d4-a716-446655440000",
"doctor_ids": ["EMP1", "EMP2"]
}
{
"status": 1000,
"message": "Doctors mapped to disease category",
"data": { "dc_id": "550e8400-e29b-41d4-a716-446655440000" }
}

Not found → 404 (message: "Disease category not found").


Paginated list of active disease categories with English specialty label and doctor count from disease_categories.doctor_ids (JSON array). Same optional q search as POST /admin/list-disease-categories (English specialty, Arabic specialty). Requires migration 0006_disease_categories_doctor_ids.sql.

FieldTypeRequiredNotes
pagenumbernodefault 1
sizenumbernodefault 15, max 100
qstringnosearch substring

Each element of data:

FieldTypeNotes
dc_idstringCategory id (for edit / POST /admin/map-doctors)
spec_enstringEnglish specialty label
doctor_countnumberCount of string ids in stored doctor_ids JSON
{
"status": 1000,
"message": "ok",
"data": [
{
"dc_id": "550e8400-e29b-41d4-a716-446655440000",
"spec_en": "Cardiology (Heart Conditions)",
"doctor_count": 6
}
],
"pagination": {
"total": 24,
"page": 1,
"size": 15
}
}

Single active disease category: English specialty and the mapped doctor id list (same strings as POST /admin/map-doctors). Requires migration 0006_disease_categories_doctor_ids.sql.

FieldTypeRequired
dc_idstringyes
FieldTypeNotes
dc_idstringEcho of category id
spec_enstringEnglish specialty label
doctorsstring[]Provider / employee ids from doctor_ids JSON (empty if none)
{
"status": 1000,
"message": "ok",
"data": {
"dc_id": "550e8400-e29b-41d4-a716-446655440000",
"spec_en": "Cardiology (Heart Conditions)",
"doctors": ["EMP1", "EMP2"]
}
}

Not found → 404 (message: "Disease category not found").


Paginated list with optional search on English specialty and Arabic specialty.

FieldTypeRequiredNotes
pagenumbernodefault 1
sizenumbernodefault 15, max 100
qstringnosearch substring
{
"page": 1,
"size": 10,
"q": "heart"
}
{
"status": 1000,
"message": "ok",
"data": [
{
"dc_id": "uuid",
"spec_en": "Cardiology (Heart Conditions)",
"spec_ar": "أمراض القلب",
"cond_en": ["Heart failure", "coronary artery disease"],
"cond_ar": ["قصور القلب", "مرض الشريان التاجي"],
"created_date": "2026-05-08T12:00:00.000Z"
}
],
"pagination": {
"total": 1,
"page": 1,
"size": 10
}
}

Note: list uses pagination.size (not pageSize).


Single active disease category by dc_id. Response uses the same short keys as list, plus audit fields.

FieldTypeRequired
dc_idstringyes
{
"dc_id": "550e8400-e29b-41d4-a716-446655440000"
}
{
"status": 1000,
"message": "ok",
"data": {
"dc_id": "uuid",
"spec_en": "Cardiology (Heart Conditions)",
"spec_ar": "أمراض القلب",
"cond_en": ["Heart failure", "coronary artery disease"],
"cond_ar": ["قصور القلب", "مرض الشريان التاجي"],
"created_by": "user-id",
"created_date": "2026-05-08T12:00:00.000Z",
"updated_date": null
}
}
{
"status": 1002,
"message": "Disease category not found"
}