copied from http://indivo.org/vocab/xml/
authorEric Prud'hommeaux <eric@w3.org>
Wed, 14 Jul 2010 17:05:29 -0400
changeset 2 52e5bf26753a
parent 1 28e608c0323d
child 3 eac565419677
copied from http://indivo.org/vocab/xml/
syntheticPatients/indivo-schemas/allergy.xsd
syntheticPatients/indivo-schemas/asthmaactionplan.xsd
syntheticPatients/indivo-schemas/codes.xsd
syntheticPatients/indivo-schemas/contact.xsd
syntheticPatients/indivo-schemas/demographics.xsd
syntheticPatients/indivo-schemas/equipment.xsd
syntheticPatients/indivo-schemas/hospital-api-metadata.xsd
syntheticPatients/indivo-schemas/immunization.xsd
syntheticPatients/indivo-schemas/lab.xsd
syntheticPatients/indivo-schemas/medication.xsd
syntheticPatients/indivo-schemas/metadata.xsd
syntheticPatients/indivo-schemas/problem.xsd
syntheticPatients/indivo-schemas/procedure.xsd
syntheticPatients/indivo-schemas/provider.xsd
syntheticPatients/indivo-schemas/schoolform.xsd
syntheticPatients/indivo-schemas/values.xsd
syntheticPatients/indivo-schemas/vitals.xsd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/allergy.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#" xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+elementFormDefault="qualified">
+
+  <include schemaLocation="codes.xsd" />
+
+  <element name="Allergy">
+    <complexType>
+      <sequence>
+        <element name="dateDiagnosed" type="dateTime" minOccurs="1" maxOccurs="1" />
+        <element name="diagnosedBy" type="string" minOccurs="0" maxOccurs="1" />
+        <element name="allergen">
+          <complexType>
+            <sequence>
+              <element name="type" type="indivo:CodedValue" />
+              <element name="name" type="indivo:CodedValue" />
+            </sequence>
+          </complexType>
+        </element>
+        <element name="reaction" minOccurs="0" maxOccurs="1" type="string" />
+        <element name="specifics" minOccurs="0" maxOccurs="1" type="string" />
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/asthmaactionplan.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+	targetNamespace="http://indivo.org/vocab/xml/documents#"
+	xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	elementFormDefault="qualified">
+
+  <element name="AsthmaActionPlan">
+    <complexType>
+      <sequence>
+        <element name="startDate" type="dateTime" minOccurs="0" maxOccurs="1" />
+        <element name="endDate" type="dateTime" minOccurs="0" maxOccurs="1" />
+        <element name="notes" type="string" minOccurs="1" maxOccurs="1" />
+	<!-- the actual asthma plan is in an attached document -->
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/codes.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#" xmlns:indivo="http://indivo.org/vocab/xml/documents#">
+
+  <xs:complexType name="CodedValue">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+	<xs:attribute name="type" type="xs:anyURI" use="optional" />
+	<xs:attribute name="value" type="xs:string" use="optional" />
+	<xs:attribute name="abbrev" type="xs:string" use="optional" />
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+</xs:schema>
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/contact.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://indivo.org/vocab/xml/documents#">
+
+  <xs:element name="Contact">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="name" minOccurs="1">
+          <xs:complexType>
+            <xs:sequence>
+              <xs:element name="fullName" type="xs:string" minOccurs="1" maxOccurs="1" />
+              <xs:element name="givenName" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
+              <xs:element name="familyName" type="xs:string" minOccurs="1" maxOccurs="1" />
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="email" minOccurs="1" maxOccurs="unbounded">
+          <xs:complexType>
+	    <xs:simpleContent>
+	      <xs:extension base="xs:string">
+		<xs:attribute name="type" type="xs:string" />
+	      </xs:extension>
+	      <!-- for now no restriction until we figure out a clean way to combine it with above
+              <xs:restriction base="xs:string">
+                <xs:pattern value="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"/>
+              </xs:restriction>-->
+
+	    </xs:simpleContent>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="address" minOccurs="1" maxOccurs="unbounded">
+          <xs:complexType>
+            <xs:sequence>
+              <xs:element name="streetAddress" type="xs:string" minOccurs="1" />
+              <xs:element name="postalCode" type="xs:string" minOccurs="1" />
+              <xs:element name="locality" type="xs:string" minOccurs="1" />
+              <xs:element name="region" type="xs:string" minOccurs="1" />
+              <xs:element name="country" type="xs:string" minOccurs="1" />
+              <xs:element name="timeZone" type="xs:string" minOccurs="0" />
+            </xs:sequence>
+            <xs:attribute name="type" type="xs:string" />
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="location" maxOccurs="unbounded">
+          <xs:complexType>
+            <xs:sequence>
+              <xs:element name="latitude" type="xs:string" />
+              <xs:element name="longitude" type="xs:string" />
+            </xs:sequence>
+            <xs:attribute name="type" type="xs:string" />
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="phoneNumber" minOccurs="0" maxOccurs="unbounded">
+          <xs:complexType>
+	    <xs:simpleContent>
+	      <xs:extension base="xs:string">
+		<xs:attribute name="type" type="xs:string" />
+	      </xs:extension>
+	    </xs:simpleContent>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="instantMessengerName" minOccurs="0" maxOccurs="unbounded">
+          <xs:complexType>
+	    <xs:simpleContent>
+	      <xs:extension base="xs:string">
+		<xs:attribute name="protocol" type="xs:string" />
+	      </xs:extension>
+	    </xs:simpleContent>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="thumbnail" type="xs:string" minOccurs="0" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/demographics.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://indivo.org/vocab/xml/documents#">
+  <xs:element name="Demographics">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="dateOfBirth" type="xs:date" minOccurs="0" />
+        <xs:element name="dateOfDeath" type="xs:date" minOccurs="0" />
+        <xs:element name="gender" type="xs:string" minOccurs="0" />
+        <xs:element name="ethnicity" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
+        <xs:element name="language" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
+        <xs:element name="maritalStatus" type="xs:string" minOccurs="0" />
+        <xs:element name="employmentStatus" type="xs:string" minOccurs="0" />
+        <xs:element name="employmentIndustry" type="xs:string" minOccurs="0" />
+        <xs:element name="occupation" type="xs:string" minOccurs="0" />
+        <xs:element name="religion" type="xs:string" minOccurs="0" />
+        <xs:element name="income" type="xs:string" minOccurs="0" />
+        <xs:element name="highestEducation" type="xs:string" minOccurs="0" />
+        <xs:element name="organDonor" type="xs:boolean" minOccurs="0" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/equipment.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+	targetNamespace="http://indivo.org/vocab/xml/documents#"
+	xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	elementFormDefault="qualified">
+
+  <element name="Equipment">
+    <complexType>
+      <sequence>
+        <element name="name" type="string" minOccurs="1" maxOccurs="1" />
+	<element name="vendor" type="string" minOccurs="0" maxOccurs="1" />
+        <element name="description" type="string" minOccurs="0" maxOccurs="1" />	
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/hospital-api-metadata.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="Document">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element name="created" minOccurs="1" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="at" type="xs:dateTime" use="required" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="suppressed" minOccurs="0" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="at" type="xs:dateTime" use="required" />
+	  </xs:complexType>
+	</xs:element>
+      </xs:sequence>
+      <xs:attribute name="id" type="xs:string" use="required" />
+      <xs:attribute name="type" type="xs:string" use="required" />
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/immunization.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
+	xmlns:indivo="http://indivo.org/vocab/xml/documents#" elementFormDefault="qualified">
+
+  <include schemaLocation="codes.xsd" />
+
+  <element name="Immunization">
+    <complexType>
+      <sequence>
+        <element name="dateAdministered" type="dateTime" minOccurs="1" maxOccurs="1" />
+        <element name="administeredBy" type="string" minOccurs="0" maxOccurs="1" />
+        <element name="vaccine">
+          <complexType>
+            <sequence>
+              <element name="type" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+              <element name="manufacturer" type="string" minOccurs="0" maxOccurs="1" />
+              <element name="lot" type="string" minOccurs="0" maxOccurs="1" />
+              <element name="expiration" type="date" minOccurs="0" maxOccurs="1" />
+            </sequence>
+          </complexType>
+        </element>
+        <element name="sequence" type="integer" minOccurs="1" maxOccurs="1" />
+        <element name="anatomicSurface" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
+        <element name="adverseEvent" type="string" minOccurs="0" maxOccurs="1" />
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/lab.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
+	   xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	   elementFormDefault="qualified">
+
+  <xs:include schemaLocation="codes.xsd" />
+  <xs:include schemaLocation="provider.xsd" />
+  <xs:include schemaLocation="values.xsd" />
+ 
+  <!-- a type to represent a single lab test -->
+  <xs:complexType name="LabTest">
+    <xs:sequence>
+      <xs:element name="dateMeasured" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
+
+      <!-- e.g. "hematocrit" -->
+      <xs:element name="name" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+      
+      <xs:element name="result" type="indivo:ResultInRange" minOccurs="1" maxOccurs="1" />
+      
+      <!-- e.g. "pending" -->
+      <xs:element name="status" type="xs:string" minOccurs="1" maxOccurs="1" />
+      
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- a type to represent a panel of tests -->
+  <xs:complexType name="LabPanel">
+    <xs:sequence>
+      <!-- e.g. CBC -->
+      <xs:element name="name" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+      
+      <!-- for now, no subpanels, but we could do it if we wanted to with a self-reference -->
+
+      <!-- a bunch of lab tests -->
+      <xs:element name="labTest" type="indivo:LabTest" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="Lab">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="dateMeasured" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
+
+	<!-- e.g. "hematology" -->
+	<xs:element name="labType" type="xs:string" minOccurs="1" maxOccurs="1" />
+
+	<!-- the lab provider -->
+	<xs:element name="laboratory" type="indivo:LabProvider" minOccurs="0" maxOccurs="1" />
+
+	<!-- a bunch of panels -->
+	<xs:element name="labPanel" type="indivo:LabPanel" minOccurs="0" maxOccurs="unbounded" />
+
+	<!-- a bunch of additional tests not in any panel -->
+	<xs:element name="labTest" type="indivo:LabTest" minOccurs="0" maxOccurs="unbounded" />
+
+        <xs:element name="comments" type="xs:string" minOccurs="0" maxOccurs="1" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/medication.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
+	   xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	   elementFormDefault="qualified">
+
+  <xs:include schemaLocation="codes.xsd" />
+  <xs:include schemaLocation="provider.xsd" />
+  <xs:include schemaLocation="values.xsd" />
+ 
+  <!-- a medication, how often it's taken, etc.. -->
+  <xs:complexType name="Medication">
+    <xs:sequence>
+      <xs:element name="dateStarted" type="xs:date" minOccurs="0" maxOccurs="1" />
+      <xs:element name="dateStopped" type="xs:date" minOccurs="0" maxOccurs="1" />
+      <xs:element name="name" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+      <xs:element name="brandName" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
+      <xs:element name="dose" type="indivo:ValueAndUnit" minOccurs="1" maxOccurs="1" />
+
+      <!-- this is typically contained in the code, but maybe not -->
+      <xs:element name="strength" type="indivo:ValueAndUnit" minOccurs="0" maxOccurs="1" />
+
+      <xs:element name="frequency" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+      
+      <!-- other details on this drug -->
+      <xs:element name="details" type="xs:string" minOccurs="0" maxOccurs="1" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="Medication" type="indivo:Medication" />
+
+  <!-- a prescription for a medication -->
+  <xs:complexType name="Prescription">
+    <xs:sequence>
+      <xs:element name="medication" type="indivo:Medication" minOccurs="1" maxOccurs="1" />
+      <xs:element name="prescribedBy" type="indivo:Provider" minOccurs="1" maxOccurs="1" />
+      <xs:element name="prescribedOn" type="xs:date" minOccurs="0" maxOccurs="1" />
+      <xs:element name="dispenseAsWritten" type="xs:boolean" minOccurs="1" maxOccurs="1" />
+      <xs:element name="duration" type="xs:duration" minOccurs="0" maxOccurs="1" />
+      <xs:element name="refillInfo" type="xs:string" minOccurs="0" maxOccurs="1" />
+      <xs:element name="instructions" type="xs:string" minOccurs="0" maxOccurs="1" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="Prescription" type="indivo:Prescription" />
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/metadata.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<!-- didn't place this in the Indivo namespace because it's not medical payload -->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="Document">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element name="created" minOccurs="1" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="at" type="xs:dateTime" use="required" />
+            <xs:attribute name="by" type="xs:string" use="required" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="suppressed" minOccurs="0" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="at" type="xs:dateTime" use="required" />
+            <xs:attribute name="by" type="xs:string" use="required" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="replacedBy" minOccurs="1" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="id" type="xs:string" use="optional" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="replaces" minOccurs="1" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="id" type="xs:string" use="optional" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="original" minOccurs="1" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="id" type="xs:string" use="required" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="latest" minOccurs="1" maxOccurs="1">
+	  <xs:complexType>
+            <xs:attribute name="id" type="xs:string" use="required" />
+            <xs:attribute name="createdAt" type="xs:dateTime" use="required" />
+            <xs:attribute name="createdBy" type="xs:string" use="required" />
+	  </xs:complexType>
+	</xs:element>
+	<xs:element name="label" type="xs:string" minOccurs="0" maxOccurs="1" />
+      </xs:sequence>
+      <xs:attribute name="id" type="xs:string" use="required" />
+      <xs:attribute name="size" type="xs:string" use="required" />
+      <xs:attribute name="digest" type="xs:string" use="required" />
+      <xs:attribute name="type" type="xs:string" use="required" />
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/problem.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#" xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	elementFormDefault="qualified">
+
+  <include schemaLocation="codes.xsd" />
+
+  <element name="Problem">
+    <complexType>
+      <sequence>
+        <element name="dateOnset" type="dateTime" minOccurs="1" maxOccurs="1" />
+        <element name="dateResolution" type="dateTime" minOccurs="0" maxOccurs="1" />
+        <element name="name" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+        <element name="comments" type="string" minOccurs="0" maxOccurs="1" />
+        <element name="diagnosedBy" type="string" minOccurs="0" maxOccurs="1" />
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/procedure.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
+	xmlns:indivo="http://indivo.org/vocab/xml/documents#" elementFormDefault="qualified">
+
+  <include schemaLocation="codes.xsd" />
+
+  <include schemaLocation="provider.xsd" />
+
+  <element name="Procedure">
+    <complexType>
+      <sequence>
+        <element name="datePerformed" type="dateTime" minOccurs="1" maxOccurs="1" />
+        <element name="name" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+        <element name="Provider" type="indivo:Provider" minOccurs="0" />
+        <element name="location" type="string" minOccurs="0" maxOccurs="1" />
+        <element name="comments" type="string" minOccurs="0" maxOccurs="1" />
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/provider.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
+	xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	elementFormDefault="qualified">
+  <complexType name="Provider">
+      <sequence>
+        <element name="name" type="string" minOccurs="1" maxOccurs="1" />
+        <element name="institution" type="string" minOccurs="1" maxOccurs="1" />
+      </sequence>
+  </complexType>
+
+  <complexType name="LabProvider">
+      <sequence>
+        <element name="name" type="string" minOccurs="1" maxOccurs="1" />
+	<element name="address" type="string" minOccurs="1" maxOccurs="1" />
+      </sequence>
+  </complexType>
+
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/schoolform.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+	targetNamespace="http://indivo.org/vocab/xml/documents#"
+	xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	elementFormDefault="qualified">
+
+  <element name="SchoolForm">
+    <complexType>
+      <sequence>
+        <element name="date" type="dateTime" minOccurs="1" maxOccurs="1" />
+        <element name="notes" type="string" minOccurs="1" maxOccurs="1" />
+	<!-- the actual school form is in an attached document -->
+      </sequence>
+    </complexType>
+  </element>
+</schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/values.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
+	   xmlns:indivo="http://indivo.org/vocab/xml/documents#" elementFormDefault="qualified">
+
+  <xs:complexType name="Range">
+    <xs:sequence>
+      <!-- a missing minimum means < max -->
+      <xs:element name="minimum" type="xs:double" minOccurs="0" maxOccurs="1" />
+
+      <!-- a missing maximum means > min -->
+      <xs:element name="maximum" type="xs:double" minOccurs="0" maxOccurs="1" />
+
+      <!-- technically this schema allows a range with neither min nor max, which doesn't mean much, but no big deal -->
+
+      <xs:element name="unit" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
+    </xs:sequence>
+  </xs:complexType>
+
+
+  <xs:complexType name="ValueAndUnit">
+    <xs:sequence>
+      <xs:element name="value" type="xs:double" minOccurs="0" maxOccurs="1" />
+      <xs:element name="textValue" type="xs:double" minOccurs="0" maxOccurs="1" />
+      <xs:element name="unit" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ResultInRange">
+    <xs:sequence>
+      <xs:element name="valueAndUnit" type="indivo:ValueAndUnit" minOccurs="1" maxOccurs="1" />
+
+      <xs:element name="normalRange" type="indivo:Range" minOccurs="0" maxOccurs="1" />
+
+      <!-- nontoxicrange as in, if it's outside the range, it's toxic -->
+      <xs:element name="nonToxicRange" type="indivo:Range" minOccurs="0" maxOccurs="1" />
+
+      <!-- HL7 defines flag types -->
+      <xs:element name="flag" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
+    </xs:sequence>
+  </xs:complexType>
+
+</xs:schema>
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntheticPatients/indivo-schemas/vitals.xsd	Wed Jul 14 17:05:29 2010 -0400
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#" xmlns:indivo="http://indivo.org/vocab/xml/documents#"
+	   elementFormDefault="qualified">
+
+  <xs:include schemaLocation="codes.xsd" />
+
+  <xs:element name="VitalSign">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="dateMeasured" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
+        <xs:element name="name" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+        <xs:element name="value" type="xs:decimal" minOccurs="1" maxOccurs="1" />
+        <xs:element name="unit" type="indivo:CodedValue" minOccurs="1" maxOccurs="1" />
+
+        <xs:element name="site" type="xs:string" minOccurs="0" maxOccurs="1" />
+
+        <xs:element name="position" type="xs:string" minOccurs="0" maxOccurs="1" />
+
+        <xs:element name="comments" type="xs:string" minOccurs="0" maxOccurs="1" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>