{
  "resourceType": "StructureDefinition",
  "id": "NHSHC-TransactionBundle",
  "url": "https://fhir.nhs.uk/StructureDefinition/NHSHC-TransactionBundle",
  "version": "0.1.0",
  "name": "NHSHCTransactionBundle",
  "title": "NHSHC Transaction Bundle",
  "status": "draft",
  "date": "2026-06-23",
  "publisher": "NHS England",
  "description": "Profile for NHS Health Check Online transaction bundle payloads. Enforces transaction semantics with PUT method, idempotent conditional creates, and urn:uuid references.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Bundle",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Bundle",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Bundle",
        "path": "Bundle",
        "short": "NHS Health Check Online transaction bundle"
      },
      {
        "id": "Bundle.identifier",
        "path": "Bundle.identifier",
        "min": 1,
        "short": "NHS Health Check business identifier (UUID)"
      },
      {
        "id": "Bundle.type",
        "path": "Bundle.type",
        "min": 1,
        "fixedCode": "transaction"
      },
      {
        "id": "Bundle.timestamp",
        "path": "Bundle.timestamp",
        "min": 1
      },
      {
        "id": "Bundle.entry",
        "path": "Bundle.entry",
        "min": 1
      },
      {
        "id": "Bundle.entry.fullUrl",
        "path": "Bundle.entry.fullUrl",
        "min": 1,
        "short": "Temporary UUID URN for internal references"
      },
      {
        "id": "Bundle.entry.resource",
        "path": "Bundle.entry.resource",
        "min": 1
      },
      {
        "id": "Bundle.entry.request",
        "path": "Bundle.entry.request",
        "min": 1
      },
      {
        "id": "Bundle.entry.request.method",
        "path": "Bundle.entry.request.method",
        "min": 1,
        "fixedCode": "PUT"
      },
      {
        "id": "Bundle.entry.request.url",
        "path": "Bundle.entry.request.url",
        "min": 1,
        "short": "ResourceType/id"
      },
      {
        "id": "Bundle.entry.request.ifNoneMatch",
        "path": "Bundle.entry.request.ifNoneMatch",
        "min": 1,
        "fixedString": "*",
        "short": "Conditional create - idempotent"
      }
    ]
  }
}