Blood Bank Management Master Data & Configuration
Master Data Inventory
| ID | Data Set | Source | Approx. Records | Owner | Update Frequency |
|---|---|---|---|---|---|
| MD-BB-001 | ABO/Rh Blood Group Codes | ISBT 128 standard | 8 | System Admin (with Blood Bank Medical Director) | Fixed (review on ISBT change) |
| MD-BB-002 | Blood Component Types | ISBT 128 product codes | ~30 | Blood Bank Medical Director | On ISBT revision / annual review |
| MD-BB-003 | Antibody Specificity Codes | ISBT red cell antigen nomenclature | ~300 | Blood Bank Supervisor | Rare; on ISBT update |
| MD-BB-004 | Transfusion Reaction Types | ISBT hemovigilance + facility-defined | ~15 | Blood Bank Medical Director | Annual review or as needed |
| MD-BB-005 | Donor Deferral Reasons | UAE MOH blood safety guidelines | ~50 | Blood Bank Medical Director | On MOH guideline change / annual review |
| MD-BB-006 | Infectious Disease Testing Panel | UAE MOH mandatory screening | ~8 | Blood Bank Medical Director | On MOH requirement change |
| MD-BB-007 | Component Storage Requirements | ISBT standards | ~10 | Blood Bank Supervisor | Rare; on standard change |
| MD-BB-008 | Crossmatch Eligibility Rules | AABB/facility guidelines | ~5 | Blood Bank Medical Director | Annual review |
| MD-BB-009 | Transfusion Indication Codes | Facility clinical guidelines | ~20 | Transfusion Committee Chair | Annual review |
| MD-BB-010 | Donation Types | Facility policy | 5–10 | Blood Bank Supervisor | Rare; on policy change |
| MD-BB-011 | Donation Complication Codes | Facility policy / ISBT | 15–30 | Blood Bank Supervisor | Annual review |
| MD-BB-012 | Donation Status Codes | System-defined | 8–12 | System Admin | Fixed (rare change) |
| MD-BB-013 | Component Status Codes | System-defined | 10–15 | System Admin | Fixed (rare change) |
| MD-BB-014 | Quarantine Reasons | Facility policy / MOH | 10–20 | Blood Bank Supervisor | As needed |
| MD-BB-015 | Discard Reasons | Facility policy / MOH | 10–20 | Blood Bank Supervisor | As needed |
| MD-BB-016 | Disposal Methods | Facility infection control policy | 5–10 | Infection Control Lead | Rare; on policy change |
| MD-BB-017 | Transfusion Priority Codes | Facility policy | 5–8 | Transfusion Committee | Rare |
| MD-BB-018 | Special Requirement Codes | Facility policy | 10–20 | Blood Bank Medical Director | As needed |
| MD-BB-019 | Transfusion Order Status Codes | System-defined | 8–12 | System Admin | Fixed |
| MD-BB-020 | Crossmatch Result Codes | Facility / ISBT | 5–10 | Blood Bank Supervisor | Rare |
| MD-BB-021 | Antibody Screen Result Codes | Facility / ISBT | 3–6 | Blood Bank Supervisor | Rare |
| MD-BB-022 | Infectious Disease Result Codes | LIS / MOH | 5–10 | Lab Director + Blood Bank Supervisor | Rare |
| MD-BB-023 | Reaction Severity Codes | ISBT hemovigilance | 3–5 | Blood Bank Medical Director | Rare |
| MD-BB-024 | Hemovigilance Report Types | UAE MOH hemovigilance | 3–6 | Blood Bank Medical Director | On MOH change |
| MD-BB-025 | Storage Location Types | Facility logistics | 10–20 | Blood Bank Supervisor | As needed |
| MD-BB-026 | Temperature Zone Codes | ISBT / facility | 5–10 | Blood Bank Supervisor | Rare |
| MD-BB-027 | Massive Transfusion Protocol (MTP) Packs | Facility protocol | 5–10 | Transfusion Committee | As needed |
| MD-BB-028 | Donor Status Codes | Facility policy | 5–8 | Blood Bank Supervisor | Rare |
| MD-BB-029 | Donor Questionnaire Question Bank | Facility policy / MOH | 80–150 | Donor Physician | On guideline change |
| MD-BB-030 | MOH / DOH / DHA Facility Blood Bank IDs | MOH/DOH/DHA registration | 1–10 per organisation | IT / Integration | On registration/change |
Note: Shared entities (patients, providers, facilities, encounters, users, payers) are referenced from their owning modules and are not redefined here. See
../ehr-patient-mgmt/06-master-data.mdand../policy-contract-mgmt/06-master-data.md.
Setup Sequence
Dependency Graph
Recommended Load Order
-
Foundational coding & facility identifiers - MD-BB-001 ABO/Rh Blood Group Codes
- MD-BB-003 Antibody Specificity Codes
- MD-BB-021 Antibody Screen Result Codes
- MD-BB-020 Crossmatch Result Codes
- MD-BB-030 MOH/DOH/DHA Facility Blood Bank IDs -
Component catalogue & storage - MD-BB-002 Blood Component Types
- MD-BB-007 Component Storage Requirements
- MD-BB-013 Component Status Codes
- MD-BB-025 Storage Location Types
- MD-BB-026 Temperature Zone Codes -
Donor management - MD-BB-005 Donor Deferral Reasons
- MD-BB-028 Donor Status Codes
- MD-BB-010 Donation Types
- MD-BB-011 Donation Complication Codes
- MD-BB-012 Donation Status Codes
- MD-BB-029 Donor Questionnaire Question Bank -
Infectious disease testing - MD-BB-006 Infectious Disease Testing Panel
- MD-BB-022 Infectious Disease Result Codes -
Transfusion ordering & compatibility - MD-BB-008 Crossmatch Eligibility Rules
- MD-BB-009 Transfusion Indication Codes
- MD-BB-017 Transfusion Priority Codes
- MD-BB-018 Special Requirement Codes
- MD-BB-019 Transfusion Order Status Codes
- MD-BB-027 Massive Transfusion Protocol Packs -
Hemovigilance & disposal - MD-BB-004 Transfusion Reaction Types
- MD-BB-023 Reaction Severity Codes
- MD-BB-024 Hemovigilance Report Types
- MD-BB-014 Quarantine Reasons
- MD-BB-015 Discard Reasons
- MD-BB-016 Disposal Methods -
Validation & Go-Live - Cross-check mappings with LIS, CPOE, MOH hemovigilance portal
- Lock system-owned code sets; enable governed change workflows
Master Data Specifications
Below are detailed specifications for the core blood-bank–specific master data sets explicitly mentioned in the brief. Additional sets (MD-BB-010+ etc.) follow the same pattern and can be extended in implementation.
MD-BB-001: ABO/Rh Blood Group Codes
Purpose
Standardised coding of patient and donor ABO/Rh blood groups used across:
blood_donors,blood_components,blood_type_screen,crossmatch_records- Compatibility logic, inventory filtering, transfusion decision support
- Reporting to UAE MOH, DOH, DHA, NABIDH/Malaffi
Schema
Table: ref_blood_group
| Field | Type | Required | Description |
|---|---|---|---|
| blood_group_code | VARCHAR(5) | YES | Unique code (e.g., A+, O-) |
| abo_group | VARCHAR(2) | YES | ABO group: O,A,B,AB |
| rh_factor | VARCHAR(3) | YES | Rh factor: POS, NEG |
| display_name_en | VARCHAR(50) | YES | English display name |
| display_name_ar | VARCHAR(50) | YES | Arabic display name |
| is_universal_donor | BOOLEAN | YES | True for O- (RBC context) |
| is_universal_recipient | BOOLEAN | YES | True for AB+ (RBC context) |
| is_active | BOOLEAN | YES | Active flag (always true for standard 8) |
| sort_order | SMALLINT | YES | For UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| blood_group_code | abo_group | rh_factor | display_name_en | display_name_ar | is_universal_donor | is_universal_recipient | sort_order |
|---|---|---|---|---|---|---|---|
| O- | O | NEG | O negative | فصيلة O سالب | TRUE | FALSE | 1 |
| O+ | O | POS | O positive | فصيلة O موجب | FALSE | FALSE | 2 |
| A- | A | NEG | A negative | فصيلة A سالب | FALSE | FALSE | 3 |
| A+ | A | POS | A positive | فصيلة A موجب | FALSE | FALSE | 4 |
| B- | B | NEG | B negative | فصيلة B سالب | FALSE | FALSE | 5 |
| B+ | B | POS | B positive | فصيلة B موجب | FALSE | FALSE | 6 |
| AB- | AB | NEG | AB negative | فصيلة AB سالب | FALSE | FALSE | 7 |
| AB+ | AB | POS | AB positive | فصيلة AB موجب | FALSE | TRUE | 8 |
Data Governance
- Owner: System Admin; clinical authority: Blood Bank Medical Director
- Approval process: Any change requires: 1. Written request from Blood Bank Medical Director 2. Review by Clinical Informatics + Integration team (impact on LIS/CPOE) 3. Change implemented in test, validated with sample orders/results 4. Scheduled production deployment
- Update frequency: Fixed; only on international standard change
- Change notification:
- Release note to blood bank staff, LIS, CPOE teams
- Update to interface mapping tables (HL7, FHIR) if codes change
Validation Rules
blood_group_codemust be unique and in set {O-,O+,A-,A+,B-,B+,AB-,AB+}abo_groupmust be in {O,A,B,AB}rh_factormust be in {POS,NEG}is_universal_donorTRUE only forO-is_universal_recipientTRUE only forAB+is_activecannot be set to FALSE for standard 8 without explicit super-admin override
MD-BB-002: Blood Component Types
Purpose
Defines all blood components that can be produced, stored, issued, and billed:
- Used in
blood_components,blood_component_inventory,transfusion_orders,transfusion_administration - Mapped to ISBT 128 product codes and billing (CPT/RCM) where applicable
- Drives storage requirements, shelf life, and compatibility rules
Schema
Table: ref_blood_component_type
| Field | Type | Required | Description |
|---|---|---|---|
| component_type_code | VARCHAR(20) | YES | Internal code (e.g., RBC_LEUKORED) |
| isbt_product_code | VARCHAR(20) | NO | ISBT 128 product code pattern |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| component_category | VARCHAR(30) | YES | e.g., RBC, PLATELET, PLASMA, CRYO, WHOLE |
| default_volume_ml | INTEGER | NO | Typical volume (for reference) |
| requires_irradiation_flag | BOOLEAN | YES | If typically irradiated for certain indications |
| is_apheresis | BOOLEAN | YES | TRUE if apheresis-derived |
| shelf_life_hours | INTEGER | YES | Default shelf life in hours |
| storage_temp_min_c | DECIMAL(4,1) | YES | Min storage temp (°C) |
| storage_temp_max_c | DECIMAL(4,1) | YES | Max storage temp (°C) |
| billable_cpt_code | VARCHAR(20) | NO | CPT/procedure code for billing |
| is_active | BOOLEAN | YES | Active flag |
| sort_order | SMALLINT | YES | UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| component_type_code | isbt_product_code | display_name_en | display_name_ar | component_category | default_volume_ml | requires_irradiation_flag | is_apheresis | shelf_life_hours | storage_temp_min_c | storage_temp_max_c |
|---|---|---|---|---|---|---|---|---|---|---|
| RBC_CPDA1 | E0201 | Red Blood Cells (CPDA-1) | كريات دم حمراء (CPDA-1) | RBC | 450 | FALSE | FALSE | 1152 (48d) | 2.0 | 6.0 |
| RBC_LEUKORED | E4532 | Leukoreduced Red Blood Cells | كريات دم حمراء منزوعة الكريات البيضاء | RBC | 300 | FALSE | FALSE | 1152 | 2.0 | 6.0 |
| PLT_APH | E3087 | Apheresis Platelets | صفائح دموية مفصولة آلياً | PLATELET | 250 | FALSE | TRUE | 120 (5d) | 20.0 | 24.0 |
| FFP | E2701 | Fresh Frozen Plasma | بلازما مجمدة طازجة | PLASMA | 250 | FALSE | FALSE | 365*24 | -30.0 | -18.0 |
| CRYO | E2801 | Cryoprecipitate | كرايوبرسبيتات | CRYO | 15 | FALSE | FALSE | 365*24 | -30.0 | -18.0 |
| WB_CPDA1 | E0101 | Whole Blood (CPDA-1) | دم كامل (CPDA-1) | WHOLE | 450 | FALSE | FALSE | 1152 | 2.0 | 6.0 |
| RBC_IRR | E5177 | Irradiated Red Blood Cells | كريات دم حمراء مشععة | RBC | 300 | TRUE | FALSE | 672 (28d) | 2.0 | 6.0 |
(Long plasma/cryoprecipitate shelf life expressed in hours; implementation may use days.)
Data Governance
- Owner: Blood Bank Medical Director
- Approval process: 1. Proposal for new/changed component from Blood Bank Supervisor 2. Review by Transfusion Committee (clinical indication, billing impact) 3. Mapping to ISBT 128 and billing codes validated by RCM team 4. Build/update in test → validation with LIS/CPOE → production deployment
- Update frequency: On ISBT updates, new component introduction, or policy change
- Change notification:
- Email to blood bank staff, nursing, ordering physicians
- Update to training materials and transfusion guidelines
- Interface mapping updates for LIS, billing, MOH reporting
Validation Rules
component_type_codeunique, uppercase, alphanumeric + underscore onlycomponent_categoryin {RBC,PLATELET,PLASMA,CRYO,WHOLE,OTHER}shelf_life_hours> 0storage_temp_min_c<storage_temp_max_c- If
requires_irradiation_flag= TRUE thencomponent_categorymust beRBCorPLATELET is_activecannot be set FALSE if referenced by active inventory records (enforce via application-level checks)
MD-BB-003: Antibody Specificity Codes
Purpose
Standardised coding of red cell antibodies for:
- Recording antibody screen/identification results in
blood_type_screen - Driving antigen-negative unit selection and crossmatch rules
- Hemovigilance and clinical decision support (e.g., anti-D, anti-K)
Schema
Table: ref_antibody_specificity
| Field | Type | Required | Description |
|---|---|---|---|
| antibody_code | VARCHAR(20) | YES | Unique code (e.g., ANTI_D) |
| isbt_antigen_code | VARCHAR(20) | NO | ISBT antigen system code (e.g., RH1) |
| display_name_en | VARCHAR(100) | YES | English name (e.g., Anti-D) |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| blood_group_system | VARCHAR(50) | YES | e.g., Rh, Kell, Duffy, Kidd, MNS |
| clinical_significance | VARCHAR(20) | YES | HIGH, MODERATE, LOW, UNKNOWN |
| requires_antigen_negative_units | BOOLEAN | YES | If positive, system must enforce antigen-negative selection |
| notes | VARCHAR(255) | NO | Additional comments |
| is_active | BOOLEAN | YES | Active flag |
| sort_order | SMALLINT | YES | UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| antibody_code | isbt_antigen_code | display_name_en | display_name_ar | blood_group_system | clinical_significance | requires_antigen_negative_units |
|---|---|---|---|---|---|---|
| ANTI_D | RH1 | Anti-D | مضاد D | Rh | HIGH | TRUE |
| ANTI_C | RH2 | Anti-C | مضاد C | Rh | HIGH | TRUE |
| ANTI_E | RH3 | Anti-E | مضاد E | Rh | HIGH | TRUE |
| ANTI_K | KEL1 | Anti-K | مضاد K | Kell | HIGH | TRUE |
| ANTI_FYA | FY1 | Anti-Fyᵃ | مضاد فيا | Duffy | HIGH | TRUE |
| ANTI_JKA | JK1 | Anti-Jkᵃ | مضاد جكا | Kidd | HIGH | TRUE |
| ANTI_LEA | LE1 | Anti-Leᵃ | مضاد ليا | Lewis | LOW | FALSE |
| ANTI_M | MNS1 | Anti-M | مضاد M | MNS | LOW | FALSE |
Data Governance
- Owner: Blood Bank Supervisor
- Approval process:
- New antibody codes only added based on ISBT updates or Medical Director request
- Changes reviewed by Medical Director and LIS lead (for result mapping)
- Update frequency: Rare; on ISBT nomenclature updates
- Change notification:
- Update LIS result dictionaries and mapping tables
- Communicate to technologists via SOP updates
Validation Rules
antibody_codeunique, patternANTI_+ uppercase letters/numbersclinical_significancein {HIGH,MODERATE,LOW,UNKNOWN}- If
requires_antigen_negative_units= TRUE thenclinical_significancemust beHIGHorMODERATE blood_group_systemmust be from controlled list (Rh, Kell, Duffy, Kidd, MNS, Lewis, P, etc.)
MD-BB-004: Transfusion Reaction Types
Purpose
Standardised classification of transfusion reactions for:
- Documentation in
transfusion_reactions - MOH hemovigilance reporting
- Analytics (reaction rates, severity, component association)
Schema
Table: ref_transfusion_reaction_type
| Field | Type | Required | Description |
|---|---|---|---|
| reaction_type_code | VARCHAR(20) | YES | Unique code (e.g., FNHTR) |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| isbt_category_code | VARCHAR(20) | NO | ISBT hemovigilance category code |
| description | VARCHAR(255) | NO | Short description |
| typical_onset_minutes_min | INTEGER | NO | Lower bound of typical onset time |
| typical_onset_minutes_max | INTEGER | NO | Upper bound of typical onset time |
| requires_moh_reporting | BOOLEAN | YES | TRUE if serious reaction per MOH |
| default_severity | VARCHAR(20) | YES | MILD, MODERATE, SEVERE, FATAL (default) |
| is_active | BOOLEAN | YES | Active flag |
| sort_order | SMALLINT | YES | UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| reaction_type_code | display_name_en | display_name_ar | isbt_category_code | requires_moh_reporting | default_severity |
|---|---|---|---|---|---|
| FNHTR | Febrile non-haemolytic transfusion reaction | تفاعل نقل دم حموي غير انحلالي | FNHTR | FALSE | MILD |
| ALLERGIC_MILD | Mild allergic reaction (urticaria) | تفاعل تحسسي بسيط (شرى) | ALL | FALSE | MILD |
| ALLERGIC_SEV | Severe allergic / anaphylactic reaction | تفاعل تحسسي شديد / صدمة تأقية | ANAPH | TRUE | SEVERE |
| AHTR | Acute haemolytic transfusion reaction | تفاعل انحلالي حاد بعد نقل الدم | AHTR | TRUE | SEVERE |
| DHTR | Delayed haemolytic transfusion reaction | تفاعل انحلالي متأخر بعد نقل الدم | DHTR | TRUE | MODERATE |
| TRALI | Transfusion-related acute lung injury | إصابة رئوية حادة مرتبطة بنقل الدم | TRALI | TRUE | SEVERE |
| TACO | Transfusion-associated circulatory overload | فرط حجم الدم المرتبط بنقل الدم | TACO | TRUE | MODERATE |
| BACT_CONTAM | Bacterial contamination | تلوث جرثومي لوحدة الدم | BACT | TRUE | SEVERE |
Data Governance
- Owner: Blood Bank Medical Director
- Approval process:
- Changes proposed by Hemovigilance Officer or Medical Director
- Reviewed against UAE MOH hemovigilance definitions
- Tested in reporting templates before activation
- Update frequency: Annual review or when MOH updates hemovigilance categories
- Change notification:
- Updated hemovigilance SOPs
- Training sessions for nursing and medical staff
- Update mapping to MOH online reporting portal
Validation Rules
reaction_type_codeunique, uppercase, alphanumeric + underscoredefault_severityin {MILD,MODERATE,SEVERE,FATAL}- If
requires_moh_reporting= TRUE then must be mapped in MOH reporting templates - Cannot delete codes referenced in
transfusion_reactions; only inactivate (is_active = FALSE)
MD-BB-005: Donor Deferral Reasons
Purpose
Standardised reasons for temporary or permanent donor deferral, aligned with UAE MOH blood safety guidelines:
- Used in
blood_donors(deferral history) and donor screening workflow - Supports reporting of deferral rates and regulatory compliance
Schema
Table: ref_donor_deferral_reason
| Field | Type | Required | Description |
|---|---|---|---|
| deferral_reason_code | VARCHAR(30) | YES | Unique code (e.g., LOW_HB_TEMP) |
| display_name_en | VARCHAR(150) | YES | English description |
| display_name_ar | VARCHAR(150) | YES | Arabic description |
| deferral_type | VARCHAR(20) | YES | TEMPORARY or PERMANENT |
| deferral_duration_days | INTEGER | NO | For temporary deferrals; NULL for permanent or variable |
| moh_reference | VARCHAR(100) | NO | MOH guideline reference / article |
| is_infectious_risk | BOOLEAN | YES | TRUE if related to infectious disease risk |
| is_pregnancy_related | BOOLEAN | YES | TRUE if pregnancy/breastfeeding related |
| is_travel_related | BOOLEAN | YES | TRUE if travel-related |
| is_active | BOOLEAN | YES | Active flag |
| sort_order | SMALLINT | YES | UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| deferral_reason_code | display_name_en | display_name_ar | deferral_type | deferral_duration_days | is_infectious_risk | is_pregnancy_related | is_travel_related |
|---|---|---|---|---|---|---|---|
| LOW_HB_TEMP | Low haemoglobin (temporary) | هيموغلوبين منخفض (مؤقت) | TEMPORARY | 56 | FALSE | FALSE | FALSE |
| RECENT_TATTOO | Tattoo or body piercing within last 6 months | وشم أو ثقب حديث خلال ٦ أشهر | TEMPORARY | 180 | TRUE | FALSE | FALSE |
| HIGH_RISK_BEHAV | High-risk behaviour for blood-borne infection | سلوك عالي الخطورة للعدوى المنقولة بالدم | PERMANENT | NULL | TRUE | FALSE | FALSE |
| PREGNANCY | Current pregnancy | حمل حالي | TEMPORARY | 365 | FALSE | TRUE | FALSE |
| BREASTFEEDING | Breastfeeding < 6 months postpartum | رضاعة طبيعية أقل من ٦ أشهر بعد الولادة | TEMPORARY | 180 | FALSE | TRUE | FALSE |
| TRAVEL_MALARIA | Travel to malaria-endemic area (last 3 months) | سفر إلى منطقة موبوءة بالملاريا (آخر ٣ أشهر) | TEMPORARY | 90 | TRUE | FALSE | TRUE |
| CHRONIC_DISEASE | Chronic serious disease (e.g., malignancy) | مرض مزمن خطير (مثل السرطان) | PERMANENT | NULL | FALSE | FALSE | FALSE |
Data Governance
- Owner: Blood Bank Medical Director
- Approval process:
- Changes initiated by Donor Physician or Medical Director
- Must be cross-checked with latest UAE MOH blood donation guidelines
- Clinical governance committee sign-off for permanent deferral categories
- Update frequency: On MOH guideline updates; otherwise annual review
- Change notification:
- Update donor screening questionnaire and SOPs
- Communicate to donor clinic staff
- Update any public-facing donor eligibility materials
Validation Rules
deferral_typein {TEMPORARY,PERMANENT}- If
deferral_type=TEMPORARYthendeferral_duration_daysmust be > 0 - If
deferral_type=PERMANENTthendeferral_duration_daysmust be NULL - At least one of
is_infectious_risk,is_pregnancy_related,is_travel_relatedshould be TRUE for MOH risk-related deferrals
MD-BB-006: Infectious Disease Testing Panel
Purpose
Defines mandatory infectious disease tests performed on donor samples, aligned with UAE MOH requirements:
- Used to configure LIS orders and interpret results for
blood_donationsandblood_quarantine_log - Drives automatic quarantine release/discard logic
Schema
Table: ref_infectious_test_panel
| Field | Type | Required | Description |
|---|---|---|---|
| test_code | VARCHAR(30) | YES | Unique code (e.g., HBsAg) |
| display_name_en | VARCHAR(100) | YES | English name |
| display_name_ar | VARCHAR(100) | YES | Arabic name |
| loinc_code | VARCHAR(20) | NO | LOINC code for test |
| pathogen | VARCHAR(50) | YES | e.g., HBV, HCV, HIV, Syphilis, Malaria |
| test_method | VARCHAR(50) | NO | e.g., ELISA, NAT |
| is_mandatory | BOOLEAN | YES | TRUE if required by MOH |
| reactive_result_code | VARCHAR(20) | YES | Code from ref_infectious_result indicating reactive/positive |
| nonreactive_result_code | VARCHAR(20) | YES | Code indicating non-reactive/negative |
| moh_reference | VARCHAR(100) | NO | MOH circular/guideline reference |
| is_active | BOOLEAN | YES | Active flag |
| sort_order | SMALLINT | YES | UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
(Assumes ref_infectious_result is part of MD-BB-022.)
Sample Data
| test_code | display_name_en | display_name_ar | pathogen | test_method | is_mandatory | reactive_result_code | nonreactive_result_code |
|---|---|---|---|---|---|---|---|
| HBsAg | Hepatitis B surface antigen | مستضد سطح التهاب الكبد B | HBV | ELISA | TRUE | REACTIVE | NON_REACTIVE |
| ANTI_HCV | Anti-HCV antibody | أجسام مضادة لالتهاب الكبد C | HCV | ELISA | TRUE | REACTIVE | NON_REACTIVE |
| HIV_AB_AG | HIV 1/2 Ab/Ag combo | اختبار أجسام مضادة ومستضد لفيروس HIV | HIV | ELISA | TRUE | REACTIVE | NON_REACTIVE |
| VDRL | Syphilis (VDRL/RPR) | الزهري (VDRL/RPR) | Syphilis | RPR | TRUE | REACTIVE | NON_REACTIVE |
| MALARIA_SMEAR | Malaria thick/thin smear | لطاخة الملاريا | Malaria | Microscopy | TRUE | POSITIVE | NEGATIVE |
| ANTI_HTLV | Anti-HTLV I/II | أجسام مضادة لـ HTLV I/II | HTLV | ELISA | OPTIONAL | REACTIVE | NON_REACTIVE |
| NAT_HBV | HBV NAT | اختبار الحمض النووي لالتهاب الكبد B | HBV | NAT | OPTIONAL | REACTIVE | NON_REACTIVE |
Data Governance
- Owner: Blood Bank Medical Director (with Lab Director)
- Approval process:
- MOH circular or guideline triggers review
- Joint decision by Lab Director and Medical Director
- LIS and HIS configuration updated in coordination
- Update frequency: On MOH requirement change; at least annual review
- Change notification:
- Notify MOH if required
- Update donor consent forms and information leaflets
- Communicate to LIS team and donor clinic
Validation Rules
test_codeunique, uppercase, no spacesis_mandatoryTRUE for all tests required by current MOH regulationreactive_result_codeandnonreactive_result_codemust exist inref_infectious_result- At least one active mandatory test per major pathogen category (HBV, HCV, HIV, Syphilis, Malaria)
MD-BB-007: Component Storage Requirements
Purpose
Defines storage temperature and shelf life per component category/type:
- Used to validate
blood_component_inventorystorage conditions - Drives expiry calculation and FEFO (First Expiry First Out) logic
- Supports regulatory compliance with ISBT and UAE MOH standards
Schema
Table: ref_component_storage_requirement
| Field | Type | Required | Description |
|---|---|---|---|
| storage_req_id | SERIAL / INTEGER | YES | PK |
| component_type_code | VARCHAR(20) | YES | FK → ref_blood_component_type.component_type_code or NULL for category-level rule |
| component_category | VARCHAR(30) | YES | e.g., RBC, PLATELET, PLASMA, CRYO, WHOLE |
| display_name_en | VARCHAR(100) | YES | English description |
| display_name_ar | VARCHAR(100) | YES | Arabic description |
| storage_temp_min_c | DECIMAL(4,1) | YES | Minimum storage temperature (°C) |
| storage_temp_max_c | DECIMAL(4,1) | YES | Maximum storage temperature (°C) |
| default_shelf_life_hours | INTEGER | YES | Shelf life in hours |
| monitoring_frequency_minutes | INTEGER | YES | Recommended temperature monitoring interval |
| moh_reference | VARCHAR(100) | NO | MOH/ISBT reference |
| is_active | BOOLEAN | YES | Active flag |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| component_type_code | component_category | display_name_en | display_name_ar | storage_temp_min_c | storage_temp_max_c | default_shelf_life_hours | monitoring_frequency_minutes |
|---|---|---|---|---|---|---|---|
| NULL | RBC | RBCs (general) | كريات دم حمراء | 2.0 | 6.0 | 1152 | 60 |
| NULL | PLATELET | Platelets (general) | صفائح دموية | 20.0 | 24.0 | 120 | 60 |
| NULL | PLASMA | Frozen plasma | بلازما مجمدة | -30.0 | -18.0 | 365*24 | 240 |
| NULL | CRYO | Cryoprecipitate | كرايوبرسبيتات | -30.0 | -18.0 | 365*24 | 240 |
| RBC_IRR | RBC | Irradiated RBCs | كريات دم حمراء مشععة | 2.0 | 6.0 | 672 | 60 |
| WB_CPDA1 | WHOLE | Whole blood (CPDA-1) | دم كامل (CPDA-1) | 2.0 | 6.0 | 1152 | 60 |
Data Governance
- Owner: Blood Bank Supervisor
- Approval process:
- Proposed changes reviewed by Medical Director
- Cross-checked with ISBT and MOH regulations
- Validated with Biomedical Engineering (storage equipment capabilities)
- Update frequency: Rare; on standard changes
- Change notification:
- Update SOPs and temperature monitoring protocols
- Reconfigure temperature alarm thresholds where needed
Validation Rules
- Either
component_type_codeORcomponent_categorymust be populated; not both NULL storage_temp_min_c<storage_temp_max_cdefault_shelf_life_hours> 0- For a given
component_type_code, only one active rule allowed
MD-BB-008: Crossmatch Eligibility Rules
Purpose
Defines when electronic crossmatch is allowed vs. when serological crossmatch is required:
- Used in
crossmatch_recordsworkflow and decision support - Ensures compliance with AABB/facility guidelines and UAE safety expectations
Schema
Table: ref_crossmatch_rule
| Field | Type | Required | Description |
|---|---|---|---|
| rule_id | SERIAL / INTEGER | YES | PK |
| rule_code | VARCHAR(30) | YES | Unique code (e.g., ELEC_XM_STANDARD) |
| display_name_en | VARCHAR(100) | YES | English description |
| display_name_ar | VARCHAR(100) | YES | Arabic description |
| crossmatch_type | VARCHAR(20) | YES | ELECTRONIC or SEROLOGICAL |
| requires_two_concordant_types | BOOLEAN | YES | For electronic crossmatch |
| max_hours_since_last_sample | INTEGER | YES | e.g., 72 |
| allow_if_antibodies_present | BOOLEAN | YES | Usually FALSE for electronic |
| allow_if_history_of_reaction | BOOLEAN | YES | Usually FALSE for electronic |
| is_default_rule | BOOLEAN | YES | Only one default per crossmatch_type |
| is_active | BOOLEAN | YES | Active flag |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| rule_code | display_name_en | crossmatch_type | requires_two_concordant_types | max_hours_since_last_sample | allow_if_antibodies_present | allow_if_history_of_reaction | is_default_rule |
|---|---|---|---|---|---|---|---|
| ELEC_XM_STANDARD | Standard electronic crossmatch | ELECTRONIC | TRUE | 72 | FALSE | FALSE | TRUE |
| SERO_XM_ANTIBODY | Serological XM – antibodies present | SEROLOGICAL | FALSE | 72 | TRUE | TRUE | TRUE |
| SERO_XM_EMERG | Emergency uncrossmatched issue | SEROLOGICAL | FALSE | 0 | TRUE | TRUE | FALSE |
Data Governance
- Owner: Blood Bank Medical Director
- Approval process:
- Proposed by Senior Technologist or Medical Director
- Reviewed by Transfusion Committee
- Tested in simulation (test patients) before activation
- Update frequency: Annual review or when guidelines change
- Change notification:
- Training for technologists and ordering clinicians
- Update to policy documents and audit criteria
Validation Rules
crossmatch_typein {ELECTRONIC,SEROLOGICAL}- Only one active
is_default_rule = TRUEpercrossmatch_type - If
crossmatch_type=ELECTRONICthenrequires_two_concordant_typesmust be TRUE andallow_if_antibodies_presentmust be FALSE
MD-BB-009: Transfusion Indication Codes
Purpose
Standardised clinical indications for transfusion orders:
- Used in
transfusion_orders.indication - Supports audit, utilisation review, and guideline adherence monitoring
Schema
Table: ref_transfusion_indication
| Field | Type | Required | Description |
|---|---|---|---|
| indication_code | VARCHAR(30) | YES | Unique code (e.g., ANEMIA_SYMPTOMATIC) |
| display_name_en | VARCHAR(150) | YES | English description |
| display_name_ar | VARCHAR(150) | YES | Arabic description |
| component_category | VARCHAR(30) | YES | RBC, PLATELET, PLASMA, CRYO, WHOLE, MULTI |
| guideline_reference | VARCHAR(100) | NO | Facility guideline / international reference |
| threshold_value | DECIMAL(5,2) | NO | e.g., Hb threshold, platelet count |
| threshold_unit | VARCHAR(20) | NO | e.g., g/dL, x10^9/L |
| requires_documented_lab | BOOLEAN | YES | TRUE if lab value must be present |
| is_active | BOOLEAN | YES | Active flag |
| sort_order | SMALLINT | YES | UI ordering |
| created_at | TIMESTAMP | YES | Audit |
| created_by | INTEGER | YES | FK → users.user_id |
| updated_at | TIMESTAMP | YES | Audit |
| updated_by | INTEGER | YES | FK → users.user_id |
Sample Data
| indication_code | display_name_en | display_name_ar | component_category | threshold_value | threshold_unit | requires_documented_lab |
|---|---|---|---|---|---|---|
| ANEMIA_SYMPTOMATIC | Symptomatic anaemia | فقر دم مصحوب بأعراض | RBC | 8.00 | g/dL | TRUE |
| ANEMIA_MASSIVE_BLEED | Acute massive blood loss | نزيف حاد غزير | RBC | NULL | NULL | FALSE |
| THROMBO_CHEMO | Thrombocytopenia due to chemotherapy | نقص صفائح بسبب العلاج الكيميائي | PLATELET | 10.00 | x10^9/L | TRUE |
| THROMBO_SURGERY | Platelet support for invasive procedure | دعم صفائح لعملية جراحية | PLATELET | 50.00 | x10^9/L | TRUE |
| COAG_DEF_FFP | Coagulopathy with active bleeding | اضطراب تخثر مع نزيف فعال | PLASMA | INR>1.5 | TEXT | TRUE |
| FIBRINOGEN_LOW | Hypofibrinogenaemia | نقص الفيبرينوجين | CRYO | 1.00 | g/L | TRUE |
| EXCHANGE_TRANSFUSION | Exchange transfusion (neonate) | تبديل دم (حديثي الولادة) | MULTI | NULL | NULL | TRUE |
(For INR>1.5 threshold, implementation may store numeric threshold and operator separately.)
Data Governance
- Owner: Transfusion Committee Chair
- Approval process:
- Proposed by clinical departments or Medical Director
- Reviewed and approved by Transfusion Committee
- Mapped to internal guidelines and audit rules
- Update frequency: Annual or on guideline change
- Change notification:
- Communicated to ordering clinicians
- Incorporated into order set templates and CDS alerts
Validation Rules
component_categoryin {RBC,PLATELET,PLASMA,CRYO,WHOLE,MULTI}- If
requires_documented_lab= TRUE then system must enforce presence of relevant lab result within configurable time window (e.g., 24h) indication_codeunique and stable (no reuse)
Configuration Parameters
Module Configuration Matrix
| Parameter | Type | Default | Description | Governance |
|---|---|---|---|---|
| max_results_per_search | Integer | 50 | Max donor/patient/component records returned in search screens | System Admin |
| type_screen_validity_hours | Integer | 72 | Validity period for type & screen results before re-sample required | Blood Bank Medical Director |
| crossmatch_validity_hours | Integer | 72 | Validity period for crossmatch before re-crossmatch required | Blood Bank Medical Director |
| emergency_release_alert_threshold_minutes | Integer | 30 | Time after which unreturned emergency-issued units trigger alert | Blood Bank Supervisor |
| inventory_low_stock_days_on_hand | Integer | 3 | Default minimum days-on-hand threshold for low stock alerts | Blood Bank Supervisor |
| platelet_low_stock_days_on_hand | Integer | 2 | Separate threshold for platelets (short shelf life) | Blood Bank Supervisor |
| expiry_warning_days_rbc | Integer | 5 | Days before RBC expiry to trigger warning | Blood Bank Supervisor |
| expiry_warning_days_platelet | Integer | 2 | Days before platelet expiry to trigger warning | Blood Bank Supervisor |
| expiry_warning_days_plasma | Integer | 30 | Days before plasma/cryoprecipitate expiry to trigger warning | Blood Bank Supervisor |
| max_transport_time_room_temp_minutes | Integer | 30 | Max time unit can be out of controlled storage before return/discard | Blood Bank Medical Director |
| require_double_verification_at_issue | Boolean | true | Enforce two-user verification when issuing units | Blood Bank Supervisor |
| require_double_verification_at_bedside | Boolean | true | Enforce two-nurse verification at bedside | Nursing Director + Medical Director |
| auto_quarantine_on_positive_infectious | Boolean | true | Automatically quarantine and block issue if any infectious test reactive | Blood Bank Medical Director |
| auto_discard_on_expiry | Boolean | false | If true, system auto-moves expired units to discard log nightly | Blood Bank Supervisor |
| moh_hemovigilance_auto_report | Boolean | true | Auto-generate MOH report for serious reactions | Blood Bank Medical Director |
| pdpl_data_retention_years | Integer | 30 | Retention period for donor/transfusion records per facility policy & UAE PDPL | Compliance Officer |
| audit_log_level | Enum(MINIMAL,STANDARD,DETAILED) |
STANDARD | Level of audit logging for blood bank actions | Compliance Officer + IT Security |
| allowed_mtp_overrides | Integer | 2 | Number of times MTP pack composition can be overridden per episode before escalation | Transfusion Committee |
| lis_infectious_result_timeout_minutes | Integer | 240 | Time to wait for LIS infectious results before escalation alert | Lab Director |
Data Load Procedures
1. Initial Load
Sources:
- ISBT 128 standard tables (ABO/Rh, component types, antigen/antibody nomenclature)
- UAE MOH blood safety and hemovigilance guidelines
- Facility transfusion policies and SOPs
- LIS dictionaries (infectious tests, result codes)
Process:
-
Design phase - Map required master data sets to source documents (ISBT, MOH, facility policies). - Define code systems and ensure no collision with existing enterprise codes.
-
Staging - Prepare CSV templates for each master data table:
ref_blood_group.csvref_blood_component_type.csvref_antibody_specificity.csvref_transfusion_reaction_type.csvref_donor_deferral_reason.csvref_infectious_test_panel.csvref_component_storage_requirement.csvref_crossmatch_rule.csvref_transfusion_indication.csv- Additional ref tables (status codes, reasons, etc.)
-
Import - Use admin UI or ETL scripts to import CSVs into staging tables. - Run validation routines (see below). - On success, promote to production reference tables.
-
Reconciliation - Cross-check:
- ABO/Rh codes with LIS blood group dictionary.
- Component types with existing blood bank labels and billing codes.
- Infectious test panel with LIS test catalogue.
- Resolve discrepancies before go-live.
2. Ongoing Synchronisation
- ISBT updates:
- Annual review of ISBT bulletins.
- Import new/updated component and antigen codes into staging.
-
Impact analysis, then controlled promotion.
-
MOH guideline changes:
- Compliance Officer monitors MOH circulars.
-
When blood safety or hemovigilance guidance changes:
- Update donor deferral reasons, infectious panel, reaction types as needed.
- Ensure MOH hemovigilance report mappings remain valid.
-
LIS integration:
- For infectious tests and results, maintain mapping tables between HIS codes and LIS codes.
-
Use HL7 ORU messages to validate that LIS result codes map to
ref_infectious_result. -
Facility policy changes:
- Transfusion Committee decisions trigger updates to:
- Transfusion indications
- Crossmatch rules
- MTP pack definitions
3. Import/Export Formats
- Import:
- Preferred: CSV with UTF-8 encoding (to support Arabic).
-
Optional: JSON via internal admin API for automated synchronisation.
-
Export:
- CSV/Excel for governance review and audits.
- JSON for integration with decision support tools or external registries.
Example CSV header for ref_blood_component_type:
component_type_code,isbt_product_code,display_name_en,display_name_ar,component_category,default_volume_ml,requires_irradiation_flag,is_apheresis,shelf_life_hours,storage_temp_min_c,storage_temp_max_c,billable_cpt_code,is_active,sort_order
4. Validation on Import
For each master data set, the import process must:
-
Structural validation - Required columns present. - Data types correct (e.g., numeric fields contain only numbers).
-
Referential validation - Foreign keys (e.g.,
component_type_codein storage requirements) exist in referenced tables. - Codes referenced in rules (e.g.,reactive_result_code) exist in their ref tables. -
Business rule validation - ABO/Rh combinations valid. - Shelf life and temperature ranges within clinically acceptable bounds. - Only one default rule per rule category (e.g., crossmatch type).
-
UAE regulatory validation - Infectious panel includes all MOH-mandated tests. - Hemovigilance reaction types cover all MOH reportable categories. - Donor deferral reasons align with MOH criteria.
-
Audit & PDPL - All changes logged with user, timestamp, and before/after values. - For deletions, system should prefer soft-delete (
is_active = FALSE) to preserve history in line with UAE PDPL and clinical traceability requirements.
This specification provides the master data and configuration foundation for the Blood Bank Management module, ensuring consistent coding, regulatory compliance in the UAE context, and safe, traceable transfusion practice.