Appearance
PMS API Endpoints
The Patient Management System (PMS) API at /lab/pms covers day-to-day lab operations: patients, invoices, samples, results, and home sampling. All routes require a valid JWT with tenant context.
Dashboard
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/dashboard | — | Summary stats (today's invoices, pending samples) |
| GET | /lab/pms/dashboard/charts | — | Chart data for dashboard widgets |
Patients
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/patients | patients.view | List patients (paginated) |
| GET | /lab/pms/patients/by-phone | patients.view | Lookup by phone |
| GET | /lab/pms/patients/by-health-card | patients.view | Lookup by health card |
| GET | /lab/pms/patients/{id} | patients.view | Patient detail |
| POST | /lab/pms/patients | patients.create | Create patient |
| PUT | /lab/pms/patients/{id} | patients.edit | Update patient |
| DELETE | /lab/pms/patients/{id} | patients.delete | Soft-delete patient |
Collection centers
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/collection-centers | — | List branches |
| POST | /lab/pms/collection-centers | — | Create branch |
| PUT | /lab/pms/collection-centers/{id} | — | Update branch |
Test catalog
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/test-departments | — | List departments |
| GET | /lab/pms/tests | tests.view | Search tests |
| GET | /lab/pms/tests/{id} | tests.view | Test detail |
| GET | /lab/pms/tests/{id}/pricing | — | Price for referral/center |
| POST | /lab/pms/tests | tests.create | Create test |
| PUT | /lab/pms/tests/{id} | tests.edit | Update test |
Invoices
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/invoices | invoices.view | List invoices |
| GET | /lab/pms/invoices/{id} | invoices.view | Invoice detail |
| POST | /lab/pms/invoices | invoices.create | Create invoice |
| PUT | /lab/pms/invoices/{id} | invoices.edit | Update invoice |
| DELETE | /lab/pms/invoices/{id} | invoices.delete | Soft-delete invoice |
| POST | /lab/pms/invoices/{id}/payments | invoices.edit | Record payment |
Results and reports
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/invoices/{id}/result-entry | results_entry.view | Result entry form |
| PUT | /lab/pms/invoices/{id}/result-entry | results_entry.edit | Save results |
| POST | /lab/pms/invoices/{id}/result-entry/approve | result_verification.edit | Approve report |
| GET | /lab/pms/invoices/{id}/report | invoices.view | Report data |
| POST | /lab/pms/invoices/{id}/send-report | report_delivery.create | Email/SMS report |
| POST | /lab/pms/invoices/{id}/send-notification | quick.send_sms | Send notification |
| POST | /lab/pms/invoices/{id}/report-printed | — | Mark as printed |
Samples
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/pms/invoices/{id}/samples | samples.view | List samples |
| GET | /lab/pms/invoices/{id}/samples/stickers.pdf | samples.view | Barcode stickers PDF |
| GET | /lab/pms/invoices/{id}/lab-order | — | Lab order sheet |
| GET | /lab/pms/invoices/{id}/history | invoices.view | Audit history |
Referrals
| Method | Endpoint | Description |
|---|---|---|
| GET | /lab/pms/referrals | List referral doctors |
Home sampling
| Method | Endpoint | Description |
|---|---|---|
| GET | /lab/pms/home-sampling | List requests |
| GET | /lab/pms/home-sampling/{id} | Request detail |
| GET | /lab/pms/home-sampling/{id}/invoice-draft | Pre-filled invoice |
| PUT | /lab/pms/home-sampling/{id}/status | Update status |
Common query parameters
GET /lab/pms/invoices?page=1&pageSize=20&search=ahmad&sortBy=createdAt&sortDirection=desc