This commit is contained in:
nik
2025-10-03 22:27:28 +03:00
parent 829fad0e17
commit 871cf7e792
16520 changed files with 2967597 additions and 3 deletions

View File

@@ -0,0 +1,131 @@
%% ЛР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