Worklist querieskeys, matching and empty lists

A scanner asks the worklist server one question: what is scheduled for me? This page shows how that C-FIND is built, which keys must match, what comes back, and the rules that explain most of the cases where the list is empty or wrong.

How the request and responses work

The Basic Worklist Management Service Class uses only C-FIND, on a single query level. There is no Patient, Study, Series and Image hierarchy as in Query/Retrieve.

PartWhat it isRule
SOP Class1.2.840.10008.5.1.4.31, Modality Worklist Information Model - FINDChosen by the Abstract Syntax of the presentation context. It names the information model for the query.
Matching keysAttributes with a value, such as the Modality or a date rangeThe SCP returns only worklist items that match all keys given. An SCU may send any subset of the required matching keys.
Return keysAttributes sent with zero lengthThe SCP fills in the values it knows. Every matching key is also returned.
Scheduled Procedure Step Sequence(0040,0100)The attributes of the step are only retrieved through sequence matching, and the sequence holds a single item.
One matchOne Scheduled Procedure Step, with its Requested Procedure, request, visit and patientOne Pending response per step. A step appears in only one response. Patient and procedure data repeat across responses.
A query with no matching keysAn Identifier with only return keysThere are no matches: the SCP returns Success with no Identifier.
End of the listA response with status SuccessNo Identifier. When nothing matches, this is the only response.

The worklist only carries information to the modality. The Modality Worklist SOP Class does not send anything back to the information system; progress is reported with MPPS, which is a separate service.

The required matching keys

An SCP must support matching on every required key below. The matching type column says how the key may be matched.

KeyTagMatchingWhy it matters
Scheduled Station AE Title(0040,0001)Single value onlySelects the steps booked for this one device. A different AE title returns nothing.
Scheduled Procedure Step Start Date(0040,0002)Single value or rangeThe usual way to ask for today, or a window of days.
Scheduled Procedure Step Start Time(0040,0003)Single value or rangeNarrows the date to a time of day. See the range rules below.
Modality(0008,0060)Single value onlyThe kind of device, such as CT or MR. Must equal the value the order system booked.
Scheduled Performing Physician's Name(0040,0006)Single value or wild cardLimits the list to one physician.
Patient's Name(0010,0010)Single value or wild cardFinds one patient by name.
Patient ID(0010,0020)Single value onlyFinds one patient by identifier.

The standard also lists optional matching keys, for example the Scheduled Procedure Step Description, Accession Number and Requested Procedure ID. An SCP that does not support one ignores it for matching and treats it as a return key. The conformance statement says which it supports.

The IHE query combinations (RAD-5)

IHE narrows what a modality has to be able to ask. An Acquisition Modality supports at least one of two query types, and an Importer supports the patient-based query.

QueryKeys the SCU supportsTypical use
Patient based queryPatient's Name, Patient ID, Accession Number, Requested Procedure ID. All 15 combinations of one or more keys.The technologist scans the wristband or types the patient, and the list shows that patient's steps.
Broad queryScheduled Procedure Step Start Date, Modality, Scheduled Station AE Title. All 7 combinations of one or more keys.The modality shows everything scheduled for it today: Modality plus date, or its own AE title.

In IHE the SCP matches Accession Number and Requested Procedure ID with single value matching. IHE also recommends adding a wild card at the end of each component of a structured Patient Name when the user did not type one.

What comes back (return keys)

The Type column is the DICOM return key type: 1 must have a value, 2 must be present but may be empty, 1C and 2C are required under a condition, 3 is optional.

AttributeTagTypeRemark
Study Instance UID(0020,000D)1The UID the modality puts in the images. This is what ties the images to the order.
Accession Number(0008,0050)2IHE: a non-empty value must be returned when the SCU asked for it.
Requested Procedure ID(0040,1001)1Identifies the requested procedure that the step belongs to.
Scheduled Procedure Step ID(0040,0009)1Identifies the step itself.
Scheduled Procedure Step Description or Scheduled Protocol Code Sequence(0040,0007), (0040,0008)1CThe SCP must support one or both. Coded values say exactly what to do at the modality.
Requested Procedure Description or Code Sequence(0032,1060), (0032,1064)1CThe SCP must support one or both. The code sequence holds a single item.
Referenced Study Sequence(0008,1110)2IHE: one item per step, and its Referenced SOP Instance UID is the same value as the Study Instance UID.
Patient's Birth Date, Patient's Sex(0010,0030), (0010,0040)2Used to check the right patient is on the table.
Referring Physician's Name(0008,0090)2Copied into the image header.
Requested Procedure Priority(0040,1003)2Shows the urgency to the operator.
Admission ID, Current Patient Location(0038,0010), (0038,0300)2Visit information.
Scheduled Procedure Step Status(0040,0020)3Optional. A modality cannot count on receiving it.
Requested Contrast Agent, Pre-Medication(0032,1070), (0040,0012)2CPresent when contrast or pre-medication applies to the step.

Type 3 return keys are only returned if the SCP lists them in its conformance statement. For the sequence, IHE requires the SCP to accept three ways of asking: a zero-length sequence, a sequence with one empty item, or zero-length values for selected attributes inside the item.

How each type of matching works

Matching is defined in PS3.4 Annex C and applied key by key. The worklist model says which type each required key may use.

TypeRuleExample
Single valueThe value must be equal. Dates and times are compared by meaning, not as text.Modality = CT; the time 2230 matches 223000.
Wild card* matches any run of characters, including none. ? matches exactly one character. Only for names, strings and similar VRs.Patient's Name = DOE*. A single * is the same as universal matching.
RangeFor dates, times and date-times: a-b between both, -b up to and including, a- from and including. It is always matched by meaning.Start Date = 20260315-20260317.
UniversalA zero-length value. It matches everything and asks for the value back.Every return key.
SequenceThe sequence holds one item whose keys are matched. The Scheduled Procedure Step Sequence is retrieved this way.The item holds Modality, AE title and date.
List of UIDA backslash separated list of UIDs. Any one may match.Not a required worklist key.

A value with more than one item matches when any item matches, and then all values are returned. An item with an unknown value (zero length) never matches a value you supply, but it can still be returned by a universal query.

Dates, times and time zones

Date and time matching causes many of the "wrong list" cases, so these rules are worth knowing.

SituationWhat the standard says
Date range and time range togetherThe worklist model combines them into one period. A date range of July 5 to 7 with a time range of 10:00 to 18:00 means from July 5 at 10:00 until July 7 at 18:00, not 10:00 to 18:00 on each day. This differs from the general rule of Query/Retrieve, where the two are matched separately unless negotiated.
A time range on its own across midnightA time range that crosses midnight is not supported. To cover a night shift, send a date range together with a time range, which is matched as one period.
Single value of a date or timeMatched by meaning. If another application might not do that, use a range with both values the same, which is always matched by meaning.
Time zoneTimezone Offset From UTC (0008,0201) is only included when times are to be read in a stated time zone. It is never matched itself.
Character setSpecific Character Set (0008,0005) is included when extended character sets may be used. It is never matched, and the SCP may answer in a different set.
Person namesMatched literally unless fuzzy matching is negotiated. The conformance statement says whether the SCP matches names case-insensitively.

Status values of the C-FIND

The statuses a worklist SCP can return.

StatusCodeIdentifierMeaning
PendingFF00YesOne match follows. Optional keys were supported like required keys.
Pending, warningFF01YesOne match follows, but one or more optional keys were not supported.
Success0000NoMatching is complete. When there were no matches this is the only response.
CancelFE00NoMatching stopped because the SCU sent C-CANCEL-FIND. The SCU may still receive responses until the SCP has processed the cancel.
Refused: out of resourcesA700NoThe SCP could not take the query now.
Error: data set does not match SOP classA900NoThe Identifier does not fit the Modality Worklist model.
Failed: unable to processCxxxNoAny code in this range. The SCP may use the digits to tell causes apart.

Why the worklist is empty or wrong

Each cause follows from a rule above. The first thing to check is what the modality actually sent in the query.

SymptomLikely causeRule behind it
Empty list, the exam is bookedThe Scheduled Station AE Title in the order differs from the AE title of the scanner (spelling, case or a different device).AE title matches with single value matching only.
Empty list for one device typeThe Modality code in the order differs from the one the scanner asks for, for example DX against CR.Modality matches with single value matching only.
Yesterday's or tomorrow's exams missingThe query date is today only, or the order is booked on another date.The start date is matched by date or range.
Night shift exams missingA time range alone was used for a shift that crosses midnight.A time range on its own cannot cross midnight. A date range plus a time range is matched as one period.
Patient not found by nameThe name was sent without a wild card, with other case, or in a different component order.Names match literally unless fuzzy matching or case-insensitive matching is supported.
Entry exists but never matches a keyThe worklist item has an empty value for the key you query on.An unknown (zero-length) value fails to match any supplied value.
A filter on the scanner has no effectThe key you sent is an optional key that the server does not support. It is ignored for matching.Unsupported optional keys are treated as return keys; the server may answer FF01.
Right entries but garbled namesCharacter set mismatch between scanner and server.The SCP may answer in a different Specific Character Set than requested.
Nothing arrives at allThe order never became a Scheduled Procedure Step in the worklist server, or the association was refused.The worklist is built from the order. See the HL7 mapping lesson. A refused association shows in the A-ASSOCIATE-RJ.
Scanner shows no accession numberThe server returned the key empty or the scanner did not request it.Accession Number is a return key of type 2. IHE requires a value when it is requested.

Glossary

SCU / SCP
Service Class User and Provider. For a worklist the scanner is the SCU that asks, and the worklist server is the SCP that answers.
Scheduled Procedure Step
One unit of work for a device, such as a CT scan booked for a time. It is the entry point of the Modality Worklist.
Requested Procedure
The procedure ordered for the patient. One requested procedure can be split into several scheduled steps.
Matching key
An attribute with a value in the request. Only items that match all keys are returned.
Return key
An attribute sent with zero length to ask for its value.
Universal matching
A zero-length value. It matches everything and is how return keys are requested.
Scheduled Station AE Title
The AE title of the device the step is booked on. It links an order to one scanner.
MPPS
Modality Performed Procedure Step. The service the scanner uses to report progress back, which a worklist cannot do.

Summary

  • A worklist query is a C-FIND on 1.2.840.10008.5.1.4.31, with a single query level and one Scheduled Procedure Step per response.
  • The required matching keys are the Scheduled Station AE Title, start date and time, Modality, the performing physician, Patient's Name and Patient ID.
  • The AE title, Modality and Patient ID are matched with single value matching only, so they must be exact.
  • Dates take single value or range matching. A date range and a time range together form one period, and a time range alone cannot cross midnight.
  • Pending (FF00 or FF01) responses carry one match each. The final 0000 has no Identifier, and with no matches it is the only response.
  • IHE requires modalities to support a patient based query and a broad query, and requires a non-empty Accession Number when it is requested.
  • When a list is empty, compare the query with the order: AE title, Modality and date first.

Common questions

Why is my modality worklist empty?

Most often one of the exact-match keys differs between the query and the order: the Scheduled Station AE Title, the Modality, or the start date. Capture the C-FIND the scanner sends and compare these values with the order in the worklist server. The table "Why the worklist is empty or wrong" lists the other common causes.

What is the SOP Class UID of the Modality Worklist?

1.2.840.10008.5.1.4.31, named Modality Worklist Information Model - FIND. A scanner that offers it as an abstract syntax in the association request is asking to act as the SCU.

Does the worklist server need to know the AE title of the scanner?

It needs it when the query uses the Scheduled Station AE Title as a key, which is common because it is one of the IHE broad query keys. The title in the order must equal the title in the query, because that key only allows single value matching.

Why does the worklist return one response per step and not per patient?

The model is organized around the Scheduled Procedure Step. A patient with three steps gets three responses, with the patient data repeated in each.

What does status FF01 mean?

It is a Pending response with a warning: the SCP did not support one or more optional keys in the query for this match. The data is still a real match on the required keys.

Can the scanner send information back through the worklist?

No. The Modality Worklist SOP Class carries information to the modality only. The scanner reports that it has started or completed the exam with MPPS, and sends the images with C-STORE.

What does the scanner put in the images from the worklist?

The patient data, the Accession Number, the Requested Procedure ID and the Study Instance UID it received are copied into the image header. The Study Instance UID is the value that ties the images to the order, so it must come from the worklist and not be made up by the scanner.

Try it yourself

← All lessons