Introduction - Michigan State University

advertisement
Software Requirements Specification (SRS)
E-ARMOR
Authors: Marie Buckner, Nathan Goodrich, James Harrison, Ben Pedersen, Bing Shi
Customer: Dr. Raza Haque
Instructor: Dr. Betty Cheng
1 Introduction
This document contains a description of the E-ARMOR system from basic requirements through
system design and prototype operation. The following sections are intended as an overview of the
design of the system.
1.1 Purpose
The purpose of this document is to specify the required functionality of the system and the design that
will be used to implement the system. After reading this document, any reader should understand the
purpose and design of the system.
1.2 Scope
E-ARMOR is a web application that enables healthcare providers to evaluate the contribution of a
patient’s medications to that patient’s clinical conditions. This type of drug interaction analysis is
known as polypharmacy.
The main goal of the E-ARMOR system is to automate the processes used in the ARMOR1 tool,
which gives medical professionals a guide to managing polypharmacy in their patients. The system
will allow a healthcare provider to enter patient data including current vitals, lab results for a basic
metabolism panel, and current medications. The system can then evaluate the patient’s risk for
various clinical conditions; additional information from a medical database will be used. These risks
will be displayed along with which medications contribute to each risk, and what physical problems
might be associated with the condition.
1.3 Definitions, acronyms, and abbreviations
The following are key terms that will be used throughout this document that readers must understand.
ARMOR: Stands for Analyze, Review, Minimize, Optimize, and Reassess. ARMOR is a set of
guidelines used by doctors to review patient health and manage their medications.1
Basic Metabolic Panel: Also known as a “basic lab panel”, includes blood levels of sodium,
potassium, chlorine, bicarbonate, calcium, glucose, creatinine, and blood urea nitrogen (BUN). 9
Cockcroft-Gault Equation: A widely recognized formula for calculating creatinine clearance which
indicates level of kidney function.7
E-ARMOR: Our system, which is designed to automate the ARMOR process.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
EMR: Electronic Medical Record, a electronic file containing a record of a patient's vital information
and medical history.10
GFR: Glomerular Filtration Rate, volume of fluid filtered through the kidneys per unit time. An
indication of kidney function thought to be more accurate than creatinine clearance. 7
GUI: Graphic User Interface, a user interacts with the system through a GUI
IBW: Ideal Body Weight, one of the values the system calculates that doctors may use in diagnosis 11
Javascript: A computer scripting language used in web applications; it can be disabled in your
browser.
Mosby: Mosby’s Geriatric Prescribing Guide, a medication index that lists likely clinical conditions
associated with a medication8
OS: Operating System, e.g. Windows 7, MacOS 10, Linux
OTC: Over the counter, referring to drugs that can be legally obtained without a prescription
PCr: Plasma Creatinine (or serum creatinine), used in the calculation of creatinine clearance 7
PDR: The Physician’s Desk Reference, a widely recognized comprehensive medication listing
Polypharmacy: The use of multiple medications by a patient, especially as that use relates to
possible drug-drug interactions.
UML: Unified Modeling Language, the standard for diagrams describing software processes and
information flow
URL: Uniform Resource Locator, a common name for the human-readable address of a webpage
Vitals: Basic patient information including age, gender, weight, height, ethnicity, blood pressure,
pulse rate, temperature, and oxygen saturation.
1.4 Organization
The rest of this document is divided into five sections.
 Section two gives a broad explanation the E-ARMOR system itself, as well as a description of the
expected users, constraints set on the project, and a list of assumptions about the types of software
and hardware that will be used by E-ARMOR.
 Section three discusses the specific requirements for the system in detail.
 Section four contains all UML models created and used in the production of the system.
 Section five gives a short guide on how to use the prototype. Including sample scenarios.
 Section six gives the resources used in the creation of this document and the system.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
2 Overall Description
This section will describe the basic functioning of the system. It will also identify the average user
and environment in which the system will function.
2.1 User Characteristics
Users are expected to be doctors or other healthcare professionals with the authority to prescribe
medications. Minimal computer knowledge is required.
2.2 Product Perspective
The system is designed to assist a healthcare provider in analyzing a patient’s condition and
medications prescribed. It will identify the percentage chance the patient's prescribed medications are
causing pre-selected clinical conditions. It will also identify possible non-medication-related causes
for the conditions.
As the system will save no information, every time a report is desired, the user will be required to
manually enter any data utilized to generate it.
The system will have absolutely no direct communication with any EMRs, although a user may
extract information from them and subsequently manually enter it to produce a report. The system
will not allow for the appending of a report to any EMR.
Absolutely no information will be stored by the system, and no records will be kept or maintained.
The system will consist of two major screens. In the first, the user will input the relevant information.
In the second, the user will be able to view the generated report. Data will be input using a standard
keyboard and mouse.
2.3 Product Functions
The system will include two major screens: An input screen, and a report screen. When a report is
desired, the user will proceed to input information into the relevant fields, including age, gender,
height, weight, blood pressure, ethnicity, temperature, oxygen saturation, pulse rate (both active and
at rest), basic and comprehensive lab reports, as well as any current medications. Only the age,
gender, weight, pulse rate at rest, medications, and serum level fields will be required to generate a
report.
Upon completing the basic form, the user will prompt the system for a report, which will inform the
user about high risk drug groups based on the patient’s information, as well as any potential clinical
conditions. Depending on the level of information provided, the system may also warn the user that
the report’s accuracy may be compromised.
The report will list the ten most likely clinical conditions along with a percentage chance of the
condition occurring as a result of the currently prescribed medications. The report will also indicate
possible additional causes outside of prescribed medications for the conditions.
The report will also include a patient’s proper creatinine clearance, glomerular filtration rate, and ideal
body weight based on the inputted information.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
2.4 Constraints
The system will require that, at a minimum, a user input a patient's age, gender, weight, pulse rate at
rest, medications, and serum level in order to produce a report.
The system requires a constant connection to the relevant drug interactions database. If the
connection is lost, the system will be able to calculate the creatinine clearance but not provide any
information about clinical conditions.
2.5 Assumptions and Dependencies
The system is designed to run on modern browsers such as Microsoft Internet Explorer 7 or 8 and
Mozilla Firefox 3. The browser must have Javascript capabilities. Any computer able to run a modern
browser should be able to run the system.
Although the system is designed to be able to run from a basic Web site, it is assumed that the
system will be used mainly in a hospital setting. Users will simply launch the system from their
browser, log in, input the necessary information, and receive the resulting report. The system will
reset information when a user is done, and no information (patient records, reports, or otherwise) will
be stored.
2.6 Apportioning of Requirements
The system’s interactions with relevant databases might be revised based on information gleaned
from initial use of the product.
In the future, the system might be updated such that:

The system could communicate with EMRs to help automate the inputting of a patient's information.

The system could expand the number of clinical conditions it reports on.

The system may be offered as a smart phone application.

The system may be designed to identify potentially redundant medications.

The system may allow the user to change settings on the program, such as time-out duration.

The system may include support for additional labs beyond the Basic Metabolic Panel.

The system may include dosage of medications in calculating percentage of clinical conditions
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
3 Specific Requirements
This section provides a hierarchical view of the project requirements.
A.
Ease of use and accessibility are important.
A.1. The application should be web-based and platform independent.
A.2. System will have a clear, usable GUI.
A.2.i Any user with basic computer skills should be able to utilize the system without
additional computer training.
A.2.ii System must clear the screen after a user-set period of inactivity (default 15
minutes).
A.2.iii System must also provide a clear button for all screens that returns user to a
blank initial screen.
A.3. System will have a log in mechanism.
B.
The system should obtain patient information solely from users.
B.1. Users will input only the most recent information from a patient’s chart, including vitals,
medications, and lab results.
C.
The system needs a minimum of age, weight, gender, and current medications to function.
C.1 If all vitals and a basic label panel are not provided, system should clearly alert user that
the accuracy of its results are compromised by that lack.
D.
The system will identify potential harmful interactions.
D.1 Lists the likelihood of the 10 most probable clinical conditions for the patient.
D.1.i These conditions are multiple falls, fatigue, non-healing ulcers, new on-set
depression, weight loss, pain, acute mental status changes, behavior problems,
failure to thrive, and sleep disturbances.
D.1.ii The listed percentage will be the combined probability over all drugs the patient
is taking.
D.1.iii For each of the 10 conditions, indicate the contribution of each medication.
D.1.iv For each of the 10 conditions, indicate which physical ailments can contribute.
D.2. Follow rules from Mosby to incorporate current patient health into clinical condition
probabilities.
D.3. Identify non-prescription substances (including foods) with specific contraindications for
the patient from Mosby and PDR databases.
E.
The software should calculate useful values from user-entered patient vitals.
E.1. Results of GFR or Cockcroft-Gault equation will be used to indicate kidney function.
E.2. Ideal body weight will be calculated.
F.
Include references to source literature in all recommendations and warnings.
G.
Regular updates to all reference data.
G.1. Yearly updates to both PDR and Mosby databases.
G.2. Reports should clearly indicate the age of the data used in finding results.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
4 Modeling Requirements
The basic architecture of the system can be viewed as client-server. This is due to its web-based
design. A web-browser (client) requests one of the system’s views. The system checks if the client
has successfully logged in, then checks the page being requested. If the client is not logged in they
are directed to the login page; if they are logged in but have not entered patient data they are directed
to the data entry page. All calculations are performed on the server aside from basic input validation.
Typical use scenario for the system (diagramed in Figure 3):
Dr. Joe has just finished taking a number of vitals for patient Sue. He provides this information as
well as Sue’s chart to Bob, a physician’s assistant. Bob sits down at a computer and navigates to the
E-ARMOR website. He enters Sue’s vitals. He also enters her current medications and lab results
(but does not enter, nor is he prompted for, any extended patient history nor any patient identifying
information).
Bob then clicks the Calculate button, and after some calculations, a web page containing calculations
based on the entered information is displayed. The display includes up to the 10 most likely clinical
conditions and their likelihood given the patient’s current medications. This information is retrieved
from a digitized version of Mosby’s Geriatric Prescribing Guide. For each condition the contributing
medications are displayed as well as a list of related symptoms. Any specific contraindications for
non-prescription substances including OTC drugs and foods would also be displayed. Finally, the
GFR is calculated and displayed.
Bob fills in the reported GFR and notes on his paper work that Sue’s medications result in a 60%
chance of urinary retention from the combination of medications A, B, and C.
Finished with Sue’s information, Bob clicks the New Patient button, which gives him a clean data
entry screen. If he realized he made a mistake in entering Sue’s information, he could have instead
clicked Edit Patient Data to get back to the data entry screen, pre-filled with Sue’s information so he
could quickly correct the mistake and re-submit. Since he did not make a mistake, he instead
continues with entering the next patient’s health information.
Notation for Figure 1:3
The large outer rectangle represents the boundary of the E-ARMOR system. The stick figure is an
external actor for the system; in this diagram it represents all system users. The ovals represent
ways in which an actor can interact with the system. The arrow labeled <<extends>> indicates that
its target is a special-case behavior reachable from the arrow’s source.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
E-ARMOR
Enter Patient Data
«extends»
Edit Patient Data
Clear Screen
User
Generate Drug
Report
«extends»
Generate Alerts
Print Report
Figure 1. Use Cases For E-ARMOR
Notation for Figure 2:4
Classes are represented by three-part rectangles. The uppermost rectangle contains the name of the
class, the middle rectangle contains the class’s attributes, and the lower rectangle lists all of the
methods or operations of the class. Attributes are displayed as <Name>:<Data Type>. For both
attributes and operations, a + indicates that the item is directly accessible by other program elements,
while a – indicates that the item can only be accessed by other methods of the same class.
When one class is connected to another by a line with no special ending shapes, the connection is
called an association. The association is labeled with a directed meaning; for example, “An EARMOR references a Physician’s Desk Reference”. The ends of the association are labeled with
either a number or a *, indicating the multiplicity of the association. In the diagram below, any
number of E-ARMOR objects (*) can be associated with a single (1) Physician’s Desk Reference
object.
The other connection type below has a diamond shaped line ending; one filled in and one empty.
Both are a type of aggregation; the filled diamond is strong aggregation or composition while the
empty diamond represents a weak aggregation or simply an aggregation. They indicate that the end
of connection with the diamond “has a” collection of objects of the type at the other end of the
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
connection. If it is a composition, then the object that has the collection would in fact not exist without
that collection – it is composed entirely of that collection. Again, multiplicities may be used on the end
opposite the diamond if a specific number of objects makes up the collection (a car has 4 wheels, a
person has 2 legs). As with the association relationship, an asterisk (*) indicates 0 or more elements
participate in the aggregation/composition.
Data Dictionary for the E-ARMOR system:
Basic Lab Panel: This class is used as a temporary store for some of the data the user enters.
Attribute names match with displayed prompts on the data entry screen. As noted in the definitions
section of this document, PCr refers to serum creatinine.
E-ARMOR: This class represents the user interface of the system.
 logIn: Sets isLoggedIn to true, required for all other interactions with the system.
 logOut: Sets isLoggedIn to false, redirects user to login screen.
 displayNewEntryPrompt: Takes the user to the data entry screen with all values cleared
 displayEditPrompt: Takes the user to the data entry screen with the most recently entered
data pre-filled into all fields
 generateReport: When the user clicks “Submit” on the data entry screen this function is called.
All report values are calculated, and the user is directed to a result page where these values
are displayed.
 clearScreen: When the user clicks “Clear” on the data entry screen, this function is called. It
resets all fields to empty/default. This is to protect patient data if the user must step away from
the computer.
 calculateConditionalProbabilities: Uses data obtained from a Physician’s Desk Reference
database to calculate the cumulative probability of each of 10 clinical conditions, taking into
account the patient’s current medications and creatinine clearance if available.
 calcCreatinine: Calculates the Creatinine Clearance if enough information was entered to do
so.
 calcGFR: Calculates the Glomerular Filtration Rate if enough information was entered to do
so.
 calcIBW: Calculates the Ideal Body Weight if enough information was entered to do so.
 hasNeededInfo: Checks if enough information is available to calculate Creatinine Clearance,
saves the true/false result as showWarning.
 displayWarning: Generates a pop-up alert; there is an alert for invalid login info and another if
insufficient information was entered to calculate Creatinine Clearance, as this value is needed
in other calculations as well.
Health Data: Provides temporary storage of patient vitals and medication information.
Medication: This class stores information a medication for retrieval by a Physician’s Desk Reference
object.
Physician’s Desk Reference: A digital copy of the canonical medication guide, this class is used to
lookup medication information. It has a version attribute to indicate when its data was last updated.
 medLookup: Finds a medication by name and returns an array of condition probabilities.
User: This class represents an outside user of the system. All users have a user name and
password in order to access the system.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
Figure 2. Class Diagram for E-ARMOR System
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
Notation for Figure 3:5
Labeled rectangles with descending dashed lines represent object lifelines. They may be
specified as <object name>:<class> or just :<class> to indicate an object with no specific name. The
vertical bars that appear on those dashed lines are object activations – while an object is within a call,
it is said to be active. The labeled solid arrows represent a function call on the target object. The
source is another (calling) object. The source may also be the same object, for instance when a
function calls other helper functions of the same object. The dashed arrows represent the return of
control (and possibly data) to the calling object or external system. If a function call is prefaced with a
statement like “*[…]”, the function call is repeated a number of times specified by the contents of the
square brackets. If it is prefaced with square brackets without the asterisk, they represent a guard
condition; that function call will only be executed if the guard condition is passed.
:DrugDataProxy
:E-ARMOR
Bob:User
logIn
Login Success
displayNewEntryPrompt
Login Success
Here Bob is
filling in the
value's from
Sue's chart
generateReport
hasNeededInfo()
checks that
creatinine clearance
can be calculated
hasNeededInfo
[showWarning]: displayWarning
calcIBW
calcGFR
[ !showWarning]: calcCreatinine
*[for each of A, B, C]: medLookup
Clinical Condition Probabilities
calculateConditionProbabilities
Return Report
displayNewEntryPrompt
Figure 3. Sequence diagram for typical use scenario described above
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
Notation for Figure 4 & 5:6
All state charts start with a solid black circle, the initial state of the object. Rounded rectangles
are the states, labeled according to what the state signifies for that object. States are connected with
labeled transition arrows. The labels indicate what event (function call) causes the transition. States
may be shown with an upper and lower half; the upper half is the state label, while the lower half
shows actions taken when the state is entered. A solid black circle surrounded by an empty circle
edged in black indicates a final state in the diagram; the object is not used after this state is reached.
Figure 4 represents user interactions with the system through the E-ARMOR class. The first step in
any interaction is an attempt to login. If that attempt is unsuccessful the user is informed and
returned to the login page. If successful, the system moves to the data entry page. When the user is
done entering data, they cause a report to be generated. This takes the system to a calculating state;
if insufficient information for all some calculations was entered, a warning is displayed before
calculations continue. Once calculation is complete, a report is displayed. The report may be printed.
When the user is finished viewing the report, they may return to the entry screen either to edit data
entered so far or to enter a new set of data. The user may choose to log out from either the
Displaying Report or Data Entry states.
[!isLoggedIn] / Return User to Login Page
logIn(userName,password)
Invalid Login
logOut()
logOut()
logIn(userName,password)
Authenticating
[User Authorized] / displayNewEntryPrompt()
Entering Data
[showWarning] / displayWarning()
generateReport(age,weight,...,PCr,calcium,meds)
Calculating
Displaying Report
[done calculating]
calcIBW()
calcCreatinine()
calculateConditionProbabilities()
calcGFR()
Figure 4. Statechart for the E-ARMOR class
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
Figure 5 represents the Physician’s Desk Reference class. When medLookup is called, the set of
Medications available to the PDR is searched. If the named medication is found its probability
information is returned, otherwise an error is returned. From either state, another medLookup can be
performed.
medLookup(medName)
medLookup(medName)
Searching
[medName not found] / Return Not Found Error
medLookup(medName)
[medName found] / Return list of complication probabilities
Medication Not Found
Medication Found
Figure 5. Statechart for the Physician's Desk Reference class
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
5 Prototype
The objective of this prototype is to analyze patient information and output the patient’s IBW,
Creatinine clearance, GFR, percentage of contribution from medication to clinical conditions, and
possible symptoms related to each medical condition. The prototype accepts patient information
such as vitals, medications, and basic metabolic lab panel.
5.1 How to Run Prototype
The prototype will require the user to have an Internet-connected device with a web browser installed.
The user must be able to connect to the Internet via a service such as DSL, Cable, WIFI, and etc.
The web browser should be configured to run and accept JavaScript 1.8.1 or higher; no other browser
plug-ins are required. The client-server architecture helps ensure that the application is cross-platform
and OS independent. The E-ARMOR prototype can be accessed through the following URL:
http://www.cse.msu.edu/~cse435/Projects/F09/Polypharmacy7/Prototype/projectprototype.php
5.2 Sample Scenarios
1. The user will open the web browser and arrive at the E-ARMOR website (see Figure 6).
Figure 6. Login Screen
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
2. The user will be redirected to the input screen upon a successful login (see Figure 7).
Figure 7. Input Screen
2. The user will input patient information such as vitals, medications, and basic metabolic panel
requested by the form (see Figure 7).
3. The user will click the submit button upon completion of the form (see Figure 7).
4. The user will then see the output page (see Figure 8). Under the clinical conditions are the
percentages of contribution from each medication to that clinical condition as well as the baseline
percentage in parenthesis. Under related symptoms are some physical symptoms related to the
particular clinical condition shown on the left.
5. If they user feel that he/she had made an incorrect entry back on the input page, he/she can click
on the edit patient data button to return to the input page to fix the erroneous entry. If the user
needs to print the page, he/she can click the print button and follow the on screen instructions. The
new patient button will take the user back to a cleared input screen, which allows him/her to enter
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
data for another patient.
Figure 8. The Output/Report Screen
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
6 References
[1] Dr. R. Haque, “ARMOR: A Tool to Evaluate Polypharmacy in Elderly Persons,” Annals of Long Term Care,
June 2009
[2] B. Shi, “Team 7: Polypharmacy” - Project Website, retrieved 11-29-2009 at
http://www.cse.msu.edu/~cse435/Projects/F09/Polypharmacy7/web/index.php
[3] Wikipedia: Use Case Diagram, retrieved 12-6-09 from http://en.wikipedia.org/wiki/Use_case_diagram
[4] Wikipedia: Class Diagram, retrieved 12-6-09 from http://en.wikipedia.org/wiki/Class_diagram
[5] Wikipedia: Sequence Diagram, retrieved 12-6-09 from http://en.wikipedia.org/wiki/Sequence_diagram
[6] Wikipedia: UML State Machine, retrieved 12-6-09 from http://en.wikipedia.org/wiki/UML_state_machine
[7] Wikipedia: Renal Function, retrieved 12-10-09 from http://en.wikipedia.org/wiki/Renal_function
[8] Mosby's 2010 Nursing Drug Reference, retrieved 12-10-09 from
http://evolve.elsevier.com/productPages/s_1222.html
[9] Wikipedia: Basic Metabolic Pannel, retrieved 12-10-09 from
http://en.wikipedia.org/wiki/Basic_metabolic_panel
[10] Wikipedia: Electronic Medical Record, retrieved 12-10-09 from
http://en.wikipedia.org/wiki/Electronic_medical_record
[11] Wellness.com: Ideal Body Weight, retrieved 12-10-09 from
http://www.wellness.com/reference/fitness/ideal-body-weight
7 Point of Contact
For further information regarding this document and project, please contact Prof. Betty H.C. Cheng
at Michigan State University (chengb at cse.msu.edu). All materials in this document have been
sanitized for proprietary data. The students and the instructor gratefully acknowledge the participation
of our industrial collaborators.
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C.
Cheng, Michigan State University (chengb at chengb.cse.msu.edu)
Download