Product #10
"ScanBooker"
Purpose of the Product
"The reason the product is being developed."
Background of the project
"A short description of the work being done, and the situation that triggered the analysis effort."
<p>The Cognition and Brain Sciences Unit (CBSU) of the Medical Research Council conduct research studies involving brain scanning of volunteer subjects. </p> <p>At the CBSU's home in Cambridge, England, a new Magnetic Resonance Imaging (MRI) scanner has recently been installed. Organisational development to support research studies involving the scanner is continuing. </p> <p>In addition to providing an internal scanning service to CBSU researchers, the scanner is used externally by other researchers in Cambridge in three ways: </p> <ul> <li> direct collaboration with a member of the CBSU; </li> <li> scheduled time that the CBU assigns to members of the Wolfson Brain Imaging Centre (WBIC) under the two centres collaborative agreement (these scans would not necessarily involve a direct collaboration with any member of the CBSU); </li> <li> via a commercial party (e.g. drug company) buying scanner time from the CBSU. </li> </ul> <p>A number of CBSU staff have expressed the desire to develop a database system to support the scanning service. To form agreement about which of various directions of system implementation to take, and to de-risk the implementation of service support, the motivation arose to analyse the requirements of supporting a scanning service. </p> <p>Since the software development was started, this requirements document has been maintained to reflect the broadening scope of the system and deepening analysis of the work. </p>
Goals of the work
Stakeholders
"The roles or names of people and organizations who will finance or otherwise contribute to, or are affected by the product."
<p>The host, members, and friends of <a href="http://appropriatesoftware.net/scanbooker/Home.html"><em>ScanBooker</em></a> club. </p>
Users of the Product
"A list of the potential users of the product."
<h4>The Unit Administrator</h4> <p>Reviews radiographer hours, hours of scanning time, planning volunteer payments, billing grants, billing external organisations for scanner time. </p> <h4>The Facility Administrator</h4> <p>Scanner scheduling, scanning session confirmation, radiographer time, MRI training courses, tracks studies, tracks activity ethical approvals, selling scanner time, respond to data requests from volunteers, audits and reports on activity ethical approvals, audits and reports on studies. </p> <h4>The Receptionist</h4> <p>Welcomes visitors when arriving for appointments at the unit. </p> <h4>The Diary Secretary</h4> <p>Send email of 'next week' diary events to all staff. </p> <h4>The Scanner Radiographer</h4> <p>Getting volunteer information, recording volunteer screening, volunteer consent forms, booking volunteers into slots, recording any problems with scanning (per slot), recording experience with volunteers. </p> <h4>The Researcher</h4> <p>Involved with making applications for approval of study, reviewing scanning schedule to request slots, specifying requirements for volunteers (e.g older, left handed, English as native language). Reviewing record of their own training, booking themselves in for training slots. Reviewing number of scans still available on their ethics approval. Adding feedback about volunteers (good subject, moved a lot, a bit claustrophobic etc). Adding comments about success of scanning slots for feedback. Preparing and submitting ethics approval forms. </p> <h4>The Untrained Researcher</h4> <p>A researcher who has not successfully completed the scanner safety training course. </p> <h4>The Volunteer Subject</h4> <p>Register specifying availability, choosing scanning slots from those available that match their profile, receive and respond to invitations to attend scanning slots, terminate registration, make requests for data under the data protection act. </p> <h4>The External Researcher</h4> <p>A researcher who is not a member of the unit. These researchers will probably need similar access to that of internal researchers (as above) perhaps with some restrictions. </p> <p>External researchers download visitors forms (which they all have to sign before they can scan here), downloading various other forms (our consent form etc). </p> <h4>The Buildings Maintenance Engineer</h4> <p>Conducts maintenance tasks within the MRI Scanner Building. </p> <h4>The Software Maintenance Engineers</h4> <p>Maintain and upgrade the product. </p>
Naming Conventions and Definitions
"A glossary containing the meanings of all names, acronyms, and abbreviations used within the requirements specification. Select names carefully to avoid giving a different, unintended meaning."
<h4>The Unit</h4> <p>The Cognition and Brain Sciences Unit (CBSU) of the Medical Research Council. </p> <h4>The Facility</h4> <p>Part of the unit used to provide scanning services. </p> <h4>The Imaging Management Committee (IMC)</h4> <p>Management committee for the facility. </p> <h4>The IIG</h4> <p>? </p> <h4>MRI Scanner</h4> <p>Magentic Resonance Imaging scanner. </p> <h4>MRI Scanner Building</h4> <p>The building within which the MRI scanner is located. </p> <h4>MEG Scanner</h4> <p>Magnetic Ecephalography scanner. </p> <h4>Block</h4> <p>A 15 minute interval of time on a scanner. Blocks are used to make variable length slots. </p> <h4>Slot</h4> <p>A variable length interval of time on a scanner. Slots are made from a continuous set of blocks. </p> <h4>Scanning Session</h4> <p>A slot. </p> <h4>Video Training Session</h4> <p>A training session where researchers receive instruction about safety. </p> <h4>Practical Training Session</h4> <p>A training session where researchers learn practical aspects of safety. </p> <h4>Research Activity</h4> <p>A specific process or procedure that will be undertaken within a study. </p> <h4>Study</h4> <p>A scientific study conducted by researchers. </p> <h4>Structural Scan</h4> <p>A scan of the anatomical structure of a brain. </p> <h4>Functional Scan</h4> <p>A scan of the functional dynamics of a brain. </p> <h3>Adjacent Work</h3> <p>The scanning work is adjacent to: </p> <ul> <li> the Imaging Management Committee's proceedings </li> <li> the scanner system </li> <li> the researchers' studies </li> <li> the ethics committees </li> <li> the unit's internal accounting system </li> <li> the unit's external billing system </li> <li> the panel assessment system (shared register of volunteers) </li> <li> the population of potential researchers </li> <li> the population of potential volunteers </li> </ul>
Scope of the Work
"An analysis of the stories that might be supported by the new product."
The product supports these stories:
Story #124
"Hide week when updating schedule"
Story #125
"Read week of scanning schedule"
Story #126
"Read details of scanning session"
Story #127
"Register new medical imaging research project"
Story #128
"Read help messages which explain application functionality"
Story #129
"Register new medical imaging researcher"
Story #130
"Earmark scanning schedule time for various purposes"
Story #131
"Set a registered organisation as the default"
Story #132
"Register new medical imaging research ethics approval"
Story #133
"Read details of scanning schedule earkmark"
Story #21
"Create new scanning session"
Story #142
"Create new scanner maintenance session"
Story #143
"Conduct scanner maintenance session"
Story #144
"Recruit new volunteers for scanning studies"
Story #145
"Promote external researcher usage of scanner facility"
Story #146
"Researcher requests place on scanning training course"
Story #147
"Schedule more scanning training courses"
Story #148
"Researcher attends video training session"
Story #149
"Create scanning training appointment"
Story #150
"Cancel scanning training appointment"
Story #151
"Researcher attends scanning training practical"
Story #152
"Propose new scanning study to Imaging Management Committee"
Story #153
"Imaging Management Committee approves new scanning study"
Story #154
"Propose new research activity to Medical Ethics Committee "
Story #155
"Medical Ethics Committee approves new research activity"
Story #156
"Apply for extension to medical ethics approval"
Story #157
"Medical Ethics Committee approves extension to medical ethics approval"
Story #158
"Researcher requests scanning sessions"
Story #159
"External researcher requests scanning sessions"
Story #160
"Call for registered volunteers to attend scanning sessions"
Story #161
"Volunteer cancels scanning session"
Story #162
"Volunteer attends scanning appointment"
Story #163
"Check structural scans"
Story #164
"Report on usage of scanning time"
Story #165
"Charge internal scanning usage"
Story #166
"Charge external scanning usage"
Story #167
"Send scanning facility conduct guidelines to researcher"
Story #179
"Make notes about scanning schedule week"
Story #180
"Read notes about scanning schedule week"
Story #181
"Book registered volunteers into scanning sessions"
Story #30
"Create, read, update, or delete records of the objects of the domain"
Story #182
"Read list of active volunteers"
Story #183
"Read list of active projects"
Story #184
"Register new cost code"
Story #185
"Report on projects using scanning facility time"
Story #186
"Report on medical ethics committee approvals in use at scanning facility"
Story #187
"Create new scanner methods session"
Story #188
"Report what happened in scanning session"
Story #189
"Record scanning training session outcome"
Story #190
"Read list of upcoming scanning training sessions"
Story #252
"Adjust applied application constraints on user operations"
Story #253
"Read account of cost of project scanning sessions "
Story #255
"Use a Web browser client to interact with the system."
Story #256
"Read list of scan image files"
Story #258
"Receive message alerts for upcoming events (such as approval renewal)"
Story #27
"Register new medical imaging research volunteer subject"
Scope of the System
"Determine, with the appropriate stakeholders, which part of the story should be supported by some sort of product and what part should be done entirely by the user."
The product shall satisfy these requirements:
Data model Requirements
Data model Requirement #5
"The system shall require volunteers to be recorded with a mandatory realname; all other attributes optional"
"Register new medical imaging research volunteer subject"
Data model Requirement #123
"The system shall support recording an earmark with: starts date-time, ends date-time, comment, earmark type"
"Earmark scanning schedule time for various purposes"
Data model Requirement #124
"The system shall support recording a training session with: starts date-time, ends date-time, comment, notes"
"Schedule more scanning training courses"
Legal Requirements
Legal Requirement #107
"Personal information shall be implemented so as to comply with the data protection act"
"Create, read, update, or delete records of the objects of the domain"
Look and feel Requirements
Look and feel Requirement #96
"The system shall present with great emphasis the date of the displayed week"
"Read week of scanning schedule"
Look and feel Requirement #119
"The system shall display 'inactive' objects with faded colour"
"Read list of active volunteers"
"Read list of active projects"
Functional Requirements
Functional Requirement #32
"The system shall optionally enforce the expiry date of ethics approvals"
"Create new scanning session"
Functional Requirement #73
"The system shall present dates with format DD-MM-YYYY"
"Create new scanning session"
Functional Requirement #126
"The system shall support optionally recording a scanning 'session leader', to be one of the project researchers"
"Create new scanning session"
Functional Requirement #3
"The system shall support recording scan volunteers"
"Register new medical imaging research volunteer subject"
Functional Requirement #91
"The system shall direct the user to the register index after updating records of the medical imaging facility"
"Register new medical imaging research project"
"Register new medical imaging research volunteer subject"
"Register new medical imaging researcher"
"Register new medical imaging research ethics approval"
Functional Requirement #98
"The system shall support importing a spreadsheet of volunteer details, enforcing unique name and scan ID"
"Register new medical imaging research volunteer subject"
Functional Requirement #74
"The system shall support hiding weeks when updating schedule"
"Hide week when updating schedule"
Functional Requirement #75
"The system shall present the list of hidden weeks"
"Hide week when updating schedule"
Functional Requirement #76
"The system shall have grid lines on the schedule view"
"Read week of scanning schedule"
Functional Requirement #77
"The system shall style the schedule grid for printing"
"Read week of scanning schedule"
Functional Requirement #90
"The system shall style the schedule grid for screen reading"
"Read week of scanning schedule"
Functional Requirement #93
"The system shall support scheduling sessions from 1st January 2005"
"Read week of scanning schedule"
Functional Requirement #122
"The system shall show earmark comments when viewing sessions"
"Read week of scanning schedule"
Functional Requirement #78
"The system shall present ethics code on schedule week session summary"
"Read details of scanning session"
Functional Requirement #79
"The system shall present cost code on schedule week session summary"
"Read details of scanning session"
Functional Requirement #127
"The sytem shall present 'session contact' as 'session leader' or 'project leader'"
"Read details of scanning session"
Functional Requirement #80
"The system shall support recording cost codes against medical imaging projects"
"Register new medical imaging research project"
Functional Requirement #89
"The system shall enforce unique medical imaging project titles"
"Report on projects using scanning facility time"
"Register new medical imaging research project"
Functional Requirement #92
"The system shall support recording expected preparation minutes against medical imaging projects"
"Register new medical imaging research project"
Functional Requirement #95
"The system shall present the total number of scanning sessions for medical imaging research projects"
"Register new medical imaging research project"
"Report on projects using scanning facility time"
Functional Requirement #128
"The system shall support recording a project with: title, nickname, leader, researchers, approval, funding, status, preparation minutes, booking method, committee approval, committee presentation, number subjects, number pilots, slot minutes, volunteer type, start date, completion date, cost code, notes, project outcome"
"Report on projects using scanning facility time"
"Register new medical imaging research project"
Functional Requirement #82
"The system shall support reading a full listing of all registered researchers"
"Register new medical imaging researcher"
Functional Requirement #83
"The system shall support recording the status (active/left/temporarily away) of a researcher"
"Register new medical imaging researcher"
Functional Requirement #97
"The system shall support recording the role (imager/non-imager) of a researcher"
"Register new medical imaging researcher"
Functional Requirement #86
"The system shall support setting a registered organisation as the default"
"Set a registered organisation as the default"
Functional Requirement #94
"The system shall present earmarked organisation on schedule week earmark summary"
"Read details of scanning schedule earkmark"
Functional Requirement #109
"The system shall support making notes about scanning schedule week"
"Make notes about scanning schedule week"
Functional Requirement #111
"The system shall present a chronological list of upcoming sessions that allows a selected volunteer to be booked in"
"Book registered volunteers into scanning sessions"
Functional Requirement #114
"The system shall support recording that a volunteer is very keen"
"Book registered volunteers into scanning sessions"
Functional Requirement #115
"The system shall support recording that a volunteer is very reliable"
"Book registered volunteers into scanning sessions"
Functional Requirement #116
"The system shall present list containing only active volunteers"
"Read list of active volunteers"
Functional Requirement #118
"The system shall present a link from a volunteer's 'last scan' to the corresponding week in the schedule"
"Read list of active volunteers"
Functional Requirement #117
"The system shall support selecting an active volunteer for booking into upcoming scanning sessions"
"Read list of active volunteers"
Functional Requirement #125
"The system shall support registering cost codes, and associating them with projects"
"Register new cost code"
Functional Requirement #132
"The system shall support restricted registering of scanning session outcomes"
"Report what happened in scanning session"
Functional Requirement #139
"The system shall support setting whether or not scanning sessions require trained project leader"
"Adjust applied application constraints on user operations"
Functional Requirement #141
"The system shall support setting whether or not scanning sessions require selected ethics approval expires after session ends "
"Adjust applied application constraints on user operations"
Functional Requirement #142
"The system shall support setting whether or not scanning sessions require selected ethics approval balance in credit"
"Adjust applied application constraints on user operations"
Functional Requirement #151
"The system shall visually indicate when a Web browser client isn't supported"
"Use a Web browser client to interact with the system."
Functional Requirement #152
"The system shall support the Firefox Web browser client"
"Use a Web browser client to interact with the system."
Functional Requirement #155
"The system shall speak to scan image viewers"
"View scan image"
Functional Requirement #81
"The system shall support setting verbosity of any inline help messages which explain application functionality"
"Read help messages which explain application functionality"
Functional Requirement #84
"The system shall support earmarking scanning schedule time for methods development work"
"Earmark scanning schedule time for various purposes"
Functional Requirement #85
"The system shall support earmarking scanning schedule time for actual scanning sessions"
"Earmark scanning schedule time for various purposes"
Functional Requirement #87
"The system shall not prompt for user confirmation when deleting schedule time earmarkings"
"Earmark scanning schedule time for various purposes"
Functional Requirement #88
"The system shall enforce unique medical imaging research approval codes"
"Register new medical imaging research ethics approval"
Functional Requirement #121
"The system shall present options for training session type as: Oxgen, AED, MRI Practical, MRI Video, MRI Responsible, AED Refresher, First Aid"
"Schedule more scanning training courses"
Functional Requirement #120
"The system shall present starts and ends date-time attributes as date with starts and ends time"
"Schedule more scanning training courses"
Functional Requirement #131
"The system shall support cancelling volunteer scanning appointment"
"Volunteer cancels scanning session"
Functional Requirement #110
"The system shall support reading notes about scanning schedule week"
"Read notes about scanning schedule week"
Functional Requirement #112
"The system shall render week notes for display with 'markdown' convertor"
"Read notes about scanning schedule week"
Functional Requirement #6
"The system shall support creating, reading, updating, and deleting records of objects of the domain"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #22
"The system shall expand camel case with spaces when reflecting domain model names in the presentation"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #39
"The system shall present in pages of fixed length the lists of records of the objects of the domain"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #43
"The system shall be immune to SQL injection attacks"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #52
"The system shall support temporal domain objects"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #53
"The system shall support copying records of objects of the domain"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #54
"The system shall suport recording temporal domain object attributes"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #55
"The system shall support recording bi-temporal records of objects of the domain"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #60
"The system shall provide a RESTful machine client interface"
"Create, read, update, or delete records of the objects of the domain"
"Create, read, update, or delete records of open knowledge projects or packages"
Functional Requirement #99
"The product shall prevent incorrect data from being introduced"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #113
"The system shall present lists of records sorted in whatever order is requested by the user"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #157
"The system shall support domain data persistence with the SQLObject ORM "
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #129
"The system shall confirm successful creating, updating, and deleting"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #158
"The system shall support domain data persistence with the Sqlalchemy ORM"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #159
"The system shall support domain data persistence with the Google AppEngine ORM"
"Create, read, update, or delete records of the objects of the domain"
Functional Requirement #130
"The system shall support scheduling scanner time for methods work"
"Create new scanner methods session"
Functional Requirement #143
"The system shall update cost account when scanning session is created"
"Read account of cost of project scanning sessions "
Functional Requirement #145
"The system shall update cost account when scanning session is deleted"
"Read account of cost of project scanning sessions "
Functional Requirement #147
"The system shall display cost account as list of all changes in given month"
"Read account of cost of project scanning sessions "
Functional Requirement #149
"The system shall display cost account as a current balance"
"Read account of cost of project scanning sessions "
Functional Requirement #144
"The system shall update cost account when scanning session is updated"
"Read account of cost of project scanning sessions "
Functional Requirement #146
"The system shall update cost accounts when project changes cost account"
"Read account of cost of project scanning sessions "
Functional Requirement #148
"The system shall display cost account as list of all currently effective charges"
"Read account of cost of project scanning sessions "
Functional Requirement #150
"The system shall make available all entries for an account as comma and tab separated values sorted by entry date"
"Read account of cost of project scanning sessions "
Functional Requirement #153
"The system shall speak to DICOM servers"
"Read list of scan image files"
Functional Requirement #154
"The system shall speak to PACS servers"
"Read list of scan image files"
Functional Requirement #156
"The system shall notify suitable researchers when ethics approval limits are being reached"
"Receive message alerts for upcoming events (such as approval renewal)"
Security Requirements
Security Requirement #100
"The product shall protect itself from intentional abuse"
"Create, read, update, or delete records of the objects of the domain"
Security Requirement #101
"The product shall make its users aware of its information practices before collection of data from them"
"Create, read, update, or delete records of the objects of the domain"
Security Requirement #102
"The product shall reveal private information only in compliance with the unit's information policy"
"Create, read, update, or delete records of the objects of the domain"
Security Requirement #103
"The product shall protect private information in accordance with relevant privacy laws and the unit's information policy"
"Create, read, update, or delete records of the objects of the domain"
Security Requirement #104
"The product shall retain records to permit required audit checks"
"Create, read, update, or delete records of the objects of the domain"
Security Requirement #105
"The product shall be as secure as possible from malicious interference"
"Create, read, update, or delete records of the objects of the domain"
Security Requirement #106
"The product shall protect itself from unintentional data loss"
"Create, read, update, or delete records of the objects of the domain"
Notes
<p>These requirements haven't yet been associated with any stories. </p> <h4>Look and Feel Requirements</h4> <p><em>"This section contains requirements relating to the spirit of the product, particular demands for the product, such as corporate branding, colors to be used, and so on."</em> </p> <p>The product shall look and feel like a smart, business-like, university-based, software application service. </p> <p>The product shall carry the unit's logo in the corporate colour of PMS 228 except on printable forms which shall carry the unit's logo in greyscale. </p> <p>The product shall look and feel uncluttered and friendly. </p> <h4>Maintainability and Support Requirements</h4> <p><em>"Specification of the time necessary to make specified changes to the product, the level of support that the product requires, and description of other platforms or environments to which the product must be ported"</em> </p> <h4>Maintenance Requirements</h4> <p>The product shall be maintained within the unit. </p> <h4>Supportability Requirements</h4> <p>The product shall be supported within the unit. </p> <h4>Adaptability Requirements</h4> <p>The product is expected to run under Linux. </p> <p>The product might eventually be provided to other research scanning facilities in the UK (~15), in Europe (~30?), and in the US (~150). </p> <h3>Original Document</h3> <p>This document started life as a <a href="http://project.kforge.appropriatesoftware.net/scanbooker/trac/wiki/RequirementsSpecification">wiki page</a>. </p>
Collections
This product has been included in the following collections:
| Collection |
|---|
| Medical Research |
END