Hanging protocolshow a study opens on the screens

A hanging protocol says where each series goes on which monitor, for a given kind of study. This page shows how a viewer finds and retrieves one with DICOM, which keys decide whether it fits, how a viewer can learn the monitor setup, and why a study sometimes opens in the wrong layout.

The SOP Classes involved

One SOP Class stores the protocol, three find and retrieve it, and a separate service describes the display.

SOP ClassUIDServiceUsed for
Hanging Protocol Storage1.2.840.10008.5.1.4.38.1C-STORESending a hanging protocol object to an archive or viewer. Part of the Non-Patient Object Storage Service Class.
Hanging Protocol Information Model - FIND1.2.840.10008.5.1.4.38.2C-FINDSearching the protocols that an SCP holds.
Hanging Protocol Information Model - MOVE1.2.840.10008.5.1.4.38.3C-MOVEAsking the SCP to send selected protocols to a destination.
Hanging Protocol Information Model - GET1.2.840.10008.5.1.4.38.4C-GETRetrieving protocols on the same association.
Display System1.2.840.10008.5.1.1.40N-GETReading the properties of the display subsystem of a workstation.
Color Palette Storage1.2.840.10008.5.1.4.39.1C-STORESending a color palette used to display images. Same storage service class as hanging protocols.

The Hanging Protocol Query/Retrieve Service Class has a single level, the hanging protocol object. It works like the Basic Worklist Management Service Class for C-FIND and like Query/Retrieve for C-MOVE, but with only one level of retrieval.

The keys used to find a protocol

The matching key types are R (required) and U (unique). A viewer sends the values of the study it is about to open and gets the protocols that fit.

KeyTagTypeMatching
SOP Instance UID(0008,0018)UniqueThe key for C-MOVE and C-GET. One UID or a list of UIDs.
Hanging Protocol Name(0072,0002)RequiredSingle value, wild card or universal.
Hanging Protocol Level(0072,0006)RequiredSingle value or universal.
Hanging Protocol Definition Sequence(0072,000C)RequiredSequence matching or universal. The next five keys are inside its item.
Modality(0008,0060)Required, in the sequenceSingle value or universal.
Anatomic Region Sequence(0008,2218)Required, in the sequenceSequence matching or universal.
Laterality(0020,0060)Required, in the sequenceSingle value or universal.
Procedure Code Sequence(0008,1032)Required, in the sequenceSequence matching or universal.
Reason for Requested Procedure Code Sequence(0040,100A)Required, in the sequenceSequence matching or universal.
Number of Priors Referenced(0072,0014)RequiredSingle value or universal.
Hanging Protocol User Identification Code Sequence(0072,000E)RequiredSequence matching or universal. Whose protocol it is.
Hanging Protocol User Group Name(0072,0010)RequiredType 3 return key.
Number of Screens(0072,0100)RequiredThe screens the protocol is made for.

The response also returns, without matching on them, the description, the creator, the creation date and time, and the Nominal Screen Definition Sequence (0072,0102) with the pixels and bit depth of each screen the protocol was made for.

Finding and retrieving, step by step

Because the model has a single level, the flow is shorter than the Query/Retrieve flow for studies.

StepWhat the viewer doesRule
1. AskC-FIND on 1.2.840.10008.5.1.4.38.2 with the keys of the study to open and zero-length return keys.One response per matching protocol, all Pending, then Success without an Identifier. The Worklist search method is used.
2. ChooseThe viewer picks a protocol from the matches.The standard does not say how to choose between several matches.
3. FetchC-MOVE (.38.3) or C-GET (.38.4) with the SOP Instance UID, or a list of UIDs.Query/Retrieve Level (0008,0052) must not be present. Relational retrieve and extended behavior are not defined.
4. ReceiveThe protocol arrives by a C-STORE sub-operation under Hanging Protocol Storage.The SCP states in its conformance statement the storage SOP Class under which the sub-operations are made.
5. ApplyThe viewer lays out the images following the protocol.A display application must apply all mandatory hanging protocol and presentation intent attributes.

The display system: what the monitors are

The Display System Management Service Class lets an application ask the display subsystem about itself, so a protocol can be matched to the real monitors.

ItemDetail
ServiceN-GET only. The SCU sends the SOP Class 1.2.840.10008.5.1.1.40 and the well-known instance UID 1.2.840.10008.5.1.1.40.1.
The instanceThe SCP creates the Display System SOP Instance when the display system starts. It abstracts the soft-copy display system.
What can be readManufacturer, model, serial number, institution, station and department names, and the number of display subsystems with an ID, name and description for each.
Which attributesThe SCU names the attributes it wants. It must not name an attribute inside a sequence; it asks for the sequence in full.
Also describedCalibration details such as the date of the last calibration, the measurement equipment, and ambient light values.

Support is optional and per product. Check the conformance statements of the viewer and of the display system before counting on it.

What the conformance statements must say

PS3.4 asks the creator and the displaying application of a hanging protocol to describe their behavior.

RoleWhat must be stated
Creating a protocol (SCU)How the values are derived from displayed images, layouts, operator action or defaults.
Creating a protocol (SCU)Any private attributes used as the Selector Attribute (0072,0026) in the Image Set Selector, Filter Operations or Sorting Operations Sequences.
Creating a protocol (SCU)The optional attributes it may include.
Displaying a protocol (SCP)The range of display environments it supports, such as the number and size of screens and overlapping image boxes.
Displaying a protocol (SCP)Which optional attributes of the hanging protocol it can interpret, and which not.
Displaying a protocol (SCP)What it does when Partial Data Display Handling (0072,0208) is ADAPT_LAYOUT or has zero length.
Displaying a protocol (SCP)What it does when its display environment differs from the one in the protocol: preserve the layout or the spatial resolution.
Displaying a protocol (SCP)The Image Storage SOP Classes for which it supports hanging protocols.

Why a study opens in the wrong layout

Each cause follows from the rules above.

SymptomLikely causeRule behind it
The viewer shows its default layoutNo stored hanging protocol matches: modality, body part, laterality, procedure code or number of priors differ from the study.The protocol is found by matching those keys.
A protocol made on one workstation looks wrong on anotherThe number or size of the screens differs from those of the protocol.The protocol carries the screen definition. The viewer states whether it keeps the layout or the resolution.
Layout correct, but images in the wrong orderThe viewer does not support the sorting or selection attributes that the protocol uses.The viewer states which optional attributes it supports.
The wrong user's protocol is usedSeveral matches exist, for example one per user, and the viewer picked another.The standard does not define how to choose between matching protocols.
A change to a protocol is not seenThe viewer cached the previous object.A modified object is a new object. Retrieve by its SOP Instance UID.
The protocol cannot be retrievedThe query returns it, but the C-MOVE destination is not known to the SCP, or the SOP Class is not accepted.C-MOVE needs a destination AE title. The SCP states the storage SOP Class it uses for the sub-operations.
Different results on a mixed-vendor setupThe vendors implement only the required attributes.Optional attributes are listed per product in the conformance statement.

Glossary

Hanging protocol
A stored description of how to arrange the images of a kind of study on the screens, and which image goes where.
Display environment
The monitors a protocol is meant for: how many, their size in pixels, and their bit depth.
Priors
Earlier studies of the same patient that are shown next to the current one for comparison.
Image set
A group of images selected by rules, which a protocol places in a box on the screen.
Display subsystem
The part of a workstation that drives the monitors, such as a graphics board with its screens.
Well-known UID
A fixed UID defined by the standard, here for the single Display System SOP Instance.
SOP Instance UID
The unique identifier of one stored object. It is the only key for retrieving a hanging protocol.

Summary

  • A hanging protocol is a stored DICOM object with SOP Class 1.2.840.10008.5.1.4.38.1, sent with C-STORE.
  • Viewers find protocols with C-FIND on .38.2, and retrieve them with C-MOVE (.38.3) or C-GET (.38.4) by SOP Instance UID only.
  • The matching keys include Modality, Anatomic Region, Laterality, Procedure Code, Number of Priors, the user and the Number of Screens.
  • The standard does not say how a viewer picks between several matching protocols.
  • The Display System SOP Class (1.2.840.10008.5.1.1.40) lets an application read the display setup with N-GET. Support is optional.
  • When a study opens in the wrong layout, compare the study with the protocol keys, and the monitors with the screen definition in the protocol.

Common questions

What is a DICOM hanging protocol?

A stored DICOM object that tells a viewer how to arrange and show the images of a kind of study: which series or images go in which box on which screen. The SOP Class is Hanging Protocol Storage, 1.2.840.10008.5.1.4.38.1.

How does a viewer find the right hanging protocol?

It sends a C-FIND on the Hanging Protocol Information Model - FIND SOP Class (1.2.840.10008.5.1.4.38.2) with the keys of the study, such as modality, anatomic region, laterality, procedure code and number of priors, and receives one response per matching protocol.

Is the hanging protocol part of the DICOM study?

No. It is a separate object, not an image of the study. It is stored and retrieved on its own, and it is found by the keys above, not by the Study Instance UID. It is a non-patient object.

How is a hanging protocol retrieved?

With C-MOVE (1.2.840.10008.5.1.4.38.3) or C-GET (1.2.840.10008.5.1.4.38.4) using its SOP Instance UID, or a list of UIDs. The Query/Retrieve Level must not be in the Identifier because the model has only one level.

Does the standard say which protocol to use when several match?

No. The standard defines how to find and apply a protocol, not how a viewer ranks several matches. This is a viewer feature.

What is the Display System SOP Class for?

It lets an application read the properties of the display subsystem with an N-GET: for example the manufacturer, model, the number of display subsystems and calibration details. This lets software match a layout to the monitors that are present. Support is product specific.

How is this different from a presentation state?

A hanging protocol arranges images on the screens. A presentation state describes how a particular image is shown: contrast, rotation, annotations and so on. They are used together.

Try it yourself

← All lessons