Admin — Review cases
POST /admin/reject-reviewcase
Section titled “POST /admin/reject-reviewcase”Sets the case status to rejected and stores reject_reason. Only rows currently draft or review are updated. JWT audience snr_adm.
Request body
Section titled “Request body”| Field | Type | Required | Notes |
|---|---|---|---|
case_id | string | yes | review_cases.case_id |
reject_reason | string | yes | Non-empty after trim |
Response — success (200)
Section titled “Response — success (200)”{ "status": 1000, "message": "Review case rejected", "data": { "case_id": "uuid" }}404 if no row exists for case_id. 409 if the case is already rejected.
Requires D1 migration 0007_review_cases_reject.sql.
POST /admin/assign-coordinator
Section titled “POST /admin/assign-coordinator”Assigns a coordinator (doctor_id) to a review case: updates review_cases.case_coordinator_id and inserts a row in second_opinions with requested_documents. Both steps run in one D1 batch. JWT audience snr_adm.
Request body
Section titled “Request body”| Field | Type | Required | Notes |
|---|---|---|---|
case_id | string | yes | review_cases.case_id |
doctor_id | string | yes | Coordinator provider / employee id |
requested_documents | string[] | no | Document labels to request; omit or [] for none; each item non-empty after trim |
Response — success (200)
Section titled “Response — success (200)”{ "status": 1000, "message": "Coordinator assigned", "data": { "case_id": "uuid", "doctor_id": "EMP1", "sop_id": "uuid" }}404 if case_id does not exist.
Requires D1 migrations 0008, 0009, and 0010_second_opinions_is_coordinator.sql.