Gnuhealth PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 220

gnuhealth

Contents
1

Preface
1.1

Preface

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduction

1
3

2.1

About this Book

2.2

GNU Health Functionality


2.2.1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Deploying GNU Health: Centralized vs Distributed Installations . . . . . . . . . . . . . . .

Resources

3.1

More GNU Health Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2

Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3

Mailing Lists

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.4

Twitter

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.5

IRC Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.6

Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.7

Google+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.8

Community Demo Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

First Steps
4.1

Terminology

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Navigation Area

11

Form elds and eld types

13

6.1

14

Time to Practice

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

The core module

15

7.1

The Core Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

7.2

People before Patients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

Health Institutions

17

8.1

Introduction to Health Institutions

8.2

Creating and Updating Health Institutions

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

8.3

Health Institution Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Introduction to Domiciliary Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

9.2

The Domiciliary Units Form

21

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 Individuals
10.1 The Individual

23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

10.2 Review of concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

10.3 Your rst Individual in GNU Health

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

10.3.1 Demographics

10.3.2 Contact Information

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11 Families

25
26

11.1 The Family Concept in GNU Health . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

11.2 Managing Families . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

11.3 Searching Family Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

12 Health Professionals

28

12.1 The Health Professional Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

12.2 Creating and Editing Health Professionals

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

12.2.1 Party associated to a Health Professional . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

12.2.2 The Internal User eld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

12.2.3 Health Professional specic elds

29

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13 Medicaments

32

14 Prescriptions

33

14.1 About Prescriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

14.2 Information Stored in Prescriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

14.3 Prescription stock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

15 Vital Records
15.1 About Vital Records

35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

15.2 Birth Certicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

15.3 Death Certicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

15.4 Digital Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

16 Immunizations

40

16.1 The Vaccine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

16.2 The Immunization Schedule

41

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CONTENTS

iii

16.2.1 Immunization Schedule Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


16.3 The Vaccination Process

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.4 Immunization Status Report

41
42

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

16.5 Vaccine stock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

17 Conguration

45

17.1 The Conguration Section in GNU Health . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

17.8 Health Professionals

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

17.9 Medicaments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

17.10Immunization Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

17.11Misc

46

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.11.1 Occupations
17.11.2 Ethnicities

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

17.11.3 Medical Specialities

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

17.11.4 Recreational Drugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

17.11.5 Pediatrics Growth Charts WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

17.11.6 Insurances

47

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18 Patient Management

48

18.1 Introduction to Patient Management

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18.2 Creating a party with the patient property

48

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

18.2.1 Step 1: Party denition and demographics . . . . . . . . . . . . . . . . . . . . . . . . . .

49

18.2.2 Step 2: Enabling the patient attribute in the party

. . . . . . . . . . . . . . . . . . . . . .

49

18.3 Listing the current patients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

18.4 Creating a patient record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

18.5 Printing a patient ID card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

19 Patient Evaluations

52

19.1 Introduction to Evaluations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

19.2 Evaluations History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

19.3 Evaluations Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

19.3.1 Main Info Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

19.3.3 Mental Status Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

19.3.4 Diagnosis Tab

54

19.3.2 Clinical Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20 Patient Appointment and Admission Management

55

iv

CONTENTS
20.1 Appointments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

20.1.1 Information stored per appointement . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

20.1.2 List of all appointments

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

20.1.3 List of appointments for a specic patient . . . . . . . . . . . . . . . . . . . . . . . . . .

56

20.2 Hospitalizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

21 Laboratory Management

59

21.1 Introduction to Laboratory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

21.2 Requesting a Laboratory Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

21.2.1 Test Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

21.3 Managing Laboratory Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

21.4 Storing Laboratory Test Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

21.4.1 Main Info Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

21.4.2 Extra Info Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

21.5 Printing Laboratory Reports

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

21.6 Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

21.6.1 Lab Test Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

21.6.2 Lab Test Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

22 Financial Accounting

65

23 Analytic Accounting

66

24 Products and Services Management

67

24.1 Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

24.1.1 Products basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

24.1.2 Variants basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

24.1.3 Creating new medication products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

24.2 Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

24.3 Invoicing Patients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

24.3.1 Step 1: Listing Health Services to be Invoiced . . . . . . . . . . . . . . . . . . . . . . . .

68

24.3.2 Step 2: Creating the Invoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

25 Stock Management

72

25.1 Basics of Stock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

25.2 Stock Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

25.3 Stock Movements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

25.4 Shipments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

25.4.1 Supplier Shipments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

25.4.2 Customer Shipments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

25.4.3 Internal Shipments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

25.5 Inventories

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26 Purchase Administration

74
75

CONTENTS

27 Access Management

76

27.1 Access Management Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

27.2 Groups

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

27.2.1 Members Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

27.2.2 Access Permissions Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

27.3 Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

27.3.1 User Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

27.3.2 Actions Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

27.3.3 Access Permissions Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

27.3.4 Preferences Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

28 Socioeconomics

80

28.1 Introduction to Socioeconomics

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

28.2 Main Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

28.3 Infrastructure Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

28.4 Family Tab

81

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29 Lifestyle

82

29.1 Introduction to Lifestyle

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

29.2 Diet and Exercise Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

29.3 Addictions Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

29.4 Sexuality Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

29.5 Safety Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

30 Functioning and Disability

85

31 Gynecology

86

31.1 Introduction to Gynecology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

31.2 General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

31.3 Screening Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

31.3.1 Mammography History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

31.3.2 PAP Smear History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

31.3.3 Colposcopy History

87

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32 Obstetrics

88

32.1 Introduction to Obstetrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

32.2 General Pregnancy Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

32.3 Prenatal Evaluations

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

32.4 Perinatal and Intrapartum Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

32.4.1 Main Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

32.4.2 Additional Info Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

32.5 Puerperium Monitor


33 Genetics

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93
95

vi

CONTENTS
33.1 Introdcution to Genetics

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

33.2 Genetic Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

33.3 Family History

97

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34 Surgery

98

34.1 Introduction to Surgery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

34.1.1 ICD-10-PCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

34.2 Surgeries per Patient


34.3 All Surgeries

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

34.4 Surgeries Form

34.4.1 Revised Cardiac Risk Index (RCRI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101


35 Pediatrics

103

35.1 Introduction to Pediatrics Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103


35.2 Neonatology

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

35.2.1 Creating a Newborn Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103


35.2.2 Newborn and Mother Wristbands

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

35.3 PSC (Pediatrics Symptom Checklist) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105


36 Nursing

107

36.1 Introduction to Nursing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107


36.2 Roundings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
36.2.1 Main Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
36.2.2 ICU Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

36.2.3 Procedures Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107


36.2.4 Medication Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
36.2.5 Stock Moves Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

36.3 Ambulatory Care . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107


36.3.1 Main Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
36.3.2 Other Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
36.3.3 Medication Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
36.3.4 Stock Moves Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

37 Inpatient Management

109

37.1 Introduction to Inpatient Management


37.2 Admission Process

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

37.3 Administrative Data Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

37.3.1 Assigning a Bed

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

37.4 Nutrition Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110


37.4.1 Managing Beliefes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
37.4.2 Managing Therapeutic Diets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
37.5 Medication Plan Tab

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

37.6 Care Plan Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

CONTENTS

vii

38 Intensive Care Unit

113

38.1 Introduction to the ICU Functionality


38.2 Patient ICU Information
38.2.1 APACHE II

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

38.2.2 ECG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115


38.2.3 GCS

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

38.3 Patient Rounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116


38.3.1 Neurologic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
38.3.2 Respiratory (incl. X-Ray)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

38.3.3 Drainages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117


38.3.4 Cardiovascular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
38.3.5 Blood and Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
38.3.6 Digestive and Abdomen

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

39 Neglected Tropical Diseases

118

39.1 Introduction to Neglected Tropical Diseases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118


39.2 Chagas Disease . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
39.2.1 Chagas Related Surveys

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

39.2.2 Chagas Related Laboratory Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119


39.3 Dengue Fever . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
39.3.1 Dengue Related Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
39.3.2 Dengue Related Laboratory Tests

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

40 Reporting

122

40.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122


40.2 Demographics Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
40.3 Patient Evaluations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
40.4 Top Diseases

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

40.5 Injury Surveillance System Registration


40.6 Specialties by health professionals

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

40.7 Evaluations Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123


41 Demographics

124

42 Epidemiology

125

43 Installation

126

43.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126


43.2 Installing GNU Health on GNU/Linux and FreeBSD
43.2.1 Operating System requirements

. . . . . . . . . . . . . . . . . . . . . . . . 126

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

43.2.2 Creating the Operating System User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126


43.2.3 Verify PostgreSQL authentication method . . . . . . . . . . . . . . . . . . . . . . . . . . 127
43.2.4 Creating the Database User

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

viii

CONTENTS
43.2.5 Downloading and Installing GNU Health

. . . . . . . . . . . . . . . . . . . . . . . . . . 128

43.3 Booting up the Tryton Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129


43.4 Installation of the Tryton Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
43.4.1 Standard Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
43.4.2 Alternative Method (PIP)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

44.1 About the Administration Section

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

44.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136


45 User Interface

137

46 Models

138

47 Sequences

139

48 Scheduler

140

49 Localization

141

49.1 Translating GNU Health

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

49.2 About Transifex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141


49.3 Installation of Language Packs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
49.4 Setting the User Language

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

50 Modules

144

50.1 Installing Extra Modules

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

50.1.1 Installation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144


50.1.2 Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
50.2 Available Modules

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

50.3 Custom Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145


51 Users

146

52 Countries

147

53 WebDAV

148

54 Central Authentication

149

54.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149


54.1.1 Components

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

54.1.2 Central Authentication Workow

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

55 Patches and Patchsets

152

55.1 About GNU Health Patchsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152


55.2 Patches vs Patchsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
55.2.1 Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
55.2.2 Patchsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
55.3 Criteria for a New Patchset Release

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

55.4 Applying Patchsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153


56 Upgrade

155

56.1 About GNU Health Upgrades

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

56.2 Gathering Information

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

56.3 Prepare your Upgrade

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

56.4 The Upgrade Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156


57 Contributing

157

57.1 Contributors Wanted! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157


57.2 Translating the Software

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

57.3 Writing and Translating the Documentation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

57.4 Reporting Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157


57.5 Coding

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

57.5.1 Obtaining Your Copy of the Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158


57.5.2 Coding style

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

57.5.3 Customizing and Creating Your Own Modules

. . . . . . . . . . . . . . . . . . . . . . . 158

57.5.4 Submitting Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158


58 Backups and High-Availability

159

58.1 About the GNU Health Control Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159


58.2 Invoking gnuhealth-control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
58.3 Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
58.4 Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
59 Security

161

59.1 Securing Your GNU Health Environment

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

59.2 Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161


59.2.1 Standard Ports

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

59.2.2 Serverpass: The Server Password Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . 161


59.3 Public-key Cryptography in GNU Health . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
59.3.1 GNU Health Cryptographic Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
59.3.2 Using Digital Signatures in GNU Health . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

CONTENTS

60 Troubleshooting

165

61 FHIR REST server

166

61.1 About FHIR and REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166


61.2 Installation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

61.3 Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166


61.4 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
61.5 Running the Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
61.6 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
61.6.1 Cannot connect to database

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

61.6.2 No database with that name

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

62 Using the FHIR REST server

168

62.1 FHIR Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168


62.2 URL Structure

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

62.3 Authentication

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

62.4 Searching / Listing

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

62.5 Test Server Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169


63 Synchronization Guide
63.1 Scope of this Document

170
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

63.1.1 Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170


63.2 Installation of Satellites and Central instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
63.2.1 Satellites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
63.2.2 Running the Synchronization Engine on Satellite Instances

. . . . . . . . . . . . . . . . . 171

63.3 Technical Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172


63.3.1 Developers Mini-Guide to the Synchronization Engine
64 Release Process

. . . . . . . . . . . . . . . . . . 172
173

64.1 Introduction to the GNU Health Release Process . . . . . . . . . . . . . . . . . . . . . . . . . . . 173


64.1.1 Stages of the Release Process

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

64.2 Upcoming Release Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173


64.3 Security xes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
65 Dierent ways to test GNU Health

174

65.1 About this page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174


65.2 Option 1: Connect to the Demo Database

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

65.2.1 What to do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174


65.2.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
65.2.3 Disadvantages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

65.4 Option 3: Run GNU Health in a Virtual Machine

. . . . . . . . . . . . . . . . . . . . . . . . . . 175

65.4.1 What to do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175


65.4.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
65.4.3 Disadvantages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

66 The Demo database

177

66.1 Introduction to the Demo Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177


66.2 The Zenon-Betz Family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
66.2.1 Demographics Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
66.2.2 Patient Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
66.2.3 Other Information

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

66.3 Online Demo Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178


66.4 Local Demo Database

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

66.4.1 Manual Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179


66.4.2 Installation Using Proteus Demo Script
66.5 References

. . . . . . . . . . . . . . . . . . . . . . . . . . . 179

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

67 The Live-CD

181

68 The Live-CD

182

68.1 Download the Live-CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182


68.2 Install the Live-CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
68.2.1 USB-Stick / Hard Disk Image

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

68.2.2 ISO-Image / CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183


68.3 Install the Live-CD to your hard drive
69 Virtual Machine Images

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
184

69.1 Running the Virtual Machine as Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184


69.2 Adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
70 Glossary

186

70.1 ICD-10-PCS

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

70.2 Company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186


70.3 ECG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

70.4 Employee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186


70.5 Glasgow Coma Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
70.6 GSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
70.7 ICU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

xii

CONTENTS
70.8 Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.9 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.10Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
70.11Party
70.12Patient

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

70.13Pediatrics Symptom Checklist

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

71.2 Concepts of GNU Health and Tryton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189


71.3 Demo Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
72 Operating System-Specic Notes

191

73 Arch Linux

192

73.1 Install dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192


73.2 Initialize the DB cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
73.3 Start and enable the PostgreSQL service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
74 Debian

193

74.1 Install dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193


75 FreeBSD

194

75.1 Install dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194


75.2 Link Python and cracklib dictionaries

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

75.3 Init PostgreSQL server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194


76 OpenSUSE
76.1 Add Password Management Repository

195
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

76.2 Install dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195


77 Ubuntu

196

77.1 Install dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196


78 Trisquel

197

78.1 Install dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

CONTENTS

xiii

79 Packaging Guidelines

198

80 Community Pages

199

80.1 Text and image sources, contributors, and licenses . . . . . . . . . . . . . . . . . . . . . . . . . . 200


80.1.1 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
80.1.2 Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
80.1.3 Content license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

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

GNU Health paradigm of System of Health

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.

2.2 GNU Health Functionality


The main areas of GNU Health are:
Individual and community management: demographics, domiciliary units, families, operational areas and
sectors, ...
Patient management: Socioeconomics, lifestyle, encounters / evaluations, hospitalizations, lab reports, clinical history, ...
Health center management: Finances, stock, pharmacy , laboratory, beds, operating rooms, appointments,
supply chain management, human resources, ...
Information management: Reporting, Demographics and Epidemiology

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

Deploying GNU Health: Centralized vs Distributed Installations

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.

Sample Patient ID card generated by GNU Health

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.3 Mailing Lists


There are several mailing lists for information exchange via email:
health: General questions and discussions about GNU Health
health-announce: GNU Health releases and events
health-dev: Development, requests and bugs
health-es: General questions and discussions about GNU Health in Spanish
health-fr: General questions and discussions about GNU Health in French
health-pt: General questions and discussions about GNU Health in Portuguese
To subscribe to these mailing lists, please visit https://savannah.gnu.org/mail/?group=health

3.4 Twitter
For regular news updates we suggest that you follow GNU Health on Twitter at https://twitter.com/gnuhealth

3.5 IRC Channels


You can nd live help at IRC in the following channels:
#gnu-health: English
5

CHAPTER 3. RESOURCES
#gnu-health-es: Spanish

You can use any IRC client or Free node web interface

3.6 Development Environment


On August 26th, 2011, the Free Software Foundation adopted GNU Health as an ocial GNU project. Since then,
the development environment is hosted at GNU Savannah. Besides the mailing lists, here you can post bugs, tasks
and check out the latest development version.
http://savannah.gnu.org/projects/health

3.7 Google+
The GNU Health community on Googles social networking platform Google+ can be found at https://plus.google.
com/communities/104024590265963842407

3.8 Community Demo Server


This server is in Europe and serves as a demo server to practice and see a running system. You can nd more
information in the Online Demo Database section of this book.

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:

Company. An example of a Party

Party: In GNU Health, a party is an entity. An abstract concept to dene someone or something that has legal
7

CHAPTER 4. FIRST STEPS


status. Its the unit of the relationship in Tryton. Some examples of Parties are:

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.

Example of a Tree list

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

Form view of the same record

GNU Health modular design

10

Sample Lab report

CHAPTER 4. FIRST STEPS

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 :

Navigating GNU Health

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 5. NAVIGATION AREA


Status bar : The lower side of the screen shows the status bar. From left to right, these are elds :
User name : In this case we logged in as Administrator
Organization Name : GNU Solidario Hospital
Requests : Tryton has an internal messaging system. You will get notications in realtime.
Server Information : The lower right section gives you login and server information. In this example, it
shows admin@localhost:8000/demo". admin is the login name, localhost the name of the GNU Health
server, 8000 is the port where connects and demo is the database name.

Chapter 6

Form elds and eld types


Lets now go through the most relevant eld types and how to properly use them. We will use the previous screenshot
of the patient as the example.
Text elds : These type of elds allow us to enter a lot of information. You will see them normally like large
boxes. In our example, the eld under Patient Allergies and Critical Information is a text eld.
Character elds : These type of elds are similar to the Text elds, but with a limited size. There are few
character elds and none in this example. The diet type in the lifestyle section or the Gene ID on genetics are
example for character elds.
Date Fields : These elds will open a calendar when clicked, so you can choose the date. Alternatively, you
can enter the date manually. The date of birth is a Date eld.
DateTime Fields : Similar to the date elds, but with the addition of time. An example of this eld is the
Date/time of birth of the newborn, in the neonatology module.
Integer elds : These elds allow only integer numbers. They show a 0 by default. An example is Minutes
of physical exercise per day
Float elds : You can enter decimal numbers. The body temperature is one example of a oat eld.
Function elds : These are special elds, in the sense that they are calculated in real time, depending, most of
the time, on the values of other elds. For example, the Patient Age is a function eld. Notice that the eld has
a grey background, meaning that is read-only. It will calculate the current patient age in years/months/days
depending on the patient date of birth. Another example of function eld is the Hospitalization Status of the
patient.
Selection elds : These elds will let you choose from a list of options. For example, the patient Sex or the
blood type are selection elds. This type of eld minimizes typing error.
Relational elds : These elds retrieve information from a related model. They are of the form One2Many
or Many2One. Relational elds are important to keep the uniqueness of data. By using this type of elds,
you link the ID of an existing record, without duplicating information, to another record. The patient is a
relational (One2Many) eld. It relates to the the party model, from where it gets all the administrative data
(Social security number, address, etc... ).
Shortcuts : [F2] will open the related record and [F3] will create a new record
Required elds : These elds are mandatory. You must enter information or else the record won't be saved.
You can quickly identify the required elds because they have a blue background. The Patient eld is a required
eld.
13

14

CHAPTER 6. FORM FIELDS AND FIELD TYPES

6.1 Time to Practice


Important : Make sure you are in your demo database. This demo database that you created has no important
information. You can put anything you want. You can even delete it and recreate it. Just make sure you don't use
a production database for your tests. One way to prevent accidentally entering the production database is to have a
dierent password for your demo database, this way if you select the wrong database, you won't be able to login.
If you do not have a demo database yet, please refer to the chapter Dierent ways to test GNU Health to learn how
to create your own testing environment.
Its been a lot of information! Now is time to play around with all this information.
With the information try the following :
1. Navigate in the Main menu
2. Open the Conguration Submenu
3. Create a Physician with the Family Medicine Specialty.

Chapter 7

The core module


7.1 The Core Module
As we have mentioned already in previous sections of the book, GNU Health is composed of dierent modules which
will provide specic functionality to your health center.
The module health is at the center of GNU Health. This module contains the core models and classes, so the rest of
the modules will just inherit them. This gives modularity and scalability, without leaving behind the most important
building blocks in public health. Some of the models found in the core module are:

GNU Health modular design

Individuals
Families
Domiciliary Units
15

16

CHAPTER 7. THE CORE MODULE


Operational Sectors
Health Centers
Diseases
Patient
Patient Evaluation / Encounters
Medicaments
Treatments

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

People before Patients

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.

8.2 Creating and Updating Health Institutions

The Institutions form in GNU Health

17

18

CHAPTER 8. HEALTH INSTITUTIONS

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.

8.3 Health Institution Facilities

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.

8.3. HEALTH INSTITUTION FACILITIES

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

CHAPTER 8. HEALTH INSTITUTIONS

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

GNU Health Domiciliary Unit screenshot on version 2.0rc1

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).

9.2 The Domiciliary Units Form


The Domiciliary Units form can be found at Health Demographics Domiciliary Units in the main navigation of
GNU Health.
A domiciliary unit can be described by the following information:
21

22

CHAPTER 9. DOMICILIARY UNITS


Code: A unique identier of the dwelling. This eld is required.
Description: Short description of the DU.
Address: Street, number, district, municipality, city, state and country.
Latitude and Longitude

GNU Health integration of the Domiciliary Unit with OpenStreetMaps.

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.

10.2 Review of concepts

Tree view of Parties in GNU Health on Tryton framework

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.

10.3 Your rst Individual in GNU Health


Follow the menu : Party -> Parties

23

24

CHAPTER 10. INDIVIDUALS

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.

10.3. YOUR FIRST INDIVIDUAL IN GNU HEALTH

25

Person demographics in GNU Health

10.3.2

Contact Information

GNU Health person 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.

11.2 Managing Families


Families are managed in the GNU Health Demographics Families section.
If you are creating a family, the rst thing to do is to assign it a unique family name. In our demo database we use
a combination of the two lastnames of husband and wife (e.g. Zenon-Betz for the familiy of John Zenon and Ana
Betz). While this should work ne most of the time, you will run into problems when you have several families with
the same combinations of lastnames. In this situation, adding the rstnames could help to make the familiy name
unique (e.g. Zenon-Betz, John & Ana).
Below the family name you will nd a list of the family members, each consisting of the following elds:
Party: Link to a person (or a Party record whith the Person ag set, to be technically correct).
Role: The role of this person within the familiy (e.g. Mother, Son). Please note that this is a simple text
eld where you can enter whatever you like. There are no predened roles, and there is no validation (like a to
make sure that a mother is female or that a son is younger than its father).
26

11.3. SEARCHING FAMILY MEMBERS

27

GNU Health family

11.3 Searching Family Members


In the GNU Health Demographics Family Members section you can nd a list of all family members. This list
is read-only, but you can use it to search family members by family name, party (person) or role.

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.

12.2 Creating and Editing Health Professionals

Adding a new health professional

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

12.2. CREATING AND EDITING HEALTH PROFESSIONALS

29

2. Associate an internal user (login user) to the party


3. Dene the health professional list of specialties
4. Set the default or main specialty

12.2.1

Party associated to a Health Professional

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.

Party associated to a Health Professional

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 Internal User eld

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

Health Professional specic elds

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

CHAPTER 12. HEALTH PROFESSIONALS

Associating the login user to a health professonal in GNU Health

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

12.2. CREATING AND EDITING HEALTH PROFESSIONALS

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.

14.2 Information Stored in Prescriptions


Each Prescriptions record stores some general information:
Patient: Link to a patient (mandatory)
Prescription ID
Prescription Date
Prescribed by: Link to a health professional
Pharmacy: Link to a pharmacy (i.e. a Party record with the Pharmacy ag set)
Pregnancy Warning
Prescription Veried
The information about the medicaments can be found in the Presciption Lines section. Each Prescription Line consists
of the following elds:
Medicament: Link to a medicament
Indication: Link to a Pathology Info record
Allow Substitution
Print
Form: Link to a Drug Form record
Administration Route: Link to another Drug Form record
Start: Date and time
End: Date and time
Dose
33

34

CHAPTER 14. PRESCRIPTIONS


Dose Unit: Select an existing dose unit or create a new one
Times
Frequency
Admin Hours
Frequency
Unit: Choose from Seconds, Minutes, Hours, Days, Weeks, or When required
PRN: Short for pro re nata (= use it as needed)
Treatment Duration
Treatment Period: Choose from Minutes, Hours, Days, Weeks, Months, Years, or Indenite
Review: Date and time
Units
Rells #
Comment

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.

14.3 Prescription stock


Prescriptions can be tracked and inventoried by means of stock management.
To quickly create a new stock move, right-click the prescription > Actions > Create Prescription Stock Move. To view
previous stock moves, right click the prescription > Relate > Stock Moves [readonly].
Note: Do not create new Stock Moves from the Relate view.

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.

15.2 Birth Certicates


The person birth certicate is part of the GNU Health Vital Record System. It links the person to an ocial document
with the information used in most countries. The information about the date of birth is taken from the person. In
addition, if your institution has the GNU Health pediatrics module installed, the date of birth is automatically taken
from the neonatology department.

Link to the related Birth Certicate of the person.

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

CHAPTER 15. VITAL RECORDS

Birth certicate in Draft state

Conrmation dialog when signing

15.3 Death Certicates


The death certicate is a key document, since it has legal, administrative, demographic and epidemiological signicance.
Death certicates work very much the same way like birth certicates, but they store more information about causes
and circumstances of death. The best way to access a person death certicate is by using the related action from the
Party model (refer to the birth certicate section). Alternatively, the can be accessed via Health Demographics
Birth certicates section.
A death certicate stores the following information:

15.3. DEATH CERTIFICATES

Birth certicate in Signed state

Vital Records on GNU Health : Death Certicate

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

CHAPTER 15. VITAL RECORDS

GNU Health : Signing a death certicate using digital signatures, with the Health cryptographic module - GNU Privacy Guard (GPG)
plugin

DU: The exact building/address (link to a domiciliary unit record)


Institution: The health institution where the person died (or the health institution that certies a death which
occurred at home, at work, or in a public place)
Op. Sector: Operational Sector where the death occurred.
Country and Subdivision, such as province. These two elds are automatically lled with the address information
from the health institution.
Cause section:
Cause: The immediate cause of death (link to a Disease record)
Underlying conditions: Medical conditions that lead to death, in chronological order.
Other section:
Type of death: Choose between Natural, Suicide, Homicide, Undetermined, or Pending Investigation
Autopsy: Check if an autopsy has been performed
Code: Unique identier to the certicate. The format / nomenclature is country-dependent.
Observations
If you create a death 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 death certicate; please note that
signing a death certicate can not be undone. Signing a death certicate will add the name of the certier (the health
professional) plus date and time of the signing process.

15.4. DIGITAL SIGNATURES

39

15.4 Digital Signatures


It is highly recommended that you use digital signatures to sign the death certicate. The GNU Health Cryptography
module health_crypto has the functionality to verify any change to the document. It also allows you to use your
private key to sign the document, giving it legal value in many countries. Once signed, the document can be verify
against the person who ultimately signed the certicate.

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.

16.1 The Vaccine

Vaccines from the WHO list of essential medicines

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

16.2. THE IMMUNIZATION SCHEDULE

41

16.2 The Immunization Schedule


Health Conguration Immunization Schedule

Immunization schedule sample

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

Immunization Schedule Line

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

CHAPTER 16. IMMUNIZATIONS

Attributes for each immunization line

Sample immunization process

16.3 The Vaccination Process


The following patient shortcut will take you both to the vaccination history and to the vaccination process itself.
Health Patient (relate action) Vaccinations
The vaccination form to register the information associated to the immunization itself. The main sections are:
Header: It contains the patient name and the vaccine to administer
Administration section: The amount of vaccine and the administration site
Stock information: The stock and lot associated to the vaccine. GNU Health also allows to enter the picture of
the vaccine label. This is quite important, since it contains quite a bit of information that can be useful in the
future. Please include it whenever is possible.
Notes: Extra information associated to the immunization process itself. There is also a wizard that allows to
create the stock move of the product related to the vaccine, once this has been used / discarded.

16.4. IMMUNIZATION STATUS REPORT

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.

16.4 Immunization Status Report

Immunization Status Report

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 16. IMMUNIZATIONS

16.5 Vaccine stock


Vaccines can be tracked and inventoried by means of stock management.
To quickly create a new stock move, right-click the vaccine > Actions > Create Vaccine Stock Move. To view previous
stock moves, right click the vaccine > Relate > Stock Moves [readonly].
Note: Do not create new Stock Moves from the Relate view.

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

CHAPTER 17. CONFIGURATION

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.8 Health Professionals


In the Health Professionals subsection you manage the sta of a health institution. A Health Professionals record
contains mainly the professional qualications, while the personal information (like name, date of birth, home address
and so on) is stored in the associated Party record. The following elds are available in a Health Professionals record:
Health Professional: Link to a Party record. You can either select an existing record or create a new one.
(Please note that only party records with the Health Professional ag can be found when searching. So if you
can't nd a party that exists already in your system, please check this ag before unintentionally creating a
duplicate record.)
Licence ID
Specialities: One or more Health Professional Specialites that health professional has experience in. You can
select from the list of existing specialities (which will be the standard procedure) or create a new one if necessary.
Extra Info
Institution: Link to a Health Institution record.
Main Specialty: Link to one of the entries in the Specialties list of this health professional (see above). Please
note that you must save the Health Professionals record rst for being able to edit this eld.
PUID: Identier from the Party record. Filled in automatically.
Note: In GNU Health, one health professional can only work for one health institution at a time. If you try to create
a second Health Professionals record linking to the same Party record, you will get an error message.

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

Pediatrics Growth Charts WHO

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 ?

18.2 Creating a party with the patient property

GNU Health party with patient attribute set

48

18.3. LISTING THE CURRENT PATIENTS

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.

Patient list view

18.2.1

Step 1: Party denition and demographics

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

Step 2: Enabling the patient attribute in the party

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.

18.3 Listing the current patients


You can access the patient main menu from Health Patients Patients. This menu action will show all the
patients. That is, parties that have the patient attribute and that have associated a patient record to it. You can search
patients from any of the elds on the tree view. You can enter any of the records by double clicking the patient record
from the list. That action will take you to the form view. It you have permissions, then you will be able to edit it.

50

CHAPTER 18. PATIENT MANAGEMENT

GNU Health patient main screen

18.4 Creating a patient record


You can create the patient from clicking on the new record icon or typing Ctrl + N. This will take you to the main
patient form.
The rst - and required - eld is the link to the party that has been created earlier in the process. The search is limited
to parties with the patient attribute.

18.5 Printing a patient ID card

Patient ID card sample with QR Code

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).

18.5. PRINTING A PATIENT ID CARD

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

How to open the list of evaluations for a specic patient

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.

19.2 Evaluations History


From the Patients form you can switch to the Evaluations history of a given patient by clicking on the Relate button
in the toolbar. The system allows to print the report with all the patient information, which is very important when a
doctor needs to see the overall situation of the patient.
52

19.3. EVALUATIONS FORM

53

The Evaluations history in GNU Health

The evaluations form in GNU Health

19.3 Evaluations Form


The doctor has dierent tabs that will help him collect information during the evaluation process. The idea is to gather
as much information as possible, this will allow the physician to have a better idea about the patient and to give a
presumptive diagnosis in order to get to a nal one and start the right treatment.

19.3.1 Main Info Tab


In this section we can link the evaluation to an existing previous appointment or just start a new one. The doctor can
input the patient complaints and/or present/existing symptoms or illness.

19.3.2 Clinical Tab


The doctor will gather all the vital signs (temperature, pressure ), anthropometry info and signs and symptoms
encountered during the evaluation.

54

CHAPTER 19. PATIENT EVALUATIONS

19.3.3 Mental Status Tab


The physician can make a quick Glasgow Coma Scale when its necessary.

19.3.4 Diagnosis Tab


Finally the physician can make a presumptive diagnosis and input more info about it as well as treatment plan.

Chapter 20

Patient Appointment and Admission


Management
20.1 Appointments
20.1.1

Information stored per appointement

The appointments form in GNU Health

Each appointment can store the following information:


Appointment ID
Patient
Type of Appointment
Level of Emergency
Date
Specialty
Health Professional
Health Center
55

56

CHAPTER 20. PATIENT APPOINTMENT AND ADMISSION MANAGEMENT

The list of all appointments in GNU Health

20.1.2

List of all appointments

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

List of appointments for a specic patient

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

How to access the list of appointments for a specic patient

The list of appointments for a specic patient

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

CHAPTER 20. PATIENT APPOINTMENT AND ADMISSION MANAGEMENT

The Hospitalizations list in GNU Health

The Hospitalization form in GNU Health

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.

21.2 Requesting a Laboratory Test

The Request Lab Test dialog in GNU Health

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

CHAPTER 21. LABORATORY MANAGEMENT


Date: The date and time of the request (default values are the current date and time)
Urgent: A checkbox to indicate an urgent request
Patient: The name of the patient (link to a patient record)
Doctor: The name of the health professional requesting the laboratory test
Tests: One or more tests to be performed

21.2.1

Test Types

GNU Health Laboratory 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.

21.3 Managing Laboratory Tests


To check for new laboratory test request and to create test reports, the members of the laboratory sta will open the
Health Laboratory Lab Test Requests section in the main navigation. This brings up the list of Lab Test Requests,
showing all information described above.
In addition there is a State column indicating whether a request is a Draft or Ordered. As soon as a laboratory sta
member creates a laboratory test by clicking the Action button and selecting the Create Lab Test command, the state
of the request will change from Draft to Ordered. In addition the font color of the request will change from blue to
black, making it easier to distinguish between pending requests and requests beeing processed.

21.4 Storing Laboratory Test Results


A laboratory test record allows to store the values of all test criterea contained in a specic test plus some extra
information.

21.4. STORING LABORATORY TEST RESULTS

61

The list of Lab Test Requests in GNU Health

To access test results there are two possibilites:


1. Click on the Relate button in the patient form and choose the Lab Reports command.
2. Click on the Health Laboratory Lab Test Results command in the main navigation.
The Lab Tests Results form is structured as follows:

21.4.1 Main Info Tab


In the upper half of the Main Info tab you see information about the patient and about the test as a whole. The
majority of this information is copied from the laboratory test request. In addition there are the following elds:
Date of the Analysis
Pathologist
In the lower half of the Main Info tab there is the Lab Test Criterea table. This table allows to enter the following
information for each criterion of the test:
Warn
Excluded
Analyte
Value
Result - Text
Lower Limit
Upper Limit
Units

62

CHAPTER 21. LABORATORY MANAGEMENT


Remarks

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.

21.4.2 Extra Info Tab


The Extra Info tab oers room for a summary of the results and a diagnosis.

21.5 Printing Laboratory Reports

GNU Health Laboratory Reports

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

GNU Health: Conguration of lab test units

21.6.1

Lab Test Units

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

Lab Test Types

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

CHAPTER 21. LABORATORY MANAGEMENT

GNU Health: Conguration of lab test types

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 and Services Management


24.1 Products
24.1.1

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

Creating new medication products

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

CHAPTER 24. PRODUCTS AND SERVICES MANAGEMENT


2. The product must be described and costed as individual dose units that are dispensed / administered to patients. e.g. Amoxicillin 500mg capsules (UOM = capsule), Amoxicillin 250mg/5ml oral liquid (UOM = mL),
Benzylpenicillin 600mg vials (UOM = vial)
3. A range of new Default UOM values will need to be created for medication dose units tablet, capsule, mL,
vial etc
4. Always tick the Consumable, Medicament and the Purchasable boxes.
5. When the Purchasable box is ticked a new tab will open allowing the setting up of Suppliers for a particular
product. Set up any number of suppliers to attach to the product.
6. Add a Category as Medicaments or Medicaments / WHO essential medicines.

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.

24.3 Invoicing Patients


24.3.1

Step 1: Listing Health Services to be Invoiced

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)

24.3. INVOICING PATIENTS

69

GNU Health 2.8: Health Services form

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

Step 2: Creating the Invoice

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

CHAPTER 24. PRODUCTS AND SERVICES MANAGEMENT

GNU Health 2.8: Create Health Service Invoice dialog

Invoice record in GNU Health

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

24.3. INVOICING PATIENTS

71

of the invoice to Draft again which will allow editing.


Payed: Clicking the Post button will bring an invoice to the Paid stage. The invoice can not be edited anymore,
and you can't change its state neither.

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.2 Stock Locations


Stock locations can be dened, edited, and deleted in the Inventory & Stock Locations section. You can have as
many locations as you need, and you can create hierarchical structures by assigning a parent location to a location.
There are six types of locations:
Storage: Storage locations represent real places where products are stored.
Warehouse: Warehouses are used to group several storage locations.
Customer: Customer locations are virtual locations for products that have been sent to customers.
Supplier: Supplier locations are virtual locations for products that have been received from suppliers.
Lost And Found: Lost And Found locations are used for inventory gaps.

25.3 Stock Movements


Whenever goods are transported from one location to another you create a move record in the Inventory & Stock
Moves section. There you basically indicate what amount of a certain product has been moved from one location to
another, and at which date. By doing so you tell GNU Health to adapt the inventory of the to locations aected.
A move has one of the following states:
Draft: A move that is planned for the future but still subject to modications. Default state for new move
records.
Assigned: A move that will not be modied anymore. The products aected by the move will be reserved.
Done: A move that has been performed in the real world.
Cancel: A move that has been cancelled in Draft or Assigned state and therefore has never taken place in the
real world.
72

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

CHAPTER 25. STOCK MANAGEMENT


Draft: The containing moves are in draft.
Waiting: The shipment is waiting for been processed.
Assigned: The products have been assigned.
Done: The moves have been made.
Cancel: Shipment was cancelled befor reaching the Done state. All containing moves are cancelled.

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

The Groups list in GNU Health

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

The Members tab in the Groups form

27.2.1 Members Tab


The Members tab lists all users that have been assigned to this group. You can add users to the group here, or you
can double click on a user to see this users details.
It is a safe practice to dene all access rights of a group rst and add users to the group later.

27.2.2 Access Permissions Tab


The Access Permissions tab denes the access rights of a group. There are four types of rights that can be granted to
a group:
1. Access to a certain model: This allows to grant the right to read, write, create and/or delete records of a certain
record type (or model as it is called in GNU Health).
2. Access to a certain eld: This allows to grant the right to read, write, create and/or delete data in certain eld.
While eld access is not as commonly used as model access, this option allows you to ne tune your access
permission and to protect sensitive data.
3. Access to a certain menu item: This allows to show or hide sections in the main navigation. It is a good practice
to hide sections where a group should not or cannot edit data to simplify the user interface.
4. Access to a certain rule

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

CHAPTER 27. ACCESS MANAGEMENT

The Access Permissions tab in the Groups form

27.3.1 User Tab

The User tab in the Users form

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.

27.3.2 Actions Tab


27.3.3 Access Permissions Tab
In the Access Permissions tab a user can be assigned to one or more groups. Please be aware that not assigning groups
here will lead to users who can log into the system but not do anything within the system.

27.3.4 Preferences Tab


In the Preferences tab you can set the preferred language of a user.

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.

28.2 Main Tab

The Main tab of the socioeconomics module in GNU Health

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

28.3. INFRASTRUCTURE TAB

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.

28.3 Infrastructure Tab

The Infrastructure tab of the socioeconomics module in GNU Health

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.

28.4 Family Tab

The Family tab of the socioeconomics module in GNU Health

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.

29.2 Diet and Exercise Tab

GNU Health - Lifestyle - Diet and Exercise tab

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

29.3. ADDICTIONS TAB

83

notes of interest.

29.3 Addictions Tab

GNU Health - Lifestyle - Addictions tab

GNU Health - Lifestyle - Recreational Drugs

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

CHAPTER 29. LIFESTYLE

29.4 Sexuality Tab

GNU Health - Lifestyle - Sexuality tab

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.

29.5 Safety Tab

GNU Health - Lifestyle - Safety tab

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

Functioning and Disability

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.

31.2 General Tab

Gynecology information in the Patient form (General tab)

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

31.3. SCREENING TAB

87

Gynecology information in the patient form (Screening tab with Mammography History and Colposcopy History open)

31.3 Screening Tab


Screening is the strategy of testing members of a population for certain diseases without signs or symptoms of that
disease. The intention behind screening is to identify and treat patients at an early stage of the disease in the hope to
reduce mortality and suering.
In the Screening tab of the patient form, four gynecological tests can be documented:
Breast Self-Examination: Check the box to indicate that the patient has performed such a test
Mammography: Check the box to open the Mammography History (see below)
PAP Test: Check the box to open the PAP Smear History (see below)
Colposcopy: Check the box to open the Colposcopy History (see below)

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

PAP Smear History

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

The Obstetric History stores information about a pregnancy

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

32.2 General Pregnancy Information


The following elds allow you to store general information about a pregnancy:
88

32.3. PRENATAL EVALUATIONS

89

Patient ID: The name of the patient (link to a Patient record).


Health Prof: The name of the doctor (link to a Person record).
Institution: The health institution (link to a Institution record).
Pregnancy #: The number of the pregnancy for this patient. GNU Health will prevent you from using the same
number twice; however, it will not force you to start with number 1 or to use consecutive numbers.
LMP: The date of the last menstruation period.
Pregnancy Due Date: The expected date of birth for the baby (automatically calculated based on the LMP
date).
Current Pregnancy: Check this box to indicate that this is the most recent pregnancy. GNU Heath will make
sure that you have only one current pregnancy per patient. If you uncheck this box, the elds End of Pregnancy
and Result must be lled in, because GNU Health assumes that this pregnancy has ended.
Fetuses: The number of fetuses.
Monozygotic: Check this box if a pregnancy consists of more than one fetus and they are monozygotic.
IUGR : To indicate a intrauterine growth restriction. Choose between symmetric and asymmetric.
Warn: Check this box if the pregancy is (or was) not normal.
The following elds are only available if the box Current Pregnancy has been unchecked:
Reverse: Check this box if the patient does not know the date of her last menstruational period. This will make
the eld Pr. Weeks visible (see below).
End of Pregnancy: The date when the pregnancy has ended.
Pr. Weeks: The duration of the pregnancy in weeks. This eld is only visible if you check the Reverse checkbox
(see above). Entering a value in this eld will delete the date in the LMP eld (see above).
Result: Choose between Live birth, Abortion, Stillbirth and Status unknown.
Home Birth: Check to indicate if a patient gave birth at home.
BBA (Born Before Arrival): Check to indicate if a patient gave birth on her way to the health institution.

32.3 Prenatal Evaluations


In the Prenatal Evaluations section of the Obstetrics History you can store the results of all evaluations before birth.
For each evaluation the following elds are available:
General information:
Date: The date of the evaluation
Gestational Week: Calculated automatically
Institution: The health instituation where the evaluation took place
Health Prof: The health professional responsible for the evaluation
Information about the mother:
Hypertension: Check this box if the mother has hypertension.
Preeclampsia: Check this box if the mother has pre-eclampsia.

90

CHAPTER 32. OBSTETRICS

Prenatal Evaluation dialog

Overweight: Check this box if the mother has overweight or obesity.


Diabetes: Check this box if the mother has glucose intolerance or diabetes.
Information about the placenta:
Placenta Previa: Check if applicable
Placentation: Choose between Normal decidua, Accreta, Increta, Percreta
Vasa Previa: Check if applicable
Information about the fetus:
Fundal Height
Fetus Heart Rate
EFW (Estimated Fetal Weight)
BPD (Biparental Diameter)
HC (Head Circumference)
AC (Abdominal Circumference)
FL (Femur Lenght)

32.4 Perinatal and Intrapartum Information


The Perinatal Info section documents everything that happens immediately before or after the birth of the baby, that
is, from week 28 of gestation until about the rst seven days after birth. Each Perinatal and Intrapartum Information
record has a Main tab and a Additional Info tab.

32.4. PERINATAL AND INTRAPARTUM INFORMATION

91

Perinatal and Intrapartum Information dialog (Main tab)

32.4.1 Main Tab


Gestational Weeks
Admission: Date and time of admission
Code
Delivery Mode: Choose between Vaginal Spontaneous, Vaginal - Vacuum Extraction, Vaginal - Forceps
Extraction, or C-section.
Fetus Presentation: Choose between Cephalic, Breech, or Shoulder.
Monitors: See "Perinatal Monitor Dialog below
Notes
Institution
Health Professional
Perinatal Monitor Dialog
The Monitors section allows you to record all vital signs of both mother and fetus. Each Perinatal Monitor record
provides the following values:
Mother:
Date and Time
Systolic Pressure and Diastolic Pressure
Mothers Heart Frequency (as opposed to Fetus Heart Frequency - see below)
Contractions
Cervix Dilation

92

CHAPTER 32. OBSTETRICS

Perinatal Monitor dialog

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

32.4.2 Additional Info Tab


The Additional Info tab provides the following elds:
Dystocia
Episiotomy
Lacerations: Choose between Perineal, Vaginal, Cervial, Broad Ligament, Vulvar, Rectal, Bladder, or Urethral.
Hematoma: Choose between Vaginal, Vulvar, or Retroperitoneal.
Placenta Anomalies: Check the Incomplete, Retained, and Abruptio Placentae boxes if appropriate.

32.5. PUERPERIUM MONITOR

93

Perinatal and Intrapartum Information dialog (Additional Info tab)

Puerperium Monitor dialog

32.5 Puerperium Monitor


The Puerperium is the period beginning immediately after the birth of a child and extending for about six weeks. It
is a time in wich the mothers body, including hormone levels and uterus size, returns to a non-pregnant state.
The Puerperium Monitor section allows you to document this phase. Each record provides the following data:
Institution
Health Professional

94

CHAPTER 32. OBSTETRICS


Date and Time
Fundal Height
Lochia Amount: Choose between normal, abundant, or hemorrhage.
Lochia Color: Choose between rubra, serosa, or alba.
Lochia Odor: Choose between normal or oensive.

Chapter 33

Genetics
33.1 Introdcution to Genetics

GNU Health - 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.

33.2 Genetic Risks


As we can see in the next example, the patient Ana Betz has BRCA1 disease gene. GNU Health includes the specic
information of the gene including ocial symbol, ocial long name, aected chromosome, dominance and location.
Family history and some inherited genetic mutations aect breast cancer risk in both men and women. Having an
immediate family member with a history of breast cancer increases your own risk of breast cancer. Although rare,
mutations in the BRCA1 and BRCA2 genes increase risk of breast and other cancers.
95

96

CHAPTER 33. GENETICS

GNU Health - Genetics - Medical Genetics Risks

GNU Health - Genetics - Patient Genetics Risks

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.

33.3. FAMILY HISTORY

97

33.3 Family History

GNU Health - Genetics - Patient Genetic Family Diseases

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.

34.2 Surgeries per Patient

The Surgeries tab in the Patients form

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

34.3. ALL SURGERIES

99

The list view provides the following information:


Description
Base Condition
Urgency
Date (including Time)
Duration
Operation Room
Age of the patient at the time of the surgery
Institution
To see the full record, double click on a list entry. This will bring up the Surgery form (see below).
To add a new Surgeries record, click the Relate button from the toolbar and choose Surgeries. This will open the list
in a new window where you are able to add new records.

34.3 All Surgeries


In the Health Surgeries section you will nd a list of all surgeries in the system. This is the way to look for a surgery
when you don't know the name of time patient, and it allows you to get a broader picture of what is going on in the
operation room.
The columns of that list are the same as in the Patients form (see above). To see the full record, double click on a list
entry. This will bring up the Surgery form (see below).

34.4 Surgeries Form

The Surgeries form in GNU Health

For every surgery you can store the following information:

100

CHAPTER 34. SURGERY

The dialog to select a ICD10-PCS code

Patient: Link to a Patient record.


Date (including time)
Age of the patient at the time of the surgery: Calculated based on the date of birth and the date of the surgery.
Code
Description
Base Condition: Link to a Diseases record.
Urgency: Choose between Optional, Required, Urgent, or Emergency.
Operating Room: Link to an Operating Room record (see Health Institutions: Operating Rooms).
Surgeon: Link to the health professional who was responsible for the surgery.
Anesthesist: Link to the health professional who was responsible for the anesthesia.
Patient Surgical Risk Assessment section:
ASA PS: Choose between PS1: Normal healthy patient, PS2: Patients with mild systemic desease,
PS3: Patients with severe systemic desease, PS4: Patients with severe systemic desease that is a constant threat to life, PS5: Moribund patients who are not expeted to survive without the operation, or
PS6: A declared brain-dead patient who organs are removed for donor purposes.
RCRI: See section Revised Cardiac Risk Index below.
Mallampati Score: In anesthesia, the Mallampati score is used to predict the ease of intubation. It is
determined by looking at the anatomy of the oral cavity. A higher Mallampati score is associated with
more dicult intubation as well as a higher incidence of sleep apnea. Choose between Class 1, Class
2, Class 3, or Class 4.

34.4. SURGERIES FORM

101

Preoperative Checklist section:


Risk of Massive Bleeding: Check if appropriate
Pulse Oximeter in Place: Check if appropriate
Surgical Site Marking: Check if appropriate
Antibiotic Prophylaxis: Check if appropriate
Sterility Conrmed: Check if appropriate
Produres section: As we can see in the screenshot, GNU Health helps you searching the procedure using a
lter with two dierent categories, code and long text.
Code
Notes
Details / Incidents
Anesthesia
End
Duration
State: As long as the record is not signed, the state is In progress. As soon as you click the Sign button, the
state will change to Done.
Signed by: As soon as the record is signed it will show the name of the signing health professional where the
Sign button was.

34.4.1

Revised Cardiac Risk Index (RCRI)

The Revised Cardiac Risk Index (RCRI) dialog in GNU Health

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 34. SURGERY

High Risk Surgery


Preoperative Diabetes
History of Ischemic Heart Disease
History of Cerebrovascular Heart Disease
History of Congestive Heart Disease
Preoperative Kidney Disease
Based on this data, GNU Health automatically calculates the Score (0 .. 6) and the RCRI Class (I .. IV).

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

GNU Health - Pediatrics - Newborn

35.2.1

Creating a Newborn Record

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

CHAPTER 35. PEDIATRICS

GNU Health - Pediatrics - Perinatal

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

Newborn and Mother Wristbands

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).

35.3. PSC (PEDIATRICS SYMPTOM CHECKLIST)

105

How to print a wristband for a newborn in GNU Health

35.3 PSC (Pediatrics Symptom Checklist)


GNU Health has incorporated the Pediatric Symptoms Checklist (PSC) developed by Dr. Michael Jellinek and
Dr. Michael Murphy from the Massachusetts General Hospital. The authors dene the PSC as a brief screening
questionnaire that is used by pediatricians and other health professionals to improve the recognition and treatment of
psychosocial problems in children.
GNU Health uses the standard PSC form to be completed by the parents and will include the Y-PSC. The system
automatically calculates the total PSC score, based upon form values. It also highlights the evaluations that might
indicate a child psychosocial impairment. The PSC cuto values will be localized to the dierent countries (Japan,
Germany, Holland ...), so it will t their recommended cutos.

106

How to nd all PSC records for a patient

The PSC form in GNU Health

CHAPTER 35. PEDIATRICS

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

36.3 Ambulatory Care


36.3.1 Main Tab
The Main tab provides some basic information plus the procudures to be performed by the nurses during ambulatory
care. The following elds are available:
ID
Health Professional
Ordering Physician
Patient
Base Condition
Related Evaluation
Session #
Start: Date and time
Procudures, each consisting of a Code and Comments
107

108

CHAPTER 36. NURSING

Summary
Warning
End: Date and time
Next Session: Date and time
State

36.3.2 Other Tab


The Other tab allows you to store some very basic parameters regarding the patients overall condition. The following
elds are available:
Temperature
Systolic Pressure and Diastolic Pressure
Heart Rate
Respiratory Rate
Oxygen Saturation
Glycemia
Evolution: Choose from Initial, Status quo, Improving, or Worsening.

36.3.3 Medication Tab


The Medication tab for ambulatory care is very much the same like the Medication tab for roundings. The only
dierence is that the location (in terms of stock management) is labelled Care Location (instead of Hospitalization
Location).

36.3.4 Stock Moves Tab


The Stock Moves tab for ambulatory care is identical to the Stock Moves tab for roundings.

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.)

37.2 Admission Process


At the moment a patient is becoming an inpatient you basically need two things to handle the admission in GNU
Health: a Patients record and a Hospitalizations record. If the Patients record does not exist already, create one rst
(for more information see the Patient Management chapter). Then, create a Hospitalizations record.

37.3 Administrative Data Tab


In the Administrative Data tab you can store the following data:
Registration Code
Patient: A link to a Patients record (mandatory).
Hospital Bed: A link to a bed (mandatory). For details, see the Assigning a Bed section below.
Hospitalization Date: mandatory
Expected Discharge Date: mandatory
Calendar Event
Attending Physician
Operating Physician
Admission Type: mandatory
Reason for Admission
Extra Info
Transfer History
109

110

37.3.1

CHAPTER 37. INPATIENT MANAGEMENT

Assigning a Bed

The Beds list in GNU Health

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.

37.4 Nutrition Tab


In the Nutrition tab you can nd all information about eating habits and diets the patient must follow:
Belief: Some religions have specic rules regarding the consumption of food. For example, Jews and Muslims
are not allowed to eat pork meat. Therefore it may be helpful to indicate the belief of the patient here. Please
note that this is a lookup eld where you can select existing entries or create a new entry.

37.4. NUTRITION TAB

111

The dialog box to conrm the assignment of a patient to a bed

Vegetarian: Choose from None, Vegetarian, Lacto-Vegetarian, Lacto-Ovo-Vegetarian, Pescetarian,


or Vegan.
Meals / Diet Program: Add any number of diets. Please note that the Diet eld is a lookup eld for a Therapeutic
Diet record where you can select existing entries or create a new entry.
Other Nutrition Notes / Directions

37.4.1

Managing Beliefes

A Belief record stores the following information:


Belief: The name.
Code: A code you might use in your health institution.
Description: Information about any food related rules for this belief.

37.4.2

Managing Therapeutic Diets

A Therapeutic Diet record stores the following information:


Diet Type

112

CHAPTER 37. INPATIENT MANAGEMENT

Code
Diet Description and Indications

37.5 Medication Plan Tab


In the Medication Plan tab there is a list with all medications (i.e. the application of medicaments) for a patient during
his or her hospitalization. Each entry in this list is a Inpatient Medication record, consisting of the following data:
General Info tab:
Medicament
Indication
Treatment Period Start and Treatment Period End
Administration Form
Administration Route
Dosage
Administration Times
Extra Info tab:
Status: Active, Course Completed and/or Discontinued
Adverse Reactions and Notes
Log History: Each entry records Date & Time, Health Professional, Dose, Dose Unit, and Remarks.

37.6 Care Plan Tab


In the Care Plan tab there are simply two text elds allowing you to enter all information related to the Nursing Plan
and the Discharge Plan.

Chapter 38

Intensive Care Unit


38.1 Introduction to the ICU Functionality
The module health_icu provides basic functionality for Intensive Care Units (ICU). It covers both Intensive Care
medicine and the processes related to the Intensive Care Unit, such as procedures and stock management.
The functionality is divided into two major sections:
Patient ICU Information
Patient Roundings

38.2 Patient ICU Information


All information about a patient that is related to the ICU is managed in the Health Hospitalization Intensive
Care Patient ICU Info section. Every Patient ICU Info record is linked to a Hospitalizations record (not to a Patients
record directly).
The Patient ICU Info form allows you to have an idea of the patient status, days since admission at ICU and use of
mechanical ventilation, among other functionalities.
By clicking the Relate button you can directly create and evaluate the following data for a given patient:
Acute Physiology and Chronic Health Evaluation II (APACHE II)
Electrocardiograms (ECG)
Glasgow Coma Scale (GCS)

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

APACHE II Score form in the ICU module of GNU Health

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).

CHAPTER 38. INTENSIVE CARE UNIT

38.2. PATIENT ICU INFORMATION

115

ECG form of GNU Health

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

CHAPTER 38. INTENSIVE CARE UNIT

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.)

The GSC form in GNU Health

The GCS form in GNU Health provides the following elds:


Registration Code: Link to the inpatient record of the patient (mandatory).
Date: Date and time when the GCS was evaluated (mandatory).
Eyes: Choose between 1: Does not open eyes, 2: Opens eyes in response to painful stimuly, 3: Opens
eyes in response to voice, or 4: Opens eyes spontanously (mandatory).
Verbal: Choose between 1: Makes no sounds, 2: Incomprehensible sounds, 3: Utters inappropriate
words, 4: Confused, disoriented, 5: Oriented, converses normally (mandatory).
Motor: Choose between 1: Makes no movements, 2: Extension to painful stimuli (decerebrate response)",
3: Abnormal exion to painful stimuli (decorticate response)", 4: Flexion / Withdrawal to painful stimuli,
5: Localizes painful stimuli, or 6: Obeys commands (mandatory).
Glasgow: The resuling score (calculated automatically).

38.3 Patient Rounding


The health_icu module adds the ICU tab to the Roundings form (which can be found in the Health Nursing
Roundings section). In this assessment (that can have dierent frequencies, depending on the center policies), you
should enter the basic information starting at the Main tab rst; once you are done with this tab, switch to the ICU
tab. The assessment is divided into the following sections:

38.3.1

Neurologic

((Details to be added))

38.3. PATIENT ROUNDING

38.3.2

117

Respiratory (incl. X-Ray)

((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

Blood and Skin

((Details to be added))

38.3.6

Digestive and Abdomen

((Details to be added))

Chapter 39

Neglected Tropical Diseases


39.1 Introduction to Neglected Tropical Diseases
Neglected tropical diseases (NTD) are a group of infections which are common in developing regions of Africa, Asia,
and the Americas. They are medically diverse in terms of pathogens, prevention measures, and treatments. Compared
to the big three diseases targeted by the UN Millennium Development Goal No. 6 (HIV/AIDS, tuberculosis, and
malaria), NTDs get less funding for treatment and research. The World Health Organisation (WHO) has prioritized
17 neglected tropical diseases which are common in almost 150 countries, aecting more than 1.4 billion people.
(Read more about neglected tropical diseases.)
Note: To use the functionality described in this chapter you must have the modules health_ntd, health_ntd_chagas,
and health_ntd_dengue installed. (More information about modules.)

39.2 Chagas Disease


The Chagas disease is caused by a protozoa and spread by contact with infected feces of the triatomine bug. The
protozoan can enter the body via the bugs bite, skin breaks, or mucous membranes. Infection can result from eating
infected food and coming into contact with contaminated bodily uids. There are approximately 15 million people
infected with Chagas disease. The chance of morbidity is higher for immuno-compromised individuals, children, and
elderly, but very low if treated early. The Chagas disease can be diagnosed through a serological test (although the
test is not very accurate) and treated etiologically or with drugs (although the drugs have severe side eects). (Read
more about Chagas disease.)

39.2.1

Chagas Related Surveys

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

39.2. CHAGAS DISEASE

119

Chagas DU Survey form in GNU Health

Nymphs: Check if nymphs were found.


Domiciliary: Check if triatomines were found in the house.
Peri-Domiciliary: Check if triatomines were found around the house.
Vector: Choose from T. infestans, T. brasiliensis, R. prolixus, T. dimidiata, or P. megistus.
Areas to improve:
Roof: Check if appropriate.
Walls: Check if appropriate.
Floor: Check if appropriate.
Peri-domiciliary: Check if the situation around the house (rather than the house itself) needs improvement.
Preventive measures:
Bug Traps: Check if bug traps are in place.
Fumigation: Check if the domiciliary unit has been fumigated.
Insecticide Paint: Check if the domiciliary unit has been treated with insecticide-containing paint.

39.2.2

Chagas Related Laboratory Tests

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

CHAPTER 39. NEGLECTED TROPICAL DISEASES

39.3 Dengue Fever


Dengue fever is caused by a virus transmitted via mosquito bites. The fever is usually not fatal, but infection with
one of four serotypes can increase later susceptibility to other serotypes, resulting in a potentially fatal disease called
severe Dengue. There are 50100 million dengue fever infections annually in Asia, Latin America, and Northern
Australia. No treatment for either Dengue or severe Dengue exists beyond palliative care. (Learn more about dengue
fever.)

39.3.1

Dengue Related Surveys

Dengue DU Survey form in GNU Health

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.

39.3. DENGUE FEVER

121

Flower Vase: Check if appropriate.


Potted Plants: Check if appropriate.
Tree Holes: Check if appropriate.
Rock Holes: Check if appropriate.
Preventive measures:
Ovitraps: Check if ovitraps are in place.
Fumigation: Check if the domiciliary unit has been fumigated.
General:
Notes
Next survey: The date of the next evaluation of this domiciliary unit.

39.3.2

Dengue Related Laboratory Tests

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.

40.2 Demographics Summary


This entry generates a demographics report within the provided timeframe.
To generate the report, click the menu entry and a new window should appear. Select the institution and relevant
dates for the report, then click Open. The generated report should open in your default word processor.
The report includes a patient census, age pyramid, and more.

40.3 Patient Evaluations


This view provides a summary of all patient evaluations on the system. As it is a readonly list view, you cannot edit
nor add to this information.

40.4 Top Diseases


This entry generates a disease report outlining the number of cases of a certain disease group within the provided
timeframe.
To generate the report, click the menu entry and a new window should appear. Select the disease group (e.g., vascular),
relevant dates for the report, number of records, and click Open.
A list should appear with diseases and cases. To see a graph view, use the Switch view button.
Note: At the moment, many diseases do not have dened groups. Consequently, the report is invariably sparse and
of limited value but hopefully that will change soon!

40.5 Injury Surveillance System Registration


This view provides a summary report of the Injury Surveillance System (ISS), including injuries, patients, and more.
As it is a readonly list view, you cannot edit nor add to this information.
122

40.6. SPECIALTIES BY HEALTH PROFESSIONALS

123

40.6 Specialties by health professionals


As the title suggests, this view provides a list of health professionals and their specialties. As it is a readonly list view,
you cannot edit nor add to this information.

40.7 Evaluations Report


This entry generates a report of patient evaluations grouped by health professional, specialty, or sector.
To generate the report, click the menu entry and a new window should appear. Select the relevant dates, grouping
(by health professional, specialty, etc.), and click Open.
A list should appear of your selected grouping and correspending evaluations. To see a graph view, use the Switch
view button.

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.

43.2 Installing GNU Health on GNU/Linux and FreeBSD


43.2.1

Operating System requirements

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

Creating the Operating System User

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

43.2. INSTALLING GNU HEALTH ON GNU/LINUX AND FREEBSD

127

user, you can skip this section, otherwise, create it now.


Run the following command as root:
adduser gnuhealth
Note: If your Operating System does NOT include the adduser command, you can use the useradd command
useradd -m gnuhealth

43.2.3

Verify PostgreSQL authentication method

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

Creating the Database User

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

CHAPTER 43. INSTALLATION

Downloading and Installing GNU Health

Running the GNU Health Installer


Become user gnuhealth:
su - gnuhealth cd $HOME
Download GNU Health from GNU.org
wget http://ftp.gnu.org/gnu/health/gnuhealth-latest.tar.gz
Uncompress the le:
tar xzf gnuhealth-latest.tar.gz cd gnuhealth-*
Run the gnuhealth_install.sh script
./gnuhealth_install.sh
Finally, enable the BASH envrironment for the gnuhealth user.
source "$HOME"/.gnuhealthrc

Activate Network Devices for the JSON-RPC Protocol


The Tryton GNU Health server listens to localhost at port 8000, not allowing direct connections from other workstations.
editconf
You can edit the parameter listen in the [jsonrpc] section , to activate the network device so workstations in your net
can connect. For example, the following block
[jsonrpc] listen = *:8000
will allow to connect to the server in the dierent devices of your system.
Setting up a Local Directory for Attachments
By default, Tryton uses a system-wide directory to store the attachments. In GNU Health is advisable to keep the
attachments in the gnuhealth user space.
Edit the server conguration le trytond.conf and enter the attach directory under the [database] section, for instance:
editconf
[database] path = /home/gnuhealth/attach
Conguring the Log File (optional)
Since GNU Health 2.8, the way the server logs and tracks events is based on a log conguration le, that resides in
the cong directory "${GNUHEALTH_DIR}"/tryton/server/cong/.
A default version is shipped, called gnuhealth_log.conf.
It looks something like this:
[formatters] keys: simple [handlers] keys: rotate, console [loggers] keys: root [formatter_simple] format: [%(asctime)s] %(levelname)s:%(name)s:%(message)s datefmt: %a %b %d %H:%M:%S %Y [handler_rotate] class: handlers.TimedRotatingFileHandler args: ('/home/gnuhealth/gnuhealth/logs/gnuhealth.log', 'D', 1, 30) formatter: simple
[handler_console] class: StreamHandler formatter: simple args: (sys.stdout,) [logger_root] level: NOTSET handlers:

43.3. BOOTING UP THE TRYTON SERVER

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

43.3 Booting up the Tryton Server


Change to your newly installed system (use the alias cdexe )
cdexe
and boot the server.
./trytond
You should see something like this. Pay attention at the last line INFO:server:starting JSON-RPC protocol on
*:8000
[Wed Jan 14 11:01:20 2015] INFO:server:using /home/gnuhealth/gnuhealth/tryton/server/cong/log.conf as logging
conguration le [Wed Jan 14 11:01:20 2015] INFO:trytond.server:using /home/gnuhealth/gnuhealth/tryton/server/cong/trytond.conf
as conguration le [Wed Jan 14 11:01:20 2015] INFO:trytond.server:initialising distributed objects services [Wed
Jan 14 11:01:20 2015] INFO:trytond.server:starting JSON-RPC protocol on *:8000

43.4 Installation of the Tryton Client


43.4.1

Standard Method

FreeBSD, GNU/Linux and other *NIX


Download and extract the Tryton client from the tryton site
Install python dependencies :
pip2 install --user python-dateutil
Untar the client tarball:
tar -xzvf tryton-3.4.2.tar.gz
Excute the client:
cd tryton-3.4.2/bin ./tryton

Microsoft Windows
Download the Tryton client .
Follow the instructions.

130

43.4.2

CHAPTER 43. INSTALLATION

Alternative Method (PIP)

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

Setting the Tryton Client Tabs Position for GNU Health

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.

Setting the tabs position

Finally, save your client preferences Options Save Options.

43.4.4

Creating the GNU Health database

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.

43.4. INSTALLATION OF THE TRYTON CLIENT

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

CHAPTER 43. INSTALLATION

Create Database

After the database is created, click OK. You're now ready to log in!

43.5 Logging into the Application


Now that you're back at the login screen, you'll notice that the selected prole is the one you've just created. Fill in
the login form:
User name: the one you used previously usually, admin
Password: the one entered twice in the previous section

43.6 Installing the Default Modules


From this point on, you will use the client for almost every process. Start with the installation of the basic functionality:
1. After you've created the database, the system will ask you to create some new users. You can skip this step for
now.
2. You are then presented with a list of modules that will provide the functionality you desire. If you don't see
the Modules window, navigate to it on the left side: Administration Modules Modules.
3. Select the health_prole module, and click on Mark for installation:

43.6. INSTALLING THE DEFAULT MODULES

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

CHAPTER 43. INSTALLATION

43.7 Creating a Company


The next thing you need to do is to create the initial company, that will be your health center. You will be presented
with a wizard to create it.

Create Initial company

43.7. CREATING A COMPANY

135

Press F3 to create the new company.


Note: At the party form, please make sure you set the institution attribute . You will link this company to your
main health institution later on. Please refer to the screenshot provided in this section for details.

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.

49.2 About Transifex


Since GNU Health version 1.6.3, all translations are managed and stored on the Transifex platform. The translation
les are not included in the source les anymore. This improves the translation quality, and it makes your GNU
Health installation leaner, since it contains only the languages needed by your health institution.
Transifex optimizes collaborative translation: Many translators can work simultaneously on a specic module. This
makes the translations process faster and the quality control easier.

49.3 Installation of Language Packs


We will go through an example on how to enable the Spanish language and to install the language pack for the module
ICD-10 for it. For this example, we will work on the health_icd10 module and the demo database gnuhealth_demo_generic.
Step 1: Declare your language in Tryton and make it translatable. This can be done in the Administration Localization Languages section.
Remember the code of the language (in this case es_ES).
Step 2: Download the translation le for your language and for the specic resource from Transifex.
Place the le under the locale/ directory of your module, with the name matching the language code. In this example,
the le name would be es_ES.po for the Spanish language.
Step 3: Change your user preferences to your new language and timezone:
Step 4: Log out and stop your Tryton server (if its running).
Step 5: Update your module with the following command:
./trytond --update=health_icd10 --database=gnuhealth_demo_generic
Step 6: Start your sever with the new language for your module installed.
141

142

CHAPTER 49. LOCALIZATION

Set the language as translatable

Check language code

49.4 Setting the User Language


Please remember that the language is a user preference. In the same database, you can have dierent users using
dierent languages.

49.4. SETTING THE USER LANGUAGE

Download the GNU Health module language le for the resource at Transifex

GNU Health user language preferences

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).

50.2 Available Modules


GNU Health consists of the following modules:
health: This is the core module providing the basic functionality of GNU Health. See Core Module.
health_archives: Functionality to store and track old or paper-based clinical records.
health_calendar: Calendar / caldav functionality.
health_crypto: Ensures condentiality, integrity and non-repudiation in GNU Health. Allows digital signatures on prescriptions, patient evaluations, surgeries or lab tests. See Security.
health_genetics: See Genetics.
health_gyneco: See Gynecology.
health_history: Generates the patient clinical history reports.
health_icd10: WHO International Classication of Diseases.
health_icd10pcs: ICD-10 Procedure Coding System.
144

50.3. CUSTOM MODULES

145

health_icpm: WHO International Classication of Procedures in Medicine.


health_icu: Functionality for Intensive Care Units. See Intensive Care Unit.
health_imaging: Support for management of Diagnostic Imaging
health_inpatient: Functionality to manage inpatients (or hospitalizations). See Inpatient Management.
health_inpatient_calendar: Adds caldav support for hospitalizations. See Inpatient Management.
health_lab: See Laboratory Management.
health_lifestyle: See Lifestyle.
health_mdg6: World Health Organization Millennium Development Goal 6. Functionality to ght Malaria,
Tuberculosis and HIV/AIDS.
health_ntd: See Neglected Tropical Diseases.
health_ntd_chagas: Implements functionality for the Chagas disease. See Neglected Tropical Diseases.
health_ntd_dengue: Implements functionality for the denge fever. See Neglected Tropical Diseases.
health_nursing: Procedures, roundings and inpatient / outpatient care. See Nursing.
health_pediatrics: See Pediatrics.
health_pediatrics_growth_charts: Charts and reports to evaluate the child growth.
health_pediatrics_growth_charts_who: WHO child development / growth tables.
health_prole : Template to load common modules (deprecated).
health_qrcodes: Permits identifying the patient and the newborns with 2-dimensional Quick-Recognition
codes.
health_reporting: Statistics on dierent indicators (diseases, doctor assignments, .. ). It also creates dierent
charts
health_services: Registers all the services done to a patient, in an ambulatory or inpatient scenario. It will
also generate invoices on selected services.
health_socioeconomics: See Socioeconomics.
health_stock: See Stock Management.
health_surgery: See Surgery.
health_synchro: Implements the functionality to exchange data between several GNU Health installations.
See Synchronization Guide.
health_who_essential_medicines: WHO essential medicines.
health_iss: Injury Surveillance System. Records and georeferences violent injuries, such as accidents, suicides,
sexual assaults or robberies.

50.3 Custom Modules


If you are a software developer, you can customize existing modules or develop your own custom modules according
to the needs of your health institution. For more information, please refer to the section Customizing and Creating
Your Own Modules.
The next chapters will guide you through the customization of GNU Health to meet your health center needs.

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

OpenLDAP server (slapd)


Tryton server modules : trytond_ldap_connection and trytond_ldap_authentication

54.1.2

Central Authentication Workow

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

CHAPTER 54. CENTRAL AUTHENTICATION

Creating the Organization and Users on the LDAP Server

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

Conguring LDAP in GNU Health

GNU Health conguration for user centralized authentication using OpenLDAP

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

Patches and Patchsets


55.1 About GNU Health Patchsets
Since version 2.2.1, patchsets will be released for the GNU Health stable versions (those with even minor number,
e.g. 1.2.3 ).
Suppose the following scenario: The health center GNU SOLIDARIO HOSPITAL installs version 2.2.0. After some
weeks of running the server in the production environment, a bug is discovered that aects the health_service module.
Its not a critical bug but it should be addressed shortly.
In the meantime, the bug has been reported and it has been xed and documented. The system administrator at GNU
SOLIDARIO HOSPITAL has two options:
1. Download and apply the individual patch using the patch tool.
2. Wait and apply the latest patchset.
It will be the context that will determine which method to use, but a general rule, unless you are in the context of
a critical bug, you should use the patchset approach.
Some general ideas:
The patches and patchsets don't require to do the whole installation again. The scripts are usually small and
the installation time is very short in general.
The patchsets are valid for minor numbers (e.g. 2.0.x, 2.2.x).
Whenever a patchset is generated, a new GNU Health version is released, with the patchlevel number of the patchset.

55.2 Patches vs Patchsets


This section discusses the general concepts behind a patch and a patchset, and when to use one or the other.

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

55.3. CRITERIA FOR A NEW PATCHSET RELEASE

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.

55.3 Criteria for a New Patchset Release


1. Bugs marked as critical / blockers
2. Important security issues
3. The number of non-critical bugs

55.4 Applying Patchsets


Read the instructions related to the patchset in Savannah. Depending on the patch you might need to update
the module(s).
Stop the GNU Health instance.
Backup your kernel and database (always, no matter how small is the patch).

154

CHAPTER 55. PATCHES AND PATCHSETS

Log in using the gnuhealth account.


Don't change directories. Stay at your $HOME. Verify that you are in the /home/gnuhealth.
Download the latest patchset for your Major.minor number. For example, if you are in version 2.8.x:
wget http://ftp.gnu.org/gnu/health/gnuhealth_patchset-2.8.latest.tar.gz

Uncompress the patchset:


tar -xzvf gnuhealth_patchset-2.8.latest.tar.gz

Restart the server.

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.

56.2 Gathering Information


Get the latest GNU Health versions and announces: A key point to keep your GNU Health environment in good
shape is to become part of the community. We publish GNU Health version updates and other relevant news in
dierent media. Make sure you subscribe at least to the General users and to the health announce mailing lists.
Verify your current GNU Health version: You can check your current GNU Health database version from the
client, via Administration Modules.

Checking your running GNU Health version

Always upgrade all the GNU Health modules: When we release a version, we always pack all the ocial modules
155

156

CHAPTER 56. UPGRADE

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!

56.3 Prepare your Upgrade


Plan your upgrade process, resources and downtime: Upgrading a hospital information system requires careful
planning. Make sure you choose the right time, and notice your colleagues about the new release.
Test the upgrade process in another computer: It is highly recommended that you count with a separate server,
where you can test your upgrade process in a controlled environment, without impacting your production installation.
Write down all the steps and issues that you run into.

56.4 The Upgrade Process


This section summarizes the upgrade process steps for a standard installation, using the modules included in the
ocial release at GNU.org FTP site. Any version specic information will sent via the health-announce@gnu.org
mailing list, along the new release announcement, so make sure you are subscribed!
Step 1: Stop your Tryton server.
Step 2: Backup your database:
pg_dump your_database_name > your_database_name_backup.sql
Step 3: Backup your GNU health HOME directory (as root):
su - tar -czf gnuhealth_your_version.tar.gz /home/gnuhealth exit
Step 4: Rename the current kernel directory, with gnuhealth user:
cd $HOME mv gnuhealth gnuhealth_your_current_version_number
Step 5: Download the new GNU Health version. The ocial GNU Health tar le contains all the modules.
Step 6: Extract the kernel and follow the instructions as in a new Installation.
Step 7: Update the Tryton conguration le trytond.conf to t your needs. Make sure you have the right values for
your installation. Compare the values with your current version, they should match. Some critical variables are:
data_path
timezone
admin_passwd
The best way to edit the conguration le is to use the GNU Health user alias editconf:
editconf
Step 8: Upgrade the database:
cdexe ./trytond --all --database=your_database_name
Step 9: Start the Tryton server:
cdexe ./trytond
You should be now in your new GNU Health version!

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.2 Translating the Software


Providing GNU Health in a users native language is a big part of the success. You can help by improving existing
translations, or creating a new translation in your own language. Translating GNU Health is easy, it does not require
technical knowledge, and is all done via a web interface. Have a look at the Localization page for more details on the
process.

57.3 Writing and Translating the Documentation


The GNU Health documentation on Wikibooks (which you are reading right now) is not complete, and it needs
adjustments or additions with every GNU Health upgrade.
And if you don't want to write documentation, you can still contribute by translating it into your language to make it
easier for health professionals to work with GNU Health.

57.4 Reporting Bugs


Unfortunately almost any software contains bugs. While we are actively working on xing them so you don't have to
struggle, please do report any bug or anomaly that you encounter.
Reporting a bug does not take much time. It is done via Savannah.
Tip: For faster resolution, please include a description of the steps you performed to get to the bug, and if possible
include screenshots of the issue. But be careful: Don't include patient information in the screenshots or your
description!

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

CHAPTER 57. CONTRIBUTING

Obtaining Your Copy of the Code

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

Customizing and Creating Your Own Modules

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

Backups and High-Availability


58.1 About the GNU Health Control Center
The GNU Health Control Center (gnuhealth-control) is the main tool for administrative tasks of the GNU Health
environment.
It can perform backups and updates of the instance, and it can be used non-interactively (e.g. as a cron job). We
recommend using gnuhealth-control to perform the administrative tasks, since it also creates a log le that will be
very useful in case of problems.

58.2 Invoking gnuhealth-control


The GNU Health Control Center resides in the UTIL directory of your server.
usage: gnuhealth-control command [options] Command: version : Show version backup : Backup he gnuhealth kernel, attach dir and database update : Download and install the patches status : Show environment and GNU Health
Tryton server status Options: --backdir : destination directory for the backup le --dry-run : Check, download and
preview, but don't actually run the update process --database : database name to use with the backup command

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

CHAPTER 58. BACKUPS AND HIGH-AVAILABILITY

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.

59.2 Access Control


59.2.1

Standard Ports

((Missing content?))

59.2.2

Serverpass: The Server Password Utility

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:

gnuhealth@veganworld:~/gnuhealth/tryton/server/util $ python ./serverpass.py Using Tryton conguration le /home/gnuhealth/gnuhealt


Password: Again Password: Conguration le updated with new password !
The server super user encrypted password has been updated, in the corresponding section of the trytond.conf le.
Here is a sample of such le
[database] uri = postgresql://localhost:5432 path = /home/gnuhealth/attach [session] super_pwd = JonB./CoLl8F6

59.3 Public-key Cryptography in GNU Health


161

162

59.3.1

CHAPTER 59. SECURITY

GNU Health Cryptographic Module

Button to generate the electronic prescription and its message digest

Electronic prescription digest

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.

59.3. PUBLIC-KEY CRYPTOGRAPHY IN GNU HEALTH

163

Document verication in GNU Health cryptographic module shows an altered date.

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

Using Digital Signatures in GNU Health

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

Using GPG in GNU Health to digitally sign a document

Validating a document signature using GPG in GNU Health

CHAPTER 59. SECURITY

Chapter 60

Troubleshooting

165

Chapter 61

FHIR REST server


61.1 About FHIR and REST
Fast Healthcare Interoperability Resources (FHIR) is a standard for exchanging healthcare information electronically developed by HL7. For more information about FHIR, please see http://hl7.org/fhir
Representational State Transfer (REST) is a software architecture style for scalable web services developed by
the W3C Technical Architecture Group (TAG). REST based systems can be accessed over the Hypertext Transfer
Protocol (HTTP), the same protocol that is used by Web browsers to request Web pages from and to send data to a Web
server. For more information about REST, please see https://en.wikipedia.org/wiki/Representational_state_transfer

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.5 Running the Server


The server ships with a simple script (run_server.py) to run the server using Tornado.
With the virtual environment activated and as the gnuhealth user, run the server.
$ python run_server.py
However, most production servers use nginx, lighttpd, or apache in front of the Tornado server. For example, a
common practice is to have nginx sit in front of multiple Tornado instances, acting as a load balancer, handling SSL,
and serving static content (like images and common javascript). How to congure an nginx/lighttpd + tornado + ask
setup is beyond this document, although it is not complicated, especially with nginx.

61.6 Troubleshooting
61.6.1

Cannot connect to database

Make sure you are running as the gnuhealth user.


Flask-Tryton should automatically nd and parse the Tryton cong le. If it is not found:
server/cong.py ---------------- TRYTON_CONFIG = '' # Set this to the path of the Tryton conguration le (e.g.,
'/weird/tryton/weird-tryton.conf')

61.6.2

No database with that name

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

Using the FHIR REST server


62.1 FHIR Overview
Fast Healthcare Interoperability Resources (FHIR) is a standard for exchanging healthcare information electronically developed by HL7. The standard denes a common interface for medical software interoperability. For more
reading, look at the FHIR standard.

62.2 URL Structure


The FHIR standard denes a REST API, a set of interactions with each resource. Each resource handles dierent
types of information. Currently, the GNU Health FHIR server supports 12 resources:
Conformance: Describes the servers FHIR capabilities.
Patient: Patient information, like email, address, SSN, etc.
DiagnosticReport: Completed lab tests, but not the data
Observation: Lab data, like Uric Acid values
Practitioner: Health professionals and their information
Procedure: Surgeries/operations
Condition: Diseases/diagnoses
FamilyHistory: Family histories of patients
Medication: Medications (not prescriptions!)
MedicationStatement: Medications taken by a patient
Immunization: Immunizations
Organization: Institutions, departments, companies, etc.
Each resource has its own endpoint. For example, the Patient endpoint is found at /Patient, the DiagnosticReport
endpoint at /DiagnosticReport, and so on. The only exception to this naming schema is the Conformance endpoint
which is found at / and /metadata.
The interactions use HTTP verbs. Simple read and search interactions with GET, and so on.
For further reading into the REST design, read the documentation
Note: Currently, the GNU Health FHIR server has no write functionality.
168

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.

62.4 Searching / Listing


To search a resource, simply add arguments to the endpoint to rene the search. For example, /Patient, will return
all the patients on the server. /Patient?name=ana will return all the patients with Ana in their name.
Note: Many search criteria for the GNU Health FHIR server are not supported yet. Refer to the FHIR documentation for more information.

62.5 Test Server Examples


Some examples with the community FHIR server (may need to sign in):
List all patients
Show info for patient id #1
List all patients with ana in name
List all surgeries
List page 2 of lab data with 3 per page
List lab data for people with betz in last name
List lab data for patient #1
List all CBCs for patient #1

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.

63.2 Installation of Satellites and Central instance


63.2.1

Satellites

Install RabbitMQ messaging system server:


# pkg install rabbitmq
Install Celery-tryton (locally, with gnuhealth server Operating System user). It will install Celery as a dependency.
From GNU Health v2.6, the PYTHONPATH variable is included in the user environment.
$ pip install --user celery_tryton
Download the latest tryton_synchronization module:
$ hg clone http://hg.b2ck.com/tryton_synchronisation

170

63.2. INSTALLATION OF SATELLITES AND CENTRAL INSTANCE

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

Running the Synchronization Engine on Satellite Instances

(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

TRYTON_DATABASE = name_of_your_satellite_instance TRYTON_CONFIG = "/home/gnuhealth/gnuhealth/tryton/server/cong

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.

cdmods cd local cp -a $HOME/gnuhealth/doc/samples/health_synchro . ln -si $HOME/gnuhealth/tryton/server/modules/local/health_sy


$PYTHONPATH/trytond/modules
4) Start the Tryton GNU Health instance
$ cdexe $ ./trytond
5) Start Celery Broker
~/.local/bin $ ./celery --app=celery_synchronisation worker --cong=celerycong
6) Execute the tasks
./celery call celery_synchronisation.synchronise_new --cong=celerycong
or
./celery call celery_synchronisation.synchronise_pull_all --cong=celerycong
or
./celery call celery_synchronisation.synchronise_push_all --cong=celerycong
This tasks will be called from a cron job. You can adjust the period to best t your needs.

172

CHAPTER 63. SYNCHRONIZATION GUIDE

63.3 Technical Documentation


Note: This documentation is mainly taken from B2CK original document on the Tryton synchronization.
Each server instance has a unique ID (`synchronisation_id`) set in the conguration le.
A Celery instance provides three main tasks:
synchronise_push_all: Pushes to the main server all the instances modied since its last synchronization.
synchronise_pull_all: Pulls all the known instances that have changed on the main server.
synchronise_new: Fetch all the non-synchronized instances from the main server.
The tasks communicate with the main server using the XML-RPC protocol dened by synchronisation_url in the
conguration le. celery_synchronisation uses celery_tryton to integrate with Celery.

63.3.1

Developers Mini-Guide to the Synchronization Engine

The health_synchro module contains some of the following classes.


Synchronization Models
There are two main models used to synchronize records from objects.
SyncMixin: Synchronises using an existing unique key on the model.
SyncUUIDMixin: It uses a Universal Unique Identier (UUID) on each record.
SyncMixin
If the model has a unique code, then we should use the SyncMixin method to synchronize the records. A good
example for SyncMixin would be the gnuhealth.patient or the party.party models. Both have a unique id attribute
(eld) and this is the eld that will be used by the syncronisation engine.
Example of SyncMixin use:
class Party(SyncMixin): __name__ = 'party.party' __metaclass__ = PoolMeta unique_id_column = 'code'
Note that in the SyncMixin model, the unique_id_column must always be present, and assigned a eld that is unique
(in this case code).
SyncUUIDMixin
This synchronization method is used for models that represent dynamic events. For example, a patient appointment:
class Appointment(SyncUUIDMixin): __name__ = 'gnuhealth.appointment' __metaclass__ = PoolMeta
Note that there is no unique_id_column on class using the SyncUUIDMixin.

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

Stages of the Release Process

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.

64.2 Upcoming Release Schedule


The next stable GNU Health version will be 3.0.0.

64.3 Security xes


The period of security xes for a stable version is determined by the next two stable GNU Health releases. For
instance, security xes for series 2.4 will end when version 2.8.0 is released.

173

Chapter 65

Dierent ways to test GNU Health


65.1 About this page
Are you a doctor, a nurse, a hospital administrator or a representative of a health department? Do you want to try out
GNU Health by yourself? Then you have several options described on this page. Each option has its advantages and
disadvantages. Some of them are simpler than others, but you don't have to be a programmer or system administrator
to use them.
Please note that the only purpose of this page is to give you an overview and to allow you to choose the option that
ts your needs best. For detailed instructions please follow the indicated links.

65.2 Option 1: Connect to the Demo Database


65.2.1

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

You have to be connected to the Internet.


The Demo Database will be reset periodically, which is not ideal for a long-term test.
You are sharing the Demo Database with other users, so they might interfere with your data.

65.3 Option 2: Run GNU Health from CD/DVD or USB Stick


65.3.1

What to do

Download the Live CD image and burn it to a CD/DVD or write it to an USB stick.
174

65.4. OPTION 3: RUN GNU HEALTH IN A VIRTUAL MACHINE

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.

65.4 Option 3: Run GNU Health in a Virtual Machine


65.4.1

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

CHAPTER 65. DIFFERENT WAYS TO TEST GNU HEALTH

65.5 Option 4: Run GNU Health from Docker (Lightweight Containers)


65.5.1

What to do

Follow the installation instructions at Docker GNU Health Demo.


Start the Tryton client software and connect to the GNU Health Demo Server on your own machine.

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

The Demo database


66.1 Introduction to the Demo Database
GNU Health default installation comes with no data. Its interesting, for academic and training purposes to have some
demo data that exemplies concepts and improves the learning curve.
The demo database is an ongoing project and it will be adapting to the each new GNU Health version. The clinical
history will also grow with time.
For consistency sake, its important to have the main characters information constant (family members name, birth
dates and place, health centers, family doctors etc.). The information and characters are ctitious and we should try
to make it valid for dierent cultures.

66.2 The Zenon-Betz Family


The story goes around the Betz family, and the main character, Ana Betz, a primary school teacher.
Health Center: GNU Solidario Hospital in Las Palmas, Spain
Family Doctor: Cameron Cordara
ID: 765870
Speciality: Family Medicine
Institution: GNU Solidario Hospital
Family: Zenon-Betz family
John Zenon (SSN: 40556644)
Ana Betz (SSN: 55567890) born October 4th, 1985, the main character
Matt (SSN: 97234436), born March 15th 2010, their son

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

CHAPTER 66. THE DEMO DATABASE

66.2.2

Patient Information

Socio-Economic Status: Middle class


Allergies: -lactam hypersensitivity
Diseases: Type 1 Diabetes diagnosed on November 10th 1993
Medication: Insulin since November 10th 1993
Genetic Information
Family history
Maternal Grandfather: Marfans Syndrome (Q87.4)
Father: Essential (primary) hypertension (I10)
Disease Genes
BRCA1: breast cancer 1, early onset
Obstetric Information: G1P1A0
Newborn: Matt, epidural, vaginal birth
Lifestyle

66.2.3

Ex-smoker
Addictions: No recreational drugs
Sexuality: Heterosexual, monogamous, practices safe sex
Safety: Motorcycle rider, uses helmet

Other Information

Family information (Family functionality level, members, operational sectors...)


Imaging (X-rays, CTs, MRIs...)
Genetic info / risks
Lab orders and results
Clinical history of the family

66.3 Online Demo Database


We have a community server available in the Internet so you can connect and try the latest GNU Health. This is
probably the simplest way to check out GNU Health for the rst time.
To use the GNU Health Demo Database, please proceed as follows:
1. Download and install the Tryton client application, according to your operating system:
GNU/Linux, FreeBSD or other *NIX
Windows
MacOS X
Please note that the version of the Tryton client must match the version of the Tryton server. Otherwise you will not be able to connect to the community server (Network Error: Connection refused!").
So if you have already installed the Tryton client, please verify the version number before continuing.
Currently, the community server runs on Tryton 3.4.
2. Set the correct tabs position as described in "Setting the Tryton client Tabs position for GNU Health"
3. Connect to the GNU Health Demo Database using the following information:

66.4. LOCAL DEMO DATABASE

179

66.4 Local Demo Database


66.4.1

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

Installation Using Proteus Demo Script

We use the proteus engine to install the demo database.


First we need to install proteus in your local environment
$ pip install --user proteus
Alternatively, and if you're using any Debian GNU/Linux system, you can also install proteus from a repository.
$ apt-get install tryton-proteus
Warning, do not install proteus using pip and then apt-get as well. Most likely dierence version of proteus will be
installed and the demo database installation will fail.
Now, look for the demo directory. You can run the script from anywhere, but make sure your tryton libraries are in
the python search path. This is important, specially if you use the manual installation.
$ export PYTHONPATH="<PLACE_OF_YOUR_TRYTON_SERVER_DIRECTORY>"
So, for example, if you installed the GNU Health sever with the standard method, then your variable declaration for
PYTHONPATH for Tryton 3.2.3 would be something like :
$ export PYTHONPATH="/home/gnuhealth/gnuhealth/tryton/server/trytond-3.2.3/"
Next, run the script :
$ cd <demo_directory> $ python health_demo_server.py
So, for example, if you installed the GNU Health sever with the standard method, the demo directory would ~/gnuhealth2.6.4/scripts/demo (or whatever version number yours is) and you use:
$ cd ~/gnuhealth-2.6.4/scripts/demo $ python health_demo_server.py
This script will create a new database called gnuhealth_demo with the demo information. Be patient, it can take
some time.
User name: admin
Password: admin

180

CHAPTER 66. THE DEMO DATABASE

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.1 Download the Live-CD


The Live-CD was built on SUSEStudio, and is currently available with the following avours:
GNU Health 2.4 Archived, available on request
GNU Health 2.6 Archived, available on request
GNU Health 2.8: openSUSE 13.1 / KDE4 / 32bit
GNU Health 2.8: openSUSE 13.2 / KDE4 / 64bit / UEFI
GNU Health 2.8: SLES 12 / Text-based Server version / 64bit
Please note: The user name and password necessary to access the GNU Health server on the Live-CD can be found
on that download page as well.
Unlike the full version of openSUSE, the Live-CD contains only packages that are required to run GNU Health. Feel
free to add required programs later on from the openSUSE repositories.
It is recommended to use the Server version SLES 12 on a virtual machine, as it comes with no client! See Documentation

68.2 Install the Live-CD


In order to use the Live-CD, you have to install it on a CD or a USB stick.

68.2.1

USB-Stick / Hard Disk Image

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

68.3. INSTALL THE LIVE-CD TO YOUR HARD DRIVE

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.

68.3 Install the Live-CD to your hard drive


The Live-CD oers the option to install the system and the GNU Health Demo-DB to your hard drive. The relevant
program can be found in the My Computer section of the start menu (the little green button on the lower left corner
of the screen).

Chapter 69

Virtual Machine Images


The live-CD is available in various container formats that allow easy integration into a virtual environment. Currently
the following formats are published:
Xen Guest (.img)
OVF Virtual Machine / ESXI (.ovf)
VMware Workstation / VirtualBox (.vmdk)
SUSE Cloud / OpenStack / KVM (.qcow2)
Hyper-V Virtual Hard Disk (.vhd)
Amazon EC2 Cloud (.ami)

69.1 Running the Virtual Machine as Server


Several times the question came up 'How can I access my Live-CD from another desktop'? This should not be too
dicult if you consider some points. The following example bases on Virtualbox, but should be similar on other
virtual environments:
When setting up the network, make sure you select 'Bridged Network'. In this case the virtual box will receive
the IP-Address from your DHCP-Server, not from the host-machine
Make sure the network-name of your virtual box is updated to your DDNS-Server. Even better, you may assign
a x network address to your virtual box, say 192.168.2.100
Try to ping the box from an external client on the network: open a console and type: ping 192.168.2.100
If this works, and your GNUHealth server is running, check if you can access the server from outside: telnet
192.168.2.100 8000
If this works, everything is good.
If not, its time to check the rewall settings of your box. From the Start Menu, select System Administration
YaST. Enter the password for 'root': tryton , and go to 'rewall Settings. Check the external zone (right
interface name?) or even add an exception for the 192.168.2.100/24 network

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.5 Glasgow Coma Scale


The Glasgow Coma Scale (GCS) is a standard to evaluate the level of consciousness of neurological patients. See
Intensive Care Unit.

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.13 Pediatrics Symptom Checklist


The Pediatrics Symptom Checklist (PSC) is an evaluation standard for children. See Pediatrics.

70.14 Person
A person is a human being. Persons can be further specied as patients or health professionals.

70.15 Person Unique Identication Number


The Person Unique Identication Number (or PUID for short) is the unique identier for every person stored in the
system.

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

CHAPTER 70. GLOSSARY

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.

71.2 Concepts of GNU Health and Tryton


What is the dierence between a party, a person, and a patient? And how do they play together?
A Party is a very basic and generic concept in GNU Health. It can represent a human beeing as well as an organisation
or a company, depending on the settings you make. By checking the Person box you declare a party to be a human
beeing; this includes health professionals, patients, and other members of the population alike. Only by checking the
Patient box as well you declare a party to be a patient. And only for patients you are able to create a patient record in
the Health Patients section.
189

190

CHAPTER 71. FAQ

71.3 Demo Database


I can not connect to the GNU Health Demo Database. What shall I do?
Make sure that you are using the correct version of the Tryton client software. This is not necessarily the most
recent version. Please refer to the chapter about the Demo Database.
Make sure your Internet connection is up and running. (Temporary communication problems between the
Tryton client and the Demo Database may be caused by unstable or very slow connectivity.)

Chapter 72

Operating System-Specic Notes

191

Chapter 73

Arch Linux
73.1 Install dependencies
pacman -S postgresql python2-pip pip2 install cracklib

73.2 Initialize the DB cluster


su - postgres initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data' exit

73.3 Start and enable the PostgreSQL service


systemctl start postgresql systemctl enable postgresql
For detailed information, please refer to the Arch Linux PostgreSQL documentation
Continue with the GNU Health Installation

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

75.2 Link Python and cracklib dictionaries


ln -si /usr/local/bin/python2.7 /usr/local/bin/python ln -si /usr/local/libdata/cracklib/pw_dict.* /usr/local/libdata

75.3 Init PostgreSQL server


su - pgsql -c initdb -D /usr/local/pgsql/data -E UNICODE
Continue with the GNU Health Installation

194

Chapter 76

OpenSUSE
76.1 Add Password Management Repository
zypper ar http://download.opensuse.org/repositories/security:/passwordmanagement/openSUSE_13.2 passwordmanagement

76.2 Install dependencies


zypper install python-devel python-pip
At this step, you might get the warning similar to the following :
Problem: python-devel-2.7.8-1.2.i586 requires python = 2.7.8, but this requirement cannot be provided uninstallable providers:
python-2.7.8-1.1.i586[openSUSE-13.2-0] python-2.7.8-1.1.i586[repo-oss] Solution 1: Following actions will be done: do not install python-devel-2.7.8-1.2.i586 do not install python-pip-1.5-2.1.4.noarch Solution 2: deinstallation of patterns-openSUSEminimal_base-conicts-20141007-5.1.i586 Solution 3: break python-devel-2.7.8-1.2.i586 by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/3/c] (c) You can choose Solution 2

zypper install python-cracklib


zypper install postgresql-server postgresql-devel
zypper install gcc libxml2-devel libxslt-devel
Continue with the GNU Health Installation

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

CHAPTER 80. COMMUNITY PAGES

80.1 Text and image sources, contributors, and licenses


80.1.1

Text

GNU Health/Preface Source: https://en.wikibooks.org/wiki/GNU_Health/Preface?oldid=2772356 Contributors: Meanmicio, Bshburne and Anonymous: 1


GNU Health/Introduction Source: https://en.wikibooks.org/wiki/GNU_Health/Introduction?oldid=2753559 Contributors: Xania, QuiteUnusual, Martin Sauter, Meanmicio, Ronna, Leogabriel arg, Auke, Bshburne and Anonymous: 3
GNU Health/Resources Source: https://en.wikibooks.org/wiki/GNU_Health/Resources?oldid=2767860 Contributors: Martin Sauter
GNU Health/First Steps Source: https://en.wikibooks.org/wiki/GNU_Health/First_Steps?oldid=2764633 Contributors: Martin Sauter,
Meanmicio, Ddroetker, Bshburne, Syum90 and Anonymous: 3
GNU Health/The core module Source: https://en.wikibooks.org/wiki/GNU_Health/The_core_module?oldid=2766776 Contributors:
Martin Sauter and Meanmicio
GNU Health/Health Institutions Source: https://en.wikibooks.org/wiki/GNU_Health/Health_Institutions?oldid=2994067 Contributors: Martin Sauter, Meanmicio, Smarro, QUBot, Leogabriel arg, Piegope and Anonymous: 2
GNU Health/Domiciliary Units Source: https://en.wikibooks.org/wiki/GNU_Health/Domiciliary_Units?oldid=2766783 Contributors:
Martin Sauter and Meanmicio
GNU Health/Individuals Source: https://en.wikibooks.org/wiki/GNU_Health/Individuals?oldid=2771906 Contributors: Martin Sauter,
Meanmicio, Ronna and Anonymous: 1
GNU Health/Families Source: https://en.wikibooks.org/wiki/GNU_Health/Families?oldid=2768967 Contributors: Martin Sauter, Meanmicio, Smarro, QUBot, Leogabriel arg and Anonymous: 2
GNU Health/Health Professionals Source: https://en.wikibooks.org/wiki/GNU_Health/Health_Professionals?oldid=2978836 Contributors: Martin Sauter, Meanmicio and Anonymous: 2
GNU Health/Medicaments Source: https://en.wikibooks.org/wiki/GNU_Health/Medicaments?oldid=2772103 Contributors: Martin
Sauter
GNU Health/Prescriptions Source: https://en.wikibooks.org/wiki/GNU_Health/Prescriptions?oldid=2957815 Contributors: Martin Sauter
and Tealump
GNU Health/Vital Records Source: https://en.wikibooks.org/wiki/GNU_Health/Vital_Records?oldid=2952214 Contributors: Chazz,
Martin Sauter and Meanmicio
GNU Health/Immunizations Source: https://en.wikibooks.org/wiki/GNU_Health/Immunizations?oldid=2957817 Contributors: Martin
Sauter, Meanmicio and Tealump
GNU Health/Conguration Source: https://en.wikibooks.org/wiki/GNU_Health/Configuration?oldid=2772404 Contributors: Martin
Sauter
GNU Health/Patient Management Source: https://en.wikibooks.org/wiki/GNU_Health/Patient_Management?oldid=2772219 Contributors: Martin Sauter, Meanmicio, Smarro, QUBot, Leogabriel arg and Anonymous: 1
GNU Health/Patient Evaluations Source: https://en.wikibooks.org/wiki/GNU_Health/Patient_Evaluations?oldid=2766795 Contributors: Martin Sauter, Smarro, Piegope and Anonymous: 1
GNU Health/Patient Appointment and Admission Management Source: https://en.wikibooks.org/wiki/GNU_Health/Patient_Appointment_
and_Admission_Management?oldid=2771908 Contributors: Recent Runes, Martin Sauter, Smarro, Cmelgosa, Piegope and Anonymous:
2
GNU Health/Laboratory Management Source: https://en.wikibooks.org/wiki/GNU_Health/Laboratory_Management?oldid=2765124
Contributors: Martin Sauter, Smarro and Anonymous: 1
GNU Health/Financial Accounting Source: https://en.wikibooks.org/wiki/GNU_Health/Financial_Accounting?oldid=2616504 Contributors: Fishpi, Ronna, Cmelgosa and Piegope
GNU Health/Analytic Accounting Source: https://en.wikibooks.org/wiki/GNU_Health/Analytic_Accounting?oldid=2753788 Contributors: Xania, Martin Sauter and Kavaii123
GNU Health/Products and Services Management Source: https://en.wikibooks.org/wiki/GNU_Health/Products_and_Services_Management?
oldid=2767856 Contributors: Martin Sauter, Ronna, Cmelgosa and Anonymous: 3
GNU Health/Stock Management Source: https://en.wikibooks.org/wiki/GNU_Health/Stock_Management?oldid=2757739 Contributors: Martin Sauter, Ronna and Cmelgosa
GNU Health/Purchase Administration Source: https://en.wikibooks.org/wiki/GNU_Health/Purchase_Administration?oldid=2753800
Contributors: Martin Sauter
GNU Health/Access Management Source: https://en.wikibooks.org/wiki/GNU_Health/Access_Management?oldid=2757689 Contributors: Recent Runes, Martin Sauter, Ronna and Cmelgosa
GNU Health/Socioeconomics Source: https://en.wikibooks.org/wiki/GNU_Health/Socioeconomics?oldid=2765113 Contributors: Recent Runes, Martin Sauter, Ronna, Smarro, Cmelgosa and Anonymous: 2
GNU Health/Lifestyle Source: https://en.wikibooks.org/wiki/GNU_Health/Lifestyle?oldid=2765117 Contributors: Recent Runes, Martin Sauter, Ronna, Smarro and Cmelgosa
GNU Health/Functioning and Disability Source: https://en.wikibooks.org/wiki/GNU_Health/Functioning_and_Disability?oldid=2993324
Contributors: Meanmicio
GNU Health/Gynecology Source: https://en.wikibooks.org/wiki/GNU_Health/Gynecology?oldid=2758687 Contributors: Recent Runes,
QuiteUnusual, Martin Sauter, Ronna, Smarro, Cmelgosa and Anonymous: 4

80.1. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

201

GNU Health/Obstetrics Source: https://en.wikibooks.org/wiki/GNU_Health/Obstetrics?oldid=2758701 Contributors: Martin Sauter


GNU Health/Genetics Source: https://en.wikibooks.org/wiki/GNU_Health/Genetics?oldid=2765118 Contributors: QuiteUnusual, Martin Sauter, Ronna, Smarro and Cmelgosa
GNU Health/Surgery Source: https://en.wikibooks.org/wiki/GNU_Health/Surgery?oldid=2759251 Contributors: Recent Runes, QuiteUnusual, Martin Sauter, Ronna, Smarro, Cmelgosa and Anonymous: 2
GNU Health/Pediatrics Source: https://en.wikibooks.org/wiki/GNU_Health/Pediatrics?oldid=2772205 Contributors: Recent Runes,
Martin Sauter, Meanmicio, Ronna, Smarro, Cmelgosa and Anonymous: 1
GNU Health/Nursing Source: https://en.wikibooks.org/wiki/GNU_Health/Nursing?oldid=2772212 Contributors: Martin Sauter
GNU Health/Inpatient Management Source: https://en.wikibooks.org/wiki/GNU_Health/Inpatient_Management?oldid=2772006 Contributors: Martin Sauter
GNU Health/Intensive Care Unit Source: https://en.wikibooks.org/wiki/GNU_Health/Intensive_Care_Unit?oldid=2765164 Contributors: QuiteUnusual, Martin Sauter, Meanmicio and Cmelgosa
GNU Health/Neglected Tropical Diseases Source: https://en.wikibooks.org/wiki/GNU_Health/Neglected_Tropical_Diseases?oldid=
2958232 Contributors: Martin Sauter, Tealump and Anonymous: 2
GNU Health/Reporting Source: https://en.wikibooks.org/wiki/GNU_Health/Reporting?oldid=2958233 Contributors: Martin Sauter
and Tealump
GNU Health/Demographics Source: https://en.wikibooks.org/wiki/GNU_Health/Demographics?oldid=2764629 Contributors: Martin
Sauter
GNU Health/Epidemiology Source: https://en.wikibooks.org/wiki/GNU_Health/Epidemiology?oldid=2764630 Contributors: Martin
Sauter
GNU Health/Installation Source: https://en.wikibooks.org/wiki/GNU_Health/Installation?oldid=2971717 Contributors: QuiteUnusual,
Martin Sauter, Meanmicio, Ronna, Smarro, Ddroetker, Bvillasanti, Cmelgosa, Lordmwesh, E2jk, Let us contribute, Bshburne, Piegope,
Ch larsen and Anonymous: 25
GNU Health/Administration Source: https://en.wikibooks.org/wiki/GNU_Health/Administration?oldid=2776363 Contributors: Martin Sauter
GNU Health/User Interface Source: https://en.wikibooks.org/wiki/GNU_Health/User_Interface?oldid=2776383 Contributors: Martin
Sauter
GNU Health/Models Source: https://en.wikibooks.org/wiki/GNU_Health/Models?oldid=2776384 Contributors: Martin Sauter
GNU Health/Sequences Source: https://en.wikibooks.org/wiki/GNU_Health/Sequences?oldid=2776385 Contributors: Martin Sauter
GNU Health/Scheduler Source: https://en.wikibooks.org/wiki/GNU_Health/Scheduler?oldid=2776386 Contributors: Martin Sauter
GNU Health/Localization Source: https://en.wikibooks.org/wiki/GNU_Health/Localization?oldid=2776387 Contributors: Recent Runes,
Martin Sauter, Meanmicio, Ronna, Smarro, Cmelgosa, Piegope and Anonymous: 1
GNU Health/Modules Source: https://en.wikibooks.org/wiki/GNU_Health/Modules?oldid=2776388 Contributors: Martin Sauter and
Anonymous: 1
GNU Health/Users Source: https://en.wikibooks.org/wiki/GNU_Health/Users?oldid=2776390 Contributors: Martin Sauter
GNU Health/Countries Source: https://en.wikibooks.org/wiki/GNU_Health/Countries?oldid=2776391 Contributors: Martin Sauter
GNU Health/WebDAV Source: https://en.wikibooks.org/wiki/GNU_Health/WebDAV?oldid=2776392 Contributors: Martin Sauter
GNU Health/Central Authentication Source: https://en.wikibooks.org/wiki/GNU_Health/Central_Authentication?oldid=2987066 Contributors: Martin Sauter and Meanmicio
GNU Health/Patches and Patchsets Source: https://en.wikibooks.org/wiki/GNU_Health/Patches_and_Patchsets?oldid=2762960 Contributors: Martin Sauter, Meanmicio, Bvillasanti and Anonymous: 2
GNU Health/Upgrade Source: https://en.wikibooks.org/wiki/GNU_Health/Upgrade?oldid=2762129 Contributors: Martin Sauter, Meanmicio, Smarro, Piegope, Atcovi and Anonymous: 1
GNU Health/Contributing Source: https://en.wikibooks.org/wiki/GNU_Health/Contributing?oldid=2971002 Contributors: QuiteUnusual,
Martin Sauter, Meanmicio, Cmelgosa, E2jk, Piegope, Tealump and Anonymous: 2
GNU Health/Backups and High-Availability Source: https://en.wikibooks.org/wiki/GNU_Health/Backups_and_High-Availability?
oldid=2759377 Contributors: Martin Sauter, Meanmicio and Anonymous: 1
GNU Health/Security Source: https://en.wikibooks.org/wiki/GNU_Health/Security?oldid=2760986 Contributors: Martin Sauter and
Meanmicio
GNU Health/Troubleshooting Source: https://en.wikibooks.org/wiki/GNU_Health/Troubleshooting?oldid=2759382 Contributors: Martin Sauter
GNU Health/FHIR REST server Source: https://en.wikibooks.org/wiki/GNU_Health/FHIR_REST_server?oldid=3001958 Contributors: Martin Sauter, Tealump and Anonymous: 1
GNU Health/Using the FHIR REST server Source: https://en.wikibooks.org/wiki/GNU_Health/Using_the_FHIR_REST_server?oldid=
2976159 Contributors: Martin Sauter, Tealump and Anonymous: 4
GNU Health/Synchronization Guide Source: https://en.wikibooks.org/wiki/GNU_Health/Synchronization_Guide?oldid=2759404 Contributors: Martin Sauter, Meanmicio and Anonymous: 1
GNU Health/Release Process Source: https://en.wikibooks.org/wiki/GNU_Health/Release_Process?oldid=2952645 Contributors: Martin Sauter, Meanmicio and Anonymous: 1
GNU Health/Dierent ways to test GNU Health Source: https://en.wikibooks.org/wiki/GNU_Health/Different_ways_to_test_GNU_
Health?oldid=2985456 Contributors: Martin Sauter, Meanmicio, Leaderboard, Mbehrle and Anonymous: 2

202

CHAPTER 80. COMMUNITY PAGES

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

File:Book_important2.svg Source: https://upload.wikimedia.org/wikipedia/commons/9/91/Book_important2.svg License: CC BY-SA


3.0 Contributors: Own work Original artist: darklama
File:Create_the_Company._Party_associated_to_health_institution.png Source: https://upload.wikimedia.org/wikipedia/commons/
5/55/Create_the_Company._Party_associated_to_health_institution.png License: CC BY-SA 3.0 Contributors: Own work Original artist:
Meanmicio
File:GNU_Health_-_Health_Professional_creation_-_login_user.png Source: https://upload.wikimedia.org/wikipedia/commons/e/
ec/GNU_Health_-_Health_Professional_creation_-_login_user.png License: CC BY-SA 3.0 Contributors: Own work Original artist:
Meanmicio
File:GNU_Health_Client_Tabs_position.png Source: https://upload.wikimedia.org/wikipedia/commons/3/3a/GNU_Health_Client_
Tabs_position.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_Create_company.png Source: https://upload.wikimedia.org/wikipedia/commons/0/0b/GNU_Health_Create_company.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_Create_new_database.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c9/GNU_Health_Create_
new_database.png License: CC BY-SA 3.0 Contributors: Own work Original artist: E2jk
File:GNU_Health_Domiciliary_Unit.png Source: https://upload.wikimedia.org/wikipedia/commons/d/db/GNU_Health_Domiciliary_
Unit.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_Institution.png Source: https://upload.wikimedia.org/wikipedia/commons/a/a4/GNU_Health_Institution.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_LDAP_configuration.png Source: https://upload.wikimedia.org/wikipedia/commons/0/09/GNU_Health_LDAP_
configuration.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_Module_selection.png Source: https://upload.wikimedia.org/wikipedia/commons/9/9c/GNU_Health_Module_selection.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: E2jk
File:GNU_Health_Module_selection_-_Marked_for_installation.png Source: https://upload.wikimedia.org/wikipedia/commons/4/
4a/GNU_Health_Module_selection_-_Marked_for_installation.png License: CC BY-SA 3.0 Contributors: Own work Original artist:
E2jk
File:GNU_Health_Perform_Pending_Installation-Upgrade.png Source: https://upload.wikimedia.org/wikipedia/commons/d/df/GNU_
Health_Perform_Pending_Installation-Upgrade.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_Profile_Editor.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c9/GNU_Health_Profile_Editor.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: E2jk
File:GNU_Health_contact_information.png Source: https://upload.wikimedia.org/wikipedia/commons/2/25/GNU_Health_contact_
information.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_create_company.png Source: https://upload.wikimedia.org/wikipedia/commons/6/66/GNU_Health_create_company.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_digital_signatures.png Source: https://upload.wikimedia.org/wikipedia/commons/1/16/GNU_Health_digital_signatures.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_digital_signatures_verification.png Source: https://upload.wikimedia.org/wikipedia/commons/d/df/GNU_Health_
digital_signatures_verification.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_disease_genes_form.png Source: https://upload.wikimedia.org/wikipedia/commons/d/da/GNU_Health_disease_
genes_form.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_disease_genes_tree.png Source: https://upload.wikimedia.org/wikipedia/commons/5/52/GNU_Health_disease_genes_
tree.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_electronic_prescription_order_digest.png Source: https://upload.wikimedia.org/wikipedia/commons/1/16/GNU_
Health_electronic_prescription_order_digest.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_electronic_prescription_order_generation.png Source: https://upload.wikimedia.org/wikipedia/commons/b/b9/
GNU_Health_electronic_prescription_order_generation.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio

80.1. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

203

File:GNU_Health_family.png Source: https://upload.wikimedia.org/wikipedia/commons/6/63/GNU_Health_family.png License: CC


BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_integration_with_OpenStreetMaps.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c6/GNU_Health_
integration_with_OpenStreetMaps.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_lab_report_sample.png Source: https://upload.wikimedia.org/wikipedia/commons/4/44/GNU_Health_lab_report_
sample.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_list_of_parties.png Source: https://upload.wikimedia.org/wikipedia/commons/9/98/GNU_Health_list_of_parties.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_login_popup.png Source: https://upload.wikimedia.org/wikipedia/commons/9/90/GNU_Health_login_popup.png
License: CC0 Contributors: Own screenshot Original artist: Tryton development team
File:GNU_Health_modular_design.png Source: https://upload.wikimedia.org/wikipedia/commons/f/fc/GNU_Health_modular_design.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_navigation_area.png Source: https://upload.wikimedia.org/wikipedia/commons/4/4e/GNU_Health_navigation_area.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_patient_ID_card.png Source: https://upload.wikimedia.org/wikipedia/commons/1/17/GNU_Health_patient_ID_
card.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_patient_immunization_status.png Source: https://upload.wikimedia.org/wikipedia/commons/0/0c/GNU_Health_
patient_immunization_status.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_patient_main_screen.png Source: https://upload.wikimedia.org/wikipedia/commons/3/34/GNU_Health_patient_
main_screen.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_patient_tree_view.png Source: https://upload.wikimedia.org/wikipedia/commons/e/e2/GNU_Health_patient_tree_
view.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_person_death_certificate.png Source: https://upload.wikimedia.org/wikipedia/commons/4/41/GNU_Health_person_
death_certificate.png License: GPLv3 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_person_death_certificate_digital_signature.png Source: https://upload.wikimedia.org/wikipedia/commons/7/76/
GNU_Health_person_death_certificate_digital_signature.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_person_death_certificate_hash_verification.png Source: https://upload.wikimedia.org/wikipedia/commons/6/61/
GNU_Health_person_death_certificate_hash_verification.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_person_demographics.png Source: https://upload.wikimedia.org/wikipedia/commons/2/29/GNU_Health_person_
demographics.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_system_upgrade_done_message.png Source: https://upload.wikimedia.org/wikipedia/commons/3/36/GNU_Health_
system_upgrade_done_message.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:GNU_Health_vaccines.png Source: https://upload.wikimedia.org/wikipedia/commons/9/91/GNU_Health_vaccines.png License:
CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:Gnu_health_2-8_gynocology_general.png Source: https://upload.wikimedia.org/wikipedia/commons/9/92/Gnu_health_2-8_gynocology_
general.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_gynocology_screening.png Source: https://upload.wikimedia.org/wikipedia/commons/8/88/Gnu_health_2-8_
gynocology_screening.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_obstetric_history.png Source: https://upload.wikimedia.org/wikipedia/commons/3/3c/Gnu_health_2-8_obstetric_
history.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_obstetrics_perinatal_intrapartum.png Source: https://upload.wikimedia.org/wikipedia/commons/0/0b/Gnu_
health_2-8_obstetrics_perinatal_intrapartum.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_obstetrics_perinatal_intrapartum_additional.png Source: https://upload.wikimedia.org/wikipedia/commons/
e/eb/Gnu_health_2-8_obstetrics_perinatal_intrapartum_additional.png License: CC BY-SA 4.0 Contributors: Own work Original artist:
Martin Sauter
File:Gnu_health_2-8_obstetrics_perinatal_montior.png Source: https://upload.wikimedia.org/wikipedia/commons/5/52/Gnu_health_
2-8_obstetrics_perinatal_montior.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_obstetrics_prenatal_evaluation.png Source: https://upload.wikimedia.org/wikipedia/commons/e/ed/Gnu_health_
2-8_obstetrics_prenatal_evaluation.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_obstetrics_puerperium_monitor.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c1/Gnu_health_
2-8_obstetrics_puerperium_monitor.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_patients_surgery.png Source: https://upload.wikimedia.org/wikipedia/commons/0/02/Gnu_health_2-8_patients_
surgery.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_surgeries_form.png Source: https://upload.wikimedia.org/wikipedia/commons/6/67/Gnu_health_2-8_surgeries_
form.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_2-8_surgery_rcri.png Source: https://upload.wikimedia.org/wikipedia/commons/d/db/Gnu_health_2-8_surgery_rcri.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_apache_score.png Source: https://upload.wikimedia.org/wikipedia/commons/4/44/Gnu_health_apache_score.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_birth_certificate_confirmation.png Source: https://upload.wikimedia.org/wikipedia/commons/b/b9/Gnu_health_
birth_certificate_confirmation.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter

204

CHAPTER 80. COMMUNITY PAGES

File:Gnu_health_birth_certificate_draft.png Source: https://upload.wikimedia.org/wikipedia/commons/e/e1/Gnu_health_birth_certificate_


draft.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_birth_certificate_signed.png Source: https://upload.wikimedia.org/wikipedia/commons/1/14/Gnu_health_birth_certificate_
signed.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_chagas_du_survey.png Source: https://upload.wikimedia.org/wikipedia/commons/7/7b/Gnu_health_chagas_du_survey.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_configuration_lab_test_types.png Source: https://upload.wikimedia.org/wikipedia/commons/2/2d/Gnu_health_configuration_
lab_test_types.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_configuration_lab_test_units.png Source: https://upload.wikimedia.org/wikipedia/commons/3/36/Gnu_health_configuration_
lab_test_units.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_create_invoice_dialog.png Source: https://upload.wikimedia.org/wikipedia/commons/1/1e/Gnu_health_create_invoice_
dialog.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_dengue_du_survey.png Source: https://upload.wikimedia.org/wikipedia/commons/8/8c/Gnu_health_dengue_du_survey.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_ecg.png Source: https://upload.wikimedia.org/wikipedia/commons/c/cd/Gnu_health_ecg.png License: CC BY-SA
4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_groups_access_permissions.png Source: https://upload.wikimedia.org/wikipedia/commons/7/75/Gnu_health_groups_
access_permissions.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_groups_list.png Source: https://upload.wikimedia.org/wikipedia/commons/d/da/Gnu_health_groups_list.png License:
CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_groups_members.png Source: https://upload.wikimedia.org/wikipedia/commons/3/35/Gnu_health_groups_members.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_gsc.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c6/Gnu_health_gsc.png License: CC BY-SA
4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_health_services.png Source: https://upload.wikimedia.org/wikipedia/commons/0/0d/Gnu_health_health_services.png
License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_institution_facilities_actions.png Source: https://upload.wikimedia.org/wikipedia/commons/b/b3/Gnu_health_institution_
facilities_actions.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:Gnu_health_invoice.png Source: https://upload.wikimedia.org/wikipedia/commons/f/fc/Gnu_health_invoice.png License: CC BYSA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_request_lab_test.png Source: https://upload.wikimedia.org/wikipedia/commons/b/b1/Gnu_health_request_lab_test.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_users_user.png Source: https://upload.wikimedia.org/wikipedia/commons/3/30/Gnu_health_users_user.png License:
CC BY-SA 4.0 Contributors: Own work Original artist: Martin Sauter
File:Gnu_health_vaccination_process.png Source: https://upload.wikimedia.org/wikipedia/commons/0/03/Gnu_health_vaccination_
process.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_appointments.png Source: https://upload.wikimedia.org/wikipedia/commons/f/fc/Gnuhealth_appointments.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_appointments_form.png Source: https://upload.wikimedia.org/wikipedia/commons/9/94/Gnuhealth_appointments_
form.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_appointments_patient.png Source: https://upload.wikimedia.org/wikipedia/commons/f/f8/Gnuhealth_appointments_
patient.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_appointments_shortcut.png Source: https://upload.wikimedia.org/wikipedia/commons/6/63/Gnuhealth_appointments_
shortcut.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_beds.png Source: https://upload.wikimedia.org/wikipedia/commons/d/d5/Gnuhealth_beds.png License: CC BY-SA
3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_brca1.png Source: https://upload.wikimedia.org/wikipedia/commons/3/3b/Gnuhealth_brca1.png License: CC BY-SA
3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_check_database_version.png Source: https://upload.wikimedia.org/wikipedia/commons/1/1b/Gnuhealth_check_database_
version.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_evaluation.png Source: https://upload.wikimedia.org/wikipedia/commons/c/cd/Gnuhealth_evaluation.png License: CC
BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_evaluation_action.png Source: https://upload.wikimedia.org/wikipedia/commons/6/6d/Gnuhealth_evaluation_action.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_evaluation_history.png Source: https://upload.wikimedia.org/wikipedia/commons/a/ac/Gnuhealth_evaluation_history.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_genetic_risks.png Source: https://upload.wikimedia.org/wikipedia/commons/9/91/Gnuhealth_genetic_risks.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_genetics.png Source: https://upload.wikimedia.org/wikipedia/commons/8/82/Gnuhealth_genetics.png License: CC BYSA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_hospitalization.png Source: https://upload.wikimedia.org/wikipedia/commons/b/bf/Gnuhealth_hospitalization.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro

80.1. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

205

File:Gnuhealth_hospitalization_form.png Source: https://upload.wikimedia.org/wikipedia/commons/0/03/Gnuhealth_hospitalization_


form.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_hospitalization_form2.png Source: https://upload.wikimedia.org/wikipedia/commons/9/99/Gnuhealth_hospitalization_
form2.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_icd10pcs.png Source: https://upload.wikimedia.org/wikipedia/commons/a/a2/Gnuhealth_icd10pcs.png License: CC
BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_immunization_schedule.png Source: https://upload.wikimedia.org/wikipedia/commons/c/cb/Gnuhealth_immunization_
schedule.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_immunization_schedule_line.png Source: https://upload.wikimedia.org/wikipedia/commons/a/a9/Gnuhealth_immunization_
schedule_line.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_language_resource_selection_transifex.png Source: https://upload.wikimedia.org/wikipedia/commons/2/28/Gnuhealth_
language_resource_selection_transifex.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_language_set_translatable.png Source: https://upload.wikimedia.org/wikipedia/commons/0/04/Gnuhealth_language_
set_translatable.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_link_to_birth_certificate_from_person_(party)_model.png Source: https://upload.wikimedia.org/wikipedia/commons/
a/a1/Gnuhealth_link_to_birth_certificate_from_person_%28party%29_model.png License: CC BY-SA 4.0 Contributors: Own work
Original artist: Meanmicio
File:Gnuhealth_newborn.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c6/Gnuhealth_newborn.png License: CC
BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_newborn_matt.png Source: https://upload.wikimedia.org/wikipedia/commons/8/87/Gnuhealth_newborn_matt.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_newborn_reports.png Source: https://upload.wikimedia.org/wikipedia/commons/6/6b/Gnuhealth_newborn_reports.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_pathology_info.png Source: https://upload.wikimedia.org/wikipedia/commons/9/93/Gnuhealth_pathology_info.png
License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_pediatrics_perinatal.png Source: https://upload.wikimedia.org/wikipedia/commons/2/22/Gnuhealth_pediatrics_perinatal.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_pediatrics_psc.png Source: https://upload.wikimedia.org/wikipedia/commons/5/52/Gnuhealth_pediatrics_psc.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_pediatrics_psc2.png Source: https://upload.wikimedia.org/wikipedia/commons/5/5b/Gnuhealth_pediatrics_psc2.png
License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Gnuhealth_system_of_health_paradigm.png Source: https://upload.wikimedia.org/wikipedia/commons/7/7b/Gnuhealth_system_
of_health_paradigm.png License: CC BY-SA 4.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_translation_language_code.png Source: https://upload.wikimedia.org/wikipedia/commons/d/dc/Gnuhealth_translation_
language_code.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Gnuhealth_user_language_selection.png Source: https://upload.wikimedia.org/wikipedia/commons/1/1e/Gnuhealth_user_language_
selection.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Health_Professional_-_Choosing_the_main_specialty.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c8/Health_
Professional_-_Choosing_the_main_specialty.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Health_Professional_-_Creation.png Source: https://upload.wikimedia.org/wikipedia/commons/0/0d/Health_Professional_-_Creation.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Health_Professional_-_Party.png Source: https://upload.wikimedia.org/wikipedia/commons/4/40/Health_Professional_-_Party.
png License: CC BY-SA 3.0 Contributors: Own work Original artist: Meanmicio
File:Id_card.png Source: https://upload.wikimedia.org/wikipedia/commons/d/df/Id_card.png License: CC BY-SA 3.0 Contributors:
Own work Original artist: Smarro
File:Information_icon.svg Source: https://upload.wikimedia.org/wikipedia/commons/3/35/Information_icon.svg License: Public domain Contributors: en:Image:Information icon.svg Original artist: El T
File:Lab_reports.png Source: https://upload.wikimedia.org/wikipedia/commons/3/34/Lab_reports.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Lab_test_requests.png Source: https://upload.wikimedia.org/wikipedia/commons/2/2e/Lab_test_requests.png License: CC BYSA 3.0 Contributors: Own work Original artist: Smarro
File:Lab_test_type.png Source: https://upload.wikimedia.org/wikipedia/commons/6/6c/Lab_test_type.png License: CC BY-SA 3.0
Contributors: Own work Original artist: Smarro
File:Menu_addictions1.png Source: https://upload.wikimedia.org/wikipedia/commons/0/0c/Menu_addictions1.png License: CC BYSA 3.0 Contributors: Own work Original artist: Smarro
File:Menu_family.png Source: https://upload.wikimedia.org/wikipedia/commons/6/65/Menu_family.png License: CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Menu_infrastructure.png Source: https://upload.wikimedia.org/wikipedia/commons/d/dc/Menu_infrastructure.png License: CC
BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Menu_lifestyle.png Source: https://upload.wikimedia.org/wikipedia/commons/e/e3/Menu_lifestyle.png License: CC BY-SA 3.0
Contributors: Own work Original artist: Smarro

206

CHAPTER 80. COMMUNITY PAGES

File:Menu_sexuality.png Source: https://upload.wikimedia.org/wikipedia/commons/1/1b/Menu_sexuality.png License: CC BY-SA


3.0 Contributors: Own work Original artist: Smarro
File:Menu_socioeconomics.png Source: https://upload.wikimedia.org/wikipedia/commons/6/6d/Menu_socioeconomics.png License:
CC BY-SA 3.0 Contributors: Own work Original artist: Smarro
File:Nuvola_apps_important_yellow.svg Source: https://upload.wikimedia.org/wikipedia/commons/d/dc/Nuvola_apps_important_yellow.
svg License: LGPL Contributors: An icon from gnome-themes-extras-0.9.0.tar.bz2 (specically Nuvola/icons/scalable/emblems/emblemimportant.svg) by David Vignoni. Original artist: Modied to look more like the PNG le by Bastique. Recolored by amurai.
File:Recreational_drugs.png Source: https://upload.wikimedia.org/wikipedia/commons/7/74/Recreational_drugs.png License: CC BYSA 3.0 Contributors: Own work Original artist: Smarro
File:Safety.png Source: https://upload.wikimedia.org/wikipedia/commons/8/84/Safety.png License: CC BY-SA 3.0 Contributors: Own
work Original artist: Smarro
File:Stop_hand.png Source: https://upload.wikimedia.org/wikipedia/commons/f/ff/Stop_hand.png License: CC-BY-SA-3.0 Contributors: Stop hand.svg Original artist: Silsor
File:Symbol_version_newer.svg Source: https://upload.wikimedia.org/wikipedia/commons/e/e5/Symbol_version_newer.svg License:
Public domain Contributors: File:Symbol neutral vote.svg with palette from File:Symbol support vote.svg Original artist: User:Xerol
File:Wikibooks-logo.svg Source: https://upload.wikimedia.org/wikipedia/commons/f/fa/Wikibooks-logo.svg License: CC BY-SA 3.0
Contributors: Own work Original artist: User:Bastique, User:Ramac et al.

80.1.3

Content license

Creative Commons Attribution-Share Alike 3.0

You might also like