Pharmacy Information System Master Data & Configuration
Master Data Inventory
| ID | Data Set | Source | Approx. Records | Owner | Update Frequency | Approver |
|---|---|---|---|---|---|---|
| MD-PIS-001 | RxNorm Drug Database | NLM RxNorm (subset licensed for UAE use) | ~120,000 | Pharmacy Informatics | Monthly (aligned with RxNorm releases) | Chief Pharmacist |
| MD-PIS-002 | Facility Formulary | P&T Committee decisions + RxNorm/EDE mapping | ~3,000 | Chief Pharmacist | Quarterly (P&T); ad-hoc for safety alerts | P&T Committee |
| MD-PIS-003 | Drug Interaction Database | Commercial CDS vendor (e.g., First Databank, Medi-Span) or open-source | ~50,000 | Pharmacy Informatics | Monthly vendor update | Medication Safety Committee |
| MD-PIS-004 | Dose Range Check Rules | Clinical guidelines + manufacturer labeling | ~5,000 | Clinical Pharmacy Lead | Annual review; ad-hoc for safety alerts | Pharmacy & Therapeutics Committee |
| MD-PIS-005 | UAE MOH Controlled Substance Schedules | UAE MOH (Federal Law No. 14 of 1995 and amendments; Decree-Law 30/2021) | ~500 | Chief Pharmacist / Compliance Officer | As legislated | UAE MOH (external) + Facility Compliance Committee |
| MD-PIS-006 | Administration Routes | SNOMED CT / HL7 standard route codes | ~60 | Pharmacy Informatics | Rare; annual review | Clinical Informatics Lead |
| MD-PIS-007 | Dose Units | UCUM (Unified Code for Units of Measure) | ~50 | Pharmacy Informatics | Rare; annual review | Clinical Informatics Lead |
| MD-PIS-008 | Therapeutic Drug Classes | ATC classification | ~800 | Clinical Pharmacy | Annual | P&T Committee |
| MD-PIS-009 | IV Solution Base Products | Facility formulary | ~30 | IV Pharmacy Supervisor | With formulary changes | Chief Pharmacist |
| MD-PIS-010 | Medication Frequencies | Facility-defined (QD, BID, TID, Q4H, PRN, etc.) | ~30 | Pharmacy Informatics | Rare; annual review | Medication Safety Committee |
| MD-PIS-011 | Pharmacy Locations | Facility layout (central, satellite, ADC locations) | ~20 | Pharmacy Director | On facility changes | Hospital Operations Committee |
| MD-PIS-012 | Vendor / Supplier Directory | Procurement contracts | ~50 | Pharmacy Inventory Manager | On contract changes | Procurement Committee |
| MD-PIS-013 | NABIDH/Malaffi Medication & Facility Codes | DHA/DOH HIE specifications | <1,000 | IT / Integration Team | On HIE spec changes | IT Director |
| MD-PIS-014 | Antimicrobial Stewardship Rules | Local guidelines + international best practice | ~300 | Antimicrobial Stewardship Pharmacist | Quarterly | Antimicrobial Stewardship Committee |
| MD-PIS-015 | Compounding Recipes (IV & Non-Sterile) | Internal protocols + manufacturer guidance | ~400 | IV Pharmacist | Annual; ad-hoc for new products | Pharmacy Supervisor |
| MD-PIS-016 | Controlled Substance Transaction Reasons | Internal policy aligned with MOH | ~30 | Pharmacy Supervisor | Rare | Compliance Officer |
| MD-PIS-017 | Inventory Transaction Types | Internal inventory policy | ~20 | Pharmacy Inventory Manager | Rare | Pharmacy Director |
| MD-PIS-018 | Medication Administration Status Codes | Internal eMAR configuration | ~20 | Nursing Informatics | Rare | Nursing Director + Pharmacy Director |
Note: Patients, providers, encounters, facilities, departments, users, payers are shared entities and not redefined here; they are referenced via foreign keys as per module brief.
Setup Sequence
Dependency Diagram
Recommended Load Order
-
Foundational clinical terminology - MD-PIS-006: Administration Routes
- MD-PIS-007: Dose Units
- MD-PIS-008: Therapeutic Drug Classes -
Regulatory & external mappings - MD-PIS-005: UAE MOH Controlled Substance Schedules
- MD-PIS-013: NABIDH/Malaffi Medication & Facility Codes -
Medication master - MD-PIS-001: RxNorm Drug Database (subset relevant to facility)
-
Formulary & clinical rules - MD-PIS-002: Facility Formulary
- MD-PIS-003: Drug Interaction Database (mapped to RxNorm)
- MD-PIS-004: Dose Range Check Rules
- MD-PIS-014: Antimicrobial Stewardship Rules -
IV & compounding - MD-PIS-009: IV Solution Base Products
- MD-PIS-015: Compounding Recipes -
Workflow configuration - MD-PIS-010: Medication Frequencies
- MD-PIS-018: Medication Administration Status Codes -
Inventory & logistics - MD-PIS-011: Pharmacy Locations
- MD-PIS-017: Inventory Transaction Types
- MD-PIS-016: Controlled Substance Transaction Reasons
- MD-PIS-012: Vendor / Supplier Directory -
Go-live readiness - Validate all mappings (RxNorm ↔ formulary ↔ MOH schedules ↔ NABIDH/Malaffi codes)
- Run test scenarios for inpatient, outpatient, IV, controlled substances, and stewardship workflows.
Master Data Specifications
Below, each data set includes purpose, schema, sample data, governance, and validation rules. All tables should support bilingual display where user-facing (English/Arabic) and be UTF-8 encoded to comply with UAE bilingual requirements.
MD-PIS-001: RxNorm Drug Database
Purpose
Canonical medication vocabulary used across PIS for:
- Linking CPOE orders to dispensing and administration
- Driving drug interaction checks, dose range rules, and stewardship
- Mapping to UAE MOH controlled schedules and HIE (NABIDH/Malaffi) codes
Typically stored in a central terminology schema; PIS references it via drug_code_rxnorm.
Logical Schema (PIS-facing subset)
| Field | Type | Required | Description |
|---|---|---|---|
| rxnorm_code | VARCHAR(20) | YES | RxNorm Concept Unique Identifier (RxCUI); primary key in PIS context |
| generic_name_en | VARCHAR(255) | YES | Generic drug name (English) |
| generic_name_ar | VARCHAR(255) | NO | Generic drug name (Arabic) |
| brand_name_en | VARCHAR(255) | NO | Common brand name (English) |
| brand_name_ar | VARCHAR(255) | NO | Common brand name (Arabic) |
| dosage_form_en | VARCHAR(100) | YES | Dosage form (tablet, capsule, injection, etc.) |
| dosage_form_ar | VARCHAR(100) | NO | Dosage form (Arabic) |
| strength | VARCHAR(100) | YES | Human-readable strength (e.g., 500 mg) |
| atc_code | VARCHAR(10) | NO | ATC therapeutic class code (link to MD-PIS-008) |
| is_active | BOOLEAN | YES | Whether the RxNorm concept is active/usable |
| effective_date | DATE | YES | Date this record became effective in the facility |
| retired_date | DATE | NO | Date this record was retired (if applicable) |
Sample Data
| rxnorm_code | generic_name_en | generic_name_ar | brand_name_en | dosage_form_en | strength | atc_code | is_active |
|---|---|---|---|---|---|---|---|
| 617310 | Atorvastatin | أتورفاستاتين | Lipitor | Tablet | 20 mg | C10AA05 | TRUE |
| 314076 | Lisinopril | ليسينوبريل | Zestril | Tablet | 10 mg | C09AA03 | TRUE |
| 261106 | Tramadol | ترامادول | Tramal | Capsule | 50 mg | N02AX02 | TRUE |
| 3322 | Diazepam | ديازيبام | Valium | Tablet | 5 mg | N05BA01 | TRUE |
| 7646 | Omeprazole | أوميبرازول | Losec | Capsule | 20 mg | A02BC01 | TRUE |
| 283742 | Esomeprazole | إيسوميبرازول | Nexium | Tablet | 40 mg | A02BC05 | TRUE |
| 198211 | Amoxicillin | أموكسيسيلين | Amoxil | Capsule | 500 mg | J01CA04 | TRUE |
| 723 | Insulin Regular | إنسولين عادي | Actrapid | Injection | 100 IU/mL | A10AB01 | TRUE |
Governance
- Owner: Pharmacy Informatics
- Approval: Chief Pharmacist for inclusion/exclusion of concepts
- Update Frequency: Monthly, aligned with RxNorm release schedule
- Change Process:
1. Download vendor/NLM RxNorm update (subset for UAE formulary).
2. Load into staging; run automated diff against production.
3. Present changes impacting formulary (new/retired codes) to P&T Committee if clinically relevant.
4. Apply approved changes to production; maintain mapping logs for audit.
5. Notify CPOE, LIS, and billing teams of any code changes affecting interfaces.
Validation Rules
rxnorm_codemust be unique and non-null.generic_name_enrequired;generic_name_arrecommended for patient-facing displays.is_active = TRUEimpliesretired_date IS NULL.atc_code, if populated, must exist in MD-PIS-008.- No orphaned references: any RxNorm used in formulary, orders, or inventory must exist and be active.
MD-PIS-002: Facility Formulary
Purpose
Defines which medications are orderable/dispensable at each facility, including formulary status, restrictions, and controlled substance flags. Drives:
- Order verification (WF-PIS-001)
- Therapeutic interchange suggestions
- Insurance/prior authorization checks
Schema
This master data maps into operational tables formulary and formulary_items.
Table: formulary (header)
| Field | Type | Required | Description |
|---|---|---|---|
| formulary_id | BIGINT | YES | Primary key |
| formulary_name_en | VARCHAR(200) | YES | Formulary name (English) |
| formulary_name_ar | VARCHAR(200) | NO | Formulary name (Arabic) |
| facility_id | BIGINT | YES | FK → facilities.facility_id |
| effective_date | DATE | YES | Date formulary becomes active |
| status | VARCHAR(20) | YES | active, inactive, draft |
| approved_by_user_id | BIGINT | YES | FK → users.user_id (P&T chair or Chief Pharmacist) |
| approval_datetime | TIMESTAMP | YES | Approval timestamp |
Table: formulary_items
| Field | Type | Required | Description |
|---|---|---|---|
| item_id | BIGINT | YES | Primary key |
| formulary_id | BIGINT | YES | FK → formulary.formulary_id |
| rxnorm_code | VARCHAR(20) | YES | FK → MD-PIS-001 (rxnorm_code) |
| drug_name_en | VARCHAR(255) | YES | Display name (English) |
| drug_name_ar | VARCHAR(255) | NO | Display name (Arabic) |
| generic_name_en | VARCHAR(255) | YES | Generic name (English) |
| formulary_status | VARCHAR(20) | YES | on_formulary, non_formulary, restricted, do_not_use |
| restriction_type | VARCHAR(100) | NO | e.g., ID-approval, ICU-only, step-therapy |
| therapeutic_class_code | VARCHAR(10) | NO | FK → MD-PIS-008 (ATC code) |
| therapeutic_alternative_rxnorm | VARCHAR(20) | NO | FK → rxnorm_code (preferred alternative) |
| requires_prior_auth | BOOLEAN | YES | Insurance prior authorization required |
| is_controlled | BOOLEAN | YES | Controlled substance flag |
| controlled_schedule_code | VARCHAR(20) | NO | FK → MD-PIS-005 |
| max_daily_dose | DECIMAL(12,4) | NO | Maximum recommended daily dose (for CDS) |
| max_daily_dose_unit | VARCHAR(20) | NO | FK → MD-PIS-007 |
| is_high_alert | BOOLEAN | YES | High-alert medication (ISMP-style) |
| is_look_alike_sound_alike | BOOLEAN | YES | LASA flag |
| active | BOOLEAN | YES | Item active in formulary |
Sample Data
formulary
| formulary_id | formulary_name_en | facility_id | effective_date | status | approved_by_user_id |
|---|---|---|---|---|---|
| 1 | Dubai General Hospital Adult Formulary | 101 | 2026-01-01 | active | 5001 |
| 2 | Dubai General Hospital Paediatric Formulary | 101 | 2026-01-01 | active | 5001 |
formulary_items
| item_id | formulary_id | rxnorm_code | drug_name_en | formulary_status | restriction_type | therapeutic_class_code | requires_prior_auth | is_controlled | controlled_schedule_code | is_high_alert |
|---|---|---|---|---|---|---|---|---|---|---|
| 1001 | 1 | 617310 | Atorvastatin 20 mg tablet | on_formulary | NULL | C10AA05 | FALSE | FALSE | NULL | FALSE |
| 1002 | 1 | 261106 | Tramadol 50 mg capsule | on_formulary | max 3 days | N02AX02 | FALSE | TRUE | S2 | TRUE |
| 1003 | 1 | 3322 | Diazepam 5 mg tablet | restricted | psychiatry-only | N05BA01 | TRUE | TRUE | S6 | TRUE |
| 1004 | 1 | 7646 | Omeprazole 20 mg capsule | on_formulary | step-therapy (after H2 blocker) | A02BC01 | FALSE | FALSE | NULL | FALSE |
| 1005 | 1 | 283742 | Esomeprazole 40 mg tablet | non_formulary | use omeprazole unless justified | A02BC05 | TRUE | FALSE | NULL | FALSE |
| 1006 | 1 | 198211 | Amoxicillin 500 mg capsule | on_formulary | NULL | J01CA04 | FALSE | FALSE | NULL | FALSE |
Governance
- Owner: Chief Pharmacist
- Approval: Pharmacy & Therapeutics (P&T) Committee
- Update Frequency: Quarterly P&T meetings; ad-hoc for safety alerts or MOH directives
- Change Process:
1. Clinician or department submits formulary change request.
2. Clinical and financial impact assessment by pharmacy.
3. P&T Committee review and decision.
4. Pharmacy Informatics updatesformularyandformulary_itemsin test, then production.
5. Notify CPOE, billing, and inventory teams; update training materials.
Validation Rules
rxnorm_codemust exist and be active in MD-PIS-001.- If
is_controlled = TRUE,controlled_schedule_codemust be populated and valid (MD-PIS-005). therapeutic_class_code, if populated, must exist in MD-PIS-008.formulary_statuslimited to controlled list;do_not_useitems must not be orderable.- Only one active formulary record per facility and formulary type (adult/paediatric) at a time.
MD-PIS-003: Drug Interaction Database
Purpose
Knowledge base of drug–drug interactions used by CDS in order verification (WF-PIS-001, WF-PIS-003). Typically sourced from a commercial vendor; stored in drug_interactions table.
Schema: drug_interactions
| Field | Type | Required | Description |
|---|---|---|---|
| interaction_id | BIGINT | YES | Primary key |
| drug_a_rxnorm | VARCHAR(20) | YES | FK → MD-PIS-001 |
| drug_b_rxnorm | VARCHAR(20) | YES | FK → MD-PIS-001 |
| severity | VARCHAR(20) | YES | contraindicated, major, moderate, minor |
| description_en | VARCHAR(1000) | YES | Interaction description (English) |
| description_ar | VARCHAR(1000) | NO | Interaction description (Arabic) |
| clinical_significance_en | VARCHAR(1000) | YES | Clinical impact summary |
| recommendation_en | VARCHAR(1000) | YES | Recommended action (avoid, monitor, adjust dose) |
| evidence_level | VARCHAR(10) | YES | Vendor-specific evidence grade (e.g., A, B, C) |
| source | VARCHAR(100) | YES | Vendor name/version |
| last_reviewed_date | DATE | YES | Last clinical review date |
| active | BOOLEAN | YES | Whether rule is active |
Sample Data
| interaction_id | drug_a_rxnorm | drug_b_rxnorm | severity | description_en | recommendation_en | evidence_level | source |
|---|---|---|---|---|---|---|---|
| 1 | 617310 | 3322 | major | Atorvastatin + Diazepam may increase CNS depression. | Avoid combination or monitor for excessive sedation; consider lower doses. | B | FDB 2026.01 |
| 2 | 261106 | 3322 | major | Tramadol + Diazepam increases risk of respiratory depression. | Avoid co-prescribing where possible; if necessary, use lowest effective doses and monitor closely. | A | FDB 2026.01 |
| 3 | 617310 | 198211 | minor | Atorvastatin + Amoxicillin: no significant interaction expected. | No action needed. | C | FDB 2026.01 |
| 4 | 7646 | 198211 | moderate | Omeprazole may reduce absorption of some antibiotics. | Monitor clinical response; adjust antibiotic if inadequate response. | B | FDB 2026.01 |
| 5 | 723 | 617310 | major | Insulin + Atorvastatin may increase risk of hypoglycaemia in some patients. | Monitor blood glucose closely when starting or adjusting statin therapy. | C | FDB 2026.01 |
Governance
- Owner: Pharmacy Informatics
- Approval: Medication Safety Committee
- Update Frequency: Monthly vendor updates; quarterly alert fatigue review
- Change Process:
1. Import vendor update into staging.
2. Run analytics on override rates; propose suppression/tuning of low-value alerts.
3. Medication Safety Committee approves tuning changes.
4. Deploy to production; document changes for audit.
Validation Rules
drug_a_rxnormanddrug_b_rxnormmust exist in MD-PIS-001.- Enforce canonical ordering (e.g., lowest RxNorm code as
drug_a) to avoid duplicates. severitymust be from controlled list;active = FALSEused for suppressed rules (do not delete).- No self-interactions (
drug_a_rxnorm != drug_b_rxnorm).
MD-PIS-004: Dose Range Check Rules
Purpose
Defines age/weight/organ-function–based dosing limits used in CDS to prevent overdosing or underdosing during verification.
Schema: dose_range_rules
| Field | Type | Required | Description |
|---|---|---|---|
| rule_id | BIGINT | YES | Primary key |
| rxnorm_code | VARCHAR(20) | YES | FK → MD-PIS-001 |
| age_min_years | DECIMAL(4,1) | NO | Minimum age (years) for rule applicability |
| age_max_years | DECIMAL(4,1) | NO | Maximum age (years) |
| weight_min_kg | DECIMAL(6,2) | NO | Minimum weight (kg) |
| weight_max_kg | DECIMAL(6,2) | NO | Maximum weight (kg) |
| creatinine_clearance_min | DECIMAL(6,2) | NO | Minimum CrCl (mL/min) |
| creatinine_clearance_max | DECIMAL(6,2) | NO | Maximum CrCl (mL/min) |
| daily_dose_min | DECIMAL(12,4) | YES | Minimum recommended daily dose |
| daily_dose_max | DECIMAL(12,4) | YES | Maximum recommended daily dose |
| dose_unit | VARCHAR(20) | YES | FK → MD-PIS-007 (e.g., mg, mg/kg) |
| route_code | VARCHAR(20) | NO | FK → MD-PIS-006 |
| indication_en | VARCHAR(255) | NO | Indication (if rule is indication-specific) |
| severity | VARCHAR(20) | YES | hard_stop, soft_alert |
| last_reviewed_date | DATE | YES | Last clinical review date |
| active | BOOLEAN | YES | Rule active flag |
Sample Data
| rule_id | rxnorm_code | age_min_years | age_max_years | daily_dose_max | dose_unit | route_code | severity |
|---|---|---|---|---|---|---|---|
| 10001 | 617310 | 18.0 | 120.0 | 80.0000 | mg | PO | soft_alert |
| 10002 | 261106 | 18.0 | 65.0 | 400.0000 | mg | PO | hard_stop |
| 10003 | 261106 | 65.0 | 120.0 | 300.0000 | mg | PO | hard_stop |
| 10004 | 198211 | 0.5 | 12.0 | 90.0000 | mg/kg | PO | soft_alert |
| 10005 | 723 | 0.0 | 120.0 | 1.0000 | IU/kg | IV | hard_stop |
Governance
- Owner: Clinical Pharmacy Lead
- Approval: P&T Committee
- Update Frequency: Annual comprehensive review; ad-hoc for major guideline changes or safety alerts.
- Change Process:
1. Review new guidelines (e.g., international societies, manufacturer updates).
2. Propose rule changes; test in non-production with sample orders.
3. P&T approval; deploy to production.
4. Monitor alert overrides and adjust severity as needed.
Validation Rules
rxnorm_codemust exist in MD-PIS-001 and be on formulary.daily_dose_min <= daily_dose_max.- Age/weight/CrCl ranges must not overlap conflicting rules for same drug/route/indication without explicit design.
dose_unitmust exist in MD-PIS-007.
MD-PIS-005: UAE MOH Controlled Substance Schedules
Purpose
Represents UAE MOH controlled substance schedules (narcotic and psychotropic) used for:
- Controlled substance flagging in formulary
- Verification of prescriber authorization (WF-PIS-006)
- MOH reporting (INT-PIS-007)
Schema: moh_controlled_schedules
| Field | Type | Required | Description |
|---|---|---|---|
| schedule_code | VARCHAR(20) | YES | Primary key; e.g., S2, S6 |
| schedule_name_en | VARCHAR(200) | YES | Schedule name (English) |
| schedule_name_ar | VARCHAR(200) | NO | Schedule name (Arabic) |
| category_en | VARCHAR(100) | YES | Narcotic, Psychotropic, etc. |
| legal_reference | VARCHAR(255) | YES | e.g., Federal Law No. 14 of 1995 |
| prescribing_restrictions_en | VARCHAR(1000) | YES | Summary of prescriber restrictions |
| dispensing_restrictions_en | VARCHAR(1000) | YES | Summary of dispensing requirements |
| active | BOOLEAN | YES | Active flag |
| last_updated_date | DATE | YES | Last sync with MOH guidance |
Sample Data
| schedule_code | schedule_name_en | category_en | legal_reference | prescribing_restrictions_en |
|---|---|---|---|---|
| S1 | Schedule 1 Narcotic | Narcotic | Federal Law No. 14 of 1995 | Only MOH-authorised specialists; special prescription forms; limited duration. |
| S2 | Schedule 2 Narcotic | Narcotic | Federal Law No. 14 of 1995 | Consultants and specialists with MOH/DOH/DHA license; max 30 days supply. |
| S4 | Schedule 4 Psychotropic | Psychotropic | Federal Law No. 14 of 1995 | Licensed physicians; repeat prescriptions limited as per MOH circulars. |
| S6 | Schedule 6 Psychotropic | Psychotropic | Federal Law No. 14 of 1995 | Restricted to psychiatrists/neurologists; additional documentation required. |
| S7 | Schedule 7 Controlled | Controlled | Federal Law No. 14 of 1995 | Special reporting to MOH; storage in controlled vault. |
Governance
- Owner: Chief Pharmacist / Compliance Officer
- Approval: UAE MOH (external); internal Compliance Committee for implementation details.
- Update Frequency: As legislated (MOH circulars, decrees).
- Change Process:
1. Compliance Officer monitors MOH circulars and federal law updates.
2. Updatemoh_controlled_schedulesand map affected formulary items.
3. Communicate changes to prescribers and pharmacists; update policies and training.
4. Validate MOH reporting extracts.
Validation Rules
schedule_codeunique and non-null.- Any formulary item with
is_controlled = TRUEmust reference a validschedule_code. - Cannot deactivate a schedule if any active formulary item still references it (enforce via checks or workflow).
MD-PIS-006: Administration Routes
Purpose
Standardised medication administration routes used in orders, dispensing, and eMAR. Based on SNOMED CT / HL7 route codes.
Schema: administration_routes
| Field | Type | Required | Description |
|---|---|---|---|
| route_code | VARCHAR(20) | YES | Primary key (e.g., PO, IV) |
| display_name_en | VARCHAR(200) | YES | English display name |
| display_name_ar | VARCHAR(200) | NO | Arabic display name |
| snomed_code | VARCHAR(50) | YES | SNOMED CT route concept ID |
| abbreviation | VARCHAR(20) | NO | Common abbreviation |
| active | BOOLEAN | YES | Active flag |
| sort_order | INT | NO | For UI ordering |
Sample Data
| route_code | display_name_en | display_name_ar | snomed_code | abbreviation | active |
|---|---|---|---|---|---|
| PO | Oral | فموي | 26643006 | PO | TRUE |
| IV | Intravenous | وريدي | 47625008 | IV | TRUE |
| IM | Intramuscular | عضلي | 78421000 | IM | TRUE |
| SC | Subcutaneous | تحت الجلد | 34206005 | SC | TRUE |
| SL | Sublingual | تحت اللسان | 37839007 | SL | TRUE |
| TOP | Topical | موضعي | 6064005 | TOP | TRUE |
| INH | Inhalation | استنشاق | 18679011000001101 | INH | TRUE |
| PR | Rectal | شرجي | 37161004 | PR | TRUE |
Governance
- Owner: Pharmacy Informatics
- Approval: Clinical Informatics Lead
- Update Frequency: Rare; annual review or when SNOMED subset changes.
- Change Process:
1. Propose additions/changes based on new therapies.
2. Validate against SNOMED CT.
3. Update in test and validate with CPOE/eMAR teams.
4. Deploy to production.
Validation Rules
route_codeunique; cannot change once in use (use new code if needed).snomed_codemust be valid SNOMED CT concept.- Only
active = TRUEroutes should be selectable in UI.
MD-PIS-007: Dose Units
Purpose
Standard units of measure for dosing and inventory, based on UCUM. Used in orders, dose range rules, and inventory.
Schema: dose_units
| Field | Type | Required | Description |
|---|---|---|---|
| unit_code | VARCHAR(20) | YES | Primary key (UCUM code, e.g., mg, mg/kg) |
| display_name_en | VARCHAR(200) | YES | English display name |
| display_name_ar | VARCHAR(200) | NO | Arabic display name |
| ucum_code | VARCHAR(20) | YES | UCUM code (may equal unit_code) |
| unit_type | VARCHAR(50) | YES | mass, volume, unit, mass_per_kg, etc. |
| active | BOOLEAN | YES | Active flag |
Sample Data
| unit_code | display_name_en | display_name_ar | ucum_code | unit_type | active |
|---|---|---|---|---|---|
| mg | Milligram | مليغرام | mg | mass | TRUE |
| g | Gram | غرام | g | mass | TRUE |
| mcg | Microgram | ميكروغرام | ug | mass | TRUE |
| mL | Millilitre | مليلتر | mL | volume | TRUE |
| IU | International Unit | وحدة دولية | IU | unit | TRUE |
| mg/kg | Milligram per kilogram | مليغرام/كغ | mg/kg | mass_per_kg | TRUE |
| mcg/kg/min | Microgram per kilogram per minute | ميكروغرام/كغ/دقيقة | ug/kg/min | mass_per_kg | TRUE |
Governance
- Owner: Pharmacy Informatics
- Approval: Clinical Informatics Lead
- Update Frequency: Rare; annual review.
- Change Process: Controlled addition of new units; avoid removing units in use.
Validation Rules
unit_codeunique; must not be changed once referenced.ucum_codemust be valid UCUM.- Only
active = TRUEunits available for new orders.
MD-PIS-008: Therapeutic Drug Classes
Purpose
ATC-based classification of medications used for reporting, formulary management, and stewardship.
Schema: therapeutic_classes
| Field | Type | Required | Description |
|---|---|---|---|
| atc_code | VARCHAR(10) | YES | Primary key (e.g., C10AA05) |
| class_name_en | VARCHAR(255) | YES | English class name |
| class_name_ar | VARCHAR(255) | NO | Arabic class name |
| level | INT | YES | ATC level (1–5) |
| parent_atc_code | VARCHAR(10) | NO | FK → therapeutic_classes.atc_code (hierarchy) |
| active | BOOLEAN | YES | Active flag |
Sample Data
| atc_code | class_name_en | level | parent_atc_code |
|---|---|---|---|
| C | Cardiovascular system | 1 | NULL |
| C10 | Lipid modifying agents | 2 | C |
| C10AA | HMG CoA reductase inhibitors | 3 | C10 |
| C10AA05 | Atorvastatin | 5 | C10AA |
| J01 | Antibacterials for systemic use | 2 | J |
| J01CA | Penicillins with extended spectrum | 3 | J01 |
| J01CA04 | Amoxicillin | 5 | J01CA |
Governance
- Owner: Clinical Pharmacy
- Approval: P&T Committee
- Update Frequency: Annual; align with WHO ATC updates.
- Change Process: Import updated ATC list; map to RxNorm; review any reclassifications.
Validation Rules
atc_codeunique; hierarchical integrity (parent_atc_codemust exist if not null).- Any
therapeutic_class_codein formulary must exist and be active.
MD-PIS-009: IV Solution Base Products
Purpose
Defines standard IV base solutions used in compounding (WF-PIS-005) and IV admixture orders.
Schema: iv_base_products
| Field | Type | Required | Description |
|---|---|---|---|
| base_id | BIGINT | YES | Primary key |
| base_code | VARCHAR(50) | YES | Short code (e.g., NS_1000ML) |
| display_name_en | VARCHAR(200) | YES | English name (e.g., 0.9% Sodium Chloride 1000 mL) |
| display_name_ar | VARCHAR(200) | NO | Arabic name |
| volume_ml | INT | YES | Container volume in mL |
| rxnorm_code | VARCHAR(20) | NO | FK → MD-PIS-001 (if represented as RxNorm) |
| sterile | BOOLEAN | YES | Sterile product flag |
| active | BOOLEAN | YES | Active flag |
Sample Data
| base_id | base_code | display_name_en | volume_ml | sterile | active |
|---|---|---|---|---|---|
| 1 | NS_1000ML | 0.9% Sodium Chloride 1000 mL | 1000 | TRUE | TRUE |
| 2 | NS_500ML | 0.9% Sodium Chloride 500 mL | 500 | TRUE | TRUE |
| 3 | D5W_500ML | 5% Dextrose in Water 500 mL | 500 | TRUE | TRUE |
| 4 | RL_500ML | Ringer’s Lactate 500 mL | 500 | TRUE | TRUE |
| 5 | NS_100ML | 0.9% Sodium Chloride 100 mL minibag | 100 | TRUE | TRUE |
Governance
- Owner: IV Pharmacy Supervisor
- Approval: Chief Pharmacist
- Update Frequency: With formulary or supplier changes.
- Change Process: Add/remove base products as contracts or clinical practice changes; validate compounding recipes.
Validation Rules
base_codeunique.volume_ml > 0.- If
rxnorm_codepopulated, must exist in MD-PIS-001.
MD-PIS-010: Medication Frequencies
Purpose
Standard frequency codes used in orders and eMAR scheduling.
Schema: medication_frequencies
| Field | Type | Required | Description |
|---|---|---|---|
| frequency_code | VARCHAR(20) | YES | Primary key (e.g., QD, BID) |
| display_name_en | VARCHAR(200) | YES | English display name |
| display_name_ar | VARCHAR(200) | NO | Arabic display name |
| times_per_day | DECIMAL(6,2) | NO | Approximate administrations per day |
| interval_hours | DECIMAL(6,2) | NO | Interval between doses in hours |
| is_prn | BOOLEAN | YES | As-needed flag |
| requires_indication | BOOLEAN | YES | PRN indication required |
| active | BOOLEAN | YES | Active flag |
Sample Data
| frequency_code | display_name_en | display_name_ar | times_per_day | interval_hours | is_prn | requires_indication |
|---|---|---|---|---|---|---|
| QD | Once daily | مرة واحدة يوميًا | 1.00 | 24.00 | FALSE | FALSE |
| BID | Twice daily | مرتان يوميًا | 2.00 | 12.00 | FALSE | FALSE |
| TID | Three times daily | ثلاث مرات يوميًا | 3.00 | 8.00 | FALSE | FALSE |
| Q6H | Every 6 hours | كل 6 ساعات | 4.00 | 6.00 | FALSE | FALSE |
| Q8H | Every 8 hours | كل 8 ساعات | 3.00 | 8.00 | FALSE | FALSE |
| QHS | At bedtime | عند النوم | 1.00 | 24.00 | FALSE | FALSE |
| PRN | As needed | عند اللزوم | NULL | NULL | TRUE | TRUE |
| STAT | Immediately | حالاً | 1.00 | NULL | FALSE | FALSE |
Governance
- Owner: Pharmacy Informatics
- Approval: Medication Safety Committee
- Update Frequency: Rare; annual review.
- Change Process: Add new frequencies only after clinical review; avoid changing semantics of existing codes.
Validation Rules
frequency_codeunique.- If
is_prn = TRUE,requires_indication = TRUE. - Non-PRN frequencies should have
times_per_dayorinterval_hourspopulated.
MD-PIS-011: Pharmacy Locations
Purpose
Defines physical and logical pharmacy locations (central pharmacy, satellites, ADCs) used in inventory and dispensing workflows.
Schema: pharmacy_locations
| Field | Type | Required | Description |
|---|---|---|---|
| location_id | BIGINT | YES | Primary key |
| location_code | VARCHAR(50) | YES | Short code (e.g., PHARM_MAIN, ADC_ICU1) |
| display_name_en | VARCHAR(200) | YES | English name |
| display_name_ar | VARCHAR(200) | NO | Arabic name |
| facility_id | BIGINT | YES | FK → facilities.facility_id |
| department_id | BIGINT | NO | FK → departments.department_id |
| location_type | VARCHAR(50) | YES | central_pharmacy, satellite, adc, ward_store |
| is_controlled_vault | BOOLEAN | YES | Controlled substance vault flag |
| active | BOOLEAN | YES | Active flag |
Sample Data
| location_id | location_code | display_name_en | facility_id | location_type | is_controlled_vault |
|---|---|---|---|---|---|
| 1 | PHARM_MAIN | Main Pharmacy – Dubai General Hospital | 101 | central_pharmacy | TRUE |
| 2 | PHARM_OPD | Outpatient Pharmacy – Dubai General Hospital | 101 | satellite | FALSE |
| 3 | ADC_ICU1 | ICU ADC Cabinet 1 | 101 | adc | TRUE |
| 4 | ADC_ER | Emergency Department ADC | 101 | adc | TRUE |
| 5 | WARD_STORE_3A | Ward 3A Medication Store | 101 | ward_store | FALSE |
Governance
- Owner: Pharmacy Director
- Approval: Hospital Operations Committee
- Update Frequency: On facility layout changes or new ADC installations.
- Change Process: Coordinate with Facilities, Nursing, and IT; update inventory mappings and controlled substance workflows.
Validation Rules
location_codeunique.- If
is_controlled_vault = TRUE, location must meet MOH storage requirements (enforced via policy, not system). - Only
active = TRUElocations used for new inventory transactions.
MD-PIS-012: Vendor / Supplier Directory
Purpose
List of pharmaceutical vendors/suppliers used for purchasing and inventory reconciliation.
Schema: pharmacy_vendors
| Field | Type | Required | Description |
|---|---|---|---|
| vendor_id | BIGINT | YES | Primary key |
| vendor_code | VARCHAR(50) | YES | Short code |
| vendor_name_en | VARCHAR(255) | YES | English name |
| vendor_name_ar | VARCHAR(255) | NO | Arabic name |
| contact_phone | VARCHAR(30) | NO | Contact number (e.g., +971 4 XXX XXXX) |
| contact_email | VARCHAR(255) | NO | Contact email |
| address_en | VARCHAR(500) | NO | Address (English) |
| address_ar | VARCHAR(500) | NO | Address (Arabic) |
| active | BOOLEAN | YES | Active flag |
Sample Data
| vendor_id | vendor_code | vendor_name_en | contact_phone | address_en | active |
|---|---|---|---|---|---|
| 1 | GULF_PHARMA | Gulf Pharmaceutical Industries | +971 4 123 4567 | PO Box 12345, Dubai, UAE | TRUE |
| 2 | JULPHAR | Julphar Gulf Pharmaceutical | +971 7 222 3333 | PO Box 997, Ras Al Khaimah, UAE | TRUE |
| 3 | MNC_MED | MNC Medical Supplies LLC | +971 2 555 6677 | PO Box 54321, Abu Dhabi, UAE | TRUE |
| 4 | LOCAL_DIST | Dubai Local Distributor | +971 4 777 8899 | PO Box 67890, Dubai, UAE | TRUE |
Governance
- Owner: Pharmacy Inventory Manager
- Approval: Procurement Committee
- Update Frequency: On contract award/termination.
- Change Process: Align with procurement system; ensure vendor codes match finance/ERP.
Validation Rules
vendor_codeunique.- Only
active = TRUEvendors selectable for new purchase orders.
MD-PIS-013: NABIDH/Malaffi Medication & Facility Codes
Purpose
Mappings required to submit dispensing events and medication lists to Dubai’s NABIDH and Abu Dhabi’s Malaffi HIEs (INT-PIS-005/006).
Schema: hie_medication_mappings
| Field | Type | Required | Description |
|---|---|---|---|
| mapping_id | BIGINT | YES | Primary key |
| rxnorm_code | VARCHAR(20) | YES | FK → MD-PIS-001 |
| nabidh_med_code | VARCHAR(50) | NO | DHA NABIDH medication code |
| malaffi_med_code | VARCHAR(50) | NO | DOH Malaffi medication code |
| active | BOOLEAN | YES | Active flag |
Sample Data
| mapping_id | rxnorm_code | nabidh_med_code | malaffi_med_code | active |
|---|---|---|---|---|
| 1 | 617310 | DHA-MED-000123 | DOH-MED-ATV20 | TRUE |
| 2 | 261106 | DHA-MED-000456 | DOH-MED-TRM50 | TRUE |
| 3 | 198211 | DHA-MED-000789 | DOH-MED-AMX500 | TRUE |
Governance
- Owner: IT / Integration Team
- Approval: IT Director + Pharmacy Informatics
- Update Frequency: On HIE specification or formulary changes.
- Change Process: Coordinate with DHA/DOH mapping tables; test in pre-production HIE environment.
Validation Rules
rxnorm_codemust exist and be on formulary.- At least one of
nabidh_med_codeormalaffi_med_codemust be populated for facilities in Dubai/Abu Dhabi respectively.
MD-PIS-014: Antimicrobial Stewardship Rules
Purpose
Rules used to identify antimicrobial orders requiring stewardship review (WF-PIS-008) and to drive restrictions.
Schema: stewardship_rules
| Field | Type | Required | Description |
|---|---|---|---|
| rule_id | BIGINT | YES | Primary key |
| rxnorm_code | VARCHAR(20) | YES | FK → MD-PIS-001 |
| rule_type | VARCHAR(50) | YES | restricted_agent, duration_limit, iv_to_po, broad_spectrum |
| indication_en | VARCHAR(255) | NO | Indication (if specific) |
| max_duration_days | INT | NO | Maximum recommended duration |
| requires_id_approval | BOOLEAN | YES | Infectious Disease approval required |
| auto_review_after_hours | INT | NO | Hours after which order is queued for review |
| active | BOOLEAN | YES | Active flag |
Sample Data
| rule_id | rxnorm_code | rule_type | max_duration_days | requires_id_approval | auto_review_after_hours |
|---|---|---|---|---|---|
| 2001 | 123456 | restricted_agent | 14 | TRUE | 24 |
| 2002 | 198211 | duration_limit | 7 | FALSE | 72 |
| 2003 | 654321 | iv_to_po | NULL | FALSE | 48 |
(RxNorm codes 123456, 654321 represent broad-spectrum agents in sample.)
Governance
- Owner: Antimicrobial Stewardship Pharmacist
- Approval: Antimicrobial Stewardship Committee
- Update Frequency: Quarterly; ad-hoc for resistance trends.
- Change Process: Based on antibiogram and guidelines; update rules and communicate to prescribers.
Validation Rules
rxnorm_codemust exist and be on formulary.- If
rule_type = 'duration_limit',max_duration_daysrequired. - If
requires_id_approval = TRUE, workflow must enforce approval before dispensing.
MD-PIS-015: Compounding Recipes (IV & Non-Sterile)
Purpose
Standardised recipes for compounded preparations used in IV admixture and non-sterile compounding.
Schema: compounding_recipes
| Field | Type | Required | Description |
|---|---|---|---|
| recipe_id | BIGINT | YES | Primary key |
| recipe_code | VARCHAR(50) | YES | Short code |
| display_name_en | VARCHAR(255) | YES | English name |
| display_name_ar | VARCHAR(255) | NO | Arabic name |
| base_id | BIGINT | NO | FK → iv_base_products.base_id (for IV) |
| final_volume_ml | INT | NO | Final volume |
| bud_hours | INT | YES | Beyond-use date in hours |
| route_code | VARCHAR(20) | YES | FK → MD-PIS-006 |
| active | BOOLEAN | YES | Active flag |
Schema: compounding_recipe_ingredients
| Field | Type | Required | Description |
|---|---|---|---|
| ingredient_id | BIGINT | YES | Primary key |
| recipe_id | BIGINT | YES | FK → compounding_recipes.recipe_id |
| rxnorm_code | VARCHAR(20) | YES | FK → MD-PIS-001 |
| amount | DECIMAL(12,4) | YES | Amount per final volume |
| dose_unit | VARCHAR(20) | YES | FK → MD-PIS-007 |
Sample Data
compounding_recipes
| recipe_id | recipe_code | display_name_en | base_id | final_volume_ml | bud_hours | route_code |
|---|---|---|---|---|---|---|
| 3001 | VANCO_IV | Vancomycin IV 1 g in 250 mL NS | 5 | 250 | 24 | IV |
| 3002 | TPN_ADULT | Adult TPN Standard | 1 | 2000 | 24 | IV |
compounding_recipe_ingredients
| ingredient_id | recipe_id | rxnorm_code | amount | dose_unit |
|---|---|---|---|---|
| 4001 | 3001 | 789012 | 1000.0000 | mg |
| 4002 | 3001 | 617310 | 0.0000 | mg |
| 4003 | 3002 | 345678 | 50.0000 | g |
Governance
- Owner: IV Pharmacist
- Approval: Pharmacy Supervisor + Medication Safety Committee (for high-risk preps)
- Update Frequency: Annual; ad-hoc for new therapies.
- Change Process: Validate calculations, stability, and BUD; test in compounding workflow.
Validation Rules
recipe_codeunique.- At least one ingredient per recipe.
bud_hours > 0.- Ingredients’
rxnorm_codemust exist and be on formulary.
MD-PIS-016: Controlled Substance Transaction Reasons
Purpose
Standardised reasons for controlled substance transactions in controlled_substance_log (WF-PIS-006).
Schema: cs_transaction_reasons
| Field | Type | Required | Description |
|---|---|---|---|
| reason_code | VARCHAR(20) | YES | Primary key |
| display_name_en | VARCHAR(200) | YES | English description |
| display_name_ar | VARCHAR(200) | NO | Arabic description |
| transaction_type | VARCHAR(20) | YES | dispense, return, waste, adjustment, transfer |
| active | BOOLEAN | YES | Active flag |
Sample Data
| reason_code | display_name_en | transaction_type |
|---|---|---|
| DISP_PATIENT | Dispensed to patient | dispense |
| RETURN_UNUSED | Returned unused dose | return |
| WASTE_PARTIAL | Partial dose wasted | waste |
| WASTE_EXPIRED | Expired medication destroyed | waste |
| ADJ_COUNT_ERROR | Inventory count correction | adjustment |
Governance
- Owner: Pharmacy Supervisor
- Approval: Compliance Officer
- Update Frequency: Rare; when policy changes.
Validation Rules
reason_codeunique.- Only
active = TRUEreasons selectable in UI.
MD-PIS-017: Inventory Transaction Types
Purpose
Standard transaction types for inventory_transactions (receipts, issues, adjustments).
Schema: inventory_transaction_types
| Field | Type | Required | Description |
|---|---|---|---|
| type_code | VARCHAR(20) | YES | Primary key |
| display_name_en | VARCHAR(200) | YES | English name |
| display_name_ar | VARCHAR(200) | NO | Arabic name |
| direction | VARCHAR(10) | YES | in, out, neutral |
| affects_cost | BOOLEAN | YES | Whether transaction affects inventory valuation |
| active | BOOLEAN | YES | Active flag |
Sample Data
| type_code | display_name_en | direction | affects_cost |
|---|---|---|---|
| RECEIPT | Purchase receipt | in | TRUE |
| ISSUE_PATIENT | Issue to patient | out | TRUE |
| ISSUE_WARD | Issue to ward stock | out | TRUE |
| ADJ_GAIN | Inventory gain adjustment | in | TRUE |
| ADJ_LOSS | Inventory loss adjustment | out | TRUE |
| TRANSFER | Transfer between locations | neutral | FALSE |
Governance
- Owner: Pharmacy Inventory Manager
- Approval: Pharmacy Director
- Update Frequency: Rare.
Validation Rules
type_codeunique.directionmust be one ofin,out,neutral.
MD-PIS-018: Medication Administration Status Codes
Purpose
Defines allowed statuses for eMAR entries (WF-PIS-004).
Schema: med_admin_status_codes
| Field | Type | Required | Description |
|---|---|---|---|
| status_code | VARCHAR(20) | YES | Primary key (e.g., GIVEN, HELD) |
| display_name_en | VARCHAR(200) | YES | English label |
| display_name_ar | VARCHAR(200) | NO | Arabic label |
| is_final | BOOLEAN | YES | Indicates final state (no further changes) |
| requires_reason | BOOLEAN | YES | Whether a reason must be documented |
| active | BOOLEAN | YES | Active flag |
Sample Data
| status_code | display_name_en | is_final | requires_reason |
|---|---|---|---|
| SCHEDULED | Scheduled | FALSE | FALSE |
| GIVEN | Given | TRUE | FALSE |
| PARTIAL | Partially given | TRUE | TRUE |
| HELD | Held | TRUE | TRUE |
| REFUSED | Patient refused | TRUE | TRUE |
| OMITTED | Omitted | TRUE | TRUE |
Governance
- Owner: Nursing Informatics
- Approval: Nursing Director + Pharmacy Director
- Update Frequency: Rare.
Validation Rules
status_codeunique.- If
requires_reason = TRUE, UI must enforce reason capture.
Configuration Parameters
Key system-level configuration for PIS master data and CDS behaviour.
| Parameter | Type | Default | Description | Governance |
|---|---|---|---|---|
| max_results_per_search | Integer | 50 | Max search results returned for drug/formulary searches. | System Admin (with Pharmacy Informatics) |
| default_formulary_id | Integer | 1 | Default formulary for new orders if multiple formularies exist. | Pharmacy Director |
| enable_non_formulary_ordering | Boolean | false | Allow prescribers to order non-formulary medications (with justification). | P&T Committee |
| cds_interaction_severity_threshold | String | moderate |
Minimum severity for interaction alerts (minor, moderate, major, contraindicated). |
Medication Safety Committee |
| cds_dose_check_enabled | Boolean | true | Enable dose range checking rules. | Pharmacy Director |
| stewardship_auto_review_hours | Integer | 72 | Default hours after which antimicrobial orders are queued for review if no specific rule. | Antimicrobial Stewardship Pharmacist |
| controlled_substance_dual_sign_required_schedules | String | S1,S2,S6 |
Comma-separated list of MOH schedules requiring dual-signature for dispensing/waste. | Compliance Officer |
| emar_barcode_required | Boolean | true | Require barcode scan before recording administration (except documented downtime). | Nursing Director |
| inventory_negative_stock_allowed | Boolean | false | Allow negative stock balances in inventory. | Pharmacy Inventory Manager |
| hie_submission_enabled_dubai | Boolean | true | Enable NABIDH medication submissions for Dubai facilities. | IT Director |
| hie_submission_enabled_auh | Boolean | true | Enable Malaffi medication submissions for Abu Dhabi facilities. | IT Director |
| pdpl_data_retention_years_pharmacy | Integer | 25 | Retention period for pharmacy records per UAE PDPL and local regulations. | Compliance Officer |
Data Load Procedures
1. Initial Load
a. External Terminology & Regulatory Data
-
RxNorm (MD-PIS-001)
- Source: NLM RxNorm (or vendor-curated subset).
- Format: Vendor-provided CSV/relational dump.
- Procedure:- Load into staging schema.
- Filter to molecules/products relevant to UAE formulary and EDE registrations.
- Populate PIS-facing tables (
rxnorm_code, names, forms, strengths).
-
ATC (MD-PIS-008)
- Source: WHO ATC CSV.
- Load intotherapeutic_classes; build hierarchy viaparent_atc_code. -
MOH Controlled Schedules (MD-PIS-005)
- Source: MOH circulars / official lists (often PDF/Excel).
- Convert to CSV; manually validate schedule codes and descriptions.
- Load intomoh_controlled_schedules. -
NABIDH/Malaffi Codes (MD-PIS-013)
- Source: DHA/DOH mapping files.
- Load intohie_medication_mappingsand facility mapping tables.
b. Facility-Specific Data
-
Formulary (MD-PIS-002)
- Source: Existing formulary spreadsheets + P&T decisions.
- Map existing drug identifiers to RxNorm; resolve any unmapped items.
- Import intoformularyandformulary_items. -
IV Base Products (MD-PIS-009) and Compounding Recipes (MD-PIS-015)
- Source: Current IV room worksheets and SOPs.
- Normalize into CSV templates; load into respective tables. -
Pharmacy Locations (MD-PIS-011) and Vendors (MD-PIS-012)
- Source: Facility layout and procurement systems.
- Align codes with ERP/finance where applicable. -
Frequencies, Routes, Units, Status Codes (MD-PIS-006, 007, 010, 018)
- Source: Standard lists agreed with Clinical/Nursing Informatics.
- Load from configuration CSVs.
2. Ongoing Synchronization
- RxNorm & ATC: Monthly/annual batch jobs to import new releases; run impact analysis on formulary and CDS.
- Drug Interaction DB & Dose Rules: Vendor-provided monthly updates; automated import with clinical review.
- MOH Schedules: Manual update upon MOH notification; no automated feed expected.
- HIE Mappings: Update when DHA/DOH publish new mapping tables; coordinate with integration team.
- Formulary: Changes driven by P&T decisions; managed via internal UI with audit trail.
3. Import/Export Formats
- Import:
- CSV (UTF-8) for most master data (formulary, routes, units, frequencies, vendors, locations).
- SQL scripts for terminology bulk loads (RxNorm, ATC).
- Export:
- CSV/Excel for reporting and P&T review.
- JSON via internal APIs for other modules (CPOE, EHR, Billing).
4. Validation on Import
For each import job:
-
Structural Validation
- Check required columns present.
- Validate data types (numeric, dates, booleans). -
Referential Integrity
- RxNorm codes must exist before loading formulary, rules, recipes.
- ATC codes must exist before linking to formulary.
- MOH schedule codes must exist before settingis_controlled. -
Business Rules
- No duplicate codes (routes, units, frequencies, vendors, locations).
- No overlapping dose rules for same drug/route/age range without explicit design.
- Controlled substances must have appropriate schedule and vault locations configured. -
UAE Regulatory Checks
- Ensure controlled substances mapped to correct MOH schedule.
- Ensure PDPL requirements for data minimisation and purpose limitation are met (no unnecessary personal data in master tables). -
Logging & Error Handling
- All import jobs must log: file name, timestamp, user, record counts, errors.
- Failed records written to error file with reason; must be corrected and re-imported.
This specification provides the master data and configuration foundation for the Pharmacy Information System, ensuring alignment with UAE regulatory requirements (MOH, DOH, DHA, UAE PDPL) and supporting safe, paperless pharmacy workflows across inpatient, outpatient, IV, inventory, and stewardship processes.