Name Based Information Tracking System (CBITS)

shopholisticΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 4 χρόνια και 7 μήνες)

259 εμφανίσεις


Based Info
rmation Tracking System (CBITS)

Aims or Objective of N

BITS is a generic system which aims to provide information of different health services
at the individual level, by monitoring all the encounters that an individual undergo


his/her health program. This system aims to help the service provider (health worker or
doctor) by categorizing various health


individual person has to get and
his/her due dates and missed services.
In this way,

the health provider can


outreach services better. The

individual health services information is then aggregated
based on the facility providing services
. T
his system aim to provide a generic effective
monitoring of differen
t health services and drill down to individual p
atient information.

based on the free and open source software
and is a module within the

Information Software2 (DHIS2). DHIS2
is a
tool for collection, validation,
analysis, and presentation of aggregate (statistical) data, tail
ored (but not limited) to
integrated health information management activities.

is a generic tool rather than
a pre
configured database application, with an open meta
data model and a flexible user
interface that allows the user to design the contents

of a specific information system
without the need for programming. DHIS 2 is a modular web
based software package
based on free and open source Java frameworks such a
s Spring, Hibernate and
WebWork. DHIS2 has three
layer architecture.
The presentation lay
er is web
based, and
the system can be used online as well as stand

Technical Requirements

The DHIS 2

and N
BITS are

intended to be installed and run on a variety of platforms.
Hence the system is designed for industry standards regarding databa
se management
systems and application servers. The system should be extensible and modular in order to
allow for third
party and peripheral development efforts. Hence a pluggable architecture
is needed. The technical requirements are:

Ability to run on any

major database management system

Ability to run on any J2EE compatible servlet container

Extensibility and modularity in order to address local functional requirements

Ability to run online/on the web

Flexible data model to allow for a variety of data cap
ture requirements

Frameworks stack

The following frameworks
are used in the

and DHIS2

for application and


Application Framework

Hibernate (
): Hibernate is a persistance f
ramework for Java
objects. It abstracts away an underlying database and maps POJOs to specific
tables. Hibernate supports standard CRUD operations and has powerful querying
facilities.DHIS 2 uses Hibernate to become database independent and in order to
e the Java code cleaner with regard to persistence. All the model objects in
DHIS 2 are POJOs, and persistence is handled by a set of stores (for example
DataStore) with Hibernate implementations (HibernateDataStore). Using
Hibernate in DHIS 2 is simple: J
ust include a dependency to dhis
hibernate in your project. POJOs are mapped to tables in various hibernate
mapping files (e.g. DataValue.hbm.xml), where one can choose to specify table
and column names and types.

Spring (
Spring is a lightweight container. In DHIS 2
it is used to wire classes together.
Typically it is used to select

implementation of an interface to use in different classes. The wiring is
externalized int
o special beans.xml files, which enable

ing of

the entire
system without having to recompile any classes. When the system starts, the
configuration files are read by Spring which then creates different objects and

them together using public

set methods.

WebWork (

& Velocity
WebWork is a framework for making web GUIs. The
default GUI implementa
tion in DHIS 2 is a web implementation. WebWork maps
specific URLs to Action classes, which prepare data for display on a web page.
The resulting data is rendered by Velocity templates, which offers a simple syntax
for referring to variables, loops, macros

and the like. This way the presentation
logic is completely separated from the system, and the actual views are organized
in the Velocity templates.

Commons (

JfreeChart (

JUnit (

JUnit is used to provide unit tests. JUnit is integrated
directly into the Maven build tool, so all unit tests are r
un as part of the bu


Development Framework

Maven (

Bazaar (

Person Object
: is designed for recording all individual
who are in the
such as ANC or Immunization)
in that health facility. The Person object contains
primary information about the person for example first, middle and last name, date of
birth and gender. Any individual who want to get health services have to register in
on registration before entering in to any health program. Even when
child is born,
the particular
child has to be registered in the person registration and its secondary
attribute can be inherited from the mother.

Person Attribute Object:

this object i
s used for defining attributes of registered person.
can define any number of person


in a particular district,
state or
country. The person attribute can be of type text, number, yes/no or date&time. User ca
also specify whe
ther a
ny or all person attribute
s are

compulsory or not.

Person Attribute Value Object:

this object stores all the values of individual’s attribute
information. The combination of person and person attribute object act as a primary and
unique key to record ind
ividual’s attribute information.
Thus one person can have one
value for one person attribute.

Person Identifier Object:

This object stores all the unique identifier
of individual
. A
person can have single or multiple identifiers such as passport number, P
AN number,
Driving license, UUID, etc. this object also contain what is the preferred identifier
used at
different country.
UUID can be one of the identifier that would be stored for each

Identifier Type

this object contains informati
on about identifier, its description,
format and validation if any.

Program Object:

this object contain information about various health program like
mother care, child health, TB, Leprosy, etc and its duration of the health program. For
example Mother
care start from the stage of pregnant women to delivery and her
postnatal care. The duration of whole cycle is 10 to 11 months. A person object can have
one or more health program


to him

but same program object can’t be
assigned twice to same

person for
same duration
Program Object is



health facilities which provide
s those

services. For example: Not all the health service

or program will be

provided by all health facilities

Program Stage Object

A program object ca
n have multiple stages which need follow
by health services provider. For example: Mother care program can be divided in to ANC
registration stage, ANC 1
, 2

and 3

visit stage, delivery stage and post natal care stage.
These stages have particular
rder in the health program. Each

program stage has
minimum number of waiting period from the star

program. For example: delivery
program stage has
minimum numbe
r of waiting period as 9 months from the start of
mother care program.

Program Ins
tance Object

This object stores

the relationship between person object and
program object. Program object specifies the duration of the health program and the
program instance object stores the actual date when a person is enrolled in that program.


time we enroll a Person to a Health Program, a tracking means is provided by
creating a Program Instance which is going to keep the life cycle of a Program for the
Person who triggered the Program. When a Person finishes treatment for a given Health
am, then the corresponding Program Instance is going to be terminated. A Program
Instance could also be terminated due to drop
a Person might not do a successful
program termination.

Program Stage Instance Object:

his object stores various program s
tages, its due date
and its execution date

for particular person object
. This object provides the information
about various health program stage due for
particular person. This would help the
health service provider to

plan her outreach activity plan.

Person data value Object:
This object stores all the data values recorded for particular
person, and his/her health services (data element) value (BP, Pulse, hemoglobin, etc),
assigned health facility and whe
ther the health services were provided at repor
ted health
or not (this is used for aggregating data value

for that health facility) .

Organization Unit Object
: In DHIS 2

an organization unit represents any clinic,
hospital, province administrative office, national health institution or
similar which can
register and report data.

units are

in a hierarchy with a parent and
a set of children. Each

unit is identified by a name and possibly an

unit code.

Organization units may be

moved around i
n the hierarchy, for
example when
province or district borders change

or when new district

are created
some of the health facility reporting order changes to
new district created
. They can
be removed, for example when the actual

unit is

closed. Instead of removing

unit in the system, however, one would simply chose to mark it as closed.
This way it's history and data can be retained.


units may be grouped into
logical groups, for example all
organization units

which provide same health service or
type can be group

as one.

Data element Object:

Data element refers to that which one can register data for. For
example, when counting the number of TB vacc
inated patients in a district,
umber of
TB vaccinated pat
ients, Date of examination, ANC blood pressure, ANC VDRL test

would be a data element. The data element defines what kind of data may be registered,

number, a line of text
, date and time

or a yes/no selection. In the system

this corresponds
to an intege
r, a String
, date

or a boolean value. This means that Data

Value objects which
refer to this data element, must have data on the same type.