summaryrefslogtreecommitdiff
path: root/assignments/final/module-1.puml
blob: 2958d94475c51a9d24b1d784c9437fdcc72f6832 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
@startuml
hide circle
skinparam linetype ortho

entity "Account" as account {
  id : number << generated >>
  --
  name : text
  address : text
  birth_date : datetime
  phone_number : text
  pager_number : text
}

entity "Bed" as beds {
  id : number << generated >>
  --
  bed_number : number
  room_number : number
}

entity "CareCentre" as care_centres {
  id : number << generated >>
  --
  name : text
  location : text
}

entity "Consumption" as consumptions {
  id : number << generated >>
  --
  consumed_at : datetime
  quantity : integer
  total_cost : decimal
}

entity "HoursWorked" as hours_worked {
  id : number << generated >>
  --
  started_at : datetime
  ended_at : datetime
}

entity "Item" as items {
  id : number << generated >>
  --
  number : number
  description : text
  unit_cost : decimal
}

entity "Laboratory" as laboratories {
  id : number << generated >>
  --
  location : text
}

entity "Nurse" as nurses {
}

entity "Patient" as patients {
  id : number << generated >>
  --
  type : varchar
  contacted_at : datetime
}

entity "Physician" as physicians {
}

entity "OutPatient" as out_patients {
}

entity "Qualification" as qualifications {
  id : number << generated >>
  --
  name : varchar
}

entity "Resident" as residents {
}

entity "Staff" as staff {
  id : number << generated >>
  --
  type : varchar
  hired_at : datetime
}

entity "Technician" as technicians {
}

entity "Treatment" as treatments {
  id : number << generated >>
  --
  number : number
  name : text
  occurred_at : datetime
  results : text
}

entity "Visit" as visits {
  id : number << generated >>
  --
  comments : text
  scheduled_at : datetime
}

entity "Volunteer" as volunteers {
}

' relationships
' Zero or One   |o--
' Exactly One   ||--
' Zero or Many  }o--
' One or Many   }|--

beds ||--o| patients
beds }|--|| care_centres
care_centres ||--|{ hours_worked
care_centres ||--|| nurses
consumptions }o--|| items
consumptions }o--|| patients
laboratories ||--|{ staff
patients }o--|| physicians
qualifications }|--|| staff
staff ||--o{ hours_worked
treatments }o--|| patients
treatments }o--|| physicians
visits }|--|| patients

account ||--|| patients
account ||--|| staff
patients <|-- out_patients
patients <|-- residents
staff <|-- nurses
staff <|-- physicians
staff <|-- technicians
staff <|-- volunteers
@enduml