{
  "resourceType": "StructureDefinition",
  "id": "HVOEligibilityGroup",
  "url": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOEligibilityGroup",
  "version": "0.1.0",
  "name": "HVOEligibilityGroup",
  "title": "HVOEligibilityGroup",
  "status": "draft",
  "description": "HVOEligibilityGroup profile for HVO",
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "HVOEligibilityGroupToHVOMalgruppLogical",
      "uri": "HVOMalgruppLogical"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Group",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Group",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Group.type",
        "path": "Group.type",
        "fixedCode": "person",
        "mustSupport": true
      },
      {
        "id": "Group.membership",
        "path": "Group.membership",
        "fixedCode": "definitional",
        "mustSupport": true
      },
      {
        "id": "Group.characteristic",
        "path": "Group.characteristic",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.code",
        "path": "Group.characteristic.code",
        "short": "A code representing the type of characteristic a person should have to be eligible for the service. Examples include age, gender, etc. Use valueRange for numerical values, eg age, and valueCodeableConcept for coded values, eg gender.",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://electronichealth.se/fhir/hvo/ValueSet/hvo-eligibility-characteristic"
        },
        "mapping": [
          {
            "identity": "HVOEligibilityGroupToHVOMalgruppLogical",
            "map": "kod"
          }
        ]
      },
      {
        "id": "Group.characteristic.code.coding",
        "path": "Group.characteristic.code.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.code.coding.system",
        "path": "Group.characteristic.code.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.code.coding.code",
        "path": "Group.characteristic.code.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]",
        "path": "Group.characteristic.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]:valueRange",
        "path": "Group.characteristic.value[x]",
        "sliceName": "valueRange",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Range"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]:valueRange.low",
        "path": "Group.characteristic.value[x].low",
        "short": "The minimum value of the characteristic which makes a person eligible for a service. For example, if the characteristic is age, the minimum value might be 17 if only adults are eligible for the service.",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOEligibilityGroupToHVOMalgruppLogical",
            "map": "vardemin"
          }
        ]
      },
      {
        "id": "Group.characteristic.value[x]:valueRange.low.value",
        "path": "Group.characteristic.value[x].low.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]:valueRange.high",
        "path": "Group.characteristic.value[x].high",
        "short": "The maximum value of the characteristic which makes a person eligible for a service. For example, if the characteristic is age, the maximum value might be 17 if only children are eligible fo the service.",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOEligibilityGroupToHVOMalgruppLogical",
            "map": "vardemax"
          }
        ]
      },
      {
        "id": "Group.characteristic.value[x]:valueRange.high.value",
        "path": "Group.characteristic.value[x].high.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]:valueCodeableConcept",
        "path": "Group.characteristic.value[x]",
        "sliceName": "valueCodeableConcept",
        "short": "The coded value of the characteristic which makes a person eligible for a service. For example, if the characteristic is to have a certain diagnosis, the value might be 'diabetes type 2'.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://electronichealth.se/fhir/hvo/ValueSet/hvo-eligibility-characteristic-value"
        },
        "mapping": [
          {
            "identity": "HVOEligibilityGroupToHVOMalgruppLogical",
            "map": "vardekod"
          }
        ]
      },
      {
        "id": "Group.characteristic.value[x]:valueCodeableConcept.coding",
        "path": "Group.characteristic.value[x].coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]:valueCodeableConcept.coding.system",
        "path": "Group.characteristic.value[x].coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.value[x]:valueCodeableConcept.coding.code",
        "path": "Group.characteristic.value[x].coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Group.characteristic.exclude",
        "path": "Group.characteristic.exclude",
        "fixedBoolean": false,
        "mustSupport": true
      }
    ]
  }
}