add hw2
This commit is contained in:
131
labs/lab2/ЛР2_ClassDiagram_IS_Hospital.mmd
Normal file
131
labs/lab2/ЛР2_ClassDiagram_IS_Hospital.mmd
Normal 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
|
||||
Reference in New Issue
Block a user