Skip to content

LIS Module (نظام معلومات المختبر)

The LIS (Laboratory Information System) module provides end-to-end laboratory management including test ordering, sample tracking, result entry with multi-level approval, quality control, machine interfacing, billing, compliance, and a patient self-service portal.

Features

FeatureDescriptionLink
Lab SectionsOrganize the lab into departments (Hematology, Biochemistry, etc.)sections
Specimen TypesDefine specimen types with collection instructionsspecimen-types
InvestigationsInvestigation catalog, categories, normal ranges, and panelsinvestigations
PatientsLab patient registration and demographicspatients
DoctorsReferring and internal doctorsdoctors
Doctor CommissionsCommission rules, calculation, settlement & voiddoctor-commissions
Lab RequestsTest ordering with multi-investigation supportrequests
VisitsPatient visit registration and trackingvisits
SamplesSample collection, receiving, and rejectionsamples
ResultsResult entry, validation, approval, and releaseresults
Quality ControlQC lots, Westgard rules, Levey-Jennings chartsqc
MachinesMachine interfacing and result matchingmachines
PricingPrice lists and insurance contractspricing
InvoicesLab invoicing with post and cancelinvoices
ComplianceAudit logs, custody tracking, retention policies, checklistscompliance
Reagents & SuppliesReagent inventory, FIFO consumption, stock alertsreagents
ReportsWorkload, TAT, volume, revenue, QC, abnormalsreports
Patient PortalPatient self-service result viewingpatient-portal
Insurance BillingInsurance billing pipeline with split invoicinginsurance-billing
PaymentsPatient payment collection with JE auto-postingpayments
External LabsExternal laboratory management with pricingexternal-labs
ReferralsBidirectional referral tracking with resultsreferrals

Entity Relationship Diagram

API Base URL

All LIS endpoints are prefixed with:

/api/lis/...

Patient portal endpoints use a separate prefix:

/api/lis/portal/...

All API Endpoints

Lab Configuration

MethodEndpointDescriptionPermission
GET/api/lis/sectionsList lab sectionslis.sections.view
POST/api/lis/sectionsCreate a sectionlis.sections.create
GET/api/lis/sections/{id}Get section detailslis.sections.view
PUT/api/lis/sections/{id}Update a sectionlis.sections.update
DELETE/api/lis/sections/{id}Delete a sectionlis.sections.delete
GET/api/lis/specimen-typesList specimen typeslis.specimen-types.view
POST/api/lis/specimen-typesCreate specimen typelis.specimen-types.create
GET/api/lis/specimen-types/{id}Get specimen typelis.specimen-types.view
PUT/api/lis/specimen-types/{id}Update specimen typelis.specimen-types.update
DELETE/api/lis/specimen-types/{id}Delete specimen typelis.specimen-types.delete
GET/api/lis/investigation-categoriesList categorieslis.investigation-categories.view
POST/api/lis/investigation-categoriesCreate categorylis.investigation-categories.create
GET/api/lis/investigation-categories/{id}Get categorylis.investigation-categories.view
PUT/api/lis/investigation-categories/{id}Update categorylis.investigation-categories.update
DELETE/api/lis/investigation-categories/{id}Delete categorylis.investigation-categories.delete
GET/api/lis/investigationsList investigationslis.investigations.view
POST/api/lis/investigationsCreate investigationlis.investigations.create
GET/api/lis/investigations/{id}Get investigationlis.investigations.view
PUT/api/lis/investigations/{id}Update investigationlis.investigations.update
DELETE/api/lis/investigations/{id}Delete investigationlis.investigations.delete
PUT/api/lis/investigations/{id}/normal-rangesSync normal rangeslis.investigations.update
PUT/api/lis/investigations/{id}/panel-membersSync panel memberslis.investigations.update

Patients & Doctors

MethodEndpointDescriptionPermission
GET/api/lis/patientsList patientslis.patients.view
POST/api/lis/patientsCreate patientlis.patients.create
GET/api/lis/patients/{id}Get patientlis.patients.view
PUT/api/lis/patients/{id}Update patientlis.patients.update
DELETE/api/lis/patients/{id}Delete patientlis.patients.delete
GET/api/lis/doctorsList doctorslis.doctors.view
POST/api/lis/doctorsCreate doctorlis.doctors.create
GET/api/lis/doctors/{id}Get doctorlis.doctors.view
PUT/api/lis/doctors/{id}Update doctorlis.doctors.update
DELETE/api/lis/doctors/{id}Delete doctorlis.doctors.delete

Lab Requests & Visits

MethodEndpointDescriptionPermission
GET/api/lis/requestsList requestslis.requests.view
POST/api/lis/requestsCreate requestlis.requests.create
GET/api/lis/requests/{id}Get requestlis.requests.view
PUT/api/lis/requests/{id}Update requestlis.requests.update
POST/api/lis/requests/{id}/cancelCancel requestlis.requests.update
POST/api/lis/requests/{id}/investigationsAdd investigationlis.requests.update
DELETE/api/lis/requests/{id}/investigations/{inv_id}Remove investigationlis.requests.update
GET/api/lis/visitsList visitslis.visits.view
POST/api/lis/visitsCreate visitlis.visits.create
GET/api/lis/visits/{id}Get visitlis.visits.view
PUT/api/lis/visits/{id}Update visitlis.visits.update
DELETE/api/lis/visits/{id}Delete visitlis.visits.delete
POST/api/lis/visits/{id}/completeComplete visitlis.visits.update

Samples & Results

MethodEndpointDescriptionPermission
GET/api/lis/samplesList sampleslis.samples.view
POST/api/lis/samplesCreate samplelis.samples.create
GET/api/lis/samples/{id}Get samplelis.samples.view
POST/api/lis/samples/{id}/collectCollect samplelis.samples.update
POST/api/lis/samples/{id}/receiveReceive samplelis.samples.update
POST/api/lis/samples/{id}/rejectReject samplelis.samples.update
GET/api/lis/resultsList resultslis.results.view
GET/api/lis/results/{id}Get resultlis.results.view
POST/api/lis/results/{id}/enterEnter resultlis.results.update
POST/api/lis/results/{id}/validateValidate resultlis.results.update
POST/api/lis/results/{id}/approveApprove resultlis.results.update
POST/api/lis/results/{id}/releaseRelease resultlis.results.update

Quality Control

MethodEndpointDescriptionPermission
GET/api/lis/qc-lotsList QC lotslis.qc-lots.view
POST/api/lis/qc-lotsCreate QC lotlis.qc-lots.create
GET/api/lis/qc-lots/{id}Get QC lotlis.qc-lots.view
PUT/api/lis/qc-lots/{id}Update QC lotlis.qc-lots.update
DELETE/api/lis/qc-lots/{id}Delete QC lotlis.qc-lots.delete
GET/api/lis/qc-lots/{id}/resultsList QC resultslis.qc-lots.view
POST/api/lis/qc-lots/{id}/resultsRecord QC resultlis.qc-lots.create
DELETE/api/lis/qc-lots/{id}/results/{rid}Delete QC resultlis.qc-lots.delete
GET/api/lis/qc-lots/{id}/levey-jenningsLevey-Jennings datalis.qc-lots.view

Machines & Machine Results

MethodEndpointDescriptionPermission
GET/api/lis/machinesList machineslis.machines.view
POST/api/lis/machinesCreate machinelis.machines.create
GET/api/lis/machines/{id}Get machinelis.machines.view
PUT/api/lis/machines/{id}Update machinelis.machines.update
DELETE/api/lis/machines/{id}Delete machinelis.machines.delete
GET/api/lis/machine-resultsList machine resultslis.machine-results.view
GET/api/lis/machine-results/unmatchedList unmatched resultslis.machine-results.view
POST/api/lis/machine-results/{id}/matchMatch to sample/testlis.machine-results.update
POST/api/lis/machine-results/{id}/approveApprove matched resultlis.machine-results.update
POST/api/lis/machine-results/{id}/rejectReject machine resultlis.machine-results.update

Pricing & Billing

MethodEndpointDescriptionPermission
GET/api/lis/price-listsList price listslis.price-lists.view
POST/api/lis/price-listsCreate price listlis.price-lists.create
GET/api/lis/price-lists/{id}Get price listlis.price-lists.view
PUT/api/lis/price-lists/{id}Update price listlis.price-lists.update
DELETE/api/lis/price-lists/{id}Delete price listlis.price-lists.delete
GET/api/lis/insurance-contractsList contractslis.insurance-contracts.view
POST/api/lis/insurance-contractsCreate contractlis.insurance-contracts.create
GET/api/lis/insurance-contracts/{id}Get contractlis.insurance-contracts.view
PUT/api/lis/insurance-contracts/{id}Update contractlis.insurance-contracts.update
DELETE/api/lis/insurance-contracts/{id}Delete contractlis.insurance-contracts.delete
GET/api/lis/invoicesList invoiceslis.invoices.view
POST/api/lis/invoicesCreate invoicelis.invoices.create
GET/api/lis/invoices/{id}Get invoicelis.invoices.view
PUT/api/lis/invoices/{id}Update invoicelis.invoices.update
DELETE/api/lis/invoices/{id}Delete invoicelis.invoices.delete
POST/api/lis/invoices/{id}/postPost invoicelis.invoices.update
POST/api/lis/invoices/{id}/cancelCancel invoicelis.invoices.update

Compliance

MethodEndpointDescriptionPermission
GET/api/lis/compliance/audit-logsList audit logslis.compliance.view
GET/api/lis/compliance/audit-logs/{id}Get audit loglis.compliance.view
GET/api/lis/compliance/custody-logsList custody logslis.compliance.view
POST/api/lis/compliance/custody-logsCreate custody loglis.compliance.create
GET/api/lis/compliance/retention-policiesList policieslis.compliance.view
POST/api/lis/compliance/retention-policiesCreate policylis.compliance.create
GET/api/lis/compliance/retention-policies/{id}Get policylis.compliance.view
PUT/api/lis/compliance/retention-policies/{id}Update policylis.compliance.update
DELETE/api/lis/compliance/retention-policies/{id}Delete policylis.compliance.delete
GET/api/lis/compliance/checklistsList checklistslis.compliance.view
POST/api/lis/compliance/checklistsCreate checklistlis.compliance.create
GET/api/lis/compliance/checklists/{id}Get checklistlis.compliance.view
PUT/api/lis/compliance/checklists/{id}Update checklistlis.compliance.update
DELETE/api/lis/compliance/checklists/{id}Delete checklistlis.compliance.delete
POST/api/lis/compliance/checklists/{id}/completeComplete checklistlis.compliance.update

Reagents & Supplies

MethodEndpointDescriptionPermission
GET/api/lis/reagentsList reagentslis.reagents.view
POST/api/lis/reagentsCreate reagentlis.reagents.manage
GET/api/lis/reagents/alerts/low-stockLow stock alertslis.reagents.view
GET/api/lis/reagents/alerts/expiringExpiring batch alertslis.reagents.view
GET/api/lis/reagents/{id}Get reagent with batcheslis.reagents.view
PUT/api/lis/reagents/{id}Update reagentlis.reagents.manage
DELETE/api/lis/reagents/{id}Delete reagentlis.reagents.manage
POST/api/lis/reagents/{id}/batchesAdd batchlis.reagents.manage
POST/api/lis/reagents/{id}/consumeManual consume (FIFO)lis.reagents.consume
GET/api/lis/reagents/{id}/consumption-reportConsumption reportlis.reagents.view

Reports

MethodEndpointDescriptionPermission
GET/api/lis/reports/workloadWorkload summarylis.reports.view
GET/api/lis/reports/turnaround-timeTurnaround timelis.reports.view
GET/api/lis/reports/test-volumeTest volumelis.reports.view
GET/api/lis/reports/revenueRevenue summarylis.reports.view
GET/api/lis/reports/qc-summaryQC summarylis.reports.view
GET/api/lis/reports/abnormalsAbnormal resultslis.reports.view

Patient Portal

MethodEndpointDescriptionAuth
POST/api/lis/portal/loginPatient loginnone
GET/api/lis/portal/resultsList released resultsportal token
GET/api/lis/portal/results/{id}Get result detailsportal token
POST/api/lis/portal/logoutInvalidate tokenportal token

Lab Workflow Overview

Localization

Every request can include an Accept-Language header set to ar or en.

Accept-Language: ar

Moon ERP API Documentation