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ênKiểuBắt buộcMô tả
access_tokenstringToken đă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ườngKiểuMô tả
idintID tài khoản
full_namestringHọ và tên
addressstringĐịa chỉ
mobilestringSố điện thoại
emailstringEmail
id_team_emergencyintID đội cấp cứu
province_idintID tỉnh/thành phố
ward_idintID phường/xã
street_idintID đường/phố
latfloatVĩ độ
lngfloatKinh độ
dobintNăm sinh (ví dụ: 1990)
sexintGiới tính (ví dụ: 1 = Nam, 2 = Nữ)
item_namesarrayDanh sách quyền của tài khoản
Response lỗi
code / HTTPMô 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ênKiểuBắt buộcMô tả
payloadstringJWT chứa các tham số bên dưới
Tham số bên trong JWT payload — JWT
TênKiểuBắt buộcMô tả
idintID của tài khoản cần cập nhật
full_namestringKhôngHọ và tên
usernamestringKhôngTên đăng nhập mới
addressstringKhôngĐịa chỉ
mobilestringKhôngSố điện thoại (phải là số duy nhất trong hệ thống)
BHYTstringKhôngSố thẻ bảo hiểm y tế
province_idintKhôngID tỉnh/thành phố
ward_idintKhôngID phường/xã
street_idintKhôngID đường/phố
latfloatKhôngVĩ độ
lngfloatKhôngKinh độ
dobintKhôngNăm sinh (ví dụ: 1990)
sexintKhôngGiớ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
codeMô tả
10Thiếu payload hoặc thiếu id trong payload
2Không có trường nào để cập nhật
3Số điện thoại đã tồn tại trong hệ thống
1Khô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ênKiểuBắt buộcMô tả
payloadstringJWT chứa các tham số bên dưới
Tham số bên trong JWT payload — JWT
TênKiểuBắt buộcMô tả
ratingintĐánh giá tổng thể (1–5 sao)
commentstringKhôngNhận xét tự do
medical_ticket_idintKhôngID phiếu tiếp nhận
user_idintKhôngID người đánh giá
user_namestringKhôngTê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
codeMô tả
10Thiếu payload hoặc rating không hợp lệ (phải từ 1–5)
11Payload JWT không hợp lệ
1Lỗ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ênKiểuBắt buộcMô tả
payloadstringJWT chứa các tham số bên dưới
Tham số bên trong JWT payload — JWT
TênKiểuBắt buộcMô tả
user_idintID 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
codeMô tả
10Thiếu payload hoặc thiếu user_id
11Payload JWT không hợp lệ
1Khô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ênKiểuBắt buộcMô tả
payloadstringJWT chứa các tham số bên dưới
Tham số bên trong JWT payload — JWT
TênKiểuBắt buộcMô tả
limitintKhôngSố bản ghi mỗi trang (mặc định: 20)
offsetintKhôngBỏ 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
codeMô tả
10Thiếu payload
11Payload 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; usernameblock truyền trực tiếp qua form-data.
⚠️ API này đọc usernameblock từ form-data (ngoài JWT). JWT chỉ dùng để xác thực người gọi.
Tham số request — Form-data
TênKiểuBắt buộcMô tả
payloadstringJWT xác thực (không cần trường dữ liệu bên trong)
usernamestringTên đăng nhập của tài khoản cần thao tác
blockint1 = 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
codeMô tả
10Thiếu payload
11Payload JWT không hợp lệ
12Thiếu username hoặc block trong form-data
1Không tìm thấy tài khoản hoặc lỗi DB