WINDOWS MOBILE APPLICATION FOR INTERNET INTERPRETER SCHEDULING SYSTEM

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

2 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

88 εμφανίσεις












WINDOWS MOBILE APPLICATION FOR INTERNET INTERPRETER
SCHEDULING SYSTEM





Vinod Swargam

B.Tech., Acharya Nagarjuna University, I
ndia
, 2005





PROJECT




Submitted in partial satisfaction of

the requirements for the degree of





MASTER OF SCIENCE



in



COMPUTER SCIENCE



at



CALIFORNIA STATE UNIVERSITY, SACRAMENTO




FALL

2011



ii



WINDOWS MOBILE APPLICATION FOR INTERNET INTERPRETER
SCHEDULING SYSTEM





A Project



by



Vinod Swargam












Approved by:




__________________________________, Committe
e Chair

Dr. Jinsong Ouyang


__________________________________, Second Reader

Dr. Ying Jin


____________________________

Date



iii





Student:
Vinod Swargam



I certify that this student has met the requirements for format contained in the University
format
manual, and that this project is suitable for shelving in the Library and credit is to
be awarded for the Project.





__________________________, Graduate Coordinator ________________


Dr. Nik Faroughi










Date




Department of Computer S
cience Engineering















iv

Abstract


of


WINDOWS MOBILE APPLICATION FOR INTERNET INTERPRETER
SCHEDULING SYSTEM


by


Vinod Swargam


The purpose of this
Project is to
develop and
implement
the
enhanced features of Internet
Interpreter Scheduling System a
s mobile application in healthcare domain and made it
synchronize with the existing web application as well.
This project includes the
development of
mobile application in Asp.Net and m
aintaining a global database for both
web and mobile application by a
cc
essin
g through the I2S2 web services.
I2S2 mobile
application is proposed to run efficiently on HTC windows mobile
phone
.


Existing
Internet Interpreter Scheduling System

has three types of users. They are
Agency Platform, Requester/
Provider Platform and I
nterpreter Platform Users.
Interpreters are going to get appointments scheduled by agency and requesters into the
schedule
folder

of the mobile application by connecting to web services based on day,
week and month calendar format. Uncovered appointments
c
an be

placed into public
folder of I
nterpreters. Therefore, even interpreters can
view the appointments in “View
Available Appointments” folder and accept

the appointments based on their availability
.
Agency will
keep some

of the
interpreter
appointments i
nto

the Interpreter folder of the



v

Interpreter.
Intended Interpreter can accept or reject appointments in interpreter folder
based on their availability. After Time Finish Appointments authorized with signature
and get synchronize with database. Appointmen
ts rejected by the interpreter will be
scheduled by the agency to another interpreter. Modules like Schedule, My Folder,
Available Appointments, View Details, Time Finish and Sync were implemented in the
Internet Interpreter Scheduling System as per the c
ustomer requirements.


Internet Interpreter Scheduling System application can be entered using Application
Name, User Name, and Password as login credentials. System provides Password facility
to ensure validity of user. Scheduling System mobile applicati
on can be login in both
online or offline modes. If the interpreter is not having the proper internet connectivity or
not in the network coverage area, he can
login into

the system in offline mode. Mobile
application transfers data
and appointment

status t
o the SQL Server Enterprise database
using web service after mobile gets internet connectivity.
This project

was developed
using the technologies like Asp.Net, C#, Microsoft Windows Mobile API, Microsoft
SQL Server 2008 as Database, XML and Web Services.



_______________________, Committee Chair

Dr. Jinsong Ouyang


_______________________

Date





vi

A
CKNOWLEDGE
MENTS


I would like to thank Dr. Jinsong Ouyang, my project advisor for providing

me a
wonderful opportunity to work on this project, which provided a g
reat exposure to the
field
of
Mobile Application Development. I thank him for providing all the help, support
and necessary resources to complete the project successfully. Dr. Ouyang helped me in
understanding the project in detail and provided knowledge a
nd expertise in the field to
understand the project and
completing
it successfully.


In addition
, I wo
uld like to thank Dr.
Ying Jin for her willingness to serve on the
committee. I benefited very much from the professor’s course offerings and advice.


I w
ould like to thank my client for providing me all the requirements and support while
working on this project and helped me to pass this critical phase of my graduation.


Lastly, I would like to thank the entire faculty and staff of the Department of Compu
ter
Science Engineering at California State University, Sacramento.









vii

TABLE OF CONTENTS













Page


Acknowledgements

................................
................................
................................
............

vi

Li
st of Figures

................................
................................
................................
....................

ix

Chapter


1. INTRODUCTION

................................
................................
................................
........

1

Background

................................
................................
................................
.............

1

Pro
ject Objectives

................................
................................
................................
...

3

2. REQUIREMENTS ANALYSIS

................................
................................
...................

5

Product Perspective

................................
................................
................................
.

5

Product Features

................................
................................
................................
.....

5

Operating Environment

................................
................................
...........................

9

Assumptions and Dependencies

................................
................................
...........

10

Use Cases

................................
................................
................................
..............

10

External Interfaces Requirements

................................
................................
.........

22

Non
-
functional Requirements

................................
................................
...............

22

Software Quality Attributes

................................
................................
..................

23

Developer Environment

................................
................................
........................

23

3. SYSTEM DESIGN

................................
................................
................................
.....

25

Building a Mobile Applications

................................
................................
............

25

Mobile Application Architecture

................................
................................
..........

27

.NET Applicat
ion Architecture

................................
................................
.............

30



viii

High Level Design

................................
................................
................................

32

4. DATABASE DESIGN
................................
................................
................................

34

About SQL Server 2008

................................
................................
.......................

34

Database Tables and Database Diagram

................................
...............................

34

Sample of Database Scripts

................................
................................
..................

38

5. IMPLEMENTATION DETAILS

................................
................................
...............

48

Development of Mobile Interface using ASP.NET

................................
..............

48

Implementation o
f Web service using Map Quest

................................
................

54

Implementation of Business Logic using C#.NET

................................
...............

57

Implementation Details of Time Finish

................................
................................

67

6. RESULTS OF INTERNET INTERPRETER SCHEDULING SYSTEM

.................

79

7. CONCLUSION

................................
................................
................................
.........

105

Appendix

Hardware and Software Specifications

................................
.........................

108

Bibliography

................................
................................
................................
...................

109
















ix

LIST OF FIGURES

Figure 1 Interpreter Authentication Screen shot

................................
...............................

12

Figure 2 Schedule Use Case Diagram

................................
................................
..............

13

Figure 3 My Folder Use Case Diagram

................................
................................
............

15

Figure 4 View Available Appointments Use Case Diagram

................................
............

16

Figure 5 Time Finish Use Case Diagram

................................
................................
..........

18

Figure 6 Distance and Time Calculation Use Case Diagram

................................
..........

20

Figure 7 Sync Use Case Diagram

................................
................................
.....................

21

Figure 8 Development Environment Diagram

................................
................................
..

23

Figure 9 Internet Scheduling System Application Architecture

................................
.......

30

Figure 10 Desig
n of the Mobile Application

................................
................................
...

32

Figure 11 Design for User and Phone Related Tables

................................
......................

38

Figure 12 Cradle the POCKET PC Emulator in
Device Manager Screenshot

.................

79

Figure 13 Initializing the Active Sync Screenshot

................................
...........................

80

Figure 14 After Synchronization Screenshot

................................
................................
....

81

Figure 15 Folders of the Application Screenshot

................................
.............................

82

Figure 16 Schedule with Appointments search

................................
................................

83

Figure 17 Schedule with Cannot Cover option selected

................................
...................

83

Figure 18 Schedule with options Screen Shot

................................
................................
..

84

Figure 19 View Available Appointments with options Screenshot

................................
..

85

Figure 20 View Details of the View Appointment details Screenshot

.............................

86

Figure 21 View Details of the View Appointments with Search Results Selected

..........

87



x

Figure 22 View Available Appointments Screen shot

................................
......................

88

Figure 23 View Available Appointments with “I will Take It” selection Screen shot

.....

89

Figure 24 View My Folder with Appointments Search Results

................................
.......

90

Figure 25 View Details in the View My Folder

................................
...............................

90

Figure 26 Time Finish Module with Appointment Screen shot

................................
.......

91

Figure 27 Time Finish of Appointment with functions Screen shot

................................
.

92

Figure 28 Time Finish Module with Requester tab Screen shot

................................
.......

93

Figure 29 Time Finish Module with Time Finish tab Screen shot

................................
...

94

Figure 30 Time Finish Module with Patient tab Screen shot
................................
............

94

Figure 31 Time Finish Module with Time Finish Tab Screen shot

................................
..

95

Figure 32 Time Finish Screen with save option Screen shot

................................
............

96

Figure 33 Time Finish Folder authorization tab Screen shot

................................
............

97

Figure 34 Time Finish Module Authorization Tab Screen shot

................................
.......

97

Figure 35 Completing the Time Finish for Appointment Screenshot
...............................

98

Figure 36 Sync Module Screen shot

................................
................................
.................

99

Figure 37 S
ync Module with functions screen shot

................................
..........................

99

Figure 38 Sync Appointments with remove option activated Screen shot

.....................

100

Figure 39 Sync
hronize the appointment with Sync option selected Screen Shot

...........

101

Figure 40 Distance Calculation Web Service using Map Quest Screen shot

.................

102

Figure 41 Calculation of Mileage by using Map Quest in Time Finish Screen shot

......

104

1

Chapter 1


1.


INTRODUCTION

This

chapter introduces the project

outlines the background to the problem, identifies the
problem

owner, and gives an outline of the project objectives.

Background

Internet Interpreter Scheduling System provides a single point of online entry for
requesters of interpreting services, freelance professional interpreters and agencies
.

The
Web system is
currently in use in major medical systems. Internet Interpreter Scheduling
System called as I2S2 in short form.


Internet Interpreter Scheduling System has three platform Users
:



Agency Platform



Requester/Provider Platform



Interpreter Platform


Agency P
latform:

I
ndividual agencies of I
nterpreters

will be the users for this platform
.
Agency has the pool of interpreters associated with it. These Agencies will have contract
w
ith different clinics or a
gencies
to

provid
e the I
nterpreters. Hospital
management

requests an I
nterpreter for the appointment through the requester platform or
by
calling
the Agency. Agency staff will take the appointment through Appointment Intake Screen
and schedule an
I
nterpreter
to the appointment depending on

the availability of t
he
I
nterpreter.

2


Requester/Provider Platform:


Requesters

or Providers

are the users from the Hospitals.
Requesters or Providers c
ould

be the
head of the Interpreting department in the hospital
or specific department h
ead or
supervisor of the Hospital. Requ
ester or Provider

will have
the individual login credentials to login into the Internet Interpreter Scheduling System
from the Requester Platform. Requesters can request for an Appointment through
entering the details in Appointment Intake Screen from the
Requester platform
.

Depending on the role, p
rivileges

will differ
for the users
of r
equester platform.
Requester will have the choice to pick an interpreter of patient preferenc
e or specify
g
ender depends on type of the appointment.


There are two types of

r
equesters present in the

existing s
ystem.



Interpreter Admin User



Clerk User


Interpreter Admin User will have more privileges than Clerk User.


Interpreter Platform:

Interpreters
can

login into the I2S2

interpreter platform

on

Web.
Interpreter will do
time finish
of
the appointments on daily or weekly basis and upload
the signed paper vouchers into the system as part Invoicing. In addition, Interpreters will
submit the Approximate Mileage and Travel Time for each appointment in
reimbursement form to the

Agency.

3


Windows Mobile application is aimed towards these interpreters to deliver the work more
efficiently and fast processing. Through this application time will be reduced for
processing invoice
of the
customer and interpreter from the Agency Side.

Th
ere
is different type

of interpreters.


-

Staff



-

Volunteer


-

Independent Contractor


-

Intern Interpreters


Staff Interpreters are the In
-
house interpreters. These people are the full time employees
of the Agency. Volunteer interpreters
are the p
eople who will work as part of l
earning.


Independent contract
or can be a single person or
group of the interpreters from another
agency. Intern Interpreters are students

work
as part of internship program
.


Project Objectives


Mobile version of
the Internet Interpreter Scheduling System with the primary goals as
follows:


Fast Processing:

Interpreters can get authorization from the hospital faculty by time
finishing the appointment immediately after completing the appointment.
Mileage and
T
ravel

time

could be

calculated
immediately
with
the submission of the appointment
in

Time finish

module
.


4


Improve client communications and work product delivery:

The firm requires the
capability to better communicate with customers, provide immediate informati
on on
app
ointment and Interpreter status

with

quicker turn around on work product.


Hence, this project aims at providing an efficient mobile
-
based solution that ensures
better communication and quick access to appoi
ntment related information for
I
nterpre
ter.


Ease of use:

The system should be easy to use and flow with the information and
existing
procedures of the organization.


Flexible System:

The
organization

should be able to use the system
effectively
because it
works
on the same kind of interface as

web based system
. S
tructure of the
folders

and
functionality looks similar to the Web application.


Training:

Training is essential to any new implementation. The users with limited
training can understand
the
functionality

of mobile version of Internet
Interpreter
Scheduling System. Organization need

not spend much

time for training the resources.







5


Chapter 2

2.

REQUIREMENTS ANALYSIS

Product Perspective

This project is targeted towards Interpreters who will use this product for their daily
activit
ies, so need sof
tware assistance for efficient scheduling and time f
inishing
appointments. This project is intended to be a stand
-
alone product and should not depend
on the availability of other software. It
should

run on Windows based Mobile OS.

Product
Features

This project provides various functionalities including Scheduling, My Folder, View
Available Appointments, Time Finish and Sync modules.


Schedule:

Appointments scheduled for interpreter by Agency or Requesters will be displayed in this
Schedule

folder
. Interpreter will have the option to accept the appo
intment by “I will take
it” or r
eject the appointment by “Cannot cover”

option
.


If the Interpreter clicks on “Cannot Cover”
option
then app
ointment will go to the
Agency u
nassigned appointments
(Public Pool). If any appointment rejec
ted by any of
the interpreter, a
gency will reschedule it to a different interpreter
depending
on the
avail
ability of I
nterpreter. If the Interpreter wants to cancel the appointment in the last
minute, they need to cal
l the agency to get confirmation before requesting “Cannot
Cover”.


6


My Folder:



My Folder will have the a
ppointments assigned to the Interpreter
. Appointments in this
folder are not accepted by
the interpreter. This is called as the private pool or inter
preter
Folder. If the agency is not aware

whether the interpreter

will be available for the

appointment then they will place the appointment in this folder.


Interpreter will be able to view the details of the appointment and

accept or reject i
t based
on

the

availability and willingness.
The process of transferring the appointments to

interpreter

folder will be mostly by the agency from the I2S2 Web application.


If the Interpreter accepts the Appointment, it will disappear from the My Folder and
show
n

in

the Schedule
folder

of the Mobile Application. If the Interpreter rejects the
appointment then it will go back to the Agency pool or Public Pool.


View Available Appointments:


Appointments
moved to
this pool by the agency. Interpreters can see the unass
igned
appointments
in this folder
.

This folder contains only those a
ppointments pertaining to
the language

that
interpreter speaks.


Interpreter can view the details of the appointment
by using option

“View Details”. View
Details will include Requester, A
ppointment and Patient Information. In addition, it will
show the Appointment start and end times.


7


If the interpreter is available for th
e

appointment, he can assign himself as the assignee to
that particular appointment. Notification sent to the Agency,

Requester and Interpreter.
Interpreter will have the option to reject the appointment in the schedule folder after
accepting from View Scheduled Appointments folder.


Time Finish:



Time Finish is the im
portant module of the

application. This includes the

time finishing
the appointment by the interpreter immediately after
completing

the appointment.
Time
Finish includes four tabs namely
Requester, Patient, Time Finish details and
Authorization in the last tab.


Requester details include Clinic/Venue, Prov
ider Name and Department. Patient Details
include Patient Medical Reference Number, Last Name and First Name. Time Finish will
contain Appointment Nu
mber, Start Date / Time, End Date / Time
, Confirmer Name and
Confirmer Phone. Interpreter
can

enter appoin
tment end time and
supervisor/faculty

from the hospital
need

to enter their name and phone number
for reference

to time finish
of scheduled appointment. The
authorization tab of the Time Finish will
contain

Authorization Code and Signature

for Authorizatio
n.


Interpreter save the
appointment
and
Time finish then it will move to the Sync Folder.
Interpreter
can
change the start of the appointment in case of any change in the
appointment start time due to doctor no show, patient no show or any other reason.


8


Sync:


This is the main operation where it will synchronize the appointments from the mobile
application to the global database through web services.
I
nterpreter has to remove the
C
ancelled appointment
s

from the Sync folder by using th
e Remove function.

Only
checked appointments get synchronize with d
atabase.


Removed appointments will not be get sync
hronize

with

database. When we synchronize
the Appointments
time finish details get
updated in the I2S2 system
.

Voucher is
automated with the Appointment d
etails and uploaded as voucher into the system.


Integration to the Map Quest:



The integration of Interpreter Scheduling System

with the Map Quest Services
is
implemen
ted using

Map Quest
SDK
in web service. It calculates the mileage for the
i
nterpreter
from the Source

to the destination
.


Address of the Source and destination points
taken into consideration

from the
configuration settings

of

cus
tomer and Interpreter. T
wo types of mileage
calculation
settings
available for
I2S2. Customers can configure t
he settings from their side.
Mileage

calculate
s

the
distance
from the source to the destination and travel time calculates time
to travel the same distance.


Mileage

calculation

options are:

1. Round Trip

9


2. Point to Point


Round Trip mileage includes th
e distance from the Source to the destination and again
destination to the source point. Point
-
to
-
point mileage in
cludes only

mileage from the
Source to the destination. If the interpreter having more than one appointment, it will
calculates

the mileage be
tween the venues but not the round trip.

Agency will generate
invoice for the Customer and interpreter based on the Mileage and Travel Time
calculated

by this web service
.


View Details:



View Details is the feature available in all the
folders

in the app
lication. View Details
will show all
the requester, appointment and patient details. It will

help the Interpreter to
choose the appointment from
the a
vailable

appointments and
Interpreter Folder.
I
nterpreter will choose appointment

depending on the availab
ility and willingness
.

Operating Environment

Since Application
implemented in Microsoft ASP.NET technology, the software will
hosted on ASP.NET
-
compatible Platform. The system also require
s

SQL database a
nd
web services configured

on Web and Database prod
uction servers. The system must be
completely compatible with any browser that fully supports Microsoft ASP.NET
technology.


10


The users of the software will be expected to have a fast internet connection, 3G or good
Wi
-
Fi connection to work efficiently.

Mo
bile Application works only on Windows Smart
Phone.

Assumptions and Dependencies


1. It is assumed that the system will be developed using the ASP.NET technology.

2. It is assumed that the system will be able to interact with web services and Map


Q
UEST SDK

to calculate the Mileage and Travel Time.

3. It is assumed that the system will interface with a SQL Server 2008 database.

4. Mobiles used by the users should support Windows Platform OS.


Functional Requirements


The functional requirements of

this project are described using use cases.

Use Cases

Use case is
a graphical overview of the functionality provided by a system in terms of
actors
, their goals and any depend
encies between those use cases. Use case modeling is a
technique used to describe what the new software being developed should do or what the
already available software does. It is used in the Analysis phase of software development
to express clearly the h
igh
-
level requirements of the software.


Actor:

An actor is user of the system. An actor is someone or something, which interacts
with the system.

11


Use Case:

The functionality provided by the system is represented as a use case. It is
typically described
in verb form.


UC: Authentication of the
Interpreter


Preconditions:


The following preconditions must be true before the initiation of the use case.


1. User has logged into the Internet.

2. System has validated user credentials entered in the Login Pa
ge.


Basic Flow:

The following steps represent the basic flow of events occurring from the Main Menu
also shown in Figure 1 below.


1. Interpreter
should
download the mobile application on windows mobile phone.

2. System determines User's role from login
.

3. System displays the Modules after successful authentication of the Interpreter.

4
. System load
s

the appointments related to the folders based on the login.

12



Figure
1

Interpreter Authentication Screen shot


Post Conditions


The following post conditions must be true after the completion of the use case.


1. User has logged into the application.

2. User is able to view/select various folders of the application
.


UC: Schedule

Preconditions


The following preconditions must b
e true before the initiation of the use case.

1. User has logged into the Internet

Scheduling System
.

13


2. System has validated user credentials entered in the Login Page.


Basic Flow


The following steps represent the basic flow of events in Schedule Fo
lder also shown in
Figure 2 below.

1. User will navigate the Main Menu

2. User selects the Schedule from the Main Menu

3. User selects the required date by clicking on the
calendar drop down or can directly
view the appointments in day, week and monthly f
ormat.

4. User will select the “I will Take it” to accept the appointment

5. User will select the “Cannot Cover” to reject the appointment.

6. Similarly, user can select “View Details” to view the requester, patient and


a
ppointment details.


Figure
2

Schedule Use Case Diagram

14


Post Conditions


The following post conditions must be true after the completion of the use case.


1. User can
also see the appointment

in
the
Time Finish Folder after accepting the
appointment on day
of the appointment.

2. User can choose to go back to the
main menu

by clicking on “Main Menu” link.



UC: My Folder

Preconditions


The following preconditions must be true before the initiation of the use case.

1. User has logged into the Internet.

2.
System has validated user credentials entered in the Login Page.

Basic Flow


The following steps represent the basic flow of events in
M
y

F
older Screen also shown in
Figure 3 below.

1. User will navigate the Main Menu

2. User selects the My Folder from
the Main Menu

3. User selects the required date by clicking
on date drop down or
user can view the


appointments in day, week and monthly format.

4. User will select the “I will Take it” to accept the appointment

5. User will select the “Cannot Cover”

to reject the appointment.

6. Similarly, user can select “View Details” to view the requester, patient and

15


Appointment details.



Figure
3

My Folder Use Case Diagram



Post Conditions


The following post conditions must be true

after the completion of the use case.

1.

User can see the appointments in Schedule Folder after accepting the
appointments.

2.

User can see the appointments in Public Folder after rejecting the appointments.

3.

User can choose to go back to the Main Menu by clic
king on “Main Menu” link


UC: View Available Appointments

Preconditions


The following preconditions must be true before the initiation of the use case.

16


1. User has logged into the Internet

Interpreter Scheduling System
.

2. System has validated user cre
dentials entered in the Login Page.

Basic Flow

The following steps represent the basic flow of events in
View Available Appointments
screen also shown in Figure
4

below.

1. User will navigate the Main

Menu

2. User selects the
View Available Appointments

from the Main Menu

3. User selects the required date by clicking on
the date drop down

or user can view the


appointments in day, week and monthly format.

4. User will select the “I will Take it” to accept the appointment

5. User will select the “Cann
ot Cover” to reject the appointment.

6. Similarly, user can select “View Details” to view the requester, patient and


Appointment details.



Figure
4

View Available Appointments Use Case Diagram

17




Post Conditions:


The followin
g post conditions must be true after the completion of the use case.


1. User can se
e the appointments in Schedule f
older after accepting the appointments.

2. User can choose to go back to the home page by clicking on “Main Menu” link
.


UC: Time Finish

Pr
econditions


The following preconditions must be true before the initiation of the use case.


1. User has logged into the Internet

Interpreter Scheduling System
.

2. System has validated user credentials entered in the Login Page.

Basic Flow


The follow
ing steps represent the basic flow of events in Time Finish module also shown
in Figure
5

below.

1. User will navigate the Main Menu

2. User selects the Time Finish from the Main Menu

3. User can see the appointments for today

in Time Finish
.

4. User
can

select the Patient, Requester and Time Finish tab to view the details of the


Appointment
.

18


5. User
can

select the “Authorization”
tab and
enter authorization code and signature of
the
a
uthorized person.

6. User
clicks

on save option.


Figure
5

Time Finish Use Case Diagram


Post Conditions:


The following post conditions must be true after the completion of the use case.


1. User can see the appointments in Sync Folder after time finishing.

2. User can choose to go back to the
home page by clicking on “Main Menu” link


UC: Distance and Time Calculation

Preconditions


The following preconditions must be true before the initiation of the use case.

19



1. User has logged into the Internet

Interpreter Scheduling System
.

2. System ha
s validated user credentials entered in the Login Page.

Basic Flow



The following steps represent the basic flow of events in Calculating the distance and
Travel Time module also shown in Figure
6

below.

1. User will navigate the Main Menu

2. User sele
cts the Time Finish from the Main Menu

3. User can see the appointments for today.

4. User will select the Time Finish tab and enter the finish Time details of the


appointment.

5. Clicks on save option.

5
. After Time finish the

mileage and travel time

were

calculated automatically with the


appointment details and authorization.

20



Figure
6


Distance and Time Calculation Use Case Diagram



Post Conditions:

The following post conditions must be true after the completion of th
e use case.

1. User can see the time finish
ed

appointments with
distance and travel time

calculated
automatically.

2. User can choose to go back to the home page by clicking on “Main Menu” link
.


UC: Sync

Preconditions


The following preconditions must
be true before the initiation of the use case.


1. User has logged into the Internet

Interpreter Scheduling System
.

2. System has validated user credentials entered in the Login Page.


21


Basic Flow


The following steps represent the basic flow of events
in Sy
nc module also shown in
Figure 7

below.

1. User will navigate the Main Menu

2. User selects the Sync from the Main Menu

3. User can see the appointments time finished
in the sync folder
.

4. User will remove the appointments before synchronizing to th
e database.

4. User will select the “Sync” to synchronize the details of the appointment.



Figure
7

Sync Use Case Diagram


Post Conditions:

The following post conditions must be true after the completion of the use case.

1. User

can see the appointments as submitted

with mileage and travel time
.

2. User can choose to go back to the home page by clicking on “Main Menu” link.







22


External Interfaces Requirements

Software Interfaces


1. Operating System: The software is being des
igned to run on windows Mobile OS.

2. Web Server: The software is being designed to run on Internet Information Server

3. Database: The software
will

access the SQL Server 2008 Enterprise Edition



database

for CRUD operations.


4. Libraries: The

software is

created using the .NET version 3.5
framework
.

5. Map Quest: Accuracy of calculating the Distance and Travel time will be depend on


the API changes by the MAP Quest.

Non
-
functional Requirements

Security Requirements

1. Passwords and aut
horization code should be displayed as “*” in the Login and
Time
finish

pages as required.

2. Proper authentication is required for users to access any of the screens in the


Application
.

3. Every user of the Application is assigned with a unique logi
n and password.

4. Microsoft .NET framework ensures security of data, for example passwords that are


being transmitted over the internet.


23



Software Quality Attributes

Reliability:

Data

entered must be correctly stored in the database. In addition,
database
should commit transactions so that partial entries are not stored in the database.


Usability:

Individuals of varying skill level and technical competence will use the
system.


Maintainability:

The code and design
is
documented well enough such
that a new project
member with the same amount of academic or work experience can easily work on the
project.

Developer Environment

This project is developed using Microsoft Visual Studio .NET Framework along with
Microsoft SQL Server 2008 relational datab
ase system.


Figure
8

Development Environment Diagram

24


The Microsoft .NET Framework, is a prefabricated infrastructure to develop Mobile and
Web applications
. Mobile Applications developed on Visual Studio 2008 IDE and
Mobile Appl
ication interacts with the Web and Database server through HTTP Request
over the internet.




















25


Chapter 3

3.

SYSTEM DESIGN

Mobile application works same as the web applications hosted on the server
. Client
interacts with the server through
web services
and
servers provide content to the client.
Clients obtain
that

content from internet and view them using a browser.
Design of user
interface for mobile application is different from the web application.

Mobile application
works by m
aintaining
a global database and interacting with server with the help of the
web services.

Building a Mobile Applications


Today, Cell phones (mobile phones) have become part of our life style. Mobile devices
can connect to the Internet, and execute applications. Mo
bile applications are applications
that can be run or accessed on mobile devices. There are two categories. One category is
mobile web application.
In t
hese applications
,

web pages can be viewed from mobile
devices. Typically they use WAP protocol. The web

applications themselves may reside
on desktop or servers. The development environment can be simply text editor or
Microsoft Mobile Internet Toolkit
[2
]
.


The other category is executable applications that reside on the mobile devices. Games
run on pocket

pc, or calendar on PDA. These applications need to
be
downloaded and
installed
and
executed

onto the mobile device
. There are several development
environments for this kind of programming. We can use .NET Compact Framework to
program on Microsoft PocketPC
, or use Java 2 Platform Micro Edition (J2ME) to
26


program with Nokia SDK. There are many different types of mobile devices, such as
PocketPC, Palm, and Cell Phone
[5]
. Since cell phones have much more popularity and can
let me learn more technology, in my pr
oject, I used cell phone as the platform.


This project runs on MS IIS (Microsoft Internet Information Services) Web Server. IIS is
a web server application and set of feature extension modules created by Microsoft for
use with Microsoft Windows. It is on
e of the world’s most popular web servers in terms
of overall websites behind the industry leader Apache HTTP Server
[6
]
.

C
onnected application put the application layers on different physical computers.
F
or
example moving the data layer to a separate serv
er or pushing out the presentation
layer
to the user computer. This first version was called client/server since the application was
broken into two parts a client and server. A classic example is the Web it is composed of
a browser which is the client and

a web server.

Mobile

application must be tested in uncontrolled real
-
world test conditions. This is also
called as Field testing. It is must for multi
-
tier applications.
A
ppropriate automation test
tool

should be selected to test these applications
[
3]
. E
ven
,

if it is possible to have
performance testing, GUI testing, and co
mpatibility should be

tested on actual devices.








27


Mobile Application Architecture



Web version of the Interpreter Scheduling System interacts with
few

I2S2 web services.
Web servi
ces for m
obile application also added to the same

I2S2

web services.
Maintaining a global database for the application will fetch all the scheduled
appointments through interacting with web services and displayed on basis of login
interpreter privileges.


Both agency and requester users can schedule appointments
. Interpreters are going to get
those appointments into the schedule tab of the mobile application by connecting based
on day, week and month calendar format.


Interprete
r s
ystem interacts with web
server and database server through DAO Layer and
some of the
method
calls will

be

through the I2S2 Web services. I2S2 Web Service
s act
as interface between the server and m
obile application.


Readin
g the data from the server and w
riting data to the server

will be through the xml.
Business layer
consists of
business logic to call the required methods. Web services will
expose the methods needed for the Mobile application and provides security in calling the
global database.


Mobile application login authori
zation is completed through the SSL certificate. Login
credentials are encrypted and send to the server through third party certificate agency ,
28


which provides the SSL certificate. If the entered login credentials are successful then the
user will get the
access to use the mobile application. In this way authorization to the
system is secure.

A
Web service

is a method of communication between two electronic devices over a
network. The
W3C

defines a "
Web service" as "a software system designed to support
interoperable

machine
-
to
-
machi
ne

interaction over a
network
". It has an interface
described in a machine

-

process

able format(
WSDL
).

Other systems interact with the Web service in a manner prescribed by its description
using
SOAP

messages, typically conveyed using HTTP with an

XML serialization in
conjunction with other Web
-
related standards
[
4]
.


In this project,
I2S2
web services used for the mobile application will expose limited
functionality to mobile application users. So the users of the mobile application cannot
manipula
te the core I2S2 database.


Mobile Application is provided with methods to access and update the information
related to appointment, requester and patients details through a secure web services.
Mobile application can connect to the Internet Interpreter
Scheduling System only
through these web services. Web services will be hosted on the same server as the web
application. IIS is used as the web server for this application.

29


Mobile Application after the launch of simulator checks the Program.cs , which is
the
main thread for mobile application. This file invoke the FrmMain class. This acts as the
router to all the forms in the application. This will invoke appropriate handlers based on
selection of the folder on the mobile application Main Menu. This acts a
s the controller
for whole application. User wants to do any operation will be go through this FrmMain
class in Mobile Application.

.CAB file
is
created for the installer.

Need to f
inish developing driver or application,

after
completing the Development of

the application. CAB Wizard used to create cabinet
(.cab) files to facilitate installation of mobile application on devices. This file acts as a
container, holding all necessary device driver or application files in one location, which
ensures that these
files are present at installation. This

process to be followed

using a text
editor first to create an .inf file and then using the CAB Wizard command
-
line tool
(Cabwiz.exe) at the command prompt.


Online / Offline Mode:

I2S2 Mobile able to work in offline

mode because some of the
departments or
h
ospitals might not have the Internet connectivity. Interpreter might not
be able to synchronize the appointments. In that case, Interpreter will get authorization
from

doctor and s
ave the appointment in the

mobile
application. Interpreter will be
Synchronize the appointments when the connectivity is good.



30



Figure
9

Internet Scheduling System Application Architecture


.NET Application Architecture

In the classic three
-
tier design of a .N
ET application, the architecture breaks down into
three major areas of functionality:


1. The data layer manages the physical storage and retrieval of data

2. The business layer mai
ntains business rules and logic.

3. The presentation layer houses the use
r interface and related presentation code.


31


Data layer:

This layer consists of operations to get and set the data to the database back
and forth. This layer only interacts with the database. Database queries or use stored
procedures to access the data fro
m the database or to perform any operation to the
database.


Business layer:

This layer consists of operations
w
hich work as a mediator to transfer the
data from Application or presentation layer data layer. Business layer is the class where
we write the f
unctions which get the data from the application layer and passes through
the data access layer.


Presentation layer:

Presentation layer is the form which provides the user interface to
either programmer of end user. Programmer uses this layer for designin
g purpose and to
get or set the data back and forth. Presentation layer is the form where we design using
the controls like textbox, labels, command buttons etc.


The following is a block diagram of all the modules in the application and the
relationships
between them. The following view includes arrows to indicate flow of data
and/or control.

32



Figure
10

Design of the Mobile Application


High Level Design

The High
-
Level Design (HLD) provides an overview of the design components
of the
Mobile application. The design is represented through elaborations on class diagrams for
each of the core sub
-
systems. The purpose of the high
-
level design is to define key
classes, as well as the interactions among instances of these classes (objec
ts). Inputs to
the HLD consist of the functional requirements defined in the above sections. The HLD
33


represents a decomposition of all the sub
-
systems down to the class level. It is envisioned
that the HLD will form the basis for the detailed design effort
s.


Following are the key goals and constraints governing t
he design decisions in the HLD:


• High
-
level design should decompose complex business logic; identify dependencies


Among components, and arrive at a holistic view of the application.

• High
-
l
evel design should address core functionality by identifying and defining
the
key


c
lasses
,

responsibilities
, behavior and attributes.

• High
-
level design should clearly define application boundaries and their interfaces.

• High
-
level design should
form the basis for planning and scoping subsequent phases.

• High
-
level design should adopt object
-
oriented design principles such as encapsulation,


Information hiding, loose coupling, and high cohesion.


In this Project
, Mobile

Application User Inter
face involves all the script and designer
files. Designer.cs files allow users to customize the Mobile interface. This interface
allows the users to include options and customize the table and options. Script files
contain the logic to call the process.xml

files or web services. Process.xml files mainly
used to sync the data, read and write data from the XML. This Project includes the Web
Services as the reference. Web services hosted on the same server as the Mobile
Application.





34


Chapter 4

4.

DATABAS
E DESIGN


Database Design is one of the most important parts of designing an application.
Database
design

encompasses the entire process from the creation of requirements, business
processes, logical analysis and physical database constructs to the deploym
ent of the
database. A good database design will contribute to software development and improve
performance. It facilitates data retrieval, storage and modification.

About SQL Server 2008

Microsoft SQL Server is a relational model database server produce
d by Microsoft. SQL
Server 2008 includes native support for managing XML data, in addition to relational
data. For relational data, T
-
SQL has been augmented with error handling features
(
including the
tr
y and
catch) and support for recursive queries (Commo
n Table
Expressions). SQL CLR was introduced with the SQL Server

to let it integra
te with the
.NET Framework.

Database Tables and Database Diagram


An entity
-
relationship (ER) diagram is a specialized graphic that illustrates the
relationships between ent
ities in a database. ER diagrams often use symbols to represent
three different types of information. Boxes are commonly used to represent entities.
Diamonds are normally used to represent relationships and ovals are used to represent
attributes.

35


An ER mod
el is a diagram containing entities or "items", relationships among them, and
attributes of the entities and the relationships. An entity is a real
-
world item or concept
that exists on its own.


The set of all possible values for an entity is the entity t
ype. A relationship type is a set of
associations among entity types. A relationship or relationship instance is an ordered pair
consisting of particular related entities.


Appointment t
able is the main table in this Internet I
nterpr
eter Scheduling System
database, which connects to rest of the tables like

Employee, Person, Requester,
Customer, Department and Language.
Interpreter Scheduling System will take
a
ppointment
s

with multiple patients.


The Internet

Interpreter scheduling system maintains global
database for both web and
mobile
application,

most of the tables are common for both applications. Additional
Columns added as per the need of web service calls for the Mobile application. Person
table will have all the service recipient information of the

Appointment.


If the Appointment is linked with more than one patient then Person table will have
multiple records for the same Appointment.


Patient table will have
the
Last

Name, First

Name, ReferenceNumber , CellPhone,
WorkPhone, AppointmentID, Custo
merID.

Person table is
alway
s linked with the
Appointment and
Requester

table
.

Customer Table linked with Appointment and
36


Requester tables. Customer will have different departments. Each department will have
several requesters or providers. Customer mapped

with CustoemrID, Name and Customer
category with rest of the tables.
Requester table will have all the details for the requester.

It

contains the Name, Email, Location Type

Of

Medical, Client

ID, Customer

Category

ID, Department

ID, Agency

Name

ID, Hosp
ital

ID, Appointment

d
eclined

EmailFlag
.

These requester
s

are directly linked with the Hospital or department in the
H
ospital.


Interpreter will
get a notification to registered mobile

phone
based on the
settings of the
interpreter. If the interpreter regi
ster
s

phone number then every app
ointment scheduled or
cancelled then server
will
send

a notification to the
mobile

phone

of the interpreter
.
Tables Phone
CompanyEmailServer and Employee
TextMessagePhone
are

connected.
PhoneCompanyEmailServer has all the re
gistered servers for different carriers.
TextMessagePhone have all the registered phone numbers of the Interpreters.


Another important table username
is connected with UserGroupType. Interpreters only
have the permission to access the Mobile application.
User login
to Mobile application, it
verifies the login credentials matching the User Group Type

as Interpreter .Interpreter can
be able to login and i
f
the login credentials are
not

matching the interpreter

then
it will
give an error message.


During the

Time Finish of the appointment the doctor has to enter the Authorization
Code. Authorization Code
can
be saved in Appointmen
t, Department and Customer
37


Level
. Customer can assign different
a
uthorization codes for different user
s or
have
same
code for part
icular department. This authorization code work as per the level of security
hierarchy defined.


Mostly authorization code is
specific to
department. Through the authorization c
ode,

legitimate
signature gets
validated. Doctor
or supervisor
will see the det
ails
of the
appointment
and
time
finish
the

appointment
with valid

Signature after entering the
Authorization Code
.

Following diagram shows the relation between the username and UserGroupType and
PhoneCompanyEmail Server and Employee Text Phone.


38


.

Figure

11

Design for User and Phone Related Tables


Sample of Database Scripts

Following is the script used to create table in the Internet Interpreter Scheduling System.
This includes all the details needed for the scheduling and time
finishing for an
employee. It includes ID, Language, Interpreter name, Address, Employee ID, Gender,
Working City, Pay Rate, Available Times, Phone Number and Text Phone Number to
get the notification from the System. Employee table having constraints

on different
columns based on the requirements with the system.


39


SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Employee](

[EmployeeID] [int] IDENTITY(1,1) NOT NULL,

[InterpreterType] [varchar](50) NOT NULL,

[T
itle] [varchar](50) NULL,

[LastName] [varchar](50) NULL,

[FirstName] [varchar](50) NULL,

[MiddleName] [varchar](50) NULL,

[Prefix] [varchar](50) NULL,

[Suffix] [varchar](50) NULL,

[AddressLine1] [varchar](50) NULL,

[AddressLine2] [varchar](50) NULL,

[Addre
ssLine3] [varchar](50) NULL,

[City] [varchar](50) NULL,

[State] [varchar](50) NULL,

[ZipCode] [varchar](50) NULL,

[MAddressLine1] [varchar](50) NULL,

[MAddressLine2] [varchar](50) NULL,

[MAddressLine3] [varchar](50) NULL,

[MCity] [varchar](50) NULL,

[MStat
e] [varchar](50) NULL,

[MZipCode] [varchar](50) NULL,

[Email] [varchar](50) NULL,

[SSN] [char](11) NULL
,

[DOB] [datetime] NULL,

[SID] [varchar](50) NULL,

[StartDate] [datetime] NULL,

[ContractStartDate] [datetime] NULL,

[ContractExpiredDate] [datetime] NUL
L,

[IsActive] [bit] NOT NULL,

[IsInterpreter] [bit] NOT NULL,

[Gender] [varchar](50) NULL,

[PayRate] [money] NOT NULL,

[AgencyNameID] [int] NOT NULL,

[Score] [int] NOT NULL,

[WorkingCity] [varchar](1024) NULL,

[RowDeleted] [bit] NOT NULL,

[UpdateDate] [dat
etime] NOT NULL,

[UpdateUser] [varchar](50) NULL,

[InterpreterRateEnabled] [bit] NOT NULL,

[InterpreterHourCalculationEnabled] [bit] NOT NULL,

[MinimumHour] [int] NULL,

[StepInMinute] [int] NULL,

[IncrementInMinute] [int] NULL,

[MinimumHourTel] [int] NULL,

[StepInMinuteTel] [int] NULL,

[IncrementInMinuteTel] [int] NULL,

40


[MinimumHourCancelledAppt] [int] NULL,

[MinimumHourCancelledApptTel] [int] NULL,

[StepInMinuteWithinMinimumHour] [int] NULL,

[StepInMinuteTelWithinMinimumHour] [int] NULL,

[WeekendRateEnable
d] [bit] NOT NULL,

[DiscountRateEnabled] [bit] NOT NULL,

[DiscountRateTriggerInMinute] [int] NULL,

[DiscountRateTelTriggerInMinute] [int] NULL,

[MinimumHourCancelledApptLevel2] [int] NULL,

[MinimumHourCancelledApptTelLevel2] [int] NULL,

[NeverConsolidateMi
leage] [bit] NOT NULL,

[AlwaysConsolidateMileage] [bit] NOT NULL,

[NeverConsolidateAppointment] [bit] NOT NULL,

[AlwaysConsolidateAppointment] [bit] NOT NULL,

[AppointmentCancelledEmailFlag] [bit] NOT NULL,

[AppointmentSentToInterpreterInboxEmailFlag] [bit
] NOT NULL,

[AppointmentSentToInterpreterScheduleEmailFlag] [bit] NOT NULL,

[Notes] [text] NULL,

[BusinessName] [varchar](255) NULL,

[AppointmentCancelledSMSFlag] [bit] NOT NULL,

[AppointmentSentToInterpreterInboxSMSFlag] [bit] NOT NULL,

[AppointmentSentTo
InterpreterScheduleSMSFlag] [bit] NOT NULL,

[PhoneCompanyEmailServerID] [int] NULL,

[TextMessagePhoneNumber] [varchar](50) NULL,

[AppointmentInfoEditedEmailFlag] [bit] NOT NULL,

[AppointmentInfoEditedSMSFlag] [bit] NOT NULL,

[CollisionID] [timestamp] NOT N
ULL,

CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED

(

[EmployeeID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY
= OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90)
ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [
PRIMARY]

GO


SET ANSI_PADDING OFF

GO

ALTER TABLE [dbo].[Employee] WITH NOCHECK ADD CONSTRAINT
[FK_AgencyName_Employee] FOREIGN KEY([AgencyNameID])

REFERENCES [dbo].[AgencyName] ([AgencyNameID])

GO

ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_AgencyN
ame_Employee]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_InterpreterType] DEFAULT ('I') FOR [InterpreterType]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT [DF_Employee_IsActive]
DEFAULT (0) FOR [IsActive]

GO

ALTER TABLE [dbo].[Employ
ee] ADD CONSTRAINT
[DF_Employee_IsInterpreter] DEFAULT (0) FOR [IsInterpreter]

41


GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT [DF_Employee_PayRate]
DEFAULT (0) FOR [PayRate]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT [DF_Employee_RowDeleted]
DEFA
ULT (0) FOR [RowDeleted]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT [DF_Employee_UpdateDate]
DEFAULT (getdate()) FOR [UpdateDate]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_InterpreterRateEnabled] DEFAULT (0) FOR
[InterpreterRateEn
abled]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_InterpreterHourCalculationEnabled] DEFAULT (0) FOR
[InterpreterHourCalculationEnabled]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_WeekendRateEnabled] DEFAULT (0) FOR [W
eekendRateEnabled]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_DiscountRateEnabled] DEFAULT (0) FOR
[DiscountRateEnabled]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_NeverConsolidateMileage] DEFAULT (0) FOR
[NeverConsoli
dateMileage]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AlwaysConsolidateMileage] DEFAULT (0) FOR
[AlwaysConsolidateMileage]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_NeverConsolidateAppointment] DEFAULT (0) FOR
[Neve
rConsolidateAppointment]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AlwaysConsolidateAppointment] DEFAULT (0) FOR
[AlwaysConsolidateAppointment]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentCancelledEmailFlag]

DEFAULT (0) FOR
[AppointmentCancelledEmailFlag]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentSentToInboxEmailFlag] DEFAULT (0) FOR
[AppointmentSentToInterpreterInboxEmailFlag]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF
_Employee_AppointmentSentToInterpreterScheduleEmailFlag] DEFAULT
(0) FOR [AppointmentSentToInterpreterScheduleEmailFlag]

42


GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentCancelledEmailFlag1] DEFAULT ((0)) FOR
[AppointmentCancelledS
MSFlag]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentSentToInterpreterInboxEmailFlag1] DEFAULT
((0)) FOR [AppointmentSentToInterpreterInboxSMSFlag]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentSentToIn
terpreterScheduleEmailFlag1] DEFAULT
((0)) FOR [AppointmentSentToInterpreterScheduleSMSFlag]

GO

ALTER TABLE [dbo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentInfoEditedEmailFlag] DEFAULT ((0)) FOR
[AppointmentInfoEditedEmailFlag]

GO

ALTER TABLE [d
bo].[Employee] ADD CONSTRAINT
[DF_Employee_AppointmentInfoEditedSMSFlag] DEFAULT ((0)) FOR
[AppointmentInfoEditedSMSFlag]

GO


CodeTable_r_all is a stored procedure used throughout the application and it will be
loaded only at the start of the application
. This procedure will return all the information
needed throughout the Scheduling System. This script involves all the tables like
RateType, UserGroupType, PhoneType, Language, Agency Name, Customer Category,
Employee Phone, Billing Note and so on. As it i
s used throughout the application if the
anything is needed across the layers then need to alter stored procedure and add the query
according to the need of the functionality.

ALTER PROCEDURE [dbo].[CodeTable_r_all]

@AgencyNameID

int = null

AS

begin

if @A
gencyNameID is null

begin

select * from State



select * from UserGroupType

43


select * from TelephoneType

select * from PhoneType




select * from RateType




select * from [Language]




select * from InvoiceStyle




select * from v_CodeTable_Department






select * from CustomerCategory order by SortOrder, DisplayValue




select * from AgencyName where RowDeleted = 0






select * from AgencyPhone where RowDeleted = 0




select * from ZipCode where RowDeleted = 0




select e.*, FirstName + ' ' + LastName +
'
-

' + it.Code +
dbo.GetInActiveString(IsActive) as DisplayName,

u.UserNameID, u.UserName, u.Password,it.DisplayValue as
InterpreterTypeDisplayValue, it.SortOrder

from Employee e

inner join InterpreterType it

on e.InterpreterType = it.Code

left outer join

UserName u

on e.EmployeeID = u.EID

and (u.UserGroupTypeCode = 'Interpreter' or u.UserGroupTypeCode =
'Agency')and u.RowDeleted = 0

where e.RowDeleted = 0




select el.*, l.LanguageName from EmployeeLanguage el inner join
[Language] l on el.LanguageID =
l.LanguageID

where el.RowDeleted = 0




select *, dbo.GetWeekDay(DayCode) as DayOfWeek from
EmployeeAvailableTime e

where e.RowDeleted = 0




select *, ZipCode from EmployeeNotWorkingArea ewa inner join ZipCode zc
on ewa.ZipCodeID = zc.ZipCodeID

where ewa.
RowDeleted = 0




select * from EmployeePhone e where e.RowDeleted = 0




select [EmployeeTimeOffID]

,[EmployeeID]

,convert(datetime, convert(date,[DayOff],111), 111) as [DayOff]

,[Reason],[FromTime],[ToTime],[RowDeleted],[UpdateDate]

from EmployeeTimeOff

where RowDeleted = 0 and DateDiff(day, getDate(),
DayOff ) >= 0






select * from EmployeeNote e where e.RowDeleted = 0








select * from BillingCode where RowDeleted = 0




select * from Customer c where c.RowDeleted = 0








44


select * from CustomerP
hone where RowDeleted = 0


select * from v_CodeTable_Hospital where RowDeleted = 0




select * from HospitalPhone where RowDeleted = 0



select * from Gender




select * from ExactLocation




select * from PhoneCompanyEmailServer where RowDeleted = 0





s
elect * from EmployeePayDifferential epd where epd.RowDeleted = 0



select * from InterpreterType order by DisplayValue




select * from QuestionFormatType



select * from InterpreterCheckListType




select * from InterpreterCheckList








select * from
SpecialityType




select interSpe.*, speType.DisplayValue from InterpreterSpeciality
interSpe

inner join SpecialityType speType

on interSpe.SpecialityTypeID
= speType.SpecialityTypeID

where interSpe.RowDeleted = 0

order by
speType.DisplayValue




select *

from TrainingType




select interTrain.*, trainType.DisplayValue from InterpreterTraining
interTrain

inner join TrainingType trainType

on
interTrain.TrainingTypeID = trainType.TrainingTypeID

where interTrain.RowDeleted = 0


order by trainType.DisplayValu
e





select * from AppointmentCancelledReason order by DisplayValue




select * from InterpreterLockedOutType order by DisplayValue




select * from AppointmentStatusType



select * from ProjectCode




select * from SourceCode




select * from Interpreter
AddOn




select * from AppointmentTypeCode order by SortOrder




45


select *, FirstName + LastName as DisplayName from Dispatcher where
RowDeleted = 0




select *, dbo.GetWeekDay(DayCode) as DayOfWeek from DispatcherSchedule
where RowDeleted = 0






selec
t * from ReportUrl








end


end




Following is the Stored procedure to retrieve all the information need for the application
related to the appointment. It retrieves the data from Appointment, v_Appointment,
AppointmentNote, AppointmentHistory, Payro
llPeriod, InvoicePeriod, BillingAddress,
PayrollPeriodInterpreterAppointment, PayBillItemManual, EmployeeReminder,
v_Appointment_PayBillItemAuto, v_Appointment_Person, AppointmentAttachment,
EmployeeReminder, PayrollPeriodInterpreter, InvoiceDetail , In
voicePeriodCustomer,
InvoiceDetailAppointment tables. This will retrieve the information of the interpreter

mapped to this appointments.

CREATE

PROCEDURE [dbo].[Appointment_r_all]

@AgencyNameID int,

@SQL



nvarchar(4000)

AS


begin

create table #FoundA
ppointment(AppointmentID int not null)

declare @SQLPrefix nvarchar(4000)

select @SQLPrefix = 'insert into #FoundAppointment ' + @SQL

exec(@SQLPrefix)

select distinct a.AppointmentID

into #AppointmentWithAgency

from Appointment a

inner join #FoundAppointme
nt fa

on a.AppointmentID = fa.AppointmentID

where a.AgencyNameID = @AgencyNameID

and a.RowDeleted = 0








--
select table back out to the caller

--
select Appointment

46


select a.*

from v_Appointment a

i
nner join #AppointmentWithAgency awa

on a.Appointme
ntID = awa.AppointmentID

order by a.StartTime

--
select AppointmentNote



select a.*

from AppointmentNote a

inner join #AppointmentWithAgency awa

on a.AppointmentID = awa.AppointmentID

where a.RowDeleted = 0

--
select AppointmentHistory



select a.*

from App
ointmentHistory a

inner join #AppointmentWithAgency awa

on a.AppointmentID = awa.AppointmentID



where a.RowDeleted = 0

order by UpdateDate

--
select BillingAddress



select a.*

from BillingAddress a

inner join #AppointmentWithAgency awa

o
n a.AppointmentID
= awa.AppointmentID

where a.RowDeleted = 0

--
select PayBillItemAuto


select a.*

from v_Appointment_PayBillItemAuto a

inner join #AppointmentWithAgency awa

o
n a.AppointmentID = awa.AppointmentID

--
select PayBillItemManual


select a.*

from PayBillItemManual
a

inner join #AppointmentWithAgency awa

on a.AppointmentID = awa.AppointmentID

where a.RowDeleted = 0

--
select PendingEmployee


select a.*, e.FirstName + ' ' + e.LastName +
dbo.GetInActiveString(e.IsActive) as DisplayName

from PendingEmployee a

inner join

#AppointmentWithAgency awa

on a.AppointmentID = awa.AppointmentID

inner join Employee e on

a.EmployeeID = e.EmployeeID

where a.RowDeleted = 0



--
select Person


select a.*

from v_Appointment_Person a

inner join #AppointmentWithAgency awa

on a.AppointmentI
D = awa.AppointmentID

where a.RowDeleted = 0

select * from AppointmentAttachment where 1 = 0

--
select employee reminder

47


select a.*

from EmployeeReminder a

inner join #AppointmentWithAgency awa

on a.AppointmentID = awa.AppointmentID


select * from PayrollP
eriod where 1 = 0

select * from PayrollPeriodInterpreter where 1 = 0

select * from PayrollPeriodInterpreterAppointment where 1 = 0

select * from InvoicePeriod where 1 = 0

select * from InvoicePeriodCustomer where 1 = 0

select * from InvoiceDetail where 1 =

0

select * from InvoiceDetailAppointment where 1 = 0





--
drop temp tables

drop table #FoundAppointment

drop table #AppointmentWithAgency

return 0

end


If the appointment is moved to the interpreter folder of a particular interpreter then
Appointment wil
l show IsInterpreterFolder flag as ‘1’ and else with ‘0’. If the Interpreter
was assigned to the appointment then the appointment will display with assigned
EmployeeID. If the appointment was kept in public folder then the appointment with
IsPublicFolder
flag as ‘1’. Moving of the appointments to the interpreter folder and
public folder will be confirmed from the Agency side through web application.














48


Chapter 5

5.

IMPLEMENTATION DETAILS

This chapter describes in detail the .NET technologies us
ed in this project and shows
some sample code to explain in detail, the main features of the application.

Development of Mobile Interface using ASP.NET

ASP.NET
framework

developed to allow programmers to build
Web, Mobile
applications
and web services.

Mobile Framework uses the forms on the front end and
scripts files used to write code behind the forms. Script files will use the Web
services
calls to execute the logic.


The Scheduling System provides the following major features:


1.

Maintaining a global
database and through the web services sync the data into the
database.

The agency or requester users will create appointments
.

I
nterpreters are
going to get those ap
pointments into the schedule folder

of the mobile application
in day, week and monthly form
at.

2.

Interpreter can accept or reject the appointment based on the available schedule.

3.

Signature of the a
uthorized person
is

automated and
uploaded as the voucher into
the System.

4.

A
ppointments
should be Synchronize to the database

after the time finish
.

5.

MAP

Quest functionality implemented in the Scheduling System by
implementing the Map Quest
SDK and using MQ API
. This functionality is
49


implemented as a separate web service to calculate the mileage and travel distance
between the source and destination.

6.

Cance
led
appointment
s

need

to be removed from the Sync Folder before
synchronizing the database.

7.

Appointments will be

saved

in t
wo folders.
It will consist of the appointments
scheduled for interpreter
and a
gency is not sure
about that

interpreter’s
availabilit
y.
Agency Folder
consists of the unassigned appointments. This is the
common pool for all the interpreters and agency.

8.

Important part of the mobile application is, it detects the web browser and will
produce the output according to the browser.

9.

After the a
ppointment is finished, employee submits the appointment and sync to
the database

through

I2S2 web services.

10.

Interpreter can login to the Scheduling System in both online/offline modes.
Interpreter can save the appointment after the time finish and submi
t the
appointment when the
internet
connectivity is good.

11.

A device emulator is software that simulates a mobile device. Visual Studio IDE
includes built
-
in emulator SDKs for Pocket PC and Smartphone.





Development of Web Service in ASP.Net


Web Service i
s programmable application logic accessible via standard Web protocols.
One of these Web protocols is the Simple Object Access Protocol (SOAP). SOAP uses
XML for data description and HTTP for transport to encode and transmit application
50


data. A SOAP messag
e consists of several elements, most notably an envelope. The
envelope encapsulates the data transmitted within the SOAP message.

Consumers of a Web Service do not need to know anything about the platform, object
model, or programming language used to imp
lement the service. They only need to
understand how to
send and receive SOAP messages through HTTP and XML
.

Soap Message for
DoScheduleAppointm
entByLoginUser
:


Sample Soap Message for the method Do
ScheduleAppoin
t
m
entByLoginUser method
implemented through web

service.

This method is implemented to do scheduling of the

appointment and return Appointment DataSet(XmlDocument)
. In this

example bel
ow,
explains the HTTP headers for the request, including the HTTP SOAPAction header,
which is optionally used by the server for routing the SOAP message.

In the below code snippet, f
ollowing the HTTP headers we find the body of the HTTP
message. The body

of the HTTP message is the SOAP request for a
DoScheduleAppointmentByLoginUser

Web Service that going to build.

SOAPAction: "http://tempuri.org/DoScheduleAppointmentByLoginUser"

<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w
3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Header>

<AuthHeader xmlns="http://tempuri.org/">

<ProductKey>string</ProductKey>

51


<ApplicationName>string</ApplicationN
ame>

<UserGroupTypeCode>string</UserGroupTypeCode>

<Username>string</Username>

<Password>string</Password>

</AuthHeader>

</soap:Header>

<soap:Body>

<DoScheduleAppointmentByLoginUser xmlns="http://tempuri.org/">

<strAppointmentTypeYearNumber>string</strAppo