Requirements - mwgeurts/viewray_handcalc GitHub Wiki
The following sections detail the use cases software requirements specifications for the ViewRay Secondary Dose Calculation tool. Each use case is assigned a letter ID and describes the rationale, intended users, preconditions, a step by step sequence of events, and the software tool version where this use case was introduced.
Software requirements are classified into three categories: user interface, functional, and non-functional. Non-functional requirements are further broken down into three additional types: performance, compatibility and documentation. Each interface and functional requirement is traced to a specific use case and step within the course of events and is provided a four character ID, where the first character is a letter indicating the requirement type and the final three are an incremental number.
Performance requirements may reference modern hardware. This refers to a typical base-level configuration of a business desktop or laptop computer, which would include a 64-bit operating system, 4 GB of RAM, and Intel Core i5 processor at minimum. Refer to the Unit Testing page for details on the system configuration used to verify these requirements.
To determine which requirements apply to a given software version, trace the requirement back to the Use Case using the referenced Use Case letter ID and note the version. It is implied that all specifications attached to Use Cases that include the statement and forward will continue to be applied to the current and all future versions of the application.
- Use Cases
- User Interface Requirements
- Functional Requirements
- Performance Requirements
- Compatibility Requirements
- Documentation Requirements
ID | A |
---|---|
Summary | Calculate beam on time for a fixed conformal field |
Rationale | This is the first primary use case for this application, where the user knows the input parameters for a secondary dose calculation (dose, depth, SSD, etc.) and is looking to calculate the beam on time for a given source strength. |
Users | Medical physicist |
Preconditions | The tool has tabulated TPR, Scp, and other reference data |
Course of Events |
|
Version | 1.0.0 and forward |
ID | B |
---|---|
Summary | Extract secondary dose calculation input parameters from a plan text report and compute the beam on time |
Rationale | To automate the secondary dose check process, the tool should be capable of extracting the necessary input parameters from a text plan report and re-calculate the beam on time for all fixed conformal beams for comparison to the planned beam time. |
Users | Medical physicist |
Preconditions | The user has generated a plan text report for a fixed conformal plan |
Course of Events |
|
Version | 1.0.0 and forward |
ID | C |
---|---|
Summary | Extract secondary dose calculation parameters from a PDF report |
Rationale | As an extension to Use Case C, the tool should be capable of extracting the same parameters from a PDF plan report |
Users | Medical physicist |
Preconditions | The user has generated a PDF text report for a fixed conformal plan |
Course of Events |
|
Version | 1.0.0 and forward |
ID | D |
---|---|
Summary | Generate report for secondary dose calculation |
Rationale | Following Use Cases B and C, the user should be able to generate a report that documents the secondary calculation that can be saved in the patient's EMR |
Users | Medical physicist |
Preconditions | The user has loaded a plan report into the tool and re-calculated the beam on time |
Course of Events |
|
Version | 1.0.0 and forward |
ID | E |
---|---|
Summary | Calculate decay-corrected time to compare to delivery time |
Rationale | Although the primary use case of the application is to check the planned beam on time, a secondary use case is to use the tool to verify that the (decay corrected) delivery beam on times are also consistent with the secondary check |
Users | Medical physicist |
Preconditions | The user has loaded a plan report into the tool and re-calculated the beam on time |
Course of Events |
|
Version | 1.0.0 and forward |
ID | Case | Step | Requirement |
---|---|---|---|
U001 | B | 4 | A graphical user interface shall open when the user executes HandCalcUI |
U002 | B | 4 | The interface shall include a table for displaying patient ID, name, birthdate, diagnosis, prescription, number of fractions, density image, density overrides, plan name, and plan approval |
U003 | B | 4 | The interface shall include a table for displaying machine name, serial number, software version, model, institution, and planning source strength |
U004 | E | 2 | The interface shall include a table for displaying source calibration strengths for each head |
U005 | B | 4 | The interface shall include a table for displaying beam angle, group, type, isocenter, field size, calculation point, dose, weight, SSD, depth, effective depth, OAD, planned time, TPR, Scp, OAR, couch factor, and calculated time |
U006 | B | 2 | The interface shall include a button to Browse for a plan report |
U007 | D | 1 | The interface shall include a Print Report button to generate a report |
U008 | B | 6 | The interface shall include a Clear Data button |
U009 | B | 5 | The beams table shall include the difference between planned and calculated beam on times |
U010 | B | 5 | The interface shall include a field to display the average difference |
U011 | B | 5 | The average difference field will display green if within 5%, yellow if 5-10%, and red otherwise |
U012 | E | 4 | The beams table shall include the decay corrected time |
ID | Case | Step | Requirement |
---|---|---|---|
F001 | B | 1 | If not all components of the application are present, the application shall throw an error to the user |
F002 | B | 2 | Upon clicking Browse, a navigation window will appear allowing the user to select a text (.txt) file |
F003 | C | 1 | Upon clicking Browse, a navigation window will appear allowing the user to select a PDF (.pdf) file |
F004 | B | 2 | If the user does not select a file, the application will resume without error |
F005 | B | 2 | If the user provides an invalid file, he/she shall be notified |
F006 | B | 4 |
ParsePlanReportText shall extract from a plan text report the patient ID, name, birthdate, diagnosis, prescription, plan name, plan approval, plan ID, last modified date, physician, physicist, dosimetrist, machine name, serial number, software version, equipment model, institution, department, beam on time type, prescription dose, prescription point/volume and coverage percent, dose per fraction, patient orientation, couch position, point coordinates, density ct, density overrides, and beam group, isocenter point, angle, planned time, beam type, field size, calculation point, normalization, SSD, physical depth, effective depth, and OAD for each used beam |
F007 | C | 2 |
ParsePlanReportPDF shall extract from a plan PDF report the patient name, plan name, last modified date, patient ID, MRN, birthdate, institution, version, isotope, prescription approval, contour approval, image approval, plan approval, calendar approval, dose model, coil calculation, auto-normalization, inter-digitation, resolution, deformation setting, total delivery time, patient orientation, planning activity, planning strength, source activity, source strength, prescription volume/point, diagnosis, prescription dose, prescription coverage, number of fractions, dose per fraction, previous dose, couch position, point name, point coordinates, point dose, point assigned beams, density CT, density overrides, and angle, group, type, number of segments, planned time, field size, isocenter point, calculation point, field size, weight point, SSD, physical depth, effective depth, and OAD for each used beam |
F008 | E | 1 |
ParseSourceTrackingPDF shall extract from a calibration PDF report the system name, serial number, and source ID, activity, and strength for each source |
F009 | A | 2 |
CalculateBeamTime shall compute and return the beam on time given dose, depth, and field size inputs |
F010 | A | 1 |
CalculateBeamTime shall optionally accept off axis distance, angle, calibration factor, couch attenuation magnitude, SAD, and SCD factors as inputs |
F011 | A | 1 |
CalculateBeamTime shall optionally accept a beams structure (generated from ParsePlanReportPDF or ParsePlanReportText ) as an input |
F012 | B | 5 | The tool shall compute and display the beam on time difference as (calculated - planned)/planned |
F013 | B | 5 | The tool shall compute and display the average beam on time difference using a weighted sum: sum(beam weight * difference)/sum(beam weight)
|
F014 | E | 4 | The tool shall compute and display the decay corrected time using the following equation, where half life is the half life of Co-60: calculated time * planning source strength/calibrated source strength * 1/exp(-log(2)/half life * (current date - calibration date))
|
F015 | B | 6 | Upon clicking Clear Data, the weighted mean difference field, plan report field, and the patient, machine, and beams UI tables will clear |
F016 | D | 2 | Upon clicking Print Report, a report will be generated containing the same patient, machine, source calibration, and beams data as the UI |
F017 | D | 2 | Upon clicking Print Report, the report will be saved as a PDF file |
F018 | D | 3 | Upon clicking Print Report, the PDF report file will open using the default system application |
ID | Case | Step | Requirement |
---|---|---|---|
P001 | B | 1 | The application shall load in less than 2 seconds on modern hardware |
P002 | B | 3 | The application shall load and calculate the beam on time of a plan text report containing six beams in less than 2 seconds on modern hardware |
P003 | C | 2 | The application shall load and calculate the beam on time of a plan PDF report containing six beams in less than 2 seconds on modern hardware |
P004 | D | 2 | The application shall generate a report in less than 2 seconds on modern hardware |
ID | Case | Step | Requirement |
---|---|---|---|
C001 | B | 1 | The application shall run successfully on 64-bit Windows 7 |
C002 | B | 1 | The application shall run successfully on 64-bit Windows 10 |
C003 | B | 1 | The application shall run successfully on Ubuntu 14 LTS |
C004 | B | 1 | The application shall run successfully on Ubuntu 15 |
C005 | B | 1 | The application shall run successfully on 64-bit Windows 7 |
C006 | B | 1 | The application shall run successfully on the latest version of Mac OSX |
C007 | B | 1 | The application shall run successfully using MATLAB R2014a |
C008 | B | 1 | The application shall run successfully using MATLAB R2015a |
C009 | B | 1 | The application shall run successfully using MATLAB R2016a |
C010 | B | 2 | The application shall be able to successfully extract a ViewRay version 3.4 plan text report |
C011 | C | 1 | The application shall be able to successfully extract a ViewRay version 3.4 plan PDF report |
C012 | B | 2 | The application shall be able to successfully extract a ViewRay version 3.5 plan text report |
C013 | C | 1 | The application shall be able to successfully extract a ViewRay version 3.5 plan PDF report |
C014 | B | 2 | The application shall be able to successfully extract a ViewRay version 4.0 plan text report |
C015 | C | 1 | The application shall be able to successfully extract a ViewRay version 4.0 plan PDF report |
ID | Case | Step | Requirement |
---|---|---|---|
D001 | B | 1 | Documentation shall be provided to describe how to install the application |
D002 | B | 1 | Documentation shall be provided to describe how to run the application |
D003 | A | 1 | Documentation shall be provided on how to run CalculateBeamTime()
|
D004 | B | 3 | Documentation shall be provided on how to run ParsePlanReportText()
|
D005 | C | 2 | Documentation shall be provided on how to run ParsePlanReportPDF()
|