{
  "resourceType": "StructureDefinition",
  "id": "external-prefill-source",
  "url": "https://helsenorge.no/fhir/StructureDefinition/external-prefill-source",
  "version": "1.0.0",
  "name": "ExternalPrefillSource",
  "title": "External Prefill Source",
  "description": "Defines an external service that can be used by custom prefill expressions in a Questionnaire.",
  "fhirVersion": "4.0.1",
  "kind": "complex-type",
  "abstract": false,
  "context": [
    {
      "type": "element",
      "expression": "Questionnaire"
    }
  ],
  "type": "Extension",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "External Prefill Source",
        "definition": "Defines an external service that can be used by custom prefill expressions in a Questionnaire."
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "min": 3
      },
      {
        "id": "Extension.extension:name",
        "path": "Extension.extension",
        "sliceName": "name",
        "short": "Logical unique identifier of the service",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:name.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:name.url",
        "path": "Extension.extension.url",
        "fixedUri": "name"
      },
      {
        "id": "Extension.extension:name.value[x]",
        "path": "Extension.extension.value[x]",
        "type": [
          {
            "code": "id"
          }
        ]
      },
      {
        "id": "Extension.extension:method",
        "path": "Extension.extension",
        "sliceName": "method",
        "short": "HTTP method",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:method.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:method.url",
        "path": "Extension.extension.url",
        "fixedUri": "method"
      },
      {
        "id": "Extension.extension:method.value[x]",
        "path": "Extension.extension.value[x]",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://example.org/ValueSet/http-method-vs"
        }
      },
      {
        "id": "Extension.extension:endpoint",
        "path": "Extension.extension",
        "sliceName": "endpoint",
        "short": "Endpoint URL template",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:endpoint.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:endpoint.url",
        "path": "Extension.extension.url",
        "fixedUri": "endpoint"
      },
      {
        "id": "Extension.extension:endpoint.value[x]",
        "path": "Extension.extension.value[x]",
        "type": [
          {
            "code": "url"
          }
        ]
      },
      {
        "id": "Extension.extension:subjectParameter",
        "path": "Extension.extension",
        "sliceName": "subjectParameter",
        "short": "Name of parameter receiving subject identifier",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:subjectParameter.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:subjectParameter.url",
        "path": "Extension.extension.url",
        "fixedUri": "subjectParameter"
      },
      {
        "id": "Extension.extension:subjectParameter.value[x]",
        "path": "Extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:parameters",
        "path": "Extension.extension",
        "sliceName": "parameters",
        "short": "Request parameters",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter",
        "path": "Extension.extension.extension",
        "sliceName": "parameter",
        "short": "Single request parameter",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension",
        "path": "Extension.extension.extension.extension",
        "min": 2
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:name",
        "path": "Extension.extension.extension.extension",
        "sliceName": "name",
        "short": "Parameter name",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:name.extension",
        "path": "Extension.extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:name.url",
        "path": "Extension.extension.extension.extension.url",
        "fixedUri": "name"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:name.value[x]",
        "path": "Extension.extension.extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:value",
        "path": "Extension.extension.extension.extension",
        "sliceName": "value",
        "short": "Parameter value or template",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:value.extension",
        "path": "Extension.extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:value.url",
        "path": "Extension.extension.extension.extension.url",
        "fixedUri": "value"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.extension:value.value[x]",
        "path": "Extension.extension.extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "parameter"
      },
      {
        "id": "Extension.extension:parameters.extension:parameter.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:parameters.url",
        "path": "Extension.extension.url",
        "fixedUri": "parameters"
      },
      {
        "id": "Extension.extension:parameters.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:auth",
        "path": "Extension.extension",
        "sliceName": "auth",
        "short": "Authentication metadata",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:auth.extension",
        "path": "Extension.extension.extension",
        "min": 1
      },
      {
        "id": "Extension.extension:auth.extension:type",
        "path": "Extension.extension.extension",
        "sliceName": "type",
        "short": "Authentication type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:auth.extension:type.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:auth.extension:type.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "type"
      },
      {
        "id": "Extension.extension:auth.extension:type.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://example.org/ValueSet/auth-type-vs"
        }
      },
      {
        "id": "Extension.extension:auth.extension:credentialRef",
        "path": "Extension.extension.extension",
        "sliceName": "credentialRef",
        "short": "Reference to external credential configuration",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:auth.extension:credentialRef.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:auth.extension:credentialRef.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "credentialRef"
      },
      {
        "id": "Extension.extension:auth.extension:credentialRef.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "id"
          }
        ]
      },
      {
        "id": "Extension.extension:auth.extension:scope",
        "path": "Extension.extension.extension",
        "sliceName": "scope",
        "short": "OAuth scope",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Extension.extension:auth.extension:scope.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:auth.extension:scope.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "scope"
      },
      {
        "id": "Extension.extension:auth.extension:scope.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:auth.url",
        "path": "Extension.extension.url",
        "fixedUri": "auth"
      },
      {
        "id": "Extension.extension:auth.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:headers",
        "path": "Extension.extension",
        "sliceName": "headers",
        "short": "Static HTTP headers",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:headers.extension:header",
        "path": "Extension.extension.extension",
        "sliceName": "header",
        "short": "Single HTTP header",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension",
        "path": "Extension.extension.extension.extension",
        "min": 2
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:name",
        "path": "Extension.extension.extension.extension",
        "sliceName": "name",
        "short": "Header name",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:name.extension",
        "path": "Extension.extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:name.url",
        "path": "Extension.extension.extension.extension.url",
        "fixedUri": "name"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:name.value[x]",
        "path": "Extension.extension.extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:value",
        "path": "Extension.extension.extension.extension",
        "sliceName": "value",
        "short": "Header value",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:value.extension",
        "path": "Extension.extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:value.url",
        "path": "Extension.extension.extension.extension.url",
        "fixedUri": "value"
      },
      {
        "id": "Extension.extension:headers.extension:header.extension:value.value[x]",
        "path": "Extension.extension.extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:headers.extension:header.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "header"
      },
      {
        "id": "Extension.extension:headers.extension:header.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:headers.url",
        "path": "Extension.extension.url",
        "fixedUri": "headers"
      },
      {
        "id": "Extension.extension:headers.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:paging",
        "path": "Extension.extension",
        "sliceName": "paging",
        "short": "Paging configuration",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:paging.extension",
        "path": "Extension.extension.extension",
        "min": 1
      },
      {
        "id": "Extension.extension:paging.extension:mode",
        "path": "Extension.extension.extension",
        "sliceName": "mode",
        "short": "Paging mode",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:paging.extension:mode.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:paging.extension:mode.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "mode"
      },
      {
        "id": "Extension.extension:paging.extension:mode.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://example.org/ValueSet/paging-mode-vs"
        }
      },
      {
        "id": "Extension.extension:paging.extension:nextPath",
        "path": "Extension.extension.extension",
        "sliceName": "nextPath",
        "short": "Path to next-page token or URL",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:paging.extension:nextPath.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:paging.extension:nextPath.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "nextPath"
      },
      {
        "id": "Extension.extension:paging.extension:nextPath.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:paging.url",
        "path": "Extension.extension.url",
        "fixedUri": "paging"
      },
      {
        "id": "Extension.extension:paging.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:retry",
        "path": "Extension.extension",
        "sliceName": "retry",
        "short": "Retry behavior configuration",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:retry.extension",
        "path": "Extension.extension.extension",
        "min": 1
      },
      {
        "id": "Extension.extension:retry.extension:maxAttempts",
        "path": "Extension.extension.extension",
        "sliceName": "maxAttempts",
        "short": "Maximum retry attempts",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:retry.extension:maxAttempts.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:retry.extension:maxAttempts.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "maxAttempts"
      },
      {
        "id": "Extension.extension:retry.extension:maxAttempts.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "Extension.extension:retry.extension:delayMilliseconds",
        "path": "Extension.extension.extension",
        "sliceName": "delayMilliseconds",
        "short": "Delay between retries in milliseconds",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:retry.extension:delayMilliseconds.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:retry.extension:delayMilliseconds.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "delayMilliseconds"
      },
      {
        "id": "Extension.extension:retry.extension:delayMilliseconds.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "Extension.extension:retry.url",
        "path": "Extension.extension.url",
        "fixedUri": "retry"
      },
      {
        "id": "Extension.extension:retry.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:resultPath",
        "path": "Extension.extension",
        "sliceName": "resultPath",
        "short": "Path into response payload containing result object",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:resultPath.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:resultPath.url",
        "path": "Extension.extension.url",
        "fixedUri": "resultPath"
      },
      {
        "id": "Extension.extension:resultPath.value[x]",
        "path": "Extension.extension.value[x]",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "fixedUri": "https://helsenorge.no/fhir/StructureDefinition/external-prefill-source"
      },
      {
        "id": "Extension.value[x]",
        "path": "Extension.value[x]",
        "max": "0"
      }
    ]
  }
}