Name Based Information Tracking System (CBITS)

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

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

212 εμφανίσεις

Name

Based Info
rmation Tracking System (CBITS)



Aims or Objective of N
BITS:


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
es

in

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

the

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

the health provider can
organi
ze

their

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.



N
BITS is
based on the free and open source software
and is a module within the
District
Health

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

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




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
that
are used in the
N
BITS

and DHIS2

for application and
development:


I.

Application Framework
:




Hibernate (
www.hibernate.org
): 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
mak
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
-
support
-
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 (
www.springframework.org
):
Spring is a lightweight container. In DHIS 2
it is used to wire classes together.
Typically it is used to select

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

the
rewir
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
wire
s

them together using public

set methods.



WebWork (
www.opensymphony.com/webwork
)

& Velocity
(
velocity.apache.org
):
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 (
commons.apache.org
)



JfreeChart (
www.jfree.org/jfreechart/
)



JUnit (
www.junit.org
)

:
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
ild
process

II.

Development Framework




Maven (
apache.maven.org
)



Bazaar (
bazaar
-
vcs.org
)




Person Object
: is designed for recording all individual
who are in the
healt
program
(
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
pers
on registration before entering in to any health program. Even when
a
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.
User
can define any number of person

attribute
s

required
in a particular district,
state or
country. The person attribute can be of type text, number, yes/no or date&time. User ca
n
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
individual.


Identifier Type
O
bject:

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
s

assigned

to him
/her

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

person for
the
same duration
.
Program Object is

also

be

assigned
to
health facilities which provide
s those

services. For example: Not all the health service
s

or program will be

provided by all health facilities
.


Program Stage Object
:

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

and 3
rd

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

program stage has
minimum number of waiting period from the star
t

of
the
program. For example: delivery
program stage has
a
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.

Every

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
Progr
am, then the corresponding Program Instance is going to be terminated. A Program
Instance could also be terminated due to drop
-
out
-
a Person might not do a successful
program termination.


Program Stage Instance Object:

T
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
a
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
facility
or not (this is used for aggregating data value
s

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

units are
organized

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

unit is identified by a name and possibly an
organization

unit code.

Organization units may be

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

or when new district
s

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

unit is

closed. Instead of removing
an
organization

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

Organization

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

which provide same health service or
type can be group
ed

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,
N
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,
a

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.