Skip to content

Latest commit

 

History

History
107 lines (99 loc) · 2.61 KB

ERD.md

File metadata and controls

107 lines (99 loc) · 2.61 KB
erDiagram
    patients ||--o{ appointments : "makes"
    doctors ||--o{ appointments : "handles"
    nurses ||--o{ appointments : "assists"
    nurses ||--o{ vital_signs : "records"
    appointments ||--o{ vital_signs : "has"
    appointments ||--o{ invoices : "generates"
    appointments ||--o{ referrals : "may have"
    appointments ||--o{ appointments : "follows up"

    patients {
        PK patient_id serial
        name varchar(100)
        phone varchar(20)
        email varchar(100)
        address text
        birth_date date
        medical_history text
        has_ic_card boolean
        ic_card_number varchar(20)
        created_at timestamp
        updated_at timestamp
    }

    doctors {
        PK doctor_id serial
        name varchar(100)
        specialization varchar(100)
        phone varchar(20)
        email varchar(100)
        department varchar(100)
        UK license_number varchar(50)
        created_at timestamp
        updated_at timestamp
    }

    nurses {
        PK nurse_id serial
        name varchar(100)
        phone varchar(20)
        email varchar(100)
        department varchar(100)
        UK license_number varchar(50)
        created_at timestamp
        updated_at timestamp
    }

    appointments {
        PK appointment_id serial
        FK patient_id integer
        FK doctor_id integer
        FK nurse_id integer
        appointment_time timestamp
        status enum
        completed_time timestamp
        diagnosis text
        appointment_type enum
        visit_type enum
        session enum
        is_emergency boolean
        FK follow_up_to integer
        created_at timestamp
        updated_at timestamp
    }

    vital_signs {
        PK vital_signs_id serial
        FK appointment_id integer
        FK nurse_id integer
        temperature decimal
        blood_pressure varchar
        pulse integer
        respiratory_rate integer
        measurement_time timestamp
        notes text
        created_at timestamp
        updated_at timestamp
    }

    invoices {
        PK invoice_id serial
        FK appointment_id integer
        registration_fee decimal
        medical_fee decimal
        total_amount decimal
        is_paid boolean
        payment_time timestamp
        payment_type enum
        created_at timestamp
        updated_at timestamp
    }

    referrals {
        PK referral_id serial
        FK appointment_id integer
        target_hospital varchar
        target_department varchar
        reason text
        referral_date timestamp
        status varchar
        notes text
        created_at timestamp
        updated_at timestamp
    }

Loading