### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: t/resources/structureDefinition/CapabilityStatement.json
### ----------------------------------------------------
### -- Chunk 19 of 22
 : "Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.rest.interaction.documentation",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "markdown"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.rest.searchParam",
      "path" : "CapabilityStatement.rest.searchParam",
      "short" : "Search parameters for searching all resources",
      "definition" : "Search parameters that are supported for searching all resources for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.",
      "comment" : "Typically, the only search parameters supported for all searches are those that apply to all resources - tags, profiles, text search etc. These search parameters should include the control search parameters such as _sort, _count, etc. that also apply to this resource (though many will be listed at [CapabilityStatement.rest.searchParam](capabilitystatement-definitions.html#CapabilityStatement.rest.searchParam)). The behavior of some search parameters may be further described by other code or extension elements, or narrative within the capability statement or linked [SearchParameter](searchparameter.html#) definitions.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.rest.searchParam",
        "min" : 0,
        "max" : "*"
      },
      "contentReference" : "#CapabilityStatement.rest.resource.searchParam",
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.rest.operation",
      "path" : "CapabilityStatement.rest.operation",
      "short" : "Definition of a system level operation",
      "definition" : "Definition of an operation or a named query together with its parameters and their meaning and type.",
      "comment" : "CapabilityStatement.rest.operation is for operations invoked at the system level, or for operations that are supported across multiple resource types. Operations linked from CapabilityStatement.rest.operation must have OperationDefinition.system = true, or more than one Operation.resource.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.rest.operation",
        "min" : 0,
        "max" : "*"
      },
      "contentReference" : "#CapabilityStatement.rest.resource.operation",
      "isModifier" : false,
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.rest.compartment",
      "path" : "CapabilityStatement.rest.compartment",
      "short" : "Compartments served/used by system",
      "definition" : "An absolute URI which is a reference to the definition of a compartment that the system supports. The reference is to a CompartmentDefinition resource by its canonical URL .",
      "comment" : "At present, the only defined compartments are at [CompartmentDefinition](compartmentdefinition.html).",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.rest.compartment",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/CompartmentDefinition"]
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.messaging",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
        "valueCode" : "trial-use"
      }],
      "path" : "CapabilityStatement.messaging",
      "short" : "If messaging is supported",
      "definition" : "A description of the messaging capabilities of the solution.",
      "comment" : "Multiple repetitions allow the documentation of multiple endpoints per solution.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.messaging",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "condition" : ["cpb-1"],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      }],
      "isModifier" : false,
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.messaging.id",
      "path" : "CapabilityStatement.messaging.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.extension",
      "path" : "CapabilityStatement.messaging.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.modifierExtension",
      "path" : "CapabilityStatement.messaging.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.endpoint",
      "path" : "CapabilityStatement.messaging.endpoint",
      "short" : "Where messages should be sent",
      "definition" : "An endpoint (network accessible address) to which messages and/or replies are to be sent.",
      "alias" : ["3"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.messaging.endpoint",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.messaging.endpoint.id",
      "path" : "CapabilityStatement.messaging.endpoint.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.endpoint.extension",
      "path" : "CapabilityStatement.messaging.endpoint.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.endpoint.modifierExtension",
      "path" : "CapabilityStatement.messaging.endpoint.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.endpoint.protocol",
      "path" : "CapabilityStatement.messaging.endpoint.protocol",
      "short" : "http | ftp | mllp +",
      "definition" : "A list of the messaging transport protocol(s) identifiers, supported by this endpoint.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.messaging.endpoint.protocol",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "Coding"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "MessageTransport"
        }],
        "strength" : "extensible",
        "description" : "The protocol used for message transport.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/message-transport"
      }
    },
    {
      "id" : "CapabilityStatement.messaging.endpoint.address",
      "path" : "CapabilityStatement.messaging.endpoint.address",
      "short" : "Network address or identifier of the end-point",
      "definition" : "The network address of the endpoint. For solutions that do not use network addresses for routing, it can be just an identifier.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.messaging.endpoint.address",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "url"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.messaging.reliableCache",
      "path" : "CapabilityStatement.messaging.reliableCache",
      "short" : "Reliable Message Cache Length (min)",
      "definition" : "Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).",
      "comment" : "If this value is missing then the application does not implement (receiver) or depend on (sender) reliable messaging.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.messaging.reliableCache",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "unsignedInt"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.messaging.documentation",
      "path" : "CapabilityStatement.messaging.documentation",
      "short" : "Messaging interface behavior details",
      "definition" : "Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the capability statement.  For example, the process for becoming an authorized messaging exchange partner.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.messaging.documentation",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "markdown"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.messaging.supportedMessage",
      "path" : "CapabilityStatement.messaging.supportedMessage",
      "short" : "Messages supported by this system",
      "definition" : "References to message definitions for messages this system can send or receive.",
      "comment" : "This is a proposed alternative to the messaging.event structure.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.messaging.supportedMessage",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      }],
      "isModifier" : false,
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.messaging.supportedMessage.id",
      "path" : "CapabilityStatement.messaging.supportedMessage.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.supportedMessage.extension",
      "path" : "CapabilityStatement.messaging.supportedMessage.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.supportedMessage.modifierExtension",
      "path" : "CapabilityStatement.messaging.supportedMessage.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "CapabilityStatement.messaging.supportedMessage.mode",
      "path" : "CapabilityStatement.messaging.supportedMessage.mode",
      "short" : "sender | receiver",
      "definition" : "The mode of this event declaration - whether application is sender or receiver.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.messaging.supportedMessage.mode",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : false,
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "EventCapabilityMode"
        }],
        "strength" : "required",
        "description" : "The mode of a message capability statement.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/event-capability-mode|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.messaging.supportedMessage.definition",
      "path" : "CapabilityStatement.messaging.supportedMessage.definition",
      "short" : "Message supported by this system",
      "definition" : "Points to a message definition that identifies the messaging event, message structure, allowed responses, etc.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.messaging.supportedMessage.definition",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/MessageDefinition"]
      }],
      "isModifier" : false,
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.document",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
        "valueCode" : "trial-use"
      }],
      "path" : "CapabilityStatement.document",
      "short" : "Document definition",
      "definition" : "A document definition.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "CapabilityStatement.document",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "condition" : ["cpb-1"],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      }],
      "isModifier" : false,
      "isSummary" : true
    },
    {
      "id" : "CapabilityStatement.document.id",
      "path" : "CapabilityStatement.document.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.document.extension",
      "path" : "CapabilityStatement.document.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "CapabilityStatement.document.modifierExtension",
      "path" : "CapabilityStatement.document.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "CapabilityStatement.document.mode",
      "path" : "CapabilityStatement.document.mode",
      "short" : "producer | consumer",
      "definition" : "Mode of this document declaration - whether an application is a producer or consumer.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.document.mode",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : false,
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "DocumentMode"
        }],
        "strength" : "required",
        "description" : "Whether the application produces or consumes documents.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/document-mode|4.0.0"
      }
    },
    {
      "id" : "CapabilityStatement.document.documentation",
      "path" : "CapabilityStatement.document.documentation",
      "short" : "Description of document support",
      "definition" : "A description of how the application supports or uses the specified document profile.  For example, when documents are created, what action is taken with consumed documents, etc.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.document.documentation",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "markdown"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "CapabilityStatement.document.profile",
      "path" : "CapabilityStatement.document.profile",
      "short" : "Constraint on the resources used in the document",
      "definition" : "A profile on the document Bundle that constrains which resources are present, and their contents.",
      "comment" : "The profile is actually on the Bundle.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "CapabilityStatement.document.profile",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]
      }],
      "isModifier" : false,
      "isSummary" : true
    }]
  },
  "differential" : {
    "element" : [{
      "id" : "CapabilityStatement",
      "path" : "CapabilityStatement",
      "short" : "A statement of system capabilities",
      "definition" : "A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.",
      "comment" : "Applications may implement multiple versions (see [Managing Multiple Versions](versioning.html), and the [$versions](capabilitystatement-operation-versions.html) operation). If they do, then a CapabilityStatement describes the system's support for a particular version of FHIR, and the server will have multiple statements, one for each version.",
      "min" : 0,
      "max" : "*",
      "constraint" : [{
        "key" : "cpb-7",
        "severity" : "error",
        "human" : "The set of documents must be unique by the combination of profile and mode.",
        "expression" : "document.select(profile&mode).isDistinct()",
        "xpath" : "count(f:document[f:mode/@value='producer'])=count(distinct-values(f:document[f:mode/@value='producer']/f:profile/f:reference/@value)) and count(f:document[f:mode/@value='consumer'])=count(distinct-values(f:document[f:mode/@value='consumer']/f:profile/f:reference/@value))"
      },
      {
        "key" : "cpb-16",
        "severity" : "error",
        "human" : "If kind = requirements, implementation and software must be absent",
        "expression" : "(kind!='requirements') or (implementation.exists().not() and software.exists().not())",
        "xpath" : "not(f:kind/@value='instance') or (not(exists(f:implementation)) and not(exists(f:software)))"
      },
      {
        "key" : "cpb-15",
        "severity" : "error",
        "human" : "If kind = capability, implementation must be absent, software must be present",
        "expression" : "(kind != 'capability') or (implementation.exists().not() and software.exists())",
        "xpath" : " not(f:kind/@value='instance') or (not(exists(f:implementation)) and exists(f:software))"
      },
      {
        "key" : "cpb-3",
        "severity" : "error",
        "human" : "Messaging end-point is required (and is only permitted) when a statement is for an implementation.",
        "expression" : "messaging.endpoint.empty() or kind = 'instance'",
        "xpath" : "not(exists(f:messaging/f:endpoint)) or f:kind/@value = 'instance'"
      },
      {
        "key" : "cpb-14",
        "severity" : "error",
        "human" : "If kind = instance, implementation must be present and software may