Tài liệu API – Hệ thống 115
Cập nhật: 28/05/2026 | Tất cả request POST | JWT = tham số trong payload | Form = tham số form-data ngoài JWT
POST
/api/getInfoUser
Lấy thông tin người dùng đang đăng nhập dựa trên
access_token. Trả về thông tin cá nhân, đội cấp cứu và danh sách quyền.Tham số request — Form-data
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| access_token | string | Có | Token đăng nhập nhận được sau khi login thành công |
Response thành công
{
"id": 42,
"full_name": "Nguyễn Văn An",
"address": "123 Lê Lợi, Q.1",
"mobile": "0901234567",
"email": "an@example.com",
"id_team_emergency": 3,
"province_id": 79,
"ward_id": 10081,
"street_id": 5012,
"lat": 10.762622,
"lng": 106.660172,
"dob": 1990,
"sex": 1,
"item_names": ["role_dispatcher", "role_view"]
}
Mô tả trường response
| Trường | Kiểu | Mô tả |
|---|---|---|
| id | int | ID tài khoản |
| full_name | string | Họ và tên |
| address | string | Địa chỉ |
| mobile | string | Số điện thoại |
| string | ||
| id_team_emergency | int | ID đội cấp cứu |
| province_id | int | ID tỉnh/thành phố |
| ward_id | int | ID phường/xã |
| street_id | int | ID đường/phố |
| lat | float | Vĩ độ |
| lng | float | Kinh độ |
| dob | int | Năm sinh (ví dụ: 1990) |
| sex | int | Giới tính (ví dụ: 1 = Nam, 2 = Nữ) |
| item_names | array | Danh sách quyền của tài khoản |
Response lỗi
| code / HTTP | Mô tả |
|---|---|
| 400 (code 10) | Thiếu tham số access_token |
| 401 (code 401) | Người dùng chưa đăng nhập hoặc token không hợp lệ |
| 404 (code 404) | Không tìm thấy thông tin người dùng |
POST
/api/updateUser
Cập nhật thông tin tài khoản người dùng (bảng
user). Chỉ cập nhật các trường được truyền vào, bỏ qua trường không có trong payload.Tham số request — Form-data
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| payload | string | Có | JWT chứa các tham số bên dưới |
Tham số bên trong JWT payload — JWT
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| id | int | Có | ID của tài khoản cần cập nhật |
| full_name | string | Không | Họ và tên |
| username | string | Không | Tên đăng nhập mới |
| address | string | Không | Địa chỉ |
| mobile | string | Không | Số điện thoại (phải là số duy nhất trong hệ thống) |
| BHYT | string | Không | Số thẻ bảo hiểm y tế |
| province_id | int | Không | ID tỉnh/thành phố |
| ward_id | int | Không | ID phường/xã |
| street_id | int | Không | ID đường/phố |
| lat | float | Không | Vĩ độ |
| lng | float | Không | Kinh độ |
| dob | int | Không | Năm sinh (ví dụ: 1990) |
| sex | int | Không | Giới tính (1 = Nam, 2 = Nữ) |
Ví dụ JSON payload (trước khi ký JWT)
{
"id": 42,
"full_name": "Nguyễn Văn An",
"mobile": "0901234567",
"dob": 1990,
"sex": 1,
"province_id": 79,
"ward_id": 10081,
"lat": 10.762622,
"lng": 106.660172
}
Response thành công
{
"code": 0,
"message": "Cập nhật thành công",
"_t": 0.002
}
Response lỗi
| code | Mô tả |
|---|---|
| 10 | Thiếu payload hoặc thiếu id trong payload |
| 2 | Không có trường nào để cập nhật |
| 3 | Số điện thoại đã tồn tại trong hệ thống |
| 1 | Không tìm thấy dữ liệu hoặc lỗi DB |
POST
/api/medical/save-rating
Lưu đánh giá chất lượng dịch vụ của người dùng cho một phiếu tiếp nhận.
Tham số request — Form-data
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| payload | string | Có | JWT chứa các tham số bên dưới |
Tham số bên trong JWT payload — JWT
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| rating | int | Có | Đánh giá tổng thể (1–5 sao) |
| comment | string | Không | Nhận xét tự do |
| medical_ticket_id | int | Không | ID phiếu tiếp nhận |
| user_id | int | Không | ID người đánh giá |
| user_name | string | Không | Tên người đánh giá |
| rating_toc_do_tiep_nhan | int | Không |
Tốc độ tiếp nhận ca cấp cứu
1 = Hài lòng | 2 = Bình thường | 3 = Không hài lòng
|
| rating_toc_do_di_chuyen | int | Không |
Tốc độ di chuyển đến hiện trường
1 = Hài lòng | 2 = Bình thường | 3 = Không hài lòng
|
| rating_thai_do_ung_xu | int | Không |
Thái độ ứng xử của nhân viên y tế & tài xế
1 = Hài lòng | 2 = Bình thường | 3 = Không hài lòng
|
| rating_nang_luc_chuyen_mon | int | Không |
Năng lực chuyên môn của nhân viên y tế
1 = Hài lòng | 2 = Bình thường | 3 = Không hài lòng
|
Ví dụ JSON payload (trước khi ký JWT)
{
"rating": 4,
"comment": "Dịch vụ tốt, nhân viên nhiệt tình",
"medical_ticket_id": 1001,
"user_id": 55,
"user_name": "Trần Thị Bình",
"rating_toc_do_tiep_nhan": 1,
"rating_toc_do_di_chuyen": 2,
"rating_thai_do_ung_xu": 1,
"rating_nang_luc_chuyen_mon": 1
}
Response thành công
{
"code": 0,
"message": "Lưu đánh giá thành công",
"data": { "id": 78 },
"_t": 0.003
}
Response lỗi
| code | Mô tả |
|---|---|
| 10 | Thiếu payload hoặc rating không hợp lệ (phải từ 1–5) |
| 11 | Payload JWT không hợp lệ |
| 1 | Lỗi DB khi lưu |
POST
/api/medical/get-rating-history
Lấy lịch sử đánh giá của một người dùng cụ thể.
Tham số request — Form-data
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| payload | string | Có | JWT chứa các tham số bên dưới |
Tham số bên trong JWT payload — JWT
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| user_id | int | Có | ID người dùng cần lấy lịch sử |
Ví dụ JSON payload (trước khi ký JWT)
{
"user_id": 55
}
Response thành công
{
"code": 0,
"message": "OK",
"data": [
{
"id": 78,
"medical_ticket_id": 1001,
"user_id": 55,
"user_name": "Trần Thị Bình",
"rating": 4,
"comment": "Dịch vụ tốt",
"rating_toc_do_tiep_nhan": 1,
"rating_toc_do_di_chuyen": 2,
"rating_thai_do_ung_xu": 1,
"rating_nang_luc_chuyen_mon": 1,
"created_at": 1713200000,
"updated_at": 1713200000
}
],
"total": 1,
"_t": 0.002
}
Response lỗi
| code | Mô tả |
|---|---|
| 10 | Thiếu payload hoặc thiếu user_id |
| 11 | Payload JWT không hợp lệ |
| 1 | Không có lịch sử đánh giá |
POST
/api/medical/get-all-ratings
Lấy tất cả lượt đánh giá (có phân trang), dùng cho admin/báo cáo.
Tham số request — Form-data
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| payload | string | Có | JWT chứa các tham số bên dưới |
Tham số bên trong JWT payload — JWT
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| limit | int | Không | Số bản ghi mỗi trang (mặc định: 20) |
| offset | int | Không | Bỏ qua bao nhiêu bản ghi (mặc định: 0) |
Ví dụ JSON payload (trước khi ký JWT)
{
"limit": 20,
"offset": 0
}
Response thành công
{
"code": 0,
"message": "OK",
"data": [
{
"id": 78,
"medical_ticket_id": 1001,
"user_id": 55,
"user_name": "Trần Thị Bình",
"rating": 4,
"comment": "Dịch vụ tốt",
"rating_toc_do_tiep_nhan": 1,
"rating_toc_do_di_chuyen": 2,
"rating_thai_do_ung_xu": 1,
"rating_nang_luc_chuyen_mon": 1,
"created_at": 1713200000,
"updated_at": 1713200000
}
],
"total": 150,
"_t": 0.005
}
Response lỗi
| code | Mô tả |
|---|---|
| 10 | Thiếu payload |
| 11 | Payload JWT không hợp lệ |
POST
/api/medical/set-user-block
Khóa hoặc mở khóa tài khoản người dùng. JWT dùng để xác thực;
username và block truyền trực tiếp qua form-data.
⚠️ API này đọc username và block từ form-data (ngoài JWT). JWT chỉ dùng để xác thực người gọi.
Tham số request — Form-data
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| payload | string | Có | JWT xác thực (không cần trường dữ liệu bên trong) |
| username | string | Có | Tên đăng nhập của tài khoản cần thao tác |
| block | int | Có | 1 = Khóa tài khoản | 0 = Mở khóa tài khoản |
Ví dụ request (form-data)
payload = <JWT token>
username = admin123
block = 1
Response thành công – Khóa
{
"code": 0,
"message": "Khóa tài khoản thành công",
"_t": 0.002
}
Response thành công – Mở khóa
{
"code": 0,
"message": "Mở khóa tài khoản thành công",
"_t": 0.002
}
Response lỗi
| code | Mô tả |
|---|---|
| 10 | Thiếu payload |
| 11 | Payload JWT không hợp lệ |
| 12 | Thiếu username hoặc block trong form-data |
| 1 | Không tìm thấy tài khoản hoặc lỗi DB |