PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.crmi@1.0.0-snapshot
    http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-artifact-endpoint-configurable-operation
description: 'Profile for operations where artifact endpoint configuration can be specified.\n\n* `artifactEndpointConfiguration`: 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.'
package_name: hl7.fhir.uv.crmi
derivation: constraint
name: ArtifactEndpointConfigurableOperation
type: OperationDefinition
elements:
  parameter:
    index: 0
    slicing:
      rules: open
      discriminator:
      - {path: name, type: value}
      min: null
      slices:
        artifactEndpointConfiguration:
          match: {name: artifactEndpointConfiguration}
          schema:
            mustSupport: true
            array: true
            index: 1
            elements:
              name:
                pattern: {type: Code, value: artifactEndpointConfiguration}
                index: 2
              use:
                pattern: {type: Code, value: in}
                index: 3
              min:
                pattern: {type: Integer, value: 0}
                index: 4
              max:
                pattern: {type: String, value: '*'}
                index: 5
              part:
                index: 6
                slicing:
                  rules: open
                  discriminator:
                  - {path: name, type: value}
                  min: null
                  slices:
                    artifactRoute:
                      match: {name: artifactRoute}
                      schema:
                        type: BackboneElement
                        mustSupport: true
                        index: 7
                        elements:
                          name:
                            pattern: {type: Code, value: artifactRoute}
                            index: 8
                          min:
                            pattern: {type: Integer, value: 0}
                            index: 9
                          max:
                            pattern: {type: String, value: '1'}
                            index: 10
                          type:
                            pattern: {type: Code, value: uri}
                            index: 11
                    endpointUri:
                      match: {name: endpointUri}
                      schema:
                        type: BackboneElement
                        mustSupport: true
                        index: 12
                        elements:
                          name:
                            pattern: {type: Code, value: endpointUri}
                            index: 13
                          min:
                            pattern: {type: Integer, value: 0}
                            index: 14
                          max:
                            pattern: {type: String, value: '1'}
                            index: 15
                          type:
                            pattern: {type: Code, value: uri}
                            index: 16
                    endpoint:
                      match: {name: endpoint}
                      schema:
                        type: BackboneElement
                        mustSupport: true
                        index: 17
                        elements:
                          name:
                            pattern: {type: Code, value: endpoint}
                            index: 18
                          min:
                            pattern: {type: Integer, value: 0}
                            index: 19
                          max:
                            pattern: {type: String, value: '1'}
                            index: 20
                          type:
                            pattern: {type: Code, value: Endpoint}
                            index: 21
package_version: 1.0.0-snapshot
class: profile
kind: resource
url: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-artifact-endpoint-configurable-operation
base: http://hl7.org/fhir/StructureDefinition/OperationDefinition
version: 1.0.0-snapshot