FoundationThis is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
| Responsible Owner: FHIR Infrastructure Work Group | Standards Status: Informative | Compartments: No defined compartments |
ShEx statement for capabilitystatement
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
# ShEx Version 2.2
IMPORT <Uri.shex>
IMPORT <Url.shex>
IMPORT <Code.shex>
IMPORT <Coding.shex>
IMPORT <String.shex>
IMPORT <Boolean.shex>
IMPORT <DateTime.shex>
IMPORT <Markdown.shex>
IMPORT <Canonical.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <UnsignedInt.shex>
IMPORT <Organization.shex>
IMPORT <UsageContext.shex>
IMPORT <ContactDetail.shex>
IMPORT <DomainResource.shex>
IMPORT <BackboneElement.shex>
IMPORT <CodeableConcept.shex>
start=@<CapabilityStatement> AND {fhir:nodeRole [fhir:treeRoot]}
# A statement of system capabilities
<CapabilityStatement> EXTENDS @<DomainResource> CLOSED {
a [fhir:CapabilityStatement]?;fhir:nodeRole [fhir:treeRoot]?;
fhir:url @<Uri>?; # Canonical identifier for this
# capability statement, represented
# as a URI (globally unique)
fhir:identifier @<OneOrMore_Identifier>?; # Additional identifier for the
# CapabilityStatement (business
# identifier)
fhir:version @<String>?; # Business version of the capability
# statement
fhir:versionAlgorithm @<String> OR
@<Coding> ?; # How to compare versions
fhir:name @<String>?; # Name for this capability statement
# (computer friendly)
fhir:title @<String>?; # Name for this capability statement
# (human friendly)
fhir:status @<Code> AND
{fhir:v @fhirvs:publication-status}; # draft | active | retired | unknown
fhir:experimental @<Boolean>?; # For testing only - never for real
# usage
fhir:date @<DateTime>; # Date last changed
fhir:publisher @<String>?; # Name of the publisher/steward
# (organization or individual)
fhir:contact @<OneOrMore_ContactDetail>?; # Contact details for the publisher
fhir:description @<Markdown>?; # Natural language description of
# the capability statement
fhir:useContext @<OneOrMore_UsageContext>?; # The context that the content is
# intended to support
fhir:actorDefinition @<OneOrMore_Canonical>?; # ActorDefinitions the
# CapabilityStatement supports
fhir:jurisdiction @<OneOrMore_CodeableConcept>?; # Jurisdiction of the authority that
# maintains the capability statement
# (if applicable)
fhir:purpose @<Markdown>?; # Why this capability statement is
# defined
fhir:copyright @<Markdown>?; # Notice about intellectual property
# ownership, can include
# restrictions on use
fhir:copyrightLabel @<String>?; # Copyright holder and year(s)
fhir:kind @<Code> AND
{fhir:v @fhirvs:capability-statement-kind}; # instance | capability |
# requirements
fhir:instantiates @<OneOrMore_Canonical>?; # Canonical URL of another
# capability statement this
# implements
fhir:imports @<OneOrMore_Canonical>?; # Canonical URL of another
# capability statement this adds to
fhir:software @<CapabilityStatement.software>?; # Software that is covered by this
# capability statement
fhir:implementation @<CapabilityStatement.implementation>?; # If this describes a specific
# instance
fhir:fhirVersion @<Code> AND
{fhir:v @fhirvs:FHIR-version}; # FHIR Version the system supports
fhir:format @<OneOrMore_Code> AND
{fhir:v @fhirvs:supplemented-mimetypes}; # formats supported (xml | json |
# ttl | mime type)
fhir:patchFormat @<OneOrMore_Code> AND
{fhir:v @fhirvs:patchmimetypes}?; # Patch formats supported (Mime
# types for FHIR and JSON And XML
# Patch)
fhir:acceptLanguage @<OneOrMore_Code> AND
{fhir:v @fhirvs:all-languages}?; # Languages supported
fhir:implementationGuide @<OneOrMore_Canonical>?; # Implementation guides supported
fhir:rest @<OneOrMore_CapabilityStatement.rest>?; # If the endpoint is a RESTful one
fhir:messaging @<OneOrMore_CapabilityStatement.messaging>?; # If messaging is supported
fhir:document @<OneOrMore_CapabilityStatement.document>?; # Document definition
}
# Software that is covered by this capability statement
<CapabilityStatement.software> EXTENDS @<BackboneElement> CLOSED {
fhir:name @<String>; # A name the software is known by
fhir:version @<String>?; # Version covered by this statement
fhir:releaseDate @<DateTime>?; # Date this version was released
}
# If this describes a specific instance
<CapabilityStatement.implementation> EXTENDS @<BackboneElement> CLOSED {
fhir:description @<Markdown>; # Describes this specific instance
fhir:url @<Url>?; # Base URL for the installation
fhir:custodian @<Reference> AND {fhir:l
@<Organization> ? }?; # Organization that manages the data
}
# If the endpoint is a RESTful one
<CapabilityStatement.rest> EXTENDS @<BackboneElement> CLOSED {
fhir:mode @<Code> AND
{fhir:v @fhirvs:restful-capability-mode}; # client | server
fhir:documentation @<Markdown>?; # General description of
# implementation
fhir:security @<CapabilityStatement.rest.security>?; # Information about security of
# implementation
fhir:resource @<OneOrMore_CapabilityStatement.rest.resource>?; # Resource served on the REST
# interface
fhir:interaction @<OneOrMore_CapabilityStatement.rest.interaction>?; # What interactions are supported?
fhir:searchParam @<OneOrMore_CapabilityStatement.rest.resource.searchParam>?; # Search parameters for searching
# all resources
fhir:operation @<OneOrMore_CapabilityStatement.rest.resource.operation>?; # Definition of a system level
# operation
fhir:compartment @<OneOrMore_Canonical>?; # Compartments served/used by system
}
# Information about security of implementation
<CapabilityStatement.rest.security> EXTENDS @<BackboneElement> CLOSED {
fhir:cors @<Boolean>?; # Adds CORS Headers
# (http://enable-cors.org/)
fhir:service @<OneOrMore_CodeableConcept>?; # OAuth | SMART-on-FHIR | NTLM |
# Basic | Kerberos | Certificates
fhir:description @<Markdown>?; # General description of how
# security works
}
# Resource served on the REST interface
<CapabilityStatement.rest.resource> EXTENDS @<BackboneElement> CLOSED {
fhir:type @<Uri>; # A resource type that is supported
fhir:definition @<Canonical>?; # The definition for an additional
# resource
fhir:profile @<Canonical>?; # System-wide profile
fhir:supportedProfile @<OneOrMore_Canonical>?; # Use-case specific profiles
fhir:documentation @<Markdown>?; # Additional information about the
# use of the resource type
fhir:interaction @<OneOrMore_CapabilityStatement.rest.resource.interaction>?; # What interactions are supported?
fhir:versioning @<Code> AND
{fhir:v @fhirvs:versioning-policy}?; # no-version | versioned |
# versioned-update
fhir:readHistory @<Boolean>?; # Whether vRead can return past
# versions
fhir:updateCreate @<Boolean>?; # If update can commit to a new
# identity
fhir:conditionalCreate @<Boolean>?; # If allows/uses conditional create
fhir:conditionalRead @<Code> AND
{fhir:v @fhirvs:conditional-read-status}?; # not-supported | modified-since |
# not-match | full-support
fhir:conditionalUpdate @<Boolean>?; # If allows/uses conditional update
fhir:conditionalPatch @<Boolean>?; # If allows/uses conditional patch
fhir:conditionalDelete @<Code> AND
{fhir:v @fhirvs:conditional-delete-status}?; # not-supported | single | multiple
# - how conditional delete is
# supported
fhir:referencePolicy @<OneOrMore_Code> AND
{fhir:v @fhirvs:reference-handling-policy}?; # literal | logical | resolves |
# enforced | local
fhir:searchInclude @<OneOrMore_String>?; # _include values supported by the
# server
fhir:searchRevInclude @<OneOrMore_String>?; # _revinclude values supported by
# the server
fhir:searchParam @<OneOrMore_CapabilityStatement.rest.resource.searchParam>?; # Search parameters supported by
# implementation
fhir:operation @<OneOrMore_CapabilityStatement.rest.resource.operation>?; # Definition of a resource operation
}
# What interactions are supported?
<CapabilityStatement.rest.resource.interaction> EXTENDS @<BackboneElement> CLOSED {
fhir:code @<Code> AND
{fhir:v @fhirvs:type-restful-interaction}; # read | vread | update |
# update-conditional | patch |
# patch-conditional | delete |
# delete-conditional-single |
# delete-conditional-multiple |
# delete-history |
# delete-history-version |
# history-instance | history-type |
# create | create-conditional |
# search-type
fhir:documentation @<Markdown>?; # Anything special about interaction
# behavior
}
# Search parameters supported by implementation
<CapabilityStatement.rest.resource.searchParam> EXTENDS @<BackboneElement> CLOSED {
fhir:name @<String>; # Name for parameter in search url
fhir:definition @<Canonical>?; # Source of definition for parameter
fhir:type @<Code> AND
{fhir:v @fhirvs:search-param-type}; # number | date | string | token |
# reference | composite | quantity |
# uri | special | resource
fhir:documentation @<Markdown>?; # Server-specific usage
}
# Definition of a resource operation
<CapabilityStatement.rest.resource.operation> EXTENDS @<BackboneElement> CLOSED {
fhir:name @<String>; # Name by which the operation/query
# is invoked
fhir:definition @<Canonical>; # The defined operation/query
fhir:documentation @<Markdown>?; # Specific details about operation
# behavior
}
# What interactions are supported?
<CapabilityStatement.rest.interaction> EXTENDS @<BackboneElement> CLOSED {
fhir:code @<Code> AND
{fhir:v @fhirvs:system-restful-interaction}; # transaction | batch |
# search-system | history-system
fhir:documentation @<Markdown>?; # Anything special about interaction
# behavior
}
# If messaging is supported
<CapabilityStatement.messaging> EXTENDS @<BackboneElement> CLOSED {
fhir:endpoint @<OneOrMore_CapabilityStatement.messaging.endpoint>?; # Where messages should be sent
fhir:reliableCache @<UnsignedInt>?; # Reliable Message Cache Length (min)
fhir:documentation @<Markdown>?; # Messaging interface behavior
# details
fhir:supportedMessage @<OneOrMore_CapabilityStatement.messaging.supportedMessage>?; # Messages supported by this system
}
# Where messages should be sent
<CapabilityStatement.messaging.endpoint> EXTENDS @<BackboneElement> CLOSED {
fhir:protocol @<Coding>; # http | ftp | mllp +
fhir:address @<Url>; # Network address or identifier of
# the end-point
}
# Messages supported by this system
<CapabilityStatement.messaging.supportedMessage> EXTENDS @<BackboneElement> CLOSED {
fhir:mode @<Code> AND
{fhir:v @fhirvs:event-capability-mode}; # sender | receiver
fhir:definition @<Canonical>; # Message supported by this system
}
# Document definition
<CapabilityStatement.document> EXTENDS @<BackboneElement> CLOSED {
fhir:mode @<Code> AND
{fhir:v @fhirvs:document-mode}; # producer | consumer
fhir:documentation @<Markdown>?; # Description of document support
fhir:profile @<Canonical>; # Constraint on the resources used
# in the document
}
#---------------------- Cardinality Types (OneOrMore) -------------------
<OneOrMore_Identifier> CLOSED {
rdf:first @<Identifier> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Identifier>
}
<OneOrMore_ContactDetail> CLOSED {
rdf:first @<ContactDetail> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ContactDetail>
}
<OneOrMore_UsageContext> CLOSED {
rdf:first @<UsageContext> ;
rdf:rest [rdf:nil] OR @<OneOrMore_UsageContext>
}
<OneOrMore_Canonical> CLOSED {
rdf:first @<Canonical> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Canonical>
}
<OneOrMore_CodeableConcept> CLOSED {
rdf:first @<CodeableConcept> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept>
}
<OneOrMore_Code> CLOSED {
rdf:first @<Code> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Code>
}
<OneOrMore_CapabilityStatement.rest> CLOSED {
rdf:first @<CapabilityStatement.rest> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.rest>
}
<OneOrMore_CapabilityStatement.messaging> CLOSED {
rdf:first @<CapabilityStatement.messaging> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.messaging>
}
<OneOrMore_CapabilityStatement.document> CLOSED {
rdf:first @<CapabilityStatement.document> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.document>
}
<OneOrMore_CapabilityStatement.rest.resource> CLOSED {
rdf:first @<CapabilityStatement.rest.resource> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.rest.resource>
}
<OneOrMore_CapabilityStatement.rest.interaction> CLOSED {
rdf:first @<CapabilityStatement.rest.interaction> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.rest.interaction>
}
<OneOrMore_CapabilityStatement.rest.resource.searchParam> CLOSED {
rdf:first @<CapabilityStatement.rest.resource.searchParam> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.rest.resource.searchParam>
}
<OneOrMore_CapabilityStatement.rest.resource.operation> CLOSED {
rdf:first @<CapabilityStatement.rest.resource.operation> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.rest.resource.operation>
}
<OneOrMore_CapabilityStatement.rest.resource.interaction> CLOSED {
rdf:first @<CapabilityStatement.rest.resource.interaction> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.rest.resource.interaction>
}
<OneOrMore_String> CLOSED {
rdf:first @<String> ;
rdf:rest [rdf:nil] OR @<OneOrMore_String>
}
<OneOrMore_CapabilityStatement.messaging.endpoint> CLOSED {
rdf:first @<CapabilityStatement.messaging.endpoint> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.messaging.endpoint>
}
<OneOrMore_CapabilityStatement.messaging.supportedMessage> CLOSED {
rdf:first @<CapabilityStatement.messaging.supportedMessage> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CapabilityStatement.messaging.supportedMessage>
}
#---------------------- Value Sets ------------------------
# All published FHIR Versions.
fhirvs:FHIR-version ["0.01" "0.05" "0.06" "0.11" "0.0" "0.0.80" "0.0.81" "0.0.82" "0.4" "0.4.0" "0.5" "0.5.0" "1.0" "1.0.0" "1.0.1" "1.0.2" "1.1" "1.1.0" "1.4" "1.4.0" "1.6" "1.6.0" "1.8" "1.8.0" "3.0" "3.0.0" "3.0.1" "3.0.2" "3.3" "3.3.0" "3.5" "3.5.0" "4.0" "4.0.0" "4.0.1" "4.1" "4.1.0" "4.2" "4.2.0" "4.3" "4.3.0" "4.3.0-cibuild" "4.3.0-snapshot1" "4.4" "4.4.0" "4.5" "4.5.0" "4.6" "4.6.0" "5.0" "5.0.0" "5.0.0-cibuild" "5.0.0-snapshot1" "5.0.0-snapshot2" "5.0.0-ballot" "5.0.0-snapshot3" "5.0.0-draft-final" "6.0" "6.0.0" "6.0.0-ballot1" "6.0.0-ballot2" "6.0.0-ballot3" "6.0.0-ballot4"]
# This value set includes all possible codes from BCP-47 (see http://tools.ietf.org/html/bcp47)
fhirvs:all-languages ["aa" "ab" "ace" "ach" "ada" "ady" "ae" "af" "afa" "afh" "ain" "ak" "akk" "ale" "alg" "alt" "am" "an" "ang" "anp" "apa" "ar" "arc" "arn" "arp" "art" "arw" "as" "ast" "ath" "aus" "av" "awa" "ay" "az" "ba" "bad" "bai" "bal" "ban" "bas" "bat" "be" "bej" "bem" "ber" "bg" "bho" "bi" "bik" "bin" "bla" "bm" "bn" "bnt" "bo" "br" "bra" "bs" "btk" "bua" "bug" "byn" "ca" "cad" "cai" "car" "cau" "ce" "ceb" "cel" "ch" "chb" "chg" "chk" "chm" "chn" "cho" "chp" "chr" "chy" "cmc" "cnr" "co" "cop" "cpe" "cpf" "cpp" "cr" "crh" "crp" "cs" "csb" "cu" "cus" "cv" "cy" "da" "dak" "dar" "day" "de" "del" "den" "dgr" "din" "doi" "dra" "dsb" "dua" "dum" "dv" "dyu" "dz" "ee" "efi" "egy" "eka" "el" "elx" "en" "enm" "eo" "es" "et" "eu" "ewo" "fa" "fan" "fat" "ff" "fi" "fil" "fiu" "fj" "fo" "fon" "fr" "frm" "fro" "frr" "frs" "fur" "fy" "ga" "gaa" "gay" "gba" "gd" "gem" "gez" "gil" "gl" "gmh" "gn" "goh" "gon" "gor" "got" "grb" "grc" "gsw" "gu" "gv" "gwi" "ha" "hai" "haw" "he" "hi" "hil" "him" "hit" "hmn" "ho" "hr" "hsb" "ht" "hu" "hup" "hy" "hz" "ia" "iba" "id" "ie" "ig" "ii" "ijo" "ik" "ilo" "inc" "ine" "inh" "io" "ira" "iro" "is" "it" "iu" "ja" "jbo" "jpr" "jrb" "jv" "ka" "kaa" "kab" "kac" "kam" "kar" "kaw" "kbd" "kg" "kha" "khi" "kho" "ki" "kj" "kk" "kl" "km" "kmb" "kn" "ko" "kok" "kos" "kpe" "kr" "krc" "krl" "kro" "kru" "ks" "ku" "kum" "kut" "kv" "kw" "ky" "la" "lad" "lah" "lam" "lb" "lez" "lg" "li" "ln" "lo" "lol" "loz" "lt" "lu" "lua" "lui" "lun" "luo" "lus" "lv" "mad" "mag" "mai" "mak" "man" "map" "mas" "mdf" "mdr" "men" "mg" "mga" "mh" "mi" "mic" "min" "mis" "mk" "mkh" "ml" "mn" "mnc" "mni" "mno" "moh" "mos" "mr" "ms" "mt" "mul" "mun" "mus" "mwl" "mwr" "my" "myn" "myv" "na" "nah" "nai" "nap" "nb" "nd" "nds" "ne" "new" "ng" "nia" "nic" "niu" "nl" "nn" "no" "nog" "non" "nqo" "nr" "nso" "nub" "nv" "nwc" "ny" "nym" "nyn" "nyo" "nzi" "oc" "oj" "om" "or" "os" "osa" "ota" "oto" "pa" "paa" "pag" "pal" "pam" "pap" "pau" "peo" "phi" "phn" "pi" "pl" "pon" "pra" "pro" "ps" "pt" "qu" "raj" "rap" "rar" "rm" "rn" "ro" "roa" "rom" "ru" "rup" "rw" "sa" "sad" "sah" "sai" "sal" "sam" "sas" "sat" "sc" "scn" "sco" "sd" "se" "sel" "sem" "sg" "sga" "sgn" "shn" "si" "sid" "sio" "sit" "sk" "sl" "sla" "sm" "sma" "smi" "smj" "smn" "sms" "sn" "snk" "so" "sog" "son" "sq" "sr" "srn" "srr" "ss" "ssa" "st" "su" "suk" "sus" "sux" "sv" "sw" "syc" "syr" "ta" "tai" "te" "tem" "ter" "tet" "tg" "th" "ti" "tig" "tiv" "tk" "tkl" "tl" "tlh" "tli" "tmh" "tn" "to" "tog" "tpi" "tr" "ts" "tsi" "tt" "tum" "tup" "tut" "tvl" "tw" "ty" "tyv" "udm" "ug" "uga" "uk" "umb" "und" "ur" "uz" "vai" "ve" "vi" "vo" "vot" "wa" "wak" "wal" "war" "was" "wen" "wo" "xal" "xh" "yao" "yap" "yi" "yo" "ypk" "za" "zap" "zbl" "zen" "zgh" "zh" "znd" "zu" "zun" "zxx" "zza"]
# How a capability statement is intended to be used.
fhirvs:capability-statement-kind ["instance" "capability" "requirements"]
# A code that indicates how the server supports conditional delete.
fhirvs:conditional-delete-status ["not-supported" "single" "multiple"]
# A code that indicates how the server supports conditional read.
fhirvs:conditional-read-status ["not-supported" "modified-since" "not-match" "full-support"]
# Whether the application produces or consumes documents.
fhirvs:document-mode ["producer" "consumer"]
# The mode of a message capability statement.
fhirvs:event-capability-mode ["sender" "receiver"]
# This value set includes the possible codes from [BCP-13](http://tools.ietf.org/html/bcp13) that are valid for Patch formats
fhirvs:patchmimetypes ["application/fhir+xml" "application/fhir+json" "application/fhir+turtle" "application/json-patch+json" "application/xml-patch+xml"]
# The lifecycle status of an artifact.
fhirvs:publication-status ["draft" "active" "retired" "unknown"]
# A set of flags that defines how references are supported.
fhirvs:reference-handling-policy ["literal" "logical" "resolves" "enforced" "local"]
# The mode of a RESTful capability statement.
fhirvs:restful-capability-mode ["client" "server"]
# Data types allowed to be used for search parameters.
fhirvs:search-param-type ["number" "date" "string" "token" "reference" "composite" "quantity" "uri" "special" "resource"]
# This value set includes all possible codes from BCP-13 (see http://tools.ietf.org/html/bcp13), and xml, json, and ttl
fhirvs:supplemented-mimetypes xsd:string #EXTERNAL
# Operations supported by REST at the system level.
fhirvs:system-restful-interaction ["transaction" "batch" "search-system" "history-system"]
# Operations supported by REST at the type or instance level.
fhirvs:type-restful-interaction ["read" "vread" "update" "update-conditional" "patch" "patch-conditional" "delete" "delete-conditional-single" "delete-conditional-multiple" "delete-history" "delete-history-version" "history-instance" "history-type" "create" "create-conditional" "search-type"]
# How the system supports versioning for a resource.
fhirvs:versioning-policy ["no-version" "versioned" "versioned-update"]
Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.
FHIR ®© HL7.org 2011+. FHIR R6 hl7.fhir.r6.core#6.0.0-ballot4 generated on Tue, Aug 18, 2026 17:38+0000.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R4 |
Compare to R5 |
Compare to Last Ballot |
|
Propose a change