A Oracle DICOM Protocol Adapter XML Schemas

This appendix provides the XML schemas needed for the components in the Oracle DICOM protocol adapter.

A.1 ordim_adapter_config.xsd

The following schema is used when configuring the DICOM adapter.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="ordim_common.xsd"/>
  
  <xs:complexType name="dicom_ucm_metadata_pairing_t">
    <xs:attribute name="tag" type="dicom_tag_t" use="required"/>
    <xs:attribute name="field" type="ucm_field_t" use="required"/>
  </xs:complexType>
  
  <xs:complexType name="ucm_property_t">
    <xs:attribute name="name" type="ucm_field_t" use="required"/>
    <xs:attribute name="value" type="ucm_field_value_t" use="required"/>
  </xs:complexType>
  
  <xs:complexType name="dicom_ucm_metadata_map_t">
    <xs:sequence>
      <xs:element name="entry" type="dicom_ucm_metadata_pairing_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="dicom_tag_set_t">
    <xs:sequence>
      <xs:element name="tag" type="dicom_tag_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="ucm_properties_map_t">
    <xs:sequence>
      <xs:element name="property" type="ucm_property_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="ucm_config_t">
    <xs:sequence>
      <xs:element name="connection" type="ucm_connection_info_t"/>
      <xs:element name="properties" type="ucm_properties_map_t"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="dicom_config_t">
    <xs:sequence>
      <xs:element name="hosts" type="dicom_host_config_t"/>
      <xs:element name="wado" minOccurs="0">
        <xs:complexType>
          <xs:attribute name="baseURL" type="url_t" use="required"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="selectedTags" type="dicom_tag_set_t"/>
      <xs:element name="tagMap" type="dicom_ucm_metadata_map_t"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="ordim_adapter_config_t">
    <xs:sequence>
      <xs:element name="adapter" type="dicom_local_host_t"/>
      <xs:element name="UCM" type="ucm_config_t"/>
      <xs:element name="DICOM" type="dicom_config_t"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="ordim_ucm_adapter_config" type="ordim_adapter_config_t"/>
 
</xs:schema>

A.2 ordim_crawler_config.xsd

The following schema is used when configuring the DICOM Crawler.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="ordim_common.xsd"/>
  
  <xs:simpleType name="dicom_value_t">
    <xs:restriction base="string_t"/>
  </xs:simpleType>
  
  <xs:complexType name="dicom_tag_value_t">
    <xs:simpleContent>
      <xs:extension base="dicom_value_t">
        <xs:attribute name="tag" type="dicom_tag_t" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="dicom_dataset_t">
    <xs:sequence>
      <xs:element name="value" type="dicom_tag_value_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="named_dicom_dataset_t">
    <xs:complexContent>
      <xs:extension base="dicom_dataset_t">
        <xs:attribute name="name" type="nonempty_string_t" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:simpleType name="dicom_search_root_t">
    <xs:restriction base="string_t">
      <xs:enumeration value="patient"/>
      <xs:enumeration value="study"/>
      <xs:enumeration value="no_root"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="time_unit_t">
    <xs:restriction base="string_t">
      <xs:enumeration value="ms"/>
      <xs:enumeration value="s"/>
      <xs:enumeration value="h"/>
      <xs:enumeration value="m"/>
      <xs:enumeration value="d"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:complexType name="dicom_query_t">
    <xs:attribute name="searchRoot" type="dicom_search_root_t"/>
    <xs:attribute name="dataset" type="nonempty_string_t"/>
  </xs:complexType>
  
  <xs:complexType name="dicom_query_list_t">
    <xs:sequence>
      <xs:element name="query" type="dicom_query_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="crawler_period_t">
    <xs:attribute name="start" type="nonempty_string_t"/>
    <xs:attribute name="duration" type="integer_t" use="required"/>
    <xs:attribute name="timeUnit" type="time_unit_t"/>
  </xs:complexType>
  
  <xs:complexType name="crawler_job_t">
    <xs:sequence>
      <xs:element name="target" type="dicom_simple_host_t"/>
      <xs:element name="dest" type="dicom_simple_host_t"/>
      <xs:element name="period" type="crawler_period_t"/>
      <xs:element name="search" type="dicom_query_list_t"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="crawler_job_list_t">
    <xs:sequence>
      <xs:element name="job" type="crawler_job_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="dicom_dataset_set_t">
    <xs:sequence>
      <xs:element name="dataset" type="named_dicom_dataset_t" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="ordim_crawler_config_t">
    <xs:sequence>
      <xs:element name="crawler" type="dicom_local_client_t"/>
      <xs:element name="jobs" type="crawler_job_list_t"/>
      <xs:element name="hosts" type="dicom_host_config_t"/>
      <xs:element name="datasets" type="dicom_dataset_set_t"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="ordim_crawler_config" type="ordim_crawler_config_t"/>
 
</xs:schema>

A.3 ordim_wado_config.xsd

The following schema is used when configuring the DICOM WADO proxy.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="ordim_common.xsd"/>
  
  <xs:complexType name="ordim_wado_config_t">
    <xs:sequence>
      <xs:element name="wado" type="dicom_local_host_t"/>
      <xs:element name="hosts" type="dicom_host_config_t"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="ordim_wado_config" type="ordim_wado_config_t"/>
  
</xs:schema>