PREFIX fhir:
PREFIX fhirvs:
PREFIX xsd:
BASE
start=@ AND {fhir:nodeRole [fhir:treeRoot]}
# A statement of system capabilities
CLOSED {
a [fhir:CapabilityStatement];
fhir:nodeRole [fhir:treeRoot]?;
fhir:Resource.id @?; # Logical id of this artifact
fhir:Resource.meta @?; # Metadata about the resource
fhir:Resource.implicitRules @?; # A set of rules under which this
# content was created
fhir:Resource.language @?; # Language of the resource content
fhir:DomainResource.text @?; # Text summary of the resource, for
# human interpretation
fhir:DomainResource.contained @*; # Contained, inline Resources
fhir:DomainResource.extension @*; # Additional content defined by
# implementations
fhir:DomainResource.modifierExtension @*; # Extensions that cannot be ignored
fhir:CapabilityStatement.url @?; # Canonical identifier for this
# capability statement, represented
# as a URI (globally unique)
fhir:CapabilityStatement.version @?; # Business version of the capability
# statement
fhir:CapabilityStatement.name @?; # Name for this capability statement
# (computer friendly)
fhir:CapabilityStatement.title @?; # Name for this capability statement
# (human friendly)
fhir:CapabilityStatement.status @ AND
{fhir:value @fhirvs:publication-status}; # draft | active | retired | unknown
fhir:CapabilityStatement.experimental @?; # For testing purposes, not real
# usage
fhir:CapabilityStatement.date @; # Date last changed
fhir:CapabilityStatement.publisher @?; # Name of the publisher
# (organization or individual)
fhir:CapabilityStatement.contact @*; # Contact details for the publisher
fhir:CapabilityStatement.description @?; # Natural language description of
# the capability statement
fhir:CapabilityStatement.useContext @*; # The context that the content is
# intended to support
fhir:CapabilityStatement.jurisdiction @*; # Intended jurisdiction for
# capability statement (if
# applicable)
fhir:CapabilityStatement.purpose @?; # Why this capability statement is
# defined
fhir:CapabilityStatement.copyright @?; # Use and/or publishing restrictions
fhir:CapabilityStatement.kind @ AND
{fhir:value @fhirvs:capability-statement-kind}; # instance | capability |
# requirements
fhir:CapabilityStatement.instantiates @*; # Canonical URL of another
# capability statement this
# implements
fhir:CapabilityStatement.imports @*; # Canonical URL of another
# capability statement this adds to
fhir:CapabilityStatement.software @?; # Software that is covered by this
# capability statement
fhir:CapabilityStatement.implementation @?; # If this describes a specific
# instance
fhir:CapabilityStatement.fhirVersion @ AND
{fhir:value @fhirvs:FHIR-version}; # FHIR Version the system supports
fhir:CapabilityStatement.format @ AND
{fhir:value @fhirvs:mimetypes}+; # formats supported (xml | json |
# ttl | mime type)
fhir:CapabilityStatement.patchFormat @ AND
{fhir:value @fhirvs:mimetypes}*; # Patch formats supported
fhir:CapabilityStatement.implementationGuide @*; # Implementation guides supported
fhir:CapabilityStatement.rest @*; # If the endpoint is a RESTful one
fhir:CapabilityStatement.messaging @*; # If messaging is supported
fhir:CapabilityStatement.document @*; # Document definition
fhir:index xsd:integer? # Relative position in a list
}
# If messaging is supported
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.messaging.endpoint @*; # Where messages should be sent
fhir:CapabilityStatement.messaging.reliableCache @?; # Reliable Message Cache Length (min)
fhir:CapabilityStatement.messaging.documentation @?; # Messaging interface behavior
# details
fhir:CapabilityStatement.messaging.supportedMessage @*; # Messages supported by this system
fhir:index xsd:integer? # Relative position in a list
}
# Software that is covered by this capability statement
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.software.name @; # A name the software is known by
fhir:CapabilityStatement.software.version @?; # Version covered by this statement
fhir:CapabilityStatement.software.releaseDate @?; # Date this version was released
fhir:index xsd:integer? # Relative position in a list
}
# Document definition
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.document.mode @ AND
{fhir:value @fhirvs:document-mode}; # producer | consumer
fhir:CapabilityStatement.document.documentation @?; # Description of document support
fhir:CapabilityStatement.document.profile @; # Constraint on the resources used
# in the document
fhir:index xsd:integer? # Relative position in a list
}
# If the endpoint is a RESTful one
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.mode @ AND
{fhir:value @fhirvs:restful-capability-mode}; # client | server
fhir:CapabilityStatement.rest.documentation @?; # General description of
# implementation
fhir:CapabilityStatement.rest.security @?; # Information about security of
# implementation
fhir:CapabilityStatement.rest.resource @*; # Resource served on the REST
# interface
fhir:CapabilityStatement.rest.interaction @*; # What operations are supported?
fhir:CapabilityStatement.rest.searchParam @*; # Search parameters for searching
# all resources
fhir:CapabilityStatement.rest.operation @*; # Definition of a system level
# operation
fhir:CapabilityStatement.rest.compartment @*; # Compartments served/used by system
fhir:index xsd:integer? # Relative position in a list
}
# If this describes a specific instance
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.implementation.description @; # Describes this specific instance
fhir:CapabilityStatement.implementation.url @?; # Base URL for the installation
fhir:CapabilityStatement.implementation.custodian @?; # Organization that manages the data
fhir:index xsd:integer? # Relative position in a list
}
# Resource served on the REST interface
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.resource.type @ AND
{fhir:value @fhirvs:resource-types}; # A resource type that is supported
fhir:CapabilityStatement.rest.resource.profile @?; # Base System profile for all uses
# of resource
fhir:CapabilityStatement.rest.resource.supportedProfile @*; # Profiles for use cases supported
fhir:CapabilityStatement.rest.resource.documentation @?; # Additional information about the
# use of the resource type
fhir:CapabilityStatement.rest.resource.interaction @*; # What operations are supported?
fhir:CapabilityStatement.rest.resource.versioning @ AND
{fhir:value @fhirvs:versioning-policy}?; # no-version | versioned |
# versioned-update
fhir:CapabilityStatement.rest.resource.readHistory @?; # Whether vRead can return past
# versions
fhir:CapabilityStatement.rest.resource.updateCreate @?; # If update can commit to a new
# identity
fhir:CapabilityStatement.rest.resource.conditionalCreate @?; # If allows/uses conditional create
fhir:CapabilityStatement.rest.resource.conditionalRead @ AND
{fhir:value @fhirvs:conditional-read-status}?; # not-supported | modified-since |
# not-match | full-support
fhir:CapabilityStatement.rest.resource.conditionalUpdate @?; # If allows/uses conditional update
fhir:CapabilityStatement.rest.resource.conditionalDelete @ AND
{fhir:value @fhirvs:conditional-delete-status}?; # not-supported | single | multiple
# - how conditional delete is
# supported
fhir:CapabilityStatement.rest.resource.referencePolicy @ AND
{fhir:value @fhirvs:reference-handling-policy}*; # literal | logical | resolves |
# enforced | local
fhir:CapabilityStatement.rest.resource.searchInclude @*; # _include values supported by the
# server
fhir:CapabilityStatement.rest.resource.searchRevInclude @*; # _revinclude values supported by
# the server
fhir:CapabilityStatement.rest.resource.searchParam @*; # Search parameters supported by
# implementation
fhir:CapabilityStatement.rest.resource.operation @*; # Definition of a resource operation
fhir:index xsd:integer? # Relative position in a list
}
# Information about security of implementation
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.security.cors @?; # Adds CORS Headers
# (http://enable-cors.org/)
fhir:CapabilityStatement.rest.security.service @*; # OAuth | SMART-on-FHIR | NTLM |
# Basic | Kerberos | Certificates
fhir:CapabilityStatement.rest.security.description @?; # General description of how
# security works
fhir:index xsd:integer? # Relative position in a list
}
# Where messages should be sent
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.messaging.endpoint.protocol @; # http | ftp | mllp +
fhir:CapabilityStatement.messaging.endpoint.address @; # Network address or identifier of
# the end-point
fhir:index xsd:integer? # Relative position in a list
}
# What operations are supported?
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.interaction.code @ AND
{fhir:value @fhirvs:system-restful-interaction}; # transaction | batch |
# search-system | history-system
fhir:CapabilityStatement.rest.interaction.documentation @?; # Anything special about operation
# behavior
fhir:index xsd:integer? # Relative position in a list
}
# Messages supported by this system
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.messaging.supportedMessage.mode @ AND
{fhir:value @fhirvs:event-capability-mode}; # sender | receiver
fhir:CapabilityStatement.messaging.supportedMessage.definition @; # Message supported by this system
fhir:index xsd:integer? # Relative position in a list
}
# Definition of a resource operation
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.resource.operation.name @; # Name by which the operation/query
# is invoked
fhir:CapabilityStatement.rest.resource.operation.definition @; # The defined operation/query
fhir:CapabilityStatement.rest.resource.operation.documentation @?; # Specific details about operation
# behavior
fhir:index xsd:integer? # Relative position in a list
}
# Search parameters supported by implementation
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.resource.searchParam.name @; # Name of search parameter
fhir:CapabilityStatement.rest.resource.searchParam.definition @?; # Source of definition for parameter
fhir:CapabilityStatement.rest.resource.searchParam.type @ AND
{fhir:value @fhirvs:search-param-type}; # number | date | string | token |
# reference | composite | quantity |
# uri | special
fhir:CapabilityStatement.rest.resource.searchParam.documentation @?; # Server-specific usage
fhir:index xsd:integer? # Relative position in a list
}
# What operations are supported?
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:CapabilityStatement.rest.resource.interaction.code @ AND
{fhir:value @fhirvs:type-restful-interaction}; # read | vread | update | patch |
# delete | history-instance |
# history-type | create |
# search-type
fhir:CapabilityStatement.rest.resource.interaction.documentation @?; # Anything special about operation
# behavior
fhir:index xsd:integer? # Relative position in a list
}
#---------------------- Data Types -------------------
# Primitive Type dateTime
CLOSED {
fhir:Element.id @?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value @?; # Primitive value for dateTime
fhir:index xsd:integer? # Relative position in a list
}
# Metadata about a resource
CLOSED {
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:Meta.versionId @?; # Version specific identifier
fhir:Meta.lastUpdated @?; # When the resource version last
# changed
fhir:Meta.source @?; # Identifies where the resource
# comes from
fhir:Meta.profile @*; # Profiles this resource claims to
# conform to
fhir:Meta.security @*; # Security Labels applied to this
# resource
fhir:Meta.tag @*; # Tags applied to this resource
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type code
CLOSED {
fhir:Element.id @?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value @?; # Primitive value for code
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type string
CLOSED {
fhir:Element.id @?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value @?; # Primitive value for string
fhir:index xsd:integer? # Relative position in a list
}
# A reference from one resource to another
CLOSED {
fhir:link IRI?;
fhir:Element.id @?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:Reference.reference @?; # Literal reference, Relative,
# internal or absolute URL
fhir:Reference.type @?; # Type the reference refers to (e.g.
# "Patient")
fhir:Reference.identifier @?; # Logical reference, when literal
# reference is not known
fhir:Reference.display @?; # Text alternative for the resource
fhir:index xsd:integer? # Relative position in a list
}
# Base Resource
{a .+;
fhir:Resource.id @?; # Logical id of this artifact
fhir:Resource.meta @?; # Metadata about the resource
fhir:Resource.implicitRules @?; # A set of rules under which this
# content was created
fhir:Resource.language @?; # Language of the resource content
fhir:index xsd:integer?
}
# Primitive Type canonical
CLOSED {
fhir:Element.id @?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value @?; # Primitive value for canonical
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type uri
CLOSED {
fhir:Element.id @?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value @?; # Primitive value for uri
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type url
CLOSED {
fhir:Element.id @?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value @?; # Primitive value for url
fhir:index xsd:integer? # Relative position in a list
}
# Optional Extensions Element
CLOSED {
fhir:Element.id @?;
fhir:Element.extension @*;
fhir:Extension.url @;
(
fhir:Extension.valueBase64Binary @ |
fhir:Extension.valueBoolean @ |
fhir:Extension.valueCanonical @ |
fhir:Extension.valueCode @ |
fhir:Extension.valueDate @ |
fhir:Extension.valueDateTime @ |
fhir:Extension.valueDecimal @ |
fhir:Extension.valueId @ |
fhir:Extension.valueInstant @ |
fhir:Extension.valueInteger @ |
fhir:Extension.valueMarkdown @ |
fhir:Extension.valueOid @ |
fhir:Extension.valuePositiveInt @ |
fhir:Extension.valueString @ |
fhir:Extension.valueTime @