iClinic Developers

Phân trang

Danh sách nào cũng trả từng trang một. Mỗi API dùng một trong hai kiểu:

KiểuAPI dùng và khi nào dừng
Con trỏlimit, cursor /patients /appointments /receipts /therapy-plans
Dừng khi nextCursor là null.
Số trangpageSize, page /encounters
Dừng khi đã nhận đủ total, hoặc gặp một trang rỗng.

Con trỏ: bệnh nhân, lịch hẹn, hóa đơn, liệu trình

  1. Gọi lần đầu, chỉ cần limit (1–500, mặc định 200).
  2. Phản hồi có nextCursor. Nếu khác null là còn trang sau: gọi lại và thêm cursor= cùng giá trị đó.
  3. Lặp lại tới khi nextCursor là null.
  • Giữ nguyên limit và updatedSince (nếu có) ở mọi trang.
  • Lấy nextCursor nguyên văn, đừng tự dựng hay đọc nó. cursor sai trả 400 INVALID_CURSOR.
  • Kết quả xếp theo (updatedAt, id) tăng dần. Bản ghi được thêm hay sửa giữa hai lần gọi không làm lệch trang sau: bản ghi chưa đổi không bị bỏ sót hay lặp lại, còn bản ghi vừa đổi sẽ hiện lại một lần ở vị trí mới.

Số trang: /encounters

Dùng page (từ 0) và pageSize (1–500, mặc định 200). Tăng page cho tới khi đã nhận đủ total lượt khám, hoặc gặp một trang rỗng.

Kết quả xếp mới nhất trước. Nếu có lượt khám mới được tạo trong lúc bạn đang duyệt, các trang có thể dịch chuyển — vì vậy hãy khử trùng theo encounterUuid khi gộp kết quả.

Không cần gọi dày. Mỗi 5–15 phút một lần với from là vài ngày gần nhất là đủ cho việc đối chiếu lịch hẹn.
Con trỏ: 5 bệnh nhân, mỗi trang 2
  1. Lần đầu, chưa có cursor

    GửiGET /patients?limit=2

    Nhận2 bản ghi, nextCursor djF8cGF0…

  2. Dán nextCursor vừa nhận vào cursor

    GửiGET /patients?limit=2&cursor=djF8cGF0…

    Nhận2 bản ghi, nextCursor djF8Z2h5…

  3. Lặp lại cho tới khi nextCursor là null

    GửiGET /patients?limit=2&cursor=djF8Z2h5…

    Nhận1 bản ghi, nextCursor null hết, dừng

Vòng lặp, ngôn ngữ nào cũng vậy
# lần đầu chưa có cursor: bỏ tham số này
cursor = null
lặp:
    page = GET /patients?limit=500&cursor=CURSOR
    xử lý từng bản ghi trong page.patients
    cursor = page.nextCursor
    nếu cursor là null: dừng
Số trang: 340 lượt khám, mỗi trang 200
  1. Trang đầu: page=0

    GửiGET /encounters?…&pageSize=200&page=0

    Nhậntotal 340, 200 lượt khám

  2. Tăng page lên 1

    GửiGET /encounters?…&pageSize=200&page=1

    Nhậntotal 340, 140 lượt khám. 200 + 140 = 340 đủ, dừng

… là from và to, giữ nguyên ở mọi trang.