{
  "resourceType": "StructureDefinition",
  "id": "digidot-ServiceRequest-no",
  "url": "https://novari.no/fhir/digidot/StructureDefinition/digidot-ServiceRequest-no",
  "version": "0.6.0-test",
  "name": "DigidotServiceRequestNo",
  "title": "DigiDOT ServiceRequest (NO)",
  "status": "draft",
  "date": "2026-09-16",
  "publisher": "Novari AS - DigiDOT",
  "description": "Optional for a general recall identified by category dental-recall and occurrence[x]; required for a specific treatment, diagnostic or follow-up service. Both slots describe a planned Situation identifying the requested procedure and Planned context. A generic Planned procedure concept is not specific enough. In an expression, nest anatomical refinements within Associated procedure, not on the outer Situation. The clinical code uses a required extended coding and an optional precoordinated companion. When bodySite is present, the extended coding must represent the same complete anatomical scope. A precoordinated concept is sufficient if its defined meaning already represents that scope; otherwise use a valid refined SNOMED CT expression. Validate concept membership, compositional grammar, MRCM, clinical templates and anatomical equivalence with the terminology service; a FHIR syntax guard cannot establish these semantic requirements.",
  "purpose": "Use for clinical treatment requests and general recall plans. General recall is identified by category dental-recall and requested timing; no artificial SNOMED procedure code is required. Specific treatment, diagnostic and follow-up requests require a planned service code. Appointment schedules individual attendance; an ongoing recurring recall plan is not completed by one appointment.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "ServiceRequest",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/ServiceRequest",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "ServiceRequest",
        "path": "ServiceRequest",
        "short": "Planned, proposed or ordered dental service",
        "definition": "One planned, proposed or ordered dental service, including a specialist referral. Appointment schedules it, Encounter records care that actually happened, and Procedure or Observation records clinical actions/results. These resources retain independent identities and lifecycle states.",
        "constraint": [
          {
            "key": "digidot-sr-recall-occurrence",
            "severity": "error",
            "human": "A ServiceRequest with category dental-recall SHALL have occurrence[x] to express the recall due date, due window or cadence. The exact booked time belongs on Appointment.",
            "expression": "category.coding.where(system = 'https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category' and code = 'dental-recall').empty() or occurrence.exists()"
          },
          {
            "key": "digidot-sr-recall-plan",
            "severity": "warning",
            "human": "A ServiceRequest with category dental-recall SHOULD normally use intent = plan.",
            "expression": "category.coding.where(system = 'https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category' and code = 'dental-recall').empty() or intent = 'plan'"
          },
          {
            "key": "servicerequest-anatomy-same-release",
            "severity": "error",
            "human": "When bodySite is populated, SNOMED CT clinical codings use the same release as the inline anatomical value.",
            "expression": "bodySite.empty() or code.coding.where(system = 'http://snomed.info/sct').all(version = 'http://snomed.info/sct/51000202101/version/20260715')"
          },
          {
            "key": "digidot-sr-specific-service-code",
            "severity": "error",
            "human": "Only general dental recall may omit the clinical service code. Treatment, diagnostic and specific follow-up requests require code.",
            "expression": "category.coding.where(system = 'https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category' and code = 'dental-recall').exists() or code.exists()"
          },
          {
            "key": "digidot-sr-uncoded-recall-anatomy",
            "severity": "error",
            "human": "An uncoded general recall does not specify a tooth or anatomical target; targeted services require code.",
            "expression": "code.exists() or bodySite.empty()"
          },
          {
            "key": "digidot-sr-recall-cadence",
            "severity": "error",
            "human": "A recurring recall Timing must identify its first due date and recurrence frequency, period and unit.",
            "expression": "category.coding.where(system = 'https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category' and code = 'dental-recall').empty() or occurrence.ofType(Timing).empty() or (occurrence.ofType(Timing).repeat.bounds.ofType(Period).start.exists() and occurrence.ofType(Timing).repeat.frequency.exists() and occurrence.ofType(Timing).repeat.period.exists() and occurrence.ofType(Timing).repeat.periodUnit.exists())"
          },
          {
            "key": "digidot-sr-recall-regular-interval",
            "severity": "error",
            "human": "A recurring general recall has frequency 1 and a positive fixed period, without frequencyMax or periodMax.",
            "expression": "category.coding.where(system = 'https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category' and code = 'dental-recall').empty() or occurrence.ofType(Timing).empty() or (occurrence.ofType(Timing).repeat.frequency = 1 and occurrence.ofType(Timing).repeat.period > 0 and occurrence.ofType(Timing).repeat.frequencyMax.empty() and occurrence.ofType(Timing).repeat.periodMax.empty())"
          }
        ]
      },
      {
        "id": "ServiceRequest.implicitRules",
        "path": "ServiceRequest.implicitRules",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "The Central Storage representation follows the published DigiDOT profile, terminology release and exchange documentation. It does not use resource-specific implicit rules.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.contained",
        "path": "ServiceRequest.contained",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "Relevant resources must have their own FHIR identity, provenance, version history and searchable references in Central Storage.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.extension",
        "path": "ServiceRequest.extension",
        "short": "No root extensions in the current draft",
        "definition": "No named and governed ServiceRequest extension is in scope. A future extension requires a documented dental use case, a named and governed definition, and an explicit profile change.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.modifierExtension",
        "path": "ServiceRequest.modifierExtension",
        "short": "No modifier extensions in the current draft",
        "definition": "Modifier extensions can alter the meaning of a ServiceRequest. None is defined for the current DigiDOT scope.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.identifier",
        "path": "ServiceRequest.identifier",
        "short": "Stable source business identifiers",
        "definition": "At least one stable, complete business identifier for this request. Use the source namespace and value, or a governed integration-assigned identity when the source has none. Preserve the mapping across re-imports. Different organisations and different requests retain distinct identities; do not use one shared episode identifier as their resource identity.",
        "min": 1,
        "max": "*",
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.identifier.system",
        "path": "ServiceRequest.identifier.system",
        "min": 1
      },
      {
        "id": "ServiceRequest.identifier.value",
        "path": "ServiceRequest.identifier.value",
        "min": 1
      },
      {
        "id": "ServiceRequest.instantiatesCanonical",
        "path": "ServiceRequest.instantiatesCanonical",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No ActivityDefinition or PlanDefinition instantiation model is agreed for the current dental planning scope.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.instantiatesUri",
        "path": "ServiceRequest.instantiatesUri",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No external protocol-instantiation model is agreed for the current dental planning scope.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.basedOn",
        "path": "ServiceRequest.basedOn",
        "short": "Higher-level dental request that this request fulfils or refines",
        "definition": "Use basedOn only when this ServiceRequest fulfils or refines another DigiDOT ServiceRequest. Do not use it to link a performed procedure; the Procedure points back with Procedure.basedOn. If the source records this request relationship, it shall be populated.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-ServiceRequest-no"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.basedOn.reference",
        "path": "ServiceRequest.basedOn.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.basedOn.identifier",
        "path": "ServiceRequest.basedOn.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.replaces",
        "path": "ServiceRequest.replaces",
        "short": "Previous dental request that this request replaces",
        "definition": "A previous request superseded by this request. Preserve the old identity and history. A superseded unfulfilled request is normally revoked; completed means its requested service was actually fulfilled. Do not mark it completed merely because a replacement exists.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-ServiceRequest-no"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.replaces.reference",
        "path": "ServiceRequest.replaces.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.replaces.identifier",
        "path": "ServiceRequest.replaces.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.requisition",
        "path": "ServiceRequest.requisition",
        "short": "Composite source request identifier when available",
        "definition": "Use requisition only when the source EHR has a stable composite identifier that groups related requested services. It does not replace the individual ServiceRequest.identifier and does not create an additional clinical-plan model."
      },
      {
        "id": "ServiceRequest.status",
        "path": "ServiceRequest.status",
        "short": "Lifecycle status of the plan or request",
        "definition": "Lifecycle of this request. Use completed when the requested service has been fulfilled; sending a referral, booking a time, administrative closure or finishing one contact does not by itself fulfil it. Use revoked for withdrawal/cancellation before fulfilment and on-hold for a paused request. Define fulfilment against the requested scope; assessment-only and assessment-plus-treatment requests may complete at different stages.",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.intent",
        "path": "ServiceRequest.intent",
        "short": "Request intent",
        "definition": "Use intent to distinguish a proposal, plan or order. Use proposal for a suggested service that has not yet become an agreed plan or order. For a normal local dental care plan, use plan. A dental-recall ServiceRequest normally uses plan. Use order only when the source represents an actual order to another performer or service. Technical FHIR ordering intents are not used in the current DigiDOT draft.",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "description": "Use proposal, plan or order according to the DigiDOT ServiceRequest intent ValueSet.",
          "valueSet": "https://novari.no/fhir/digidot/ValueSet/digidot-service-request-intent"
        }
      },
      {
        "id": "ServiceRequest.category",
        "path": "ServiceRequest.category",
        "short": "DigiDOT workflow category for the planned service",
        "definition": "Required request category. dental-recall identifies general periodic dental examinations, for which code is optional. dental-treatment, dental-diagnostic and dental-follow-up identify specific services and require code. Do not label targeted treatment as recall to omit its clinical code.",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://novari.no/fhir/digidot/ValueSet/digidot-service-request-category"
        }
      },
      {
        "id": "ServiceRequest.category.extension",
        "path": "ServiceRequest.category.extension",
        "short": "No extensions on the workflow category",
        "definition": "The category is represented by one canonical coding from the DigiDOT ServiceRequest Category ValueSet. Extensions are not used in the current draft.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.category.coding",
        "path": "ServiceRequest.category.coding",
        "short": "Canonical DigiDOT workflow category coding",
        "definition": "Use exactly one coding with system https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category and one code from the DigiDOT ServiceRequest Category ValueSet. A display or source text may be included, but it is not the clinical planned-service name.",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.category.coding.extension",
        "path": "ServiceRequest.category.coding.extension",
        "short": "No extensions on the workflow category coding",
        "definition": "The workflow category is represented directly by the governed DigiDOT coding. Extensions are not used in the current draft.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.category.coding.system",
        "path": "ServiceRequest.category.coding.system",
        "short": "DigiDOT ServiceRequest Category CodeSystem",
        "definition": "Use the fixed DigiDOT ServiceRequest category CodeSystem. It distinguishes the workflow purpose of the request and is separate from the clinical SNOMED CT concept in ServiceRequest.code.",
        "min": 1,
        "fixedUri": "https://novari.no/fhir/digidot/CodeSystem/digidot-service-request-category"
      },
      {
        "id": "ServiceRequest.category.coding.code",
        "path": "ServiceRequest.category.coding.code",
        "short": "DigiDOT workflow category code",
        "definition": "Select one code from the DigiDOT ServiceRequest Category ValueSet: dental-recall, dental-treatment, dental-diagnostic or dental-follow-up. The category must match the request purpose and must not be used as the clinical procedure code.",
        "min": 1
      },
      {
        "id": "ServiceRequest.category.coding.userSelected",
        "path": "ServiceRequest.category.coding.userSelected",
        "short": "Not used for the workflow category",
        "definition": "The DigiDOT workflow category is the agreed exchange representation. userSelected is not used in the current draft.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.priority",
        "path": "ServiceRequest.priority",
        "short": "Clinical priority of the requested service when known",
        "definition": "Use the standard FHIR priority when the source records a clinically relevant priority for the requested service. Do not infer priority from appointment availability or administrative scheduling.",
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.doNotPerform",
        "path": "ServiceRequest.doNotPerform",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "The current dental planning model uses ServiceRequest.status = revoked for a cancelled request. No separate do-not-perform workflow has been agreed.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.code",
        "path": "ServiceRequest.code",
        "short": "Planned service; optional for general recall",
        "definition": "Optional for a general recall identified by category dental-recall and occurrence[x]; required for a specific treatment, diagnostic or follow-up service. Both slots describe a planned Situation identifying the requested procedure and Planned context. A generic Planned procedure concept is not specific enough. In an expression, nest anatomical refinements within Associated procedure, not on the outer Situation. Include exactly one SCTextended coding and optionally one SCTpre coding. SCTextended carries the complete intended meaning as either a single precoordinated SNOMED CT concept or a postcoordinated expression. SCTpre is an optional, directly usable concept representing the same clinical meaning at the same or a compatible broader level of detail. Do not add a duplicate companion merely to fill a slot. When both are present they must use the same edition release and must not contradict each other; the extended coding may add compatible precision. Compatible meaning must be checked through the terminology contract, not inferred from code equality. When bodySite is present, the extended coding must represent the same complete anatomical scope. A precoordinated concept is sufficient if its defined meaning already represents that scope; otherwise use a valid refined SNOMED CT expression. Validate concept membership, compositional grammar, MRCM, clinical templates and anatomical equivalence with the terminology service; a FHIR syntax guard cannot establish these semantic requirements.",
        "min": 0,
        "max": "1",
        "constraint": [
          {
            "key": "digidot-coding-same-release",
            "severity": "error",
            "human": "When SCTpre is present, both clinical codings must use the same SNOMED CT edition release.",
            "expression": "coding.where(id = 'SCTpre').empty() or coding.where(id = 'SCTpre').version = coding.where(id = 'SCTextended').version"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "description": "Both accepted coding paths must describe a planned procedure Situation. Membership and the specific associated procedure require terminology validation.",
          "valueSet": "https://novari.no/fhir/digidot/ValueSet/planned-procedure-situations"
        }
      },
      {
        "id": "ServiceRequest.code.extension",
        "path": "ServiceRequest.code.extension",
        "short": "No extensions on the planned service code",
        "definition": "Additional clinical precision is represented by the agreed SCTextended coding in ServiceRequest.code.coding. Extensions on ServiceRequest.code are not used in the current DigiDOT draft.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.code.coding",
        "path": "ServiceRequest.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "id"
            }
          ],
          "rules": "closed"
        },
        "short": "One required extended coding and one optional precoordinated coding",
        "definition": "Include exactly one SCTextended coding and optionally one SCTpre coding. SCTextended carries the complete intended meaning as either a single precoordinated SNOMED CT concept or a postcoordinated expression. SCTpre is an optional, directly usable concept representing the same clinical meaning at the same or a compatible broader level of detail. Do not add a duplicate companion merely to fill a slot. When both are present they must use the same edition release and must not contradict each other; the extended coding may add compatible precision. Compatible meaning must be checked through the terminology contract, not inferred from code equality. Fixed Coding.id values distinguish the roles because a numeric concept can conform to both datatype profiles.",
        "min": 1,
        "max": "2"
      },
      {
        "id": "ServiceRequest.code.coding:SCTpre",
        "path": "ServiceRequest.code.coding",
        "sliceName": "SCTpre",
        "short": "Optional precoordinated SNOMED CT concept",
        "definition": "Optional for a general recall identified by category dental-recall and occurrence[x]; required for a specific treatment, diagnostic or follow-up service. Both slots describe a planned Situation identifying the requested procedure and Planned context. A generic Planned procedure concept is not specific enough. In an expression, nest anatomical refinements within Associated procedure, not on the outer Situation. Include exactly one SCTextended coding and optionally one SCTpre coding. SCTextended carries the complete intended meaning as either a single precoordinated SNOMED CT concept or a postcoordinated expression. SCTpre is an optional, directly usable concept representing the same clinical meaning at the same or a compatible broader level of detail. Do not add a duplicate companion merely to fill a slot. When both are present they must use the same edition release and must not contradict each other; the extended coding may add compatible precision. Compatible meaning must be checked through the terminology contract, not inferred from code equality. When bodySite is present, the extended coding must represent the same complete anatomical scope. A precoordinated concept is sufficient if its defined meaning already represents that scope; otherwise use a valid refined SNOMED CT expression. Validate concept membership, compositional grammar, MRCM, clinical templates and anatomical equivalence with the terminology service; a FHIR syntax guard cannot establish these semantic requirements.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Coding",
            "profile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Coding-SCTpre-no"
            ]
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://novari.no/fhir/digidot/ValueSet/planned-procedure-situations"
        }
      },
      {
        "id": "ServiceRequest.code.coding:SCTpre.id",
        "path": "ServiceRequest.code.coding.id",
        "short": "SCTpre slot identifier",
        "definition": "Required technical slot identifier. It distinguishes the two roles even when their system, version and code are identical.",
        "min": 1,
        "fixedString": "SCTpre"
      },
      {
        "id": "ServiceRequest.code.coding:SCTextended",
        "path": "ServiceRequest.code.coding",
        "sliceName": "SCTextended",
        "short": "Required extended SNOMED CT code: concept or expression",
        "definition": "Optional for a general recall identified by category dental-recall and occurrence[x]; required for a specific treatment, diagnostic or follow-up service. Both slots describe a planned Situation identifying the requested procedure and Planned context. A generic Planned procedure concept is not specific enough. In an expression, nest anatomical refinements within Associated procedure, not on the outer Situation. Include exactly one SCTextended coding and optionally one SCTpre coding. SCTextended carries the complete intended meaning as either a single precoordinated SNOMED CT concept or a postcoordinated expression. SCTpre is an optional, directly usable concept representing the same clinical meaning at the same or a compatible broader level of detail. Do not add a duplicate companion merely to fill a slot. When both are present they must use the same edition release and must not contradict each other; the extended coding may add compatible precision. Compatible meaning must be checked through the terminology contract, not inferred from code equality. When bodySite is present, the extended coding must represent the same complete anatomical scope. A precoordinated concept is sufficient if its defined meaning already represents that scope; otherwise use a valid refined SNOMED CT expression. Validate concept membership, compositional grammar, MRCM, clinical templates and anatomical equivalence with the terminology service; a FHIR syntax guard cannot establish these semantic requirements.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Coding",
            "profile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Coding-SCTpost-no"
            ]
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://novari.no/fhir/digidot/ValueSet/planned-procedure-situations"
        }
      },
      {
        "id": "ServiceRequest.code.coding:SCTextended.id",
        "path": "ServiceRequest.code.coding.id",
        "short": "SCTextended slot identifier",
        "definition": "Required technical slot identifier. It distinguishes the two roles even when their system, version and code are identical.",
        "min": 1,
        "fixedString": "SCTextended"
      },
      {
        "id": "ServiceRequest.orderDetail",
        "path": "ServiceRequest.orderDetail",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No governed DigiDOT order-detail terminology or EHR mapping is agreed. Use the planned clinical service code, structured anatomy, linked reason and limited note instead.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.quantity[x]",
        "path": "ServiceRequest.quantity[x]",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "One DigiDOT ServiceRequest represents one planned service. Multiple planned services should be represented by separate ServiceRequest resources with explicit relationships when needed. No quantity model is agreed for the current dental scope.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.subject",
        "path": "ServiceRequest.subject",
        "short": "Patient the dental service is planned for",
        "definition": "Reference the no-basis Patient who is the subject of the planned or requested dental service. External data must be mapped to this agreed patient representation before it becomes a canonical DigiDOT ServiceRequest in Central Storage.",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.no/fhir/StructureDefinition/no-basis-Patient"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.subject.reference",
        "path": "ServiceRequest.subject.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.subject.identifier",
        "path": "ServiceRequest.subject.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.encounter",
        "path": "ServiceRequest.encounter",
        "short": "Dental contact in which the request was created",
        "definition": "The contact providing the context in which this request was made. Preserve this originating link. Later assessment, treatment and follow-up contacts reference the request through Encounter.basedOn; never overwrite this field with the most recent fulfilling contact.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Encounter-no"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.encounter.reference",
        "path": "ServiceRequest.encounter.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.encounter.identifier",
        "path": "ServiceRequest.encounter.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.occurrence[x]",
        "path": "ServiceRequest.occurrence[x]",
        "short": "Requested timing, due window or cadence for the planned service.",
        "definition": "For recurring general recall use occurrenceTiming.repeat: frequency 1, the assessed positive interval in period/periodUnit, and boundsPeriod.start as the explicit first due date. DigiDOT computes nominal due dates from that anchor in calendar units; a late appointment does not silently move the anchor. After a clinical reassessment, the responsible source must explicitly update the due anchor/interval with version history or replace the request. An explicitly single due date/window uses occurrenceDateTime/occurrencePeriod. Exact bookings are separate Appointments. One fulfilled booking does not complete an ongoing recall plan.",
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.asNeeded[x]",
        "path": "ServiceRequest.asNeeded[x]",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No agreed dental as-needed planning model or terminology is defined. Use occurrence[x], linked clinical reason and ServiceRequest.status for the current request workflow.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.authoredOn",
        "path": "ServiceRequest.authoredOn",
        "short": "Date or time when the request was authored",
        "definition": "When the request became actionable (for example when an order was authorised). Preserve the source meaning and precision. Draft creation, later editing, import, booked time and digital attestation are separate facts; do not substitute their timestamps automatically.",
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.requester",
        "path": "ServiceRequest.requester",
        "short": "Person or organisation that requested the dental service",
        "definition": "Use a literal reference to a no-basis Practitioner resource when the actor is an individual practitioner. Identifier-only HPR/FNR references are not permitted. Official practitioner identifiers belong on the referenced Practitioner resource. Other explicitly allowed resource target types retain their own clinical responsibility.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.no/fhir/StructureDefinition/no-basis-Practitioner",
              "http://hl7.no/fhir/StructureDefinition/no-basis-PractitionerRole",
              "http://hl7.no/fhir/StructureDefinition/no-basis-Organization",
              "http://hl7.no/fhir/StructureDefinition/no-basis-Patient",
              "http://hl7.no/fhir/StructureDefinition/no-basis-RelatedPerson"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.requester.reference",
        "path": "ServiceRequest.requester.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.requester.identifier",
        "path": "ServiceRequest.requester.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.performerType",
        "path": "ServiceRequest.performerType",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "The current draft has no governed performer-type terminology. Use a constrained performer reference when a preferred individual, role, organisation or healthcare service is known.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.performer",
        "path": "ServiceRequest.performer",
        "short": "Preferred performer or service for the planned dental work",
        "definition": "Use a literal reference to a no-basis Practitioner resource when the actor is an individual practitioner. Identifier-only HPR/FNR references are not permitted. Official practitioner identifiers belong on the referenced Practitioner resource. Other explicitly allowed resource target types retain their own clinical responsibility.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.no/fhir/StructureDefinition/no-basis-Practitioner",
              "http://hl7.no/fhir/StructureDefinition/no-basis-PractitionerRole",
              "http://hl7.no/fhir/StructureDefinition/no-basis-Organization",
              "http://hl7.no/fhir/StructureDefinition/no-basis-HealthcareService"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.performer.reference",
        "path": "ServiceRequest.performer.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.performer.identifier",
        "path": "ServiceRequest.performer.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.locationCode",
        "path": "ServiceRequest.locationCode",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No governed DigiDOT location-code terminology is agreed. Use locationReference to the agreed no-basis Location when a requested place is known.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.locationReference",
        "path": "ServiceRequest.locationReference",
        "short": "Requested location for the dental service",
        "definition": "Use locationReference when the request identifies a clinic, room or other Location where the service is expected to occur. Do not use it as a replacement for the actual Procedure.location or Encounter.location.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.no/fhir/StructureDefinition/no-basis-Location"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.locationReference.reference",
        "path": "ServiceRequest.locationReference.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.locationReference.identifier",
        "path": "ServiceRequest.locationReference.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.reasonCode",
        "path": "ServiceRequest.reasonCode",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No governed DigiDOT coded-reason terminology is agreed. Use reasonReference to a relevant DigiDOT Condition or Observation when a structured clinical reason is needed.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.reasonReference",
        "path": "ServiceRequest.reasonReference",
        "short": "Clinical finding or observation that justifies the request",
        "definition": "Use reasonReference when a clinically significant DigiDOT Condition or supporting DigiDOT Observation justifies the planned service. A routine recall may have no clinical reason reference. Do not use reasonReference to repeat general patient context that belongs in supportingInfo.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Condition-no",
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Observation-no"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.reasonReference.reference",
        "path": "ServiceRequest.reasonReference.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.reasonReference.identifier",
        "path": "ServiceRequest.reasonReference.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.insurance",
        "path": "ServiceRequest.insurance",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "Coverage, payment route, reimbursement and claim information belong in the financial model, not in the clinical planning request.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.supportingInfo",
        "path": "ServiceRequest.supportingInfo",
        "short": "Selected context that directly affects the planned dental service",
        "definition": "Selected clinical or source care-responsibility context that directly affects this request. EpisodeOfCare is optional: include it when the request arises within a represented organisational responsibility, not merely to connect the request to an appointment or encounter. For referrals, the source episode belongs to the sender; a receiving episode references the incoming request using referralRequest.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-EpisodeOfCare-no",
              "http://hl7.no/fhir/StructureDefinition/no-basis-AllergyIntolerance",
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Condition-no",
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-Observation-no",
              "http://hl7.org/fhir/StructureDefinition/Flag",
              "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
              "http://ehelse.no/fhir/StructureDefinition/sfm-lib-List",
              "http://ehelse.no/fhir/StructureDefinition/sfm-MedicationStatement",
              "http://hl7.org/fhir/StructureDefinition/DeviceUseStatement",
              "http://hl7.org/fhir/StructureDefinition/Consent",
              "http://hl7.org/fhir/StructureDefinition/DocumentReference",
              "http://hl7.org/fhir/StructureDefinition/DiagnosticReport",
              "http://hl7.org/fhir/StructureDefinition/ImagingStudy",
              "http://hl7.org/fhir/StructureDefinition/Composition"
            ]
          }
        ],
        "mustSupport": true,
        "min": 0,
        "max": "*"
      },
      {
        "id": "ServiceRequest.supportingInfo.reference",
        "path": "ServiceRequest.supportingInfo.reference",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ServiceRequest.supportingInfo.type",
        "path": "ServiceRequest.supportingInfo.type",
        "min": 1,
        "max": "1",
        "definition": "Explicit FHIR resource type, agreeing with the referenced resource. This makes optional EpisodeOfCare context distinguishable and searchable without confusing it with other clinical context."
      },
      {
        "id": "ServiceRequest.supportingInfo.identifier",
        "path": "ServiceRequest.supportingInfo.identifier",
        "min": 0,
        "max": "0"
      },
      {
        "id": "ServiceRequest.specimen",
        "path": "ServiceRequest.specimen",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No specimen workflow, terminology or EHR mapping is agreed for the current public dental-service scope.",
        "max": "0"
      },
      {
        "id": "ServiceRequest.bodySite",
        "path": "ServiceRequest.bodySite",
        "short": "Inline Xt-EHR anatomy group",
        "definition": "One inline anatomical group in the shared DentalBodySite format: a complex extension containing location, repeated locationQualifier, laterality, morphology and description, matching the Xt-EHR logical field model. No independent BodyStructure resource is required. Clinical coding and dental workflow rules apply separately.",
        "comment": "The two inline qualifier extensions are explicitly defined DigiDOT R4 extensions. The FHIR structure stays directly coded; shared terminology tooling composes and compares the SCTextended anatomy. See DentalBodySite-use for the supplier contract.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": [
              "https://novari.no/fhir/digidot/StructureDefinition/digidot-DentalBodySite-no"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ServiceRequest.note",
        "path": "ServiceRequest.note",
        "short": "Additional planning narrative",
        "definition": "Use note for clinically relevant planning narrative that cannot be represented in structured elements. Do not duplicate the planned-service code, category, request status, due time, anatomy or linked resources in free text."
      },
      {
        "id": "ServiceRequest.patientInstruction",
        "path": "ServiceRequest.patientInstruction",
        "short": "Patient-facing instruction for the planned service",
        "definition": "Use patientInstruction only for patient-facing information that directly concerns this planned service. It does not replace the clinical plan, Appointment communication or general patient information."
      },
      {
        "id": "ServiceRequest.relevantHistory",
        "path": "ServiceRequest.relevantHistory",
        "short": "Not used in the current DigiDOT ServiceRequest draft",
        "definition": "No ServiceRequest-specific Provenance linking policy is agreed. Source, import and update responsibility are handled by the Central Storage provenance and integration design.",
        "max": "0"
      }
    ]
  }
}