D1. Specifications

User Stories

  • As a biomedical user (student/researcher), I want to be able to use a “point-and-click” and simple GUI to update user settings and compute head circumference from a single, but occasionally multiple, MRI image(s) to assist with research.
  • As a user with developer experience, I want to be able to use the command line to process a batch of images one after the other for convenience.
  • As a user with developer experience, I want to be able to use the command line to update multiple user settings for convenience.
  • As a future maintainer of this work, I want the tool to be documented, extensible, and open source so that it can be improved easily.
  • As any type of user, I want the tool to output a text file with head circumference measurements to assist with research.
  • As any type of user, I want the tool to output a log of user choices in an easily parsable format (i.e. JSON) so that I have a reproducible history of my work.

Requirements

Functional

  • Definite
    • The application will correctly compute head circumference from an MRI image.
    • The user can input MRI images in NRRD/NIfTI file formats using a file menu.
    • The user can reorient/rotate the image.
    • The user can process a batch of images using CLI.
    • The user can interact with the GUI to perform the computation on a single image.
    • In addition to modifying settings interactively via GUI, the user can load program settings from a JSON file.
    • The program will output a text file with head circumference measurements.
      • The text file will be easily importable into a statistics tool (e.g. CSV or TSV format).
    • The program will output a log of user choices in an easily parsable format (e.g. JSON).
  • Perhaps
    • The user can use sliders to reorient/rotate the image.
    • Slider rotations will be interactive (real-time rotation).
    • The GUI will display an information panel containing information about user choices, name of file, image resolution, etc.
  • Improbable
    • The program will apply the Fourier transform for contour smoothing.

Non-functional

  • Definite
    • The project will be open source.
    • The GUI will be easy to use for non-technical users.
    • The program will provide users with specific test cases and expected results.
    • There will be clear documentation for the program.
    • The program will be maintainable and extensible.
  • Perhaps
    • There will be an executable file/package (e.g. .exe, .app) for running the program.
    • There will be tutorials for using the program.
  • Improbable