Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Software Design Description
Authors (in alphabetical order):Gregory Bajgier
Somil ParikhDhruv SalhotraBernard Wolff
Min Yaung
May 27, 2008
Contents
1 Document Information 4
1.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Definitions, Acronyms, and Abbreviations . . . . . . . . . . . . . . . . . . . 4
2 Design Overview 6
2.1 Description of Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Technologies Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Context Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Architecture 7
3.1 Application Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 Shared Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1.1 Document Class . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1.1.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1.1.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1.2 Person Class . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1.2.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1.3 User Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1.3.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1.4 Patient Class . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1.4.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1.4.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1.5 Physician Class . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1.5.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1.6 Template Class . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1.6.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 14
1
3.1.1.7 Department Class . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1.7.1 Properties . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 OpenOffice Extension Classes . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2.1 OODriver Class . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2.1.1 Methods . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3 Administrator Interface Classes . . . . . . . . . . . . . . . . . . . . . 15
3.1.3.1 AdminDriver Class . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3.1.1 Methods . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Database Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4 Design Features 18
4.1 User Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.1 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.2 Document Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.3 Patient Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.4 Physician Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.5 Save Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.6 Open Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.7 Find Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.8 Lock Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.9 Unlock document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.10 Lost Username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.11 Lost Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Administrator Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.1 Administrator Login . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.2 User Account Creation . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.3 User Account Modification . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.4 User Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.5 Manage Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2
1 Document Information
1.1 Properties
Title Healthcare Document Management System Requirements DocumentAuthors Somil Parikh, Min Yaung, Dhruv Salhotra, Gregory Bajgier, Bernard WolffReviewers Jeff Salvage, Somil Parikh, Min Yaung, Dhruv Salhotra, Gregory Bajgier, Bernard Wolff
1.2 Purpose
This document specifies the entire software architecture and design for the HCDocs doc-ument management system. These design decisions directly relate to the functionalities,performances, constraints, attributes, and interfaces of the system. HCDocs is a documentmanagement system which electronically stores, organizes and manages healthcare docu-ments and provides fast, security-controlled access to these documents. HCDocs providesthe look and feel of a standard word processor with capabilities for storing documents inan encrypted non-local repository-style database. All documents stored in the system areassociated with the patient’s identity and related fields such as patient’s care provider iden-tity, facility, author, or referring physicians, which can be used as keywords for documentsearching, retrieving and recordkeeping. HCDocs is designed to comply with HIPAA (HealthInsurance Portability and Accountability Act) and focus on identity management to preventunauthorized use and fraud. Our goals with the HCDocs system are to develop a user-friendlyand cost effective document management system while providing simplicity, flexibility, secu-rity, accessibility and reliability to its users. For further detail, refer to the HCDocs SoftwareRequirements Specification.
1.3 Scope
This document describes the software architecture and design for the initial release of HC-Docs, version 1.0. The intended audience of this document exclusively includes the designers,the developers, and the testers of the HCDocs software system.
1.4 Definitions, Acronyms, and Abbreviations
BLOB: Binary Large Object. Binary data stored in the database. Examples includeimages, audio, video, or other binary data.
Database: A database refers to a collection of related pieces of information stored elec-tronically. A database provides a way for other computer programs to quickly retrieve and
4
update desired pieces of data.
Document Service: A document service is a ”backend” engine which controls documentcreation and distribution.
Document Template: A document template is a super-structure of an otherwise normalword processor template which contains data regarding its distribution (who it was originallygiven to) and other document identifiers, including patient data and relevant physician data.
HCDocs: Title and project name referring to Healthcare Document Management System.
HIPAA: Acronym that stands for the Health Insurance Portability and AccountabilityAct, a US law designed to provide privacy standards to protect patients’ medical recordsand other health information provided to health plans, doctors, hospitals and other healthcare providers.
Network: A computer network is the interconnection of multiple computers using atelecommunications system, which allows for the communication and sharing of resources.
Privilege: The HCDocs system limits user accounts from performing certain actions oncertain documents; whether a user account can or cannot perform these actions is called theuser’s privileges. The defined privileges are: create, edit, delete and view; each action theuser can take upon the system must be classified as one of these categories. User privilegesare specific to different parts of the software system.
Patient: A patient is a person who receives medical attention, care, or treatment.
Repository: A repository is a collection of resources that can be accessed to retrieveinformation. Repositories often consist of several databases tied together by a commonsearch engine.
System Administrator: A system administrator is a special user whose user accounthas all the possible privileges available to any other user account as well as direct accessto the underlying HCDocs system processes and server(s). This person should be the onepermitted to access the physical machines running the HCDocs system. The role of thesystem administrator is to perform system maintenance and configuration. There may bemore than one System Administrator present in the system.
UNO: Universal Network Object. It is a component model that offers inter-operabilitybetween different programming languages, different objects models, different machine archi-tectures, and different processes; either in a LAN or via the Internet.
User: A user is a person who interacts with the HCDocs system.
User Account: A user account is an independent collection of user information that theHCDocs system uses to recognize individual users. Each user account is uniquely identifiedby a user name and is given a unique password which allows the software to track individualuser privileges.
5
2 Design Overview
2.1 Description of Problem
With the growth of technology, increased security threats, and HIPPA regulations, healthcare systems realized a need to be able to securely store, search, and manage patient records.The University of Pennsylvania Health System needed a way to keep organized patientrecords. Under their current system, a server on the network is used to store those recordswithout any control measures, which allows users to have open access to read, write, andmodify patient records. Also, these systems are unable to track a revision history of thedocuments. Currently, there are a multitude of document management systems within thehealthcare industry such as ClickON Document Management, DOCSVAULT and ITAZ do-Qument to name a few. However, these systems are generally expensive, inflexible, difficultto learn, and they are not customized specifically for the University of Pennsylvania HealthSystem needs. To fulfill this unique need, HCDocs provides a product that allows sim-ple, flexible, secure and reliable access to documents as a user-friendly and cost effectivedocument management system.
2.2 Technologies Used
HCDocs uses an amalgamation of various technologies to form a coherent approach to itsdesign. For the database, we use MySQL, a free and open source product by Sun Microsys-tems. MySQL was chosen for its relative ease of use, short learning curve, outstandingdocumentation and diverse user community. For the application and business logic layers,we use Java, a widely used object oriented programming language. Java was chosen becauseof the familiarity with it among members of the team, and also for its integration with theOpenOffice extension system. Bindings for other languages exist, but the Java bindings havebeen around the longest, and most of the OpenOffice API documentation is geared towardsJava. UNO, which stands for Universal Network Objects, is used for the development of theOpenOffice extension. UNO is a set of libraries for programmatically accessing most featuresof the OpenOffice suite.
2.3 Context Diagram
The context diagram in Figure 1 shows a high level overview of the main components ofHCDocs.
6
Database Server
Patient PickerPhysician Picker
OpenOffice Application(with HCDocs
extension installed)
Administrator Front-End
Help-Menu System
Figure 1: Context Diagram
3 Architecture
This section describes the architecture of HCDocs. There are two main components tothe architecture; the application architecture, described in section 3.1, and the databasearchitecture, described in section 3.2. The application architecture is itself composed oftwo components; the OpenOffice extension, and the Administrator Interface program. Theapplication architecture is object oriented, and describes a set of classes which make up theapplication. Classes are either used solely by one of the two components, or are sharedbetween the two.
7
3.1 Application Architecture
Figure 2: Class Diagram
This section describes the architecture of the application component of the system. Figure2 shows an overview of the classes making up the application. Each sub-section describes aparticular class. Properties and methods are listed along with some text describing them.Note that accessors and mutators (getters and setters) are not described, unless they dosomething other than simply getting or setting a property.
3.1.1 Shared Classes
These classes are shared between the two major components of HCDocs, namely, the OpenOf-fice Extension and the Administrator Interface.
8
3.1.1.1 Document Class Represents a document. Allows manipulation, saving, andsearching of documents.
10
3.1.1.1.1 Properties
Name Type Description
id int Database primary key.description String An optional string describing the document, helps to differenti-
ate between documents with the same properties.template Template The template that this document is based off of.department Department The hospital department associated with this document.locked boolean Indicates whether the document is locked; locked documents
cannot be edited.active boolean Indicates whether the document is active; inactive documents
are hidden from users.date Date The date field within the document.created Date The date this document was created.modified Date The date this document was modified.author User The user that created this document.patient Patient The patient associated with this document.data byte[] The raw data for this document as it is stored in the database.
3.1.1.1.2 Methods
static Document[] search(Document doc)Input A Document object with partially-filled in fields.Output An array of documents or null if none match.Description Searches the document repository for documents matching the given properties.
11
boolean save()Input None.Output A boolean value indicating whether the save was successful.Description Saves the document to the repository.
3.1.1.2 Person Class Abstract base class for person classes. The Patient, Physician,and User classes are derived from this class.
3.1.1.2.1 Properties
Name Type Description
db id int Database primary key.first name String The person’s first name.last name String The person’s last name.
3.1.1.3 User Class Represents a user. Stores information related to a user account,including template access permissions.
12
3.1.1.3.1 Properties
Name Type Description
username String Alphanumeric username.password hash String An irreversible password hash. Compared against
password hash in database during login.email String Email address of the user.admin boolean Indicates whether the user is an administrator.active boolean Indicates whether the user is active in the system.departments List<Department> A list of departments that the user is a part of.read only templates List<Template> The user has read only access to all documents
created with these templates.full access templates List<Template> The user has read/write access to all documents
created with these templates.
3.1.1.4 Patient Class Represents a patient.
3.1.1.4.1 Properties
Name Type Description
patient id int A unique identifier assigned by the hospital.date of birth Date The patient’s date of birth.
3.1.1.4.2 Methods
static Patient getPatient()Input None.Output A Patient object.Description Displays the Patient Picker and returns the chosen patient.
3.1.1.5 Physician Class Represents a physician.
13
3.1.1.5.1 Properties
Name Type Description
physician id int A unique identifier assigned by the hospital.
3.1.1.6 Template Class Represents a document template.
3.1.1.6.1 Properties
Name Type Description
id int Database primary key.name String Descriptive name of the template.active boolean Indicates whether the template is active in the system. New
documents cannot be created from inactive templates.
3.1.1.7 Department Class Represents a department in the hospital.
3.1.1.7.1 Properties
Name Type Description
id int Database primary key.name String Descriptive name of the department.
3.1.2 OpenOffice Extension Classes
The OpenOffice Extension is an installable UNO package that users can add to their existingOpenOffice installation. It provides all of the client-side user functionality of HCDocs.
14
3.1.2.1 OODriver Class The main driver class for the OpenOffice Extension.
3.1.2.1.1 Methods
static void main(String[] args)Input Arguments to the application.Output None.Description Main entry point to the application.
boolean login(User user, String entered password)Input user - The user desiring to login. entered password - The password
entered by the user at the login prompt.Output A boolean value indicating whether the login was successful.Description Allows the user to login. Hashes the entered password and compares it
the the hash in the database.
3.1.3 Administrator Interface Classes
The Administrator Interface is a stand-alone program that the HCDocs System Administra-tor uses the manage the system.
3.1.3.1 AdminDriver Class The main driver class for the Administrator Interface ap-plication.
3.1.3.1.1 Methods
static void main(String[] args)Input Arguments to the application.Output None.Description Main entry point to the application.
15
3.2 Database Architecture
This section describes the architecture of the database component of the system.
Table 1: Structure of table Bool
Field Type Null Default Comments
ID int(11) YesVALUE text Yes
Table 2: Structure of table Documents
Field Type Null Default Comments
ID int(11) YesAUTHOR int(11) YesREVISION int(11) YesDATA longblob YesLASTMODIFIED datetime YesMODIFIEDBY int(11) YesTEMPLATE int(11) YesDOCTOR int(11) YesPAITENT int(11) YesDELETED tinyint(4) YesFINALIZED tinyint(4) Yes
Table 3: Structure of table Paitents
Field Type Null Default Comments
ID int(11) YesFIRSTNAME text YesLASTNAME text YesPHONE text YesMIDDLENAME text YesADDRESS text YesCITYSTATEZIP text Yes
Table 4: Structure of table Physician
Field Type Null Default Comments
ID int(11) YesFIRSTNAME text Yes
16
Table 4: Structure of table Physician (continued)
Field Type Null Default Comments
LASTNAME text YesMIDDLENAME text YesDEPARTMENT text YesPHONE text Yes
Table 5: Structure of table Templates
Field Type Null Default Comments
ID int(11) YesUPLOADED TIME datetime YesDATA longblob YesACTIVE tinyint(4) Yes
Table 6: Structure of table Users
Field Type Null Default Comments
ID int(11) Yes NULLFIRST text YesLAST text YesEMAIL text YesPASSHASH text YesACTIVE tinyint(4) YesMUSTCHANGEPASS tinyint(4) YesCREATED datetime YesADMIN tinyint(4) Yes
17
4 Design Features
4.1 User Features
These features are applicable to all users, both administrators and regular users.
4.1.1 Login
The Login feature allows users to login to HCDocs system with a valid username and pass-word combination. Figure 3 shows a high level overview of the login process.
U s e r
O p e n o f f i c e . o r g
L o g i n S e r v i c e
U s e r A c c o u n t S e r v i c e
D a t a b a s e
A u t h e n t i c a t i o n S e r v i c e
Figure 3: Login - Vertical Slice
The Login process takes the username and password entered by the user and passes themto authentication service to verify the user against the HCDocs database. The result ispassed back to the Login service to inform whether the login is a success or failure. If theauthentication is successful, the Login service assigns the user to appropriate privileges andallows the user to have access to the HCDocs system. If the authentication is a failure, apopup error message will occur and will ask the user to enter their username and passwordagain. After three unsuccessful tries, the account will be locked out for twenty minutes.
18
User OpenOffice.org Login Service User Account ServiceAuthentication Service Database
click on HCDocs button
login(username,password)
login(username,password)al
t
[ authentication failed ]
get username and password Info
compare username and password
return username and password Info
deny login
[ else ]
approve login
get user privileges
get user Info
set user privilege
approve login
redirect to login window
redirect to main window
encrypt password
Figure 4: Login - Sequence Diagram
19
4.1.2 Document Creation
The Document Creation feature allows users to create new documents and save it intoHCDocs system. A wizard will guide users step by step to create new document based onthe selected templates. Figure 5 shows a high level overview of the document creationprocess.
U s e r
O p e n o f f i c e . o r g
C r e a t e D o c u m e n t S e r v i c e
N e w D o c u m e n t
F i n d P a t i e n t S e r v i c e
F i n d P h y s i c i a n S e r v i c e
S e l e c t T e m p l a t e
. .
Figure 5: Document Creation - Vertical Slice
The Document Creation process provides users a window to select a template for the typeof document they are creating. Based on the selected template, users will be guided througha list of steps to select a patient and physician of the corresponding patient. After the usersfinish selecting the required fields to the document, a new document will be generated withthe previously selected information at the top of the document. Users can start writing atthe given text areas on the document as they desire.
20
User OpenOffice.org Select Template Find PhysicianFind Patient New Document
click on New button
select a template
enter patient Info
alt
[ physician not found ]
get search result
[ else ]create new document
get search resultclick on Find Patient
[ patient not found ]redirect to find patient window
[ else ] enter physician Info
click on Find Physician
alt
redirect to find physician window
Figure 6: Document Creation - Sequence Diagram
21
4.1.3 Patient Finder
The Patient Finder features allows service clients to find the patients in the HCDocs system’sdatabase. Figure 7 shows a high level overview of the Patient Finder process.
S e r v i c e C l i e n t
F i n d P a t i e n t S e r v i c e
P a t i e n t M a n a g e m e n t S e r v i c e
D a t a b a s e
. .
Figure 7: Find Patient - Vertical Slice
The Patient Finder process takes the patient’s id, date of birth, patient’s first name and lastname as the search fields and passes those fields to the patient management service. PatientManagement service will check against the database with those fields and return the patientsmatch to those search criteria. The search result wills then pass to the service client.
22
Service Client Find Patient Service Patient Management Service Database
enter patient Info
findPatient(patientID,DOB,firstname,lastname)
get patient record
compare patient Info
click on Find Patient
return patient record
return search results
Figure 8: Patient Finder - Sequence Diagram
23
4.1.4 Physician Finder
The Physician Finder features allows service clients to find the physicians in the HCDocssystem’s database. Figure 9 shows a high level overview of the Physician Finder process.
S e r v i c e C l i e n t
F i n d P a t i e n t S e r v i c e
P a t i e n t M a n a g e m e n t S e r v i c e
D a t a b a s e
. .
Figure 9: Physician Finder - Vertical Slice
The Physician Finder process takes the physician’s id, physician’s first name and last nameas the search fields and passes those fields to the physician management service. PhysicianManagement service will check against the database with those fields and return the physi-cians match to those search criteria. The search result wills then pass to the service client.======= The Physician Finder process takes the physician’s id, physician’s first nameand last name as the search fields and pass those fields to the physician management service.Physician Management service will check against the database with those fields and returnthe physicians match to those search criteria. The search result will then pass to the serviceclient.
24
Service Client Find Physician ServicePhysician Management
Service Database
enter physician Info
findPhysician(physicianID,firstname,lastname)
get physician record
compare physician Info
click on Find Physician
return physician record
return search results
Figure 10: Physician Finder - Sequence Diagram
25
4.1.5 Save Document
The Save Document features allows users to save documents to HCDocs system’s database.Figure 11 shows a high level overview of the save document process.
S e r v i c e C l i e n t
N e w D o c u m e n t
S a v e D o c u m e n t S e r v i c e
D a t a b a s e
F i n a l i z a t i o n S e r v i c e
Figure 11: Save Document - Vertical Slice
The Save Document process saves the document when users click on save button creating anew document or editing an opened document. As soon as users click on save a window willpop up and give user two options on saving the document. Users can select ”Save only” or”Finalize and Save” options. If the save only is select, the system will only save the documentto the system’s database, if the other option is chosen the system will finalize the documentbefore saving it to the system’s database. If the finalize and save option is selected, an audittrail will start keeping track of all revisions made to that particular document.
26
Service Client New Document Save Document Service Finalization Service
create new document
finalize document
validate privilege to save
click on save document
confirm saving and finalization
Database
alt
[ If finalize document ]
finalize and save document
alt
return error message[ invalid privilege ]
[ else ]
[ else ]
save documentalt
validate privilege to finalize
[ invalid privilege ]
[ else ]
return error message
confirm saving
Figure 12: Save Document - Sequence Diagram
27
4.1.6 Open Document
The Open Document features allows users to open documents from the HCDocs system’sdatabase. Figure 13 shows a high level overview of the document creation process.
U s e r
O p e n o f f i c e . o r g
O p e n D o c u m e n t
D i s p l a y
F i n d D o c u m e n t
D a t a b a s e
M u l t i p l e D o c u m e n t s S e r v i c e
Figure 13: Open Document - Vertical Slice
The Open Document process takes patient’s id, date of birth, patient’s first name and lastname, physician’s id, physician first name and last name, document created date or documentmodified date as search fields. Users can enter any one or more than one of those fields toinitiate the search. Those information will pass to the find document service and the searchresult will return back from the find document service. If the documents with the givensearch criteria exist in the database, the results will return back to the open documentservice. If there are more than one patients’ documents are associate with the search results,a list of patients names and their information will display on the next window and userscan select the patient whose document that they are trying to open. If there are only onepatient’s document is associate with the search results, the document will be opened on thenext window.
28
User OpenOffice.org Open Document Multiple Documents ServiceFind Document
Click on HCDocs button
click on Open
enter document Info
alt
[ If document not found ]
[ else ]
get search result
Display Document
Search FieldsPatient ID, DOB, firstname, lastnamePhysicianID, firstname, lastnameCreatedDate, ModifiedDate
click on Search
list patients' name[ If more than one patient associate with the search result ]
redirect to search document windowal
t
select a document to open
[ else ]display the document
Figure 14: Open Document - Sequence Diagram
29
4.1.7 Find Document
The Find Document features allows service clients to find documents in the HCDocs system’sdatabase. Figure 15 shows a high level overview of the find document process.
S e r v i c e C l i e n t
F i n d D o c u m e n t S e r v i c e
D o c u m e n t M a n a g e m e n t S e r v i c e
D a t a b a s e
. .
Figure 15: Find Document - Vertical Slice
The Find Document process takes patient’s id, date of birth, patient’s first name and lastname, physician’s id, physician first name and last name, document created date or documentmodified date as search fields. Find document service will take those information passed fromservice clients and compare against the records in the database. If the match records arefound, the records are returned back to the service clients. If there were no matching records,an message will send back to the service clients.
30
Service Client Find Document Service Document Management Service Database
enter document Info
findDocument(Search Fields)
get document record
compare document Info
click on Search
return docuemnt record
return search results
Search FieldsPatient ID, DOB, firstname, lastnamePhysicianID, firstname, lastnameCreatedDate, ModifiedDate
Figure 16: Find Document - Sequence Diagram
31
4.1.8 Lock Document
The Lock Document feature allows a document to be locked while it is being edited by a userso that it will prevent other users from making changes to it simultaneously. The featurebegins automatically as soon as a document is opened for editing by the first user.
4.1.9 Unlock document
The Unlock Document feature allows the administrator to unlock a document in the eventof computer crash or other hardware/software failures in which a document remains lockedwhich otherwise should not be.
4.1.10 Lost Username
The Lost Username feature allows the Administrator to retrieve a users username upon theirrequest.
4.1.11 Lost Password
The Lost Password feature allows a the Administrator to auto generate a new password fora user upon their request. The user must request a new password and will receive the newpassword in their designated email address on file. The Administrator will never have accessto a users password.
32
4.2 Administrator Features
These features relate to users with administrator privilege only.
4.2.1 Administrator Login
The Admin Login features allows administrators to login to the HCDocs admin system withvalid username and password combination. Figure 17 shows a high level overview of theadministrator login process.
A d m i n i s t r a t o r
H C D o c s A d m i n I n t e r f a c e
L o g i n S e r v i c e
A d m i n A c c o u n t S e r v i c e
D a t a b a s e
A u t h e n t i c a t i o n S e r v i c e
Figure 17: Admin Login - Vertical Slice
The Admin Login process takes the username and password entered by admin and passthem to authentication service to verify the admin against HCDocs database. The result ispassed back to the Admin Login service to inform whether the login is a success or failure. Ifthe authentication is successful, the Admin Login service assigns the admin to appropriateprivileges and allows the admin to have access to the HCDocs admin system.
33
Administrator HCDocs Admin Login Service Admin Account ServiceAuthentication Service Database
click on HCDocs admin login
login(username,password)
login(username,password)al
t
[ authentication failed ]
get username and password Info
compare username and password
return username and password Info
deny login
[ else ]
approve login
get admin privileges
get admin Info
set Admin privilege
approve login
redirect to login window
redirect to admin main window
encrypt password
Figure 18: Admin Login - Sequence Diagram
34
4.2.2 User Account Creation
The User Account Creation features allows administrators to add new user accounts to theHCDocs system. Figure 19 shows a high level overview of the user account creation process.
S e r v i c e C l i e n t
A d d U s e r S e r v i c e
C r e a t e A c c o u n t S e r v i c e
D a t a b a s e
..
Figure 19: User Account Creation - Vertical Slice
The User Account Creation process takes the user id, date of birth, user first name, lastname, e-mail address and a list of templates assigned to that user. User Account Creationservice will first validate the input data for the correct format and missing fields. If thevalidation failed, an error message will popup showing what fields are erroneous and will askthe user to reenter those fields, otherwise a new user account will be created in the systemwith the given information.
35
Service Client Add User Service Create Account Service Database
enter new user Info
addUser(userID,DOB,firstname,lastname,email,templates)
click on Add User
validate input data
alt
[ validation failed ]error message for invalid input data
[ else ] add new user to database
confirm successfully added
Figure 20: User Account Creation - Sequence Diagram
36
4.2.3 User Account Modification
The User Account Modification features allows administrators to modify user accounts inthe HCDocs system. Figure 21 shows a high level overview of the user account modificationprocess.
F i n d U s e r
M o d i f y A c c o u n t
D a t a b a s e
M o d i f y U s e r C l i e n t
R e m o v e A c c o u n t
S e r v i c e C l i e n t
Figure 21: User Account Modification - Vertical Slice
The User Account Modification process takes user id, date of birth, user first name, lastname and e-mail address and passes the information to find user service. Find user servicewill search the users that match to the given fields against the database. The search resultswill return to the User Account Modification service. If the search failed, it will redirect theadmin to reenter different search keywords, otherwise it will display the search results. Ifthe admin wants to disable the user account, he/she can select a user from the search resultsand click on Remove User. The user account will be disable from the system. If the adminwants to modify the user account’s information, he/she can select a user from the searchresults and click on Modify User. The entire information related to the selected user accountwill display on the next window. Admin can then modify the desired fields and click on saveto save the updated user account information into the database. Admin can also reset theusers’ password by clicking on the Reset Password button. A password will be randomlygenerated and saved to the database and e-mail new password to the users’ correspondinge-mail address. A new password can only be generated upon users request.
37
Service Client Modify User Service Find User Modify Account Service
click on Modify User
get search resultsal
t
[ user not found ]redirect to find user window
[ else ]
select a user from search results
DatabaseRemove Account Service
click on Find User
alt
{ If modify user ]
click on Modify User
redirect to Modify User window
[ else ]select a user from search results
click on Remove User
confirm removal
disable the user account
redirect to modify user window
Modify Service Reset Password
modify(userID,firstname,lastname,email,templates)
validate input data
resetPassword(userID)
alt
{ Invalid input ]redirect to modify user window
[ else ] save modified user info to database
comfirm modification
save password to database
generate new password
e-mail new password to user
redirect to modify user window
findUser(userID,firstname,lastname,email)
Figure 22: User Account Modification - Sequence Diagram
38
4.2.4 User Finder
The User Finder features allows service clients to find the users in the HCDocs system.Figure 23 shows a high level overview of the User Finder process.
S e r v i c e C l i e n t
F i n d U s e r S e r v i c e
U s e r M a n a g e m e n t S e r v i c e
D a t a b a s e
. .
Figure 23: Find User - Vertical Slice
The User Finder process takes the user’s id, user’s first name and last name as the searchfields and pass those fields to the user management service. User Management service willcheck against the database with those fields and return the users match to those searchcriteria. The search result will then pass it to the service client.
39
Service Client Find User Service User Management Service Database
enter User Info
findUser(userID,firstname,lastname,email)
get user record
compare user Info
click on Find User
return user record
return search results
Figure 24: User Finder - Sequence Diagram
40
4.2.5 Manage Document
The Manage Document features allows administrators to manage documents in the HCDocssystem. Figure 25 shows a high level overview of the manage document process.
A d m i n i s t r a t o r
M a n a g e D o c u m e n t S e r v i c e
F i n d D o c u m e n t
D i s p l a y D o c u m e n t I n f o
M o d i f y D o c u m e n t I n f o
D a t a b a s e
M u l t i p l e D o c u m e n t s S e r v i c e
Figure 25: Manage Document - Vertical Slice
The Manage Document process takes patient’s id, date of birth, patient’s first name, lastname, physician’s id, physician first name, last name, document created date or documentmodified date as search fields. Users can enter one or more of those fields to initiate thesearch. That information will pass to the find document service and the search results willreturn back form the find document service. If the search failed, it will redirect the admin toreenter different search keywords, otherwise it will display the search results. If more thanone patients’ documents are associate with the search results, a list of patients names andtheir information will display on the next window and users can select the patient whosedocuments they are trying to manage. If there is only one patients document associated withthe search results, the document information will be displayed on the next window. Adminwill be able to modify the document information, lock or unlock the document, or removethe documents from the system. Once the admin clicks on the Apply button, the updateddocument information will be saved to the database.
41
Admin Manage Document Multiple Doc ServiceFind Document
Click on Manage Document button
enter document Info
alt
[ If document not found ]
[ else ]
get search result
Display Doc
Search FieldsPatient ID, DOB, firstname, lastnamePhysicianID, firstname, lastnameCreatedDate, ModifiedDate
click on Search
list patients' name[ If more than one patient associate with the search result ]
redirect to search document window
alt
select a document to get it's Info
[ else ]display the document Info
Modify Doc Info Database
modify the document Info
click on Applyvalidate input data
alt
[ Invalid input ]redirect to display document Info window
[ else ]update document info in database
confirm modification
redirect to modify document window
Figure 26: Manage Document - Sequence Diagram
42
4.2.6 Manage Template
The Manage Template features allows administrators to manage templates provide by theHCDocs system. Figure 27 shows a high level overview of the manage template process.
A d m i n i s t r a t o r
M a n a g e T e m p l a t e S e r v i c e
A d d T e m p l a t e
U p l o a d T e m p l a t e
D a t a b a s e
R e m o v e T e m p l a t e
Figure 27: Manage Template - Vertical Slice
The Manage Template process will display a list of template available in the HCDocs system’sdatabase and a list of template that are available to the users. Admin can either add theexisting templates in the database to available list for user to have access to or uploadtemplates from external system to the HCDocs system’s database. Admin can also disabletemplates currently available to users by removing the template form the available list.
43
Admin Manage Template Upload TemplateAdd Template
Click on Manage Template button
select a template to add
alt
[ add exiting template from database ]
[ else (template doesn’t exist in the database ]
Remove Template
click on Add
Database
get templates list
return a list of templates form database
enable the template to allow users to use
click on Upload template
select a template to upload
add the uploaded template to database
select a template to remove
click on Remove
disable the template from being use
confirm the removal
Figure 28: Manage Template - Sequence Diagram
44