DICOM message schema
A message schema is used to describe the messages that are sent and received by the DICOM nodes.
Description
The DICOM nodes all use the same schema to describe the content of their DICOM XML messages.
The DICOMInput and DICOMOutput nodes use the same complex type definition
(DICOM). The DICOMFindMove node has a complex type that is called
FindMove (which defines the search parameters for the query) and a complex type
that is called Results (which defines the structure of the results message).
| Node | Complex type that is expected on input terminal | Complex type that is sent from output terminal |
|---|---|---|
| DICOMInput node | DICOM |
|
| DICOMOutput node | DICOM |
DICOM |
| DICOMFindMove node | FindMove |
Results |
The DICOM complex type is an ordered list of DICOM data elements. Each data element, which is known as an
Attribute, can either contain a single value (for example, the patient’s name), or
it can contain a repeating sequence of other Attribute elements inside an
Item element. Each DICOM
Attribute contains an element that is called Tag (which contains
the DICOM tag name), and an element called
VR (which specifies the DICOM data
type).
Source and Location. These attributes are used in DICOMInput and DICOMOutput nodes to link to data on the file system that is
not included in the DICOM XML messages (for example, pixel
data). The Location attribute is always present on the DICOM root element and points to the directory that contains
the image sent to the DICOMInput node. The
Source attribute is optionally present on Attribute and
Item elements and specifies a file name in the processing directory which contains
data not present in the DICOM XML message; for
example:<Attribute Tag="7FE00010" VR="OW" Source="7FE00010"/>The DICOMFindMove node uses the
FindMove schema type to represent the search parameters for a C-FIND command. The
node can return multiple search results. Each result is represented by a DICOM element (the same type definition that is used by the DICOMInput and DICOMOutput nodes). If the search parameters include a
MoveDestination element, each Results element also includes an
extra XML element called MoveResults. The MoveResults element
specifies whether the DICOM image was moved to the
destination successfully. This element also provides detailed error information (if available) in
the ErrorID and ErrorComment elements. Query messages can include
vendor-specific return tags in the Return element. If the relevant vendor support
is configured on the Service Class Provider (SCP), these tags are included in the response
messages.
Schema
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://com.ibm.healthcare/DICOM" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://com.ibm.healthcare/DICOM">
<xsd:element name="DICOM" type="DICOM"/>
<xsd:element name="Results" type="Results"/>
<xsd:element name="FindMove" type="FindMove"/>
<xsd:complexType name="Attribute" mixed="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the schema for DICOM data attributes.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Item" type="Item"/>
</xsd:sequence>
<xsd:attribute name="Tag" type="xsd:string"/>
<xsd:attribute name="VR" type="xsd:string" use="optional"/>
<xsd:attribute name="Source" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MoveResults">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the schema for DICOM C-MOVE results.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Completed" type="xsd:string"/>
<xsd:element name="Failed" type="xsd:string"/>
<xsd:element name="Warnings" type="xsd:string"/>
<xsd:element name="Status" type="xsd:string"/>
<xsd:element name="ErrorID" type="xsd:string"/>
<xsd:element name="ErrorComment" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Item">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the schema for DICOM sequences.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Attribute" type="Attribute"/>
</xsd:sequence>
<xsd:attribute name="Source" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="DICOM">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the schema for DICOM data objects.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Attribute" type="Attribute"/>
<xsd:element minOccurs="0" name="MoveResults" type="MoveResults"/>
</xsd:sequence>
<xsd:attribute name="Location" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="Results">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the schema for DICOM C-FIND result messages.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="DICOM" type="DICOM"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FindMove">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the schema for DICOM C-FIND query messages.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="QueryRoot" type="xsd:string"/>
<xsd:element minOccurs="0" name="QueryLevel" type="xsd:string"/>
<xsd:element minOccurs="0" name="MoveDestination" type="xsd:string"/>
<xsd:element minOccurs="0" name="OperationPriority" type="xsd:string"/>
<xsd:element name="Match">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Attribute" type="Attribute"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" name="Return">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Tag" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>