# HeyDonto FHIR R4 API - Conformance The Conformance Module represents metadata about the datatypes, resources and API features of the FHIR specification and can be used to create derived specifications. --- ## Introduction The core FHIR specification describes a set of resources, frameworks and APIs that are used in many different contexts in healthcare. However, there is wide variability between jurisdictions and across the healthcare ecosystem around practices, requirements, regulations, education and what actions are feasible and/or beneficial. For this reason, the FHIR specification is a "platform specification" - it creates a common platform or foundation on which a variety of different solutions are implemented. As a consequence, this specification usually requires further adaptation to particular contexts of use. Typically, these adaptations specify: * Rules about which resource elements are or are not used, and what additional elements are added that are not part of the base specification * Rules about which of FHIR's RESTful API, messaging and document features are used, and how * Rules about which terminologies are used in particular elements * Descriptions of how the Resource elements and API features map to local requirements and/or implementations Note that because of the nature of the healthcare ecosystem, there may be multiple overlapping sets of adaptations - by healthcare domain, by country, by institution, and/or by vendor/implementation. FHIR provides a set of resources that can be used to represent and share the adaptations listed above in a computable fashion. These resources are collectively called the *conformance resources*. Although these conformance resources can be used in isolation they are typically used in the context of an *Implementation Guide* or a *Capability Statement*: * *Implementation Guides* are documents published by a domain, institution or vendor that describe how FHIR is adapted to support a certain use case (or set of use cases). An implementation guide combines a set of conformance resources and supporting narrative into a document for use by implementers. * A *capability statements* use the conformance resources to document how a client or server has implemented FHIR, i.e. which aspects of the specification and API are implemented and how. --- ## Contents The content of an Implementation Guide is described using the [ImplementationGuide](https://hl7.org/fhir/R4/implementationguide.html) resource, while the capability statement is represented by the [CapabilityStatement](https://hl7.org/fhir/R4/capabilitystatement.html) resource. These two resources make use of the complete set of conformance resources to fully capture the set of adaptations they represent. Note that the CapabilityStatement resource is one of the *conformance resources*, the first just describing the capabilities of a system, while the latter is the set of all conformance resources, including: * The [StructureDefinition](https://hl7.org/fhir/R4/structuredefinition.html) defines how a particular structure (Resource, Extension or Data Type) is used to: * Describe how existing elements in resources and/or data types are used and identify existing elements that are not used. Exact rules on how to do this can be found in the section on [conformance rules](https://hl7.org/fhir/R4/conformance-rules.html) * Define [extensions](https://hl7.org/fhir/R4/extensibility.html) that can be used in resources or data types * Reference the [Value Sets](https://hl7.org/fhir/R4/valueset.html) that specify the content of coded elements, see the [terminology module](https://hl7.org/fhir/R4/terminology-module.html) for more details * The [MessageDefinition](https://hl7.org/fhir/R4/messagedefinition.html) describes messages that can be sent and received, including the driving event, contents to be exchanged and responsibilities on receipt * The [OperationDefinition](https://hl7.org/fhir/R4/operationdefinition.html) describes additional operations in addition to [those in the base specification](https://hl7.org/fhir/R4/operations.html) * The [SearchParameter](https://hl7.org/fhir/R4/searchparameter.html) describes additional search capabilities in addition to those in the base specification * The [CompartmentDefinition](https://hl7.org/fhir/R4/compartmentdefinition.html) describes a logical grouping for resources, used in access control or search Conformance resources may be used independently, not just within the context of an ImplementationGuide resource or capability statement. See the section Common use cases for examples of such uses. The conformance resources and their relationships are shown below: ![Conformance Resources Relationships](/images/conformance-module-resources.png) Resources shown with a dotted box are described in other sections of the specification: `ValueSet`, `ConceptMap` and `StructureMap` are from the [section on terminology](https://hl7.org/fhir/R4/terminology-module.html), `TestScript` is part of the section on [Implementer Support](https://hl7.org/fhir/R4/implsupport-module.html). --- ## Security and Privacy The conformance resources do not represent patient-related data, and as such are less susceptible to data breaching. Some caution is required however: * `StructureDefinitions` may contain invariants formulated as structured expressions that are evaluated by external engines (i.e. xpath), which -if improperly sandboxed- could provide low-level access to the system * A server may be implemented in such a way that it will automatically support additional search parameters or compartments definitions uploaded to that system. This may result in searches that use large amounts of processing power, expose sensitive patient data, or both * If a server acts as a repository of conformance resources, it should tightly control modifications to its data: updates to conformance resources are usually managed by a review process to ensure backwards compatibility and stability. Worst case, changes to these resources may result in dependent systems running the risk of being misconfigured --- ## Common Use Cases Conformance resources are commonly used as part of an [Implementation Guide](https://hl7.org/fhir/R4/implementationguide.html) or [CapabilityStatement](https://hl7.org/fhir/R4/capabilitystatement.html) resource. There are many ways to use the resources independently however, including: * An instance of a resource may reference one or more `StructureDefinitions` to claim conformance to the rules laid out in those StructureDefinitions * A server may serve `CapabilityStatement` resources, effectively functioning as a discovery endpoint for services within an organization * A code-generation tool may use `StructureDefinitions` and `OperationDefinitions` to generate code that represents the structures as classes and operations as remotely callable functions to provide an easier programming model to a software developer * A server may act as a repository of `NamingSystem` resources, so vendors and implementers can quickly look up the URLs or oids for a given terminology or identifier system --- ## Developmental Roadmap A subset of the conformance resources has been tested and used in production tooling and are now normative. These include StructureDefinition and ValueSet. Others, like CapabilityStatement, have been used widely, but not across all elements. As a consequence, these resources have a considerable number of elements marked for "trial use", while other parts are normative and will no longer change in a substantive way. Other resources are still under development: * `ImplementationGuide`: used in the HL7 production tooling but has not received much use outside of these tools yet * `CompartmentDefinition`: was new in STU3, and as such has not undergone much production use These resources have been mainly used in the tools used to build the FHIR publication, early-adopter implementation guides and the FHIR Foundation conformance resource registry. In future, we expect to see more widespread use of these resources in validation tooling, code-generators and more extensive model-based guide authoring tools. Version: 1.0 ## Servers Sandbox ``` https://api-staging.heydonto.com ``` Production ``` https://api.heydonto.com ``` ## Security ### bearer Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [HeyDonto FHIR R4 API - Conformance](https://docs.heydonto.com/_bundle/apis/fhir/conformance.yaml) ## CapabilityStatement ### Get FHIR r4 capability statements - [GET /site/{siteId}/fhir/capability-statement](https://docs.heydonto.com/apis/fhir/conformance/capabilitystatement/fhircapabilitystatementcontroller_getcapabilitystatements.md) ### Create FHIR r4 capability statement - [POST /site/{siteId}/fhir/capability-statement](https://docs.heydonto.com/apis/fhir/conformance/capabilitystatement/fhircapabilitystatementcontroller_createcapabilitystatement.md) ### Get FHIR r4 capability statement by ID - [GET /site/{siteId}/fhir/capability-statement/{id}](https://docs.heydonto.com/apis/fhir/conformance/capabilitystatement/fhircapabilitystatementcontroller_getcapabilitystatement.md) ### Update FHIR r4 capability statement - [PUT /site/{siteId}/fhir/capability-statement/{id}](https://docs.heydonto.com/apis/fhir/conformance/capabilitystatement/fhircapabilitystatementcontroller_updatecapabilitystatement.md) ### Delete FHIR r4 capability statement - [DELETE /site/{siteId}/fhir/capability-statement/{id}](https://docs.heydonto.com/apis/fhir/conformance/capabilitystatement/fhircapabilitystatementcontroller_deletecapabilitystatement.md) ### Get FHIR r4 capability statement history by ID - [GET /site/{siteId}/fhir/capability-statement/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/capabilitystatement/fhircapabilitystatementcontroller_getcapabilitystatementhistory.md) ## MessageDefinition ### Get FHIR r4 message definitions - [GET /site/{siteId}/fhir/message-definition](https://docs.heydonto.com/apis/fhir/conformance/messagedefinition/fhirmessagedefinitioncontroller_getmessagedefinitions.md) ### Create FHIR r4 message definition - [POST /site/{siteId}/fhir/message-definition](https://docs.heydonto.com/apis/fhir/conformance/messagedefinition/fhirmessagedefinitioncontroller_createmessagedefinition.md) ### Get FHIR r4 message definition by ID - [GET /site/{siteId}/fhir/message-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/messagedefinition/fhirmessagedefinitioncontroller_getmessagedefinition.md) ### Update FHIR r4 message definition - [PUT /site/{siteId}/fhir/message-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/messagedefinition/fhirmessagedefinitioncontroller_updatemessagedefinition.md) ### Delete FHIR r4 message definition - [DELETE /site/{siteId}/fhir/message-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/messagedefinition/fhirmessagedefinitioncontroller_deletemessagedefinition.md) ### Get FHIR r4 message definition history by ID - [GET /site/{siteId}/fhir/message-definition/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/messagedefinition/fhirmessagedefinitioncontroller_getmessagedefinitionhistory.md) ## OperationDefinition ### Get FHIR r4 operation definitions - [GET /site/{siteId}/fhir/operation-definition](https://docs.heydonto.com/apis/fhir/conformance/operationdefinition/fhiroperationdefinitioncontroller_getoperationdefinitions.md) ### Create FHIR r4 operation definition - [POST /site/{siteId}/fhir/operation-definition](https://docs.heydonto.com/apis/fhir/conformance/operationdefinition/fhiroperationdefinitioncontroller_createoperationdefinition.md) ### Get FHIR r4 operation definition by ID - [GET /site/{siteId}/fhir/operation-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/operationdefinition/fhiroperationdefinitioncontroller_getoperationdefinition.md) ### Update FHIR r4 operation definition - [PUT /site/{siteId}/fhir/operation-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/operationdefinition/fhiroperationdefinitioncontroller_updateoperationdefinition.md) ### Delete FHIR r4 operation definition - [DELETE /site/{siteId}/fhir/operation-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/operationdefinition/fhiroperationdefinitioncontroller_deleteoperationdefinition.md) ### Get FHIR r4 operation definition history by ID - [GET /site/{siteId}/fhir/operation-definition/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/operationdefinition/fhiroperationdefinitioncontroller_getoperationdefinitionhistory.md) ## SearchParameter ### Get FHIR r4 search parameters - [GET /site/{siteId}/fhir/search-parameter](https://docs.heydonto.com/apis/fhir/conformance/searchparameter/fhirsearchparametercontroller_getsearchparameters.md) ### Create FHIR r4 search parameter - [POST /site/{siteId}/fhir/search-parameter](https://docs.heydonto.com/apis/fhir/conformance/searchparameter/fhirsearchparametercontroller_createsearchparameter.md) ### Get FHIR r4 search parameter by ID - [GET /site/{siteId}/fhir/search-parameter/{id}](https://docs.heydonto.com/apis/fhir/conformance/searchparameter/fhirsearchparametercontroller_getsearchparameter.md) ### Update FHIR r4 search parameter - [PUT /site/{siteId}/fhir/search-parameter/{id}](https://docs.heydonto.com/apis/fhir/conformance/searchparameter/fhirsearchparametercontroller_updatesearchparameter.md) ### Delete FHIR r4 search parameter - [DELETE /site/{siteId}/fhir/search-parameter/{id}](https://docs.heydonto.com/apis/fhir/conformance/searchparameter/fhirsearchparametercontroller_deletesearchparameter.md) ### Get FHIR r4 search parameter history by ID - [GET /site/{siteId}/fhir/search-parameter/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/searchparameter/fhirsearchparametercontroller_getsearchparameterhistory.md) ## StructureDefinition ### Get FHIR r4 structure definitions - [GET /site/{siteId}/fhir/structure-definition](https://docs.heydonto.com/apis/fhir/conformance/structuredefinition/fhirstructuredefinitioncontroller_getstructuredefinitions.md) ### Create FHIR r4 structure definition - [POST /site/{siteId}/fhir/structure-definition](https://docs.heydonto.com/apis/fhir/conformance/structuredefinition/fhirstructuredefinitioncontroller_createstructuredefinition.md) ### Get FHIR r4 structure definition by ID - [GET /site/{siteId}/fhir/structure-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/structuredefinition/fhirstructuredefinitioncontroller_getstructuredefinition.md) ### Update FHIR r4 structure definition - [PUT /site/{siteId}/fhir/structure-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/structuredefinition/fhirstructuredefinitioncontroller_updatestructuredefinition.md) ### Delete FHIR r4 structure definition - [DELETE /site/{siteId}/fhir/structure-definition/{id}](https://docs.heydonto.com/apis/fhir/conformance/structuredefinition/fhirstructuredefinitioncontroller_deletestructuredefinition.md) ### Get FHIR r4 structure definition history by ID - [GET /site/{siteId}/fhir/structure-definition/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/structuredefinition/fhirstructuredefinitioncontroller_getstructuredefinitionhistory.md) ## TerminologyCapabilities ### Get FHIR r4 terminology capabilitiess - [GET /site/{siteId}/fhir/terminology-capabilities](https://docs.heydonto.com/apis/fhir/conformance/terminologycapabilities/fhirterminologycapabilitiescontroller_getterminologycapabilitiess.md) ### Create FHIR r4 terminology capabilities - [POST /site/{siteId}/fhir/terminology-capabilities](https://docs.heydonto.com/apis/fhir/conformance/terminologycapabilities/fhirterminologycapabilitiescontroller_createterminologycapabilities.md) ### Get FHIR r4 terminology capabilities by ID - [GET /site/{siteId}/fhir/terminology-capabilities/{id}](https://docs.heydonto.com/apis/fhir/conformance/terminologycapabilities/fhirterminologycapabilitiescontroller_getterminologycapabilities.md) ### Update FHIR r4 terminology capabilities - [PUT /site/{siteId}/fhir/terminology-capabilities/{id}](https://docs.heydonto.com/apis/fhir/conformance/terminologycapabilities/fhirterminologycapabilitiescontroller_updateterminologycapabilities.md) ### Delete FHIR r4 terminology capabilities - [DELETE /site/{siteId}/fhir/terminology-capabilities/{id}](https://docs.heydonto.com/apis/fhir/conformance/terminologycapabilities/fhirterminologycapabilitiescontroller_deleteterminologycapabilities.md) ### Get FHIR r4 terminology capabilities history by ID - [GET /site/{siteId}/fhir/terminology-capabilities/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/terminologycapabilities/fhirterminologycapabilitiescontroller_getterminologycapabilitieshistory.md) ## TestReport ### Get FHIR r4 test reports - [GET /site/{siteId}/fhir/test-report](https://docs.heydonto.com/apis/fhir/conformance/testreport/fhirtestreportcontroller_gettestreports.md) ### Create FHIR r4 test report - [POST /site/{siteId}/fhir/test-report](https://docs.heydonto.com/apis/fhir/conformance/testreport/fhirtestreportcontroller_createtestreport.md) ### Get FHIR r4 test report by ID - [GET /site/{siteId}/fhir/test-report/{id}](https://docs.heydonto.com/apis/fhir/conformance/testreport/fhirtestreportcontroller_gettestreport.md) ### Update FHIR r4 test report - [PUT /site/{siteId}/fhir/test-report/{id}](https://docs.heydonto.com/apis/fhir/conformance/testreport/fhirtestreportcontroller_updatetestreport.md) ### Delete FHIR r4 test report - [DELETE /site/{siteId}/fhir/test-report/{id}](https://docs.heydonto.com/apis/fhir/conformance/testreport/fhirtestreportcontroller_deletetestreport.md) ### Get FHIR r4 test report history by ID - [GET /site/{siteId}/fhir/test-report/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/testreport/fhirtestreportcontroller_gettestreporthistory.md) ## TestScript ### Get FHIR r4 test scripts - [GET /site/{siteId}/fhir/test-script](https://docs.heydonto.com/apis/fhir/conformance/testscript/fhirtestscriptcontroller_gettestscripts.md) ### Create FHIR r4 test script - [POST /site/{siteId}/fhir/test-script](https://docs.heydonto.com/apis/fhir/conformance/testscript/fhirtestscriptcontroller_createtestscript.md) ### Get FHIR r4 test script by ID - [GET /site/{siteId}/fhir/test-script/{id}](https://docs.heydonto.com/apis/fhir/conformance/testscript/fhirtestscriptcontroller_gettestscript.md) ### Update FHIR r4 test script - [PUT /site/{siteId}/fhir/test-script/{id}](https://docs.heydonto.com/apis/fhir/conformance/testscript/fhirtestscriptcontroller_updatetestscript.md) ### Delete FHIR r4 test script - [DELETE /site/{siteId}/fhir/test-script/{id}](https://docs.heydonto.com/apis/fhir/conformance/testscript/fhirtestscriptcontroller_deletetestscript.md) ### Get FHIR r4 test script history by ID - [GET /site/{siteId}/fhir/test-script/{id}/history](https://docs.heydonto.com/apis/fhir/conformance/testscript/fhirtestscriptcontroller_gettestscripthistory.md)