Skip to content

Latest commit

 

History

History
102 lines (90 loc) · 2.05 KB

File metadata and controls

102 lines (90 loc) · 2.05 KB
classDiagram
    %% Core Users
    class User {
        +String id
        +String email
        +String username
        +String name
        +String password
        +register()
        +login()
        +bookAppointment()
        +uploadReport()
    }

    class Doctor {
        +String doctorId
        +String name
        +String username
        +String specialist
        +Int experience
        +String email
        +String password
        +manageSlots()
        +prescribeMedicine()
        +viewPatientReports()
    }

    class Admin {
        +String adminId
        +String username
        +String password
        +manageUsers()
        +viewStats()
    }

    %% Core Entities
    class Appointment {
        +String id
        +String date
        +String time
        +String patientName
        +String status
        +String userId
        +String doctorId
        +String timeSlotId
    }

    class TimeSlot {
        +String id
        +String date
        +String time
        +String status
        +String doctorId
    }

    class Medicine {
        +String medId
        +String medName
        +String description
        +String dose
        +String frequency
        +DateTime startDate
        +DateTime endDate
        +String userId
        +String doctorId
    }

    class Report {
        +String reportId
        +String reportName
        +String reportUrl
        +DateTime date
        +String userId
        +String doctorId
    }

    class CancerType {
        +String cancerId
        +String name
        +Int stage
        +String description
        +String symptoms
        +String treatments
        +String userId
    }

    %% Relationships
    User "1" --> "*" Appointment : books
    Doctor "1" --> "*" Appointment : manages
    
    Doctor "1" --> "*" TimeSlot : owns
    Appointment "1" --> "0..1" TimeSlot : reserves

    User "1" --> "*" Report : owns
    Doctor "1" --> "*" Report : reviews

    User "1" --> "*" Medicine : takes
    Doctor "1" --> "*" Medicine : prescribes

    User "1" --> "*" CancerType : has_condition
Loading