የSmartERP መመሪያ የAshewa Technology Solutions መድረክ
ይህ ገጽ ገና ወደ አማርኛ አልተተረጎመም። የእንግሊዝኛው ጽሑፍ ቀርቧል።

Healthcare Clinical Data Model & Schema Architecture

Technical reference of underlying database models, table relationships, foreign keys, and relational schemas governing SmartERP Healthcare.

1. Overview & Business Value#

This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Healthcare Clinical Data Model & Schema Architecture within SmartERP.

Technical reference of underlying database models, table relationships, foreign keys, and relational schemas governing SmartERP Healthcare.

{screenshot:clinical-data-model-and-relations-overview-dashboard}

2. Prerequisites & Security Access Groups#

  • Required Modules: smarterp_healthcare, smarterp_clinical_core, smarterp_pharmacy
  • Security Groups:
    • Healthcare Receptionist (Technical ID: smarterp_healthcare.group_medical_receptionist)
    • Physician / Attending Doctor (Technical ID: smarterp_healthcare.group_medical_doctor)
    • Pharmacy Dispenser (Technical ID: smarterp_healthcare.group_medical_pharmacist)
  • Master Data Dependencies: Patient master registry (Medical Record Number - MRN), EFDA drug formulary, Ethiopian Ministry of Health (MoH) HMIS disease codes, and EHIS insurance tariffs.

3. Step-by-Step Configuration & Execution#

Step 1: Navigating to the Module Interface#

  1. Log into your SmartERP instance at https://smarterp.et/odoo.
  2. Open the main App Switcher (grid icon in the top-left corner).
  3. Select the Healthcare app icon.
  4. From the top navigation bar, open Healthcare → Clinical Dashboard → OPD Triage / Inpatient ADT / EMR / Pharmacy Dispensing.

{screenshot:clinical-data-model-and-relations-app-switcher-navigation}

Step 2: Creating and Parameterizing Records#

  1. Click the New button in the top-left control panel.
  2. Complete the mandatory fields in the record form:
    • Medical Record Number (MRN) (Mandatory): Unique national health identifier or generated hospital record code
    • Patient Demographics (Mandatory): Full legal name, gender, date of birth, and Kebele residential location
    • Encounter Type (Mandatory): Outpatient (OPD), Inpatient (IPD), Emergency, or Triage consultation
    • Attending Physician (Mandatory): Licensed healthcare practitioner responsible for clinical encounter
  3. Configure optional operational parameters and localized tags as required:
    • Insurance Provider & Policy (Optional): EHIS CBHI/SHI policy or corporate credit contract
    • Triage Vital Signs (Optional): Blood pressure, pulse rate, respiratory rate, temperature, and SpO2
    • ICD-11 / HMIS Diagnosis Code (Optional): Standardized diagnosis category for statutory health reporting
  4. Click the Save icon in the control bar to commit the record.

{screenshot:clinical-data-model-and-relations-record-creation-form}

Step 3: Validating and Processing Transactions#

  • State Transitions: Execute operational state progression (Reception / Triage → Consultation → Lab / Radiology → Prescription → Billing / Discharge).
  • Ledger & System Impact: Patient billing registers medical service revenue, debits patient or insurance accounts receivable, and debits pharmaceutical inventory upon prescription dispensing.
  • Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.

{screenshot:clinical-data-model-and-relations-transaction-processing-state}

Relational Entity Architecture#

SmartERP Healthcare connects patient master data, clinical encounters, diagnostic requests, and fiscal accounting models into an ACID-compliant PostgreSQL schema:

[health-data-model]

Core Model Specifications#

1. Patient Master: medical.patient#

Maintains demographic and master index records:

  • name (Char): Full patient name.
  • mrn (Char, unique, index): Master Record Number (CL-YYYY-NNNNNN).
  • dob (Date): Date of birth.
  • gender (Selection): male, female, other.
  • national_id (Char, index): Ethiopian National ID / Kebele card number.
  • partner_id (Many2one -> res.partner): Financial accounting entity.
  • blood_group (Selection): A+, A-, B+, B-, AB+, AB-, O+, O-.
  • allergy_ids (Many2many -> medical.allergy): Flagged active clinical allergies.

2. Clinical Encounter: medical.encounter#

Represents outpatient visits, emergency episodes, and admissions:

  • patient_id (Many2one -> medical.patient, ondelete="cascade").
  • encounter_type (Selection): opd, emergency, inpatient, teleconsult.
  • doctor_id (Many2one -> res.users): Attending physician.
  • triage_id (Many2one -> medical.triage): Linked triage assessment.
  • state (Selection): draft, triage, consultation, diagnostics, billing, done, cancelled.
  • diagnosis_ids (One2many -> medical.diagnosis.line): ICD-10 diagnostic lines.

3. Triage & Vitals: medical.triage#

Captures physiological observations and acuity:

  • systolic_bp (Integer), diastolic_bp (Integer).
  • heart_rate (Integer), respiratory_rate (Integer).
  • temperature (Float), spo2 (Float).
  • weight (Float), height (Float), bmi (Float, computed).
  • triage_zone (Selection): red, orange, yellow, green, blue.
  • news2_score (Integer, computed).

4. Prescription & Medication: medical.prescription.order#

Drives pharmacy fulfillment and lot tracking:

  • encounter_id (Many2one -> medical.encounter).
  • line_ids (One2many -> medical.prescription.line):
    • product_id (Many2one -> product.product): Pharmaceutical product.
    • dose (Float), uom_id (Many2one -> uom.uom).
    • frequency_id (Many2one -> medical.dosage.frequency).
    • duration_days (Integer).
    • lot_id (Many2one -> stock.lot): FEFO picked batch.
    • state (Selection): draft, prescribed, dispensed, cancelled.

5. Insurance & EHIS Claims: medical.insurance.claim#

Manages health insurance claims reconciliation:

  • patient_id (Many2one -> medical.patient).
  • insurance_partner_id (Many2one -> res.partner): EHIS or Corporate Insurer.
  • claim_batch_id (Many2one -> medical.claim.batch).
  • total_claimed_amount (Monetary), co_pay_amount (Monetary).
  • approved_amount (Monetary), deducted_amount (Monetary).
  • state (Selection): draft, submitted, approved, partially_paid, rejected, reconciled.

4. Advanced Configuration Points#

  • Automated Actions & Scheduled Tasks (Crons):
    • Healthcare: Generate daily MoH HMIS aggregate tally (smarterp_healthcare.ir_cron_hmis_sync): Runs daily at 23:00 to prepare DHIS2 health data summaries
    • Pharmacy: Flag expiring EFDA medicine batches (smarterp_healthcare.ir_cron_fefo_expiry): Runs daily at 06:00 to alert dispensers of lots expiring within 60 days
  • Custom Print Templates & Reports:
    • Official Patient Encounter Summary & Medical Certificate
    • Electronic Prescription Order Form (Model 19 Compliant)
    • Ethiopian Health Insurance Service (EHIS) Claim Dossier
    • Daily MoH Outpatient / Inpatient Morbidity Tally Sheet
  • Multi-Company Rules: Record-level security isolation under Company 1 (Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.

5. Comprehensive Troubleshooting Matrix#

Error Symptom / ExceptionProbable Root CauseCorrective Action / Resolution
Access Block: Confidential clinical diagnosis restrictedUser is not listed as the patient's attending physician or authorized consultant.Request explicit clinical consultation delegation from the department head.
Credit Ceiling Block: Corporate insurance expiredPatient corporate insurance policy limit exceeded or expired.Switch billing mode to private cash settlement or upload pre-authorization approval from the insurer.
FEFO Allocation Error: Expired medicine batch blockedDispenser selected medicine lot past statutory EFDA expiry date.Isolate expired lot to quarantine storage and dispense compliant active lot.
መጨረሻ የተሻሻለው: 2026-10-30