### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: t/resources/structureDefinition/CapabilityStatement.json
### ----------------------------------------------------
### -- Chunk 20 of 22
 be present",
        "expression" : "(kind != 'instance') or implementation.exists()",
        "xpath" : "not(f:kind/@value='instance') or exists(f:implementation)"
      },
      {
        "key" : "cpb-2",
        "severity" : "error",
        "human" : "A Capability Statement SHALL have at least one of description, software, or implementation element.",
        "expression" : "(description.count() + software.count() + implementation.count()) > 0",
        "xpath" : "count(f:software | f:implementation | f:description) > 0"
      },
      {
        "key" : "cpb-1",
        "severity" : "error",
        "human" : "A Capability Statement SHALL have at least one of REST, messaging or document element.",
        "expression" : "rest.exists() or messaging.exists() or document.exists()",
        "xpath" : "exists(f:rest) or exists(f:messaging) or exists(f:document)"
      },
      {
        "key" : "cpb-0",
        "severity" : "warning",
        "human" : "Name should be usable as an identifier for the module by machine processing applications such as code generation",
        "expression" : "name.matches('[A-Z]([A-Za-z0-9_]){0,254}')",
        "xpath" : "not(exists(f:name/@value)) or matches(f:name/@value, '[A-Z]([A-Za-z0-9_]){0,254}')"
      }],
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.url",
      "path" : "CapabilityStatement.url",
      "short" : "Canonical identifier for this capability statement, represented as a URI (globally unique)",
      "definition" : "An absolute URI that is used to identify this capability statement when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this capability statement is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the capability statement is stored on different servers.",
      "comment" : "Can be a urn:uuid: or a urn:oid: but real http: addresses are preferred.  Multiple instances may share the same URL if they have a distinct version.\n\nThe determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author.  Considerations for making this decision are found in [Technical and Business Versions](resource.html#versions). \n\nIn some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the [meta.source](resource.html#meta) element to indicate where the current master source of the resource can be found.",
      "requirements" : "Allows the capability statement to be referenced by a single globally unique identifier.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "uri"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.url"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.identifier"
      }]
    },
    {
      "id" : "CapabilityStatement.version",
      "path" : "CapabilityStatement.version",
      "short" : "Business version of the capability statement",
      "definition" : "The identifier that is used to identify this version of the capability statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the capability statement author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.",
      "comment" : "There may be different capability statement instances that have the same identifier but different versions.  The version can be appended to the url in a reference to allow a reference to a particular business version of the capability statement with the format [url]|[version].",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.version"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.version"
      }]
    },
    {
      "id" : "CapabilityStatement.name",
      "path" : "CapabilityStatement.name",
      "short" : "Name for this capability statement (computer friendly)",
      "definition" : "A natural language name identifying the capability statement. This name should be usable as an identifier for the module by machine processing applications such as code generation.",
      "comment" : "The name is not expected to be globally unique. The name should be a simple alphanumeric type name to ensure that it is machine-processing friendly.",
      "requirements" : "Support human navigation and code generation.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "condition" : ["inv-0"],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.title",
      "path" : "CapabilityStatement.title",
      "short" : "Name for this capability statement (human friendly)",
      "definition" : "A short, descriptive, user-friendly title for the capability statement.",
      "comment" : "This name does not need to be machine-processing friendly and may contain punctuation, white-space, etc.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.title"
      }]
    },
    {
      "id" : "CapabilityStatement.status",
      "path" : "CapabilityStatement.status",
      "short" : "draft | active | retired | unknown",
      "definition" : "The status of this capability statement. Enables tracking the life-cycle of the content.",
      "comment" : "Allows filtering of capability statements that are appropriate for use versus not.This is not intended for use with actual capability statements, but where capability statements are used to describe possible or desired systems.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : true,
      "isModifierReason" : "This is labeled as \"Is Modifier\" because applications should not use a retired {{title}} without due consideration",
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "PublicationStatus"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "The lifecycle status of an artifact.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/publication-status|4.0.0"
      },
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.status"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.status"
      }]
    },
    {
      "id" : "CapabilityStatement.experimental",
      "path" : "CapabilityStatement.experimental",
      "short" : "For testing purposes, not real usage",
      "definition" : "A Boolean value to indicate that this capability statement is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.",
      "comment" : "Allows filtering of capability statements that are appropriate for use versus not.",
      "requirements" : "Enables experimental content to be developed following the same lifecycle that would be used for a production-level capability statement.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.experimental"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.class"
      }]
    },
    {
      "id" : "CapabilityStatement.date",
      "path" : "CapabilityStatement.date",
      "short" : "Date last changed",
      "definition" : "The date  (and optionally time) when the capability statement was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the capability statement changes.",
      "comment" : "Note that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the capability statement. Additional specific dates may be added as extensions or be found by consulting Provenances associated with past versions of the resource.",
      "alias" : ["Revision Date"],
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "dateTime"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.date"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.recorded"
      }]
    },
    {
      "id" : "CapabilityStatement.publisher",
      "path" : "CapabilityStatement.publisher",
      "short" : "Name of the publisher (organization or individual)",
      "definition" : "The name of the organization or individual that published the capability statement.",
      "comment" : "Usually an organization but may be an individual. The publisher (or steward) of the capability statement is the organization or individual primarily responsible for the maintenance and upkeep of the capability statement. This is not necessarily the same individual or organization that developed and initially authored the content. The publisher is the primary point of contact for questions or issues with the capability statement. This item SHOULD be populated unless the information is available from context.",
      "requirements" : "Helps establish the \"authority/credibility\" of the capability statement.  May also allow for contact.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.publisher"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.witness"
      }]
    },
    {
      "id" : "CapabilityStatement.contact",
      "path" : "CapabilityStatement.contact",
      "short" : "Contact details for the publisher",
      "definition" : "Contact details to assist a user in finding and communicating with the publisher.",
      "comment" : "May be a web site, an email address, a telephone number, etc.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "ContactDetail"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.contact"
      }]
    },
    {
      "id" : "CapabilityStatement.description",
      "path" : "CapabilityStatement.description",
      "short" : "Natural language description of the capability statement",
      "definition" : "A free text natural language description of the capability statement from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.",
      "comment" : "This description can be used to capture details such as why the capability statement was built, comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the capability statement as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context (e.g. the language of the capability statement is presumed to be the predominant language in the place the capability statement was created).This does not need to be populated if the description is adequately implied by the software or implementation details.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "markdown"
      }],
      "condition" : ["cpb-2"],
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.description"
      }]
    },
    {
      "id" : "CapabilityStatement.useContext",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
        "valueCode" : "trial-use"
      }],
      "path" : "CapabilityStatement.useContext",
      "short" : "The context that the content is intended to support",
      "definition" : "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate capability statement instances.",
      "comment" : "When multiple useContexts are specified, there is no expectation that all or any of the contexts apply.",
      "requirements" : "Assist in searching for appropriate content.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "UsageContext"
      }],
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.useContext"
      }]
    },
    {
      "id" : "CapabilityStatement.jurisdiction",
      "path" : "CapabilityStatement.jurisdiction",
      "short" : "Intended jurisdiction for capability statement (if applicable)",
      "definition" : "A legal or geographic region in which the capability statement is intended to be used.",
      "comment" : "It may be possible for the capability statement to be used in jurisdictions other than those for which it was originally designed or intended.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "CodeableConcept"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "Jurisdiction"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "extensible",
        "description" : "Countries and regions within which this artifact is targeted for use.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/jurisdiction"
      },
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.jurisdiction"
      }]
    },
    {
      "id" : "CapabilityStatement.purpose",
      "path" : "CapabilityStatement.purpose",
      "short" : "Why this capability statement is defined",
      "definition" : "Explanation of why this capability statement is needed and why it has been designed as it has.",
      "comment" : "This element does not describe the usage of the capability statement. Instead, it provides traceability of ''why'' the resource is either needed or ''why'' it is defined as it is.  This may be used to point to source materials or specifications that drove the structure of this capability statement.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "markdown"
      }],
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.purpose"
      },
      {
        "identity" : "w5",
        "map" : "FiveWs.why[x]"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "CapabilityStatement.copyright",
      "path" : "CapabilityStatement.copyright",
      "short" : "Use and/or publishing restrictions",
      "definition" : "A copyright statement relating to the capability statement and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the capability statement.",
      "requirements" : "Consumers must be able to determine any legal restrictions on the use of the capability statement and/or its content.",
      "alias" : ["License",
      "Restrictions"],
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "markdown"
      }],
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.copyright"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "CapabilityStatement.kind",
      "path" : "CapabilityStatement.kind",
      "short" : "instance | capability | requirements",
      "definition" : "The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).",
      "requirements" : "Allow searching the 3 modes.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "condition" : ["cpb-15"],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "CapabilityStatementKind"
        }],
        "strength" : "required",
        "description" : "How a capability statement is intended to be used.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/capability-statement-kind|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.instantiates",
      "path" : "CapabilityStatement.instantiates",
      "short" : "Canonical URL of another capability statement this implements",
      "definition" : "Reference to a canonical URL of another CapabilityStatement that this software implements. This capability statement is a published API description that corresponds to a business service. The server may actually implement a subset of the capability statement it claims to implement, so the capability statement must specify the full capability details.",
      "comment" : "HL7 defines the following Services: [Terminology Service](terminology-service.html).    \n\nMany [Implementation Guides](http://fhir.org/guides/registry) define additional services.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/CapabilityStatement"]
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.imports",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
        "valueCode" : "trial-use"
      }],
      "path" : "CapabilityStatement.imports",
      "short" : "Canonical URL of another capability statement this adds to",
      "definition" : "Reference to a canonical URL of another CapabilityStatement that this software adds to. The capability statement automatically includes everything in the other statement, and it is not duplicated, though the server may repeat the same resources, interactions and operations to add additional details to them.",
      "comment" : "the contents of any directly or indirectly imported CapabilityStatements SHALL NOT overlap, i.e. they cannot refer to the same rest/resource, operations/name, searchparam/name, interaction/code, messaging/endpoint, document/mode pair.\n\nA capability statement that imports another CapabilityStatement automatically instantiates it too (though this is often not a very useful statement for the kinds of CapabilityStatements that are suitable for importing).",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/CapabilityStatement"]
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.software",
      "path" : "CapabilityStatement.software",
      "short" : "Software that is covered by this capability statement",
      "definition" : "Software that is covered by this capability statement.  It is used when the capability statement describes the capabilities of a particular software version, independent of an installation.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "condition" : ["cpb-2"],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.software.name",
      "path" : "CapabilityStatement.software.name",
      "short" : "A name the software is known by",
      "definition" : "Name the software is known by.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.software.version",
      "path" : "CapabilityStatement.software.version",
      "short" : "Version covered by this statement",
      "definition" : "The version identifier for the software covered by this statement.",
      "comment" : "If possible, a version should be specified, as statements are likely to be different for different versions of software.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.software.releaseDate",
      "path" : "CapabilityStatement.software.releaseDate",
      "short" : "Date this version was released",
      "definition" : "Date this version of the software was released.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "dateTime"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.implementation",
      "path" : "CapabilityStatement.implementation",
      "short" : "If this describes a specific instance",
      "definition" : "Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "condition" : ["cpb-2",
      "cpb-15"],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.implementation.description",
      "path" : "CapabilityStatement.implementation.description",
      "short" : "Describes this specific instance",
      "definition" : "Information about the specific installation that this capability statement relates to.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.implementation.url",
      "path" : "CapabilityStatement.implementation.url",
      "short" : "Base URL for the installation",
      "definition" : "An absolute base URL for the implementation.  This forms the base for REST interfaces as well as the mailbox and document interfaces.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "url"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.implementation.custodian",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
        "valueCode" : "trial-use"
      }],
      "path" : "CapabilityStatement.implementation.custodian",
      "short" : "Organization that manages the data",
      "definition" : "The organization responsible for the management of the instance and oversight of the data on the server at the specified URL.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Reference",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/Organization"]
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.fhirVersion",
      "path" : "CapabilityStatement.fhirVersion",
      "short" : "FHIR Version the system supports",
      "definition" : "The version of the FHIR specification that this CapabilityStatement describes (which SHALL be the same as the FHIR version of the CapabilityStatement itself). There is no default value.",
      "comment" : "Servers may implement multiple versions (see [Managing Multiple Versions](versioning.html), and the [$versions](capabilitystatement-operation-versions.html) operation). If they do, and the CapabilityStatement is requested from the server, then this fhirVersion will be either the version requested, or the server's default version.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "FHIRVersion"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "All published FHIR Versions.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/FHIR-version|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.format",
      "path" : "CapabilityStatement.format",
      "short" : "formats supported (xml | json | ttl | mime type)",
      "definition" : "A list of the formats supported by this implementation using their content types.",
      "comment" : "\"xml\", \"json\" and \"ttl\" are allowed, which describe the simple encodings described in the specification (and imply appropriate bundle support). Otherwise, mime types are legal here.",
      "min" : 1,
      "max" : "*",
      "type" : [{
        "code" : "code"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "MimeType"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "The mime type of an attachment. Any valid mime type is allowed.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/mimetypes|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.patchFormat",
      "path" : "CapabilityStatement.patchFormat",
      "short" : "Patch formats supported",
      "definition" : "A list of the patch formats supported by this implementation using their content types.",
      "comment" : "At present, the patch mime types application/json-patch+json and application/xml-patch+xml are legal. Generally, if a server supports PATCH, it would be expected to support the patch formats and match the formats it supports, but this is not always possible or necessary.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "code"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "MimeType"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "The mime type of an attachment. Any valid mime type is allowed.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/mimetypes|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.implementationGuide",
      "path" : "CapabilityStatement.implementationGuide",
      "short" : "Implementation guides supported",
      "definition" : "A list of implementation guides that the server does (or should) support in their entirety.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/ImplementationGuide"]
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.rest",
      "path" : "CapabilityStatement.rest",
      "short" : "If the endpoint is a RESTful one",
      "definition" : "A definition of the restful capabilities of the solution, if any.",
      "comment" : "Multiple repetitions allow definition of both client and/or server behaviors or possibly behaviors under different configuration settings (for software or requirements statements).",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "condition" : ["cpb-1"],
      "constraint" : [{
        "key" : "cpb-9",
        "severity" : "error",
        "human" : "A given resource can only be described once per RESTful mode.",
        "expression" : "resource.select(type).isDistinct()",
        "xpath" : "count(f:resource)=count(distinct-values(f:resource/f:type/@value))"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.rest.mode",
      "path" : "CapabilityStatement.rest.mode",
      "short" : "client | server",
      "definition" : "Identifies whether this portion of the statement is describing the ability to initiate or receive restful operations.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "RestfulCapabilityMode"
        }],
        "strength" : "required",
        "description" : "The mode of a RESTful capability statement.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/restful-capability-mode|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.rest.documentation",
      "path" : "CapabilityStatement.rest.documentation",
      "short" : "General description of implementation",
      "definition" : "Information about the system's restful capabilities that apply across all applications, such as security.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "markdown"
      }]
    },
    {
      "id" : "CapabilityStatement.rest.security",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
        "valueCode" : "trial-use"
      }],
      "path" : "CapabilityStatement.rest.security",
      "short" : "Information about security of implementation",
      "definition" : "Information about security implementation from an interface perspective - what a client needs to know.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.rest.security.cors",
      "path" : "CapabilityStatement.rest.security.cors",
      "short" : "Adds CORS Headers (http://enable-cors.org/)",
      "definition" : "Server adds CORS headers when responding to requests - this enables Javascript applications to use the server.",
      "comment" : "The easiest CORS headers to add are Access-Control-Allow-Origin: * & Access-Control-Request-Method: GET, POST, PUT, DELETE. All servers SHOULD support CORS.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.rest.security.service",
      "path" : "CapabilityStatement.rest.security.service",
      "short" : "OAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates",
      "definition" : "Types of security services that are supported/required by the system.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "CodeableConcept"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "RestfulSecurityService"
        }],
        "strength" : "extensible",
        "description" : "Types of security services used with FHIR.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/restful-security-service"
      }
    },
    {
      "id" : "CapabilityStatement.rest.security.description",
      "path" : "CapabilityStatement.rest.security.description",
      "short" : "General description of how security works",
      "definition" : "General description of how security works.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "markdown"
      }]
    },
    {
      "id" : "CapabilityStatement.rest.resource",
      "path" : "CapabilityStatement.rest.resource",
      "short" : "Resource served on the REST interface",
      "definition" : "A specification of the restful capabilities of the solution for a specific resource type.",
      "comment" : "Max of one repetition per resource type.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "cpb-12",
        "severity" : "error",
        "human" : "Search parameter names must be unique in the context of a resource.",
        "expression" : "searchParam.select(name).isDistinct()",
        "xpath" : "count(f:searchParam)=count(distinct-values(f:searchParam/f:name/@value))"
      }],
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.rest.resource.type",
      "path" : "CapabilityStatement.rest.resource.type",
      "short" : "A resource type that is supported",
      "definition" : "A type of resource exposed via the restful interface.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "ResourceType"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "One of the resource types defined as part of this version of FHIR.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/resource-types|4.0.0