Inventory SystemApplication Design Document Tomer Peled Al Yaros Kobi Ruham http://www.cs.bgu.ac.il/~peledto
Introduction • The project vision is to create a system that will use the ScanTask mobile solution of cellular bar-code readers to accomplish an availability (inventory and location) system for medical equipment in hospital facilities. • Each equipment and location in will be coded with an unique barcode. • Each user will be equipped with barcode reader glove patent and a mobile phone – wirelessly paired with the reader.
System Requirements overview • Inventory system which contains 3 main application: Server, Mobile application, desktop application. • The system will contain 3 main group of users: Normal, Manager, Administrator. • Each product will be consider as 3 state FSM with the following state: In use, Not in Use, Damage. • Users actions: • Normal: Update product status(In use / not in use), Update product position, Locate product, Login and Logout. • Manager: Build in reports, Update Damage state for a certain product. • Admin: add, remove and update the system products and users data.
System Requirements overview • The glove is connected (paired) with the mobile client at all time with Bluetooth. • The desktop client is connected to the web server through the Hospital infrastructure. • The system does not contain at any stage confidential medical data about patients. • Usability - The system will require minimal knowledge and training. • The update functionality , which is performed by the mobile client application, should not cause a delay to the user.
The server will handle a webservice in order to get (and return) outside requests, Therefore, the main job of the server is to handle requests from the other two applications. • Service layer - Expose the server functionalities to the outside world, it will handle the connections from outside and return the results to the initiators. Based on Apache Axis 2 infrastructure • Business layer - handle all the logic of the system, it will contain a Façade Object which will direct the calls from outside to the right modules in the server system, in order that these modules will handle the requests.
Data Layer - this layer will be responsible for retrieving and updating the database. • Data source - will contain all the information gathered in the ScanTask system. we'll use the Hibernate technology to achieve full database independence • Utilities - contain some utilities which will be used in this server.
The mobile application will be installed on a cellular phone (which has a symbian operating system). • The Mobile Application will communicate with the webservice (which was mentioned before) and it will handle the barcode messages from the barcode reader device • The Mobile Application will be based on J2ME technology using Sprint wireless sdk and LWUIT UI library.
UI Components - The UI screens and commands on the mobile phone. • UI Controller - will be responsible for the flow of the events/screens in the mobile phone. • Acquisition Service - will have the ability to listen to incoming barcode messages - it will use the ScanTask driver in order to do that. • Data Layer - this module will handle the requests from the server and the returns from the server. • Utilities- This module will contain some utilities which will be used in this application.
The Desktop Client application will be installed on stationary computers. It will be responsible for locating items and producing reports. • It will communicate with the webservice (which was mentioned before) and it will handle the report requests from the user. • The Desktop Client Application will be based on .NET c# technology.
Implementation Technology • The desktop client will be implemented with .Net C#. • The Mobile client will be implemented with Java ME (Micro Edition) • The Web service will be deployed over Apache tomcat With Axis2 package. • The Server data layer will be based on ORM (object relational mapping) package named Hibernate. • The desktop client will be deployed using clickOnce in order to ensure that all clients are updated at all time.
- WebService Service Layer «interface» IScanTaskHospital HospitalWebservice 1 - Facade BusinessLayer Business - * Facade 1 1 1 Handlers * * AdminHandler - * ManagerHandler - UserHandler - UserHandler ManagerHandler AdminHandler 1 1 1 Data - DatabaseController - * DatabaseController - DatabaseController * * Databasecontroller - Data Layer Server Classes
Server Classes Desktop Client App
ScanTaskAPI - com . scantask . jme . driver - GUI UI Components LoginForm «interface» «interface» IScannerDevice IScanListener 1 1 ScanTaskMIDlet «interface» IMessage 1 ScannerDeviceFactory DeviceCommand 1 Business Layer - Business CommandUnsupportedException BarcodeListener Controller 1 0 ..* 0 ..* Data Laye - Data 1 «interface» DataHandler WebserviceHandler Mobile App Classes
User Interface – Mobile Application Locate Item:
User Interface – Mobile Application Location update – by scanning a location barcode: