{
  "resourceType": "StructureDefinition",
  "id": "NHSHC-Composition",
  "url": "https://fhir.nhs.uk/StructureDefinition/NHSHC-Composition",
  "version": "0.1.0",
  "name": "NHSHCComposition",
  "title": "NHSHC Composition",
  "status": "draft",
  "date": "2026-06-23",
  "publisher": "NHS England",
  "description": "Derived profile from UKCore-Composition for NHS Health Check Online. Supports both completed (status=final) and stopped (status=preliminary) scenarios.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Composition",
  "baseDefinition": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Composition",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Composition",
        "path": "Composition",
        "constraint": [
          {
            "key": "nhshc-comp-status-type",
            "severity": "error",
            "human": "Status must be 'final' when type is 'completed' (2242631000000104) and 'preliminary' when type is 'stopped' (2242641000000108)",
            "expression": "(type.coding.where(code='2242631000000104').exists() implies status='final') and (type.coding.where(code='2242641000000108').exists() implies status='preliminary')"
          }
        ]
      },
      {
        "id": "Composition.status",
        "path": "Composition.status",
        "min": 1,
        "short": "Status: 'final' for completed, 'preliminary' for stopped health checks"
      },
      {
        "id": "Composition.type",
        "path": "Composition.type",
        "min": 1
      },
      {
        "id": "Composition.subject",
        "path": "Composition.subject",
        "min": 1
      },
      {
        "id": "Composition.encounter",
        "path": "Composition.encounter",
        "min": 1
      },
      {
        "id": "Composition.date",
        "path": "Composition.date",
        "min": 1
      },
      {
        "id": "Composition.title",
        "path": "Composition.title",
        "min": 1
      },
      {
        "id": "Composition.section",
        "path": "Composition.section",
        "min": 1
      }
    ]
  }
}