Difference between revisions of "Open Source Software Specification"

From Ultrasound
Jump to navigationJump to search
 
(4 intermediate revisions by the same user not shown)
Line 12: Line 12:
  
 
This product will be known as USBUS (USB UltraSound). It '''shall''' be written in a language that fully supports the .NET object libraries. It '''should''' use the Interson USB Probe SDK for control of the USB probe hardware and it '''may''' use the SDK for producing the image (scan converting).
 
This product will be known as USBUS (USB UltraSound). It '''shall''' be written in a language that fully supports the .NET object libraries. It '''should''' use the Interson USB Probe SDK for control of the USB probe hardware and it '''may''' use the SDK for producing the image (scan converting).
 +
 +
USBUS '''shall''':
 +
# be a graphical user interface,
 +
# display live ultrasound images in a window that
 +
#* '''shall''' be resizable,
 +
#* '''shall''' allow scrolling (i.e. moving the image side-to-side and up/down in the window),
 +
#* '''should''' be undockable (i.e. the window can be moved to a new location on the screen),
 +
#* '''may''' be cloned so that multiple image windows could exist (overlapping and such) - If this is done, at least one '''shall''' be able to display live image data when the probe is scanning,
 +
# allow ''zooming'' of the image in the window,
 +
# allow restoring a ''zoomed'' image back to an ''unzoomed'' state,
 +
# allow saving of individual image data (backscatter data) to a file,
 +
# allow saving of a complete cine to a file,
 +
# allow arbitrary cine sizes (based on available memory),
 +
# have image processing controls that
 +
#* '''shall''' allow for image contrast/intensity changes,
 +
#* '''shall''' allow for image filtering changes
 +
#* '''may''' allow for other gray-scale image processing,
 +
#* '''may''' allow for pseudo-color image processing,
 +
#* '''shall''' allow for gain correction with at least two control points (i.e. a line),
 +
#* '''shall''' be adjustable via the GUI
 +
# allow entry of basic patient data (name, birthday, sex, date, physician/nurse name, etc.)
 +
# allow for control of probe parameters during live imaging that '''shall''' include
 +
#* probe scan rate (frames per second),
 +
#* probe sample frequency (depth mode),
 +
#* probe pulse frequency,
 +
#* probe pulser power,
 +
#* probe unidirectional/bidirectional imaging control,
 +
# allow for controlling features of the scan converter that '''shall''' include
 +
#* turning interpolation on/off,
 +
#* turning image averaging on/off,
 +
# allow for multiple probes to be attached and a selection made, on the fly, for live imaging,
 +
# use the probe button (if available) to start/stop live imaging
 +
# allow printing of an image window (with all its contents) on a standard system printer and
 +
#* '''shall''' print any available patient data on this printout,
 +
#* '''shall''' print the current time/date,
 +
# allow image window contents to be copied into the system ''clipboard'' for pasting into other applications that may allow pasting of bitmaps.
 +
# have measurement capabilities that
 +
#* '''shall''' allow measuring distance on an image,
 +
#* '''shall''' allow at least two measurements to be taken,
 +
#* '''may''' allow calculations to be done with the measurements (addition, subtraction, distance between, etc.),
 +
#* '''may''' allow other measurement types:
 +
#** area of a circle or rectangle,
 +
#** perimeter
 +
 +
USBUS '''should''':
 +
# have ''hot-keys'' for all of the commonly used functions (to obviate the need for using a mouse once a live scan has begun),
 +
# save a JPEG or other image type of the currently displayed image (with all processing and annotations) when a backscatter file is saved,
 +
# use modern, docking, window controls,
 +
# allow annotations to the image - these annotations '''shall''' include drawing arbitrary text, rectangles, circles and freehand lines and they '''should''' allow editing of those annotations once placed
 +
# allow for a complete database system to be used for storing patient data and records
 +
# support both A-mode and B-mode imaging,
 +
# allow for custom settings to be created and managed which includes the saving of
 +
#* the current image processing controls and settings,
 +
#* other data that may be entered at start up (such as the examiner's name),
 +
# incorporate a help system that '''may''' be context sensitive.
 +
 +
USBUS '''may''':
 +
# allow the user to define what the probe button function will do (defaults to start/stop).

Latest revision as of 20:30, 26 January 2009

DEFINITIONS

The word shall will indicate items that are required in the final product.

The word should will indicate items that, while not required, are especially important and justification must be made if they are omitted from the final product.

The word may will indicate optional items in the final product.


Product Specification

This product will be known as USBUS (USB UltraSound). It shall be written in a language that fully supports the .NET object libraries. It should use the Interson USB Probe SDK for control of the USB probe hardware and it may use the SDK for producing the image (scan converting).

USBUS shall:

  1. be a graphical user interface,
  2. display live ultrasound images in a window that
    • shall be resizable,
    • shall allow scrolling (i.e. moving the image side-to-side and up/down in the window),
    • should be undockable (i.e. the window can be moved to a new location on the screen),
    • may be cloned so that multiple image windows could exist (overlapping and such) - If this is done, at least one shall be able to display live image data when the probe is scanning,
  3. allow zooming of the image in the window,
  4. allow restoring a zoomed image back to an unzoomed state,
  5. allow saving of individual image data (backscatter data) to a file,
  6. allow saving of a complete cine to a file,
  7. allow arbitrary cine sizes (based on available memory),
  8. have image processing controls that
    • shall allow for image contrast/intensity changes,
    • shall allow for image filtering changes
    • may allow for other gray-scale image processing,
    • may allow for pseudo-color image processing,
    • shall allow for gain correction with at least two control points (i.e. a line),
    • shall be adjustable via the GUI
  9. allow entry of basic patient data (name, birthday, sex, date, physician/nurse name, etc.)
  10. allow for control of probe parameters during live imaging that shall include
    • probe scan rate (frames per second),
    • probe sample frequency (depth mode),
    • probe pulse frequency,
    • probe pulser power,
    • probe unidirectional/bidirectional imaging control,
  11. allow for controlling features of the scan converter that shall include
    • turning interpolation on/off,
    • turning image averaging on/off,
  12. allow for multiple probes to be attached and a selection made, on the fly, for live imaging,
  13. use the probe button (if available) to start/stop live imaging
  14. allow printing of an image window (with all its contents) on a standard system printer and
    • shall print any available patient data on this printout,
    • shall print the current time/date,
  15. allow image window contents to be copied into the system clipboard for pasting into other applications that may allow pasting of bitmaps.
  16. have measurement capabilities that
    • shall allow measuring distance on an image,
    • shall allow at least two measurements to be taken,
    • may allow calculations to be done with the measurements (addition, subtraction, distance between, etc.),
    • may allow other measurement types:
      • area of a circle or rectangle,
      • perimeter

USBUS should:

  1. have hot-keys for all of the commonly used functions (to obviate the need for using a mouse once a live scan has begun),
  2. save a JPEG or other image type of the currently displayed image (with all processing and annotations) when a backscatter file is saved,
  3. use modern, docking, window controls,
  4. allow annotations to the image - these annotations shall include drawing arbitrary text, rectangles, circles and freehand lines and they should allow editing of those annotations once placed
  5. allow for a complete database system to be used for storing patient data and records
  6. support both A-mode and B-mode imaging,
  7. allow for custom settings to be created and managed which includes the saving of
    • the current image processing controls and settings,
    • other data that may be entered at start up (such as the examiner's name),
  8. incorporate a help system that may be context sensitive.

USBUS may:

  1. allow the user to define what the probe button function will do (defaults to start/stop).