Um esquema de mensagem é usado para descrever as mensagens enviadas e recebidas pelos nós DICOM.
Todos os nós DICOM usam o mesmo esquema para descrever o conteúdo de suas mensagens XML DICOM.
Os nós DICOMInput e DICOMOutput usam a mesma definição de tipo complexo (DICOM). O nó DICOMFindMove tem um tipo complexo chamado FindMove (que define os parâmetros de procura da consulta) e um tipo complexo chamado Results (que define a estrutura da mensagem de resultados).
A tabela a seguir resume os tipos usados para receber e enviar mensagens.
Nó | Tipo usado para receber mensagens | Tipo usado para enviar mensagens |
---|---|---|
Nó DICOMInput | DICOM | |
Nó DICOMOutput | DICOM | DICOM |
Nó DICOMFindMove | FindMove | Results |
O tipo complexo DICOM é uma lista ordenada de elementos de dados DICOM. Cada elemento de dados, conhecido como um Atributo, pode conter um único valor (por exemplo, o nome do paciente) ou pode conter uma sequência de repetição de outros elementos de Atributo dentro de um elemento de Item. Cada Atributo DICOM contém um elemento chamado Tag (que contém o nome da tag DICOM) e um elemento chamado VR (que especifica o tipo de dados DICOM).
<Attribute Tag="7FE00010" VR="OW" Source="7FE00010"/>
O nó DICOMFindMove usa o tipo de esquema FindMove para representar os parâmetros de procura de um comando C-FIND. O nó pode retornar diversos resultados da procura. Cada resultado é representado por um elemento DICOM (a mesma definição de tipo que é usada pelos nós DICOMInput e DICOMOutput). Se os parâmetros de procura incluem um elemento MoveDestination, cada elemento Results também incluirá um elemento XML extra chamado MoveResults. O elemento MoveResults especifica se a imagem DICOM foi movida com êxito para o destino. Esse elemento também fornece informações de erro detalhadas (se disponíveis) nos elementos ErrorID e ErrorComment. As mensagens de consulta podem incluir tags de retorno específicas do fornecedor no elemento Return. Se o suporte do fornecedor relevante estiver configurado no Service Class Provider (SCP), essas tags serão incluídas nas mensagens de resposta.
<?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">Define o esquema para atributos de dados DICOM.</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">Define o esquema para resultados DICOM C-MOVE.</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">Define o esquema para sequências DICOM.</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">Define o esquema para objetos de dados DICOM.</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">Define o esquema para mensagens de resultado DICOM C-FIND.</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">Define o esquema para mensagens de consulta DICOM C-FIND.</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>