Laboratory Information System Master Data & Configuration
Master Data Inventory
| ID | Data Set | Description | Records (Est.) | Source | Owner | Update Frequency | Approver |
|---|---|---|---|---|---|---|---|
| MD-LIS-001 | LOINC Code Set | Standard codes for lab tests and result components | ~95,000 | Regenstrief Institute LOINC | Lab Informatics | Biannually (LOINC release) | Lab Director |
| MD-LIS-002 | Lab Test Catalog | Facility-specific catalog of orderable lab tests mapped to LOINC/CPT | ~2,000 | Facility-defined | Pathologist / Lab Director | On test menu change; annual review | Lab Director + Medical Executive Committee |
| MD-LIS-003 | Panel Definitions | Definitions of lab panels/profiles (CBC, BMP, LFT, etc.) | ~100 | Facility-defined | Lab Supervisor | On panel change; annual review | Lab Director |
| MD-LIS-004 | Reference Ranges | Age/sex-specific normal ranges per test | ~3,000 | Manufacturer IFU + local validation | Lab Director | On method change; annual review | Lab Director |
| MD-LIS-005 | Critical Value Thresholds | Test-specific critical low/high thresholds and escalation rules | ~200 | Facility-defined clinical policy | Pathologist / Lab Director | Annual review; on guideline change | Lab Director + Clinical Governance Committee |
| MD-LIS-006 | Specimen Type Requirements | Mapping of tests to required specimen types, tubes, volumes | ~500 | Test catalog + collection guide | Lab Supervisor | On test/specimen change | Lab Supervisor |
| MD-LIS-007 | Analyzer Configuration | Master list of analyzers and capabilities | ~50 | Vendor specs + site config | Lab Supervisor | On equipment change | Lab Director |
| MD-LIS-008 | Westgard QC Rules | QC rule sets applied per test/analyzer | ~10 | Industry standard | QC Officer | Rare; on QC program change | Lab Director |
| MD-LIS-009 | Antibiotic Master List | List of antibiotics for microbiology sensitivity reporting | ~100 | Facility formulary + CLSI/EUCAST | Microbiologist | Annual | Pharmacy & Therapeutics Committee |
| MD-LIS-010 | Organism Code Set (SNOMED) | SNOMED CT organism codes used in microbiology | ~20,000 | SNOMED CT | Microbiology Informatics | With SNOMED releases | Microbiology Lead |
| MD-LIS-011 | Reference Laboratory Directory | Contracted reference labs and their codes | ~10 | Contracts with reference labs | Lab Director | On contract change | Hospital Administration |
| MD-LIS-012 | Specimen Rejection Reason Codes | Standardised reasons for specimen rejection | ~20 | Facility-defined | Lab Supervisor | Rare; annual review | Lab Director |
| MD-LIS-013 | Lab Sections & Work Areas | Logical lab sections (chemistry, hematology, micro, etc.) | 10–30 | Facility-defined | Lab Supervisor | Rare; on reorganisation | Lab Director |
| MD-LIS-014 | Result Status Codes | Standard result statuses (preliminary, final, corrected, etc.) | 10–15 | Facility-defined / HL7 mapping | Lab Informatics | Rare | Lab Director |
| MD-LIS-015 | Priority Codes | Order priorities (STAT, urgent, routine, etc.) | 5–10 | Facility-defined | Lab Supervisor | Rare | Lab Director |
| MD-LIS-016 | NABIDH/Malaffi Lab Code Mapping | Mapping of local tests to HIE-required codes | ~1,000 | DHA NABIDH / DOH Malaffi | Lab Informatics | On test change; HIE spec change | IT / Integration Lead |
| MD-LIS-017 | Tube / Container Types | Standard tube/container types for collection | 30–50 | Vendor catalog + facility | Lab Supervisor | On supply change | Lab Director |
| MD-LIS-018 | Storage Location Codes | Freezers, fridges, racks, shelves for specimens | 50–200 | Facility-defined | Lab Supervisor | On layout change | Lab Supervisor |
| MD-LIS-019 | Notification Methods | Allowed methods for critical notifications (in-app, SMS, phone) | 5–10 | Facility-defined | Lab Informatics | Rare | Clinical Governance Committee |
| MD-LIS-020 | UAE Regulatory Lab Codes | MOH/DOH/DHA lab-related codes where applicable | 50–200 | MOH, DOH, DHA | Compliance Officer | As regulations change | Compliance Committee |
Note: Patients, providers, encounters, facilities, departments, users, and payers are shared entities and are not redefined here. They are referenced via foreign keys as per shared entity rules.
Setup Sequence
Dependency Graph
Load Sequence (Narrative)
- Foundation (shared): Ensure facilities, departments, users, providers, and payers are loaded from their owning modules.
- Organisational structure: Load Lab Sections & Work Areas (MD-LIS-013).
- Physical resources: Load Tube / Container Types (MD-LIS-017) and Storage Location Codes (MD-LIS-018).
- Terminology: Load LOINC Code Set (MD-LIS-001), Organism Code Set (MD-LIS-010), Antibiotic Master List (MD-LIS-009).
- Core catalog: Build Lab Test Catalog (MD-LIS-002) using LOINC, CPT, and local codes.
- Panels & specimens: Configure Panel Definitions (MD-LIS-003) and Specimen Type Requirements (MD-LIS-006).
- Clinical interpretation: Load Reference Ranges (MD-LIS-004) and Critical Value Thresholds (MD-LIS-005).
- Equipment & QC: Configure Analyzer Configuration (MD-LIS-007) and Westgard QC Rules (MD-LIS-008).
- Interoperability: Map NABIDH/Malaffi Lab Codes (MD-LIS-016) and UAE Regulatory Lab Codes (MD-LIS-020).
- Operational codes: Load Result Status Codes (MD-LIS-014), Priority Codes (MD-LIS-015), Specimen Rejection Reason Codes (MD-LIS-012), Notification Methods (MD-LIS-019), and Reference Laboratory Directory (MD-LIS-011).
- Go-live: Validate all mappings, run test orders, and sign off for LIS go-live.
Master Data Specifications
Below are detailed specifications for key LIS master data sets. All tables must support bilingual fields (English/Arabic) where user-facing.
MD-LIS-001: LOINC Code Set
Purpose
Standardised international codes for lab tests and result components, required for:
- Internal consistency across analyzers and lab sections
- UAE HIE submissions (NABIDH, Malaffi) using LOINC
- Interfacing with external systems (reference labs, EHR, analytics)
Schema
Table: md_lis_loinc_codes
| Field | Type | Required | Description |
|---|---|---|---|
| loinc_code | VARCHAR(20) | YES | LOINC code (e.g., 718-7) — primary key |
| component | VARCHAR(255) | YES | LOINC component name |
| property | VARCHAR(50) | NO | LOINC property (e.g., MCnc) |
| time_aspect | VARCHAR(50) | NO | Time aspect (e.g., Pt) |
| system | VARCHAR(100) | NO | System (e.g., Bld) |
| scale | VARCHAR(50) | NO | Scale (e.g., Qn) |
| method | VARCHAR(100) | NO | Method (if specified) |
| display_name_en | VARCHAR(255) | YES | Local English display name |
| display_name_ar | VARCHAR(255) | YES | Local Arabic display name |
| is_orderable | BOOLEAN | YES | TRUE if used as orderable test code |
| is_observable | BOOLEAN | YES | TRUE if used as result component code |
| active_flag | BOOLEAN | YES | Active/inactive in this facility |
| effective_from | DATE | YES | Date activated in facility |
| effective_to | DATE | NO | Date retired (NULL if active) |
Sample Data
| loinc_code | component | property | time_aspect | system | scale | method | display_name_en | display_name_ar | is_orderable | is_observable | active_flag |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 718-7 | Hemoglobin | MCnc | Pt | Bld | Qn | Automated count | Hemoglobin | الهيموغلوبين | TRUE | TRUE | TRUE |
| 4548-4 | Hematocrit | VFr | Pt | Bld | Qn | Automated count | Hematocrit | الهيماتوكريت | TRUE | TRUE | TRUE |
| 2345-7 | Glucose | MCnc | Pt | Bld | Qn | Automated | Glucose, plasma | جلوكوز البلازما | TRUE | TRUE | TRUE |
| 2951-2 | Sodium | SCnc | Pt | Ser/Plas | Qn | ISE | Sodium | الصوديوم | TRUE | TRUE | TRUE |
| 777-3 | Platelets | NCnc | Pt | Bld | Qn | Automated count | Platelet count | عدد الصفائح الدموية | TRUE | TRUE | TRUE |
| 600-7 | Potassium | SCnc | Pt | Ser/Plas | Qn | ISE | Potassium | البوتاسيوم | TRUE | TRUE | TRUE |
| 6690-2 | Leukocytes | NCnc | Pt | Bld | Qn | Automated count | WBC count | عدد كريات الدم البيضاء | TRUE | TRUE | TRUE |
Data Governance
- Owner: Lab Informatics
- Approval: Lab Director
- Update frequency: Biannually, aligned with official LOINC releases
- Change process: 1. Download new LOINC release from Regenstrief. 2. Run comparison against existing table. 3. Add new codes; mark deprecated codes as inactive (do not delete). 4. Update local display names (EN/AR) where needed. 5. Notify integration team and analytics of any code changes impacting mappings.
Validation Rules
loinc_codemust be unique and match regex^[0-9]+-[0-9]+$.display_name_enanddisplay_name_armust be non-empty for active codes.effective_tomust be NULL or greater than/equal toeffective_from.is_orderableORis_observablemust be TRUE (at least one).
MD-LIS-002: Lab Test Catalog
Purpose
Defines all orderable lab tests in the facility, linking local test codes to LOINC, CPT, lab section, specimen requirements, billing, and HIE mappings. Drives:
- Order entry in CPOE and LIS
- Analyzer worklists
- Billing & claims (CPT)
- NABIDH/Malaffi submissions
Schema
Table: md_lis_test_catalog
| Field | Type | Required | Description |
|---|---|---|---|
| test_code | VARCHAR(30) | YES | Local test code (primary key) |
| display_name_en | VARCHAR(255) | YES | Test name (English) |
| display_name_ar | VARCHAR(255) | YES | Test name (Arabic) |
| loinc_code | VARCHAR(20) | YES | FK → md_lis_loinc_codes.loinc_code |
| cpt_code | VARCHAR(10) | NO | CPT code for billing |
| lab_section_code | VARCHAR(30) | YES | FK → md_lis_lab_sections.section_code |
| default_priority_code | VARCHAR(10) | YES | FK → md_lis_priority_codes.priority_code |
| specimen_type_code | VARCHAR(30) | YES | FK → md_lis_specimen_type_requirements.specimen_type_code |
| tube_type_code | VARCHAR(30) | NO | FK → md_lis_tube_types.tube_type_code |
| is_panel | BOOLEAN | YES | TRUE if this is a panel (CBC, BMP) |
| active_flag | BOOLEAN | YES | Active/inactive |
| effective_from | DATE | YES | Activation date |
| effective_to | DATE | NO | Deactivation date |
| reportable_to_hie | BOOLEAN | YES | Whether sent to NABIDH/Malaffi |
| nabidh_code | VARCHAR(50) | NO | NABIDH-specific code if required |
| malaffi_code | VARCHAR(50) | NO | Malaffi-specific code if required |
Sample Data
| test_code | display_name_en | display_name_ar | loinc_code | cpt_code | lab_section_code | default_priority_code | specimen_type_code | tube_type_code | is_panel | reportable_to_hie |
|---|---|---|---|---|---|---|---|---|---|---|
| CBC | Complete Blood Count | عد دموي شامل | 57021-8 | 85025 | HEM | ROUTINE | WB_EDTA | EDTA_LAV | TRUE | TRUE |
| FBS | Fasting Blood Sugar | سكر صائم | 1558-6 | 82947 | CHEM | ROUTINE | SERUM | SST_GOLD | FALSE | TRUE |
| RBS | Random Blood Sugar | سكر عشوائي | 2345-7 | 82947 | CHEM | ROUTINE | SERUM | SST_GOLD | FALSE | TRUE |
| LFT | Liver Function Tests | وظائف الكبد | 24325-3 | 80076 | CHEM | ROUTINE | SERUM | SST_GOLD | TRUE | TRUE |
| CRP | C-Reactive Protein | البروتين المتفاعل C | 1988-5 | 86140 | IMM | ROUTINE | SERUM | SST_GOLD | FALSE | TRUE |
| UCULT | Urine Culture | مزرعة بول | 630-4 | 87086 | MICRO | ROUTINE | URINE | URINE_CUP | FALSE | TRUE |
| COVIDPCR | SARS-CoV-2 PCR | فحص PCR لفيروس كورونا | 94309-2 | 87635 | MICRO | STAT | NP_SWAB | VTM_TUBE | FALSE | TRUE |
Data Governance
- Owner: Pathologist / Lab Director
- Approval: Lab Director + Medical Executive Committee (for new tests)
- Update frequency: On test menu changes; annual full review
- Change process: 1. Request from lab section or clinical department. 2. Evaluate clinical utility, cost, and regulatory requirements. 3. Define test parameters (LOINC, CPT, specimen, section, HIE mapping). 4. Build and test in non-production. 5. Obtain approvals; schedule production deployment and communication to clinicians.
Validation Rules
test_codemust be unique and non-null.loinc_codemust exist inmd_lis_loinc_codesand be active.lab_section_code,default_priority_code,specimen_type_codemust reference active codes.effective_tomust be NULL or ≥effective_from.- If
reportable_to_hie = TRUE, at leastloinc_codemust be present;nabidh_code/malaffi_codeas per local HIE spec.
MD-LIS-003: Panel Definitions
Purpose
Defines composition of multi-test panels (e.g., CBC, BMP, LFT), including component tests and display order. Used for:
- Order entry convenience
- Analyzer worklists
- Result grouping in reports
Schema
Table: md_lis_panels
| Field | Type | Required | Description |
|---|---|---|---|
| panel_code | VARCHAR(30) | YES | Local panel code (PK) |
| display_name_en | VARCHAR(255) | YES | Panel name (English) |
| display_name_ar | VARCHAR(255) | YES | Panel name (Arabic) |
| panel_loinc_code | VARCHAR(20) | NO | Panel-level LOINC if available |
| lab_section_code | VARCHAR(30) | YES | FK → md_lis_lab_sections.section_code |
| specimen_type_code | VARCHAR(30) | YES | FK → md_lis_specimen_type_requirements.specimen_type_code |
| active_flag | BOOLEAN | YES | Active/inactive |
| effective_from | DATE | YES | Activation date |
| effective_to | DATE | NO | Deactivation date |
Table: md_lis_panel_components
| Field | Type | Required | Description |
|---|---|---|---|
| panel_code | VARCHAR(30) | YES | FK → md_lis_panels.panel_code |
| component_test_code | VARCHAR(30) | YES | FK → md_lis_test_catalog.test_code |
| display_order | INT | YES | Order of display |
| is_required | BOOLEAN | YES | If FALSE, optional component |
| default_included | BOOLEAN | YES | Included by default when panel ordered |
Sample Data
md_lis_panels
| panel_code | display_name_en | display_name_ar | panel_loinc_code | lab_section_code | specimen_type_code | active_flag |
|---|---|---|---|---|---|---|
| CBC | Complete Blood Count | عد دموي شامل | 57021-8 | HEM | WB_EDTA | TRUE |
| BMP | Basic Metabolic Panel | تحليل كيمياء أساسي | 24321-2 | CHEM | SERUM | TRUE |
| LFT | Liver Function Tests | وظائف الكبد | 24325-3 | CHEM | SERUM | TRUE |
md_lis_panel_components
| panel_code | component_test_code | display_order | is_required | default_included |
|---|---|---|---|---|
| CBC | WBC | 1 | TRUE | TRUE |
| CBC | RBC | 2 | TRUE | TRUE |
| CBC | HGB | 3 | TRUE | TRUE |
| CBC | HCT | 4 | TRUE | TRUE |
| CBC | PLT | 5 | TRUE | TRUE |
| BMP | NA | 1 | TRUE | TRUE |
| BMP | K | 2 | TRUE | TRUE |
| BMP | CL | 3 | TRUE | TRUE |
| BMP | CO2 | 4 | TRUE | TRUE |
| BMP | BUN | 5 | TRUE | TRUE |
| BMP | CREAT | 6 | TRUE | TRUE |
Data Governance
- Owner: Lab Supervisor
- Approval: Lab Director
- Update frequency: On panel composition changes; annual review
- Change process: 1. Proposal from lab section or clinical department. 2. Assess impact on analyzers, billing, and HIE mappings. 3. Update panel definitions and test catalog relationships. 4. Test in non-production; communicate changes to clinicians.
Validation Rules
panel_codemust exist astest_codeinmd_lis_test_catalogwithis_panel = TRUE.- Each
component_test_codemust exist and be active. display_ordermust be positive integer; no duplicates perpanel_code.- At least one component per panel must have
is_required = TRUE.
MD-LIS-004: Reference Ranges
Purpose
Defines normal reference ranges per test, age band, gender, and sometimes method. Used for:
- Automatic abnormal flagging
- Result interpretation
- Auto-verification rules
Schema
Table: md_lis_reference_ranges
| Field | Type | Required | Description |
|---|---|---|---|
| range_id | BIGINT | YES | PK (surrogate key) |
| test_code | VARCHAR(30) | YES | FK → md_lis_test_catalog.test_code |
| age_min_years | DECIMAL(4,1) | YES | Minimum age in years (inclusive) |
| age_max_years | DECIMAL(4,1) | YES | Maximum age in years (inclusive) |
| gender | CHAR(1) | YES | 'M', 'F', or 'A' (all) |
| low_value | DECIMAL(12,4) | YES | Lower reference limit |
| high_value | DECIMAL(12,4) | YES | Upper reference limit |
| unit | VARCHAR(50) | YES | Unit (UCUM where possible) |
| method | VARCHAR(100) | NO | Method if method-specific |
| effective_from | DATE | YES | Activation date |
| effective_to | DATE | NO | Deactivation date |
| source | VARCHAR(255) | YES | Manufacturer IFU, local validation, etc. |
Sample Data
| range_id | test_code | age_min_years | age_max_years | gender | low_value | high_value | unit | source |
|---|---|---|---|---|---|---|---|---|
| 1 | HGB | 18.0 | 150.0 | M | 13.0 | 17.0 | g/dL | Manufacturer IFU + local validation |
| 2 | HGB | 18.0 | 150.0 | F | 12.0 | 15.0 | g/dL | Manufacturer IFU + local validation |
| 3 | FBS | 18.0 | 150.0 | A | 70.0 | 99.0 | mg/dL | ADA guidelines + local validation |
| 4 | NA | 18.0 | 150.0 | A | 135.0 | 145.0 | mmol/L | Manufacturer IFU |
| 5 | K | 18.0 | 150.0 | A | 3.5 | 5.1 | mmol/L | Manufacturer IFU |
Data Governance
- Owner: Lab Director
- Approval: Lab Director + Quality Committee
- Update frequency: On method change; annual review
- Change process: 1. New analyzer or method validation completed. 2. Proposed ranges documented with validation data. 3. Approval by Lab Director and Quality Committee. 4. Update reference ranges with effective date; do not overwrite historical ranges.
Validation Rules
age_max_years≥age_min_years.- No overlapping active ranges for same
test_code+gender+ age band. low_value<high_value.unitmust match unit configured in analyzer and test catalog.
MD-LIS-005: Critical Value Thresholds
Purpose
Defines critical low/high thresholds per test and age group, plus notification requirements and escalation times, to support WF-LIS-005 (Critical Value Notification) and UAE regulatory expectations for timely communication.
Schema
Table: md_lis_critical_values
| Field | Type | Required | Description |
|---|---|---|---|
| critical_id | BIGINT | YES | PK |
| test_code | VARCHAR(30) | YES | FK → md_lis_test_catalog.test_code |
| age_group_code | VARCHAR(20) | YES | e.g., ADULT, PED, NEO |
| gender | CHAR(1) | YES | 'M', 'F', 'A' |
| critical_low | DECIMAL(12,4) | NO | Critical low threshold (NULL if not applicable) |
| critical_high | DECIMAL(12,4) | NO | Critical high threshold (NULL if not applicable) |
| unit | VARCHAR(50) | YES | Unit |
| notification_required | BOOLEAN | YES | Whether notification is mandatory |
| escalation_minutes_level1 | INT | YES | Minutes before first escalation |
| escalation_minutes_level2 | INT | YES | Minutes before second escalation |
| active_flag | BOOLEAN | YES | Active/inactive |
| effective_from | DATE | YES | Activation date |
| effective_to | DATE | NO | Deactivation date |
Sample Data
| test_code | age_group_code | gender | critical_low | critical_high | unit | notification_required | escalation_minutes_level1 | escalation_minutes_level2 |
|---|---|---|---|---|---|---|---|---|
| K | ADULT | A | 2.5 | 6.5 | mmol/L | TRUE | 15 | 30 |
| NA | ADULT | A | 120.0 | 160.0 | mmol/L | TRUE | 15 | 30 |
| HGB | ADULT | A | 6.0 | 20.0 | g/dL | TRUE | 15 | 30 |
| FBS | ADULT | A | 40.0 | 400.0 | mg/dL | TRUE | 15 | 30 |
| PLT | ADULT | A | 20.0 | NULL | x10^9/L | TRUE | 15 | 30 |
Data Governance
- Owner: Pathologist / Lab Director
- Approval: Clinical Governance Committee
- Update frequency: Annual; on guideline changes
- Change process: 1. Review international guidelines and local policies. 2. Propose changes with rationale. 3. Approval by Clinical Governance Committee. 4. Update thresholds and communicate to clinical staff.
Validation Rules
- At least one of
critical_loworcritical_highmust be non-null. escalation_minutes_level2≥escalation_minutes_level1.- No overlapping active records for same
test_code+age_group_code+gender.
MD-LIS-006: Specimen Type Requirements
Purpose
Defines specimen types and their requirements (volume, tube, handling) per test. Supports:
- WF-LIS-002 (Specimen Collection & Accessioning)
- Phlebotomy worklists and collection guides
- Analyzer suitability checks
Schema
Table: md_lis_specimen_type_requirements
| Field | Type | Required | Description |
|---|---|---|---|
| specimen_type_code | VARCHAR(30) | YES | PK (e.g., WB_EDTA, SERUM) |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| primary_tube_type_code | VARCHAR(30) | YES | FK → md_lis_tube_types.tube_type_code |
| min_volume_ml | DECIMAL(6,2) | YES | Minimum required volume |
| handling_instructions_en | VARCHAR(255) | NO | English instructions |
| handling_instructions_ar | VARCHAR(255) | NO | Arabic instructions |
| active_flag | BOOLEAN | YES | Active/inactive |
Table: md_lis_test_specimen_map
| Field | Type | Required | Description |
|---|---|---|---|
| test_code | VARCHAR(30) | YES | FK → md_lis_test_catalog.test_code |
| specimen_type_code | VARCHAR(30) | YES | FK → md_lis_specimen_type_requirements.specimen_type_code |
| is_primary | BOOLEAN | YES | Primary specimen type for test |
Sample Data
md_lis_specimen_type_requirements
| specimen_type_code | display_name_en | display_name_ar | primary_tube_type_code | min_volume_ml | handling_instructions_en |
|---|---|---|---|---|---|
| WB_EDTA | Whole blood (EDTA) | دم كامل (EDTA) | EDTA_LAV | 2.0 | Mix gently, do not freeze |
| SERUM | Serum | مصل الدم | SST_GOLD | 2.0 | Allow to clot 30 min, centrifuge |
| PLASMA | Plasma | بلازما | LITH_HEP | 2.0 | Centrifuge within 30 min |
| URINE | Urine | بول | URINE_CUP | 10.0 | Midstream clean catch |
| NP_SWAB | Nasopharyngeal swab | مسحة أنفية بلعومية | VTM_TUBE | 1.0 | Place swab in VTM, keep 2–8°C |
Data Governance
- Owner: Lab Supervisor
- Approval: Lab Director
- Update frequency: On test/specimen changes
- Change process: 1. Update based on manufacturer IFU or new test. 2. Validate with phlebotomy and lab sections. 3. Update LIS and collection guides.
Validation Rules
min_volume_ml> 0.- Each active
test_codemust have at least one activespecimen_type_code. primary_tube_type_codemust exist and be active in tube types.
MD-LIS-007: Analyzer Configuration
Purpose
Defines analyzers, their sections, connectivity, and capabilities. Supports:
- WF-LIS-003 (Analyzer Interface & Result Capture)
- QC management (WF-LIS-008)
- Instrument routing and worklists
Schema
Table: md_lis_analyzers
| Field | Type | Required | Description |
|---|---|---|---|
| analyzer_id | BIGINT | YES | PK |
| analyzer_code | VARCHAR(30) | YES | Unique code |
| analyzer_name | VARCHAR(255) | YES | Display name |
| manufacturer | VARCHAR(100) | YES | Manufacturer |
| model | VARCHAR(100) | YES | Model |
| serial_number | VARCHAR(100) | NO | Serial number |
| facility_id | BIGINT | YES | FK → facilities.facility_id |
| lab_section_code | VARCHAR(30) | YES | FK → md_lis_lab_sections.section_code |
| ip_address | VARCHAR(50) | NO | IP or host |
| interface_type | VARCHAR(50) | YES | e.g., ASTM, HL7, TCP/IP |
| is_active | BOOLEAN | YES | Active/inactive |
| last_maintenance_date | DATE | NO | Last maintenance |
| next_maintenance_due | DATE | NO | Next scheduled maintenance |
Table: md_lis_analyzer_test_map
| Field | Type | Required | Description |
|---|---|---|---|
| analyzer_id | BIGINT | YES | FK → md_lis_analyzers.analyzer_id |
| test_code | VARCHAR(30) | YES | FK → md_lis_test_catalog.test_code |
| analyzer_test_code | VARCHAR(30) | YES | Code used by analyzer |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
md_lis_analyzers
| analyzer_id | analyzer_code | analyzer_name | manufacturer | model | facility_id | lab_section_code | interface_type | is_active |
|---|---|---|---|---|---|---|---|---|
| 1 | CHEM_AU5800 | AU5800 Chemistry Analyzer | Beckman Coulter | AU5800 | 1 | CHEM | ASTM TCP/IP | TRUE |
| 2 | HEM_XN1000 | XN-1000 Hematology Analyzer | Sysmex | XN-1000 | 1 | HEM | HL7 TCP/IP | TRUE |
| 3 | IMM_ARCHITECT | Architect i2000SR | Abbott | i2000SR | 1 | IMM | ASTM TCP/IP | TRUE |
md_lis_analyzer_test_map
| analyzer_id | test_code | analyzer_test_code | active_flag |
|---|---|---|---|
| 1 | FBS | GLU | TRUE |
| 1 | NA | NA | TRUE |
| 1 | K | K | TRUE |
| 2 | CBC | CBC | TRUE |
| 2 | PLT | PLT | TRUE |
Data Governance
- Owner: Lab Supervisor
- Approval: Lab Director + IT/Integration Lead
- Update frequency: On analyzer installation, decommission, or test menu change
- Change process: 1. New analyzer implementation project. 2. Configure analyzer and LIS mapping tables. 3. Validate with parallel testing and QC. 4. Approve and move to production.
Validation Rules
analyzer_codemust be unique.analyzer_test_codemust be unique peranalyzer_id.- Only active analyzers and test mappings can be used in live orders.
MD-LIS-008: Westgard QC Rules
Purpose
Defines QC rule sets applied per test/analyzer combination to determine whether QC is in control, supporting WF-LIS-008 (Quality Control Management).
Schema
Table: md_lis_westgard_rules
| Field | Type | Required | Description |
|---|---|---|---|
| rule_code | VARCHAR(20) | YES | PK (e.g., 1_2S, 1_3S) |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| description_en | VARCHAR(255) | NO | English description |
| description_ar | VARCHAR(255) | NO | Arabic description |
| active_flag | BOOLEAN | YES | Active/inactive |
Table: md_lis_qc_rule_sets
| Field | Type | Required | Description |
|---|---|---|---|
| rule_set_id | BIGINT | YES | PK |
| analyzer_id | BIGINT | YES | FK → md_lis_analyzers.analyzer_id |
| test_code | VARCHAR(30) | YES | FK → md_lis_test_catalog.test_code |
| control_level | VARCHAR(20) | YES | e.g., L1, L2 |
| rule_code | VARCHAR(20) | YES | FK → md_lis_westgard_rules.rule_code |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
md_lis_westgard_rules
| rule_code | display_name_en | display_name_ar | description_en |
|---|---|---|---|
| 1_2S | 1-2s rule | قاعدة 1-2s | Reject run if one control exceeds ±2 SD |
| 1_3S | 1-3s rule | قاعدة 1-3s | Reject run if one control exceeds ±3 SD |
| 2_2S | 2-2s rule | قاعدة 2-2s | Reject run if two consecutive controls exceed ±2 SD on same side |
| R_4S | R-4s rule | قاعدة R-4s | Reject run if difference between two controls is ≥4 SD |
| 4_1S | 4-1s rule | قاعدة 4-1s | Reject run if four consecutive controls exceed ±1 SD on same side |
md_lis_qc_rule_sets
| rule_set_id | analyzer_id | test_code | control_level | rule_code | active_flag |
|---|---|---|---|---|---|
| 1 | 1 | FBS | L1 | 1_2S | TRUE |
| 2 | 1 | FBS | L1 | 1_3S | TRUE |
| 3 | 1 | FBS | L1 | 2_2S | TRUE |
| 4 | 1 | FBS | L1 | R_4S | TRUE |
| 5 | 1 | FBS | L2 | 1_2S | TRUE |
Data Governance
- Owner: QC Officer
- Approval: Lab Director
- Update frequency: Rare; on QC program changes
- Change process: 1. QC program review and recommendation. 2. Update rule sets in LIS. 3. Validate with QC data and document rationale.
Validation Rules
- Each active
test_code+analyzer_id+control_levelmust have at least one rule. rule_codemust exist and be active.
MD-LIS-009: Antibiotic Master List
Purpose
Defines antibiotics used in microbiology sensitivity testing and reporting, including mapping to facility formulary and stewardship rules. Supports WF-LIS-006 (Microbiology Culture & Sensitivity) and antimicrobial stewardship.
Schema
Table: md_lis_antibiotics
| Field | Type | Required | Description |
|---|---|---|---|
| antibiotic_code | VARCHAR(30) | YES | PK (e.g., CIPRO, CTX) |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| atc_code | VARCHAR(20) | NO | ATC code if used |
| formulary_med_code | VARCHAR(50) | NO | Link to medication formulary (CPOE) |
| is_restricted | BOOLEAN | YES | Restricted antibiotic (stewardship) |
| cascade_level | INT | NO | For cascade reporting (1 = narrow, higher = broader) |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| antibiotic_code | display_name_en | display_name_ar | atc_code | is_restricted | cascade_level |
|---|---|---|---|---|---|
| AMP | Ampicillin | أمبيسيلين | J01CA01 | FALSE | 1 |
| AMC | Amoxicillin/Clavulanate | أموكسيسيلين/كلافولانات | J01CR02 | FALSE | 1 |
| CTX | Cefotaxime | سيفوتاكسيم | J01DD01 | TRUE | 2 |
| CIPRO | Ciprofloxacin | سيبروفلوكساسين | J01MA02 | TRUE | 2 |
| MERO | Meropenem | ميروبينيم | J01DH02 | TRUE | 3 |
| COL | Colistin | كوليستين | J01XB01 | TRUE | 4 |
Data Governance
- Owner: Microbiologist
- Approval: Pharmacy & Therapeutics Committee
- Update frequency: Annual; on formulary changes
- Change process: 1. Align with facility formulary and CLSI/EUCAST guidelines. 2. Update antibiotic list and cascade levels. 3. Coordinate with Pharmacy and stewardship team.
Validation Rules
cascade_levelmust be positive integer if not NULL.- Restricted antibiotics must have stewardship rules configured in relevant module.
MD-LIS-010: Organism Code Set (SNOMED)
Purpose
Defines SNOMED CT organism codes used in microbiology results and antibiograms. Supports:
- Structured reporting
- HIE submissions (NABIDH/Malaffi)
- Antibiogram generation
Schema
Table: md_lis_organisms
| Field | Type | Required | Description |
|---|---|---|---|
| snomed_code | VARCHAR(20) | YES | PK |
| display_name_en | VARCHAR(255) | YES | English name |
| display_name_ar | VARCHAR(255) | YES | Arabic name |
| organism_group | VARCHAR(100) | NO | e.g., Gram-negative, Gram-positive, Yeast |
| is_reportable | BOOLEAN | YES | Reportable to clinicians |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| snomed_code | display_name_en | display_name_ar | organism_group | is_reportable |
|---|---|---|---|---|
| 112283007 | Escherichia coli | الإشريكية القولونية | Gram-negative | TRUE |
| 3092008 | Staphylococcus aureus | المكورات العنقودية الذهبية | Gram-positive | TRUE |
| 68566005 | Pseudomonas aeruginosa | الزائفة الزنجارية | Gram-negative | TRUE |
| 235865005 | Klebsiella pneumoniae | الكليبسيلا الرئوية | Gram-negative | TRUE |
| 78048006 | Candida albicans | المبيضات البيضاء | Yeast | TRUE |
Data Governance
- Owner: Microbiology Informatics
- Approval: Microbiology Lead
- Update frequency: With SNOMED releases; annual review
- Change process: 1. Import SNOMED organism subset. 2. Map to local display names (EN/AR). 3. Mark non-used organisms as inactive.
Validation Rules
snomed_codemust be unique.display_name_enanddisplay_name_arrequired for active codes.
MD-LIS-011: Reference Laboratory Directory
Purpose
Defines contracted reference laboratories and their identifiers, used in WF-LIS-007 (Reference Lab Send-Out) and billing.
Schema
Table: md_lis_reference_labs
| Field | Type | Required | Description |
|---|---|---|---|
| reference_lab_id | BIGINT | YES | PK |
| lab_code | VARCHAR(30) | YES | Unique code |
| name_en | VARCHAR(255) | YES | English name |
| name_ar | VARCHAR(255) | YES | Arabic name |
| moh_facility_code | VARCHAR(50) | NO | MOH facility code if applicable |
| doh_facility_code | VARCHAR(50) | NO | DOH facility code if applicable |
| dha_facility_code | VARCHAR(50) | NO | DHA facility code if applicable |
| address_en | VARCHAR(255) | NO | Address (English) |
| address_ar | VARCHAR(255) | NO | Address (Arabic) |
| contact_phone | VARCHAR(30) | NO | Contact number |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| lab_code | name_en | name_ar | moh_facility_code | contact_phone |
|---|---|---|---|---|
| NRL_DXB | National Reference Lab Dubai | المختبر المرجعي الوطني دبي | MOH-LAB-001 | +971 4 123 4567 |
| NRL_AUH | National Reference Lab Abu Dhabi | المختبر المرجعي الوطني أبوظبي | MOH-LAB-002 | +971 2 234 5678 |
| INTL_MAYO | Mayo Clinic Reference Lab | مختبر مايو كلينك المرجعي | NULL | +1 507 284 2511 |
Data Governance
- Owner: Lab Director
- Approval: Hospital Administration + Contracts
- Update frequency: On contract changes
- Change process: 1. New contract or termination. 2. Update directory and send-out mappings. 3. Notify billing and logistics.
Validation Rules
lab_codemust be unique.- At least one of MOH/DOH/DHA codes should be populated for UAE-based labs.
MD-LIS-012: Specimen Rejection Reason Codes
Purpose
Standardises reasons for specimen rejection to support KPI “Specimen Rejection Rate” and quality improvement.
Schema
Table: md_lis_rejection_reasons
| Field | Type | Required | Description |
|---|---|---|---|
| reason_code | VARCHAR(20) | YES | PK |
| display_name_en | VARCHAR(100) | YES | English description |
| display_name_ar | VARCHAR(100) | YES | Arabic description |
| category | VARCHAR(50) | NO | e.g., Pre-analytical, Analytical |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| reason_code | display_name_en | display_name_ar | category |
|---|---|---|---|
| HEMOLYZED | Hemolyzed specimen | عينة منحلة الدم | Pre-analytical |
| CLOTTED | Clotted specimen | عينة متخثرة | Pre-analytical |
| INSUFF_VOL | Insufficient volume | حجم غير كافٍ | Pre-analytical |
| WRONG_TUBE | Wrong tube type | أنبوب غير مناسب | Pre-analytical |
| LEAKAGE | Leaking container | أنبوب/حاوية مسربة | Pre-analytical |
Data Governance
- Owner: Lab Supervisor
- Approval: Lab Director
- Update frequency: Rare; annual review
- Change process: 1. Quality review identifies need for new code. 2. Add code and update training materials.
Validation Rules
reason_codemust be unique.- Cannot delete codes referenced in historical specimens; only inactivate.
MD-LIS-013: Lab Sections & Work Areas
Purpose
Defines logical lab sections used for routing, worklists, and reporting.
Schema
Table: md_lis_lab_sections
| Field | Type | Required | Description |
|---|---|---|---|
| section_code | VARCHAR(30) | YES | PK (e.g., CHEM, HEM) |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| section_code | display_name_en | display_name_ar |
|---|---|---|
| CHEM | Clinical Chemistry | الكيمياء السريرية |
| HEM | Hematology | أمراض الدم |
| IMM | Immunology | علم المناعة |
| MICRO | Microbiology | الأحياء الدقيقة |
| PATH | Pathology | علم الأمراض |
| POC | Point-of-Care Testing | الفحوصات السريرية السريعة |
Data Governance
- Owner: Lab Supervisor
- Approval: Lab Director
- Update frequency: Rare
- Change process: Only when lab reorganises; requires careful review of all mappings.
Validation Rules
section_codemust be unique.- All tests must reference a valid, active section.
MD-LIS-014: Result Status Codes
Purpose
Standardises result statuses and maps them to HL7/FHIR equivalents (e.g., P preliminary, F final, C corrected).
Schema
Table: md_lis_result_status_codes
| Field | Type | Required | Description |
|---|---|---|---|
| status_code | VARCHAR(10) | YES | PK (internal code) |
| display_name_en | VARCHAR(50) | YES | English name |
| display_name_ar | VARCHAR(50) | YES | Arabic name |
| hl7_status_code | VARCHAR(5) | YES | HL7 v2 status (e.g., P, F, C) |
| fhir_status_code | VARCHAR(20) | YES | FHIR status (e.g., preliminary, final, amended) |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| status_code | display_name_en | display_name_ar | hl7_status_code | fhir_status_code |
|---|---|---|---|---|
| PRELIM | Preliminary | مبدئي | P | preliminary |
| FINAL | Final | نهائي | F | final |
| CORR | Corrected | مصحح | C | amended |
| CANCEL | Cancelled | ملغى | X | cancelled |
| PARTIAL | Partial | جزئي | P | partial |
Data Governance
- Owner: Lab Informatics
- Approval: Lab Director
- Update frequency: Rare
- Change process: Only to align with HL7/FHIR or HIE requirements.
Validation Rules
hl7_status_codeandfhir_status_codemust be consistent with standards.- Only active codes can be used in new results.
MD-LIS-015: Priority Codes
Purpose
Defines order priorities (STAT, urgent, routine) used in worklists and TAT KPIs.
Schema
Table: md_lis_priority_codes
| Field | Type | Required | Description |
|---|---|---|---|
| priority_code | VARCHAR(10) | YES | PK |
| display_name_en | VARCHAR(50) | YES | English name |
| display_name_ar | VARCHAR(50) | YES | Arabic name |
| hl7_priority_code | VARCHAR(5) | YES | HL7 order priority (e.g., S, R) |
| tat_target_minutes | INT | YES | Target TAT in minutes |
| active_flag | BOOLEAN | YES | Active/inactive |
Sample Data
| priority_code | display_name_en | display_name_ar | hl7_priority_code | tat_target_minutes |
|---|---|---|---|---|
| STAT | STAT | عاجل جداً | S | 60 |
| URGENT | Urgent | عاجل | A | 120 |
| ROUTINE | Routine | روتيني | R | 240 |
| PREOP | Pre-operative | قبل العملية | P | 90 |
Data Governance
- Owner: Lab Supervisor
- Approval: Lab Director
- Update frequency: Rare
- Change process: Update TAT targets as per service level agreements.
Validation Rules
tat_target_minutes> 0.hl7_priority_codemust align with HL7 v2 standard.
Configuration Parameters
Key LIS configuration parameters and governance.
| Parameter | Type | Default | Description | Governance |
|---|---|---|---|---|
| max_results_per_search | Integer | 50 | Max search results returned in worklists and result queries | System Admin (with Lab Informatics) |
| default_lab_timezone | String | Asia/Dubai | Time zone for all lab timestamps | System Admin |
| auto_verification_enabled | Boolean | true | Global toggle for auto-verification engine | Lab Director |
| auto_verification_ruleset_id | Integer | 1 | ID of ruleset used for auto-verification | Lab Informatics |
| critical_alert_level1_minutes | Integer | 15 | Minutes before first escalation for critical values | Clinical Governance Committee |
| critical_alert_level2_minutes | Integer | 30 | Minutes before second escalation | Clinical Governance Committee |
| max_specimen_hold_days_chemistry | Integer | 7 | Default specimen retention period (chemistry) | Lab Supervisor |
| max_specimen_hold_days_hematology | Integer | 3 | Default specimen retention period (hematology) | Lab Supervisor |
| max_specimen_hold_days_microbiology | Integer | 30 | Default specimen retention period (microbiology) | Microbiologist |
| qc_required_per_shift | Boolean | true | Require QC at start of each shift | QC Officer |
| qc_lockout_on_fail | Boolean | true | Block result release if QC out of control | Lab Director |
| hie_submission_enabled_nabidh | Boolean | true | Enable NABIDH result submission | IT / Integration Lead |
| hie_submission_enabled_malaffi | Boolean | true | Enable Malaffi result submission | IT / Integration Lead |
| pdpl_data_retention_years | Integer | 25 | Retention period for lab results per UAE PDPL and local policy | Compliance Officer |
| anonymise_data_for_analytics | Boolean | true | Use pseudonymisation for analytics exports | Compliance Officer |
Configuration Governance
- Changes to clinical-impacting parameters (auto-verification, QC lockout, critical alert timings) require:
- Lab Director approval
- Clinical Governance Committee review
- Documented risk assessment
- Technical parameters (max_results_per_search, timezone) require:
- System Admin + Lab Informatics approval
- PDPL-related parameters (retention, anonymisation) require:
- Compliance Officer + Legal review
Data Load Procedures
1. Initial Load
External Sources
- LOINC Code Set (MD-LIS-001):
- Source: Official LOINC CSV from Regenstrief.
- Format: CSV; import via ETL script mapping to
md_lis_loinc_codes. - Validation:
- Check code format and uniqueness.
- Ensure mandatory fields populated.
- SNOMED Organism Codes (MD-LIS-010):
- Source: SNOMED CT release (organism subset).
- Format: RF2 or CSV subset; transform to
md_lis_organisms. - Antibiotic Master List (MD-LIS-009):
- Source: Facility formulary export (from Pharmacy/CPOE).
- Format: CSV/JSON; map to
md_lis_antibiotics.
Facility-Defined Data
- Lab Test Catalog, Panels, Specimen Requirements, Critical Values, Reference Ranges, Lab Sections, Tube Types, Rejection Reasons, Reference Labs:
- Collected via structured Excel templates or CSV.
- Reviewed and signed off by Lab Director.
- Imported via admin UI or ETL scripts.
Import Steps
- Load foundational reference (LOINC, SNOMED, antibiotics).
- Load lab sections, tube types, storage locations.
- Load lab test catalog and panel definitions.
- Load reference ranges and critical values.
- Load analyzer configuration and QC rules.
- Load reference lab directory and HIE mappings.
2. Ongoing Synchronisation
- LOINC: Biannual job to compare new release with existing table; generate change report; apply after Lab Director approval.
- SNOMED: As per national licensing; update organism subset and mark deprecated codes inactive.
- HIE mappings (NABIDH/Malaffi): Integration team updates mapping tables when HIE specifications change; regression testing required.
- Reference labs: Manual updates when contracts change.
3. Import/Export Formats
- Supported formats:
- CSV (primary for bulk master data)
- JSON (for API-based integrations with other hospital systems)
- REST APIs (internal) for synchronising with CPOE, Pharmacy, and Billing modules.
- Encoding: UTF-8 to support Arabic and English.
4. Validation on Import
For all master data imports:
- Structural validation:
- Required columns present.
- Data types correct (numeric, dates, booleans).
- Referential integrity:
- Foreign keys (e.g.,
loinc_code,test_code,section_code) exist and active. - Business rules:
- No overlapping reference ranges or critical values.
- Unique codes (test_code, panel_code, reason_code, etc.).
- Units consistent with analyzer and test catalog.
Error Handling
- Records failing validation:
- Logged with detailed error messages.
- Not imported; summary report sent to Lab Informatics.
- Partial success:
- Valid records imported; invalid records reported.
- Import job status stored for audit.
5. UAE Regulatory & PDPL Considerations
- PDPL (Federal Decree-Law No. 45/2021):
- Master data containing personal identifiers (e.g., reference lab contacts) must be protected with role-based access.
- Audit logs for changes to clinically significant master data (test catalog, critical values, reference ranges).
- DOH/DHA/MOH:
- Ensure MOH/DOH/DHA facility and lab codes are maintained in Reference Lab Directory and UAE Regulatory Lab Codes.
- HIE mappings must comply with NABIDH/Malaffi implementation guides.
- Cybersecurity (ADHICS, TDRA/NESA):
- Data load interfaces must use secure channels (SFTP, HTTPS).
- Access to master data management screens restricted to authorised roles (Lab Supervisor, Lab Director, Lab Informatics, QC Officer).
This specification provides the development-ready definition of master data and configuration for the LIS module, aligned with UAE regulatory and interoperability requirements.