Clinical Practice Guidelines
2.0.0 - trial-use International flag

Clinical Practice Guidelines, published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 2.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/cqf-recommendations/ and changes regularly. See the Directory of published versions

: CPG PlanDefinition Apply - JSON Representation

Page standards status: Trial-use Maturity Level: 2

Raw json | Download

{
  "resourceType" : "OperationDefinition",
  "id" : "cpg-plandefinition-apply",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: OperationDefinition cpg-plandefinition-apply</b></p><a name=\"cpg-plandefinition-apply\"> </a><a name=\"hccpg-plandefinition-apply\"> </a><a name=\"cpg-plandefinition-apply-en-US\"> </a><p>URL: [base]/PlanDefinition/$apply</p><p>URL: [base]/PlanDefinition/[id]/$apply</p><h3>Parameters</h3><table class=\"grid\"><tr><td><b>Use</b></td><td><b>Name</b></td><td><b>Scope</b></td><td><b>Cardinality</b></td><td><b>Type</b></td><td><b>Binding</b></td><td><b>Documentation</b></td></tr><tr><td>IN</td><td>url</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>Canonical URL of the PlanDefinition when invoked at the resource type level. This is exclusive with the <code>planDefinition</code> parameter.</p>\n</div></td></tr><tr><td>IN</td><td>version</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>Version of the PlanDefinition when invoked at the resource type level. This is exclusive with the <code>planDefinition</code> parameter.</p>\n</div></td></tr><tr><td>IN</td><td>planDefinition</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/plandefinition.html\">PlanDefinition</a></td><td/><td><div><p>The plan definition to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, either this parameter or <code>url</code> (and optionally <code>version</code>) must be supplied.</p>\n</div></td></tr><tr><td>IN</td><td>subject</td><td/><td>1..*</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a><br/>(<a href=\"http://hl7.org/fhir/R4/search.html#reference\">reference</a>)</td><td/><td><div><p>The subject(s) that is/are the target of the plan to be applied. The subject may be a Patient, Practitioner, Organization, Location, Device, or Group. Subjects provided in this parameter will be resolved as the subject of the PlanDefinition based on the type of the subject. If multiple subjects of the same type are provided, the behavior is implementation-defined</p>\n</div></td></tr><tr><td>IN</td><td>encounter</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a><br/>(<a href=\"http://hl7.org/fhir/R4/search.html#reference\">reference</a>)</td><td/><td><div><p>The encounter in context, if any</p>\n</div></td></tr><tr><td>IN</td><td>practitioner</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a><br/>(<a href=\"http://hl7.org/fhir/R4/search.html#reference\">reference</a>)</td><td/><td><div><p>The practitioner applying the plan definition</p>\n</div></td></tr><tr><td>IN</td><td>organization</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a><br/>(<a href=\"http://hl7.org/fhir/R4/search.html#reference\">reference</a>)</td><td/><td><div><p>The organization applying the plan definition</p>\n</div></td></tr><tr><td>IN</td><td>userType</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>The type of user initiating the request, e.g. patient, healthcare provider, or specific type of healthcare provider (physician, nurse, etc.)</p>\n</div></td></tr><tr><td>IN</td><td>userLanguage</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>Preferred language of the person using the system</p>\n</div></td></tr><tr><td>IN</td><td>userTaskContext</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>The task the system user is performing, e.g. laboratory results review, medication list review, etc. This information can be used to tailor decision support outputs, such as recommended information resources</p>\n</div></td></tr><tr><td>IN</td><td>setting</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>The current setting of the request (inpatient, outpatient, etc.)</p>\n</div></td></tr><tr><td>IN</td><td>settingContext</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>Additional detail about the setting of the request, if any</p>\n</div></td></tr><tr><td>IN</td><td>mergeNestedCarePlans</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>True if the result of any nested PlanDefinitions should be merged into the final care plan, false if they should be preserved as nested CarePlans in the output. If this parameter is not specified, the default behavior is to preserve nested care plans in the output.</p>\n</div></td></tr><tr><td>IN</td><td>parameters</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/parameters.html\">Parameters</a></td><td/><td><div><p>Any input parameters defined in libraries referenced by the PlanDefinition.  Parameter types are mapped to CQL as specified in the Using CQL With FHIR implementation guide. If a parameter appears more than once in the input Parameters resource, it is represented with a List in the input CQL. If a parameter has parts, it is represented as a Tuple in the input CQL.</p>\n</div></td></tr><tr><td>IN</td><td>useServerData</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>Whether to use data from the server performing the evaluation. If this parameter is true (the default), then the operation will use data first from any bundles provided as parameters (through the data and prefetch parameters), second data from the server performing the operation, and third, data from the dataEndpoint parameter (if provided). If this parameter is false, the operation will use data first from the bundles provided in the data or prefetch parameters, and second from the dataEndpoint parameter (if provided).</p>\n</div></td></tr><tr><td>IN</td><td>data</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/bundle.html\">Bundle</a></td><td/><td><div><p>Data to be made available to the PlanDefinition evaluation. This parameter is exclusive with the prefetchData parameter (i.e. either provide all data as a single bundle, or provide data using multiple bundles with prefetch descriptions).</p>\n</div></td></tr><tr><td>IN</td><td>prefetchData</td><td/><td>0..*</td><td></td><td/><td><div><p>Data to be made available to the PlanDefinition evaluation, organized as prefetch response bundles. Each prefetchData parameter specifies either the name of the prefetchKey it is satisfying, a DataRequirement describing the prefetch, or both.</p>\n</div></td></tr><tr><td>IN</td><td>prefetchData.key</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>The key of the prefetch item. This typically corresponds to the name of a parameter in a library, or the name of a prefetch item in a CDS Hooks discovery response</p>\n</div></td></tr><tr><td>IN</td><td>prefetchData.descriptor</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/metadatatypes.html#DataRequirement\">DataRequirement</a></td><td/><td><div><p>A DataRequirement describing the content of the prefetch item.</p>\n</div></td></tr><tr><td>IN</td><td>prefetchData.data</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/bundle.html\">Bundle</a></td><td/><td><div><p>The prefetch data as a Bundle. If the prefetchData has no prefetchResult part, it indicates there is no data associated with this prefetch item.</p>\n</div></td></tr><tr><td>IN</td><td>dataEndpoint</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/endpoint.html\">Endpoint</a></td><td/><td><div><p>An endpoint to use to access data referenced by retrieve operations in libraries referenced by the PlanDefinition. If provided, this endpoint is used after the data or prefetchData bundles, and the server, if the useServerData parameter is true.</p>\n</div></td></tr><tr><td>IN</td><td>artifactEndpointConfiguration</td><td/><td>0..*</td><td></td><td/><td><div><p>Configuration information to resolve canonical artifacts</p>\n<p>Processing Semantics:</p>\n<p>Create a canonical-like reference (e.g.\n<code>{canonical.url}|{canonical.version}</code> or similar extensions for non-canonical artifacts).</p>\n<ul>\n<li>Given a single <code>artifactEndpointConfiguration</code>\n<ul>\n<li>When <code>artifactRoute</code> is present\n<ul>\n<li>And <code>artifactRoute</code> <em>starts with</em> canonical or artifact reference</li>\n<li>Then attempt to resolve with <code>endpointUri</code> or <code>endpoint</code></li>\n</ul>\n</li>\n<li>When <code>artifactRoute</code> is not present\n<ul>\n<li>Then attempt to resolve with <code>endpointUri</code> or <code>endpoint</code></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Given multiple <code>artifactEndpointConfiguration</code>s\n<ul>\n<li>Then rank order each configuration (see below)</li>\n<li>And attempt to resolve with <code>endpointUri</code> or <code>endpoint</code> in order until resolved</li>\n</ul>\n</li>\n</ul>\n<p>Rank each <code>artifactEndpointConfiguration</code> such that:</p>\n<ul>\n<li>if <code>artifactRoute</code> is present <em>and</em> <code>artifactRoute</code> <em>starts with</em> canonical or artifact reference: rank based on number of matching characters</li>\n<li>if <code>artifactRoute</code> is <em>not</em> present: include but rank lower</li>\n</ul>\n<p>NOTE: For evenly ranked <code>artifactEndpointConfiguration</code>s, order as defined in the\nOperationDefinition.</p>\n</div></td></tr><tr><td>IN</td><td>artifactEndpointConfiguration.artifactRoute</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>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)</p>\n</div></td></tr><tr><td>IN</td><td>artifactEndpointConfiguration.endpointUri</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>The URI of the endpoint, exclusive with the <code>endpoint</code> parameter</p>\n</div></td></tr><tr><td>IN</td><td>artifactEndpointConfiguration.endpoint</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/endpoint.html\">Endpoint</a></td><td/><td><div><p>An Endpoint resource describing the endpoint, exclusive with the <code>endpointUri</code> parameter</p>\n</div></td></tr><tr><td>IN</td><td>terminologyEndpoint</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/endpoint.html\">Endpoint</a></td><td/><td><div><p>An endpoint to use to access terminology (i.e. valuesets, codesystems, and membership testing) referenced by the PlanDefinition. If no terminology endpoint is supplied, the evaluation will attempt to use the server on which the operation is being performed as the terminology server.</p>\n</div></td></tr><tr><td>OUT</td><td>return</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/bundle.html\">Bundle</a></td><td/><td><div><p>A Bundle for each input subject that is the result of applying the plan definition to that subject.</p>\n</div></td></tr></table><div><p>The result of this operation is a Bundle for each subject, where the Bundle\ncontains Request resources that are the direct result of applying\nthe PlanDefinition to that subject. The Bundle will have entries for\neach of the applicable actions in the PlanDefinition based on evaluating\nthe applicability condition in context, and producing Request resources\nbased on the definition element for each applicable action.</p>\n<p>For each applicable action, the definition is applied as described in the <code>$apply</code>\noperation of the ActivityDefinition resource, and the resulting resource is\nadded as an entry in the Bundle. The resulting Bundle may be any combination of\nRequest resources, including CarePlan, RequestGroup, and individual Request resources\nsuch as ServiceRequest and MedicationRequest.</p>\n<p>Note that to preserve the structure of the PlanDefinition, systems may choose to return\nthe requests in a RequestGroup. In this case, the individual request resources will have\nan intent of <code>option</code>, meaning that their intent is governed by the RequestGroup.</p>\n<p>If the ActivityDefinition includes library references, those\nlibraries will be available to the evaluated expressions. If those libraries\nhave parameters, those parameters will be bound by name to the parameters given\nto the operation.  In addition, parameters to the <code>$apply</code> operation are available\nwithin dynamicValue expressions as context variables, accessible by the name of\nthe parameter, prefixed with a percent (%) symbol.</p>\n<p>For a more detailed description, refer to the PlanDefinition and\nActivityDefinition resource documentation. Note that result of this operation is\ntransient (i.e. none of the resources created by the operation are persisted in\nthe server, they are all returned as entries in the result Bundle(s)). The\nresult effectively represents a proposed set of activities, and it is up to the\ncaller to determine whether and how those activities are actually carried out.</p>\n</div></div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger" : 2
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode" : "trial-use"
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode" : "cds"
    }
  ],
  "url" : "http://hl7.org/fhir/uv/cpg/OperationDefinition/cpg-plandefinition-apply",
  "version" : "2.0.0",
  "name" : "CPGPlanDefinitionApply",
  "title" : "CPG PlanDefinition Apply",
  "status" : "active",
  "kind" : "operation",
  "date" : "2024-11-21T04:10:48+00:00",
  "publisher" : "HL7 International / Clinical Decision Support",
  "contact" : [
    {
      "name" : "HL7 International / Clinical Decision Support",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.hl7.org/Special/committees/dss"
        }
      ]
    }
  ],
  "description" : "The apply operation applies a PlanDefinition to a given context",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code" : "001",
          "display" : "World"
        }
      ]
    }
  ],
  "code" : "apply",
  "comment" : "The result of this operation is a Bundle for each subject, where the Bundle \ncontains Request resources that are the direct result of applying \nthe PlanDefinition to that subject. The Bundle will have entries for \neach of the applicable actions in the PlanDefinition based on evaluating \nthe applicability condition in context, and producing Request resources \nbased on the definition element for each applicable action.\n\nFor each applicable action, the definition is applied as described in the `$apply`\noperation of the ActivityDefinition resource, and the resulting resource is\nadded as an entry in the Bundle. The resulting Bundle may be any combination of\nRequest resources, including CarePlan, RequestGroup, and individual Request resources\nsuch as ServiceRequest and MedicationRequest.\n\nNote that to preserve the structure of the PlanDefinition, systems may choose to return\nthe requests in a RequestGroup. In this case, the individual request resources will have\nan intent of `option`, meaning that their intent is governed by the RequestGroup.\n\nIf the ActivityDefinition includes library references, those\nlibraries will be available to the evaluated expressions. If those libraries\nhave parameters, those parameters will be bound by name to the parameters given\nto the operation.  In addition, parameters to the `$apply` operation are available\nwithin dynamicValue expressions as context variables, accessible by the name of\nthe parameter, prefixed with a percent (%) symbol.\n\nFor a more detailed description, refer to the PlanDefinition and\nActivityDefinition resource documentation. Note that result of this operation is\ntransient (i.e. none of the resources created by the operation are persisted in\nthe server, they are all returned as entries in the result Bundle(s)). The\nresult effectively represents a proposed set of activities, and it is up to the\ncaller to determine whether and how those activities are actually carried out.",
  "resource" : [
    "PlanDefinition"
  ],
  "system" : false,
  "type" : true,
  "instance" : true,
  "parameter" : [
    {
      "name" : "url",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Canonical URL of the PlanDefinition when invoked at the resource type level. This is exclusive with the `planDefinition` parameter.",
      "type" : "uri"
    },
    {
      "name" : "version",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Version of the PlanDefinition when invoked at the resource type level. This is exclusive with the `planDefinition` parameter.",
      "type" : "string"
    },
    {
      "name" : "planDefinition",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The plan definition to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, either this parameter or `url` (and optionally `version`) must be supplied.",
      "type" : "PlanDefinition"
    },
    {
      "name" : "subject",
      "use" : "in",
      "min" : 1,
      "max" : "*",
      "documentation" : "The subject(s) that is/are the target of the plan to be applied. The subject may be a Patient, Practitioner, Organization, Location, Device, or Group. Subjects provided in this parameter will be resolved as the subject of the PlanDefinition based on the type of the subject. If multiple subjects of the same type are provided, the behavior is implementation-defined",
      "type" : "string",
      "searchType" : "reference"
    },
    {
      "name" : "encounter",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The encounter in context, if any",
      "type" : "string",
      "searchType" : "reference"
    },
    {
      "name" : "practitioner",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The practitioner applying the plan definition",
      "type" : "string",
      "searchType" : "reference"
    },
    {
      "name" : "organization",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The organization applying the plan definition",
      "type" : "string",
      "searchType" : "reference"
    },
    {
      "name" : "userType",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The type of user initiating the request, e.g. patient, healthcare provider, or specific type of healthcare provider (physician, nurse, etc.)",
      "type" : "CodeableConcept"
    },
    {
      "name" : "userLanguage",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Preferred language of the person using the system",
      "type" : "CodeableConcept"
    },
    {
      "name" : "userTaskContext",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The task the system user is performing, e.g. laboratory results review, medication list review, etc. This information can be used to tailor decision support outputs, such as recommended information resources",
      "type" : "CodeableConcept"
    },
    {
      "name" : "setting",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The current setting of the request (inpatient, outpatient, etc.)",
      "type" : "CodeableConcept"
    },
    {
      "name" : "settingContext",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Additional detail about the setting of the request, if any",
      "type" : "CodeableConcept"
    },
    {
      "name" : "mergeNestedCarePlans",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "True if the result of any nested PlanDefinitions should be merged into the final care plan, false if they should be preserved as nested CarePlans in the output. If this parameter is not specified, the default behavior is to preserve nested care plans in the output.",
      "type" : "boolean"
    },
    {
      "name" : "parameters",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Any input parameters defined in libraries referenced by the PlanDefinition.  Parameter types are mapped to CQL as specified in the Using CQL With FHIR implementation guide. If a parameter appears more than once in the input Parameters resource, it is represented with a List in the input CQL. If a parameter has parts, it is represented as a Tuple in the input CQL.",
      "type" : "Parameters"
    },
    {
      "name" : "useServerData",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Whether to use data from the server performing the evaluation. If this parameter is true (the default), then the operation will use data first from any bundles provided as parameters (through the data and prefetch parameters), second data from the server performing the operation, and third, data from the dataEndpoint parameter (if provided). If this parameter is false, the operation will use data first from the bundles provided in the data or prefetch parameters, and second from the dataEndpoint parameter (if provided).",
      "type" : "boolean"
    },
    {
      "name" : "data",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Data to be made available to the PlanDefinition evaluation. This parameter is exclusive with the prefetchData parameter (i.e. either provide all data as a single bundle, or provide data using multiple bundles with prefetch descriptions).",
      "type" : "Bundle"
    },
    {
      "name" : "prefetchData",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "Data to be made available to the PlanDefinition evaluation, organized as prefetch response bundles. Each prefetchData parameter specifies either the name of the prefetchKey it is satisfying, a DataRequirement describing the prefetch, or both.",
      "part" : [
        {
          "name" : "key",
          "use" : "in",
          "min" : 0,
          "max" : "1",
          "documentation" : "The key of the prefetch item. This typically corresponds to the name of a parameter in a library, or the name of a prefetch item in a CDS Hooks discovery response",
          "type" : "string"
        },
        {
          "name" : "descriptor",
          "use" : "in",
          "min" : 0,
          "max" : "1",
          "documentation" : "A DataRequirement describing the content of the prefetch item.",
          "type" : "DataRequirement"
        },
        {
          "name" : "data",
          "use" : "in",
          "min" : 0,
          "max" : "1",
          "documentation" : "The prefetch data as a Bundle. If the prefetchData has no prefetchResult part, it indicates there is no data associated with this prefetch item.",
          "type" : "Bundle"
        }
      ]
    },
    {
      "name" : "dataEndpoint",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "An endpoint to use to access data referenced by retrieve operations in libraries referenced by the PlanDefinition. If provided, this endpoint is used after the data or prefetchData bundles, and the server, if the useServerData parameter is true.",
      "type" : "Endpoint"
    },
    {
      "name" : "artifactEndpointConfiguration",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "Configuration information to resolve canonical artifacts\n\nProcessing 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",
          "documentation" : "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)",
          "type" : "uri"
        },
        {
          "name" : "endpointUri",
          "use" : "in",
          "min" : 0,
          "max" : "1",
          "documentation" : "The URI of the endpoint, exclusive with the `endpoint` parameter",
          "type" : "uri"
        },
        {
          "name" : "endpoint",
          "use" : "in",
          "min" : 0,
          "max" : "1",
          "documentation" : "An Endpoint resource describing the endpoint, exclusive with the `endpointUri` parameter",
          "type" : "Endpoint"
        }
      ]
    },
    {
      "name" : "terminologyEndpoint",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "An endpoint to use to access terminology (i.e. valuesets, codesystems, and membership testing) referenced by the PlanDefinition. If no terminology endpoint is supplied, the evaluation will attempt to use the server on which the operation is being performed as the terminology server.",
      "type" : "Endpoint"
    },
    {
      "name" : "return",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "documentation" : "A Bundle for each input subject that is the result of applying the plan definition to that subject.",
      "type" : "Bundle"
    }
  ]
}