Medical Equipment Inventory & Location System ...

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

15 Αυγ 2012 (πριν από 4 χρόνια και 10 μήνες)

410 εμφανίσεις









Medical Equipment Inventory & Location
System

Application Design Document














Technical adviser:

Yuri Magrisso
,
yumariso@gmail.com



Academic adviser:

Prof' Ehud Gudes,
ehud@cs.bgu.ac.il




Project team:



Tomer Peled,
tomerpeled@gmail.com




Al Yaros,
alyaros@gmail.com




Kobi Ruham,
kobiru@gmail.com



Project site URL:

http://www.cs.bgu.ac.il/~peledto





Table of Contents

Overview

………………………………………………………………………………………………

Use Case
s

………………………………………………………………………………………………….

Data Model

………………………………………………………………………………………………….

Behavioral Analysis

………………………………………………………………………………
……

Object
-
Oriented Analysis

………………………………………………………………………….

System Ar
chitecture

……………………………………………………………………………………

User Interface Draft

……………………………………………………………………………………

Testing

……………………………………………………………………………………

Task List

……………………………………………………………………………………


Overview
:

The Project's 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.


The system architecture will be a client
-
server based on 3 layers, which are:




Layer 1:

Database



Layer 2:

Web Service Server



Layer 3:

2 Types of UI
clients


Desktop and mobile















ScanTask Bar code reader
-

The barcode reader device which will be worn
on the nurse's hand. The device has the ability to read barcode notes and
deliver them to the application.



Mobile client



A cellular phone, which will have a client application

installed on it.

The client application will be a mobile UI with a basic query engine that
will have the ability to generate queries towards the web server and
rec
eive answer from the web server. Th
e client will be also able to receive
barcode readings from the bar code reader and send vibration alerts to
the reader on the user hand.



Desktop Client



Another client application

with an advanced UI and a
query engine
which will have
more

functionality
then the mobile client
application

such as BI abilities and administrative abilities.



Web Server

-

the web server is an xml based web service.

It will be in charge of receiving
\
transmitting various messages from
\
to
the different clients

and also from
\
to
the database server.


The communication with the mobile client will be a WEB based and the
communication with the desktop client and the database server will
based upon the local hospital network.



Database Server


the database server will a dedicated servi
ce that will
provide a database service to our system
.

Its interface will allow
the web
service to submit requests and retrieve information. These requests will
be made using a high
-
level query language
-

SQL
.

Note that all of our
data will be saved on that server.

Implementation notes:



The two way connection between the Mobile client and the barcode
reader was already implemented by the scantask company and we will be
given a library and an API in order to int
eract with it. All other
connection
s

and software
modules that were described above
will be
implemented by our team.

1. S
ystem Architecture

































The System composed of three components

:

-

Server

-

Mobile Application

-

Desktop Client




The Server:

The server will be deployed on a stationary computer in the hospital. This computer
will run Linux as an operating system. It will also manage a database on that
computer, which the server will be responsible for getting and setting information
from and to

this database. 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, which means that the server should retrieve
information from the

database and return it in the right forms according to the
interface of the service. The server will be based on 5 modules:

-

Service layer


In this layer the server will expose it’s functionalities to the
outside world (to the two kind of applications),
it will handle the
connections from outside and return the results to the initiators.

Notice that
we'll build a webservice based on
Apache
Axis 2 infrastructure.

Apache
Axis

is an
open source
,
XML

based
Web service

framework. It consists of
a
Java

and a
C++

implementation of the
SOAP

server, and vario
us utilities
and
APIs

for generating and deploying
Web

service applications. Using
Apache Axis,
we can

create interoperable, distributed com
puting
application. Axis is developed under the auspices of the
Apache Software
Foundation
.

-

Business layer


This layer will 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


this is the database which will contain all the information
gathered in the ScanTask system.

Notice that we'll use the Hibernate
technology to achieve full database independence.

Hibernate

is an
object
-
relational mapping

(ORM) library for the
Java

language, providing a
framework

for mapping an
object
-
o
riented

domain model

to a traditional
relational database
. Hibernate solves
Object
-
Relational impedance
mismatch

problems by replacing direct
persistence
-
related database
accesses with high
-
level object handling functions.

-

Utilities


This module will contain some utilities which will be used in
this server. This module contains, for example the SSL architectu
re (notice
that the SSL isn't an obligatory in this project and will be implemented
only if we'll have enough time).


The Mobile Application:

The mobile application will be installed on a cellular phone (which has a symbian
operating system). Each employee

in the hospital who has to use the ScanTask system
will have this kind of cellular phone. The Mobile Application will communicate with
the webservice (which was mentioned above) and it will handle the barcode messages
from the barcode reader device. The m
ain responsibilities of this application are to
help the employee locate a desirable item and to update the location of the items in the
hospital.

The Mobile Application will be based on
J2ME
technology
which is a specification of
a subset of the
Java platform

aimed at providing a certified collection of
Java

APIs

for
the development of
software

for tiny, small and resource
-
constraine
d devices

(for
example mobile phones)
.

Notice that in the development process we'll use the netbeans mobile emulator for
testing and debugging the mobile application.

This application will be based on 5 modules:

-

UI Components


The UI screens and commands

on the mobile phone.

-

UI Controller


The Mobile Application will have a Controller Object
which will be responsible for the flow of the events/screens in the mobile
phone.

-

Acquisition Service


The mobile application will have the ability to listen
to inc
oming barcode messages


it will use the ScanTask driver in order to
do that. Whenever a barcode message arrives, the application will sense it
through the ScanTask driver and will handle it with the Controller Object.

-

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. This module contains, for example the SSL architecture
(notice that the SSL isn't an obligatory in th
is project and will be
implemented only if we'll have enough time).



The Desktop Client:

The Desktop Client application will be installed on stationary computers. It will be
responsible for locating items and producing reports.



2.

Use Cases

Use Case
1

Name

Update item status (to "in use")

Pre
-
condition

The user is logged into the syste
m
.

Post
-
condition



The system database updated
-

the

status

of item X t
o in
-
use.



The user receives notification to the screen that action
has been made.

Description

The user wants to
update the location of

equipment X (can be
multiple items) to room B.

The use
r

takes item X

t
o room B, on arrival to room B he
scans
room B and
item X
a
nd presses
done

button.



Use Case
2

Name

Update item location

Pre
-
condition

The
user is logged into the syste
m, item X is "in use" by the
current normal user.

Post
-
condition



The system database updated
-

the position of item X to
room B



The user receives notification to the screen that action
has been made.

Description

The user wants to
update the location of

equipment X (can be
multiple items) from room A to room B.

The use
takes item X

t
o room B, on arrival to room B he
scans
room B and
item X
a
nd presses
done

button.




Use Case
3

Name

Declare equipment X as
damaged

Pre
-
condition

The user is logged in to the system

Post
-
condition



The system database update the status of item X to
damaged



The user receives notification to the screen that action
has been made.

Description

The user opens The "declare equipment

as damaged" screen
And scans Item X then he presses on Send button.






Use Case
4

Name

Search for equipment of type X

Pre
-
condition

The user is logged in to the system

Post
-
condition

On screen appear all available (Not damaged) equipment list

and their position.

Description

The user Opens the "Search for equipment" screen and
chooses the type X from a list

And press Send button, then the system returns all available
(Not damaged) equipment list and their position






Use Case
5

Name

log In

Pre
-
condition

The user holds cellular phone which connected to the Web
and paired to a barcode scanner.

Post
-
condition



User is logged in to the system



The user receives notification to the screen that action
has been made.

Description

The user
Opens The "log In" screen and presses his user
name and password then he presses Send button. If the
information that was send was correct then he receives
welcome screen else he transferred to "try again" screen






Use Case
6

Name

log out

Pre
-
condition

The user is logged in

Post
-
condition



User is logged out from the system



The user receives notification to the screen that action
has been made.

Description

The user Opens the "log out" screen and presses Send button,
then the system shows
Confirmation dialog and if the answer
was "Yes" then it loges out the user





Use Case
7

Name

prepare built In report

Pre
-
condition



The user is logged in and has manager permissions.



The client is the desktop client.

Post
-
condition

On screen
appear the report results.

Description

The user Opens the "Built In reports" screen and presses on
the relevant report, In order to see the report data.






Use Case
8

Name

Update "
Not Use
" status

per product X

Pre
-
condition

The Current user is logged in to the system
, Item X is "in
use".

Post
-
condition



The system updates Product X availability as available.



The user receives notification to the screen that action
has been made.

Description

The user scans product X barcode
and chooses on the mobile
appeared screen Not
-
In
-
Use option.






Use Case
9

Name

Prepare Dynamic report

Pre
-
condition



The user is logged in and has manager permissions



The client is the desktop client.

Post
-
condition

On screen appear the report
results

Description

The user Opens the "Dynamic reports" screen and builds the
wanted report by dragging the different exposed fields. Then
the user presses over the run button in order to acquire the
report results.




3
. D
ata Model

3
.1 Description

of Data Objects

3
.1.1
S
erver
:


** The next data objects aren't "live" in the system, they just be
ing

used in order to
pass information.


Domain
:


User:


Class Description:

The class represents the properties of a user in the system.


Attributes:


firstName

Type
:
String

Description
:

The first name of the user.


lastName

Type
:
String

Description
:

The last name of the user.


departmentName

Type
:
String

Description
:

The department name

(unique name for each department)
, which the user
belongs to.


isLoggedIn

Type
: boolean

Description
:
indicate if the user is logged in or not.


username

Type
: String

Description
: A unique username of the user.


password

Type
: String

Description
: The password of the user in the system.


lastActionTimeStamp

Type
:
Date

D
escription
:

last time the user did some action in the system


while he was logged in.


Permissions

Type
:
Vector<
String
>

Description
:
vector of permissions
types

for this user.



Location:


Class Description:

The class represents a
bar
-
coded
place

in the hospital.


Attributes:


barcode

Type
: String

Description
: a unique barcode represents the location in the system.


description

Type
: String

Description
:
Description

about the location.


departmentName

Type
:
String

Description
: The department
name

(unique name)

of
which the location belongs to.


buildingName

Type
: String

Description
:
The name of the building this location
is
placed in.


floorLevel

Type
: String

Description
:
The floor level of the building this location
is placed in
.


buildingSection

Type
: String

Description
:
The section of the building this location is belongs to.


roomNumber

Type
: String

Description
:
The room number
.












Item:

Class Description:

This

class
represents

the properties of every item object in the system.

Attributes
:


itemBarcode

Type
: String

Description
: the unique barcode identifier of the item.


itemTypeName

Type
: String

Description
: the type of the item


each item will be included in one type



ownerDepartmentName

Type
: String

Description
: the
department which the item belong to.



isDamaged

Type
: bit

Description
: indicate whether the item is damaged or not (0


not damaged, 1


damaged)


currentLocationBarcode

Type
: String

Description
: the unique barcode

of the location where the item is plac
ed.


isInUse

Type
: boolean

Description
:
Indicates if the Item is currently in Use
.




Action:

Class Description:

This class
represents

an action occurred in the system
.

The actions which will be
saved are: update item location, item searching and status update.

Attributes
:


timeS
tamp

Type
:
Date

Description
:
The time in which this action
occurred
.


u
sername

Type
: String

Description
:
The user
name

of the user
who

did this action
.


itemBarcode

Type
: String

Description
:
The item barcode

of the item which the user did the action on it.


actionTypeName

Type
: String

Description
:
The name

of the type of this action.



Department:

Class Description:

This class
represents

a department in the hospital.

Attributes
:


departmentName

Type
: String

Description
:
The department name
.


managerUsername

Type
: String

Description
:
The
username

of the manager of this
department
.



UserPublicDetails:


Class Description:

The class
represents the properties of a user in the system



but it will be a weakened
Object of user, in order to send just the releva
nt information for some actions
.


Attributes:


firstName

Type
: String

Description
: The first name of the user.


lastName

Type
:
String

Description
: The last name of the user.


username

Type
: String

Description
: A unique username of the user.




ResultObject:


Class Description:

The class represents
a result object. It contains the information of

the result of an
action:
whether the
action succeeds

and if it didn't succeed it will
also
contain a string
representing

the reason for the error.


Attributes:


isSucceed

Type
:
boolean

Description
:
if the action succeed it will hold true, otherwise it will contain false.


errorMsg

Type
: String

Description
:
if the action didn't succeed this string will hold the error message.





3
.1.2
Mobile Application
:


Business:


Controller:


Class Description:

This class is the controller of the application. It will be responsible for the flow
of the
application (according to the events in the system)
. This class will some data in order
to manage the flow at the right way.


Attributes:


scannerDevice

Type
:
IScannerDevice

Description
:
The object which will be responsible for the communication with the
barcode reader
device this interface i
s provided with the API of the S
cantask driver.
.


scanTaskMidlet

Type
:
ScanTaskMIDlet

Description
:
The reference to the GUI of the mobile
application (The MIDlet object)
,
the Controller will invoke the method of the GUI of the mobile
.


dataHandler

Type
:
DataHandler

Description
:
The reference to the

Data
Handler object
, the Controller
will invoke the
methods of the low
layer,

which will eventually get to the webservice of the ScanTask
system.


currentUsername

Type
:
String

Description
:
the current user's username, meaning the current online username
, notice

that if the user
did the logout operation then this variable will hold

an empty string.


dataVector

Type
:
Vector

Description
:
This vector will hold the current operation data, it could be the current
list of the items (after the request to show all the items in the system) or the current
list of the locations of an item type

(after the request to show all the locations of an
item of type x).

The Controller will use it in order to control the flow of the operations
related to this specific
data (
for example the use of "Next" or "Previous" button).


currentDataIndex

Type
:
int

D
escription
:
the current index in the dataVector Object, it will be used in order to
control the flow of the
operations (
"Next" or "Previous" buttons)

and to retrieve the
right data from the vector in the current
moment (
current operation)
.



lastBarcodeScanned

Type
:
String

Description
:
this variable will hold the last barcode which was scanned
, it will be used
by the Controller in order to handle the commands related to the
barcode (
such as
update the status of the item which was scanned or up
date the location)
.


isUpdateLocationState

Type
:
boolean

Description
:
this variable will
be used in the handle barcode operation, it will help to
understand in wh
ich state the application is in and according to the state the Controller
will know how to act and to
proceed

the flow in the right way.


BarcodeListener:


Class Description:

This class

will be responsible for listening to the barcode reader device
. It
will inform
the controller on barcode arrival.



Attributes:


controller

Type
:
Controller

Description
:
The Controller Object in the mobile application, with this reference the
Controller Object will be informed on barcodes arrival.



Domain
:


UserPublicDetails


The same object as the
UserPublicDetails
Object
in the
Server
's

domain.


ResultObject


The same object as the
ResultObject

Object

in the
Server's
domain
.


Location


The same object as the Location
Object
in the Server's domain
.









3
.1.2 Desktop Client
:


Class Name:

User

Class Description:
The class represents the User Object for the desktop Application.

Attributes:

String Username:

System User Name

String password:

System password

String firstName:

User first Name

String lastNa
me:

User Last Name

String departmentName:

User Department Name

String userType:

User Type in the system


Admin , Manager, Normal


Class Name:

Location

Class Description:
The class represents the Location Object for the desktop
Application.

Attributes:

Str
ing Barcode:


location bar code

String Description:

location short description


String departmentName:

location is in department Name

String buildingName:

location is in building Name.

String floorLevel:

location is on floor level.

String buildingSection:

location is in building section.

String roomNumber:

location is in room Number.



Class Name:

Department

Class Description:

Attributes:

String departmentName:

the department name.

User departmentManager:

the department current defined manager .



Class
Name:

Product

Class Description:

Attributes:


String BarCode: the product bar code


String typeName: th
e product type (ecgMonitor etc.
)


Department ownedDepartment: the product is owned by department.

Boolean isDamaged: indicates if the product is current
ly damaged.

Boolean isInUse: indicates if the product is currently in use.

Location: currentLocation: the product current Location.



Class Name:

LogInDetails

Class Description:

Attributes:

String Username : current login User name.

String password: curre
nt user password.


Class Name:

LocateResult

Class Description:

Attributes:

Location currentLocation: product LocateResult current location.

DateTime itemUsedSince: the product is in use state since the following
date&Time.




3
.2 Data Objects
Relationships

Server:

No
n

applicable
-

t
he data objects aren't "live" in the system, they just being used in
order to pass information
.


Mobile Client:

The
relationship

between the Controller Object and the BarcodeListener
-

the data
objects

Controller
BarcodeListener
1
0
..
1

** The other data Objects

aren't "live" in the system, they just being used in order to
pass information.

So there is no relationship between them.


3
.
3

Databases

3
.3.1 ERD:




















3
.3.
2

The main tables
:



Actions

Keys

Field Name

Field Description

Data
Type

Primary Key

action
Id

Auto Number

Integer


timeStamp

Action TimeStamp

DateTime

Foreign Key To Users

userId

The Relevant UserId

Integer

Foreign Key To Items

itemId

The Relevant itemId

Integer

Foreign Key To
ActionTypes

actionTypeId

The Action Type Id

Integer


Items

Keys

Field Name

Field Description

Data
Type

Primary Key

itemId

Auto Number

Integer


barcode

The Item Barcode String

String

Foreign Key To
ItemTypes

typeId

The Item TypeId

Integer

Foreign Key To
Departments

owne
d
DepartmentId

The item owned By Department Id

Integer


isDamaged

Indicates if the Item is currently Damaged

Boolean


isInUse

Indicates if the Item is currently in
Use

Boolean

Foreign Key To
Locations

current
Location
Id

The Item Current LocationId

Integer


isDeleted

Indicates if the Row is deleted

Boolean


ItemTypes

Keys

Field Name

Field Description

Data
Type

Primary Key

typeId

Auto Number

Integer


typeName

i.e. EcgMonitor , BloodPump ,
inhalator


String


isDeleted

Indicates if the Row is deleted

Boolean


Users

Keys

Field Name

Field Description

Data
Type

Primary Key

userId

The user Social Id Number

Integer


firstName

The user first name

String


lastName

The user last name

String

Foreign Key To
Departments

departmentId

The user works in department Id

Integer


isLogedIn

Indicates if the user currently logged In

Boolean


username

The user system username

String


p
assword

The Encrypted user password

String


lastActionTimeStamp

The user last Action timestamp

DateTime


isDeleted

Indicates if the Row is deleted

Boolean


Departments

Keys

Field Name

Field Description

Data
Type

Primary Key

departmentId

Auto Number

Integer


name

Department Name

String

Foreign Key To Users

managerId

The department Manger Id

Integer


isDeleted

Indicates if the Row is deleted

Boolean


LookupsFailure

Keys

Field Name

Field Description

Data
Type

Primary Key + Foreign
Key To Users

userId


Integer

Primary Key

timeStamp


DateTime

Primary Key + Foreign
Key To Items

itemId


Integer


UserPermissions

Keys

Field Name

Field
Description

Data
Type

Primary Key + Foreign
Key To Users

userId


Integer

Primary Key + Foreign
Key To
Permissions

permissionId


DateTime


Permissions

Keys

Field Name

Field Description

Data
Type

Primary Key

permissionId

Auto Number

Integer


permissionName

i.e. Normal , Manager , Admin

String


Locations

Keys

Field Name

Field Description

Data
Type

Primary Key

locationId


Integer


barcode


String


description


String

Foreign Key To
Departments

departmentId


Integer


buildingName


String


floorLevel


String


buildingSection

i.e. North , South , West

String


roomNumber

i.e. 14A

String


isDeleted

Indicates if the Row is deleted

Boolean


3
.3.3

The main transactions:


Main
Transactions

Description

Modified Tables

Modified Fields

Update Product
Status

Normal user will be able to
declare product as
in: "In Use" or "not In Use".

Declare a product
as not In Use will be made by performing the
following action:

Scan the product bar code and
press "Finish" on the Mobile client.

Declare a product as In Use will be made by
performing the
following action:

Scan the
product bar code and press "OK" on the Mobile
client.

Items

isInUse

Actions

New Row

Users

lastActionTimeStamp

Update product
position

Normal user will be able to declare the product
location by performing the following
actions:

Declare the product as In Use as appear in the
previous section and taking the product to target
position. On arrival to the target position the
user will scan the room bar code and the
relevant product and press "OK".


Items

currentLocationId

Actions

New Row

Users

lastActionTimeStamp

Locate

Normal user will be able to locate a specific
product location by performing the following
actions:

Press on "Locate product" Button and
selecting the relevant product group

Then selecting the relevant
product from a given
products list.

On pressing "Search" Button
-

The
system will return the user a list of locations of
the relevant product, note that the list contains
only "Not in use" and "not damaged" products
of the type requested sorted by departme
nt.

If the locating action returns false


浥a湩湧⁴ e
汯捡瑩湧⁤楤 '琠獵捣ee搠瑨e渠瑨n猠瑲s湳nc瑩潮⁷楬o
異摡瑥⁴桥 ≌潯歵灆楬畲e"⁴慢 e⁢y⁩湳敲瑩ng
湥眠wa眠瑯⁩w.

啳r牳

污獴䅣瑩潮呩oep瑡浰

i潯歵灳ca楬畲u

乥眠副w

Login

In order for a normal user to
use the system he
should first Login to the system.

While opening
the application the first screen that the user will
encounter
-

on the mobile
\

desktop client
-

is
the login screen which will allow him to enter
his password and user name , after pressing

submit the system will validate the user details
and allow
\

disallow him to use the system.

Users

isLogedIn

lastActionTimeStamp

Logout

At the end of the current user work with the
system
-

he should logout itself from the system
by navigating to the
logout screen and pressing
logout button.

On click the system will ask the user
to confirm his request and on confirmation mark the
current user as offline.

Users

isLogedIn

lastActionTimeStamp

Built In reports

The manager can request from the system to
build a
build
-
in report, and the manager will get back the
specific report he requested filled.


Users

lastActionTimeStamp

Dynamic report
builder

The manager can build report requests dynamically
and to ask from the system to fill these report by the
dynamic report builder mechanism.

Users

lastActionTimeStamp

Update Damage
state for a certain
product

The manager can update the damage state of a
certain item to "damaged" or "not damaged".

Users

lastActionTimeStamp

Items

isDamaged

System
equipment
management

The admin will be able to add
\
remove
\
update
the system equipment data.

Items

Add/Update Row

ItemTypes

Add/
Update

Row

System user's
management

The admin will be able to add
\
remove
\
update
the system
users'

data
.

Users

Add/Update Row

Permissions

Add

Row

UserPermissions

Add/Update Row

System
departments
management

The admin will be able to add
\
remove
\
update
the system
departments'

data.

Departments

Add/Update Row

Locations

Add/Update Row

System
locations
management

The admin will be able to add
\
remove
\
update
the system
locations' data.

Locations

Add/Update Row


(*)
-

The

remove
operation is

just updating the "isDelete
d
" field in each suitable table to true.



4
.

Behavioral Analysis


4
.1

Sequence Diagrams:

In The
following sequences diagrams we describe the sequences with the objects in the system,
we'll describe the Object in the system in short (the objects are described in details in the Class
Diagram section and in the Data Model section):

BarcodeReader
: This i
sn't an Object in the
system,

it is the barcode reader device which
communicate with the IScanListener Object.

Mobile Application:

IScanListener
:

This Object will communicate with the barcode reader device and will handle the
barcode scans arrivals, it wil
l communicate with the Controller Object of the Mobile Application.
Notice that we'll implement "BarcodeListener" class which will implement the IScanListener
interface. Also notice that this IScanListener interface is provided with the driver from ScanTas
k.

MobileApplication.Business.Controller
:


This Object is the principal Object in the Mobile
Application, it will be responsible for the flow of the application(screen shows
-
up and operation
to be sent to the Server application).

MobileApplication.GUI.Midlet:

This Object is the GUI main Object, it will be responsible for
showing the screen on the mobile phone and to communicate with the Controller according to
triggers from the user.

MobileApplication.Data.WebserviceHandler:

This
Object will be the Webservice communicator
in the Mobile Application. It will be responsible to communicate with the server's web service.

Server:

Server.Webservice.HospitalWebservice:

This Object is the
Webservice Object in the server
application which wi
ll be responsible to propose services and to handle them (send the actions
demands to the lower layers in order to return the
right responses).

Server.Business.Facade:

The façade object will be responsible for referring the demands to the
right handlers in the Server application.

Server.Business.Handlers.UserHandler:

The UserHandler Object is responsible for handling
all
the Normal User requests (for example login, logo
ut, update item status etc.).

Server.Data.DatabaseController:

The DatabaseController Object is responsible for
updating the
database connected to the server.
















Sequence Diagram 1


畳攠捡獥 1
-

䵯扩汥⁁灰汩捡瑩潮⁡湤⁓敲o敲e



Mobile Application and Server


畳攠捡獥 ㈠


卥煵敮捥S䑩慧牡洠㈠



Mobile Application and Server


畳攠捡獥 㐠


卥煵敮捥S䑩慧牡洠㐠



Mobile Application and Server


畳攠捡獥 㔠


卥煵敮捥S䑩慧牡洠㔠



Mobile Application and Server



畳攠捡獥 6


卥煵敮捥S䑩慧牡洠㘠




Mobile Application and Server


畳攠捡獥 㠠


卥煵敮捥S䑩慧牡洠㠠

4
.2

Events:


The main events in the system are barcode messages arrival and GUI triggers.

The
GUI triggers are described both in the sequence diagrams and in the state charts so
we'll describe the barcode messages arrival events in the Mobile Application.


Item Barcode

Event
:

Whenever a barcode item

is scanned the barcode reader sends the barc
ode
to the
Mobile Application by
using the driver of ScanTask.

An Item can be scanned in
two purposes: update its' status or update its' location.

The purpose of the item scan
will be identified by a small state machine which will save the s
t
ates of the Mobile
Application (this state machine can be viewed in the next section


The
State
Charts

of the Mobile
Application
).

In update status state the
application should
send to the server the status of the item and the server should update the dat
abase
according to this action.

In update status state the same behavior will occur again ,
only now after the item was updated, the user can still scan some other items in
order to update their locations.


Room Barcode

Event
:

Whenever a barcode room is
scanned the barcode reader sends the barcode to the
Mobile Application by using the driver of ScanTas
k.

After this event t
he

Mobile
Application wait to Items to be scanned in order to update their locations as
described above
. The update location operation

will be done by the user pressing
the done button.



4
.
3

S
tates
:


** The server application cannot be described with state charts so we'll describe
the
state charts of
the Mobile Application and the Desktop Client application

only
.


4
.3.1.
Mobile
Application State Charts:





4
.3.2.
Desktop Client State

Chart
:



Service Layer
-

WebService
HospitalWebservice
«interface»
IScanTaskHospital
Business Layer
-

Business
Facade
-
Facade
1
*
Handlers
UserHandler
ManagerHandler
AdminHandler
1
-
UserHandler
*
1
-
ManagerHandler
*
1
-
AdminHandler
*
Data Layer
-

Data
DatabaseController
1
-
DatabaseController
*
1
-
DatabaseController
*
1
-
Databasecontroller
*
5
. Object
-
Oriented Analysis


5
.1 Class Diagrams


5.
1.1
SERVER Class D
iagram:


-

First we'll show the high
-
level class diagram

and in the next pages we'll describe the
classes in more details (methods).


High Level class diagram:











































The classes in more details:


































The next classes are the data object classes


each one of these classes doesn't have some special methods
except getters/setters:


































UI Components
-

GUI
Business Layer
-

Business
ScanTaskMIDlet
Controller
1
1
LoginForm
1
1
BarcodeListener
1
0
..*
ScanTaskAPI
-

com
.
scantask
.
jme
.
driver
DeviceCommand
ScannerDeviceFactory
«interface»
IScannerDevice
«interface»
IScanListener
«interface»
IMessage
CommandUnsupportedException
Data Laye
-

Data
WebserviceHandler
«interface»
DataHandler
1
0
..*
5
.1.2
Mobile Application

Class Diagram:


-

First we'll show
the high
-
level class diagram and in the next pages we'll describe the
classes in more details (methods).


High Level class diagram:












The classes in more details:









The next classes are the data object classes


each one of these classes doesn't have some special methods
except getters/setters:







The next classes are the

ScanTask API objects:





5
.1.3 Desktop Client

Class Diagram:

5
.2
Class Description:


5
.2.1. Server Class Description



HospitalWebservice
:


Description:

The class handles the requests from the
mobile and desktop clients
.

The class delegates the messages to the business layer (
through

the façade)
and return
the
answer
message
back to the
right client.

The class implements the IScanTaskHospital interface whi
ch represents all the functionality
required from the server web service.


Main Methods:

All the method which this layer has is the same methods like the business layer

The methods will not be detailed here but in the handler's class.


Façade:


Descripti
on:

The class
represents

all the functionality of the business layer. It passes the entire message from
the web service to right handler and returns the answer message back to the web service.


Main Methods:

The façade is the business layer gateway and so

it has all the method from all the handlers
(
UserHandler
,
ManagerHandler
,
AdminHandler
).

It has no functionality and just delegates the message to the right handler.

The methods will not be detailed here but in the handler's class.


UserHandler
:


Description:

The class is responsible for handling all the normal user operations.


Main Methods:

l
ogin

-

The system login
operation
.


Each user has to be connected to the system by first calling the login command.



Parameters:

o

username
:
String



the unique

username pressed by the user
.

o

Password: String


the password pressed by the user.



Invariants:

none
.



Pre
-
Conditions:

none.



Post
-
Conditions:

o

If the username exists in the system and the password corresponds to the username
then the user is logged in the system and the isLoggedIn field in the user is set to
true
.



Return value:

This method will return
ResultObject
. If the user is logged in then i
sSucceed=true
,

else
isSucceed=false and errorMsg will be set.


l
og
out

-

The system logout
operation
.

User which wants to logout from the system will call this logout command.



Parameters:

o

username
:
String



the user's unique user name
.



Invariants:

none
.



P
re
-
Conditions:


o

The user with the user name has to be logged in the system.



Post
-
Conditions:

o

The corresponding user to the user name is no longer logged in the system
-

the
isLoggedIn field in the user is set to false
.



Return value:

This method will return ResultObject, If the user was logged out from the system then
isSucceed=true, else isSucceed=false and errorMsg will be set.





updateItemLocation

This method will update the location of an item in the system.



Parameters:

o

username
:
String



the user name of the operation acting user
.

o

itemBarcod
e: String


the unique barcode number of item to be relocation.

o

locationBarcode: String


the unique barcode number of the new location.



Invariants:

The calling user is logged in.



Pre
-
Condit
ions:

o

The item is already in use by calling user.



Post
-
Conditions:

o

The location of the item was changed to the new location.

o

New Action was saved in the database.

o

The last action time stamp of the acting user was update.



Return value:

This method will ret
urn ResultObject. If the action succeed then isSucceed=true, else
isSucceed=false and errorMsg will be set.


updateItemStatus

This method will update the status of an item in the system to "in use" or "not in use". It will
actually have to update the
isInUse field of the item.



Parameters:

o

username
:
String



the user name of the operation acting user
.

o

itemBarcod
e: String


the unique barcode number of the item to be status change.

o

isInUse
: Boolean


the new status of the item: true


in use,

false



not in use.



Invariants:

The calling user is logged in.



Pre
-
Conditions:

o

The user with the user name is logged in the system.

o

If isInUse is true the item mast declare as free.



Post
-
Conditions:

o

The status of the item was changed to the new status.

o

The act
ion was saved in the database.

o

The last action time stamp of the acting user was update.



Return value:

This method will return ResultObject. If the actions succeed then isSucceed=true, else
isSucceed=false and errorMsg will be set.


getLocationsOfItemTyp
e

This method will search the items which corresponds to the given item type and will return that
list to the user.



Parameters:

o

username
:
String



the user name of the operation acting user
.

o

typeName
: String


the desirable item type name.



Invariants:

none



Pre
-
Conditions:

o

The user with the user id is logged in the system.



Post
-
Conditions:

none.



Return value:

This method will return Vector of Locations which contains items which its type
corresponds to the desired
typeName
.



getAllItemTypes

This function w
ill return all the item's types which exist in the system.



Parameters:

none.



Invariants:

none
.



Pre
-
Conditions:

none
.



Post
-
Conditions:

none
.



Return value:

Vector of Item which contains all the items types in the system.


AdminHandler
:


Description:

The
class is responsible for handling all the administrator user operations.


Main Methods:


addUser

Add a user to the system.

This action will be
executed

by the administrator only.



Parameters:

o

user: User


the user object to add to the system/database.



Inva
riants:

none
.



Pre
-
Conditions:


o

username
,
password
,
firstName
, lastName,
departmentName

and
permissions

aren't empty fields in user.

o

The activating user of this method is an admin user.



Post
-
Conditions:


o

The
user
was inserting to the
database.

o

Unique id
was given to the user.



Return value:

This method will return ResultObject. If the user was added to the database then
isSucceed=true will be returned. Else isSucceed=false and errorMsg will be set according
to the error:


removeUser

Remove a user from the
system.


This action will be
executed

by the administrator only.



Parameters:

o

user
Name
:
String



the
unique
user

name
of the user to be removed from the
system/database.



Invariants:

none
.



Pre
-
Conditions:


o

The activating user is an admin user.



Post
-
Conditions:


o

The

user is no longer active in the system.



Return value:

This method will return ResultObject. If the user was removed successfully then
isSucceed=true, else isSucceed=false and errorMsg will be set according to the error:

o

The user
isn't

connected to the system



addItem

Add an Item to the system.

This action will be
executed

by the administrator only.



Parameters:

o

item: Item


the item object to add to the system/database.



Invariants:

none
.



Pre
-
Conditions:


o

itemBarcode

filed is not empty.

o

The activating user is an admin user.



Post
-
Conditions:


o

The
item has a unique ite
mId.

o

The
item
was inserting to
the database

where isInUse field is false.



Return value:

This method will return ResultObject. If the item was added succes
sfully then
isSucceed=true, else isSucceed=false and errorMsg will be set according to the error:


removeItem

Remove an Item from the system.

This action will be
executed

by the administrator only.



Parameters:

o

itemBarcode
:
String

-

the
unique barcode num
ber
of the
item

to be removed from
the system/database.



Invariants:

none
.



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:


o

The
item is no longer active in the system.



Return value:

This method will return ResultObject
. If the item was removed successfully then isSucceed=true,
else isSucceed=false and errorMsg will be set according to the error:

o

isInUse field of Item is false

-



addLocation

Add a Location to the system.

This action will be
executed

by the administrato
r only.



Parameters:

o

location: Location


the location object to add to the system/database.



Invariants:

none
.



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The
location has a unique locationId
.

o

The
location
was inserting to the
dat
abase/system.



Return value:

This method will return ResultObject. If the location was added successfully then
isSucceed=true, else isSucceed=false and errorMsg will be set according to the error:





remove
Location

Remove a Location from the system.

This action will be
executed

by the administrator only.



Parameters:

o

locationBarcode
:
String



the
unique barcode number of the location to be
removed from the

system/database.



Invariants:

none
.



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Con
ditions:

o

The
location is
no longer active
in the system.



Return value:

This method will return ResultObject. If the location was removed successfully then
isSucceed=true, else isSucceed=false and errorMsg will be set according to the error:


addItemType

A
dd new type of item to the system.

This action will be
executed

by the administrator only.



Parameters:

o

typeName
:
String



The new type name of the item

to
be
add to the
system/database.



Invariants:

none
.



Pre
-
Conditions:

o

The activating user is an admin
user.



Post
-
Conditions:

o

The type

has a unique
type
Id
.

o

The type

was inserting to

the database/system.



Return value:

This method will return ResultObject. If the item type was added successfully then
isSucceed=true, else isSucceed=false and errorMsg

will be set according to the error:


removeItemType

Remove a type of item from the system.

This action will be
executed

by the administrator only.



Parameters:

o

typeName
:
String



the
unique type name of the item to be removed from the

system/database.



In
variants:

none
.



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The suitable type

is
no longer active
in the system.



Return value:

This method will return ResultObject. If the item type was removed successfully then
isSucceed
=true, else isSucceed=false and errorMsg will be set according to the error.






addDepartment

Add a Department to the system.

This action will be
executed

by the administrator only.



Parameters:

o

department
:
Department



the
department

object to
be
add
ed

to the
system/database.



Invariants:

none
.



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The department

has a unique
department
Id
.

o

The department

was inserting to

the database/system.



Return value:

This method will return ResultObj
ect. If the department was added successfully then
isSucceed=true, else isSucceed=false and errorMsg will be set according to the error:


removeDepartment

Remove a Department from the system.

This action will be
executed

by the administrator only.



Parame
ters:

o

departmentName
:
String



the
unique department name to be removed from the

system/database.



Invariants:

none



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The suitable department
is
no longer active
in the system.



Return
value:

This method will return ResultObject. If the department was removed successfully then
isSucceed=true, else isSucceed=false and errorMsg will be set according to the error:


updateItemData

This method will update an existing item data.



Parameters:

o

item
:
Item



The updated item
.



Invariants:

none



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The item which corresponds to the itemBarcode in the given item has been
updated according to the data in item.



Return value:

This method

will return ResultObject. If the actions succeed then isSucceed=true, else
isSucceed=false and errorMsg will be set.




updateUserData

This method will update an existing user data.



Parameters:

o

user
:
User



The updated data of the user
.



Invariants:

none



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The user which corresponds to the
username

in the given user has been updated
according to the data in user.



Return value:

This method will return ResultObject
. If the actions succeed then isSucceed=true, else
isSucceed=false and errorMsg will be set.


updateLocation

This method will update an existing location data.



Parameters:

o

location
:
Location



The updated data of the location
.



Invariants:

none



Pre
-
Conditions:

o

The activating user is an admin user.



Post
-
Conditions:

o

The location which corresponds to the locationBarcode in the given location has
been updated according to the data in location.



Return value:

This method will return ResultObject. If th
e actions succeed then isSucceed=true, else
isSucceed=false and errorMsg will be set.

getAllUsers

T
his method returns Vector of Users which contains all the active users in the system.



Pre
-
Conditions:

The activating user is an admin user.


getAllItems

T
his method returns Vector of
Items

which contains all the active
items

in the system.



Pre
-
Conditions:

The activating user is an admin user.


getAllLocations

T
his method returns Vector of
Location
s which contains all the active
locations

in the system.



Pre
-
Conditions:

The activating user is an admin user.


getAllPermissions

This method returns Vector of Permissions which contains all the active
Permissions in the system.



Pre
-
Conditions:

The activating user is an admin user.


getAllDepartments

This method
returns Vector of Departments which contains all the active Departments in the
system.



Pre
-
Conditions:

The activating user is an admin user.

Manager
Handler
:


Description:

The class is responsible for handling all the manager user operations.


Main Methods
:


getLastNUsersForItemType

The method will return all of the last n Users which use the given item type.



Parameters:

o

itemTypeName: String


the unique type name of a type.

o

n : int


the number of users to return.



Invariants:

none.



Pre
-
Conditions:

o

The
activating user is a manager user.



Post
-
Conditions:

none



Return value:

Vector

of Users which contains the last n Users that used the given item type
.


getLastNUsersOfSpecificItem

The method will return all the last n Users which use the given item type.



Pa
rameters:

o

itemBarcode: String


the unique barcode number of an item.

o

n : int

-

the number of users to return.



Invariants:

none



Pre
-
Conditions:

o

The activating user is a manager user.



Post
-
Conditions:

none.



Return value:

Vector

of Users which contains the
last n users that used the given item id
.


getNotAvailableMessagesInTimeStampNumber

The method will return the number of item request between the given dates which the answer for
them was not available.



Parameters:

o

startTime : Date



the start date for the request.

o

endDate : Date


the end date for the request.



Invariants:

none



Pre
-
Conditions:

o

The activating user is a manager user.



Post
-
Conditions:

none.



Return value:

Integer which represent
the number of item request between the
given dates which the
answer for them was not available





getLastNUsedItemsForUser

The method will return the last n item the given user used.



Parameters:

o

username: String


the unique

user name.

o

n : int
-

the number of last item to return



Invariants:

no
ne



Pre
-
Conditions:

o

The activating user is a manager user.



Post
-
Conditions:

none



Return value:

Vector of Items
which contains

all the last n items the given user used.


getItemInLocation

The method will return all the items in the given location.



Parameters:

o

locationBarcode: String


the unique barcode number of the location.



Invariants:

none



Pre
-
Conditions:

o

The activating user is a manager user.



Post
-
Conditions:

none.



Return value:

Vector of Items which contains all the items in the given
location.


getDamagedItemsInDepartment

The Method will return all the damaged items in the given department.



Parameters:

o

departmentName: String


the unique department name.



Invariants:

none



Pre
-
Conditions:

o

The activating user is a manager user.



Post
-
Conditions:

none.



Return value:

Vector of items which contains all the damaged items in the given location.



updateDamageStateOfItem

This method will update the damage status of an item in the system to "damaged" or "not
damaged".



Parameters:

o

itemBarcode
:
String


the unique barcode number of the item to be damage state
update.

o

isDamaged: boolean


the damaged state of the item: true


damaged,

false


not damaged.



Invariants:

none



Pre
-
Conditions:

o

The activating user is a manager user.



Post
-
Co
nditions:

o

The damage state of the item was changed to the new state.



Return value:

This method will return ResultObject. If the actions succeed then isSucceed=true, else
isSucceed=false and errorMsg will be set.


Action

-

the class description detailed in section 2.

Department

-

the class description detailed in section 2.

Item

-

the class description detailed in section 2.

Location

-

the class description detailed in section 2.

LookUpFailure

-

the class description deta
iled in section 2.

ResultObject

-

the class description detailed in section 2.

User

-

the class description detailed in section 2.

UserPublicDetails

-

the class description detailed in section 2.

5
.2.2
. Mobile Application


Domain:

Location

-

the class description detailed in section 2.

ResultObject

-

the class description detailed in section 2.

UserPublicDetails

-

the class description detailed in section 2.

GUI:

LoginForm

Description:

the class takes care on the login GUI operation in the
mobile client.

Main Methods:

loginSucceed



the steps which take place when the login process succeed.

tryAgain



the steps which take place when the login process failed.


ScanTaskMIDlet

Description:

the class takes care on the GUI screen and operation
in the mobile client.

It will
communicate with the Controller Object and the Controller Object will be responsible for
updating the GUI screens.


Data:

WebserviceHandler

Description:

the class takes care on the communication with the server.

The class impl
ements
the DataHa
ndler interface
which

represent all the method which must communicate with the
server.

The class sends the message to the server application and delegate the return message back to the
caller.

Main Methods:

l
ogin
, lo
gout
,
updateItemLocation
,
updateItemStatus
,
locate
,
getAllItemsTypes
,
getAllDepartments
,
isItemInUse
,
getItemUserHolder
.

All the above methods behave the same as the method in the server application.

The description of those methods can be found in the server cl
ass description.







Business:

Controller

Description:

the class takes care on the functionality of the mobile client.

It decides

which message, screen or actions need to be done at any time according to the input
from the

user, the barcode reader and f
r
o
m the server.

The class
is implemented

with

the singleton design pattern.

Main Methods:

L
ogin



This method will try to login the current user to the system, if it succeed then it will
initialize the Scanner device (which responsible for communicating

with the barcode reader
device) and show the welcome screen (Standby Screen), otherwise it will show an error message
to the user.



Parameters:

o

username
:
String



the unique username pressed by the user
.

o

Password: String


the password pressed by the user.



Invariants:

The user is connected to the internet.



Pre
-
Conditions:

none.



Post
-
Conditions:

o

If the username exists in the system and the password corresponds to the username
then the user is logged in the system
and the Scanner Device will be initialize and

the Standby screen will be shown to the user.



Return value:

none.


Logout



This method will try to
logout

the current user
from

the system
.



Parameters:

none.



Invariants:

The user is logged in the system.



Pre
-
Conditions:

none.



Post
-
Conditions:

o

If the logout
operation succeeds

then a success message will be shown to the user
and
he will
come back

to the login screen, else an error message will be shown.



Return value:

none.


locateItemRequest



This method

will show to the user all the items'
types


so the user can
select one of them to be located.



Parameters:

none.



Invariants:

The user is logged in the system
.



Pre
-
Conditions:

The screen shown on the mobile phone is the
Standby screen.



Post
-
Conditions:

o

A l
i
st of items' types is shown on the
Mobile Phone screen (Choose Item Screen).



Return value:

none.


locate



This method will
request an Locate

request from the server, which will eventually return
a vector of Locations where the item
type
specified is found.



Parameters:

itemTypeIndex


int
-

the index of the item type in the vector of items' types
which was retrieved by the "locateItemRequest" before.



Invariants:

The user is logged in the system.



Pre
-
Conditions:

The screen shown on the mobile phone is the
choose Item Screen and
the user has
picked an Item from that list.



Post
-
Conditions:

o

A list of
Locations is initialized in the Controller Object and the
user sees

a
Location screen where he
can

perform a next or previous actions.



Return value:

none.


handleBarcode



This method is in charge o
f the states of the mobile application (which was
described in the state chart section previously). It decides what to do according to a barcode
incoming message.



Parameters:

barcode



String



a barcode input coming from the BarcodeListener
Object.
It

can

be a room barcode or an item barcode.



Invariants:

The user is logged in the system.



Pre
-
Conditions:

The screen shown on the mobile phone
is
the Standby screen and a
barcode scan was performed (meaning
we got a barcode string).



Post
-
Conditions:

The barcode is handled and the suitable screen is shown to the user.



Return value:

none.


handleUpdateItemStatus



This method will show the right screen/buttons to the user upon the
states which was mentioned previously.



Parameters:

itemB
arcode


String


a
n itemBarcode string to be handled
.



Invariants:

The user is logged in the system.



Pre
-
Conditions:

none.



Post
-
Conditions:

The right screen/buttons to be appeared according to the state of the
application/user are shown on the mobile phone screen.



Return
value:

none.


updateItemStatus



This method
update the status

of an item to in
-
use or not in
-
use.



Parameters:

isInUse



boolean



a boolean value indicating if the value need to be
considered in
-
use or not
.



Invariants:

The user is logged in the system.



Pre
-
Conditions:

The user has scanned an item to be updated and confirmed the update
action.



Post
-
Conditions:

The items' status was updated
in the system
according to the user
desires (in
-
use or not in
-
use).



Return value:

none.


noUpdatedItemStatus



This m
ethod
will be called by a user which decided that he doesn't want
to update the item status after all.



Parameters:

none.



Invariants
:

The user is logged in the system.



Pre
-
Conditions:

The user ha
d an option to cancel the update status operation and he
chose

this operation.



Post
-
Conditions:

The items' status was
n't

updated in the system

and the screen to be
shown on the mobile phone is the Standby screen
.



Return value:

none.



handleUpdateLocation



This method will
handle a location update request. It
will d
ecide
w
hich screen/buttons to show to the user according to the state of the application/user

and will
update the location (using the "updateItemLocation" method) of an item if the item was declared
in
-
use by the user
.



Parameters:

itemBarcode


String


Th
e
item, which

needed to be updated in the
location
field,

barcode.



Invariants
:

The user is logged in the system.



Pre
-
Conditions:

The user scanned a location barcode.



Post
-
Conditions:

The right screen/buttons to be appeared according to the state of the
application/user are s
hown on the mobile phone screen and if the item was declared in
-
use
by the user then the items' location was updated in the system.



Return value:

none.


updateItemLocation



This method will
update the item location in the system (by
sending the
request for the update to the server webservice).



Parameters:

itemBarcode


String


The item, which needed to be updated in the
location field, barcode.



Invariants
:

The user is logged in the system.



Pre
-
Conditions:

The "handleUpdateLocation" m
ethod was called.



Post
-
Conditions:

The items' location was updated in the system.

Return value:

This method will return ResultObject. If the action succeed then
isSucceed=true, else isSucceed=false and errorMsg will be set.


BarcodeListener

Description:

T
h
is
class
implements the IScanListener interface, which was provided with the
ScanTask driver.
It will handle all the
incoming barcode messages.


Main Methods:


onTagData



This method
will handle a barcode incoming message from the barcode reader
device.

It will send the barcode to the Controller Object in order that the Controller will handle
the barcode according to the system desires.



Parameters:

o

data
:
String



the
data incoming from the barcode reader device.



Invariants:

none.



Pre
-
Conditions:

The
BarcodeListener is initialized to listen to the barcode reader device
by the IScannerDevice Object.



Post
-
Conditions:

none.



Return value:

none.




** The next package is the ScanTask driver package
-

com.scantask.jme.driver
, we'll add the
description of the

driver package in the API provided in the Appendix section.


5
.2.3.
Desktop Client

Application

Class Name:
General Controller

Methods:


Method name:

GenerateBuiltInReport

Parameters:

Int reported
-

The Built In report id Number.


object[] reportArgs



周e⁣畲ue湴⁲n灯牴⁁rg畭敮瑳t

f湶a物r湴n

乯湥.

P牥⁣潮摩o楯渺

周T⁵獥爠楳r杧e搠潮⁡猠浡湧m爮

P潳琠捯湤楴楯渺

周T⁲ 灯牴p牵渠re獵汴⁩猠摩獰污ye搠d渠獣ree渮

oe瑵牮⁶t汵攺

噯楤


䵥瑨潤慭t: