B.2.2 Definition of Data Structures Used

B.2.2.1 Primary Definitions

The following is the the contents of HostService-20100825.xsd:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://dicom.nema.org/PS3.19/HostService-20100825"; elementFormDefault="qualified"

targetNamespace="http://dicom.nema.org/PS3.19/HostService-20100825"; xmlns:xs="http://www.w3.org/2001/XMLSchema">;

<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>;

<xs:import namespace="http://schemas.datacontract.org/2004/07/System.Xml.XPath"/>;

<xs:element name="GenerateUID">

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name="GenerateUIDResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="GenerateUIDResult" nillable="true" type="tns:UID"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="UID">

<xs:sequence>

<xs:element minOccurs="0" name="Uid" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="UID" nillable="true" type="tns:UID"/>

<xs:element name="GetAvailableScreen">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="preferredScreen" nillable="true" type="tns:Rectangle"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="Rectangle">

<xs:sequence>

<xs:element minOccurs="0" name="Height" type="xs:int"/>

<xs:element minOccurs="0" name="Width" type="xs:int"/>

<xs:element minOccurs="0" name="RefPointX" type="xs:int"/>

<xs:element minOccurs="0" name="RefPointY" type="xs:int"/>

</xs:sequence>

</xs:complexType>

<xs:element name="Rectangle" nillable="true" type="tns:Rectangle"/>

<xs:element name="GetAvailableScreenResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="GetAvailableScreenResult" nillable="true"

type="tns:Rectangle"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="GetOutputLocation">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="preferredProtocols" nillable="true"

xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays";

type="q1:ArrayOfstring"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="GetOutputLocationResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="GetOutputLocationResult" nillable="true" type="xs:anyURI"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="NotifyStateChanged">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="state" type="tns:State"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:simpleType name="State">

<xs:restriction base="xs:string">

<xs:enumeration value="IDLE"/>

<xs:enumeration value="INPROGRESS"/>

<xs:enumeration value="SUSPENDED"/>

<xs:enumeration value="COMPLETED"/>

<xs:enumeration value="CANCELED"/>

<xs:enumeration value="EXIT"/>

</xs:restriction>

</xs:simpleType>

<xs:element name="State" nillable="true" type="tns:State"/>

<xs:element name="NotifyStateChangedResponse">

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name="NotifyStatus">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="status" nillable="true" type="tns:Status"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="Status">

<xs:sequence>

<xs:element minOccurs="0" name="StatusType" type="tns:StatusType"/>

<xs:element minOccurs="0" name="CodeValue" type="xs:int"/>

<xs:element minOccurs="0" name="CodingSchemeDesignator" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="CodeMeaning" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="ContextIdentifier" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="MappingResource" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="ContextGroupVersion" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="ContextGroupExtensionFlag" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="ContextGroupLocalVersion" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="ContextGroupExtensionCreatorUID" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="Status" nillable="true" type="tns:Status"/>

<xs:simpleType name="StatusType">

<xs:restriction base="xs:string">

<xs:enumeration value="INFORMATION"/>

<xs:enumeration value="WARNING"/>

<xs:enumeration value="ERROR"/>

<xs:enumeration value="FATALERROR"/>

</xs:restriction>

</xs:simpleType>

<xs:element name="StatusType" nillable="true" type="tns:StatusType"/>

<xs:element name="NotifyStatusResponse">

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name="NotifyDataAvailable">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="data" nillable="true" type="tns:AvailableData"/>

<xs:element minOccurs="0" name="lastData" type="xs:boolean"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="AvailableData">

<xs:sequence>

<xs:element minOccurs="0" name="ObjectDescriptors" nillable="true"

type="tns:ArrayOfObjectDescriptor"/>

<xs:element minOccurs="0" name="Patients" nillable="true" type="tns:ArrayOfPatient"/>

</xs:sequence>

</xs:complexType>

<xs:element name="AvailableData" nillable="true" type="tns:AvailableData"/>

<xs:complexType name="ArrayOfObjectDescriptor">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="ObjectDescriptor" nillable="true"

type="tns:ObjectDescriptor"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfObjectDescriptor" nillable="true" type="tns:ArrayOfObjectDescriptor"/>

<xs:complexType name="ObjectDescriptor">

<xs:sequence>

<xs:element minOccurs="0" name="ClassUID" nillable="true" type="tns:UID"/>

<xs:element minOccurs="0" name="MimeType" nillable="true" type="tns:MimeType"/>

<xs:element minOccurs="0" name="Modality" nillable="true" type="tns:Modality"/>

<xs:element minOccurs="0" name="TransferSyntaxUID" nillable="true" type="tns:UID"/>

<xs:element minOccurs="0" name="DescriptorUuid" nillable="true" type="tns:UUID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ObjectDescriptor" nillable="true" type="tns:ObjectDescriptor"/>

<xs:complexType name="MimeType">

<xs:sequence>

<xs:element minOccurs="0" name="Type" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="MimeType" nillable="true" type="tns:MimeType"/>

<xs:complexType name="Modality">

<xs:sequence>

<xs:element minOccurs="0" name="Modality" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="Modality" nillable="true" type="tns:Modality"/>

<xs:complexType name="UUID">

<xs:sequence>

<xs:element minOccurs="0" name="Uuid" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="UUID" nillable="true" type="tns:UUID"/>

<xs:complexType name="ArrayOfPatient">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="Patient" nillable="true"

type="tns:Patient"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfPatient" nillable="true" type="tns:ArrayOfPatient"/>

<xs:complexType name="Patient">

<xs:sequence>

<xs:element minOccurs="0" name="AssigningAuthority" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="DateOfBirth" type="xs:dateTime"/>

<xs:element minOccurs="0" name="ID" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="ObjectDescriptors" nillable="true"

type="tns:ArrayOfObjectDescriptor"/>

<xs:element minOccurs="0" name="Sex" nillable="true" type="xs:string"/>

<xs:element minOccurs="0" name="Studies" nillable="true" type="tns:ArrayOfStudy"/>

</xs:sequence>

</xs:complexType>

<xs:element name="Patient" nillable="true" type="tns:Patient"/>

<xs:complexType name="ArrayOfStudy">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="Study" nillable="true" type="tns:Study"

/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfStudy" nillable="true" type="tns:ArrayOfStudy"/>

<xs:complexType name="Study">

<xs:sequence>

<xs:element minOccurs="0" name="ObjectDescriptors" nillable="true"

type="tns:ArrayOfObjectDescriptor"/>

<xs:element minOccurs="0" name="Series" nillable="true" type="tns:ArrayOfSeries"/>

<xs:element minOccurs="0" name="StudyUID" nillable="true" type="tns:UID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="Study" nillable="true" type="tns:Study"/>

<xs:complexType name="ArrayOfSeries">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="Series" nillable="true"

type="tns:Series"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfSeries" nillable="true" type="tns:ArrayOfSeries"/>

<xs:complexType name="Series">

<xs:sequence>

<xs:element minOccurs="0" name="ObjectDescriptors" nillable="true"

type="tns:ArrayOfObjectDescriptor"/>

<xs:element minOccurs="0" name="SeriesUID" nillable="true" type="tns:UID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="Series" nillable="true" type="tns:Series"/>

<xs:element name="NotifyDataAvailableResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="NotifyDataAvailableResult" type="xs:boolean"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="GetData">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="objects" nillable="true" type="tns:ArrayOfUUID"/>

<xs:element minOccurs="0" name="acceptableTransferSyntaxes" nillable="true"

type="tns:ArrayOfUID"/>

<xs:element minOccurs="0" name="includeBulkData" type="xs:boolean"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="ArrayOfUUID">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="UUID" nillable="true" type="tns:UUID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfUUID" nillable="true" type="tns:ArrayOfUUID"/>

<xs:complexType name="ArrayOfUID">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="UID" nillable="true" type="tns:UID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfUID" nillable="true" type="tns:ArrayOfUID"/>

<xs:element name="GetDataResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="GetDataResult" nillable="true"

type="tns:ArrayOfObjectLocator"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="ArrayOfObjectLocator">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="ObjectLocator" nillable="true"

type="tns:ObjectLocator"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfObjectLocator" nillable="true" type="tns:ArrayOfObjectLocator"/>

<xs:complexType name="ObjectLocator">

<xs:sequence>

<xs:element minOccurs="0" name="Length" type="xs:long"/>

<xs:element minOccurs="0" name="Offset" type="xs:long"/>

<xs:element minOccurs="0" name="TransferSyntax" nillable="true" type="tns:UID"/>

<xs:element minOccurs="0" name="URI" nillable="true" type="xs:anyURI"/>

<xs:element minOccurs="0" name="Locator" nillable="true" type="tns:UUID"/>

<xs:element minOccurs="0" name="Source" nillable="true" type="tns:UUID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ObjectLocator" nillable="true" type="tns:ObjectLocator"/>

<xs:element name="ReleaseData">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="objects" nillable="true" type="tns:ArrayOfUUID"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="ReleaseDataResponse">

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name="GetAsModels">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="objects" nillable="true" type="tns:ArrayOfUUID"/>

<xs:element minOccurs="0" name="classUID" nillable="true" type="tns:UID"/>

<xs:element minOccurs="0" name="supportedInfoSetTypes" nillable="true"

type="tns:ArrayOfMimeType"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="ArrayOfMimeType">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="MimeType" nillable="true"

type="tns:MimeType"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfMimeType" nillable="true" type="tns:ArrayOfMimeType"/>

<xs:element name="GetAsModelsResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="GetAsModelsResult" nillable="true"

type="tns:ModelSetDescriptor"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="ModelSetDescriptor">

<xs:sequence>

<xs:element minOccurs="0" name="FailedSourceObjects" nillable="true" type="tns:ArrayOfUUID"/>

<xs:element minOccurs="0" name="InfosetType" nillable="true" type="tns:MimeType"/>

<xs:element minOccurs="0" name="Models" nillable="true" type="tns:ArrayOfUUID"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ModelSetDescriptor" nillable="true" type="tns:ModelSetDescriptor"/>

<xs:element name="ReleaseModels">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="models" nillable="true" type="tns:ArrayOfUUID"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="ReleaseModelsResponse">

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name="QueryModel">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="models" nillable="true" type="tns:ArrayOfUUID"/>

<xs:element minOccurs="0" name="xPaths" nillable="true"

xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays";

type="q2:ArrayOfstring"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="QueryModelResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="QueryModelResult" nillable="true"

type="tns:ArrayOfQueryResult"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="ArrayOfQueryResult">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="QueryResult" nillable="true"

type="tns:QueryResult"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfQueryResult" nillable="true" type="tns:ArrayOfQueryResult"/>

<xs:complexType name="QueryResult">

<xs:sequence>

<xs:element minOccurs="0" name="Model" nillable="true" type="tns:UUID"/>

<xs:element minOccurs="0" name="Result" nillable="true" type="tns:ArrayOfXPathNode"/>

<xs:element minOccurs="0" name="XPath" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="QueryResult" nillable="true" type="tns:QueryResult"/>

<xs:complexType name="ArrayOfXPathNode">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="XPathNode" nillable="true"

type="tns:XPathNode"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfXPathNode" nillable="true" type="tns:ArrayOfXPathNode"/>

<xs:complexType name="XPathNode">

<xs:sequence>

<xs:element minOccurs="0" name="NodeType"

xmlns:q3="http://schemas.datacontract.org/2004/07/System.Xml.XPath"; type="q3:XPathNodeType"/>

<xs:element minOccurs="0" name="Value" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="XPathNode" nillable="true" type="tns:XPathNode"/>

<xs:element name="QueryInfoSet">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="models" nillable="true" type="tns:ArrayOfUUID"/>

<xs:element minOccurs="0" name="xPaths" nillable="true"

xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays";

type="q4:ArrayOfstring"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="QueryInfoSetResponse">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="QueryInfoSetResult" nillable="true"

type="tns:ArrayOfQueryResultInfoSet"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="ArrayOfQueryResultInfoSet">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="QueryResultInfoSet" nillable="true"

type="tns:QueryResultInfoSet"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfQueryResultInfoSet" nillable="true" type="tns:ArrayOfQueryResultInfoSet"/>

<xs:complexType name="QueryResultInfoSet">

<xs:sequence>

<xs:element minOccurs="0" name="Model" nillable="true" type="tns:UUID"/>

<xs:element minOccurs="0" name="Result" nillable="true" type="tns:ArrayOfXPathNodeInfoSet"/>

<xs:element minOccurs="0" name="XPath" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="QueryResultInfoSet" nillable="true" type="tns:QueryResultInfoSet"/>

<xs:complexType name="ArrayOfXPathNodeInfoSet">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="XPathNodeInfoSet" nillable="true"

type="tns:XPathNodeInfoSet"/>

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfXPathNodeInfoSet" nillable="true" type="tns:ArrayOfXPathNodeInfoSet"/>

<xs:complexType name="XPathNodeInfoSet">

<xs:sequence>

<xs:element minOccurs="0" name="InfoSetValue" nillable="true" type="xs:base64Binary"/>

<xs:element minOccurs="0" name="NodeType"

xmlns:q5="http://schemas.datacontract.org/2004/07/System.Xml.XPath"; type="q5:XPathNodeType"

/>

</xs:sequence>

</xs:complexType>

<xs:element name="XPathNodeInfoSet" nillable="true" type="tns:XPathNodeInfoSet"/>

</xs:schema>

B.2.2.2 Referenced Definitions

The following is the content of XPathNodeType.xsd:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/System.Xml.XPath"; elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/System.Xml.XPath"; xmlns:xs="http://www.w3.org/2001/XMLSchema">;

<xs:simpleType name="XPathNodeType">

<xs:restriction base="xs:string">

<xs:enumeration value="Root" />

<xs:enumeration value="Element" />

<xs:enumeration value="Attribute" />

<xs:enumeration value="Namespace" />

<xs:enumeration value="Text" />

<xs:enumeration value="SignificantWhitespace" />

<xs:enumeration value="Whitespace" />

<xs:enumeration value="ProcessingInstruction" />

<xs:enumeration value="Comment" />

<xs:enumeration value="All" />

</xs:restriction>

</xs:simpleType>

<xs:element name="XPathNodeType" nillable="true" type="tns:XPathNodeType" />

</xs:schema>

The following is the content of Types.xsd:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/"; attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/"; xmlns:xs="http://www.w3.org/2001/XMLSchema">;

<xs:element name="anyType" nillable="true" type="xs:anyType" />

<xs:element name="anyURI" nillable="true" type="xs:anyURI" />

<xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />

<xs:element name="boolean" nillable="true" type="xs:boolean" />

<xs:element name="byte" nillable="true" type="xs:byte" />

<xs:element name="dateTime" nillable="true" type="xs:dateTime" />

<xs:element name="decimal" nillable="true" type="xs:decimal" />

<xs:element name="double" nillable="true" type="xs:double" />

<xs:element name="float" nillable="true" type="xs:float" />

<xs:element name="int" nillable="true" type="xs:int" />

<xs:element name="long" nillable="true" type="xs:long" />

<xs:element name="QName" nillable="true" type="xs:QName" />

<xs:element name="short" nillable="true" type="xs:short" />

<xs:element name="string" nillable="true" type="xs:string" />

<xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />

<xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />

<xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />

<xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />

<xs:element name="char" nillable="true" type="tns:char" />

<xs:simpleType name="char">

<xs:restriction base="xs:int" />

</xs:simpleType>

<xs:element name="duration" nillable="true" type="tns:duration" />

<xs:simpleType name="duration">

<xs:restriction base="xs:duration">

<xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />

<xs:minInclusive value="-P10675199DT2H48M5.4775808S" />

<xs:maxInclusive value="P10675199DT2H48M5.4775807S" />

</xs:restriction>

</xs:simpleType>

<xs:element name="guid" nillable="true" type="tns:guid" />

<xs:simpleType name="guid">

<xs:restriction base="xs:string">

<xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />

</xs:restriction>

</xs:simpleType>

<xs:attribute name="FactoryType" type="xs:QName" />

<xs:attribute name="Id" type="xs:ID" />

<xs:attribute name="Ref" type="xs:IDREF" />

</xs:schema>

The following is the content of ArrayOfString.xsd:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"; elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays"; xmlns:xs="http://www.w3.org/2001/XMLSchema">;

<xs:complexType name="ArrayOfstring">

<xs:sequence>

<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />

</xs:sequence>

</xs:complexType>

<xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />

</xs:schema>

-----------------------

API (Plug)

Hosted Application (Plug

-

in)

Hosting System (e.g. Medical Workstation)

API (Socket)

Image 1

Image 2

Image 3

Image 4

Image 5

Image 6

Image 7-199

Image 200

O2

O1

O3

O4

O5

O6

O7

O200

Dataset

dimension #1 (index

along

x)

Dataset

dimension #2 (index

along

y)

Dataset

dimension #3 (index

along

t)

x

y

Example of a 2D series of ultrasound images (non-parallel)

Origin

: 200 Occurrences,

with

x,y,z

coordinates

of O1,O2,

, O200,

indexed

by

Dataset

dimension #3 (

corresponding

to t1, t2,

, t200)

Direction

cosines

: 400 Occurrences,

with

200

concerning

Dataset

dimension #1 (x)

indexed

by

Dataset

dimension #3 (idem t1, t2,

,

t200) and 200

concerning

Dataset

dimension #2 (y)

indexed

by

Dataset

dimension #3 (idem t1, t2,

, t200)

Dataset

component #1 (

echo

)