{
"description": "Configures where and how notifications triggered by a subscription topic should be routed. Connects topics to external systems like Kafka, RabbitMQ, Webhook and others.",
"_filename": "StructureDefinition-AidboxTopicDestination.json",
"package_name": "io.health-samurai.core.r5",
"date": null,
"derivation": "specialization",
"publisher": null,
"fhirVersion": "5.0.0",
"name": "AidboxTopicDestination",
"abstract": false,
"type": "AidboxTopicDestination",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "Aidbox Topic Destination",
"package_version": "0.2604.1",
"status": "active",
"id": "da46aa9c-c9cd-4d6b-98b1-37bc8d1e2c3f",
"kind": "resource",
"url": "http://health-samurai.io/fhir/core/StructureDefinition/AidboxTopicDestination",
"version": "0.2604.1",
"differential": {
"element": [ {
"id": "AidboxTopicDestination",
"max": "*",
"min": 0,
"path": "AidboxTopicDestination",
"constraint": [ {
"key": "allow-destinations",
"human": "meta.profile shall be one of: 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaBestEffortProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaAtLeastOnceMockProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaBestEffortMockProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-webhookAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-gcpPubSubAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-fhirNativeTopicBasedSubscriptionProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-natsCoreBestEffortProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-natsJetStreamAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awsEventBridgeBestEffortProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awsEventBridgeAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awssnsBestEffortProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awssnsAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-clickHouseProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-clickHouseAtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-amqpRabbitMQ091Profile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-amqpRabbitMQ091AtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-amqp10AtLeastOnceProfile', 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-bigQueryAtLeastOnceProfile'",
"severity": "error",
"expression": "meta.profile.where(subsetOf('http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaBestEffortProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaAtLeastOnceMockProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-kafkaBestEffortMockProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-webhookAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-gcpPubSubAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-fhirNativeTopicBasedSubscriptionProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-natsCoreBestEffortProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-natsJetStreamAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awsEventBridgeBestEffortProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awsEventBridgeAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awssnsBestEffortProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-awssnsAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-clickHouseProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-clickHouseAtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-amqpRabbitMQ091Profile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-amqpRabbitMQ091AtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-amqp10AtLeastOnceProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-bigQueryAtLeastOnceProfile' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-kafka-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-kafka-best-effort' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-kafka-at-least-once-mock' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-kafka-best-effort-mock' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-webhook-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-gcp-pubsub-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-fhir-native-topic-based-subscription' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-nats-core-best-effort' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-nats-jetstream-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-aws-eventbridge-best-effort' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-aws-eventbridge-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-aws-sns-best-effort' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-aws-sns-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-clickhouse' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-clickhouse-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-amqp-rabbitmq-0-9-1' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-amqp-rabbitmq-0-9-1-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-amqp-1-0-at-least-once' | 'http://aidbox.app/StructureDefinition/aidboxtopicdestination-bigquery-at-least-once' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-customAWSSNSBestEffortProfile' | 'http://health-samurai.io/fhir/core/StructureDefinition/aidboxtopicdestination-customAWSSNSAtLeastOnceProfile')).exists()"
} ]
}, {
"id": "AidboxTopicDestination.kind",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.kind",
"type": [ {
"code": "string"
} ],
"short": "Channel type for notifications."
}, {
"id": "AidboxTopicDestination.topic",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.topic",
"type": [ {
"code": "url"
} ],
"short": "Reference to the AidboxSubscriptionTopic being subscribed to."
}, {
"id": "AidboxTopicDestination.status",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.status",
"type": [ {
"code": "string"
} ],
"short": "requested | active | error | off | entered-in-error."
}, {
"id": "AidboxTopicDestination.content",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.content",
"type": [ {
"code": "string"
} ],
"short": "empty | id-only | full-resource.",
"constraint": [ {
"key": "enum-1671",
"human": "content shall be one of: empty, id-only, full-resource",
"severity": "error",
"expression": "%context.subsetOf('empty' | 'id-only' | 'full-resource')"
} ]
}, {
"id": "AidboxTopicDestination.includeEntryAction",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.includeEntryAction",
"type": [ {
"code": "boolean"
} ],
"short": "Include entry action code in notification bundle entries.",
"definition": "When true, each Bundle.entry in the notification will include the bundle-entryActionCode extension indicating the CRUD action (create, update, delete) that triggered the notification. Default: false."
}, {
"id": "AidboxTopicDestination.includeVersionId",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.includeVersionId",
"type": [ {
"code": "boolean"
} ],
"short": "Include resource versionId in notification bundle entries.",
"definition": "When true, each Bundle.entry in the notification will include the bundle-entryVersionId extension containing the resource's meta.versionId at the time of the notification. Default: false."
}, {
"id": "AidboxTopicDestination.enableLogging",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.enableLogging",
"type": [ {
"code": "boolean"
} ],
"short": "Enable logging of delivery status.",
"definition": "When true, AidboxSubscriptionStatus is logged after each delivery attempt. On failure, the logged status includes an error array. Useful for debugging and monitoring topic destination delivery. Default: false."
}, {
"id": "AidboxTopicDestination.logLevel",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.logLevel",
"type": [ {
"code": "code"
} ],
"short": "Log level for delivery logging.",
"binding": {
"strength": "required",
"valueSet": "http://health-samurai.io/fhir/core/ValueSet/log-level"
},
"definition": "The log level used when enableLogging is true. Must be equal to or higher than the system-wide log level setting, otherwise messages will be filtered out. Default: info."
}, {
"id": "AidboxTopicDestination.includeVersionIdInFocusReference",
"max": "1",
"min": 0,
"path": "AidboxTopicDestination.includeVersionIdInFocusReference",
"type": [ {
"code": "boolean"
} ],
"short": "Include versionId in focus reference.",
"definition": "When true, the focus reference in AidboxSubscriptionStatus.notificationEvent will include the resource versionId as a versioned reference (e.g. Patient/123/_history/5). Default: false."
} ]
},
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Parameters"
}