Here's a schema

From NAMIC Wiki
Jump to: navigation, search
Home < Here's a schema

<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://cnl.wustl.edu/Oasis" xmlns:oas="http://cnl.wustl.edu/Oasis" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Project" type="oas:projectData"/> <xs:element name="Visit" type="oas:visitType"/> <xs:element name="MrSession" type="oas:mrSessionType"> <xs:annotation> <xs:documentation>Root element for an MrSession experiment</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Subject" type="oas:subjectType"/> <xs:element name="AtlasScalingFactor" type="oas:atlasScalingFactorType"/> <xs:element name="ClinicalAssessment"> <xs:annotation> <xs:documentation>Clinical Assessment Root Element</xs:documentation> </xs:annotation> <xs:complexType> <xs:complexContent> <xs:extension base="oas:clinicalAssessmentType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="FSLSegmentation" type="oas:fslSegmentationType"/> <xs:complexType name="projectData"> <xs:sequence> <xs:element ref="oas:Subject" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="ID" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="optional"/> <xs:attribute name="description" type="xs:string" use="optional"/> </xs:complexType> <xs:complexType name="projectType"> <xs:sequence> <xs:element name="projectData" type="oas:projectData"/>

</xs:sequence> </xs:complexType> <xs:complexType name="visitData"> <xs:all> <xs:element name="mrSessionData" type="oas:mrSessionData" minOccurs="0"/> <xs:element name="clinicalAssessmentData" type="oas:clinicalAssessmentData" minOccurs="0"/> </xs:all> <xs:attribute name="ID" type="xs:string" use="required"> <xs:annotation> <xs:appinfo> <xft:field> <xft:sqlField primaryKey="true"/> </xft:field> </xs:appinfo> </xs:annotation> </xs:attribute> </xs:complexType> <xs:complexType name="visitType"> <xs:sequence> <xs:element name="visitData" type="oas:visitData"/> <xs:choice minOccurs="0"> <xs:element name="subjectId"/> <xs:element name="subjectData" type="oas:subjectData"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="experimentData"> <xs:sequence> <xs:element name="date" type="xs:date" minOccurs="0"/> <xs:element name="note" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="500"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attribute name="ID" type="xs:string" use="required"> <xs:annotation> <xs:appinfo> <xft:field> <xft:sqlField primaryKey="true"/> </xft:field> </xs:appinfo> </xs:annotation> </xs:attribute> </xs:complexType> <xs:complexType name="experimentType"> <xs:annotation> <xs:documentation>Base type for experiment data types</xs:documentation> </xs:annotation> <xs:sequence> <xs:choice minOccurs="0"> <xs:element name="subjectData" type="oas:subjectData"/> <xs:element name="subjectId" type="xs:string"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="subjectData"> <xs:annotation> <xs:documentation>Base type for subjects</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="male"/> <xs:enumeration value="m"/> <xs:enumeration value="M"/> <xs:enumeration value="female"/> <xs:enumeration value="f"/> <xs:enumeration value="F"/> <xs:enumeration value="other"/> <xs:enumeration value="unknown"/> <xs:enumeration value="o"/> <xs:enumeration value="u"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="handedness" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="left"/> <xs:enumeration value="l"/> <xs:enumeration value="L"/> <xs:enumeration value="right"/> <xs:enumeration value="r"/> <xs:enumeration value="R"/> <xs:enumeration value="ambidextrous"/> <xs:enumeration value="A"/> <xs:enumeration value="a"/> <xs:enumeration value="unknown"/> <xs:enumeration value="u"/> <xs:enumeration value="U"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:choice> <xs:element name="dob" type="xs:date"/> <xs:element name="yob"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="1875"/> <xs:maxInclusive value="2050"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="age" type="xs:integer"/> </xs:choice> <xs:element name="education" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="30"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="ses" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="5"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attribute name="ID" use="required"> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="subjectType"> <xs:sequence> <xs:element name="subjectData" type="oas:subjectData"/> <xs:element name="visitData" type="oas:visitData" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="mrSessionData"> <xs:complexContent> <xs:extension base="oas:experimentData"> <xs:sequence> <xs:element name="scanner"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="marker"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> <xs:enumeration value="left vitamin E capsule"/> <xs:enumeration value="right vitamin E capsule"/> <xs:enumeration value="other"/> <xs:enumeration value="none"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="stabilization"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> <xs:enumeration value="mask"/> <xs:enumeration value="tape"/> <xs:enumeration value="other"/> <xs:enumeration value="vaccum Bag"/> <xs:enumeration value="none"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="scan" type="oas:mrScanType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="assessors" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="assessor" type="oas:mrAssessorType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="mrSessionType"> <xs:complexContent> <xs:extension base="oas:experimentType"> <xs:sequence> <xs:element name="mrSessionData" type="oas:mrSessionData"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="mrAssessorData"> <xs:complexContent> <xs:extension base="oas:derivedData"/> </xs:complexContent> </xs:complexType> <xs:complexType name="mrAssessorType"> <xs:sequence> <xs:element name="mrAssessorData" type="oas:mrAssessorData"/> <xs:choice minOccurs="0"> <xs:element name="assessedSessionId" type="xs:string"/> <xs:element name="assessedSession" type="oas:mrSessionData"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="mrScanType"> <xs:sequence> <xs:element name="note" type="xs:string" minOccurs="0"/> <xs:element name="parameters"> <xs:complexType> <xs:sequence> <xs:element name="voxelResX" type="xs:float" minOccurs="0"/> <xs:element name="voxelResY" type="xs:float" minOccurs="0"/> <xs:element name="voxelResZ" type="xs:float" minOccurs="0"/> <xs:element name="orientation" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="5"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="rectFovX" type="xs:integer" minOccurs="0"/> <xs:element name="rectFovY" type="xs:integer" minOccurs="0"/> <xs:element name="matrixX" type="xs:integer" minOccurs="0"/> <xs:element name="matrixY" type="xs:integer" minOccurs="0"/> <xs:element name="partitions" type="xs:integer" minOccurs="0"/> <xs:element name="tr" type="xs:float" minOccurs="0"/> <xs:element name="te" type="xs:float" minOccurs="0"/> <xs:element name="ti" type="xs:float" minOccurs="0"/> <xs:element name="flip" type="xs:integer" minOccurs="0"/> <xs:element name="sequence" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="origin" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="scanTime" type="xs:time" minOccurs="0"/> <xs:element name="addParam" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="number" type="xs:string" use="required"/> <xs:attribute name="type" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="atlasScalingFactorData"> <xs:sequence> <xs:element name="eTotalIntracranialVolume" type="xs:float"/> <xs:element name="atlasScalingFactor" type="xs:float"/> <xs:element name="eta" type="xs:float"/> </xs:sequence> </xs:complexType> <xs:complexType name="atlasScalingFactorType"> <xs:complexContent> <xs:extension base="oas:mrAssessorType"> <xs:sequence> <xs:element name="atlasScalingFactorData" type="oas:atlasScalingFactorData"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="fslSegmentationData"> <xs:annotation> <xs:documentation>FSL-based segmentation</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="image_file"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="200"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="volumes"> <xs:complexType> <xs:sequence> <xs:element name="csf" type="xs:double"/> <xs:element name="grey" type="xs:double"/> <xs:element name="white" type="xs:double"/> </xs:sequence> <xs:attribute name="brain_percent" type="xs:float" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="fslSegmentationType"> <xs:complexContent> <xs:extension base="oas:mrAssessorType"> <xs:sequence> <xs:element name="fslSegmentationData" type="oas:fslSegmentationData"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="clinicalAssessmentData"> <xs:complexContent> <xs:extension base="oas:experimentData"> <xs:sequence> <xs:element name="CDR" minOccurs="0"> <xs:annotation> <xs:documentation>Clinical Dementia Rating</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="memory"> <xs:annotation> <xs:documentation>CDR: memory</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="orientation"> <xs:annotation> <xs:documentation>CDR: orientation</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="judgmentProblemSolving"> <xs:annotation> <xs:documentation>CDR: judgment and problem solving</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="communityAffairs"> <xs:annotation> <xs:documentation>CDR: community affairs</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="homeHobbies"> <xs:annotation> <xs:documentation>CDR: home and hobbies</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="personalCare"> <xs:annotation> <xs:documentation>CDR: personal care</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attribute name="sumbox" use="required"> <xs:annotation> <xs:documentation>SUMBOX; Summary score of boxes in CDR</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:float"> <xs:minInclusive value="0"/> <xs:maxInclusive value="18"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="score" type="xs:float" use="required"/> </xs:complexType> </xs:element> <xs:element name="MMSE" minOccurs="0"> <xs:annotation> <xs:documentation>Mini Mental State Exam</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="30"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attribute name="delayFromMr" type="oas:delay" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="clinicalAssessmentType"> <xs:complexContent> <xs:extension base="oas:experimentType"> <xs:sequence> <xs:element name="clinicalAssessmentData" type="oas:clinicalAssessmentData"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="reconstructedImageType"> <xs:sequence> <xs:element name="recon_id" type="xs:integer"/> <xs:element name="session_id"> <xs:simpleType> <xs:restriction base="xs:integer"/> </xs:simpleType> </xs:element> <xs:element name="create_time" type="xs:dateTime"/> <xs:element name="algorithm"/> <xs:element name="file_loc"/> <xs:element name="build_date" type="xs:date"/> <xs:element name="scan_type_code"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="atlas" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="derivedData"> <xs:complexContent> <xs:extension base="oas:experimentData"> <xs:sequence> <xs:element name="createTime" type="xs:time" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name="delay"> <xs:restriction base="xs:integer"/> </xs:simpleType> </xs:schema>