{
  "resourceType": "StructureDefinition",
  "id": "aorta-subscription",
  "url": "http://vzvz.nl/fhir/StructureDefinition/aorta-subscription",
  "version": "0.9.1",
  "name": "AortaSubscription",
  "title": "Subscription",
  "status": "draft",
  "publisher": "VZVZ",
  "contact": [
    {
      "name": "VZVZ",
      "telecom": [
        {
          "system": "email",
          "value": "standaardisatie@vzvz.nl",
          "use": "work"
        }
      ]
    }
  ],
  "description": "Subscription for use in VZVZ applications, specifically AORTA",
  "copyright": "VZVZ",
  "fhirVersion": "4.3.0",
  "mapping": [
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Subscription",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Subscription",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Subscription.extension",
        "path": "Subscription.extension",
        "min": 1
      },
      {
        "id": "Subscription.extension:identifier",
        "path": "Subscription.extension",
        "sliceName": "identifier",
        "short": "Identifier of a subscription",
        "definition": "Identifier of a Subscription as defined by the client",
        "comment": "Deze identifier wordt op dezelfde manier gevuld als een V3-verwijzing, zodat de manier waarop de verwijzing gemaakt of opgevraagd wordt, niet van belang is.\r\n\r\nBij voorkeur vullen met een OID vanwege de V3-compatibiliteit.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://vzvz.nl/fhir/StructureDefinition/aorta-subscription-identifier"
            ]
          }
        ]
      },
      {
        "id": "Subscription.extension:identifier.url",
        "path": "Subscription.extension.url",
        "fixedUri": "http://vzvz.nl/fhir/StructureDefinition/aorta-subscription-identifier"
      },
      {
        "id": "Subscription.extension:managingEntity",
        "path": "Subscription.extension",
        "sliceName": "managingEntity",
        "short": "managing Entity",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://vzvz.nl/fhir/StructureDefinition/aorta-subscription-managingEntity"
            ]
          }
        ]
      },
      {
        "id": "Subscription.extension:managingEntity.url",
        "path": "Subscription.extension.url",
        "fixedUri": "http://vzvz.nl/fhir/StructureDefinition/aorta-subscription-managingEntity"
      },
      {
        "id": "Subscription.extension:SourceSystem",
        "path": "Subscription.extension",
        "sliceName": "SourceSystem",
        "short": "Application ID of source Device",
        "definition": "Full OID of application ID of source Device",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://fhir.nl/StructureDefinition/SourceSystem"
            ]
          }
        ]
      },
      {
        "id": "Subscription.extension:SourceSystem.url",
        "path": "Subscription.extension.url",
        "fixedUri": "http://fhir.nl/StructureDefinition/SourceSystem"
      },
      {
        "id": "Subscription.status",
        "path": "Subscription.status",
        "fixedCode": "requested"
      },
      {
        "id": "Subscription.reason",
        "path": "Subscription.reason",
        "fixedString": "AORTA"
      },
      {
        "id": "Subscription.criteria",
        "path": "Subscription.criteria",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "definition": "zoekparameters die aangeven waarop de notificatie gebaseerd moet zijn.",
        "comment": "Er zijn named queries `_query=vwi` voor VWI verwijzingen en `_query=log` voor AuditEvent log entries.\r\n\r\nDe log events zijn alleen beschikbaar voor opvraging door de patient op wie de logs betrekking hebben.",
        "example": [
          {
            "label": "Voorbeeld met List van patiënt met BSN `bsn` en gegevenssoort huisartswaarneemgegevens",
            "valueString": "List?_query=vwi&patientid=BSN&gegevenssoort=460320"
          },
          {
            "label": "Voorbeeld met List van patiënt met BSN `bsn` en contextcode",
            "valueString": "List?_query=vwi&patientid=999912345&contextcode=MEDGEG"
          },
          {
            "label": "Voorbeeld met AuditEvent van patiënt met BSN `bsn`",
            "valueString": "AuditEvent?_query=log&patientid=BSN"
          }
        ]
      },
      {
        "id": "Subscription.criteria:dataReference",
        "path": "Subscription.criteria",
        "sliceName": "dataReference",
        "constraint": [
          {
            "key": "sub-dataref-01",
            "severity": "error",
            "human": "Criteria should conform to pattern",
            "expression": "value.matches('List\\\\?_query=vwi&patientid=\\\\d{9}&(contextcode|gegevenssoort)=.+')"
          }
        ]
      },
      {
        "id": "Subscription.criteria:dataReference.value",
        "path": "Subscription.criteria.value",
        "example": [
          {
            "label": "dataReference",
            "valueString": "List?_query=vwi&patientid=999912345&contextcode=MEDGEG"
          }
        ]
      },
      {
        "id": "Subscription.criteria:auditEvent",
        "path": "Subscription.criteria",
        "sliceName": "auditEvent",
        "constraint": [
          {
            "key": "sub-audit-01",
            "severity": "error",
            "human": "Criteria should conform to pattern",
            "expression": "value.matches('AuditEvent\\\\?_query=log&patientid=\\\\d{9}')"
          }
        ]
      },
      {
        "id": "Subscription.criteria:auditEvent.value",
        "path": "Subscription.criteria.value",
        "example": [
          {
            "label": "dataReference",
            "valueString": "AuditEvent?_query=log&patientid=BSN"
          }
        ]
      },
      {
        "id": "Subscription.channel.type",
        "path": "Subscription.channel.type",
        "fixedCode": "rest-hook"
      },
      {
        "id": "Subscription.channel.endpoint",
        "path": "Subscription.channel.endpoint",
        "definition": "url van het systeem waarop de notificatie moet worden afgeleverd"
      },
      {
        "id": "Subscription.channel.payload",
        "path": "Subscription.channel.payload",
        "definition": "Geeft gewenste mime type van payload van notification aan, 'application/fhir+xml' of 'application/fhir+json'.\\nDe aanwezigheid van een mime type geeft aan dat in de notificatie de volledige resource(s) meegestuurd moet(en) worden.\\nAfwezigheid van het `payload` element betekent dat er geen resources meegestuurd worden."
      }
    ]
  }
}