summaryrefslogtreecommitdiff
path: root/assignments/final/module-2.puml
blob: ebb11252f9a019069c7bebd18f873f8b075139fe (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
@startuml
!define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>
!define primary_key(x) <b>x</b>
!define foreign_key(x) <color:purple>x</color>
hide methods
hide stereotypes

' entities
Table(accounts, "Account") {
  primary_key(id)
  name
  address
  birth_date
  phone_number
  pager_number
}

Table(beds, "Bed") {
  primary_key(id)
  foreign_key(care_centre_id)
  foreign_key(patient_id)
  bed_number
  room_number
}

Table(care_centres, "CareCentre") {
  primary_key(id)
  foreign_key(nurse_id)
  name
  location
}

Table(consumptions, "Consumption") {
  primary_key(id)
  foreign_key(patient_id)
  foreign_key(item_id)
  consumed_at
  quantity
  total_cost
}

Table(items, "Item") {
  primary_key(id)
  sku
  description
  unit_cost
}

Table(laboratories, "Laboratory") {
  primary_key(id)
  name
  location
}

Table(patients, "Patient") {
  primary_key(id)
  foreign_key(account_id)
  foreign_key(physician_id)
  foreign_key(referring_physician_id)
  type
  contacted_at
}

Table(hours_worked, "HoursWorked") {
  primary_key(id)
  foreign_key(care_centre_id)
  foreign_key(employee_id)
  started_at
  ended_at
}

Table(staff, "Staff") {
  primary_key(id)
  foreign_key(account_id)
  foreign_key(laboratory_id)
  type
  hired_at
}

Table(treatments, "Treatment") {
  primary_key(id)
  foreign_key(patient_id)
  foreign_key(physician_id)
  name
  number
  occurred_at
  results
}

Table(qualifications, "Qualification") {
  primary_key(id)
  foreign_key(staff_id)
  name
}

Table(visits, "Visit") {
  primary_key(id)
  foreign_key(patient_id)
  scheduled_at
  comments
}

beds --> care_centres
beds --> patients
consumptions --> items
consumptions --> patients
consumptions --> staff
hours_worked --> care_centres
hours_worked --> staff
patients --> accounts
patients --> staff
qualifications --> staff
staff --> accounts
staff --> laboratories
treatments --> patients
treatments --> staff
visits --> patients
@enduml