131 lines
2.4 KiB
Plaintext
131 lines
2.4 KiB
Plaintext
%% ЛР2 — Диаграмма классов (ИС регистрации пациента в больнице)
|
||
classDiagram
|
||
class User {
|
||
+id: UUID
|
||
+login: string
|
||
+passwordHash: string
|
||
+fullName: string
|
||
+role: Role
|
||
}
|
||
class Registrar
|
||
class Doctor {
|
||
+specialty: string
|
||
}
|
||
class HeadOfDepartment
|
||
class Admin
|
||
User <|-- Registrar
|
||
User <|-- Doctor
|
||
User <|-- HeadOfDepartment
|
||
User <|-- Admin
|
||
|
||
class Patient {
|
||
+id: UUID
|
||
+fullName: string
|
||
+birthDate: date
|
||
+sex: string
|
||
+phone: string
|
||
+policyNumber: string
|
||
}
|
||
|
||
class Department {
|
||
+id: UUID
|
||
+name: string
|
||
}
|
||
|
||
class Admission {
|
||
+id: UUID
|
||
+admitDate: datetime
|
||
+dischargeDate: datetime
|
||
+status: AdmissionStatus
|
||
}
|
||
|
||
class Appointment {
|
||
+id: UUID
|
||
+dateTime: datetime
|
||
+status: ApptStatus
|
||
}
|
||
|
||
class MedicalRecord {
|
||
+id: UUID
|
||
+createdAt: datetime
|
||
}
|
||
|
||
class Diagnosis {
|
||
+code: string
|
||
+name: string
|
||
+notes: string
|
||
}
|
||
|
||
class TreatmentPlan {
|
||
+id: UUID
|
||
+createdAt: datetime
|
||
+notes: string
|
||
}
|
||
|
||
class Prescription {
|
||
+id: UUID
|
||
+drugName: string
|
||
+dosage: string
|
||
+schedule: string
|
||
}
|
||
|
||
class Procedure {
|
||
+id: UUID
|
||
+name: string
|
||
+dateTime: datetime
|
||
+result: string
|
||
}
|
||
|
||
class Invoice {
|
||
+id: UUID
|
||
+issueDate: date
|
||
+total: money
|
||
+status: InvoiceStatus
|
||
}
|
||
|
||
class InvoiceItem {
|
||
+name: string
|
||
+qty: int
|
||
+price: money
|
||
+amount(): money
|
||
}
|
||
|
||
class Payment {
|
||
+id: UUID
|
||
+dateTime: datetime
|
||
+amount: money
|
||
+method: PayMethod
|
||
}
|
||
|
||
class Report {
|
||
+id: UUID
|
||
+title: string
|
||
+periodStart: date
|
||
+periodEnd: date
|
||
+generatedAt: datetime
|
||
}
|
||
|
||
%% Associations & multiplicities
|
||
Patient "1" --> "0..*" Appointment
|
||
Doctor "1" --> "0..*" Appointment
|
||
Appointment "*" --> "0..1" Diagnosis
|
||
|
||
Patient "1" --> "1" MedicalRecord
|
||
MedicalRecord "1" --> "0..*" Diagnosis
|
||
MedicalRecord "1" --> "0..*" TreatmentPlan
|
||
TreatmentPlan "1" --> "0..*" Prescription
|
||
TreatmentPlan "1" --> "0..*" Procedure
|
||
|
||
Registrar "1" --> "0..*" Admission
|
||
Patient "1" --> "0..*" Admission
|
||
Department "1" --> "0..*" Admission
|
||
Admission "1" --> "0..1" TreatmentPlan
|
||
|
||
Invoice "1" --> "1..*" InvoiceItem
|
||
Patient "1" --> "0..*" Invoice
|
||
Admission "0..1" --> "0..*" Invoice
|
||
|
||
Invoice "1" --> "0..*" Payment
|
||
|
||
HeadOfDepartment "1" --> "0..*" Report
|
||
Department "1" --> "0..*" Report |