MINI MINI MANI MO
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
NAME
ordcmdts.xsd - XML schema for DICOM standard data types
MODIFIED (MM/DD/YY)
llmartin 10/15/14 - 18735854: XML Schema Annotations
rabbott 12/01/09 - increase maxLength facet of PN/VALUE
fechen 01/23/09 - remove the patten in the locatorpath
dolin 10/17/08 - allow [*] for locator path
fechen 09/23/08 - sync the schema change in ordcmmddt.xsd
dolin 06/06/07 - doc editor comments
myalavar 04/10/07 - doc comments
myalavar 04/09/07 - add major_minor version
dguo 08/01/06 - Beta release 1
dguo 04/03/05 - Created
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>
Introduction
This schema defines the DICOM standard data types that are used
by all other DICOM XML schema definitions.
Naming conventions:
All DICOM value representation (VR) types are named with a
2-character string, such as "AE" and "CS".
All DICOM attribute type definitions are named as VR_ATTR_T,
where VR is replaced by the attribute's 2-character VR.
Note that each item of a sequence type (SQ) is of DATASET_T type.
The DATASET_T type can recursively contain more attributes.
The element name of an attribute is its value representation (VR)
name. Oracle uses value representation names defined
by the DICOM standard part 5. The element
name to VR mappings are:
APPLICATION_ENTITY --- AE
AGE_STRING --- AS
ATTRIBUTE_TAG --- AT
CODE_STRING --- CS
DATE --- DA
DECIMAL_STRING --- DS
FLOAT_SINGLE --- FL
FLOAT_DOUBLE --- FD
INTEGER_STRING --- IS
LONG_STRING --- LO
LONG_TEXT --- LT
OTHER_BYTE --- OB
OTHER_FLOAT --- OF
OTHER_WORD --- OW
OTHER_WORD --- OWB
PERSON_NAME --- PN
SHORT_STRING --- SH
SIGNED_LONG --- SL
SEQUENCE --- SQ
SIGNED_SHORT --- SS
SHORT_TEXT --- ST
TIME --- TM
UNIQUE_ID --- UI
UNSIGNED_LONG --- UL
UNKNOWN --- UN
UNSIGNED_SHORT --- US
SIGNED_SHORT --- USS
UNLIMITED_TEXT --- UT
EXTENDED_TYPE --- EXT
EXCEPTION_TYPE --- EXP
The VR types "OWB", "EXT", "EXP" and "USS" are
Oracle-defined extensions.
Please refer to the individual data type documentation for
more explanation.
</xs:documentation>
</xs:annotation>
<xs:simpleType name="AE">
<xs:annotation>
<xs:documentation>DICOM Value representation Application Entity</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:maxLength value="16"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AS" xdb:SQLType="AS_ORD_DCM_T">
<xs:annotation>
<xs:documentation>DICOM Value representation Age String.
The age string can be expressed either in DICOM string
format, or in number of days. When metadata is extracted
from a DICOM object, both elements will be populated.
XML documents can represent age by either format.
Age in number of days is converted into an age string when
XML metadata is encoded into a DICOM object.
To convert from age string into the number of days:
365 * number_of_year or 31 * number_of_month.
Because AGE_STRING is mandatory, it is not necessary to
convert from the number of days into an age string.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="VALUE" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="[0-9]{3}(D|W|M|Y)"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AGE_IN_DAYS" type="xs:unsignedInt" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AT">
<xs:annotation>
<xs:documentation>
DICOM VR type Attribute Tag. An attribute tag is expressed as two
big-endian 2-byte hexadecimal number (group number followed by
element number with no separator).
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:minLength value="4"/>
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CS">
<xs:annotation>
<xs:documentation>DICOM VR type Code String</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:maxLength value="16"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DA">
<xs:annotation>
<xs:documentation>DICOM VR type DAte</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date"/>
</xs:simpleType>
<xs:simpleType name="DS">
<xs:annotation>
<xs:documentation>DICOM VR type Decimal String</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:float"/>
</xs:simpleType>
<xs:simpleType name="DT">
<xs:annotation>
<xs:documentation>DICOM VR type Data Time</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime"/>
</xs:simpleType>
<xs:simpleType name="FL">
<xs:annotation>
<xs:documentation>DICOM VR type FLoating-point single</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:float"/>
</xs:simpleType>
<xs:simpleType name="FD">
<xs:annotation>
<xs:documentation>DICOM VR type Floating-point Double</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IS">
<xs:annotation>
<xs:documentation>DICOM VR type Integer String</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:simpleType name="LO">
<xs:annotation>
<xs:documentation>DICOM VR type LOng string</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="64"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LT">
<xs:annotation>
<xs:documentation>DICOM VR type Long Text</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="10240"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OB">
<xs:annotation>
<xs:documentation>DICOM VR type Other Byte</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:base64Binary"/>
</xs:simpleType>
<xs:simpleType name="OF">
<xs:annotation>
<xs:documentation> VR type Other Float </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:float"/>
</xs:simpleType>
<xs:complexType name="OW" xdb:SQLType="OW_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
DICOM VR type Other Word in base64binary encoding.
The mandatory attribute endian specifies the byte
order of the binary value.
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="endian" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="big"/>
<xs:enumeration value="little"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PN" xdb:SQLType="PN_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
DICOM VR type Person Name. Person Name can be
expressed either in component format or as a single
concatentated string. When metadata is extracted from a
DICOM object, the person name type is encoded with
both formats. Users can index and search DICOM
metadata with either the component format or the
concatenated string format.
In component format, a name has an optional "type" attribute that
indicates its encoding type. The value of the "type" attribute
can be "unibyte", "ideographic" or "phonetic". A name may
have up to five components: "FAMILY", "GIVEN", "MIDDLE",
"PREFIX", and "SUFFIX".
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="NAME" minOccurs="0" maxOccurs="3" nillable="true" xdb:SQLType="NAME_ORD_DCM_T" xdb:SQLCollType="NAME_ORD_DCM_C">
<xs:complexType>
<xs:sequence>
<xs:element name="FAMILY" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="GIVEN" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="MIDDLE" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="PREFIX" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="SUFFIX" type="xs:string" minOccurs="0" nillable="true"/>
</xs:sequence>
<xs:attribute name="type" default="unibyte">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="unibyte"/>
<xs:enumeration value="ideographic"/>
<xs:enumeration value="phonetic"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="VALUE" minOccurs="0" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:maxLength value="192"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SH">
<xs:annotation>
<xs:documentation>DICOM VR type SHort string</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="16"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SL">
<xs:annotation>
<xs:documentation>DICOM VR type Signed Long</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:complexType name="SQ" xdb:SQLType="SQ_ORD_DCM_T">
<xs:annotation>
<xs:documentation>DICOM VR type SeQuence.
Note that item number can be explicitly encoded in XML.
Number counts from 1 up.
Each item is a DATASET_T type, which may contain
any combination of DICOM attributes.
</xs:documentation>
</xs:annotation>
<xs:sequence maxOccurs="unbounded">
<xs:element name="ITEM" type="DATASET_T" minOccurs="0" nillable="true" xdb:SQLType="DATASET_ORD_DCM_T" xdb:SQLCollType="ITEM_ORD_DCM_C"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SS">
<xs:annotation>
<xs:documentation>DICOM VR type Signed Short</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:simpleType name="ST">
<xs:annotation>
<xs:documentation>DICOM VR type Short Text</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="1024"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TM">
<xs:annotation>
<xs:documentation>DICOM VR type TiMe</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:time"/>
</xs:simpleType>
<xs:simpleType name="UI">
<xs:annotation>
<xs:documentation>DICOM VR type Unique Identifier</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:maxLength value="128"/>
<xs:pattern value="[0-9\.]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UL">
<xs:annotation>
<xs:documentation>DICOM VR type Unsigned Long</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedInt"/>
</xs:simpleType>
<xs:complexType name="UN" xdb:SQLType="UN_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
DICOM VR type UNknown.
This type contains a base64 dump of its binary content. The mandatory
attribute "endian" specifies the byte order of this encoding.
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="endian" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="big"/>
<xs:enumeration value="little"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="US">
<xs:annotation>
<xs:documentation>DICOM VR type Unsigned Short</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
<xs:simpleType name="UT">
<xs:annotation>
<xs:documentation>DICOM VR type Unlimited Text</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType name="EXT" xdb:SQLType="EXT_ORD_DCM_T">
<xs:annotation>
<xs:documentation>DICOM Extension type
This type does not have direct mapping to any value
representation (VR) types defined in Part 5 of the
DICOM standard.
It can accommodate future extensions to DICOM VR
types without modification to the XML schema definitions.
The VR element specifies the value representation.
The VALUE element specifies the XML value for the
corresponding data element. The exact XML schema
definition can be introduced in the future.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="VR" type="xs:token"/>
<xs:element name="VALUE" type="xs:anyType" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="EXP">
<xs:annotation>
<xs:documentation>DICOM Exception type.
This type does not have direct mapping to any value
representation (VR) types defined in Part 5 of the
DICOM standard.
It indicates an error situation. It is equivalent to
an exception in the Java language.
The value of this data type is the original byte
array of the data type in the DICOM object.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:base64Binary"/>
</xs:simpleType>
<xs:complexType name="DATASET_T" xdb:SQLType="DATASET_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
The dataset type maps the DICOM concept dataset
into an XML schema type(See the DICOM standard P3-5) .
A dataset may contain any number of DICOM attributes.
Each type of attribute has a name that reflects
the DICOM value representation of the attribute.
Each attribute is strongly typed, and its type matches its DICOM
VR. Note that DICOM attribute type SQ (sequence) may
recursively contain items that are also of the dataset type.
</xs:documentation>
</xs:annotation>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="APPLICATION_ENTITY" type="AE_ATTR_T" nillable="true" xdb:SQLType="AE_ATTR_ORD_DCM_T" xdb:SQLCollType="APPLICATION_ENTITY_ORD_DCM_C"/>
<xs:element name="AGE_STRING" type="AS_ATTR_T" nillable="true" xdb:SQLType="AS_ATTR_ORD_DCM_T" xdb:SQLCollType="AGE_STRING_ORD_DCM_C"/>
<xs:element name="ATTRIBUTE_TAG" type="AT_ATTR_T" nillable="true" xdb:SQLType="AT_ATTR_ORD_DCM_T" xdb:SQLCollType="ATTRIBUTE_TAG_ORD_DCM_C"/>
<xs:element name="CODE_STRING" type="CS_ATTR_T" nillable="true" xdb:SQLType="CS_ATTR_ORD_DCM_T" xdb:SQLCollType="CODE_STRING_ORD_DCM_C"/>
<xs:element name="DATE" type="DA_ATTR_T" nillable="true" xdb:SQLType="DA_ATTR_ORD_DCM_T" xdb:SQLName="DATE_DATASET_ORD_DICOM" xdb:SQLCollType="DATE_ORD_DCM_C"/>
<xs:element name="DATE_TIME" type="DT_ATTR_T" nillable="true" xdb:SQLType="DT_ATTR_ORD_DCM_T" xdb:SQLCollType="DATE_TIME_ORD_DCM_C"/>
<xs:element name="DECIMAL_STRING" type="DS_ATTR_T" nillable="true" xdb:SQLType="DS_ATTR_ORD_DCM_T" xdb:SQLCollType="DECIMAL_STRING_ORD_DCM_C"/>
<xs:element name="FLOAT_SINGLE" type="FL_ATTR_T" nillable="true" xdb:SQLType="FL_ATTR_ORD_DCM_T" xdb:SQLCollType="FLOAT_SINGLE_ORD_DCM_C"/>
<xs:element name="FLOAT_DOUBLE" type="FD_ATTR_T" nillable="true" xdb:SQLType="FD_ATTR_ORD_DCM_T" xdb:SQLCollType="FLOAT_DOUBLE_STRING_ORD_DCM_C"/>
<xs:element name="INTEGER_STRING" type="IS_ATTR_T" nillable="true" xdb:SQLType="IS_ATTR_ORD_DCM_T" xdb:SQLCollType="INTEGER_STRING_ORD_DCM_C"/>
<xs:element name="LONG_STRING" type="LO_ATTR_T" nillable="true" xdb:SQLType="LO_ATTR_ORD_DCM_T" xdb:SQLCollType="LONG_STRING_ORD_DCM_C"/>
<xs:element name="LONG_TEXT" type="LT_ATTR_T" nillable="true" xdb:SQLType="LT_ATTR_ORD_DCM_T" xdb:SQLCollType="LONG_TEXT_ORD_DCM_C"/>
<xs:element name="OTHER_BYTE" type="OB_ATTR_T" nillable="true" xdb:SQLType="OB_ATTR_ORD_DCM_T" xdb:SQLCollType="OTHER_BYTE_ORD_DCM_C"/>
<xs:element name="OTHER_FLOAT" type="OF_ATTR_T" nillable="true" xdb:SQLType="OF_ATTR_ORD_DCM_T" xdb:SQLCollType="OTHER_FLOAT_ORD_DCM_C"/>
<xs:element name="OTHER_WORD" type="OW_ATTR_T" nillable="true" xdb:SQLType="OW_ATTR_ORD_DCM_T" xdb:SQLCollType="OTHER_WORD_ORD_DCM_C"/>
<xs:element name="PERSON_NAME" type="PN_ATTR_T" nillable="true" xdb:SQLType="PN_ATTR_ORD_DCM_T" xdb:SQLCollType="PERSON_NAME_ORD_DCM_C"/>
<xs:element name="SHORT_STRING" type="SH_ATTR_T" nillable="true" xdb:SQLType="SH_ATTR_ORD_DCM_T" xdb:SQLCollType="SHORT_STRING_ORD_DCM_C"/>
<xs:element name="SIGNED_LONG" type="SL_ATTR_T" nillable="true" xdb:SQLType="SL_ATTR_ORD_DCM_T" xdb:SQLCollType="SIGNED_LONG_ORD_DCM_C"/>
<xs:element name="SEQUENCE" type="SQ_ATTR_T" nillable="true" xdb:SQLType="CLOB" xdb:SQLName="SEQUENCE"/>
<xs:element name="SIGNED_SHORT" type="SS_ATTR_T" nillable="true" xdb:SQLType="SS_ATTR_ORD_DCM_T" xdb:SQLCollType="SIGNED_SHORT_ORD_DCM_C"/>
<xs:element name="SHORT_TEXT" type="ST_ATTR_T" nillable="true" xdb:SQLType="ST_ATTR_ORD_DCM_T" xdb:SQLCollType="SHORT_TEXT_ORD_DCM_C"/>
<xs:element name="TIME" type="TM_ATTR_T" nillable="true" xdb:SQLType="TM_ATTR_ORD_DCM_T" xdb:SQLCollType="TIME_ORD_DCM_C"/>
<xs:element name="UNIQUE_ID" type="UI_ATTR_T" nillable="true" xdb:SQLType="UI_ATTR_ORD_DCM_T" xdb:SQLCollType="UNIQUE_ID_ORD_DCM_C"/>
<xs:element name="UNSIGNED_LONG" type="UL_ATTR_T" nillable="true" xdb:SQLType="UL_ATTR_ORD_DCM_T" xdb:SQLCollType="UNSIGNED_LONG_ORD_DCM_C"/>
<xs:element name="UNKNOWN" type="UN_ATTR_T" nillable="true" xdb:SQLType="UN_ATTR_ORD_DCM_T" xdb:SQLCollType="UNKNOWN_ORD_DCM_C"/>
<xs:element name="UNSIGNED_SHORT" type="US_ATTR_T" nillable="true" xdb:SQLType="US_ATTR_ORD_DCM_T" xdb:SQLCollType="UNSIGNED_SHORT_ORD_DCM_C"/>
<xs:element name="UNLIMITED_TEXT" type="UT_ATTR_T" nillable="true" xdb:SQLType="UT_ATTR_ORD_DCM_T" xdb:SQLCollType="UNLIMITED_TEXT_ORD_DCM_C"/>
<xs:element name="EXTENDED_TYPE" type="EXT_ATTR_T" nillable="true" xdb:SQLType="EXT_ATTR_ORD_DCM_T" xdb:SQLCollType="EXTENDED_TYPE_ORD_DCM_C"/>
<xs:element name="EXCEPTION_TYPE" type="EXP_ATTR_T" nillable="true" xdb:SQLType="EXP_ATTR_ORD_DCM_T" xdb:SQLCollType="EXCEPTION_TYPE_ORD_DCM_C"/>
</xs:choice>
<xs:attribute name="number" type="xs:long" use="optional" default="1"/>
</xs:complexType>
<xs:complexType name="ATTR_VALUE_T" xdb:SQLType="ATTR_VALUE_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
Attribute value type (ATTR_VALUE_T) maps to a single DICOM
attribute value. Each type of attribute has a name that reflects
the DICOM value representation of the attribute.
Each attribute is strongly typed, and its type matches its DICOM
VR. Certain DICOM configuration files, such as constraint
documents, use ATTR_VALUE_T.
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="APPLICATION_ENTITY" type="AE"/>
<xs:element name="AGE_STRING" type="AS" xdb:SQLType="AS_ORD_DCM_T"/>
<xs:element name="ATTRIBUTE_TAG" type="AT"/>
<xs:element name="CODE_STRING" type="CS"/>
<xs:element name="DATE" type="DA" xdb:SQLName="DATE_ORD_DCM"/>
<xs:element name="DATE_TIME" type="DT"/>
<xs:element name="DECIMAL_STRING" type="DS"/>
<xs:element name="FLOAT_SINGLE" type="FL"/>
<xs:element name="FLOAT_DOUBLE" type="FD"/>
<xs:element name="INTEGER_STRING" type="IS"/>
<xs:element name="LONG_STRING" type="LO"/>
<xs:element name="LONG_TEXT" type="LT"/>
<xs:element name="OTHER_BYTE" type="OB"/>
<xs:element name="OTHER_FLOAT" type="OF"/>
<xs:element name="OTHER_WORD" type="OW" xdb:SQLType="OW_ORD_DCM_T"/>
<xs:element name="PERSON_NAME" type="PN" xdb:SQLType="PN_ORD_DCM_T"/>
<xs:element name="SHORT_STRING" type="SH"/>
<xs:element name="SIGNED_LONG" type="SL"/>
<xs:element name="SEQUENCE" type="SQ" xdb:SQLType="SQ_ORD_DCM_T"/>
<xs:element name="SIGNED_SHORT" type="SS"/>
<xs:element name="SHORT_TEXT" type="ST"/>
<xs:element name="TIME" type="TM"/>
<xs:element name="UNIQUE_ID" type="UI"/>
<xs:element name="UNSIGNED_LONG" type="UL"/>
<xs:element name="UNKNOWN" type="UN" xdb:SQLType="UN_ORD_DCM_T"/>
<xs:element name="UNSIGNED_SHORT" type="US"/>
<xs:element name="UNLIMITED_TEXT" type="UT"/>
<xs:element name="EXTENDED_TYPE" type="EXT" xdb:SQLType="EXT_ORD_DCM_T"/>
<xs:element name="EXCEPTION_TYPE" type="EXP"/>
</xs:choice>
</xs:complexType>
<xs:attributeGroup name="ATTR_GRP_T">
<xs:annotation>
<xs:documentation>
Attribute group type (ATTR_GRP_T) is used by all DICOM attribute
definitions. It defines XML attributes that are used by all DICOM
attribute types.
The "tag" attribute defines DICOM attributes in little-endian encoding.
The "definer" attribute specifies the organization that has
created the attribute. By default, all DICOM standard
attributes have the definer name "DICOM".
The "name" attribute specifies the canonical attribute name
as defined by the data dictionary. For example, in
an XML metadata schema definition, you can choose a tag
PATIENT_DATE_OF_BIRTH or "DOB" for DICOM attribute
(0010,0030), but its name attribute should match that of the
DICOM standard: "Patient's Birth Date".
The "number" attribute is an optional attribute to indicate the
ordering of a multivalued attributes. Number counts from 1 up.
The "truncated" attribute takes a Boolean value. If it is true,
it indicates that the original length of the DICOM attribute
exceeds the maximum length allowed for this XML value;therefore,
it is truncated in XML. When this attribute is true,
xsi:nill="true" for this attribute.
Optionally, the "rawValue" attribute can be used to store
values that do not conform to the DICOM standard. The
associated attribute "byteOrderLE" specifies the byte order
of the byte stream for the "rawValue" attribute.
"offset" and "length" are Oracle-reserved attributes.
</xs:documentation>
</xs:annotation>
<xs:attribute name="tag" type="AT" use="required"/>
<xs:attribute name="definer" type="LO" default="DICOM"/>
<xs:attribute name="name" type="SHORT_STRING_T"/>
<xs:attribute name="number" type="xs:long" use="optional" default="1"/>
<xs:attribute name="offset" type="xs:long"/>
<xs:attribute name="length" type="xs:long"/>
<xs:attribute name="truncated" type="xs:boolean" default="false"/>
<xs:attribute name="rawValue" type="xs:base64Binary"/>
<xs:attribute name="byteOrderLE" type="xs:boolean" default="true"/>
</xs:attributeGroup>
<xs:complexType name="AE_ATTR_T" xdb:SQLType="AE_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="AE">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="AS_ATTR_T" xdb:SQLType="AS_ATTR_ORD_DCM_T">
<xs:complexContent>
<xs:extension base="AS">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AT_ATTR_T" xdb:SQLType="AT_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="AT">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CS_ATTR_T" xdb:SQLType="CS_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="CS">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DA_ATTR_T" xdb:SQLType="DA_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="DA">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DS_ATTR_T" xdb:SQLType="DS_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="DS">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DT_ATTR_T" xdb:SQLType="DT_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="DT">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FD_ATTR_T" xdb:SQLType="FD_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="FD">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FL_ATTR_T" xdb:SQLType="FL_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="FL">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="IS_ATTR_T" xdb:SQLType="IS_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="IS">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LO_ATTR_T" xdb:SQLType="LO_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="LO">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LT_ATTR_T" xdb:SQLType="LT_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="LT">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="OB_ATTR_T" xdb:SQLType="OB_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="OB">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="OF_ATTR_T" xdb:SQLType="OF_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="OF">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="OW_ATTR_T" xdb:SQLType="OW_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="OW">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PN_ATTR_T" xdb:SQLType="PN_ATTR_ORD_DCM_T">
<xs:complexContent>
<xs:extension base="PN">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SH_ATTR_T" xdb:SQLType="SH_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="SH">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="SL_ATTR_T" xdb:SQLType="SL_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="SL">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="SQ_ATTR_T" xdb:SQLType="SQ_ATTR_ORD_DCM_T">
<xs:complexContent>
<xs:extension base="SQ">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SS_ATTR_T" xdb:SQLType="SS_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="SS">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ST_ATTR_T" xdb:SQLType="ST_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="ST">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="TM_ATTR_T" xdb:SQLType="TM_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="TM">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="UI_ATTR_T" xdb:SQLType="UI_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="UI">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="UL_ATTR_T" xdb:SQLType="UL_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="UL">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="UN_ATTR_T" xdb:SQLType="UN_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="UN">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="US_ATTR_T" xdb:SQLType="US_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="US">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="UT_ATTR_T" xdb:SQLType="UT_ATTR_ORD_DCM_T">
<xs:simpleContent>
<xs:extension base="UT">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="EXT_ATTR_T" xdb:SQLType="EXT_ATTR_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
This attribute is useful for representing attributes whose
VR types are not supported natively by Oracle.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="EXT">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EXP_ATTR_T" xdb:SQLType="EXP_ATTR_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
This attribute type is useful for representing attributes that
are present in a DICOM object, but whose definition cannot
be found in the data dictionary. Such
attributes cannot be parsed or interpreted.
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="EXP">
<xs:attributeGroup ref="ATTR_GRP_T"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DOCUMENT_HEADER_T" xdb:SQLType="DOCUMENT_HEADER_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
Each time the XML configuration document is modified,
a new element, DOCUMENT_CHANGE_LOG, is
added to the DOCUMENT_HEADER.
The change log describes who made what type of change to the
XML document on which date. It also describes what DICOM
standard document the modification is based upon, either
a DICOM change proposal (CP) or a DICOM supplement.
DOCUMENT_MODIFIER identifies the modifier of the present
XML document. If it is generated by software, specify the name
and version of the software.
DOCUMENT_MODIFICATION_DATE specifies the date when
this XML document is modified.
DOCUMENT_VERSION specifies the version of the document after
the modification.
MODIFICATION_COMMENT briefly describes the modification.
BASE_DOCUMENT describes the document or DICOM standard
that the modification is based upon.
BASE_DOCUMENT_RELEASE_DATE specifies the release date of
the base document.
BASE_DOCUMENT_DESCRIPTION briefly describes the base
document.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="DOCUMENT_CHANGE_LOG" maxOccurs="unbounded" xdb:SQLType="DOCUMENT_CHANGE_LOG_ORD_DCM_T" xdb:SQLCollType="DOCUMENT_HEADER_ORD_DCM_C">
<xs:complexType>
<xs:sequence>
<xs:element name="DOCUMENT_MODIFIER" type="SHORT_STRING_T"/>
<xs:element name="DOCUMENT_MODIFICATION_DATE" type="SHORT_STRING_T"/>
<xs:element name="DOCUMENT_VERSION" type="SHORT_STRING_T" minOccurs="0"/>
<xs:element name="MODIFICATION_COMMENT" type="SHORT_TEXT_T" minOccurs="0"/>
<xs:element name="BASE_DOCUMENT" type="SHORT_STRING_T" minOccurs="0"/>
<xs:element name="BASE_DOCUMENT_RELEASE_DATE" type="xs:date" minOccurs="0"/>
<xs:element name="BASE_DOCUMENT_DESCRIPTION" type="SHORT_TEXT_T" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ATTR_DEFINERS_T" xdb:SQLType="ATTR_DEFINERS_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
Attribute definer is identified by its name and UID.
In Oracle's implementation, the DICOM standard is given the
definer name "DICOM" and the UID "1.2.840.10008.1".
All DICOM standard attributes are given the definer name "DICOM".
Users can introduce private attributes of their own and encode them
in an XML document. These private attributes are identified
with the definer's name and UID. Oracle recommends that all DICOM
private attributes be associated with a UID-qualified name.
</xs:documentation>
</xs:annotation>
<xs:sequence maxOccurs="unbounded">
<xs:element name="ATTR_DEFINER" xdb:SQLType="ATTR_DEFINER_ORD_DCM_T" xdb:SQLCollType="ATTR_DEFINER_ORD_DCM_C">
<xs:complexType>
<xs:sequence>
<xs:element name="NAME" type="LO" maxOccurs="unbounded" xdb:SQLCollType="ATTR_NAME_ORD_DCM_C"/>
<xs:element name="UID" type="UI" minOccurs="0" xdb:SQLName="ATTR_UID_ORD_DCM"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Attribute Tag (allowing x wildcard)-->
<xs:simpleType name="ATTR_TAG_T">
<xs:annotation>
<xs:documentation>
The attribute tag type differs from DICOM VR
type AT in that it allows the wildcard character 'x'.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="([0-9a-fA-FxX]{8})"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ATTR_RANGE_T" xdb:SQLType="ATTR_RANCE_T_ORD_DCM_T">
<xs:annotation>
<xs:documentation>
The attribute range type defines a range of DICOM attributes.
This data type is used in private attribute definitions.
Certain private attributes accept a range of attribute tags.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="STARTING_TAG" type="ATTR_TAG_T"/>
<xs:element name="ENDING_TAG" type="ATTR_TAG_T"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="VALUE_LOCATOR_T">
<xs:annotation>
<xs:documentation>
The DICOM value locator type identifies a particular
DICOM attribute by "xxxxxxxx(definer)", where
"xxxxxxxx" is the attribute tag and "definer" is the
attribute definer, which can be the DICOM standard
(DICOM) or other private sources.
A locator path can also identify a particular
descendent of a container type attribute (SQ).
The n-th item of a sequence attribute is denoted by
"xxxxxxxxx(definer)[n]".
By default, the definer suffix "(definer)" can be
omitted if the attribute is a DICOM standard tag.
The index "n" of an item address "[n]" must be a
positive integer. The item address suffix can be
omitted if the item it pointed to is the first item
of a sequence.
For example, 00080096.00401101.00080100 is the code
that identifies the first referring physician. The
above value locator is equivalent to:
00080096(DICOM)[1].00401101(DICOM)[1].00080100(DICOM)
</xs:documentation>
</xs:annotation>
<xs:restriction base="VALUE_LOCATOR_MACRO_T"/>
</xs:simpleType>
<xs:simpleType name="VALUE_LOCATOR_MACRO_T">
<xs:annotation>
<xs:documentation>
VALUE_LOCATOR_MACRO_T is similar to the value locator
type, except that it permits the use of a macro within
the locator string.
So, the macro locator string can be:
${TAG}(DICOM)[2].00080100
This string indicates the code value (0008,0100) of the second
item of a sequence attribute identified by ${TAG}.
The macro parameter TAG can be replaced by a
compatible attribute tag (code sequence attribute)
later.
</xs:documentation>
</xs:annotation>
<xs:restriction base="SHORT_TEXT_T"/>
</xs:simpleType>
<xs:simpleType name="VM_T">
<xs:annotation>
<xs:documentation>
DICOM value multiplicity (VM) specification.
This type is used in DICOM dictionary documents.
Patterns of valid specifications are:
"k", "k-j", "k-n", "n", "k-kn".
In these patterns, k and j are integers, k is less
than j, and n is the letter n.
</xs:documentation>
</xs:annotation>
<xs:restriction base="SHORT_STRING_T">
<xs:pattern value="(([0-9]+)-)?(([0-9]*n|([0-9]+)))"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="VR_T">
<xs:annotation>
<xs:documentation>
DICOM value representation types.
In the DICOM standard, VR for certain attributes
is defined as "other word or byte", "US or SS", or
"See Note". Oracle has extended the list of VR types and
introduced OWB (for "other word or byte"),
USS (for "US or SS"), and
EXP (where VR definition does not apply).
When an attribute of USS type is encoded into XML, it is
automatically encoded as a signed short type.
When an attribute of OWB type is encoded into XML, it is
automatically encoded into other word type.
An example of an attribute with VR type of EXP is
the sequence item (FFFE, E000).
For compatibility with future DICOM releases, if a new
DICOM VR is introduced by the DICOM standard,
users can mark such attributes as type "EXT??",
where "??" should be replaced by the new VR name.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="AE"/>
<xs:pattern value="AS"/>
<xs:pattern value="AT"/>
<xs:pattern value="CS"/>
<xs:pattern value="DA"/>
<xs:pattern value="DS"/>
<xs:pattern value="DT"/>
<xs:pattern value="FL"/>
<xs:pattern value="FD"/>
<xs:pattern value="IS"/>
<xs:pattern value="LO"/>
<xs:pattern value="LT"/>
<xs:pattern value="OB"/>
<xs:pattern value="OF"/>
<xs:pattern value="OW"/>
<xs:pattern value="PN"/>
<xs:pattern value="SH"/>
<xs:pattern value="SL"/>
<xs:pattern value="SQ"/>
<xs:pattern value="SS"/>
<xs:pattern value="ST"/>
<xs:pattern value="TM"/>
<xs:pattern value="UI"/>
<xs:pattern value="UL"/>
<xs:pattern value="UN"/>
<xs:pattern value="US"/>
<xs:pattern value="UT"/>
<xs:pattern value="USS"/>
<xs:pattern value="OWB"/>
<xs:pattern value="EXP"/>
<xs:pattern value="EXT[A-Z]{2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SHORT_TEXT_T">
<xs:restriction base="xs:token">
<xs:maxLength value="1999"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="MIXED_TEXT_T" mixed="true" xdb:SQLType="MIXED_TEXT_ORD_DCM_T">
<xs:complexContent mixed="true">
<xs:extension base="xs:anyType">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="SHORT_STRING_T">
<xs:restriction base="xs:token">
<xs:maxLength value="128"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SHORT_NAME_T">
<xs:restriction base="xs:NCName">
<xs:maxLength value="128"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SHORT_ID_T">
<xs:restriction base="xs:ID">
<xs:maxLength value="64"/>
<xs:pattern value="[^\.]+"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
OHA YOOOO