Mithilfe eines Nachrichtenschemas werden die von den DICOM-Knoten gesendeten und empfangenen Nachrichten beschrieben.
Die DICOM-Knoten verwenden alle dasselbe Schema, um den Inhalt ihrer DICOM-XML-Nachrichten zu beschreiben.
Die Knoten 'DICOMInput' und 'DICOMOutput' verwenden dieselbe Definition für den komplexen Typ (DICOM). Der DICOMFindMove-Knoten weist einen komplexen Typ namens FindMove auf (dieser definiert die Suchparameter für die Abfrage) sowie einen komplexen Typ namens Results (dieser definiert die Struktur der Ergebnisnachricht).
Die folgende Tabelle enthält eine Zusammenfassung der komplexen Typen, die im Eingabeterminal erwartet und vom Ausgabeterminal gesendet werden.
Knoten | Der beim Eingabeterminal erwartete komplexe Typ | Der vom Ausgabeterminal gesendete komplexe Typ |
---|---|---|
DICOMInput-Knoten | DICOM | |
DICOMOutput-Knoten | DICOM | DICOM |
DICOMFindMove-Knoten | FindMove | Results |
Der komplexe DICOM-Typ ist eine geordnete Liste mit DICOM-Datenelementen. Jedes Datenelement, das als Attribute bezeichnet wird, kann entweder einen Einzelwert (zum Beispiel den Namen eines Patienten) oder eine wiederholte Folge sonstiger Attribute-Elemente innerhalb eines Item-Elements enthalten. Jeder DICOM-Attribute-Wert enthält ein Element namens Tag (dieses enthält den DICOM-Tagnamen) sowie ein Element namens VR (dieses gibt den DICOM-Datentyp an).
<Attribute Tag="7FE00010" VR="OW" Source="7FE00010"/>
Der DICOMFindMove-Knoten verwendet den Schematyp FindMove für die Darstellung der Suchparameter bei einem C-FIND-Befehl. Der Knoten kann mehrere Suchergebnisse zurückgeben. Jedes Ergebnis wird durch ein DICOM-Element dargestellt (dieselbe Typdefinition, die auch von den DICOMInput- und DICOMOutput-Knoten verwendet wird). Wenn die Suchparameter ein MoveDestination-Element enthalten, enthält jedes Results-Element auch ein zusätzliches XML-Element namens MoveResults. Das MoveResults-Element gibt an, ob das DICOM-Bild erfolgreich an die Zieladresse verschoben wurde. Dieses Element stellt außerdem in den Elementen ErrorID und ErrorComment einen detaillierten Fehlertext zur Verfügung (falls vorhanden). Abfragenachrichten können herstellerspezifische Rückgabetags im Return-Element enthalten. Wenn die dazugehörige Herstellerunterstützung auf dem Serviceklassenbereitsteller (Service Class Provider, SCP) konfiguriert ist, werden diese Tags in die Antwortnachrichten eingeschlossen.
<?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>