Window Manager Requirements
...
- Layout viewports can be unique sizes, rather than identical sizes
Design persistence model for created or imported protocols | Are Protocols stored by user? Shared between users? Owned by specific users? | |
Create an adapter to export to standard DICOM HP format | This would be primarily for interoperability / data exchange. | |
Create an adapter for the ClearCanvas HP | NOTE: this adapter's code should be documented "to the 9's" | |
Shall have a way to specify primary vs. prior study relationships | In other words, the user should have control over which (and how many) priors to view, and where they are shown. | |
Shall save various display parameters in the HP | Such as: * W/L (and/or W/L preset) * Image orientation (flip, rotate) * Invert * Zoom level / pan (maybe by percentages??) * LUT * CAD markers (on/off) * Cornerstone viewport settings | |
Shall make a "recording mode" to edit the protocol via user actions in the viewer | For example: while in recording mode, changing the layout in the viewer would alter the HP's layout, and would pre-populate rules with the actual values from the displayed DICOM series. | |
Must create an "extra" presentation group to catch any missed series | Shall record which series have been viewed so that a presentation group can be created to display any series that the protocol did NOT display (avoid missing reviewing images) | |
Must support presentation group ordering | This represents a sequence of layouts that are to be stepped through in order. | |
Must support a "required" property on rules | It means if that rule doesn't match, then don't apply this HP. | |
Must support multiple rules and a way to order their priority | Can use sequence, weights, or some other way to describe priority. | |
Must support using DICOM tags and comparitors to express rules | DICOM tags may be limited by their scope (i.e. some tags are not appropriate for certain levels in the rules). Comparitor examples: Contains, doesnotcontain, equals, notequals, etc. | |
Must support rules for selecting which Study / Series / Image to use for each image box | ||
Must support description of image box layout | Future: layout manager should support more complex layouts than just X x Y | |
Must support rules for auto-selecting most relevant HP to apply when loading a study (engine + application) | ||
Design and document our HP data model |
Pieces
ProtocolEngine
- Applicability:
- Identifies matching protocols given a study / list of studies
- Creates object which Matching rules are tested against, given studies
- Checks
- Which protocols are available to the User
- Which protocols require the study modality
- Which protocols match all required Matching Rules
- Applies first by priority in descending order
- Returns all matched criteria to WindowManager so the user can switch protocols
- Study selection rules based on applicable protocol
WindowManager
- Displays Series in Viewports given a Protocol and list of Studies
- Automatically creates extra display group to show unseen series (LT-139)
- Should allow users to go forward / back through protocol stages
- Should allow users to exit protocol for free viewing
- Should display current protocol and stage to user
- Should allow users to switch protocols
- API:
- setHangingProtocol (id)
- getHangingProtocol
- exitHangingProtocol
- setProtocolStage(int)
- getProtocolStage
...
(LT-132) ProtocolMatchingRule = {
required: Boolean
weight: (default 1)
Criteria: {
ValidateJS logic for selecting protocols given a study or set of studies, e.g.:
...
ImageMatchingRule = {
required: Boolean
weight: (default 1)
Criteria: {
ValidateJS logic for selecting images, e.g.:
...