Sustainable
Asset Management System
Manage asset tracking/management
for the healthcare industry.
To develop a Java (J2EE) based application, which helps to
perform asset tracking/management for the healthcare industry. The application
should have the functionalities for maintaining the informations regarding
Equipments, Patients, and Employees in hospital and tracking them. Application
should support any JDBC complaint database.
Following are the major
requirements that we had to meet while developing this project:
Ø
Actions on SAM should
be restricted based on users.
Ø
Provide CRUD operations
for all the components.
Ø
Implement the mechanism
to collect data from external applications and use the information to deduce
the movement and current location of the assets.
Ø
Generate Bar charts and
Pie Charts for presenting Utilization Reports of equipments to display how
often they are using JFree Charts.
Ø
Provide the facility to
record and view the maintenance history of hospital equipments. There will also
be provision to view a list of equipments for which maintenance is due shortly.
Ø
Provide the facility to
send alarms through email for any events created by the user like when
maintenance is due for equipment.
Ø
Implement Pagination so
that the user can specify the number of records per page to list and can
navigate through different pages.
Ø
Provide Search option
so that user can configure the set of records to be displayed.
Ø
Provide the facility
for sorting the records in the listing by each column.
Ø
Application should be
made independent of the database through Hibernate.
Following are the
challenges that we had while developing this project:
1. Develop a console based on Java Server Framework (JSF).
The console provides users the facility to perform CRUD (Create, Read, Update,
and Delete) operations of setup section and assets and view real-time display of
asset tracking information. Provide separate menu for different sections like
Setup, Equipment, Employees, and Patients. Each section will have submenus.
2. Develop an engine to support persisting of information
into the database, collecting data from external applications, processing the
data for displaying the asset tracking information on the console.
Figure 1 shows how SAM fetches data from external
applications using JMS. It also shows the different user interfaces through
which SAM outputs its processed information. Event Alarm section sends email
messages through java mail for the different events created by users in the SAM
application. Location Tracker Applet displays the location view of any asset
using the data provided by the SAM application. SAM fetches this data from an
external application using JMS.Web browser serves as an interface for the user
to perform the CRUD operations, view the utilization reports etc:

Figure 1
Figure 2 shows the architecture of SAM.
Users interact with the application through the web
application frame work developed using JSF. Hibernate is used as the
persistence layer so the application works with any JDBC complaint database.
JMS client fetches data continuously from the JMS queue and persist into the
database. Event & Alarm Engine executes a thread for each event and sends
email alarms through java mail. Delegator classes control the flow of execution
between different classes.

Figure 2
1. Following are the
common features of the project:
1.1
CRUD operations
Create\Update – As shown in Figure 3, Client side
validation is done through JSF for user entered values. The page heading and
the button label changes dynamically according to the action.


Figure 3
After creating or editing, the current modified record will
be listed at the top in green color in the listing as shown in Figure 4. For
deleting records user can select individual records or use the Select ALL
option to select all records at one click. To deselect the selected records
user can use the Select None option as shown in Figure 6. Select ALL and Select
None options change dynamically.

Figure 4
1.2 Search, Pagination and
Sorting
Search Option helps the user to customize the listing.
Query will be build dynamically based on the search fields entered by the user.
Search fields can be either expanded as in Figure 5 or collapsed as in Figure
6.

Figure 5

Figure 6
Pagination and sorting is implemented through the Action
Event Handling of JSF. Figure 6 shows records sorted in the ascending order of
Department Number. Pagination gives option to navigate through the different
pages of listing like First page, Previous Page, Next page and Last Page. User
can directly visit any page by giving the page number and click the ‘Go’
option. User can set the number of records per page and the default is given as
15.
2. Setup section

Figure 7
Left Menu in the Figure 7 shows all the components in the
setup section. Administrative components are included in the Setup
section.
2.1 Relation between Company,
Units, Departments and Rooms
A company can have one or more departments. A department
can have one or more units. A unit can have one or more rooms. There is one
table each for company, departments, units and rooms in database and given
foreign key relationship between them. So for creating a department, all the
available companies are listed in a dropdown box as shown in Figure 8.

Figure 8
2.2 Event & Alarm
Engine
Application provides two types of alarms, email and sms.
Depending on the selection of alarm type, the textfields displayed will change
dynamically as shown in Figure 9.


Figure 9
Alarms are selected
while creating a new event. Depending on the event type (Predefined or Custom)
selected, the display changes dynamically as shown in Figure 10. Execution of
event is implemented using multithreading. One thread will be running for each
event, it will execute the specific query, prepares the message and sends the
alarm. Then the thread sleeps for the specified interval. An event can have multiple
alarms.


Figure 10
2.3 Vendor, Status Codes, Asset Categories and Maps
These components are independent on any other component in
the Setup section. They will be used in other sections.
2.4 Users
This section helps to create users dynamically and assign
them roles.
3. Equipment Section

Figure 11
In addition to common features discussed, Equipment Section
provides many other features. Left Menu in Figure 11 shows the different
features in equipment section. It provides two additional links under Action
for viewing the current location and history location.
3.1 File Upload
Figure 12 shows the page to Load bulk equipment data from
an XML File

Figure 12
3.2 Dispose Equipment
Figure 13 shows the page that lets the user to dispose
equipments.

Figure 13
When the user selects equipment for disposal, the
application checks with the database whether the Status ‘Decommissioned’ exists
in the status table of the setup section. If exists it directly dispose the
equipment. Otherwise it prompts the user to create the same as shown in Figure
13. If the user confirms, the application takes the user directly to the create
page of the status.
3.3 Maintenance
Figure 14 shows the screen that displays all equipments
with their maintenance due date.

Figure 14
Equipments whose maintenance date is already due will be
displayed in red color. Add Maintenance Button lets the user to create a
maintenance record. History links takes the user to a page which displays
maintenance history of that particular equipment. Each equipment will have a
maintenance interval. Whenever a user creates a maintenance record, the next
maintenance date will be calculated dynamically by the engine and persist to
the database.
Search option is also provided. Options in the Maintenance
Due Date field as in Figure 15 helps the user to see the equipments whose
maintenance due date is for a particular period.

Figure 15
Figure 16 shows the screen that displays the maintenance
history of a particular equipment.

Figure 16
3.4 Utilization Reports
Figure 17 shows Pie Chart that displays usage of equipments
belonging to selected category between the specified start and end dates.

Figure 17
Figure 18 shows Bar Chart displaying usage of equipments belonging
to selected category for each date between the specified start and end dates.

Figure 18
These charts are developed using JFree Charts.
4. Employee &
Patient Section
Employee section and Patient section have the features for
CRUD Operations, and Location History. It is implemented in the same way as
that of equipment section.