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