FHIR © HL7.org  |  Server Home  |  XIG Home  |  XIG Stats  |  Server Source  |  FHIR  

FHIR IG Statistics: OperationDefinition/crmi-artifact-diff

Packagehl7.fhir.uv.crmi
Resource TypeOperationDefinition
Idcrmi-artifact-diff
FHIR VersionR4
Sourcehttp://hl7.org/fhir/uv/crmi/https://build.fhir.org/ig/HL7/crmi-ig/OperationDefinition-crmi-artifact-diff.html
URLhttp://hl7.org/fhir/uv/crmi/OperationDefinition/crmi-artifact-diff
Version2.0.0-cibuild
Statusactive
Date2025-07-25T17:10:20+00:00
NameCRMIArtifactDiff
TitleCRMI Artifact Diff
Realmuv
Authorityhl7
DescriptionDescribes the differences between two knowledge artifacts in [FHIR Patch format](https://www.hl7.org/fhir/fhirpatch.html) by recursively resolving dependencies to get a holistic diff.
Typefalse
Kindoperation

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: OperationDefinition crmi-artifact-diff

URL: [base]/$artifact-diff

Parameters

UseNameScopeCardinalityTypeBindingDocumentation
INsource0..1canonical

The canonical reference of the source artifact to compare against

INtarget1..1canonical

A canonical reference of the target artifact which is being compared.

INcompareComputable0..1boolean

Whether or not to compare computable content such as ValueSet.compose.include entries.

INcompareExecutable0..1boolean

Whether or not to compare executable content such as ValueSet.expansion.contains entries.

INartifactEndpointConfiguration0..*

Configuration information to resolve canonical artifacts

  • artifactRoute: An optional route used to determine whether this endpoint is expected to be able to resolve artifacts that match the route (i.e. start with the route, up to and including the entire url)
  • endpointUri: The URI of the endpoint, exclusive with the endpoint parameter
  • endpoint: An Endpoint resource describing the endpoint, exclusive with the endpointUri parameter

Processing semantics:

Create a canonical-like reference (e.g. {canonical.url}|{canonical.version} or similar extensions for non-canonical artifacts).

  • Given a single artifactEndpointConfiguration
    • When artifactRoute is present
      • And artifactRoute starts with canonical or artifact reference
      • Then attempt to resolve with endpointUri or endpoint
    • When artifactRoute is not present
      • Then attempt to resolve with endpointUri or endpoint
  • Given multiple artifactEndpointConfigurations
    • Then rank order each configuration (see below)
    • And attempt to resolve with endpointUri or endpoint in order until resolved

Rank each artifactEndpointConfiguration such that:

  • if artifactRoute is present and artifactRoute starts with canonical or artifact reference: rank based on number of matching characters
  • if artifactRoute is not present: include but rank lower

NOTE: For evenly ranked artifactEndpointConfigurations, order as defined in the OperationDefinition.

INartifactEndpointConfiguration.artifactRoute0..1uri
INartifactEndpointConfiguration.endpointUri0..1uri
INartifactEndpointConfiguration.endpoint0..1Endpoint
INterminologyEndpoint0..1Endpoint

An endpoint to use to access terminology (i.e. valuesets, codesystems, naming systems, concept maps, and membership testing) referenced by the resources. If no terminology endpoint is supplied, the server may use whatever mechanism is appropriate for accessing terminology. This could be the server on which the operation is invoked or a third party server accessible to the environment. When a terminology endpoint is provided, the server or third party servers may still be used as fallbacks.

OUTreturn1..1Parameters

The differential in FHIR Patch format.

The operation is only valid between two resources of the same type and can optionally include expanding all ValueSets in the dependency tree.


Source

{
  "resourceType": "OperationDefinition",
  "id": "crmi-artifact-diff",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "cds"
    }
  ],
  "url": "http://hl7.org/fhir/uv/crmi/OperationDefinition/crmi-artifact-diff",
  "version": "2.0.0-cibuild",
  "name": "CRMIArtifactDiff",
  "title": "CRMI Artifact Diff",
  "status": "active",
  "kind": "operation",
  "date": "2025-07-25T17:10:20+00:00",
  "publisher": "HL7 International / Clinical Decision Support",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/dss"
        }
      ]
    }
  ],
  "description": "Describes the differences between two knowledge artifacts in [FHIR Patch format](https://www.hl7.org/fhir/fhirpatch.html) by recursively resolving dependencies to get a holistic diff.",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001",
          "display": "World"
        }
      ]
    }
  ],
  "code": "artifact-diff",
  "comment": "The operation is only valid between two resources of the same type and can optionally include expanding all ValueSets in the dependency tree.",
  "resource": [
    "ActivityDefinition",
    "CapabilityStatement",
    "CodeSystem",
    "CompartmentDefinition",
    "ConceptMap",
    "ExampleScenario",
    "GraphDefinition",
    "ImplementationGuide",
    "Library",
    "Measure",
    "Medication",
    "MedicationKnowledge",
    "MessageDefinition",
    "NamingSystem",
    "OperationDefinition",
    "PlanDefinition",
    "Questionnaire",
    "SearchParameter",
    "StructureDefinition",
    "StructureMap",
    "Substance",
    "TerminologyCapabilities",
    "TestScript",
    "ValueSet"
  ],
  "system": true,
  "type": false,
  "instance": false,
  "parameter": [
    {
      "name": "source",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "The canonical reference of the source artifact to compare against",
      "type": "canonical"
    },
    {
      "name": "target",
      "use": "in",
      "min": 1,
      "max": "1",
      "documentation": "A canonical reference of the target artifact which is being compared.",
      "type": "canonical"
    },
    {
      "name": "compareComputable",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "Whether or not to compare computable content such as ValueSet.compose.include entries.",
      "type": "boolean"
    },
    {
      "name": "compareExecutable",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "Whether or not to compare executable content such as ValueSet.expansion.contains entries.",
      "type": "boolean"
    },
    {
      "name": "artifactEndpointConfiguration",
      "use": "in",
      "min": 0,
      "max": "*",
      "documentation": "Configuration information to resolve canonical artifacts\n* `artifactRoute`: An optional route used to determine whether this endpoint is expected to be able to resolve artifacts that match the route (i.e. start with the route, up to and including the entire url)\n* `endpointUri`: The URI of the endpoint, exclusive with the `endpoint` parameter\n* `endpoint`: An Endpoint resource describing the endpoint, exclusive with the `endpointUri` parameter\n\n**Processing semantics**:\n\nCreate a canonical-like reference (e.g.\n`{canonical.url}|{canonical.version}` or similar extensions for non-canonical artifacts).\n\n* Given a single `artifactEndpointConfiguration`\n  * When `artifactRoute` is present\n    * And `artifactRoute` *starts with* canonical or artifact reference\n    * Then attempt to resolve with `endpointUri` or `endpoint`\n  * When `artifactRoute` is not present\n    * Then attempt to resolve with `endpointUri` or `endpoint`\n* Given multiple `artifactEndpointConfiguration`s\n  * Then rank order each configuration (see below)\n  * And attempt to resolve with `endpointUri` or `endpoint` in order until resolved\n\nRank each `artifactEndpointConfiguration` such that:\n* if `artifactRoute` is present *and* `artifactRoute` *starts with* canonical or artifact reference: rank based on number of matching characters \n* if `artifactRoute` is *not* present: include but rank lower\n\nNOTE: For evenly ranked `artifactEndpointConfiguration`s, order as defined in the\nOperationDefinition.",
      "part": [
        {
          "name": "artifactRoute",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "uri"
        },
        {
          "name": "endpointUri",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "uri"
        },
        {
          "name": "endpoint",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "Endpoint"
        }
      ]
    },
    {
      "name": "terminologyEndpoint",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "An endpoint to use to access terminology (i.e. valuesets, codesystems, naming systems, concept maps, and membership testing) referenced by the resources. If no terminology endpoint is supplied, the server may use whatever mechanism is appropriate for accessing terminology. This could be the server on which the operation is invoked or a third party server accessible to the environment. When a terminology endpoint is provided, the server or third party servers may still be used as fallbacks.",
      "type": "Endpoint"
    },
    {
      "name": "return",
      "use": "out",
      "min": 1,
      "max": "1",
      "documentation": "The differential in [FHIR Patch format](https://www.hl7.org/fhir/fhirpatch.html).",
      "type": "Parameters"
    }
  ]
}