{
  "resourceType": "StructureDefinition",
  "id": "HVOService",
  "url": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOService",
  "version": "0.1.0",
  "name": "HVOService",
  "status": "draft",
  "description": "HVOService contains information about activity which is provided to accomodate a requisite",
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "HVOServiceToHVOTjanstLogical",
      "uri": "HVOTjanstLogical"
    },
    {
      "identity": "HVOServiceToHVOTjanstLogical2",
      "uri": "HVOTjanstLogical"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "HealthcareService",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/HealthcareService",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "HealthcareService.id",
        "path": "HealthcareService.id",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.contained",
        "path": "HealthcareService.contained",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "contained"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "HealthcareService.contained:HVOEligibilityGroup",
        "path": "HealthcareService.contained",
        "sliceName": "HVOEligibilityGroup",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Group",
            "profile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOEligibilityGroup"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "HealthcareService.extension",
        "path": "HealthcareService.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "HealthcareService.extension:period",
        "path": "HealthcareService.extension",
        "sliceName": "period",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOHealthcareServicePeriodExtension"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "HealthcareService.extension:period.url",
        "path": "HealthcareService.extension.url",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.extension:period.value[x]",
        "path": "HealthcareService.extension.value[x]",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "HealthcareService.extension:period.value[x].start",
        "path": "HealthcareService.extension.value[x].start",
        "short": "Extension for the period during which a service is available and offered",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "giltigFrom"
          }
        ]
      },
      {
        "id": "HealthcareService.identifier",
        "path": "HealthcareService.identifier",
        "max": "1",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "id"
          }
        ]
      },
      {
        "id": "HealthcareService.providedBy",
        "path": "HealthcareService.providedBy",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationalUnit"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "erbjudsAv(HVOOrganisatoriskEnhetLogical)"
          }
        ]
      },
      {
        "id": "HealthcareService.type",
        "path": "HealthcareService.type",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://electronichealth.se/hvo/ValueSet/hvo-offerings-services"
        },
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "typ"
          }
        ]
      },
      {
        "id": "HealthcareService.location",
        "path": "HealthcareService.location",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOLocation"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "erbjudsPa(HVOPlatsLogical)"
          }
        ]
      },
      {
        "id": "HealthcareService.comment",
        "path": "HealthcareService.comment",
        "short": "Textual description of service. It is used to complement the type element incase a textual description is necessary",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "beskrivning"
          }
        ]
      },
      {
        "id": "HealthcareService.contact",
        "path": "HealthcareService.contact",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "har(HVOKontaktuppgiftLogical)"
          }
        ]
      },
      {
        "id": "HealthcareService.eligibility",
        "path": "HealthcareService.eligibility",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "erbjudsTill(HVOMalgruppLogical)"
          },
          {
            "identity": "HVOServiceToHVOTjanstLogical2",
            "map": "harSarskilda(HVOVillkorLogical)"
          }
        ]
      },
      {
        "id": "HealthcareService.eligibility.extension",
        "path": "HealthcareService.eligibility.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "HealthcareService.eligibility.extension:eligbilityValue",
        "path": "HealthcareService.eligibility.extension",
        "sliceName": "eligbilityValue",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOEligibilityValueExtension"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "HealthcareService.eligibility.comment",
        "path": "HealthcareService.eligibility.comment",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "HealthcareService.characteristic",
        "path": "HealthcareService.characteristic",
        "short": "What form(s) of encounter the service offers, e.g. chat, phone call, physical meetup",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://electronichealth.se/hvo/ValueSet/hvo-encounter-means"
        },
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "motesform"
          }
        ]
      },
      {
        "id": "HealthcareService.characteristic.coding",
        "path": "HealthcareService.characteristic.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.characteristic.coding.system",
        "path": "HealthcareService.characteristic.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "HealthcareService.characteristic.coding.code",
        "path": "HealthcareService.characteristic.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability",
        "path": "HealthcareService.availability",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.availableTime",
        "path": "HealthcareService.availability.availableTime",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "finnsTillganglig(HVOTillganglighetstidLogical)"
          }
        ]
      },
      {
        "id": "HealthcareService.availability.availableTime.daysOfWeek",
        "path": "HealthcareService.availability.availableTime.daysOfWeek",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/days-of-week"
        }
      },
      {
        "id": "HealthcareService.availability.availableTime.allDay",
        "path": "HealthcareService.availability.availableTime.allDay",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.availableTime.availableStartTime",
        "path": "HealthcareService.availability.availableTime.availableStartTime",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.availableTime.availableEndTime",
        "path": "HealthcareService.availability.availableTime.availableEndTime",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.notAvailableTime",
        "path": "HealthcareService.availability.notAvailableTime",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOServiceToHVOTjanstLogical",
            "map": "harTillganglighetsavvikelse(HVOStorningsinformationLogical)"
          }
        ]
      },
      {
        "id": "HealthcareService.availability.notAvailableTime.description",
        "path": "HealthcareService.availability.notAvailableTime.description",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.notAvailableTime.during",
        "path": "HealthcareService.availability.notAvailableTime.during",
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.notAvailableTime.during.start",
        "path": "HealthcareService.availability.notAvailableTime.during.start",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "HealthcareService.availability.notAvailableTime.during.end",
        "path": "HealthcareService.availability.notAvailableTime.during.end",
        "mustSupport": true
      }
    ]
  }
}