Sustainable Asset Management System       

Manage asset tracking/management for the healthcare industry.

 

SUMMARY

 

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.

 

TECHNOLOGIES

 

  1. Eclipse 3.2 IDE for development, debugging.
  2. JBoss-4.0.4.GA as the web server.
  3. SVN version control for versioning and code delivery.
  4. Ant for our build and remote deploy.
  5. Programming Language: Java (jdk 1.5)
  6. JSF for  Front end presentation
  7. PostgreSQL8.1 as the database
  8. Hibernate is used as the object/relational persistence
  9. JFree Chart for displaying charts.

 

 

PROJECTS IMPLEMENTATION DETAILS

 

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.