{
  "resourceType": "StructureDefinition",
  "id": "HVOOrganizationAffiliation",
  "url": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
  "version": "0.1.0",
  "name": "HVOOrganizationAffiliation",
  "status": "draft",
  "description": "HVOOrganizationAffiliation contains information about an assignment which someone has been assigned to perform during a longer (often undecided) period of time.",
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
      "uri": "HVOUppdragLogical"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "OrganizationAffiliation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/OrganizationAffiliation",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "OrganizationAffiliation.id",
        "path": "OrganizationAffiliation.id",
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.period",
        "path": "OrganizationAffiliation.period",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.period.start",
        "path": "OrganizationAffiliation.period.start",
        "short": "The moment when the affiliation becomes active",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "giltigFrom"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.period.end",
        "path": "OrganizationAffiliation.period.end",
        "short": "The moment when the affiliation becomes inactive or completed. Do not use if it is unknown",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "giltigTom"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.organization",
        "path": "OrganizationAffiliation.organization",
        "short": "Organization which ordered the task",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganization"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "harBestallare(HVOOrganisationLogical)"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.participatingOrganization",
        "path": "OrganizationAffiliation.participatingOrganization",
        "short": "Organization which performs the task",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganization"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "harUtforare(HVOOrganisationLogical)"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.code",
        "path": "OrganizationAffiliation.code",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://electronichealth.se/hvo/ValueSet/hvo-organization-affiliation-business-category"
        },
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "typ"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.code.coding",
        "path": "OrganizationAffiliation.code.coding",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.code.coding.system",
        "path": "OrganizationAffiliation.code.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.code.coding.code",
        "path": "OrganizationAffiliation.code.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.code.text",
        "path": "OrganizationAffiliation.code.text",
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.healthcareService",
        "path": "OrganizationAffiliation.healthcareService",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOService"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "omfattar(HVOTjanstLogical)"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.contact",
        "path": "OrganizationAffiliation.contact",
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.contact.telecom",
        "path": "OrganizationAffiliation.contact.telecom",
        "constraint": [
          {
            "key": "hvo-telecom-phone-2",
            "human": "If telecom.system = phone or fax, value should have max length of 32 characters",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "value.length() <= 32 or (system != 'phone' and system != 'fax')"
          },
          {
            "key": "hvo-telecom-email-2",
            "human": "If telecom.system = email, value should have max length of 255 characters",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "value.length() <= 255 or system != 'email'"
          },
          {
            "key": "hvo-telecom-url-1",
            "human": "If telecom.system = url, value should follow valid format. Example: https://example.com",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "value.matches('(https?|ftp)://(-\\\\.)?([^\\\\s/?\\\\.#-]+\\\\.?)+(/[^\\\\s]*)?$') or system != 'url'"
          },
          {
            "key": "hvo-telecom-url-2",
            "human": "If telecom.system = url, value should have max length of 2000 characters",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "value.length() <= 2000 or system != 'url'"
          },
          {
            "key": "hvo-telecom-email-1",
            "human": "If telecom.system = email, value should follow valid format Example: test@test.com",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "value.matches('^[\\\\w.-]{1,64}@(?!.{254})[\\\\w.-]+\\\\.[A-Za-z]{2,4}$') or system != 'email'"
          },
          {
            "key": "hvo-telecom-phone-1",
            "human": "If telecom.system = phone or fax, value should follow format +46123456789",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "value.matches('^\\\\+[1-9][0-9]+$') or (system != 'phone' and system != 'fax')"
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "HVOOrganizationAffiliationToHVOUppdragLogical",
            "map": "har(HVOTelekommunikationLogical)"
          }
        ]
      },
      {
        "id": "OrganizationAffiliation.contact.telecom.system",
        "path": "OrganizationAffiliation.contact.telecom.system",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/contact-point-system"
        }
      },
      {
        "id": "OrganizationAffiliation.contact.telecom.value",
        "path": "OrganizationAffiliation.contact.telecom.value",
        "min": 1,
        "constraint": [
          {
            "key": "hvo-telecom-value-1",
            "human": "A telecom value should have max length of 2000 characters",
            "source": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationAffiliation",
            "severity": "warning",
            "expression": "$this.length() <= 2000"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.contact.telecom.period",
        "path": "OrganizationAffiliation.contact.telecom.period",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.contact.telecom.period.start",
        "path": "OrganizationAffiliation.contact.telecom.period.start",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "OrganizationAffiliation.contact.telecom.period.end",
        "path": "OrganizationAffiliation.contact.telecom.period.end",
        "mustSupport": true
      }
    ]
  }
}