<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions 
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
  xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
  xmlns:s="http://www.w3.org/2001/XMLSchema" 
  xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

  xmlns:iinterface="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/IInterface/"
  xmlns:hfw="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/"
  xmlns:tns="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/" 
  targetNamespace="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/" 
  >

  <wsdl:types>

    <s:schema elementFormDefault="qualified" targetNamespace="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/">

      <s:import
        namespace="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/IInterface/"
        schemaLocation="IInterface.xsd"
        />

      <s:import
         namespace="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/"
         schemaLocation="Common_V1.xsd"
        />


      <!-- Non-message types-->

      <s:complexType name="ConceptMatchCriteria">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="ConceptCategories" type="tns:ArrayOfConceptCategory" />
          <s:element minOccurs="1" maxOccurs="1" name="MatchPart" type="tns:MatchPart" />
          <s:element minOccurs="0" maxOccurs="1" name="MatchTarget" type="tns:MatchTarget" />
          <s:element minOccurs="0" maxOccurs="1" name="MatchRule" type="tns:MatchRule" />
          <s:element minOccurs="0" maxOccurs="1" name="MatchString" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="CodeHints" type="tns:ArrayOfCodeTypeAndName" />
        </s:sequence>
      </s:complexType>

      <s:simpleType name="ConceptCategory">
        <s:annotation>
          <s:documentation>
            The meaning of most concept category is intuitive and obvious. For example,
            
              ExpenseType,                  // eg. co-pay
              MeasurementType,              // (was eTestResult) detailed mesurement result - like %PO2
              OrganizationProviderRole,     // e.g. pharmacy
              Tests,                        // high level test like "Blood Platelets Panel"

            The following ConceptCategories are generally user-invisible, and used for internal purposes:
              ObjectRelationship,           // for relationships between health-record objects, like Visit and Expense, for aggregation (like attachments or journal entries)
              ObjectRelationshipCommutative
              UnitSubset
          </s:documentation>
        </s:annotation>
        <s:restriction base="s:string">
          <s:enumeration value="Activities" />
          <s:enumeration value="Allergens" />
          <s:enumeration value="Antibiotic" />
          <s:enumeration value="BloodType" />
          <s:enumeration value="Conditions" />
          <s:enumeration value="EmergencyContactRelationship" />
          <s:enumeration value="EmploymentStatus" />
          <s:enumeration value="EnvironmentalAllergens" />
          <s:enumeration value="ExpenseType" />
          <s:enumeration value="EyeColor" />
          <s:enumeration value="FamilyRelationship" />
          <s:enumeration value="FoodAllergens" />
          <s:enumeration value="Gender" />
          <s:enumeration value="HairColor" />
          <s:enumeration value="HealthStatus" />
          <s:enumeration value="HospitalizationVisitType" />
          <s:enumeration value="HumanLanguage" />
          <s:enumeration value="Immunizations" />
          <s:enumeration value="MaritalStatus" />
          <s:enumeration value="MeasurementType" />
          <s:enumeration value="Medications" />
          <s:enumeration value="MedicalDevice" />
          <s:enumeration value="MedicationFrequency" />
          <s:enumeration value="MedicationRoute" />
          <s:enumeration value="ObjectRelationship" />
          <s:enumeration value="ObjectRelationshipCommutative" />
          <s:enumeration value="OrganizationProviderRole" />
          <s:enumeration value="ProviderRoleType" />
          <s:enumeration value="PharmacologicSubstance" />
          <s:enumeration value="PhysicianProviderRole" />
          <s:enumeration value="RaceType" />
          <s:enumeration value="Religion" />
          <s:enumeration value="Symptoms" />
          <s:enumeration value="Tests" />
          <s:enumeration value="Treatments" />
          <s:enumeration value="Unit" />
          <s:enumeration value="UnitSubset" />
          <s:enumeration value="VisitType" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="ArrayOfConceptCategory">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="ConceptCategory" type="tns:ConceptCategory" />
        </s:sequence>
      </s:complexType>

      <s:simpleType name="MatchPart">
        <s:annotation>
          <s:documentation>
            All,             // MatchString ignored - just return all entries
            StartsWith,      // Check if each concept (or other target) starts with the given MatchString
            Contains,        // Check if each concept (or other target) contains the given MatchString
            Whole,           // Treat the given MatchString as the whole word, and find the best match for that whole word (usually use with AnyConceptName MatchTarget)
          </s:documentation>
        </s:annotation>
        <s:restriction base="s:string">
          <s:enumeration value="All" />
          <s:enumeration value="StartsWith" />
          <s:enumeration value="Contains" />
          <s:enumeration value="Whole" />
        </s:restriction>
      </s:simpleType>

      <s:simpleType name="MatchTarget">
        <s:restriction base="s:string">
          <s:enumeration value="PrimaryConceptName" />
          <s:enumeration value="AnyConceptName" />
          <s:enumeration value="AnyConceptNameOrCode" />
          <s:enumeration value="AnyConceptNameOrCodeOrDescription" />
        </s:restriction>
      </s:simpleType>

      <s:simpleType name="MatchRule">
        <s:restriction base="s:string">
          <s:enumeration value="CaseSensitive" />
          <s:enumeration value="CaseInsensitive" />
          <s:enumeration value="FuzzyMatch" />
        </s:restriction>
      </s:simpleType>

      <s:complexType name="CodeTypeAndName">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="CodeType" type="tns:CodeType" />
          <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfCodeTypeAndName">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="CodeTypeAndName" type="tns:CodeTypeAndName" />
        </s:sequence>
      </s:complexType>

      <s:simpleType name="CodeType">
        <s:restriction base="s:string">
          <s:enumeration value="UMLS" />
          <s:enumeration value="HF" />
          <s:enumeration value="USER" />
          <s:enumeration value="ICD9" />
          <s:enumeration value="ICD10" />
          <s:enumeration value="SNOMED_CT" />
          <s:enumeration value="LOINC" />
          <s:enumeration value="NDC" />
          <s:enumeration value="RXNORM" />
          <s:enumeration value="ACT" />
          <s:enumeration value="CPT" />
          <s:enumeration value="CCS_Single" />
          <s:enumeration value="CCS_Multi" />
          <s:enumeration value="DRG" />
        </s:restriction>
      </s:simpleType>

      <s:simpleType name="OrderBy">
        <s:annotation>
          <s:documentation>
            PreferredOrder,		// defaults to by PrimaryName, but COULD be different on a ConceptCategory
                              // by ConceptCategory basis (e.g. for HealthStatus we return
                              // excellent, then good, etc...)
          </s:documentation>
        </s:annotation>
        <s:restriction base="s:string">
          <s:enumeration value="PrimaryName" />
          <s:enumeration value="ICD9Code" />
          <s:enumeration value="PreferredOrder" />
          <s:enumeration value="BestMatch" />
        </s:restriction>
      </s:simpleType>

      <s:complexType name="Relationship">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="L1" type="tns:ConceptKey" />
          <s:element minOccurs="1" maxOccurs="1" name="RelationshipKind" type="tns:RelationshipKind" />
          <s:element minOccurs="1" maxOccurs="1" name="L2" type="tns:ConceptKey" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfRelationship">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Relationship" type="tns:Relationship" />
        </s:sequence>
      </s:complexType>

      <s:complexType name="StatisticalDataForLocation">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Location" type="tns:StatisticalDataLocation" />
          <s:element minOccurs="0" maxOccurs="1" name="Data" type="tns:ArrayOfStatisticalDatum" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfStatisticalDataForLocation">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="StatisticalDataForLocation" type="tns:StatisticalDataForLocation" />
        </s:sequence>
      </s:complexType>

      <s:complexType name="StatisticalDataLocation">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="ForZipCode" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="ForState" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="ForCountry" type="s:string" />
        </s:sequence>
      </s:complexType>

      <s:complexType name="StatisticalDatum">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="StatType" type="tns:StatType" />
          <s:element minOccurs="0" maxOccurs="1" name="StatValue" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfStatisticalDatum">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="StatisticalDatum" nillable="true" type="tns:StatisticalDatum" />
        </s:sequence>
      </s:complexType>

      <s:simpleType name="StatType">
        <s:restriction base="s:string">
          <s:enumeration value="MeanChargesInDollars" />
          <s:enumeration value="PercentDied" />
          <s:enumeration value="NumberOfDischargesForYear" />
          <s:enumeration value="PercentOfTotalDischarges" />
          <s:enumeration value="MeanLengthOfStayInDays" />
          <s:enumeration value="PercentMales" />
          <s:enumeration value="MeanAge" />
        </s:restriction>
      </s:simpleType>

      <s:simpleType name="RelationshipKind">
        <s:restriction base="s:string">
          <s:enumeration value="BrandNameOf" />
          <s:enumeration value="ContraindicatedFor" />
          <s:enumeration value="InstanceOf" />
          <s:enumeration value="MayPrevent" />
          <s:enumeration value="MayTreat" />
          <s:enumeration value="PhysiologicEffectOf" />
          <s:enumeration value="RelatedTo" />
          <s:enumeration value="SubcategoryOf" />
          <s:enumeration value="UsedBy" />
          <s:enumeration value="UsedFor" />
        </s:restriction>
      </s:simpleType>

      <s:complexType name="SourceDefinition">
        <s:annotation>
          <s:documentation>
            The BLOB associated with IconGIF64x64 can be retrieved with IReferenceContent_V1::GetBlob.
          </s:documentation>
        </s:annotation>
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="ID" type="s:ID" />
          <s:element minOccurs="0" maxOccurs="1" name="OrganizationName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="ProductName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Version" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="URL" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Copyrights" type="hfw:ArrayOfString" />
          <s:element minOccurs="0" maxOccurs="1" name="IconGIF64x64" type="s:ID" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfSourceDefinition">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="SourceDefinition" type="tns:SourceDefinition" />
        </s:sequence>
      </s:complexType>

      <s:simpleType name="ConceptKey">
        <s:restriction base="s:string">
        </s:restriction>
      </s:simpleType>
      <s:complexType name="ArrayOfConceptKey">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="ConceptKey" type="tns:ConceptKey" />
        </s:sequence>
      </s:complexType>

      <s:complexType name="WebLink">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Title" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="URL" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfWebLink">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="WebLink" type="tns:WebLink" />
        </s:sequence>
      </s:complexType>

      <s:simpleType name="DescriptionKind">
        <s:restriction base="s:string">
          <s:enumeration value="ShortText" />
          <s:enumeration value="LongText" />
        </s:restriction>
      </s:simpleType>

      <s:complexType name="TestPanel">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Items" type="tns:ArrayOfItemInfo" />
        </s:sequence>
      </s:complexType>

      <s:complexType name="ItemInfo">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="RowNum" type="s:unsignedInt" />
          <s:element minOccurs="1" maxOccurs="1" name="ItemName" type="tns:ConceptKey" />
          <s:element minOccurs="0" maxOccurs="1" name="ItemLabel" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="UnitSubset" type="tns:ConceptKey" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfItemInfo">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="ItemInfo" nillable="true" type="tns:ItemInfo" />
        </s:sequence>
      </s:complexType>



      <!-- Message Records -->      
      
      <s:element name="Match">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="matchCriteria" type="tns:ConceptMatchCriteria" />
            <s:element minOccurs="0" maxOccurs="1" name="concepts" type="tns:ArrayOfConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="MatchResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="MatchResult" type="hfw:ArrayOfBoolean" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="FindConcepts">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="matchCriteria" type="tns:ConceptMatchCriteria" />
            <s:element minOccurs="0" maxOccurs="1" name="maxMatches" type="s:unsignedInt" />
            <s:element minOccurs="0" maxOccurs="1" name="orderBy" type="tns:OrderBy" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="FindConceptsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="FindConceptsResult" type="tns:ArrayOfConceptKey" />
            <s:element minOccurs="1" maxOccurs="1" name="totalMatches" type="s:unsignedInt" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetBLOB">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="idref" type="s:ID" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetBLOBResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="blob" type="s:base64Binary" />
            <s:element minOccurs="0" maxOccurs="1" name="mimeType" type="hfw:MIMEContentType" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="HasCategory">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="1" maxOccurs="1" name="conceptCat" type="tns:ConceptCategory" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="HasCategoryResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="HasCategoryResult" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetPrintName">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="concepts" type="tns:ArrayOfConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:language" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetPrintNameResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetPrintNameResult" type="hfw:ArrayOfString" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetAbbreviations">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:language" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetAbbreviationsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetAbbreviationsResult" type="hfw:ArrayOfString" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetAliases">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="1" maxOccurs="1" name="includeAbbrevs" type="s:boolean" />
            <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:language" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetAliasesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetAliasesResult" type="hfw:ArrayOfString" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetWebLinks">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concepts" type="tns:ArrayOfConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetWebLinksResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetWebLinksResult" type="tns:ArrayOfWebLink" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetDescription">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="descriptionKind" type="tns:DescriptionKind" />
            <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:language" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetDescriptionResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetDescriptionResult" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetTestPanel">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:language" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetTestPanelResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="result" type="tns:TestPanel" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetCode">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="codeType" type="tns:CodeType" />
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetCodeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetCodeResult" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetCodes">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetCodesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetCodesResult" type="tns:ArrayOfCodeTypeAndName" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetSources">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:language" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetSourcesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetSourcesResult" type="tns:ArrayOfSourceDefinition" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetStatisticalData">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetStatisticalDataResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetStatisticalDataResult" type="tns:ArrayOfStatisticalDataForLocation" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="IsCommutative">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="rk" type="tns:RelationshipKind" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="IsCommutativeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="IsCommutativeResult" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetRelationships">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="relationshipKind" type="tns:RelationshipKind" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetRelationshipsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetRelationshipsResult" type="tns:ArrayOfRelationship" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetParentConcepts">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
            <s:element minOccurs="0" maxOccurs="1" name="recurse" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetParentConceptsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetParentConceptsResult" type="tns:ArrayOfConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetRelatedConceptsWithStatisticalData">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetRelatedConceptsWithStatisticalDataResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetRelatedConceptsWithStatisticalDataResult" type="tns:ArrayOfConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:element name="GetCategories">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="concept" type="tns:ConceptKey" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetCategoriesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetCategoriesResult" type="tns:ArrayOfConceptCategory" />
          </s:sequence>
        </s:complexType>
      </s:element>

    </s:schema>
  </wsdl:types>



  <wsdl:message name="GetInterfaceSoapIn">
    <wsdl:part name="parameters" element="iinterface:GetInterface" />
  </wsdl:message>
  <wsdl:message name="GetInterfaceSoapOut">
    <wsdl:part name="parameters" element="iinterface:GetInterfaceResponse" />
  </wsdl:message>

  <wsdl:message name="FindConceptsSoapIn">
    <wsdl:part name="parameters" element="tns:FindConcepts" />
  </wsdl:message>
  <wsdl:message name="FindConceptsSoapOut">
    <wsdl:part name="parameters" element="tns:FindConceptsResponse" />
  </wsdl:message>

  <wsdl:message name="MatchSoapIn">
    <wsdl:part name="parameters" element="tns:Match" />
  </wsdl:message>
  <wsdl:message name="MatchSoapOut">
    <wsdl:part name="parameters" element="tns:MatchResponse" />
  </wsdl:message>

  <wsdl:message name="GetBLOBSoapIn">
    <wsdl:part name="parameters" element="tns:GetBLOB" />
  </wsdl:message>
  <wsdl:message name="GetBLOBSoapOut">
    <wsdl:part name="parameters" element="tns:GetBLOBResponse" />
  </wsdl:message>

  <wsdl:message name="HasCategorySoapIn">
    <wsdl:part name="parameters" element="tns:HasCategory" />
  </wsdl:message>
  <wsdl:message name="HasCategorySoapOut">
    <wsdl:part name="parameters" element="tns:HasCategoryResponse" />
  </wsdl:message>

  <wsdl:message name="GetPrintNameSoapIn">
    <wsdl:part name="parameters" element="tns:GetPrintName" />
  </wsdl:message>
  <wsdl:message name="GetPrintNameSoapOut">
    <wsdl:part name="parameters" element="tns:GetPrintNameResponse" />
  </wsdl:message>

  <wsdl:message name="GetAbbreviationsSoapIn">
    <wsdl:part name="parameters" element="tns:GetAbbreviations" />
  </wsdl:message>
  <wsdl:message name="GetAbbreviationsSoapOut">
    <wsdl:part name="parameters" element="tns:GetAbbreviationsResponse" />
  </wsdl:message>

  <wsdl:message name="GetAliasesSoapIn">
    <wsdl:part name="parameters" element="tns:GetAliases" />
  </wsdl:message>
  <wsdl:message name="GetAliasesSoapOut">
    <wsdl:part name="parameters" element="tns:GetAliasesResponse" />
  </wsdl:message>

  <wsdl:message name="GetWebLinksSoapIn">
    <wsdl:part name="parameters" element="tns:GetWebLinks" />
  </wsdl:message>
  <wsdl:message name="GetWebLinksSoapOut">
    <wsdl:part name="parameters" element="tns:GetWebLinksResponse" />
  </wsdl:message>

  <wsdl:message name="GetDescriptionSoapIn">
    <wsdl:part name="parameters" element="tns:GetDescription" />
  </wsdl:message>
  <wsdl:message name="GetDescriptionSoapOut">
    <wsdl:part name="parameters" element="tns:GetDescriptionResponse" />
  </wsdl:message>

  <wsdl:message name="GetTestPanelSoapIn">
    <wsdl:part name="parameters" element="tns:GetTestPanel" />
  </wsdl:message>
  <wsdl:message name="GetTestPanelSoapOut">
    <wsdl:part name="parameters" element="tns:GetTestPanelResponse" />
  </wsdl:message>

  <wsdl:message name="GetCodeSoapIn">
    <wsdl:part name="parameters" element="tns:GetCode" />
  </wsdl:message>
  <wsdl:message name="GetCodeSoapOut">
    <wsdl:part name="parameters" element="tns:GetCodeResponse" />
  </wsdl:message>

  <wsdl:message name="GetCodesSoapIn">
    <wsdl:part name="parameters" element="tns:GetCodes" />
  </wsdl:message>
  <wsdl:message name="GetCodesSoapOut">
    <wsdl:part name="parameters" element="tns:GetCodesResponse" />
  </wsdl:message>

  <wsdl:message name="GetSourcesSoapIn">
    <wsdl:part name="parameters" element="tns:GetSources" />
  </wsdl:message>
  <wsdl:message name="GetSourcesSoapOut">
    <wsdl:part name="parameters" element="tns:GetSourcesResponse" />
  </wsdl:message>

  <wsdl:message name="GetStatisticalDataSoapIn">
    <wsdl:part name="parameters" element="tns:GetStatisticalData" />
  </wsdl:message>
  <wsdl:message name="GetStatisticalDataSoapOut">
    <wsdl:part name="parameters" element="tns:GetStatisticalDataResponse" />
  </wsdl:message>

  <wsdl:message name="IsCommutativeSoapIn">
    <wsdl:part name="parameters" element="tns:IsCommutative" />
  </wsdl:message>
  <wsdl:message name="IsCommutativeSoapOut">
    <wsdl:part name="parameters" element="tns:IsCommutativeResponse" />
  </wsdl:message>

  <wsdl:message name="GetRelationshipsSoapIn">
    <wsdl:part name="parameters" element="tns:GetRelationships" />
  </wsdl:message>
  <wsdl:message name="GetRelationshipsSoapOut">
    <wsdl:part name="parameters" element="tns:GetRelationshipsResponse" />
  </wsdl:message>
  
  <wsdl:message name="GetParentConceptsSoapIn">
    <wsdl:part name="parameters" element="tns:GetParentConcepts" />
  </wsdl:message>
  <wsdl:message name="GetParentConceptsSoapOut">
    <wsdl:part name="parameters" element="tns:GetParentConceptsResponse" />
  </wsdl:message>
 
  <wsdl:message name="GetRelatedConceptsWithStatisticalDataSoapIn">
    <wsdl:part name="parameters" element="tns:GetRelatedConceptsWithStatisticalData" />
  </wsdl:message>
  <wsdl:message name="GetRelatedConceptsWithStatisticalDataSoapOut">
    <wsdl:part name="parameters" element="tns:GetRelatedConceptsWithStatisticalDataResponse" />
  </wsdl:message>

  <wsdl:message name="GetCategoriesSoapIn">
    <wsdl:part name="parameters" element="tns:GetCategories" />
  </wsdl:message>
  <wsdl:message name="GetCategoriesSoapOut">
    <wsdl:part name="parameters" element="tns:GetCategoriesResponse" />
  </wsdl:message>

  
  
  <wsdl:portType name="ReferenceContent_V1Soap">

    <wsdl:operation name="GetInterface">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This function is used to provide a uniform 'interface' to interface versioning. You can call this web method on most HealthFrameWorks web interfaces to request a particular interface. Generally - the 'ID' passed is the same as the namespace used to define the WSDL defining th einterface. The object is often optional, but whether its needed depends on context. Since different interfaces maybe supported on different ports or even hosts, this method returns a URL.</wsdl:documentation>
      <wsdl:input message="tns:GetInterfaceSoapIn" />
      <wsdl:output message="tns:GetInterfaceSoapOut" />
    </wsdl:operation>


    <wsdl:operation name="FindConcepts">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">FindConcepts searched the reference library for concepts matching the criteria in matchCriteria. It returns a max of maxMatches. The results can be sorted. The out variable 'totalMatches' returns the total # of possible matches (if it exceeds max matches and you've specified OrderBy 'BestMatch'). Note that to find the best match - set the # returned to 1, and OrderBy='BestMatch'.
To get the print names of the returned concepts, call GetPrintName ()</wsdl:documentation>
      <wsdl:input message="tns:FindConceptsSoapIn" />
      <wsdl:output message="tns:FindConceptsSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="Match">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns true iff the given concept is matched by the given 'matchCriteria'. You can provide multiple concept keys, and it will return multiple boolean results (so you can more efficiently batch requests)</wsdl:documentation>
      <wsdl:input message="tns:MatchSoapIn" />
      <wsdl:output message="tns:MatchSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetBLOB">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">The reference content manager sometimes has to store/return BLOBs of binary data, along with type information. For example, when returning images, these are returned as a BLOB along with type info.</wsdl:documentation>
      <wsdl:input message="tns:GetBLOBSoapIn" />
      <wsdl:output message="tns:GetBLOBSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="HasCategory">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">See if the given concept has the given associated category.</wsdl:documentation>
      <wsdl:input message="tns:HasCategorySoapIn" />
      <wsdl:output message="tns:HasCategorySoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetPrintName">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">GetPrintName () returns the primary concept name (see also GetAliases). This function can be applied to many concepts at once, in order to reduce turnaround time. It takes an optional s:language language argument.</wsdl:documentation>
      <wsdl:input message="tns:GetPrintNameSoapIn" />
      <wsdl:output message="tns:GetPrintNameSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetAbbreviations">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get all the abbreviations associated with a given concept. Abbreviations are a special kind of alias for a concept - like LBS for weight in pounds. This function takes an optional s:language argument.</wsdl:documentation>
      <wsdl:input message="tns:GetAbbreviationsSoapIn" />
      <wsdl:output message="tns:GetAbbreviationsSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetAliases">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get all the aliasees associated with a given concept. Abbreviations are a special kind of alias for a concept - like LBS for weight in pounds, and can be included or omitted according to the 'includeAbbrevs' argument (defaults true). This function takes an optional s:language argument.</wsdl:documentation>
      <wsdl:input message="tns:GetAliasesSoapIn" />
      <wsdl:output message="tns:GetAliasesSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetWebLinks">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the WebLink objects associated with a given concept. These are typically explanatory, but can sometimes also be self-help etc.</wsdl:documentation>
      <wsdl:input message="tns:GetWebLinksSoapIn" />
      <wsdl:output message="tns:GetWebLinksSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetDescription">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get the description associated with a given concept. Descriptions come in 'LongText' and 'ShortText' varieties, which you choose with the 'descriptionKind' argument (defaults to ShortText). This function takes an optional s:language argument to select the language of the description.</wsdl:documentation>
      <wsdl:input message="tns:GetDescriptionSoapIn" />
      <wsdl:output message="tns:GetDescriptionSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetTestPanel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">A 'TestPanel' is a schema for a collection of named measurements (and often layout information) for measurements that often are logically grouped. For example - the Blood Pressure Panel has measurements for systolic, dystolic pressure and pulse.</wsdl:documentation>
      <wsdl:input message="tns:GetTestPanelSoapIn" />
      <wsdl:output message="tns:GetTestPanelSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetCode">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return the code for the given CodeType / concept enumeration (if any - could be empty string) - unless CodeType==GetPrimaryCodeType ()</wsdl:documentation>
      <wsdl:input message="tns:GetCodeSoapIn" />
      <wsdl:output message="tns:GetCodeSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetCodes">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return all the codes (for all known coding systems) for the given concept.</wsdl:documentation>
      <wsdl:input message="tns:GetCodesSoapIn" />
      <wsdl:output message="tns:GetCodesSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetSources">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Data for concepts may come from many sources. This method retrieves those sources, to allow proper attribution.</wsdl:documentation>
      <wsdl:input message="tns:GetSourcesSoapIn" />
      <wsdl:output message="tns:GetSourcesSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetStatisticalData">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Many concepts have statistical data (e.g. success rates, mortality rates etc) associated with them, and this method retrieves those statistics.</wsdl:documentation>
      <wsdl:input message="tns:GetStatisticalDataSoapIn" />
      <wsdl:output message="tns:GetStatisticalDataSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="IsCommutative">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">IsCommutative returns true iff the given relationship is commutative (that is a OP b &lt;==&gt; b OP a)</wsdl:documentation>
      <wsdl:input message="tns:IsCommutativeSoapIn" />
      <wsdl:output message="tns:IsCommutativeSoapOut" />
    </wsdl:operation>
  
    <wsdl:operation name="GetRelationships">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return the relationship objects associated with the given concept (relationships to other concepts). If relationshipKind is omitted, then return ANY relationship.</wsdl:documentation>
      <wsdl:input message="tns:GetRelationshipsSoapIn" />
      <wsdl:output message="tns:GetRelationshipsSoapOut" />
    </wsdl:operation>
    
    <wsdl:operation name="GetParentConcepts">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns parent (more general) concepts assocaited with this concept. Recursively gather all ancestor concepts if 'recurse' is true (defaults true).</wsdl:documentation>
      <wsdl:input message="tns:GetParentConceptsSoapIn" />
      <wsdl:output message="tns:GetParentConceptsSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetRelatedConceptsWithStatisticalData">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the concepts related to 'concept' which have some kind of statistical data.</wsdl:documentation>
      <wsdl:input message="tns:GetRelatedConceptsWithStatisticalDataSoapIn" />
      <wsdl:output message="tns:GetRelatedConceptsWithStatisticalDataSoapOut" />
    </wsdl:operation>

    <wsdl:operation name="GetCategories">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the ConceptCategories (e.g. medication etc) associated with the given concept.</wsdl:documentation>
      <wsdl:input message="tns:GetCategoriesSoapIn" />
      <wsdl:output message="tns:GetCategoriesSoapOut" />
    </wsdl:operation>

  
  </wsdl:portType>
  
  

  <wsdl:binding name="ReferenceContent_V1Soap" type="tns:ReferenceContent_V1Soap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />

    <wsdl:operation name="GetInterface">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/GetInterface" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="FindConcepts">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/FindConcepts" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="Match">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/Match" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetBLOB">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetBLOB" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="HasCategory">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/HasCategory" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetPrintName">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetPrintName" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetAbbreviations">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetAbbreviations" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetAliases">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetAliases" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetWebLinks">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetWebLinks" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetDescription">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetDescription" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetTestPanel">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetTestPanel" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetCode">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetCode" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetCodes">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetCodes" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetSources">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetSources" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetStatisticalData">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetStatisticalData" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="IsCommutative">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/IsCommutative" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetRelationships">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetRelationships" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    
    <wsdl:operation name="GetParentConcepts">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetParentConcepts" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetRelatedConceptsWithStatisticalData">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetRelatedConceptsWithStatisticalData" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetCategories">
      <soap:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetCategories" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

  </wsdl:binding>
  
 
  <wsdl:binding name="ReferenceContent_V1Soap12" type="tns:ReferenceContent_V1Soap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />

    <wsdl:operation name="GetInterface">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/GetInterface" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="FindConcepts">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/FindConcepts" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="Match">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/Match" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetBLOB">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetBLOB" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="HasCategory">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/HasCategory" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetPrintName">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetPrintName" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetAbbreviations">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetAbbreviations" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetAliases">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetAliases" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetWebLinks">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetWebLinks" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetDescription">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetDescription" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetTestPanel">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetTestPanel" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetCode">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetCode" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetCodes">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetCodes" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetSources">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetSources" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetStatisticalData">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetStatisticalData" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="IsCommutative">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/IsCommutative" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetRelationships">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetRelationships" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    
    <wsdl:operation name="GetParentConcepts">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetParentConcepts" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetRelatedConceptsWithStatisticalData">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetRelatedConceptsWithStatisticalData" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetCategories">
      <soap12:operation soapAction="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/ReferenceContent_V1/GetCategories" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>


  <wsdl:service name="ReferenceContent_V1">
    <wsdl:port name="ReferenceContent_V1Soap" binding="tns:ReferenceContent_V1Soap">
      <soap:address location="https://Demo.HealthFrameWorks.com:8083/" />
    </wsdl:port>
    <wsdl:port name="ReferenceContent_V1Soap12" binding="tns:ReferenceContent_V1Soap12">
      <soap12:address location="https://Demo.HealthFrameWorks.com:8083/" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

