{
  "resourceType": "StructureDefinition",
  "url": "http://apiframework.dedalus.eu/fhir/StructureDefinition/Communication-WithKnownDestination",
  "name": "Communication-WithKnownDestination",
  "status": "draft",
  "fhirVersion": "3.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Communication",
  "baseDefinition": "http://apiframework.dedalus.eu/fhir/StructureDefinition/Communication",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Communication.extension",
        "path": "Communication.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Communication.extension:sourceMedium",
        "path": "Communication.extension",
        "sliceName": "sourceMedium",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": "http://apiframework.dedalus.eu/fhir/StructureDefinition/extension-Communication-sourceMedium"
          }
        ]
      },
      {
        "id": "Communication.medium",
        "path": "Communication.medium",
        "min": 1
      },
      {
        "id": "Communication.medium.coding",
        "path": "Communication.medium.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Communication.recipient",
        "path": "Communication.recipient",
        "min": 1
      },
      {
        "id": "Communication.received",
        "path": "Communication.received",
        "requirements": "This elements shall be empty when the source medium creates (posts) the communication, while it shall be not empty when a coomunication recipient acknowledges the receival with a PUT on the communication instance."
      },
      {
        "id": "Communication.payload:payloadSubject",
        "path": "Communication.payload",
        "sliceName": "payloadSubject"
      },
      {
        "id": "Communication.payload:payloadSubject.id",
        "path": "Communication.payload.id",
        "fixedString": "payloadSubject"
      },
      {
        "id": "Communication.payload:attachments",
        "path": "Communication.payload",
        "sliceName": "attachments"
      },
      {
        "id": "Communication.payload:attachments.contentAttachment:contentAttachment",
        "path": "Communication.payload.contentAttachment",
        "sliceName": "contentAttachment",
        "min": 1,
        "max": "1"
      }
    ]
  }
}