Optor RFID Software Systems      

Manage tracking instrument and inventory in a hospital.

 

SUMMARY

 

To develop a Java standalone application (Eclipse plug in) called as “ISE Control” (Integrated Surgical Environment), which helps to perform equipment tracking/management for the health care industry. The application should have the functionalities for maintaining the information regarding hospital, OR rooms, equipments and cabinets in hospital and tracking them. Application should support any JDBC complaint database.

 

TECHNOLOGIES

 

  1. Eclipse 3.3 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. jFace and SWT for  Front end presentation
  7. PostgreSQL8.1 as the database
  8. Hibernate is used as the object/relational persistence
  9. J2EE Design patterns for handling client requests.

 

 

PROJECTS IMPLEMENTATION DETAILS

 

Following are the major requirements that we had to meet while developing this project:

 

Ø       Technical Requirements

1.      Develop the project as a Java /J2EE based Standalone application.

2.      Application should run in any Operating system.

3.      Develop the console based on jFace / SWT.

4.      Implement user security in the application.

5.      Should use the existing application (RFID Engine) for handling business delegates.

6.      Application should be made independent of the database.

Ø       Functional Requirements

1.      ISE Control includes three main sections.

a.      Main Setup Menu section including the Administrative Settings such as Creating Users, Parent Organization, Hospitals, OR Rooms (Operation Room), Packages and Templates.

b.      Search section includes Search Equipments, Packages, and Shelves.

c.      Wall Color section includes selection of colors for wall.

2.      Actions on ISE CONTROL should be restricted based on users.

3.      Provide CRUD operations for all the components and save the data in RFID Engine using HTTP Client.

4.      Provide Search operations for the equipment, packages, shelf and scheduled surgeries which gets the result from RFID Engine and display the result in ISE CONTROL.

 

Following are the challenges that we had while developing this project:

  1. Develop a console based on Jface (eclipse workbench framework). The console 

     provides users the facility to perform CRUD (Create, Read, Update, and Delete)        

     operations of setup section and mock up display of operating room and equipments.

  1. Develop a design pattern mechanism to send/receive information to/from external applications such as RFID Engine using Http Client.

 

Following are the solutions that we implemented to meet the requirements of the project

 

Ø       Technical Solutions

1.      We developed the application using Java (jdk 1.5).

2.      We used Eclipse 3.3.1 to build GUI console using jFace and SWT.

SWT provides Composite as the parent which controls the child composites and its widgets. Widgets are also capable of listening any events from the user (e.g. Mouse Listener, Focus Listener, etc.)

3.      We used Http Client to get connected with different application.

 

 

Below is the architectural diagram of ISE CONTROL/RFID Engine application. This architecture helps ISE CONTROL to fetch data from external applications using XML data format over HTTP Protocol.

The below diagram shows how it connects to RFID Engine using Http Client with Post Method. Post Method also uses Name Value Pair to send some key value pairs with the request as parameter.

 

System Flow

 

 

  1. From the ISE CONTROL Application we create a HTTP Client request with POST method and forward it to ISE enterprise application.
  2. Application server accepts the request and process it by calling the appropriate delegated class’s API by applying Command Pattern to the request.
  3. The manager layer returns the information in the XML format using DOM Parser.
  4. The generated XML is passed as the response to the HTTP Client’s request.
  5. ISE CONTROL client application accepts the response and converts the XML data back to appropriate object using Apache Common Digester and uses it in the Application.

 

Following are the common features of the project:

Dashboard contains different sections as follows and each section has its own functionality.

  1. Login Page
  2. Admin Profile Management
  3. RFID App
  4. Ambiwall color

 

Login Page

 

This is the first page in the application. Here the users have their own username and password created by admin to login into the application. Based on the role of the user appropriate pages will be opened for the user. There are three user roles “Admin”, “CS User” and “OR User”. The entries made in this screen are taken to RFID Engine to authenticate the user and to get other details of the user such as roles.

 

 

 

Admin Profile Management

 

Here “Admin” and “CS User” have permission to access Admin Profile Screens. This section contains 8 sub sections.

1.      Manage Users

2.      Parent Organization Data

3.      Hospital Facility Data

4.      OR Proximity Data

5.      OR Default Settings

6.      RFID Supply Cabinet Data

7.      Build Packs Template

8.      Build Pack/Tray

 

Manage Users – This section is used by Admin to create, update and delete users of the hospital. The users can be like Surgeons, staffs, etc.

 

Parent Organization Data – This section is used to create a Parent Organization for all the hospitals.  The fields are like Name, Address, Number of Hospitals, Phone Number, Server IP Address, etc. Only one parent organization will be present at any time.

 

Hospital Facility Data – This section adds Hospital for Parent Organization. The fields are like Name, Address, Number of OR’s, Admin name, Email Address, Phone Number, etc.  

 

OR Proximity Data – This Section adds Operation Rooms for the Hospital. Below is the screen for adding Operation Rooms. The user enters total no. of OR’s in the previous page 

 and Application dynamically takes the input and creates the matrix table with text boxes.

User can enter the distance between each OR’s in the appropriate text boxes. On click of next button the distance between each OR’s are inserted into the database.

 

The white boxes are those where we can enter values but in the dark boxes we cannot enter values and are non editable.

 

 

OR Default Settings – This section sets the default position of every major equipment in the Operation Room such as Operating Table position, Floor Pods position, Surgical Lighting position, GCQ Display, Ambient Wall color, RFID Supply cabinets, Webcam & Intercom. These OR Room Default settings are common for all the users of the application.

 

RFID Supply Cabinet Data – This section adds the cabinet for a particular Operating Room. We can choose any of the existing OR Room’s from the dropdown box and set values for fields such as OR Name, No. of Cabinets, Admin name, Phone number, DMX Controller IP and Crestron Server IP. Below is the screen for adding Cabinets to OR Room.

 

Build Packs Template – This section creates a Template for a package. It can be of two types “Standalone” or “Surgery Specific”.  If the user selects Standalone from the drop down box then user will be shown various categories such as “Steel”, “Plastic”, etc. Once user has selected category then the list of equipments are shown to add into the template package. Once Surgery Specific is chosen then list of existing surgeons and surgery types are listed in drop down boxes. On selecting of any one surgeon and surgery type their associated equipments are added to the template.

 

RFID Build Pack/Tray – This section is used to create package which consists of equipments. User has to select appropriate Template from dropdown box, pack number, surgery details, Surgery Date, RFID Number and comments. Below is the screen for RFID Build Pack/Tray.

Here we attach RFID Tags to the packages by inserting the RFID number to it. The RFID Engine always reads the packages which are attached to RFID tag using an antenna. Whenever the tag is removed or damaged from the package then it is updated into the database.

 

RFID APP

This section provides the searching mechanism for equipments, packages, shelves

and scheduled surgeries according to the input given by the user. Here the data entered by the user are sent to RFID Engine where the database is connected, RFID Engine then sends the result back to the ISE CONTROL where the output view is dynamically created to display the result.

 

Ambiwall color

This section used for changing wall color of OR room. Following figure shows the front end control screen used for this.

Based on the movement of color selector circle, the application will record the color for the wall. For each color change system transmit a command to TCP/UDP server that shall listen for incoming commands and adjust the actual OR wall color with the color passed by dashboard.

 

User can change the intensity of the color using slider bar. When slider is moving corresponding color will pass to record color button and hardware.

 

User can record the color by selecting the “Record Color” button and it will be moved to below rectangle boxes.

 

On click of “Bright White” button will change the wall color to white color.

 

On click of “Color OFF” button will change the wall color to gray color.

 

User can close the color picker layer either by clicking “Close Window” button or left bottom corner.

 

 

The color selector mainly uses the following packages “org.eclipse.swt.graphics” and “org.eclipse.swt.events” . The color selector is a widget which has Mouse Listener set to it.

When ever the color selector moves or selects any color the events such as Mouse Down, Mouse Up, Mouse Move events are invoked.  The color selector in the above image has its own (x, y) axis, as per its current location we get pixel value and color of the image on Mouse Down event, according to the color selected we get the appropriate image for the wall.  We also use the selected color in intensity slider to make them light or dark.

 

User can see the color change as below figure: