916

Medical Skin Studio

Achieve your skin’s potential.

 

 

 

 

 

 

 

 

 

 

 

 

Project Design

Phase 1

 

CSCI 470

10/30/08

 

Nat Bowman

Christian Gugas

Jeffrey Hawthorne

Tou Lor

Ryan Mordoff

 

 


 

 

 

Table of Contents

 

 

Problem Statement/Requirements Definition                                                                   2

ER Diagram                                                                                                                  4

Object Model                                                                                                               7

User Views                                                                                                                  8

            Employee/Admin views                                                                         8

            Client Views                                                                                                     34

Data Dictionary                                                                                                            43

Use Case Diagram                                                                                                        46

Use Cases                                                                                                                    47

Scenarios                                                                                                                     51

 

 

 

 

 

 

 

 

Team Member Tasks

 

 

Nat Bowman – UML Diagram

 

Christian Gugas - Problem statement, data dictionary

Jeffrey Hawthorne – Scenarios

 

Tou Lor – User views, use case diagram

 

Ryan Mordoff - ER diagram, user views, editing and formatting

 

 

 

Problem Statement/Requirements Definition

 

916 Medical Aesthetics is an exclusive home-run medical spa that specializes in skin and body care.  It is nested in the beautiful city of Chico at 916 Sheridan Road.   At 916, “It’s all about you.” 

 

916 has been keeping most of their records in paper format and are starting to realize the real pluses of converting to a paperless system by incorporating a database.  For this we are proposing a database design that tailors to their specific needs.  The databases primary use will be to track client information, appointments, purchase history, and products and services. 

 

Basic information will be stored on each client such as contact information and general background data (websites, photograph, occupation, interests, children, pets, etc.).  We will also be providing detailed data sets on the client questionnaire forms, allowing data to easily be queried about a client’s medical history or information about a number of clients pertaining to a specific question on a questionnaire.  Detailed reports can be performed to gather any type of information wanted from these questionnaires.  We plan to keep track of past, present, and future client appointments and the details of each visit.  Clients purchase history will also be stored in the database allowing detailed account reports to be ran.

 

A website will be used as a front end to interact with the database.  Clients will have the ability to schedule appointments and fill out any needed questionnaires and forms all via web (excluding consent forms).  Employees and administrators can view any needed client information through the front end website as well, along with all other needed data such as reports, purchase history, etc.

 

There are five parts to the requirements specification.

 

Clients:

               The client is very important in this database web base application.  The web front end has to be simple and user friendly to the client.  All the information filled out by the client will be stored in the database for that specific client only and be viewable by employees performing the service or treatment. 

 

Appointments: 

               Appointments can be made by clients or employees.  Since this is a web base application, the client will have access to this web base application wherever they are that has internet connection.  Employees will also be able to view any appointments (past and present).  The client will be notified of their appointment one day prior to their appointment. The appointment is stored into the database for future viewing and reports.

 

Services/Treatments: 

               When making the appointment, the client will be able to input what type of service or treatment they want.  The services or treatments will be stored into the database and be viewable in the future by clients and employees.  

 

Questionnaires: 

               These are for the client to fill out before an appointment is made by the client.  This information will help the employee understand a little bit about the client before performing the service or treatment on the client.  The information will be stored into the database be viewable as a future reference.

 

Performance:

               It is important that the database can interact quickly with the web front end and not waste the time of clients or employees.  The information clients view or enter to the database should be very quick transactions.  It is assumed that since this is a fairly simple design with a fairly small amount of data, there shouldn’t be any performance issues.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ER Diagram

 

Bold Type – primary key

Green Outline – derived attributes

Blue Outline – multi-valued attributes

 
 

 


 

 

 

 

 

 

 

 

 

 

 

Bold Type – primary key

Green Outline – derived attributes

Blue Outline – multi-valued attributes

 
 

 


UML Diagram

 

User Views

 

Employee/Admin views:

 

Name

 Navigation

View Number

1e

Type

Layout

Description

This just displays the main layout for the employee and admin view of the site.  Each page has this same general navigation on the top and the bottom, with the middle filled in with the current page content.

 

 

 

 

Name

 Login

View Number

1.1e

Type

Login

Description

This view is opened by clicking the ‘Patients’ link.  It lists all the patients in a table form, displaying their name, patient id, email, and primary phone.  Each patient name acts as a link, that when pressed brings up the detailed information on the given patient.

 

 

 

Name

 Patient List

View Number

2.1e

Type

List

Description

This view is opened by clicking the ‘Patients’ link.  It lists all the patients in a table form (in-active patients may be filtered by clicking the checkbox), displaying their name, patient id, email, and primary phone.  Each patient name acts as a link, that when pressed brings up the detailed information on the given patient.  Email will also act as a link.  The table can also be sort by each table header.

 

 

Name

Add Patient

View Number

2.2e

Type

Form

Description

This view is opened by clicking the ‘Add Patients’ link.  It displays an empty form to fill out the patient’s information.  Then click on Add Patient to add patient into the database.

 

 

 

Name

Patient Edit

View Number

2.3e

Type

Form

Description

This view is opened by clicking a particular patient name and then click on the edit link at the top left corner.  It displays a form fill out with the patient’s information already entered.  Edit the information as desired and click ‘Save Changes’ to save any new information entered.

 

 

 

Name

Patient View

View Number

2.4e

Type

View

Description

This view is opened by clicking the ‘Add Patient’ button in the ‘Add Patients’ view.  It displays information about a particular patient being viewed.

 

 

 

 

Name

Referrals List

View Number

2.5e

Type

List

Description

From the ‘Patients’ tab, click on a particular patient name.  A page of information for that particular patient will display and at the top there is a ‘Referrals’ link button.  Click on it to see the people that patient had referred.

 

 

 

Name

Edit Referral

View Number

2.6e

Type

Form

Description

From the ‘Referrals’ link button, at the top there is an ‘Edit’ link button.  Click on the ‘Edit’ link button to edit any information about the reffer’s information and click the ‘Save Changes’ button at the button to save the changes.  Then a new page will display the new changes.

 

 

Name

 Employee List

View Number

3.1e

Type

List

Description

This view is opened by clicking the ‘Employees’ link.  It lists all the employees in a table form (in-active employees may be filtered by clicking the checkbox), displaying their name, employee id, email, and primary phone.  Each employee name acts as a link, that when pressed brings up the detailed information on the given employee. Email will also act as a link.  The table can also be sort by each table header.

 

 

 

Name

Add Employee

View Number

3.2e

Type

Form

Description

This view is opened by clicking on the Employees tab and an ‘Add Employee’ link button should be at the top.  Click on ‘Add Employee’ and an empty form for employee’s information will appear.  Click on ‘Save’ to save the employee onto the database.

 

 

 

Name

Edit Employee

View Number

3.3e

Type

Form

Description

This view is opened by clicking a particular employee name and at the top there is an edit button.  It displays a form with that particular employee’s information that can be edited.  Click on ‘Save Changes’ to save any information changed about the employee. Then it will display a new page with the information changed as appear in the database.

 

 

 

Name

View Employee

View Number

3.4e

Type

Form

Description

This view is opened by clicking a particular employee name.  It displays information about that particular employee

 

 

 

Name

 Services/Packages List

View Number

4.1e

Type

List

Description

This view is opened by clicking the ‘Services/Packages’ link.  It lists all the services and packages in a table form, displaying their name, type (service or package), id, description, category, and cost.  Each service and package name acts as a link, that when pressed brings up the detailed information on the given service/package. The table can also be sort by each table header.

 

 

 

 

 

Name

Add Service

View Number

4.2e

Type

Form

Description

From the ‘Services/Packages’ tab, there is an ‘Add Service’ button above Services/Packages.  An empty form to enter in a service will display.  Then click on the ‘save’ button to save the new service into the database.

 

 

 

Name

Edit Service

View Number

4.3e

Type

Form

Description

From the ‘View Service’ to see the service information about that particular package.  There is an ‘edit’ button, click on it to view information that can be changed.  Then click ‘save’ to save any changes and to view that changes.

 

 

 

Name

View Service

View Number

4.4e

Type

View

Description

This view is opened by clicking on the ‘Services/Packages’ tab and then click on a particular ‘Service/Package Name’ from the left.  A page with the package information will display.  

 

 

 

Name

Add Package

View Number

4.5e

Type

Form

Description

Click on the ‘Services/Packages’ tab.  Then click on ‘Add Package’ to add a new package product.  Enter the required information about the new package and click 'Save' to view the new package.

 

 

 

Name

Edit Package

View Number

4.6e

Type

Form

Description

From the detail package view (4.7e), click on the ‘edit’ button.  A page with the package information will display and allow the user to change any necessary information.  The user can click ‘save’ to view the new information entered.

 

 

 

Name

View Package

View Number

4.7e

Type

View

Description

This view is opened by clicking on the ‘Services/Packages’ tab and then click on a particular ‘Service/Package Name’ from the left.  A page with the package information will display.  

 

 

 

Name

 Products List

View Number

5.1e

Type

List

Description

This view is opened by clicking the ‘Products’ link.  It lists all the products in a table form, displaying their name, id, description, category, and cost.  Each product a name acts as a link, that when pressed brings up the detailed information on the given product. The table can also be sort by each table header.

 

 

 

 

Name

Add Product

View Number

5.2e

Type

Form

Description

From the ‘Products' tab, there is an ‘Add Product’.  Enter all needed information.  Then click on the ‘save’ button to save the new product into the database.

 

 

 

Name

Edit Product

View Number

5.3e

Type

Form

Description

From the ‘View Product’ to see the service information about that particular product.  There is an ‘edit’ button, click on it to view information that can be changed.  Then click ‘save’ to save any changes and to view that changes.

 

 

 

Name

View Product

View Number

5.4e

Type

View

Description

This view is opened by clicking on the ‘Product' tab and then click on a particular product name from the left.  A page with the package information will display.

 

 

 

 

Name

 Tickets List

View Number

6.1e

Type

List

Description

This view is opened by clicking the ‘Tickets’ link.  It lists all the tickets (closed tickets may be filtered by clicking the checkbox) in a table form, displaying their id, owner, date, patient name, and patient id.  Each gift certificate id acts as a link, that when pressed brings up the detailed information on the given gift certificate.

 

 

 

Name

Add Ticket

View Number

6.2e

Type

Form

Description

Click on the ‘Tickets' tab.  Then click on ‘New Ticket’ to add a new package ticket.  Enter the required information about the new ticket and click 'Save' to view the new ticket.

 

 

 

Name

Edit Ticket

View Number

6.3e

Type

Form

Description

From the detail ticket view (6.4e), click on the ‘edit’ button.  A page with the ticket information will display and allow the user to change any necessary information.  The user can click ‘save’ to view the new information entered.

 

 

 

Name

View Ticket

View Number

6.4e

Type

View

Description

This view is opened by clicking on the ‘Ticket' tab and then clicking on a particular ‘Ticket' Id from the left.  A page with the ticket information will display.  

 

 

 

Name

 Gift Certificates List

View Number

7.1e

Type

List

Description

This view is opened by clicking the ‘Gift Certificates’ link.  It lists all the gift certificates in a table form, displaying their id, owner, who it was from, and amount left.  Each gift certificate id acts as a link, that when pressed brings up the detailed information on the given gift certificate.

 

 

 

 

Name

Add Gift Certificate

View Number

7.2e

Type

Form

Description

Click on the ‘Gift Certificate ' tab.  Then click on ‘New Gift Certificate’.  Enter the required information about the new gift certificate and click 'Submit'.

 

 

 

Name

Edit Gift Certificate

View Number

7.3e

Type

Form

Description

From the detail ticket view (7.4e), click on the ‘edit’ button.  A page with the gift certificate information will display and allow the user to change any necessary information.  The user can click ‘Submit' to view the new information entered.

 

 

 

 

Name

View Gift Certificate

View Number

7.4e

Type

View

Description

This view is opened by clicking on the ‘Gift Certificate' tab and then clicking on a particular ‘Gift Certificate' Id from the left.  A page with the information will display.  

 

 

 

Name

 Appointments

View Number

8.1e

Type

Appointment

Description

This view is opened by clicking the ‘Appointments’ link.  It contains a calendar of the current month with appointments filled in. 

 

 

 

Name

Add Appointment

View Number

8.2e

Type

Form

Description

Click on the ‘Appointment' tab.  Then click on ‘Add Appointment'.  Enter the required information about the new appointment and click 'Submit'.

 

 

 

Name

Edit Appointment

View Number

8.3e

Type

Form

Description

From the detail appointment view (8.4e), click on the ‘edit’ button.  A page with the ticket information will display and allow the user to change any necessary information.  The user can click ‘save’ to view the new information entered.

 

 

 

Name

View Appointment

View Number

8.4e

Type

View

Description

This view is opened by clicking on the ‘Appointment' tab and then clicking on a particular appointment from the calendar.  A page with the appointment information will display.  

 

 

Name

 Reports Selection

View Number

9.1e

Type

Selection

Description

This view is opened by clicking the ‘Reports’ link.  It contains a list of all the possible reports that can be run.

 

 

 

Name

 Deposit Slip

View Number

9.1.1e

Type

Reports

Description

This view is opened by clicking the ‘Reports’ link, selecting ‘Deposit Slip’ link.  You are brought to the Deposit Slip report page where you enter the register number and date as the report parameters.  Lastly click ‘Generate Report’.

 

 

 

Name

 Appointment Report

View Number

9.1.2e

Type

Reports

Description

This view is opened by clicking the ‘Reports’ link, and clicking the ‘Appointment Report’ link.  You are brought to the Appointment report page where you select the employee(s), date range, and filter parameters.  Lastly click ‘Generate Report’.

 

 

 

 

Name

 Client Reminders

View Number

9.1.3e

Type

Reports

Description

This view is opened by clicking the ‘Reports’ link, selecting ‘Client Reminders’ list.  This then brings you to the client reminders configuration page.  It gives the user a number of settings, that when saved, the system will check on a daily basis what emails should be sent out.

 

 

 

 

Name

 Inventory Report

View Number

9.1.4e

Type

Reports

Description

This view is opened by clicking the ‘Reports’ link, clicking ‘Inventory Report’ link. You are brought to the Inventory report page where you enter the quantity of items to run the report on.  Lastly click ‘Generate Report’.

 

 

Name

 Register Transaction Report

View Number

6.1.5e

Type

Reports

Description

This view is opened by clicking the ‘Reports’ link, selecting ‘Register Transaction Report’ link.  You are brought to the Register Transaction report page where you enter the register number and date as the report parameters.  Lastly click ‘Generate Report’.

 

 

 

 

Name

 Employee Production Report

View Number

6.1.6e

Type

Reports

Description

This view is opened by clicking the ‘Reports’ link and clicking ‘Employee Production Report’ link.  You are brought to the ‘Employee Production report page where you select the employee(s) and date range as the report parameters.  Lastly click ‘Generate Report’.

 

 

 

 

Client Views:

 

 

Name

 Navigation

View Number

1p

Type

Layout

Description

This just displays the main layout for the client view of the site.  Each page has this same general navigation on the top and the bottom, with the middle filled in with the current page content.

 

 

 

Name

 Login

View Number

1.1p

Type

Login

Description

This view is opened by clicking the ‘Sign in’ link that appears on the top of each page or the user is navigated directly to this page when they reach a part of the site that requires them to login. brings up the detailed information on the given patient.

 

 

 

 

 

Name

 Services/Packages

View Number

2.1p

Type

Descriptions

Description

Descriptions of all services and packages offered.  The top links just jump the page down to the beginning of that category.  So pressing “Waxing” under packages will bring the user down the page to where the waxing package descriptions start.

 

 

Name

 Products

View Number

3.1p

Type

Descriptions

Description

Descriptions of all products offered.  The top links just jump the page down to the beginning of that category.  So pressing “Skin Care” will bring the user down the page to where the skin care product descriptions start.

 

 

Name

Appointment Page

View Number

4.1p

Type

View

Description

This view is opened by clicking on the ‘Appointment'.  It gives the user general info about appointments.  

 

 

 

 

 

Name

Add Appointment

View Number

4.2e

Type

Form

Description

Click on the ‘Appointment' tab.  Then click on ‘Make an Appointment' link.  Enter the required information about the new appointment and click 'Submit'.

 

 

 

Name

Edit Appointment

View Number

4.3e

Type

Form

Description

From the detail appointment view (4.4e), click on the ‘edit’ button.  A page with the ticket information will display and allow the user to change any necessary information.  The user can click ‘save’ to view the new information entered.

 

 

 

Name

View Appointment

View Number

4.4e

Type

View

Description

This view is opened by clicking on the ‘Appointment' tab and then clicking on the "My Appointments" link.  Find the appointment from the list you would like to look at and click its "detail link".  A page with the appointment information will display.  

 


 

Name

View Ticket

View Number

4.1p

Type

View

Description

This view is opened by clicking on the ‘My Account’ tab and then click on a particular ‘ticket' from the left.  A page with the package information will display.  

 

 

 

Data Dictionary

 

Patient

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

PatientID

Unique # for patient

Int

 

yes

no

FirstName

The first name of patient

String

 

no

no

LastName

the Last name of patient

String

 

no

no

Email

Email address

String

 

no

no

Address-street

Patient address

String

 

no

no

Address-city

Patient address

String

 

no

no

Address-state

Patient address

String

 

no

no

Address-zip

Patient address

Int

 

no

no

Employer

Patient Employer

String

 

no

no

Occupation

Patient's job title

String

 

no

no

Website

Patient's web site

String

 

no

no

Picture

Patient's photo

media blob

 

no

no

DOB

Patient's Birthday

date

 

no

no

EmergCont

Emergency Contact info

String

 

no

no

Tardy

Is Patient on time

Bool

 

no

no

Username

Patient's username

String

 

no

no

password

Patient's password

String

 

no

no

Active

Is patient a regular customer

Bool

 

no

no

refID

the patient id who referred this patient

Int

PatientID

no

yes, Patient: patient ID

 

 

 

 

 

 

Emplyee

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

EmployeeID

Unique # for employee

Int

 

yes

no

fName

Name of Employee

String

 

no

no

lName

Name of Employee

String

 

no

no

Picture

Photo of Employee

blob

 

no

no

Schedule

If the employee is on schedule

Bool

 

no

no

CommissionRate

commission rate of employee

Int

 

no

no

Paytype

Salary or hourly

Bool

 

no

no

PayRate

Wages of employee

Double

 

no

no

empType

doctor/secretary/etc

String

 

no

no

Active

Is employee still on pay roster

Bool

 

no

no

Username

Username of employee

String

 

no

no

password

Password of employee

String

 

no

no

 

 

 

 

 

 

GeneralInfo

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

PatientID

Unique # for patient

Int

PatientID

yes

yes,Patient:PatientID

Attribute

Name of the item

String

 

yes

no

Value

Value of the item

Int

 

yes

no

 

 

 

 

 

 

Reminder

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

reminderID

Id # for reminder

Int

 

yes

no

patientID

patient id who is reminded

Int

PatientID

no

yes, patient: patient ID

appointmentID

id for appointment reminded for

Int

appointmentID

no

yes,appointment:appointmentID

dateSent

date sent

date

 

no

no

type

missed, scheduled, b-day

String

 

no

no

 

 

 

 

 

 

Appointment

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

AppointmentID

unique id

Int

 

yes

no

PatientID

name of patient

Int

patientID

no

yes,Patient:PatientID

Date

app date

Date

 

no

no

StartTime

the time app starts

DateTime

 

no

no

Duration

how long the app is

Int

 

no

no

EmplyeeID

employee who made appmnt

String

 

no

no

Status

Late, missed, open, etc

String

 

no

no

 

 

 

 

 

 

AddAppService

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

ServiceID

id of service received

Int

ItemID

yes

yes,Inventory:ItemID

AppointmentID

id of unique appointment

Int

AppointmentID

yes

yes,Appointment:appointmentID

EmployeeID

id of employee

Int

EmployeeID

no

yes,Employee:EmployeeID

 

 

 

 

 

 

 

 

 

 

 

 

SystemSettings

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

CmpName

Company name

String

 

yes

no

CmpAddress

Company address

String

 

no

no

CmpPhone

Company Phone

String

 

no

no

Statetax

tax

Double

 

no

no

Localtax

tax

Double

 

no

no

RequireRegister

RequireRegister

bool

 

no

no

 

 

 

 

 

 

Ticket

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

TicketID

ticket number

Int

 

yes

no

Date

date

Date

 

no

no

discountType

% or $ amount

String

 

no

no

Discount

discount

Double

 

no

no

Tip

tip amount0

Double

 

no

no

 

 

 

 

 

 

LineItem

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

lineItemID

number of line

Int

 

yes

no

itemID

product or inventory ID

Int

packageID or itemID

no

yes,Package:packageID or Invenory:itemID

itemType

product or inventory

String

 

no

no

employeeID

employee who sold or performed

Int

employeeID

no

yes,Employee:EmployeeID

Quantity

number of services/products

Int

 

no

no

ticketID

belong to this ticket

Int

ticketID

no

yes,Ticket:ticketID

 

 

 

 

 

 

 

 

 

 

 

 

Package

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

packageID

the package code

Int

 

yes

no

packageName

name of package

String

 

no

no

packageDesc

package description

String

 

no

no

packageDiscount

discount on package

Double

 

no

no

 

 

 

 

 

 

PackageItems

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

packageID

id of package

Int

packageID

yes

yes,Package:packageID

ItemID

items contained in package

Int

itemID

yes

yes,Inventory:ItemID

Quantity

the number of items

Int

 

no

no

 

 

 

 

 

 

 

 

 

 

 

 

GiftCertificate

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

GiftID

Id of gift

Int

 

yes

no

DatePurchased

date of purchase

Int

 

no

no

Amount

the amount left

Int

 

no

no

FromPID

from patient ID

Int

PatientID

no

yes, patient: patient ID

ToPID

to patient ID

Int

PatientID

no

yes, patient: patient ID

purchasedLineItem

line item purchased

bool

 

no

yes,LineItem:lineItemID

 

 

 

 

 

 

GiftRedemption

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

giftId

the id of the gift

Int

giftID

yes

yes,GiftCertificate:giftID

ticketId

ticket gift cert is redeemed on

Int

ticketID

yes

yes,Ticket:ticketID

 

 

 

 

 

 

Register

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

regID

registration number

Int

 

yes

no

Date

the date

Int

 

no

no

 

 

 

 

 

 

RegPayments

 

 

 

 

 

Name

Desc

Data Type

Alias

Primary

Foreign Key

RegID

Id for register

Int

regID

yes

yes,register:regid

paymentID

id for payment

Int

paymentID

yes

yes,payment:paymentID