Professional Documents
Culture Documents
Gnuhealth PDF
Gnuhealth PDF
Gnuhealth PDF
Contents
1
Preface
1.1
Preface
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction
1
3
2.1
2.2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resources
3.1
3.2
Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
Mailing Lists
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5
IRC Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6
Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7
Google+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8
First Steps
4.1
Terminology
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Navigation Area
11
13
6.1
14
Time to Practice
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
7.1
15
7.2
16
Health Institutions
17
8.1
8.2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
8.3
18
8.3.1
18
Beds
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
i
17
ii
CONTENTS
8.3.2
Buildings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
8.3.3
Wards
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
8.3.4
Operating Rooms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
8.3.5
Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
Domiciliary Units
21
9.1
21
9.2
21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Individuals
10.1 The Individual
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
10.3.1 Demographics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11 Families
25
26
26
26
27
12 Health Professionals
28
28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
29
29
29
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 Medicaments
32
14 Prescriptions
33
33
33
34
15 Vital Records
15.1 About Vital Records
35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
35
36
39
16 Immunizations
40
40
41
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONTENTS
iii
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
42
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
44
17 Conguration
45
45
17.2 Diseases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
17.3 Genetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
17.4 Imaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
17.5 Procedures
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
17.6 Laboratory
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
17.7 Institutions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
17.9 Medicaments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
17.10Immunization Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
17.11Misc
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.11.1 Occupations
17.11.2 Ethnicities
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
47
47
17.11.6 Insurances
47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 Patient Management
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
49
. . . . . . . . . . . . . . . . . . . . . .
49
49
50
50
19 Patient Evaluations
52
52
52
53
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
54
54
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
iv
CONTENTS
20.1 Appointments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
55
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
56
20.2 Hospitalizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
21 Laboratory Management
59
59
59
60
60
60
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
21.6 Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
63
63
22 Financial Accounting
65
23 Analytic Accounting
66
67
24.1 Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
67
67
67
24.2 Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
68
68
69
25 Stock Management
72
72
72
72
25.4 Shipments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
73
73
73
25.5 Inventories
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26 Purchase Administration
74
75
CONTENTS
27 Access Management
76
76
27.2 Groups
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
77
77
27.3 Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
78
79
79
79
28 Socioeconomics
80
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
80
81
81
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 Lifestyle
82
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
82
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
84
84
85
31 Gynecology
86
86
86
87
87
87
87
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 Obstetrics
88
88
88
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
90
91
92
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
95
vi
CONTENTS
33.1 Introdcution to Genetics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
95
97
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34 Surgery
98
98
34.1.1 ICD-10-PCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
37 Inpatient Management
109
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
CONTENTS
vii
113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
118
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
40 Reporting
122
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
124
42 Epidemiology
125
43 Installation
126
. . . . . . . . . . . . . . . . . . . . . . . . 126
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
viii
CONTENTS
43.2.5 Downloading and Installing GNU Health
. . . . . . . . . . . . . . . . . . . . . . . . . . 128
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
43.4.3 Setting the Tryton Client Tabs Position for GNU Health . . . . . . . . . . . . . . . . . . . 130
43.4.4 Creating the GNU Health database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
43.5 Logging into the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
43.6 Installing the Default Modules
43.7 Creating a Company
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
44 Administration
136
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
137
46 Models
138
47 Sequences
139
48 Scheduler
140
49 Localization
141
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
50 Modules
144
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
146
52 Countries
147
53 WebDAV
148
54 Central Authentication
149
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
CONTENTS
ix
54.2 Installation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
54.2.1 Creating the Organization and Users on the LDAP Server . . . . . . . . . . . . . . . . . . 150
54.2.2 Conguring LDAP in GNU Health
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
152
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
155
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
157
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
. . . . . . . . . . . . . . . . . . . . . . . 158
159
161
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
CONTENTS
60 Troubleshooting
165
166
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
168
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
62.3 Authentication
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
170
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
. . . . . . . . . . . . . . . . . 171
. . . . . . . . . . . . . . . . . . 172
173
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
174
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
65.3 Option 2: Run GNU Health from CD/DVD or USB Stick . . . . . . . . . . . . . . . . . . . . . . 174
65.3.1 What to do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
65.3.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
CONTENTS
xi
65.3.3 Disadvantages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
. . . . . . . . . . . . . . . . . . . . . . . . . . 175
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
65.5 Option 4: Run GNU Health from Docker (Lightweight Containers) . . . . . . . . . . . . . . . . . 176
65.5.1 What to do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
65.5.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
65.5.3 Disadvantages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
177
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
. . . . . . . . . . . . . . . . . . . . . . . . . . . 179
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
67 The Live-CD
181
68 The Live-CD
182
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
184
186
70.1 ICD-10-PCS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
xii
CONTENTS
70.8 Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.9 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.10Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.11Party
70.12Patient
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.14Person . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.15Person Unique Identication Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.16Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.17PSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
70.18PUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
70.19QR Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
70.20Shipment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
70.21User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
71 FAQ
71.1 General Questions
189
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
191
73 Arch Linux
192
193
194
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
195
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
196
197
CONTENTS
xiii
79 Packaging Guidelines
198
80 Community Pages
199
Chapter 1
Preface
1.1 Preface
Regardless of the remarkable achievements in technology, thousands of children will die today from preventable
diseases. Infectious diseases such as malaria, chagas, AIDS, tuberculosis or infectious diarrhea destroy millions of
families in developing countries. Noncommunicable diseases including obesity, diabetes, heart disease, cancer or
major depressive syndrome hit both the North and the South, although with much higher prevalence and incidence
among the underprivileged sectors. Equally important are the alarming levels of child labor, human tracking and
sex slavery, family violence, child abuse or drug addiction. Complex, multi-etiological and anthropological issues
also exist that desperately need to be addressed.
We need a change of paradigm: We need to move away from the reactive Model of Disease, to the proactive Model
of Health . Many countries lack good public health, sometimes because they put the focus on the private sector;
sometimes because they give too much emphasis to technology. The most sophisticated technology will never beat
good Primary Health Care policies. Education, good nutrition, family aection, physical exercise, and sanitary housing conditions are the best and most sustainable public policies one can make. The concept of Integrative Medicine
is always present in GNU Health.
I started the GNU Health project in 2008 to improve Primary Health Care (PHC) in rural communities. Today
GNU Health has grown to a full Health and Hospital Information System, but the spirit remains the same. GNU
Health complements PHC, but never will replace the work of the mother, teacher, nurse, doctor or social worker.
What GNU Health does well is handling and processing large amounts of data. GNU Health manages demographics;
patient evaluations, hospitalizations, clinical history; genetic and hereditary risks; epidemiology and health center
resources (stock, nances, human resources, pharmacies, laboratory .. ), to name a few resources. Computing power
and data processing improve team work and optimize health promotion and disease prevention campaigns. For
example, GNU Health allows quick identication of new TBC or Dengue outbreaks by showing the index cases in a
map, in realtime. It can show the trends in infestation level of vectors that transmit Chagas disease in Domiciliary
Units; It can cross indicators in dierent communities, and relate Social determinants of Health in many conditions
(family violence, teenage pregnancy, child mortality, ... ).
GNU Health is a philosophy. Its putting Free Software as a public good, and as an integral part of Public Health.
Its about equity, community work and solidarity. Its about empowering the health professionals, their health centers
and their communities. Its about putting in action many aspects from the Alma-Ata Declaration.
GNU Health is about embracing System of Health paradigm, instead of the conventional system of disease that
many countries are inmersed today.
I hope you enjoy this book, and I count on you to join our growing community of academic institutions, NGOs,
public hospitals, private companies and Multilateral organizations. Free Software in Health Care is here to stay.
eHealth for all !
1
Luis Falcn, MD
GNU Solidario
Las Palmas de Gran Canaria, Spain
CHAPTER 1. PREFACE
Chapter 2
Introduction
2.1 About this Book
This book provides an introduction to GNU Health, The Free Health and Hospital Information System. Unlike
traditional books, this Wikibook will be updated with the latest stable GNU Health version. Health is dynamic by
nature, so is GNU Health.
Versioning: The book will include functionality from the upcoming version, several weeks before the stable release.
This means that some texts and pictures in the book belong to the new version.
The book is organized in the following sections:
Introduction to GNU Health
Functional guide: Philosophy behind the project and the core functionality. Provides the information on how
to approach a GNU Health implementation.
Modules in Detail: Information and instructions for specic modules. Each modules encompasses functionality
for a speciality (pediatrics, surgery, gynecology, socioeconomics ... )
Technical: Installation manual, administrators guide
If you are starting with GNU Health, you should read the book in a linear, sequential fashion. Its the best way to
understand the software, the project and how to implement it.
These areas involve a multi-disciplinary teams, with dierent responsibilities. For example, the individual demographics and status of the domiciliary units (DU) can be collected by social workers; the patient management by
3
CHAPTER 2. INTRODUCTION
health professionals ; the health center management by administrative personnel and accountants ; and the Information produced by the health center can be processed and managed by the Ministry of Health authorities.
This is just an example to show the importance of team work in GNU Health to get be best results in your community.
2.2.1
GNU Health is scalable in functionality, database size and transactional volume. For instance, you can install GNU
Health in a single doctor oce, or in country public hospitals network. Depending the type of deployment, you will
think about a centralized (single instance) vs a distributed installation.
Single GNU Health Instance: All the information resides in a single database, and it will be accessed via
network from dierent workstations from the same health center (local area network) or from dierent health
centers.
Distributed GNU Health instances: Under this scenario, each health center has its own database instance,
and information can be synchronized among health centers. This would be the case when you want to deploy
GNU Health in a network of hospitals, where the communication infrastructure is suboptimal.
Needless to say, choosing the deployment method requires careful study of resources (hardware, network, human
resources, security and access control, backup and disaster recovery policies, ... ) that goes beyond the scope of this
book. The two types of installations have pros and cons.
Unique Patient ID: In hand-written histories and in some electronic medical records, is not uncommon to nd
duplicate patients or duplicate medical records. This scenario is not only costly, but it may represent a risk to the
patient.
The other problem people face in many countries is data isolation. That is, health centers don't communicate to each
other, resulting in a dierent medical history on each center. In other words, in many health care systems today, you
are a dierent person and patient on each health center you visit.
GNU Health uses a unique person and patient identier, that does not allow the duplication of either individuals or patient medical history at the health center. It allows to export the information to the patient card, and
it provides the framework to synchronize data between health centers. For quick patient identication in dierent
health care network, the patient ID can be read, for example, with a QR reader, speeding up the registration process
and avoiding common human errors.
If you plan to use a distributed environment in your health network, you can nd more information about in the GNU
Health Synchronization Guide.
Chapter 3
Resources
3.1 More GNU Health Resources
Besides the GNU Health documentation on Wikibooks (which you are reading right now), there are several other
resources for the GNU Health community.
3.2 Website
The ocial GNU Health Website can be found at http://health.gnu.org
3.4 Twitter
For regular news updates we suggest that you follow GNU Health on Twitter at https://twitter.com/gnuhealth
CHAPTER 3. RESOURCES
#gnu-health-es: Spanish
You can use any IRC client or Free node web interface
3.7 Google+
The GNU Health community on Googles social networking platform Google+ can be found at https://plus.google.
com/communities/104024590265963842407
Chapter 4
First Steps
4.1 Terminology
Before we start the implementation process, it is important to get familiar with the terminology commonly used in
the rest of this book. At the beginning some words might be a bit puzzling, but with a bit of practice, you will nd
this terminology quite logical.
First you should know that GNU Health builds upon other software. Even if you are not a technical personal, it might
be helpful to understand that GNU Health is an extension to Tryton, a general enterprise resource planning system
(or ERP for short) for almost any type of company or organisation. Tryton is developed in the Python programming
language, and it stores all its data in a PostgreSQL database.
The following concepts are essential to understand how GNU Health works:
Party: In GNU Health, a party is an entity. An abstract concept to dene someone or something that has legal
7
Patients
Companies
Health professionals
Health centers
Model: The model denes each object in GNU Health. Models dene the database objects (tables). gnuhealth.patient
is a model example.
Field: The building blocks of the model. For example: age and sex are gnuhealth.patient elds.
View: Views are the representation of the model on the screen. Most models will have an individual form to
accept data into the model and display data out from the model.
Tree: The list format of the model. The tree view allow us to search select multiple records.
Form: The representation of the model on the screen that allows you to input data.
Table: The model representation at the database server. The model gnuhealth.patient is mapped in the table
gnuhealth_patient in postgreSQL.
Record: Each unique entry in a particular database table. For example Ana Betz is a record on the gnuhealth_patient
table in PostgreSQL.
Module: Modules are programs that provide specic functionality. GNU Health provides dierent modules
to meet your health center needs. Example of modules are Socioeconomics, Genetics and Surgery. You should
only install the modules that are actually needed for your center.
Report: Reports allows you to dynamically print documents in Open Document / LibreOce format (ODF),
Portable Document Format (PDF) or even directly to the printer.
Action: Actions are processes excecuted upon one or more selected records.
Notebook: A tabbed group of forms designed to make navigation easier.
4.1. TERMINOLOGY
10
Chapter 5
Navigation Area
Now is time to identify the components of the GNU Health Screen. In the following screenshot we have marked the
main sections :
Main Menu : We can navigate among the dierent functionalities. Conguration, Patients, Financial, ... You
can deactivate the main menu (useful in low resolution devices) by pressing Ctrl+T
Tabs : Tryton allows you to have multiple records open at the same time. The section Tabs of the screenshot
shows the current form.
Actions : Under the Tabs section you will nd dierent icons that act upon the current record. You can, for
instance, create a new record, generate a report, change the view, select related records associated to this patient
(appointments, lab tests... ).
Record form : This is where you see and input the information. Notice that you can have tabbed forms
(notebooks) in the lower half of the form, which allows quick and easy navigation. In this example some
of the tabs within the records are main, medication, diseases, surgeries, socioeconomics and gynecological
information. The upper side of this form is static, so the health professional has the most relevant information
about the patient always visible.
11
12
Chapter 6
14
Chapter 7
Individuals
Families
Domiciliary Units
15
16
There are many others models in the core module, but this subset will give you an idea of the concept. If you are not
a programmer, you don't really have to worry much about how GNU Health deals internally with dependencies and
inter-module communication. For example, if you want to install the pediatrics module health_pediatrics, it will
automatically mark the core module health for installation, as a dependency.
To learn more about GNU Health modules, please refer to the Modules chapter.
In this documentation, we will cover the functionality of the core module rst before exploring the possibilities of the
other modules.
7.2
If we want to be good in a Public Health system, the rst thing we need to do is knowing our population. As I say, we
need to deal with people before patients . Whenever possible, the health center should have a census, and the list of
domiciliary units (DU) and their conditions, at least of those habitants that are part of the operational sector covered
by the health center.
From a functional and implementation point of view, we should see the GNU Health core module objects as the rst
ones to be assessed. The process of collecting this information will get our health center involved with the community.
In the next chapters we will be covering how to setup a Domiciliary Unit (DU); an Individual; the habitants of a DU;
Families ; Operational Areas and Operational Sectors.
Once you have that information in place, you will be able to give a new attribute to the individual when she or he rst
come to your oce, the patient attribute. As you can see, there are precious information and actions that can be done
in Public Health before dealing with a single patient.
Chapter 8
Health Institutions
8.1 Introduction to Health Institutions
The Health Institution plays a central role in GNU Health. As a matter of fact, is the rst thing you will have to create
in the installation.
Since version 2.6, the health institution is a model. It is linked to the party model, but it has many other attributes.
17
18
The very rst health institution that you create is special because it is also your company. Please refer to the Create
a Company section in the Installation chapter for more details.
Health institutions can be accessed in the Health Institutions section.
Selecting the health institution related facilities is done from the main institution form.
A health institution can have multiple facilities and resources, such as buildings, wards, operating rooms, beds or
units.
The best way to access the health institution facilities is by clicking on the Relate button in the Institutions form as
shown in the screenshot. One of the benets of using related records from the institution form is that the related
facility will contain the parent center, optimizing data entry and minimizing human error.
8.3.1
Beds
Beds are the most basic facilities in a health institution. Creating a bed record for each physical bed available is
important for capacity planning and for nding a patient. Each bed belongs to a ward.
Conguring Beds
Bed records in GNU Health can be managed in the Health Conguration Institutions Beds section. For each
Bed record you need a corresponding Product Variant record (which stands for the individual bed) plus a Product
record (which stands for the bed category and denes its price).
Note: If you are not familiar with products in Tryton, there is more information about this concept in the chapter
Products and Services Management. But if you just want to congure some beds at this moment and don't care
about the details, then simply read on.
Conguring beds in GNU Health is a three step process:
1. For every category of beds, create a product record and enter the price the patient will be charged. Example:
2. For every bed available in your health institution, create a product variant record and check the Bed checkbox.
Every variant will need a code as an identier, but you are free to use any combination of characters and numbers to
match the numbering scheme in your institution. Example:
3. For every bed available in your health institution, create a bed record and assign it to the corresponding product
variant record. A bed record stores additional information about a bed like its status (free, reserved, occupied, ...)
or the ward it belongs to. If you skip this step you will not be able to assign a patient to a bed in the hospitalization
process!
8.3.2
Buildings
Buildings simply have a name and a code. At the moment you can not enter more information.
19
Conguring Buildings
Creating and editing buildings is straight forward. The only thing to keep in mind is that both the name and the code
of a building need to be unique within a given health institution.
8.3.3
Wards
Each ward belongs to one building (the physical location) and one unit (the organisational entity).
Conguring Wards
Conguring wards is staight forward. However, the Wards form allows you to enter a lot of details about a ward:
Name: The ward name is mandatory and must be unique within a health institution.
Building: Link to an existing building or create a new one.
Floor Number: Indicate the oor within a building.
Unit: Link to an existing unit or create a new one.
Number of beds: This eld is for information only. It does not reect the number of beds you have congured
for your health institution.
Gender: Indicate if a ward is gender specic. (If not, set it to Unisex which is the default value.)
Status: Indicate if a ward has capacity for more patients. (Choose between Beds available, Full, or Not
available.)
The wards form allows you to indicate some special features as well:
Telephone access
Air conditioning
Private bathroom
Guest sofa-bed
Television
Internet access
Refrigerator
Microwave
8.3.4
Operating Rooms
Each operating room belongs to one building (the physical location) and one unit (the organizational entity).
Conguring Operating Rooms
The conguration of operating rooms is straight forward. A name is mandatory and must be unique within a given
health institution. Assigning an operation room to a building and/or a unit is optional. Further information about the
operation room can be stored in the Extra Info eld.
8.3.5
Units
Units simply have a name and a code. At the moment you can not enter more information.
20
Conguring Units
Creating and editing units is straight forward. The only thing to keep in mind is that both the name and the code of
a unit need to be unique within a given health institution.
Chapter 9
Domiciliary Units
9.1 Introduction to Domiciliary Units
A Domiciliary Unit (DU) represents a human dwelling. It is composed of intra (domiciliary) and extra (peridomiciliary) spaces. The DU is a physical entity that denotes the place where one or more people live regularly.
Since it is a physical location, it can always be geo-referenced by latitude and longitude, and many times it will have an
associated address (street, ZIP code, city). This DU information should always be provided, since it is key determinant
of health. Diseases like dengue fever and Chagas disease are intimately related to the DU condition (see Neglected
Tropical Diseases for details).
22
OSM Map URL: The OpenStreetMap URL is created automatically from the coordinates or the DU address.
(If latitude and longitude are not provided, then the OSM Map URL will be generated based on the address
components. However, latitude and longitude will usually give you a more accurate reference.)
General Conditions: A summary of the living conditions. This eld should be lled in all the times, since its
one of the most descriptive about the DU.
Type of Dwelling: Single house, apartment, townhouse, ...
Infrastructure: Electricity, gas, potable water, sewers, ...
Operational Sector: The area that this DU belongs. Very important to know which operational area is responsible to take dierent health care actions (health promotion, healthcare area, ambulace action region, ...)
Members: In this section a list with all inhabitants of a DU is shown. They may be or may not be family
members. Each person should be associated to a DU.
Chapter 10
Individuals
10.1 The Individual
Its time to enter the essential unit of GNU Health, the person. We take the person as a unique individual, yet,
somebody that is part of a family, interacts with the community and makes up our society. This entity is so important
that its impossible to achieve good public health programs without information about the individuals. This concept
that might seem trivial, is very often overlooked.
We mentioned in the First Steps the concept of Party. A party is an abstract entity, which attributes will dierentiate
a health center from a person, or a person that is a doctor, a patient or both. The concept of party is extremely simple,
yet very powerful and versatile.
At this point is important to go back and refresh the Terminology used in GNU Health.
23
24
You will be presented with a Tree view (listing) of the parties in the system. Take a look at the screen shown in this
section. I have selected / Highlighted three parties. Ana Betz, Cameron Cordara and GNU Solidario Hospital.
They are all parties (entities), but their attributes make Ana a patient, Cameron a doctor and GNU Solidario Hospital
a Health Institution.
Of course, under this model, you can have, for instance, a health professional that is also a patients. Don't forget that
doctors are people :-)
To create a new record, click on the new record icon, or type Ctrl+N. You will be presented with the new party
form view.
In a multidisciplinary team, the following information is usually done by the administration oce, the front desk or
sometimes by the social workers.
In this example, we will focus on Ana Betz. Lets go over the main elds:
Name: This is a required eld, denoted by the blue background. Required elds must be entered otherwise
you won't be able to save the record.
Lastname: Enter the lastname as appears in the ID card. Some countries use only the fathers name, other use
a combination of the father and the mother.
Alias: Nickname (if any) of the person. Surprisingly enough, in many places around the world, people use
nicknames to refer a particular person, and sometimes they don't know the real name. If that person has an
alias / nickname, you should enter it on the system. It might be key to know about a missing person.
Party Attributes: At this point, set the Person checkbox. Just check this one. Don't enable any other at this
point.
Before going into the patient demographics. save your work. As a general rule, is important so save your work while
working on records, to avoid losing your unsaved data, specially in long records. To save the person, click on the
save this record icon or type Ctrl+S.
10.3.1
Demographics
The information entered in this section is very important at both individual and population level. The health professionals and authorities will have precious information for them to make good health programs and to assess the social
determinants of health.
Here you enter the person date of Social Security Number, birth, citizenship, sex, profession, the Domiciliary
Unit, education level and marital status, among others. Other models (eg, patient) modules (eg, socioeconomics)
will make extensive use of these eld. Most of the elds are self-explanatory and don't need to get into details. We'll
just make some tips about some of them.
PUID : This is the Person Unique Identier Number or equivalent issue by a specic country of region. It
can be empty, but once is entered, is unique to the person. The PUID is a key identier of the individual. If
there is a person that does not have a local PUID, set the Alternative ID checkbox and enter the information
there.
Alternative IDs : When you enable this checkbox, you will be able to enter new IDs, such as Passports, other
countries SSNs, etc... The person can have multiple IDs, and they should be registered whenever possible.
For example, it will facilitate contacting this person if she or he is from another country.For clarity sake, the
alternative IDs section is not shown unless the checkbox is set.
Unidentied : Check this box if the person has no ID at the moment of registration. This can be the case of
people that is brought to the health center in an accident settings. Once we gather the information at a later
time, we unset the checkbox and enter the ID.
Domiciliary Unit : This is a relational eld that points to the place where the person lives. This is the main
person address and should not be confused with the addresses of their relatives acquaintances that we will
describe next.
25
10.3.2
Contact Information
Click on the next tab (General) to enter the information this person contact information. The address can be
associated to a person or an institution. For example, we are showing the address of Caro Forte, she is Ana Betz
Kenpo Karate teacher, with the address of the Kenpo Karate school. Since the contact is associated to a physical
person (relational eld), you could easily get her teacher information opening the resource. This section also contains
the contact mechanisms of the person, such as email or phone number.
Chapter 11
Families
11.1 The Family Concept in GNU Health
Since GNU Health 2.0, the family object is a model that holds all the individuals that compose a family, from the
legal and/or genetic point of view. The family members don't necessarily share the same Domiciliary Unit.
A person can be part of several families at the same time. Consider the following situation:
Peter Stone is the son of Mattew Stone and Rosanna Pellegrino.
Peter marries Sandra Miller and has two children with her.
After being divorced, Peter marries Lucia Martinez, and they have another child.
So Peter Stone would be:
a son in the Stone-Pellegrino family
the husband in the Stone-Miller familiy
the husband in the Stone-Martinez familiy
The family model should only be used for one couple and their children, since things can become confusing otherwise.
However, the system does not prevent you from entering families with more than two generations.
27
Chapter 12
Health Professionals
12.1 The Health Professional Concept
The health professional is one of GNU Healths key components: Its used in appointments, patient evaluation, surgeries, lab tests, etc. This is why it is important to have them dened in your system before hand.
The health professional is a general concept: It covers physicians, nurses, biochemists, psychologists, and any other
occupation related to health sciences.
To dene or edit a new Health Professional, follow this path: Health Conguration Health Professionals
Health Professionals
The Main steps involved in dening a Health Professional are:
1. Select (or create) the related party
28
29
12.2.1
The health professional is a party with specic attributes, but is always a party. This abstract concept of party allow
us to be dierent entities at the same time. For example, a health professional can also be a patient; both entities
sharing the property of being a person. The party concept provides versatility and simplicity to GNU Health.
When you create the associated party from the Health Professional form, the Person and Health professional attributes
will be automatically set. At this point, you need to enter the Health Professional demographics, in the same way
as you have done when creating an individual. You might want to refresh the idea by glancing over the Individuals
section.
12.2.2
The Individual, when assigned the property of being a Health Professional, it has an extra - and required - eld. The
Internal User eld. This internal user is the user that the individual types in then logging into GNU Health. That
user allows to digitally sign documents, and to audit their actions.
Once you are done with the party, save the party record ( Ctrl + S ).
12.2.3
A health professional might have more than one specialty. In the Health Professional view, you can add all the
specialties related to this particular professional. Once you are done, save the record ( Ctrl + S ). This is important
30
Assigning a Main Specialty to the health professional from the list of this professional.
so the system links the party with the health professional record.
Finally, add the information related to the the professional:
Institution
Practitioner ID
Main Specialty
Extra information
31
Although these elds are not formally required, they are very important and should be entered in the system. Each
health professional must have these elds lled in whenever possible. For instance, the Main Specialty eld will be
used as a default value whenever the doctor is assigned an appointment, or when creating a new evaluation.
Chapter 13
Medicaments
32
Chapter 14
Prescriptions
14.1 About Prescriptions
Prescriptons can be found in the Health Prescriptions section of GNU Health. However, since in most cases you
only need to see the prescriptions of a specic patient, the recommended way is to open a Patient record and to switch
to Prescriptions using the Relate button.
34
Note: Only a fraction of these elds are visible in the list view, so make sure to open a Prescription Line in the form
you to have access to all elds.
Chapter 15
Vital Records
15.1 About Vital Records
Since version 2.8, GNU Health also serves as a Vital Record System, allowing to create and sign birth and death
certicates.
Alternatively, birth certicates can be managed via Health Demographics Birth certicates section.
A birth certicate stores the following information:
Person: The name of the newborn (link to a person record)
Date of Birth : By default, taken from the person (party) model.
Mother and Father (links to person records)
Institution: The health institution where the birth took place (or the health institution that certies a delivery at
home)
Code
Country and Subdivision: These elds will be automatically lled as default values, with the the country and
subdivision (such as province) of the institution.
Observations
If you create a birth certicate record it will have the Draft state by default. You can switch to the Signed state by
clicking the Sign button. You will be prompted to conrm that you want to sign the birth certicate; please note that
signing a birth certicate can not be undone. Signing a birth certicate will add the name of the certier (the health
professional) plus date and time of the signing process.
35
36
Main section:
Person: The name of the dead person (link to a person record)
Date: Date of Death, including hour and minute.
Place section:
Place: Details about where the person died (at home, at work, in a public place, in a health institution)
Details about the place
37
38
GNU Health : Signing a death certicate using digital signatures, with the Health cryptographic module - GNU Privacy Guard (GPG)
plugin
39
Chapter 16
Immunizations
GNU Health includes immunization functionality in the core module. This includes immunization schedules per
country and year, the vaccination process, and the person immunization history and status report, to name the main
aspects.
In GNU Health, vaccines are part of the medicament model, those that have set the vaccine attribute. GNU Health
includes as default the vaccines that are part of the WHO essential list of medicines module, but you can set up your
own set.
40
41
After you have the list of vaccines, you can create dierent immunization schedules. Each immunization schedule
has the following elds:
Code: Unique identier for the schedule
Country: The name of the country for this schedule
Year: The year of this immunization schedule
Active: This eld indicates whether this particular schedule is on use. Among other things, its taken into
account when checking the immunization status of the person.
Description: Short description of the schedule
Vaccines: This widget lists all the vaccines on the schedule, and the main attributes. The details for this model
will be explained in the next section.
16.2.1
As described above, each immunization schedule is composed of vaccines, which their own peculiarities. For each
vaccine, the following attributes apply:
Vaccine: The name of the vaccine
Scope: Recommendation status level . It can be systematic, recommended or limited to risk groups
Remarks: Additional information and for this vaccine
Dose: Dose or booster number
Age: Age of the person when should be applied
Time unit: Days, weeks, months or years
42
43
Administrative Information: Information related to the date, institution and to the health professional who
applied the vaccine. The Vaccination process has two states. Those are In Progress and Signed. Once the
immunization process has been signed by the health professional, the record becomes read-only.
We can check the Patient immunization status by executing the following report:
Health Patient (report) Immunization Status Report
The report will ask you for the specic schedule, and the result will show the person immunization status for that
specic schedule. Along with the patient information and the print date, the immunization report will show each
vaccine for the chosen schedule, its doses, age when they should be applied and the current status. Always verify and
double check the person immunization status against any other historical records the person may have.
44
Chapter 17
Conguration
17.1 The Conguration Section in GNU Health
In most databases and GNU Health is no dierent here there are two categories of data: Some data is created
and updated permanently, while other data, once entered into the system, remains quite static. For example, during
a working day in a hospital many new patients, evaluations, prescriptions and hospitalizations are stored in GNU
Health. On the other hand, the sta of health professionals, the medicaments available in the pharmacy, the medical
procedures provided or the hospital infrastructure (buildings, beds, operating rooms) will not change very much
during a day, a week or even a month.
The second type of data is grouped in the Health Conguration section, and this chapter provides an overview
for this section. Since most conguration options are easier to understand in their context, you won't nd too many
details here but links to other chapters of this book where data from the Conguration section will be used.
Notes:
The subsections available under the Health Conguration section will vary depending on the modules installed in your sytem. This chapter describes the conguration options whith all GNU Health modules installed.
There are conguration options on a more technical level too, relevant only to system administrators. These
are not covered in this chapters since they are not part of the Health Conguration section.
17.2 Diseases
17.3 Genetics
17.4 Imaging
17.5 Procedures
17.6 Laboratory
In the Laboratory subsection you dene the Lab Test Types, i.e. all tests a laboratory can provide, including all
parameters to be analyzed during that test. You can also congure the Lab Test Units used in the laboratory.
45
46
17.7 Institutions
In the Institutions subsection you dene the organisational structure and physical assets of your health institution. This
includes the following data:
Buildings
Units
Wards
Beds
Operation Rooms
17.9 Medicaments
17.10 Immunization Schedule
17.11 Misc
17.11.1
Occupations
17.11.2
Ethnicities
17.11.3
Medical Specialities
17.11. MISC
17.11.4
Recreational Drugs
17.11.5
17.11.6
Insurances
47
Chapter 18
Patient Management
18.1 Introduction to Patient Management
Patients are parties with specic properties. These party properties dierentiate them from the other parties. A
patient is a party that has the following properties:
Person
Patient
In GNU Health, a person can be both a health professional and a patient at the same time. Makes sense, doesn't it ?
48
49
Depending on the size of your health center, patient creation can be done by dierent teams. Lets go through the
dierent stages of a party, and who could be in charge. We use the example of Ana Betz to go through a typical
scenario that takes you from dening the party to create the associated patient.
18.2.1
This information creates the individual person. At this point, Ana is just an individual (a physical person). The social
worker can enter all the demographics about her (family, Domiciliary Unit, contacts.. ).
Note: The person that has been dened in GNU Health can be a patient at a later point. In some cases, this person
will never be a patient from our health center, as it can be the case for family members that live in other countries.
18.2.2
Now lets suppose that Ana - that was created on the system a while ago - shows up to the primary care center for
a health checkup. She will give the Social Security Number or other type of unique identier to the ocer at the
frontdesk, and at this moment, Ana will become a patient in the Health System of her region or country.
Note: The SSN eld (translated to other names depending on the country) is the unique value that identies each
person. Please check the section Individuals for more information.
50
An ID card lets you quickly identify a patient by his PUID or by a machine readable QR code. Working with ID
cards is faster and creates less errors than simply asking patients for their names and birth dates. It even works if a
patient is not able to speak (spleeping, sedated, unconcious, or simply a newborn) or does not know how to spell his
name exactly (not uncommon in countries with higher illiteracy rates).
51
To print an ID card, open the patient record, click the Report button in the toolbar and choose ID Cards or ID Cards
- QR (depending on your needs). This will generate a le in the ODT format that can be opened and printed in your
word processing application (e.g. LibreOce Write or Microsoft Word).
Chapter 19
Patient Evaluations
19.1 Introduction to Evaluations
By using GNU Health, the physicians have the possibility to open and make an Evaluation from the Patient window.
This evaluation can be linked to an existing Appointment or just creating a new one.
53
54
Chapter 20
56
20.1.2
From the main menu of Health you have the possibility to get into the Appointments section. Here you see the list of
all the appointments stored in the system.
Free tab: This list reects all available timeslots where you can create a new appointment.
Conrmed tab: This list reects all existing appointments.
Appointments Calendar
The subsection Appointments Calendar allows you to display all appointments stored in the sytsem in a calendar view.
Appointments Report
The subsection Appointments Report allows you to display all appointments of a certain health professional in a certain
time period.
20.1.3
To access the list of all appointments for a specic patient only you typically start from the patients record. Simply
click the Relate button and choose Appointments.
20.2. HOSPITALIZATIONS
57
20.2 Hospitalizations
From the main menu you will have access to the Hospitalizations area. From here you will manage any kind of action
related to the patients admission to or discharge from the hospital.
When you create a new Hospitalization record there are dierent tabs that will help you gather more information:
Administrative Data: In this section you can enter all the administrative information related to the patient
admission.
Nutrition: The information in this section helps the hospital center to know more about the patients diet, belief
etc.
Medication: All the information entered here is related to medication during the admission (indication, treatment period, dosage etc.).
58
Care Plan: Here you will input all the data about nursing plan and discharge plan.
For more information about hospitalizations please refer to the Inpatient Management chapter.
Chapter 21
Laboratory Management
21.1 Introduction to Laboratory Management
The Laboratory Module manages the request, creation and evaluation of laboratory analyses. As far as the LIMS
(Laboratory Information Management System) functionality, GNU Health is very exible. You will be able to link it
to the patient chart and to the nancial management of the Health Center.
To create a new Lab Test Request record there are two possibilities:
1. Click on the Relate button in the patient form and choose the Request Lab Test command.
2. Click on the Request Lab Test command in the main navigation.
In either case a dialog will open that allows you to enter the following information:
59
60
21.2.1
Test Types
The laboratory module allows you to chose from a list of dierent lab tests and to create the specic one that you
need, with their analytics, normal values, etc. etc.
61
62
Note: If you already know that the patient has a condition that will mark a certain value as warning (e.g the value of
blood sugar in case of a diabetic persons or if the person is taking a specic medication), then check the Excluded
box. This will provide to the physician a clearer vision of the patients general and real condition.
The print layout of a laboratory test is called a laboratory report. You can preview and print laboratory reports from
the Lab Test Results form by clicking the Report button and choosing the Lab Report command. Any anomalous value
(i.e. a value below the lower limit or above the upper limit of a test criterion) is printed in red.
21.6 Conguration
To congure the available laboratory tests, go to the Health Conguration Laboratory section in the main menu.
There you have two options: You can create, edit, or delete test types (including their test criteria), and you can
congure the units used in the tests.
21.6. CONFIGURATION
63
21.6.1
By double clicking on Health Conguration Laboratory Lab Test Units you will get the list of all units dened
in the system. Conguring a unit is quite simple, since there are only two elds:
Unit
Code (in most cases identical to Unit)
21.6.2
By double clicking on Health Conguration Laboratory Lab Test Types you will get the list of all test types
dened in the system. A test type serves as a template for an individual test. It contains a list of test criteria, including
information about standard values for each test criterion. It is also linked to a product which allows to properly charge
the tests cost to the patient.
Main Info Tab
In the Main Info tab of the test types form you can manage the following information:
Test: The full name of the test (typically in capital letters)
Code
Below there is the list of Test Cases (or test criteria, as they are called elsewhere) of a test type. Each test case consists
of the following information:
Sequence: A number to create an order within the test cases of a test type
Analyte: The substance or aspect to be analysed
Lower Limit: The lower limit of the range where a value is considered to be normal or not critical (used for
information purposes, but also used to print a test case in red if a value is outside the range)
64
Upper Limit: The upper limit of the range where a value is considered to be normal or not critical (used for
information purposes, but also used to print a test case in red if a value is outside the range)
Reference: A text eld to add more information about the expected values of a test case
Units: The unit of the values in a test cases (used for Upper Limit, Lower Limit, and the test value itself)
Using the Service eld at the bottom of the Main Info tab each test type is linked to a product. The product denes the
price of a test to be charged to the patient. So for each test type record you will need a product record; this product
record is typically named after the test type.
Extra Info Tab
The Extra Info tab contains a text eld Description for additional information about a test type.
Chapter 22
Financial Accounting
Chart of accounts
Conguring Accounts
Account Types
Conguring Journals
Organization structure
Asset management
Cost allocation among cost centers, cost allocation from cost centers
Multi-dimensional CO-PA reports
FI monthly closing (deprecation , FI related reports)
CO monthly closing (activity planning, maintain SKF, COPA report)
65
Chapter 23
Analytic Accounting
66
Chapter 24
Products basics
Similar to a party, a product is a basic data concept in Tryton. Whenever you need a certain product in GNU Health,
this product needs to be created and congured in the Product module.
There are three dierent types of products:
Assets
Goods
Services
The type will determine the tabs and elds available in the Products form.
Each product can be assigned to one category and can have one or more variants.
Products are the basic entity for creating invoices. Therefore every product needs a list price, a cost price and a unit
of measure (UOM) for calculating costs.
24.1.2
Variants basics
In the lower half of the Products form there are checkboxes to specify the product type in the context of the Health
section:
Medicament
Medical Supply
Vaccine
Bed
Insurance Plan
24.1.3
IMPORTANT: GNU Health medicament products must always be created in the main Tryton product section
before they can be imported into the GNU Health medicaments.
1. Each product can be added individually or a range of products can be loaded via a CSV le.
67
68
After this initial set up it is now possible to create/import the medicament product into the conguration section of
the GNU Health module - Health/Conguration/Medicaments
Type in a few letters of the product to be imported from the main Tryton product section.
Add the pharmacological category in this case Antibacterials.
And set the Pregnancy Warning setting for that particular medication. This setting will trigger a message when
prescribing for female patients between the age of xx years and yy years.
Add the Active component of the medication. This should be entered by referring to the WHO essential medicines
list.
24.2 Categories
Categories are used to group similar products. You can create, edit, or delete categories in the Product Categories
section.
Typical categories in GNU Health could be:
Imaging Services
Insurances
Lab Services
Medicaments
To see all products of a certain category, open the Categories list view, then double click the category you are interested
in.
To invoice a patient for hospitalizations, examinations, treatments, medicaments, expendable items etc. you need to
create a new record in the Health Health Services Health Services section.
A Health Services record consists of the following data:
Patient
Date
ID (set automatically)
Description (e.g. Medical evaluation and prescription)
69
Invoice to: The recipient of the invoice (which is not necessarily identical with the patient). Since this is a link
to a Party record you can not only bill patients or persons but institutions as well.
In the Service Line section you add the products and services to be charged. Each service line consist of the following
elds:
Invoice
Product
Description
Qty: The quantity.
From
To
24.3.2
When the Health Services record is complete, click on the Action button in the toolbar and choose the Create Health
Service Invoice command. A dialog box will appear asking you whether you want to create an Invoice based on the
information you have entered in the Health Services record. Click the Create Invoice button.
Things that may go wrong at this point:
If you get the error message No Payment Term associated to the Patient": Go to Party Parties People,
open the record of the patient you are about to bill, switch to the Accounting tab and ll in the Customer Payment
Term eld. Make sure to save the record before going back to Health Health Services Health Services and
trying to create the invoice again.
If you get an error message similar to There is no account expense/revenue dened on the product paracetamol
(30)": Go to Product Products, open the record of the product mentioned in the error message, switch to
the Accounting tab and ll in both the Account Revenue and the Account Expense eld. Make sure to save the
record before going back to Health Health Services Health Services and trying to create the invoice again.
After you have sucessfully created the invoice, the Health Services record changes its state from Draft to Invoiced.
However, the process is not complete at this point (and you could still revert the Health Services record to its Draft
state by clicking the Set to Draft button if necessary).
70
For the nal steps you must switch to the Financial Invoices Invoices section. There you will nd your new
invoice, still in Draft state. Open the invoice, complete it as necessary, then validate it.
An invoice can have one of the following states:
Draft: The initial state.
Validated: An invoice that has been validated can not be edited anymore. However, you could change the state
of the invoice to Draft or Cancelled by clicking the appropriate buttons.
Cancelled: An invoice that has been cancelled can not be edited either. However, you could change the state
71
Chapter 25
Stock Management
25.1 Basics of Stock Management
Stock management contains all processes to track physical products within a company. This allows a company to
tell which products in which quantities are on stock and in which location they can be found. The Inventory & Stock
module of GNU Health allows to document any change in stock, be it a shipment from a supplier, a shipment to a
customer, or simply a move from one location to another.
In the context of a health instution, stock management is especially useful for keeping track of medicaments available
in the pharmacy.
25.4. SHIPMENTS
73
25.4 Shipments
A shipment is simply a group of several moves happening at the same date and around the same location.
25.4.1
Supplier Shipments
A supplier shipment record is created when products are received from a supplier. It contains information about the
Supplier, the Warehouse in which the products are coming, the Planned Date and the Eective Date of the shipment.
In addition, a supplier shipments contains Incoming Moves (moves between the supplier location and the input location
of the warehouse) and Inventory Moves (moves between the input location and the storage location of the warehouse).
A supplier shipment has one of the following states:
Draft: Incoming moves and inventory moves are in Draft state.
Received: Incoming move are set in state Done, inventory moves are created if necessary.
Done: Inventory moves and incoming moves are in Done state.
Cancel: All containing moves are cancelled.
Supplier Return Shipments
((to be added))
25.4.2
Customer Shipments
A customer shipment record is created when products are sent to a customer. It contains information about the
Customer, the Warehouse in which the products are going, the Planned Date and the Eective Date of the shipment. In
addition, a customer shipment contains Inventory moves (moves between the storage location and the output location of
the warehouse) and Outgoing Moves (moves between the output location of the warehouse and the customer location).
A customer shipment has one of the following states:
Draft: Outgoing moves and inventory moves are in Draft state.
Waiting: Inventory moves are created (or completed) to balance the outgoing moves. This shipment should be
processed.
Assigned: Products have been assigned (or reserved) from the storage locations.
Packed: Inventory moves have been made, i.e the products have been physically moved to the outgoing locations.
Done: Outgoing moves have been made, e.g. the truck has left the warehouse.
Cancel: Shipment was cancelled before reaching the Done state. All containing moves are cancelled.
Customer Return Shipments
((to be added))
25.4.3
Internal Shipments
An internal shipment record is created when products are sent across locations inside the company. It contains
information about the From Location, the To Location, the Planned Date and the Eective Date of the shipment. In
addition, an internal shipment contains a list of Moves.
An internal shipment has one of the following states:
74
25.5 Inventories
An inventory is basically a list of all items in a certain stock location at a given time. It allows to control and update
the quantities of the products in stock.
To create an inventory you enter a Storage Location, a Lost and Found Location and a Date. By clicking the Complete
Inventory button a list with the expected quantities for each product in the location is created. If there is a dierence
between the expected quantities and the quantities in the real world (i.e. the number of products in the shelves),
the real quantities can be entered. By clicking the Conrm button, move records are created to balance expected
quantities and real ones.
Chapter 26
Purchase Administration
75
Chapter 27
Access Management
27.1 Access Management Overview
Like in many other IT systems, access to data and functions in GNU Health is controlled through groups (also known
as roles). A group is a set of access rights. By assigning a user (also known as account or login) to a group, this user
gains all rights of this group.
27.2 Groups
To create, edit, or delete groups, please go to the Administration Users Groups section. Create a new group or
double click an existing group to open the Groups form. All data in this form is divided into two tabs:
76
27.3. USERS
77
27.3 Users
To create, edit, or delete users, please go to the Administration Users Users section. Create a new user or double
click an existing user to open the Users form.
Every user needs a Name (which is a descriptive name, not the user name for logging into the system) and a Status
(which is active or not active and denes if a user can log into the system at all).
All other data in this form is divided into four tabs:
78
The User tab contains the very basic information about a user:
Login: This is the user name for logging into the system and cannot be empty. It must be unique, that is to
say that you can not have to users with identical logins.
Password: This is the password for logging into the system. When entering a password you can check the
27.3. USERS
79
checkbox on the right hand side of the Password eld to see what you are entering.
Email: If you enter a users email address here, clicking on the globe icon on the right hand side of the Email
eld opens a new mail in your email client.
Chapter 28
Socioeconomics
28.1 Introduction to Socioeconomics
The module health_socioeconomics takes care of the input of all the socio-economic factors that inuence the health
of the individual / family and society.
Among others, GNU Health includes important factors such as living conditions, educational level, infrastructure,
family aection (APGAR), drug addiction, hostile environment, teenage pregnancy, working children, etc.
The Main factors assess the general quality of life through the housing conditions, education level, occupation, workplace and its conditions. The information in this menu is supplemented by a free text box where you can add relevant
notes of interest. In each category, we found a wide spectrum that will allow us to accurately dene the socioeconomic
status of the patient and determine its living conditions.
In the particular case of this example, we see that the patient Ana Betz has a middle socioeconomic level, has com80
81
pleted university education and works as a teacher. Ana Betz also spends 10 hours away from home, does not work
at home and her workplace is not a hostile area.
Regarding the Infrastructure tab, we nd the checklist of the patient basic services such as sanitary sewers, gas supply,
telephone, internet...as we can see in the next example:
Note that the checklist is designed to uncheck the service that is lacking. All services are already tagged for an easier
way to complete the list.
The Family tab provides information about the family through the Family APGAR. The Family APGAR has been
widely used to study the relationship of family function and health problems in family practice oces. This index
will provide a score that assess adult satisfaction with social support from the family. We can also complete the
information with Other Family issues such as drug adiction, family abuse, domestic violence, working children, etc.
Chapter 29
Lifestyle
29.1 Introduction to Lifestyle
Individuals health depends a lot on their lifestyle. Maintaining physical and mental health are crucial to an individuals
longevity. The more time spent on hygiene, physical tness, and diet regulation, the healthier lifestyle they have.
Mental illness may occur through various variables. For example, depression may promote mental illness through
stress and anxiety. Reasons for being depressed can be due to a number of things including job loss, recently widowed,
divorce, etc. Depression may lead to or increase the frequency of poor habits not promoting physical health. Poor
habits may eventually lead to a poor even dangerous lifestyle.
The module health_lifestyle collects the information of the patients lifestyle working on various aspects such as diet
and exersice, addictions, sexuality and safety.
Proper diet and exercise are the mainstays for a healthy lifestyle. GNU Health includes some features such as Physical
Exercise, Sleep and Meals. The information in this menu is supplemented by a free text box where you can add relevant
82
83
notes of interest.
Regarding to addictions there are two tabs, the main one with basic info about smoking and alcoholism and another
more specic about Recreational Drugs.
The main menu give us a rst glimpse of generally more socially acceptable drugs that gives us valuable information
about the patient addictive behavior and therefore its impact on his health.
In the menu of recreational drugs GNU Health has a full list of these classied by dierent categories and a search
engine lters very comfortable and useful.
84
Sexuality plays a major role in most peoples lives, and encompasses a range of behaviors and meanings that are
shaped by individual, social and cultural factors. Promoting sexual well-being, and preventing sexual health problems
(such as HIV and other STIs, sexual violence, unwanted pregnancies, stigmatization and discrimination based on
sexual behavior/identity, and violations of sexual and reproductive autonomy) are vital tasks for public health. GNU
Health gives importance to factors such as sexual preferences, partners, sexual practices or anticonceptive methods.
Safety refers to the awareness and education of risks and potential dangers in and around a home which may cause
bodily harm, injury, or death to those residing in and around the physical structure of a home. It includes mitigating
or preventing the unwanted dangers through testing, research and accepted standards of applications and practices.
The Safety tab covers the basic aspects of drive and home safety through a checklist that evaluates certain behaviors
that impact on the risks of accidents. The following is an example where we can see that the pacient is a motorcycle
rider that uses helmet and obeys trac laws. When travelling by car, the patient uses seat belt and take safety measures
for children. We can also state that this person takes security measures at home.
Note that the checklist is designed to uncheck the service that is lacking. All services are already tagged for an easier
way to complete the list.
Chapter 30
85
Chapter 31
Gynecology
31.1 Introduction to Gynecology
Gynecology is dedicated to the health of the female reproductive system. All gynecology related information can be
stored in the OB/GYN tab in lower half of the Patient form.
This tab provides a general overview of the basic gynecological conditions of the patient. We can discriminate whether
the patient is in a fertil age, is currently pregnant or is menopausal.
In the OB Summary section the key gures from the obstetrics history are displayed: number of Pregnancies, Premature
Births, Abortions, and Stillbirths.
Below you can track the menstrual history of the patient with specic information including items such as date of last
menstrual period (LMP), Length, Frequency or Volume.
86
87
Gynecology information in the patient form (Screening tab with Mammography History and Colposcopy History open)
31.3.1
Mammography History
The Mammography History allows you to document any number of mammographies, each with Date, Result (normal/abnormal), Remarks, Reviewed (name of health professional) and Institution.
31.3.2
The PAP Smear History allows you to document any number of Pap tests, each with Date, Result (Negative, ASC-US,
ASC-H, ASG, LSIL, HSIL, AIS), Remarks, Reviewed (name of health professional) and Institution.
For more information about the Pap test, please refer to this Wikipedia article.
31.3.3
Colposcopy History
The Colposcopy History allows you to document any number of colposcopical examinations, each with Date, Result
(normal/abnormal), Remarks, Reviewed (name of health professional) and Institution.
Chapter 32
Obstetrics
32.1 Introduction to Obstetrics
All information related to pregnancy, childbirth and the postnatal period can be found in the Obstetric History which
can be accessed via the Related button in the Patient form. Due to the complexity of this information, it is not a
section within the Patient form; to view or edit the obstetric history of a patient, click the Relate button in the toolbar
and select Obstetric History instead. This will present you a list of all pregnancies of that patient.
The form for a single pregnancy has basically four sections:
some general information (top and bottom of the form)
a list with Prenatal Evaluations
a list with Perinatal and Intrapartum Information
a list with Puerperium Monitor records
89
90
91
92
Fundal Height
Fetus:
Fetus Position: Choose between Occiput / Cephalic Posterior, Frank Breech, Complete Breech, Transverse Lie, or Footling Breech.
Fetus Heart Frequency (as opposed to Mothers Heart Frequency - see above)
Complications:
Bleeding: Check if appropriate
Meconium: Check if appropriate
93
94
Chapter 33
Genetics
33.1 Introdcution to Genetics
One goal of genetic research is to identify genes that contribute to complex diseases, and understand how these genes
are inuenced by a persons environment and lifestyle choices.
This module collects the information of hereditary risks, family history and genetic disorders. GNU Health includes
the NCBI and Genecards information, more than 4.200 genes associated to diseases.
The National Center for Biotechnology Information (NCBI) is part of the United States National Library of
Medicine (NLM), a branch of the National Institutes of Health. The NCBI advances science and health by providing
acces to biomedical and genomic information.
Genecards is a database of human genes that provides genomic, proteomic, transcriptomic, genetic and functional
information on all known and predicted human gene.
96
GNU Health helps you searching the disease gene through a very useful searching lter with dierent categories such
as aected chromosome, dominance, ocial long name and ocial symbol.
97
In addition to genetic risks, GNU Health also includes patient genetic family diseases. As we can see in the next
example, the patient has a relative with Marfans syndrome, specically the maternal grandfather.
Gathering a complete and accurate family medical history is becoming more important as genetic medicine explains
more diseases. As genes are passed down from generation to generation, medical conditions and diseases, or the
increased risk for disease, tend to run in families due to gene abnormalities. Health care professionals now better
understand how irregular genes are passed from one generation to the next and have an increased ability to test for
hundreds of inherited illnesses.
GNU Health shows extra info related to deseases including the name, code and main disease category, genetic data
and a free text box for adding relevant extra info.
Chapter 34
Surgery
34.1 Introduction to Surgery
GNU Health allows you to document all surgical procedures performed per patient and in a health institution overall.
It uses the the ICD-10 Procedure Coding System (ICD-10-PCS) of the World Health Organization (WHO) to identify
the type of surgery.
34.1.1
ICD-10-PCS
The ICD-10 Procedure Coding System (ICD-10-PCS) is a World Health Organization medical classication used
for procedural codes. When procedures are performed for specic diseases or disorders, the disease or disorder is
not contained in the procedure code. There are no codes for procedures exclusive to aneurysms, cleft lip, strictures,
neoplasms, hernias, etc. The diagnosis codes, not the procedure codes, specify the disease or disorder.
To view and edit the surgeries of a specic patient, open the Patients form and switch to the Sugeries tab in the lower
half of the form. There you will nd a list of all surgical procedures this patiend had (if any).
98
99
100
101
34.4.1
The Revised Cardiac Risk Index (RCRI) is a method to indicate a patients risk for perioperative cardiac complications. The RCRI Score and Class are entered via a dialog which allows you to indicate the following risk factors:
102
Chapter 35
Pediatrics
35.1 Introduction to Pediatrics Section
The Health Pediatrics section has the functionality for pediatric patients. It focuses on the basic pediatric evaluation,
making emphasis in the nutritional, growth and development of the infant and child.
35.2 Neonatology
35.2.1
When a baby is born, you create a new record in the Health Pediatrics Newborn section. This allows you to store
information that is specic to newborns like APGAR scores, reexes, neonatal signs and symptoms, and congenital
diseases.
A Newborn record is linked to a Patient record which is linked to a Party record. So to store a baby in the system you
have to create all three records, but this can easily be done from within the Health Pediatrics Newborn section:
103
104
1. Create a Newborn record and ll in the DoB (date and time of birth), Sex and Newborn ID elds.
2. In the Baby eld, click on the Search a record icon (or press F2).
3. In the search dialog, click the New button to create a Patient record.
4. In the Patient form, click on the Search a record icon near the Person eld (or press F2).
5. In the search dialog, click the New button to create a Party record.
6. In the Party form, enter the name of baby and ll in the other mandatory elds of the party record, then click
the OK button to close the Party form.
7. The babys name is automatically lled into the Person eld of the Patient record. Simply click the OK button
to close the Patient form.
8. The babys name is automatically lled into the Baby eld of the Newborn record. Simply click the Save button
to store the record. At this point, the QR code is generated to be used for the wristband (see below).
9. Continue to ll in additional information about the newborn as appropriate.
During the procedure described above, the PUID (Person Unique Identication Number) will be generated automatically, and the Date of Birth will be copied from the Newborn record. Please be aware that the Sex eld in the Newborn
and Person records are not synchronized, so make sure to enter the correct information in both elds.
Please note that the antenatal information and the puerperium remains in the Gynecology and Obstetrics section.
35.2.2
To maximize security and identication of the newborn, the system assigns a newborn ID, and allows to print the
four identication bands including QR codes to place it on the babys and the mothers wrists and ankles. QR codes
can be read from most mobile devices through the build-in camera, and they can store a lot more information than
traditional bar codes.
To print a wristband for the baby, open the newborn form and click the Report button. Depending on your needs,
choose the Newborn ID or Newborn ID - QR option. This will generate an ODT le and open it in your word processor
(e.g. LibreOce Write or Microsoft Word).
105
106
Chapter 36
Nursing
36.1 Introduction to Nursing
The health_nursing module provides functionality to document Roundings (for inpatients) and Amulatory Care (for
outpatients) alike. This functionality can be found in the Health Nursing section of GNU Health.
36.2 Roundings
36.2.1 Main Tab
36.2.2 ICU Tab
36.2.3 Procedures Tab
36.2.4 Medication Tab
36.2.5 Stock Moves Tab
108
Summary
Warning
End: Date and time
Next Session: Date and time
State
Chapter 37
Inpatient Management
37.1 Introduction to Inpatient Management
If a patient is not only seeing a doctor (outpatient) but staying at the hospital (inpatient), you have to manage a lot
more information about this patient. This information is stored in Hospitalizations records which can be found in the
Health Hospitalizations section of GNU Health. For each stay a the hospital you create a seperate Hospitalizations
record.
Note: To use the functionality described in this chapter you must have the modules health_inpatient and health_inpatient_calendar
installed. (More information about modules.)
110
37.3.1
Assigning a Bed
For obvious reasons you can not hospitalize a patient without assigning him a free bed. This happens in the Hospital
Bed eld, where you link the Hospitalization record to a Bed record. (For more information about how to congure
beds in your system, please refer to Health Institutions: Beds.)
There are mainly two ways to do this:
If you already know the ID of the bed for this patient, then you can simply type this ID. As soon as you type,
the system will oer you matching IDs to choose from.
If you don't know the bed ID already and want to check for available beds rst, click the button on the right
hand side. This will present you a list with all beds including their availability status (free, occupied, reserved).
Once the bed is chosen the system will give you the option to conrm the admission and, if there is no error, the
status will change to conrmed.
It is important to emphasize that at this point if we check the beds section, this particular bed we just assigned will
have a status of reserved and that it will change into occupied at the moment that we conrm the admission.
111
37.4.1
Managing Beliefes
37.4.2
112
Code
Diet Description and Indications
Chapter 38
38.2.1
APACHE II
The Acute Physiology and Chronic Health Evaluation II (APACHE II) is a classication system for the severity of
disease. It is applied within 24 hours of admission of a patient to an ICU. A score between 0 and 71 is computed
based on several measurements, where higher scores correspond to more severe disease and a higher risk of death.
(Read more about APACHE II.)
The APACHE II form in GNU Health contains the following information:
Registration Code: Link to the inpatient record of the patient (mandatory).
Date: Date and time of the evaluation (mandatory).
Age
113
114
Temperature
MAP
Heart Rate
Resporatory Rate
FiO2
PaO2
PaCO2
A-a DO2
pH
Sodium
Potassium
Creatinine
Hematocrit
WBC
ARF: Check if appropriate.
Chronic condition: Check if appropriate.
Score: The resulting APACHE II score (calculated automatically).
115
38.2.2
ECG
In the Health Hospitalizations Intensive Care ECG section of GNU Health you can document any electrocardiograms taken from a patient.
The ECG form provides the following information:
Registration Code: Link to the inpatient record of the patient (mandatory).
Date: Date and time when the ECG was taken (mandatory). Please note: Currently you have not access to
this eld in the form view, only in the list view.
Lead: Choose between I, II, III, aVF, aVR, aVL, V1, V2, V3, V4, V5, or V6.
Axis: Choose between Normal axis, Left deviation, Right deviation, or Extreme right deviation (mandatory).
Rate: (mandatory)
Pacemaker: Choose between Sinus node, Atrioventricular, or Purkinje (mandatory).
Rhythm: Choose between Regular or Irregular (mandatory).
PR
QRS
QT
ST Segment: Choose between Normal, Depressed, or Elevated (mandatory).
T Wave Inversion
Interpretation: (mandatory)
At the bottom of the form you can add an image of the electrocardiogram plot.
116
38.2.3
GCS
The Glasgow Coma Scale (GCS) is a standard to evaluate the level of consciousness of neurological patients. Based
on three factors - eye opening, verbal response, and motor response - an overall score between 3 and 15 is calculated.
A higher value indicates a higher level of consciousness and a better chance to recover. (Read more about the Glasgow
Coma Scale.)
38.3.1
Neurologic
((Details to be added))
38.3.2
117
((Details to be added))
The ICU rounding allows to place an X-ray (or other imaging diagnosis image). Unlike attachments related to the
object, that you can also use, this image is even more contextual and graphic. Of course, this image should be very
recent to the evaluation itself.
38.3.3
Drainages
((Details to be added))
Chest drainages are input from a One2Many widget. This permits to have as many as in the patient, and with their
own characteristics.
38.3.4
Cardiovascular
((Details to be added))
38.3.5
((Details to be added))
38.3.6
((Details to be added))
Chapter 39
39.2.1
The module health_ntd_chagas adds the Chagas DU Survey form to GNU Health. This allows you to evaluate a
domiciliary unit for risks regarding the Chagas disease. You can nd this survey by opening the Domiciliary Units
form and choosing the Chagas DU Survey via the Relate button in the toolbar.
The Chagas DU Survey allows to store the following information about a domiciliary unit:
Survey Code: A code to identify the survey (created automatically).
DU: The domiciliary unit which was evaluated (set automatically).
Date: The date of the evaluation.
Status: Choose from Initial, Unchanged, Improved, or Worsen to give a summary of your ndings.
Presence of triatomines:
Triatomines: Check if triatomines were found.
118
119
39.2.2
The module health_ntd_chagas also adds some Chagas desease related test to the list of available laboratory tests,
including:
CHAGAS BLOOD SMEAR
CHAGAS ELISA
CHAGAS INDIRECT IMMUNOFLUORESCENCE - IFA
CHAGAS PCR
CHAGAS STROUT
CHAGAS XENODIAGNOSIS
120
39.3.1
The module health_ntd_degnue adds the Dengue DU Dengue form to GNU Health. This allows you to evaluate a
domiciliary unit for risks regarding dengue fever. You can nd this survey by opening the Domiciliary Units form
and choosing the Dengue DU Survey via the Relate button in the toolbar.
The Dengue DU Survey allows to store the following information about a domiciliary unit:
Survey Code: A code to identify the survey (created automatically).
DU: The domiciliary unit which was evaluated (set automatically).
Date: The date of the evaluation.
Status: Choose from Initial, Unchanged, Improved, or Worsen to give a summary of your ndings.
Presence of larvae:
Larvae: Check if aedes aegypti larvae were found.
Domiciliary: Check if larvae were found in the house.
Peri-Domiciliary: Check if larvae were found around the house.
Areas to improve:
Tyres: Check if appropriate.
Animal Water Containers: Check if appropriate.
121
39.3.2
The module health_ntd_dengue also adds some dengue fever related test to the list of available laboratory tests,
including:
DENGUE ELISA
DENGUE IgG
DENGUE PCR
DENGUE PRNT
Chapter 40
Reporting
40.1 Introduction
The Reporting module provides an easy interface for gathering summary statistics on a variety of metrics, including
patients, health professionals, and more.
123
Chapter 41
Demographics
124
Chapter 42
Epidemiology
125
Chapter 43
Installation
43.1 Requirements
The latest stable GNU Health has the following requirements:
1. Operating System: GNU Health is Operating System independent, although we highly recommend the use of
a Free OS (such as GNU/Linux or FreeBSD)
2. Database: PostgreSQL
3. Python: >= 2.7 < 3.0
4. Tryton: = 3.4
5. BASH Shell
6. PIP version for Python 2, verify through:
pip --version
You should see the python2.7 part, as in:
pip x.x.x from /usr/local/lib/python2.7/site-packages (python 2.7)
If you see python3.x then stop and get the pip for python 2.
The following table contains the instructions to setup your operating system for a standard GNU Health installation.
The operating systems and their version shown in the list have been tested using the instructions for each OS.
The installation instructions for the dierent Operating Systems and distributions have been done on fresh installation. When possible and for simplicity sake, only the server environment was installed, without desktop. No rewall
was congured (we will cover this on the security section), and the SSH server was installed.
The instructions - written here - have been applied and veried with the following OS as shown below.
43.2.2
The following steps will create the GNU Health operating system user. Please note that many operating systems give
you the option to create a regular user at installation time. If you already created the gnuhealth operating system
126
127
43.2.3
Note : You can skip this section if you made a standard installation on FreeBSD or Arch Linux
PostgreSQL uses dierent authentication methods (MD5, ident, trust ... ). Depending the Operating System, the
postgreSQL server authentication method will vary.
The standard GNU Health installation uses the trust authentication method, so you need to check the postgreSQL
authentication le conguration.
Locate the pg_hba.conf le and verify that the trust method is set. The location of this conguration le varies across
operating systems; under UNIX/Linux, the full pathname of the le can be obtained with the following command, to
be executed as root:
su - postgres -c psql -t -P format=unaligned -c 'show hba_le'"
Usually this le is located at /etc/postgresql/9.x/main
An example conguration le entry specifying use of the trust method is given in the following line:
local all all trust
The following example in particular may address issues with establishing a working database connection as reported
in the context of the creation of the GNU Health database upon rst use of the Tryton client (see further down;
Symptom: the Create button is not displayed):
host all all 127.0.0.1/32 trust
After any changes to the le, the postgreSQL server needs to be restarted.
Many authentication errors (e.g., database connection errors) arise because of not having correctly congured this
le. Of course, you can use other authentication methods, and you can adapt the tryton / GNU Health conguration
le to each of them. For the sake of simplicity, we based the documentation and sample les on this book on one
(trust) specic method.
43.2.4
The following command switches to the postgres administration user and gives permissions to your newly created
gnuhealth administrator:
Execute, as root:
su - postgres -c createuser --createdb --no-createrole --no-superuser gnuhealth
128
43.2.5
129
rotate, console
In this example (and in the standard le) the log le is written in the default logs directory. You can change it to t
your specic installation.
In order to use logging, you need to provide the --logconf option, along with the path to the log conguration
le gnuhealth_log.conf as argument, when invoking the Tryton server, in the next section (e.g., trytond --logconf
"${GNUHEALTH_DIR}"/tryton/server/cong/gnuhealth_log.conf ...).
For more information, check the following resources:
Python logging facility logging tutorial: https://docs.python.org/2/howto/logging.html#logging-basic-tutorial
Tryton Server logging documentation: http://trytond.readthedocs.org/en/latest/topics/logs.html
Standard Method
Microsoft Windows
Download the Tryton client .
Follow the instructions.
130
43.4.2
Note: There are some issues with the local installation of the Tryton client and PIP. We recommend using the standard
method. Following are the instructions on how to install the client system-wide (without the --user option).
pip install tryton>=3.4,<3.5
If you have an older Tryton client (installed with PIP), you can upgrade it to the latest version with the following
command:
pip install --upgrade tryton
The following command will boot your tryton client
tryton
43.4.3
Before you start the installation of the database, you need to set the tabs position to be on Top. This will produce
the optimal navigation.
The following action in the Tryton client will set it: Options Form Tabs Position Top.
43.4.4
The rst step is to create a database that will hold all the information for your GNU Health system.
All GNU Health information is stored in a PostgreSQL database, and processed by the Tryton kernel. No action is
needed at the operating system level to create or manage the database, as all can be done via the Tryton / GNU Health
frontend.
To create a database, open your Tryton client. You will be presented with the following login popup window:
Click on Manage proles, then click on Add. Give your new connection a name on the left side, and ll the elds
on the right side. If you're doing the installation on the same machine, choose localhost as the hostname. Example:
Click on the Create button, the following popup appears:
The default Tryton server password is admin (you can change it later). Give your database a name, and enter a new
admin password twice. Note: this will be the password of the super-user for your new database, so use a strong
password when dealing with production servers.
131
Login Screen
Connection Prole
Check in the server log (or console) if any error occurs. If so, try to x the problem (ie. any Python module missing or
some unmet dependencies), drop the database just created and repeat the procedure.
132
Create Database
After the database is created, click OK. You're now ready to log in!
133
4. Click on the Action icon (a blue rotated square) and select Perform Pending Installation/Upgrade:
5. Tryton will automatically select all the dependent modules required for the installation:
6. Click on Start Upgrade. This process will take a while, depending on the computer where GNU Health is
being installed on. Once its done, the following message appears:
Congratulations, you have successfully installed GNU Health!
134
135
Initial conguration. Creating the main company associated to the party (health institution)
Congratulations! You have completed the initial installation of GNU Health. In the next chapter we will discuss how
to add functionality by installing additional modules.
Chapter 44
Administration
44.1 About the Administration Section
At the lower end of the main navigation you will nd the Administration section. This is the area where system
administrators congure users (and their access rights), data structures (like models and elds), modules, elements of
the user interface, or languages.
While the Health Conguration section is specic to GNU Health, the Administration section is a basic part of
Tryton. And while the Conguration section will be managed by medical or administrative sta of a health institution,
the Administration section is under the control of IT sta.
44.2 Overview
The Administration sections consists of the following sub-sections:
User Interface
Models
Sequences
Scheduler
Localization
Modules
Users
Countries
WebDAV
Please refer to the following chapters of this book for details about these sub-sections.
136
Chapter 45
User Interface
137
Chapter 46
Models
138
Chapter 47
Sequences
139
Chapter 48
Scheduler
140
Chapter 49
Localization
49.1 Translating GNU Health
To contribute to the translation of the GNU Health software, please proceed as follows:
1. Join the GNU Health translation team for your country or region at Transifex.
2. Translate the terms for each module. Please start from the health module which contains the core of GNU
Health.
142
Download the GNU Health module language le for the resource at Transifex
143
Chapter 50
Modules
50.1 Installing Extra Modules
The default modules of GNU Health are just a subset of the modules available and provide basic functionality. Depending on your health institution, you will most likely want to install some of the other modules that come with
GNU Health.
50.1.1
Installation Process
((Details to be added))
50.1.2
Dependencies
Some modules are depending on other modules: You can not install this module without having installed the other
modules as well. You can see these dependencies by double-clicking on a module in the Administration Modules
Modules section.
For example: The module health_inpatient_calendar (which adds caldav support to the inpatient management functionality) depends on health_inpatient (which privides the basic inpatient management functionality) and calendar
(which implements the basic caldav functionality).
145
Chapter 51
Users
146
Chapter 52
Countries
147
Chapter 53
WebDAV
148
Chapter 54
Central Authentication
54.1 Introduction
For large, distributed GNU Health installations, such a network of public hospitals, you might want to consider a
central user authentication model.
Under this method, the users and their login credentials are managed centrally, so its easy to create, modify, and/or
revoke them when necessary.
The central authentication model in GNU Health is quite exible, allowing dierent roles per health facility. For
example, a health professional can work in two dierent health centers. Dr. Cameron Cordara works in the morning
as a family medicine physician at GNU SOLIDARIO Hospital, and in the afternoon, she cooperates with the social
workers, meeting with the community at the local primary care facility. Two dierent roles in two dierent centers,
yet one single person and one single login.
Note: This documentation is based on a installation under FreeBSD and OpenLDAP, but it should work ne on other
Free/Libre Operating Systems, such as GNU/Linux . There are also many conguration and deployment options, such
as Public Key Infrastructure (PKI), LDAP replication, etc... that are not covered in this introductory, conceptual
document.
54.1.1
Components
54.1.2
1. The health professional enters the username / password at the login prompt.
2. The credentials are checked against the OpenLDAP server.
Scenario 1: The user exists in the OpenLDAP database. If the password provides is correct,
then she logins with her local authorization proles. If she enters an incorrect password, she
will be get the login prompt again.
Scenario 2: The user does not exist in the OpenLDAP database. The credentials are checked
against the local GNU Health database at the health facility.
Scenatio 3: The OpenLDAP server is unreachable (network outage, server down, ... ). Same
rule as in Scenario 2 applies.
54.2 Installation
149
150
54.2.1
After you installed OpenLDAP, you need to create the organization, the roles and the users, so the LDAP client and
GNU Health can interact with the server.
The following LDIF le to the basic organization and users, just for demonstration purposes.
Sample LDIF le
# The GNU Health Organization dn: dc=gnuhealth,dc=org objectclass: dcObject objectclass: organization o: GNU
Health Nation dc: gnuhealth dn: cn=Manager,dc=gnuhealth,dc=org objectclass: organizationalRole cn: Manager #
PEOPLE Organizational UNIT (rst level hierchy) dn: ou=people, dc=gnuhealth,dc=org ou: people description: All
people in organisation objectclass: organizationalunit # Actual users dn: cn=Cameron Cordara,ou=People,dc=gnuhealth,dc=org
objectClass: inetorgperson cn: Cameron Cordara sn: Cordara uid: cameroncordara userPassword: SecretPass
You can now populate the initial OpenLDAP database uploading your newly created LDIF, for instance
$ slapadd -l <your_ldif_le>
54.2.2
After you have congured the OpenLDAP server and created your users, you need to congure your GNU Health
Tryton instance to communicate with it.
Install the following Tryton module
trytond_ldap-authentication
Create a new LDAP connection (Administration LDAP Connections)
Fill in the information to meet your LDAP server specication.
Save the connection
Create a user in GNU Health (Administration Users Users)
54.2. INSTALLATION
151
You can now create a user matching the uid on the LDIF le, and assign local roles to her. In this case, we would match
the login name on he screen, with the uid of the user on your Organization. In the case of our Doctor Cameron
Cordara, the login name would be cameroncordara. Again, this is just for demo purposes. In real-life scenarios you
would use unique identiers for login names.
Note: You will notice that the password eld is already lled in. This is because the actual user password resides
now in the LDAP server, and not in your local instance database.
If everything went right, you now have GNU Health enable for central authentication. Try to login as cameroncordara. Her credentials will be checked on the LDAP server.
Chapter 55
55.2.1
Patches
Generally speaking, a patch is a portion of code that xes a program or its components. In GNU Health, a patch is a
patch le generated in a Mercurial specic Changeset .The patch le (di) modies specic sections of code, not
replacing the whole le. It is applied with the Patch command. As stated before, the patch is associated to a specic
changeset, but not necesarily to the latest patch-level number (third component of the version number, e.g. 1.2.3).
Pros of patches:
152
153
They are available immediately: If its a critical bug, you can patch it immediately, no need to wait for the
patchset.
Very specic: Because of this high specicity, many times you could apply a patch in GNU Health with a
running system, not aecting the availability.
Cons of patches:
Requires more technical knowledge
Very specic
More cumbersome when dealing with binary les, like LibreOce Reports
Need to keep track of other un-applied patches
The high specicity of the patch makes it both a pro and a con. So its quite operator dependent. We recommend
avoid using patches unless is a critical bug that must be applied immediately.
55.2.2
Patchsets
Patchsets act at a higher level than patches, dealing with entire les and not chunks of code. They are packaged in
the form of a compressed ar le.
Applying a patchset is also a selective operation, in the sense that only part of the GNU Health kernel is modied.
Pros of patchsets:
Specic
Can be re-applied after a patch
Applies all patches in that time-frame, including non-critical patches that were collected over time
Easier periodic installation / updates process
Linked to a specic GNU Health version (the patchlevel number)
Cons of patchsets:
Not as immediate as patches. Although the time for critical patches should not exceed 24 hours.
154
Chapter 56
Upgrade
56.1 About GNU Health Upgrades
GNU Health is in constant development. Upgrades x bugs and keep your system with the latest functionality.
Therefore, you are advised to keep your production system with the latest version.
GNU Health will always provide the scripts and tools for you to keep your health center updated.
Always upgrade all the GNU Health modules: When we release a version, we always pack all the ocial modules
155
156
on it. This is important, because we test the integrity and cross-functionality among modules. So, you should never
use modules from dierent versions. For example, you should not use health_genetics version 1.6.3 with health
1.6.2 . This is not supported and can create serious inconsistencies on your database!
Chapter 57
Contributing
57.1 Contributors Wanted!
GNU Health is a FLOSS project, you are very welcome to contribute to it. There are several ways to do so, most of
which not requiring you to know how to code!
57.5 Coding
GNU Health is mostly a set of Tryton modules, the programming language used is Python. The code is hosted on
Savannah and versioned under Mercurial.
157
158
57.5.1
You can get your copy of the latest code by doing an anonymous checkout:
hg clone http://hg.savannah.gnu.org/hgweb/health/
You can also browse the code online.
57.5.2
Coding style
The coding style should follow the Tryton guidelines or else Python best practices.
57.5.3
Chances are that if you are installing GNU Health for your center, you will be customizing it to feed your specic
needs. Reports, access controls, views are just some of the objects that are normally customized. The main concept
is to not touch the standard code or modules, since it will be overwritten in the next update and most probably will
end up in a broken system.
The recommended steps to customize GNU Health to your center are:
1. Create your module: Its highly recommended that you use the following naming convention for your local
modules: z_health_<modulename>. For example, if your project is called catalina, your local module name
would be z_health_catalina. This way makes is easy to detect and dierentiate your modules from the base
code. You can also easily make backup of them following the pattern.
2. Inherit the objects.
3. Modify or create new models.
If you create a new custom eld, you should also use the z_<eldname> naming convention. This avoids collision
with future eld names of the ocial releases. We will not use any module, class, or model name starting with z_.
Since GNU Health 2.8 there will be a directory called local under ~/gnuhealth/tryton/server/modules. Please put
your local modules that contain the customizations for your project under this directory.
Please refer to the Tryton developer guide for more information about creating a module.
57.5.4
Submitting Patches
Regular contributors have write access to the code repository. However, if you're just starting out, we want to make
sure that your changes get reviewed. The way to do this is to open a bug describing the issue you've xed or the feature
you've added, and to attach a patch to that bug report. One of the developers will review your patch and commit it to
the main development branch if approved.
Chapter 58
58.3 Backups
When using gnuhealth-control to perform backups, the application does the following tasks :
Perform a backup of the database.
Perform a backup of the $HOME directory of the gnuhealth user, so it stores the kernel, rc les, modules and
attach directory.
To perform a backup, you call the gnuhealth-control utility with the database name and target directory where you
want to store it.
./gnuhealth-control backup --backdir <directory> --database <dbname>
58.4 Updates
When gnuhealth-control is invoked with the update command, it will update GNU Health components within the
same major number The following components will be checked and updated if necessary:
Trytond: Tryton server version
159
160
GNU Health patchsets (see Patches and Patchsets for more information)
This will be valid for version with the same major and minor numbers, for example 2.8.x will look for the latest
Tryton updates and GNU Health updates associated to that release.
You can get the latest version of GNU Health control center at GNU ftp://ftp.gnu.org/gnu/health
Chapter 59
Security
59.1 Securing Your GNU Health Environment
Security is a multi disciplinary task, involving components from networking, operating system, database and application (Tryton), to human resources, to name a few.
This page will try to give an overview of some basic concepts that will help you to enhance the access control to
your system. We will also talk about enabling Public-key cryptography to sign documents and records from dierent
models.
Standard Ports
((Missing content?))
59.2.2
Serverpass utility allows you to easily change the Tryton server password of the super-user. The super-user is the
one who can do administrative tasks on databases from the Tryton client (create, delete, backup, restore).
In current versions of Tryton (since 3.4) the password of the super user is encrypted. To facilitate the creation and
update of the password, the serverpass utility is included, and automatically invoked at the end of the installation
process. Serverpass uses cracklib, a package that enforces the use of good passwords, thus, enhancing the security
of your server.
Running serverpasss from the Command Line
If you want to update your current password, you can run the serverpass command from the command line. The
utility is located under $HOME/gnuhealth/tryton/server/util directory. For example:
162
59.3.1
The module goal is to achieve the concepts of condentiality, integrity and non-repudiation in GNU Health.
The health_crypto module currently provides the following functionality:
Document Serialization
Document hashing (MD)
Document signing
Document verication
The module will work on records from models that will need this functionality such as prescription, patient evaluations,
surgeries or lab tests.
163
The Serialization includes the information in a predened format (JSON) and encoding (UTF8).
There will be a eld that will contain the Message digest of the serialization process, and that will check for any
changes. If the case of alteration of any elds
The signing process will be upon that Message Digest eld, whereas the encryption process will work on row or
column level.
Public-key / asymmetric cryptography will be used for signing the documents.
The standard models that are included are Prescription, Birth Certicate and Death Certicate. Of course, you can
apply the functionality to any model that you feel like is necessary. In addition, and based on the community requests,
we will incorporate new models in the next versions.
59.3.2
GNU Health works along with GNU Privacy Guard for signing and verifying documents. In order to use it, you need
the following in your client:
The GNU Health crypto plugin for the Tryton client, shipped with the main tarball (under the backend/plugins
directory). Since 2.8.0, the GNU Health Tryton crypto plugin will be a separate package.
The GPG package (comes with most modern operating systems).
The python-gnupg library (https://pypi.python.org/pypi/python-gnupg).
Installation of the Crypto plugin
We assume you have installed the Tryton client using the sources . Suppose you are using the Tryton client 3.4.1 in
your $HOME dir
cp -a gnuhealth_crypto_plugin_dir $HOME/tryton-3.4.1/tryton/plugins/crypto
164
Chapter 60
Troubleshooting
165
Chapter 61
61.2 Installation
The server requires Flask and a few of its addons. And, of course, a working GNU Health installation.
It is recommended to install the packages into a virtual environment using virtualenv.
Setup the environment (as the gnuhealth user):
$ pip install virtualenv # Install virtualenv using python (may require root) $ cd my_work_folder # Wherever you
want to put the virtual environment folder $ virtualenv -p /usr/bin/python2 venv # Create the environment, with the
Python 2.x interpreter $ source venv/bin/activate # Active the environment
Now install the packages using the requirements le:
$ pip install -r requirements.txt
Some of the packages (like pywebdav) are already installed on the system. However, its usually easier to administrate
and debug the Flask server when working in a virtual environment.
More help with virtualenv.
61.3 Conguration
The server ships with a simple production cong le. However, it needs to be edited.
server/cong.py ---------------- TRYTON_DATABASE = '' # GNU Health database SERVER_NAME = '' # Domain
name of the server (e.g., fhir.example.com) SECRET_KEY = '' # Set this value to a long and random string
There are other options available for Flask and its addons: * Flask * Flask-Login * Flask-Tryton * Flask-Restful *
Flask-WTF
166
61.4. SECURITY
167
61.4 Security
Use TLS. Sensitive medical information must be protected and condential.
By default, all FHIR endpoints except the Conformance statement require user authentication. The user authentication
and access follows Trytons model, respecting model and eld access rights.
The same credentials used to sign into GNU Health are used to access the FHIR REST server.
61.6 Troubleshooting
61.6.1
61.6.2
This is related to the previous error, and occurs when Flask-Tryton cannot nd the Tryton cong le. Following the
previous procedure should hopefully x it.
Chapter 62
62.3. AUTHENTICATION
169
62.3 Authentication
All resources, except for Conformance, require authentication. The server authenticates with the user credentials
of the underlying GNU Health/Tryton server. Login with your user credentials at /auth/login. Logout at /auth/logout.
There is a simple welcome page for logged-in users at /auth/home.
Chapter 63
Synchronization Guide
63.1 Scope of this Document
This guide tries to cover the synchronization process among GNU Health instances and their relation to the central
instance. The intended audience are project managers and system administrators. Its quite general, and avoids
getting too technical, although some topics and tasks require knowlegde of operating systems, networking, database
administration and Python programming.
The GNU Health Synchronization functionality will be available from version 2.8 onwards.
63.1.1
Denitions
GNU Health instance: Stand-alone GNU Health installation. It contains the database, the Tryton kernel and,
at least, the core health module.
Satellite instance: Each GNU Health instance that is part of the synchronization.
Central Instance: The main GNU Health instance (at the Ministry of Health, for example). This is the instance
that contains the aggregated information, and gets the synchronization requests from the satellite instances.
RabbitMQ: The message broker. It is executed at the operating system and run as a daemon.
Celery: The asynchronous task / job manager used by Tryton. It uses RabbitMQ as the middleware. The tasks
for synchronization are periodically lauched from the operating system at a pre-dened xed interval.
Satellites
170
171
Note: You use hg clone the rst time only. Afterwards, use the hg pull and update commands.
Install the Tryton synchronisation package for Satellites:
$ cd tryton_synchronisation $ python ./setup.py install --user
Install Proteus:
$ pip install --user proteus==3.4
Add the synchronisation_id and synchronisation_url to trytond.conf:
$ editconf
then:
synchronisation_id = the_id_of_your_satellite_instance synchronisation_url = http://user:password@health.gnu.org:
7500/name_of_the_central_instance_database
Note: Replace user:password by the actual login credentials.
63.2.2
(Notes taken from FreeBSD. The specics vary from operating systems)
1) Start Rabbit-mq service
# service rabbitmq onestart
2) Create a conguration le celerycong.py with the following entries
This celerycong.py le should be stored in a place available in $PYTHONPATH. Lets use /home/gnuhealth/gnuhealth/tryton/server/con
(which is the same value as $PYTHONPATH).
3) Create your customized health_synchro module
You need to specify which type of synchronization you want for your instance. We have included a synchro module
template in the documentation folder ($HOME/gnuhealth/doc/samples). You can copy and link this module into
your local modules directory and customize it to t your needs.
172
63.3.1
Chapter 64
Release Process
64.1 Introduction to the GNU Health Release Process
GNU Health stable versions (those with even minor number, eg 1.2.3) .
Starting from version 3.0, stable versions are released approximately every 12 months (on a Sunday).
64.1.1
For each version, around two months before the actual release, GNU Health enters in a feature freeze stage, and a
month before, Health enters in code freeze stage. At this moment, a Release candidate version is created; and the
demo community server updated and the translator teams notied.
173
Chapter 65
What to do
Download and install the free Tryton client software on your computer.
Start the Tryton client software and connect to the GNU Health Demo Database over the Internet.
Please refer to this chapter for more information.
65.2.2
Advantages
This option is the quickest and simplest way for your rst hands-on experience with GNU Health.
The Tryton client is available for Windows, Mac OS and Linux.
65.2.3
Disadvantages
What to do
Download the Live CD image and burn it to a CD/DVD or write it to an USB stick.
174
175
Boot your computer from this CD/DVD or USB stick. This will turn your Windows computer temporarily into
a Linux computer (openSUSE operation system, KDE desktop environment) with a preinstalled GNU Health
server including the Demo Database.
Please refer to this chapter for more information.
65.3.2
Advantages
After the download you will not need an Internet connection anymore.
This option gives you full access to the GNU Health server.
You can install the system from the running Live-CD to your computer
It is possible to setup your own database(s) besides the demo database (USB only)
65.3.3
Disadvantages
Booting and running a computer from a CD/DVD is slow. (Its quicker from the USB stick but still slow.)
CDs cannot store much data(up to 650 MB/4.7-9.4 GB for DVD). This means that even if you do use a
rewritable CD, you will be space-limited on what you can save.
You need to know how to write a CD image to a CD or USB stick and how to change the boot sequence in the
BIOS settings of your computer.
Some computers do not allow for booting from CD or USB.
While using the Live CD you don't have access to the programs on your computer, so you can't test GNU
Health and work with your Windows applications in parallel.
This method may not work on Apple Macs.
What to do
Download the virtual machine image to your harddisk and unpack it. (The virtual machine image can be found
on the same webpage like the Live CD image see option 2.)
Download and install the VirtualBox software (or any other emulator) on your computer.
Run VirtualBox, locate the virtual machine image and start your virtual machine.
Please refer to this chapter for more information.
65.4.2
Advantages
This option gives you all advantages of the Live CD (option 2) without its disadvantages.
The VM can serve as a base for a later production use.
65.4.3
Disadvantages
The virtual machine is stored on your harddrive. Therefore it needs a bit more eort to pass the test installation
to someone else compared to the Live CD.
The performance will be slower as the virtual machine is also sharing the power of your machine.
176
What to do
65.5.2
Advantages
This option gives you all advantages of the Live CD (option 2) without its disadvantages.
This setup can serve as a base for a later production use, where containers can be deliberately combined or
moved, located on dedicated servers or in the cloud.
The use of separate containers per application (microservices) ensures high exibility and security standards.
Docker containers are lightweight containers running in the kernel namespace, which makes them perform
much better than a comparable VM (Virtual Machine).
The demo setup can be reset at any time to start from the beginning.
It is possible to setup your own database(s) besides the demo database.
65.5.3
Disadvantages
You have to perform 8 commands from the command line to get the server up and running;)
Chapter 66
66.2.1
Demographics Information
Sex: Female
Marital Status: Married
Profession: School teacher
Education Level: University
Domiciliary Unit
Housing Conditions: Comfortable and good sanitary conditions
177
178
66.2.2
Patient Information
66.2.3
Ex-smoker
Addictions: No recreational drugs
Sexuality: Heterosexual, monogamous, practices safe sex
Safety: Motorcycle rider, uses helmet
Other Information
179
Manual Installation
This method should give the most up-to-date demo database with the fewer issues in the future.
First, as gnuhealth user, we download the newest demo database (2.8.1) and unzip it
$ wget http://health.gnu.org/downloads/postgres_dumps/gnuhealth-2.8.1-demo.sql.gz $ gunzip gnuhealth-2.8.1-demo.sql.gz
Second, we create an empty database to import the demo database into
$ psql -d template1 -c create database gnuhealth_demo
Third, we import the database
$ psql gnuhealth_demo < gnuhealth-2.8.1-demo.sql [1]
Now enter the database through Tryton client (as non-gnuhealth user)
Database: gnuhealth_demo
Username: admin
Password: gnusolidario
There is a user admin_es that uses the Spanish language.
66.4.2
180
66.5 References
[1] Optionally 1>/tmp/log 2>/tmp/err may be added at the end of the line. For large databases and not so large computers, it
could accelerate the load, while providing some clues just in case.
Chapter 67
The Live-CD
181
Chapter 68
The Live-CD
The GNU Health Demo Database is available as Live-CD. This gives interested users the option to run GNU Health
on their own PC, and, if desired, install the GNU Health demo database directly from the CD.
Similar as the demo database, the live-CD is an ongoing project and it will be adapting to the each new GNU Health
version. The clinical history will also grow with time.
68.2.1
The hard disk image comes as packed raw format. After download, rst unpack the *.tar.gz le
On Linux/Mac-OS, use your favorite archiving program, or use 'tar -xvzf *tar.gz' from the command line
On Windows, use an advanced packer like 7-Zip
182
183
After unpacking, you have to install the RAW-le to a stick. See instructions. (Create a Live USB stick using
Windows)
Note: When booting the rst time from the USB-Stick, the boot process takes a bit longer, as the stick is being
optimized (data and swap space creation). Second boot will be much quicker.
68.2.2
ISO-Image / CD
If you have downloaded the ISO image to burn a CD, you can nd the relevant instructions here.
Chapter 69
69.2 Adjustments
You may want to change the language and keyboard to your preferred setting. From the Start Menu, select
System Administration YaST. Enter the password for 'root': tryton . You have reached the administration
settings. From the 'System' Section select 'Language' to change the primary language.
184
69.2. ADJUSTMENTS
185
You may want to run an online update. From the Start Menu, select System Administration YaST. Enter
the password for 'root': tryton . You have reached the administration settings. From the 'Software' Section
select 'Online-Update'.
You may want to increase the display resolution of your virtual machine (which may be as low as 640 x 480
pixel). From the Start Menu, select System Administration YaST. If the system asks you to log in, enter root
as user and tryton as password. From the YaST main screen select Software in the left column, then Software
Management in the right column. Then search for virtualbox, select all packages with the word guest in their
name and install them. After rebooting your virtual machine you should have higher resolutions available.
You may want to install additional software. From the Start Menu, select System Administration YaST.
Enter the password for 'root': tryton . You have reached the administration settings. From the 'Software'
Section select 'Software Management'.
Chapter 70
Glossary
70.1 ICD-10-PCS
The ICD-10 Procedure Coding System (ICD-10-PCS) is classication standard for surgical procedures proposed by
the a World Health Organization (WHO). See Surgery.
70.2 Company
A company is a legal entity that has employees. You may dene hierarchical company structures by assigning a parent
company. The company sets the currency as well as header and footer texts for reports. GNU Health users belong to
a company as well. Technically speaking, a company is an extension of a party.
70.3 ECG
Short for electrocardiography or electrocardiogram. See Intensive Care Unit.
70.4 Employee
An employee is a person that works for a company. An employee record in GNU health simply links a person to a
company.
70.6 GSC
Short for Glasgow Coma Scale. See Intensive Care Unit.
70.7 ICU
Short for Intensive Care Unit.
186
70.8. INVENTORY
187
70.8 Inventory
An inventory is a list of all items in stock at a given time. It allows to control and update the quantities of the products
in stock. See Stock Management.
70.9 Module
GNU Health consists of many modules which add specic functionality to the system. Depending on the needs of
your health institution, you may or may not install certain modules. See Modules.
70.10 Move
A move documents the relocation of a certain amount of a single product. Several moves are grouped to shipments.
See Stock Management.
70.11 Party
Parties are used to represent organisations and people in GNU Health. A party is a generic concept and needs
to be specied when you create one. Examples for parties are companies, health institutions, patients, and health
professionals.
70.12 Patient
A patient is a person that gets treatment in a health institution. Technically speaking, a patient is an extension of a
party that is dened as Person and Patient. See Patient Management.
70.14 Person
A person is a human being. Persons can be further specied as patients or health professionals.
70.16 Product
A product can be a physical product that a company owns or sells, but it can also be a service (i.e. a medical treatment,
a test in a laboratory). Each product has a price and is the basic building block of billing in GNU Health.
188
70.17 PSC
Short for Pediatrics Symptom Checklist.
70.18 PUID
Short for Person Unique Identication Number.
70.19 QR Code
A Quick Response Code (or QR Code for short) is a machine readable tag that stores information like an ID, a URL,
or other information. QR codes can be decoded with most smartphones or tablets as long as the have a build in
camera and an appropriate app. In GNU Health, QR codes are used for patient ID cards (see Patient Managment)
and newborn wristbands (see Pediatrics).
70.20 Shipment
A shipment is a collection of moves and documents the relocation of physical products. There are Supplier Shipments,
Customer Shipments and Internal Shipments. See Stock Management.
70.21 User
A user is someone who uses GNU Health. A user record has at least a user name and a password. A user belongs
to a company and can be linked to one or more employees who are logging into the system with that user. Access
rights of a user are dened by assigning the user to one or more user groups. The language of the GNU Health user
interface is dened on the user level as well. See Access Management.
Chapter 71
FAQ
71.1 General Questions
Who is behind GNU Health?
GNU Health is from GNU Solidario, a non-for-prot, non-government-organization that delivers health with free
software. In 2011, the Free Software Foundation adopted GNU Health, and today is an ocial package of the GNU
project. GNU Health belongs to humanity and to public health, at no cost.
What is the license of GNU Health?
GNU Health is licensed under the GNU General Public License, GPL v3 or later.
What is the main site of GNU Health?
http://health.gnu.org
Where can I download GNU Health?
GNU Health is hosted at GNU.org. You can get the latest version at http://health.gnu.org/download
I want to get involved in the GNU Health community. Where can I get more information?
Refer to the Resources section of this book.
On which operating systems can GNU Health be installed?
The GNU Health server can be installed in any GNU/Linux and *NIX based systems with a Python interpreter. Some
people have installed GNU Health server on Microsoft Windows.
The client can be installed in GNU/Linux systems, OpenBSD, FreeBSD and other *NIX systems, as well as in
Microsoft Windows and Apple Mac OS X (Macs with Intel processors only).
What is the software versioning model in GNU Health?
GNU Health uses a sequence-based schema, using the major.minor.revision identiers. GNU Health uses odd
minor numbers for development versions, and even minor numbers for stable releases.
For example: 3.16.1 would correspond to a stable release, whereas 2.15.0 would be a development release. Development releases are not meant to be use in productive environments, and they are intended to be use by developers.
190
Chapter 72
191
Chapter 73
Arch Linux
73.1 Install dependencies
pacman -S postgresql python2-pip pip2 install cracklib
192
Chapter 74
Debian
74.1 Install dependencies
apt-get install build-essential python-dev python-pip \ libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev python-ldap
\ python-imaging python2.7-cracklib postgresql postgresql-server-dev-all
Continue with the GNU Health Installation
193
Chapter 75
FreeBSD
75.1 Install dependencies
pkg install py27-pip gcc py27-cracklib wget py27-lxml postgresql94-server
194
Chapter 76
OpenSUSE
76.1 Add Password Management Repository
zypper ar http://download.opensuse.org/repositories/security:/passwordmanagement/openSUSE_13.2 passwordmanagement
195
Chapter 77
Ubuntu
77.1 Install dependencies
apt-get install build-essential python-dev python-pip \ libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev python-ldap
\ python-imaging python2.7-cracklib postgresql postgresql-server-dev-all
Continue with the GNU Health Installation
196
Chapter 78
Trisquel
78.1 Install dependencies
apt-get install build-essential python-dev python-pip \ libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev python-ldap
\ python-imaging python2.7-cracklib postgresql postgresql-server-dev-all
Continue with the GNU Health Installation
197
Chapter 79
Packaging Guidelines
In order to make the GNU Health installation and documentation process valid for the vast number of operating
systems available, we need to specify some basic guidelines. These guidelines should be taken into account if you
want to create a package for your operating system or distribution.
Please note that the package is not required to install GNU Health. The GNU Health installer, detects most operating
systems and installs the system and requirements as explained in the installation guide.
If want to create and/or maintain a package for your operating system, please follow these (partial) general guidelines.
Note that these guidelines will change from time to time in order to adapt to the new releases.
Operating System user : The operating system user is gnuhealth
Installation directory : Installation directory is the $HOME directory of the operating system
RC le : GNU Health comes with a set of pre-dened environment variables and aliases. These are stored in
the $HOME/.gnuhealthrc le. Its important that this le is always loaded at login time. The documentation
and control programs heavily make use these variables and aliases.
Shell : The default shell, used by the installation script is BASH
GNU Health installer : This is the main installer (gnuhealth_install.sh), included in the main GNU Health
tarball. Invoking this script would probably be the easiest way.
Directory Structure : Please follow the directory structure and links that are set during the standard installation.
Tryton conguration le : GNU Health comes with a basic Tryton server conguration le, tailored for the
general use.
GNU Health control center : This program is the base for controlling the GNU Health instance (status, start,
stop, backup, updates, ... ). Some of the features are already available in 2.8, and we plan to cover most of
them for the upcoming version 3.0 .
In addition to these basic guidelines, there are a list of per-requisites as per Operating System that must be included.
Please check the installation section for your particular Operating System.
198
Chapter 80
Community Pages
The following are links to individuals and communities related to GNU Health.
199
200
Text
201
202
GNU Health/The Demo database Source: https://en.wikibooks.org/wiki/GNU_Health/The_Demo_database?oldid=2982965 Contributors: Martin Sauter, Meanmicio, Smarro, QUBot, Cmelgosa, Piegope, Leaderboard, Lifeboy~enwikibooks, Tealump, Ginitosj and
Anonymous: 10
GNU Health/The Live-CD Source: https://en.wikibooks.org/wiki/GNU_Health/The_Live-CD?oldid=2996820 Contributors: Chazz,
Martin Sauter, Coogorsailing and Anonymous: 2
GNU Health/Glossary Source: https://en.wikibooks.org/wiki/GNU_Health/Glossary?oldid=2765161 Contributors: Martin Sauter
GNU Health/FAQ Source: https://en.wikibooks.org/wiki/GNU_Health/FAQ?oldid=2765134 Contributors: Martin Sauter, Meanmicio,
QUBot and Anonymous: 4
GNU Health/Operating System-Specic Notes Source: https://en.wikibooks.org/wiki/GNU_Health/Operating_System-Specific_Notes?
oldid=2968661 Contributors: Martin Sauter, Meanmicio, Bvillasanti, Ark74, Ch larsen, Coogorsailing, Leaderboard, Jorginho Valente,
Mbehrle and Anonymous: 9
GNU Health/Packaging Guidelines Source: https://en.wikibooks.org/wiki/GNU_Health/Packaging_Guidelines?oldid=2841087 Contributors: Meanmicio
GNU Health/Community Pages Source: https://en.wikibooks.org/wiki/GNU_Health/Community_Pages?oldid=2974892 Contributors:
QuiteUnusual and Meanmicio
80.1.2
Images
203
204
205
206
80.1.3
Content license