subscriptions_test_kit 0.9.4 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/presets/subscription_client_empty_preset.json.erb +15 -0
- data/config/presets/subscription_client_full_resource_preset.json.erb +15 -0
- data/config/presets/subscription_client_id_only_preset.json.erb +15 -0
- data/config/presets/subscription_server_preset_empty.json.erb +23 -0
- data/config/presets/subscription_server_preset_full_resource.json.erb +23 -0
- data/config/presets/subscription_server_preset_id_only.json.erb +23 -0
- data/lib/subscriptions_test_kit/common/notification_conformance_verification.rb +1 -1
- data/lib/subscriptions_test_kit/common/subscription_conformance_verification.rb +16 -7
- data/lib/subscriptions_test_kit/docs/samples/Subscription_empty.json +1 -1
- data/lib/subscriptions_test_kit/docs/samples/Subscription_full-resource.json +1 -1
- data/lib/subscriptions_test_kit/docs/samples/Subscription_id-only.json +1 -1
- data/lib/subscriptions_test_kit/docs/subscriptions_r5_backport_r4_client_suite_description.md +4 -1
- data/lib/subscriptions_test_kit/docs/subscriptions_r5_backport_r4_server_suite_description.md +8 -1
- data/lib/subscriptions_test_kit/endpoints/subscription_status_endpoint.rb +3 -3
- data/lib/subscriptions_test_kit/igs/.keep +0 -0
- data/lib/subscriptions_test_kit/metadata.rb +92 -0
- data/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv +22 -22
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/common/subscription_simulation_utils.rb +2 -2
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/notification_input_payload_verification_test.rb +0 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/notification_input_verification_test.rb +0 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb +7 -0
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow_group.rb +12 -6
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb +3 -3
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/creation_response_conformance_test.rb +1 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb +5 -5
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb +13 -15
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_group.rb +3 -3
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification/notification_conformance_test.rb +38 -22
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification/notification_presence_test.rb +56 -0
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification_group.rb +7 -3
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/subscription_creation.rb +1 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification_group.rb +4 -3
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/handshake_conformance_test.rb +3 -0
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/heartbeat_conformance_test.rb +3 -0
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat_group.rb +1 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/workflow_group.rb +4 -4
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb +0 -2
- data/lib/subscriptions_test_kit/version.rb +2 -1
- data/lib/subscriptions_test_kit.rb +1 -0
- metadata +16 -6
@@ -11,10 +11,10 @@ hl7.fhir.uv.subscriptions_1.1.0,10,https://hl7.org/fhir/uv/subscriptions-backpor
|
|
11
11
|
hl7.fhir.uv.subscriptions_1.1.0,11,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,"When processing a request for a Subscription...a server SHOULD validate…that the channel endpoint is valid for the channel provided (e.g., is it a valid URL of the expected type)",SHOULD,Server,,,NA,NA,6.05,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_endpoint
|
12
12
|
hl7.fhir.uv.subscriptions_1.1.0,12,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,When processing a request for a Subscription...a server SHOULD validate…that the payload configuration is known and implemented by the server,SHOULD,Server,,,NA,NA,6.06,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_payload_type
|
13
13
|
hl7.fhir.uv.subscriptions_1.1.0,13,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,"When processing a request for a Subscription...a server SHOULD validate…that the payload configuration is valid for the channel type requested (e.g., complies with the server’s security policy)",SHOULD,Server,,,NA,NA,6.07,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_payload_combo
|
14
|
-
hl7.fhir.uv.subscriptions_1.1.0,14,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-notifications,"In ... FHIR R4 ... notifications are based on a history Bundle. The first entry always contains SubscriptionStatus information, encoded as ... a Parameters resource using the Backport SubscriptionStatus Profile in FHIR R4",SHALL,Server,,,NA,NA,"1.2.
|
14
|
+
hl7.fhir.uv.subscriptions_1.1.0,14,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-notifications,"In ... FHIR R4 ... notifications are based on a history Bundle. The first entry always contains SubscriptionStatus information, encoded as ... a Parameters resource using the Backport SubscriptionStatus Profile in FHIR R4",SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
15
15
|
hl7.fhir.uv.subscriptions_1.1.0,15,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-notifications,"Note that since notifications use history type Bundles, all notifications need to comply with the requirements for that bundle type. Specifically, there are two invariants on Bundle (bdl-3 and bdl-4) that require a Bundle.entry.request element for every Bundle.entry.
|
16
16
|
- For the status resource (entry[0]) the request SHALL be filled out to match a request to the $status operation.
|
17
|
-
- for additional entries the request SHOULD be filled out in a way that makes sense given the subscription (e.g., a POST or PUT operation on the resource, etc.). However, a server MAY choose to simply include a GET to the relevant resource instead.",SHALL,Server,,,NA,NA,"1.2.
|
17
|
+
- for additional entries the request SHOULD be filled out in a way that makes sense given the subscription (e.g., a POST or PUT operation on the resource, etc.). However, a server MAY choose to simply include a GET to the relevant resource instead.",SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
18
18
|
hl7.fhir.uv.subscriptions_1.1.0,16,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#scoping-responsibilities,"Unless otherwise specified by a server implementation and channel, the Subscriptions Framework does not involve guaranteed delivery of notifications. While the Subscriptions Framework is able to support such mechanisms, defining them are beyond the scope of the standard or this guide. - Servers SHOULD detect errors and take appropriate action where possible. In general, this boundary is when the notification is delivered.",SHOULD,Server,,,NA,NA,,
|
19
19
|
hl7.fhir.uv.subscriptions_1.1.0,17,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#scoping-responsibilities,"Therefore, clients SHOULD be aware of some limitations regarding delivery. In particular: - Some notifications might not be delivered. Some notifications might be delivered multiple times",SHOULD,Client,,,,,NA,NA
|
20
20
|
hl7.fhir.uv.subscriptions_1.1.0,18,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY accept the Subscription request and mark it active (e.g., supported channel and payload, no handshake required). ",MAY,Server,,,NA,NA,Not Tested,Not Tested
|
@@ -27,31 +27,31 @@ hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backpor
|
|
27
27
|
hl7.fhir.uv.subscriptions_1.1.0,25,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To convey an event notification, the server POSTs a Bundle to the client’s nominated endpoint URL",SHALL,Server,,,NA,NA,"1.1.03, 3.1.1.03, 3.2.1.03, 3.3.1.03, 4.01","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance"
|
28
28
|
hl7.fhir.uv.subscriptions_1.1.0,26,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The content-type of the POST SHALL match the MIME type on the Subscription (Subscription.channel.payload).,SHALL,Server,,,NA,NA,,
|
29
29
|
hl7.fhir.uv.subscriptions_1.1.0,27,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Each Subscription.channel.header value SHALL be conveyed as an HTTP request header.,SHALL,Server,,,NA,NA,,
|
30
|
-
hl7.fhir.uv.subscriptions_1.1.0,28,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The bundle SHALL comply with the Backported R5 Notification Bundle Profile.,SHALL,Server,,,NA,NA,"1.2.
|
30
|
+
hl7.fhir.uv.subscriptions_1.1.0,28,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The bundle SHALL comply with the Backported R5 Notification Bundle Profile.,SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
31
31
|
hl7.fhir.uv.subscriptions_1.1.0,29,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"When a Subscription is created for a REST Hook channel type, the server SHALL set initial status to requested, pending verification of the nominated endpoint URL.",SHALL,Server,,,NA,NA,"1.1.03, 3.1.1.03, 3.2.1.03, 3.3.1.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_creation_response_conformance"
|
32
32
|
hl7.fhir.uv.subscriptions_1.1.0,30,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"After a successful handshake notification has been sent and accepted [for a REST Hook channel type], the server SHALL update the status to active.",SHALL,Server,,,NA,NA,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation
|
33
33
|
hl7.fhir.uv.subscriptions_1.1.0,31,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Any errors in the initial handshake [for a REST Hook channel type] SHALL result in the status being changed to error.,SHALL,Server,,,NA,NA,,
|
34
34
|
hl7.fhir.uv.subscriptions_1.1.0,32,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#security-notes,"HTTP is neither a secure nor an encrypted channel, nor does it provide endpoint verification. It is strongly recommended that implementations refuse requests to send notifications to URLs using the HTTP protocol (use HTTPS instead).",SHOULD,Server,,,NA,NA,,
|
35
35
|
hl7.fhir.uv.subscriptions_1.1.0,33,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#event-notifications-and-what-to-include,"In addition to the Subscription Status information, each notification MAY include additional resources or references to resources (URLs or ids).",MAY,Server,,,NA,NA,Not Tested,Not Tested
|
36
36
|
hl7.fhir.uv.subscriptions_1.1.0,34,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#additional-resources,Servers MAY choose to include additional resources [other than the focus] with notifications that may be of interest to clients.,MAY,Server,,,NA,NA,Not Tested,Not Tested
|
37
|
-
hl7.fhir.uv.subscriptions_1.1.0,35,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#additional-resources,"Servers SHALL conform to the payload configuration of the subscription when adding additional resources (e.g., if the subscription is id-only, then only ids of additional resources may be provided; if the subscription is full-resource, then full resources should be provided).",SHALL,Server,,,NA,NA,"3.1.2.
|
37
|
+
hl7.fhir.uv.subscriptions_1.1.0,35,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#additional-resources,"Servers SHALL conform to the payload configuration of the subscription when adding additional resources (e.g., if the subscription is id-only, then only ids of additional resources may be provided; if the subscription is full-resource, then full resources should be provided).",SHALL,Server,,,NA,NA,"3.1.2.03, 3.2.2.03, 3.3.2.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance"
|
38
38
|
hl7.fhir.uv.subscriptions_1.1.0,36,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#payload-types,"If a server will not honor a payload type (e.g., will not send full-resource over HTTP), it SHOULD reject the Subscription request",SHOULD,Server,,,NA,NA,,
|
39
39
|
hl7.fhir.uv.subscriptions_1.1.0,37,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#payload-types,"If a server will not honor a payload type (e.g., will not send full-resource over HTTP), it ... MAY accept the subscription with modifications.",MAY,Server,,,NA,NA,Not Tested,Not Tested
|
40
|
-
hl7.fhir.uv.subscriptions_1.1.0,38,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#empty,"When populating the SubscriptionStatus.notificationEvent structure for a notification with an empty payload, a server SHALL NOT include references to resources (e.g., SubscriptionStatus.notificationEvent.focus and SubscriptionStatus.notificationEvent.additionalContext SHALL NOT be present).",SHALL NOT,Server,,,NA,NA,3.1.2.
|
41
|
-
hl7.fhir.uv.subscriptions_1.1.0,39,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#empty,"When the content type is empty, notification bundles SHALL not contain Bundle.entry elements other than the SubscriptionStatus for the notification.",SHALL NOT,Server,,,NA,NA,3.1.2.
|
42
|
-
hl7.fhir.uv.subscriptions_1.1.0,40,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"When the content type is id-only, notification bundles SHALL include references to the appropriate focus resources in the SubscriptionStatus.notificationEvent.focus element.",SHALL,Server,,,NA,NA,3.2.2.
|
40
|
+
hl7.fhir.uv.subscriptions_1.1.0,38,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#empty,"When populating the SubscriptionStatus.notificationEvent structure for a notification with an empty payload, a server SHALL NOT include references to resources (e.g., SubscriptionStatus.notificationEvent.focus and SubscriptionStatus.notificationEvent.additionalContext SHALL NOT be present).",SHALL NOT,Server,,,NA,NA,3.1.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance
|
41
|
+
hl7.fhir.uv.subscriptions_1.1.0,39,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#empty,"When the content type is empty, notification bundles SHALL not contain Bundle.entry elements other than the SubscriptionStatus for the notification.",SHALL NOT,Server,,,NA,NA,3.1.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance
|
42
|
+
hl7.fhir.uv.subscriptions_1.1.0,40,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"When the content type is id-only, notification bundles SHALL include references to the appropriate focus resources in the SubscriptionStatus.notificationEvent.focus element.",SHALL,Server,,,NA,NA,3.2.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance
|
43
43
|
hl7.fhir.uv.subscriptions_1.1.0,41,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"Additionally, [id-only] notification bundles MAY contain, in addition to the SubscriptionStatus used to convey status information, at least one Bundle.entry for each resource relevant to the notification. For example, a notification for a topic based on Encounter MAY include a reference to the Encounter and MAY also include additional resources deemed relevant (e.g., the linked Patient).",MAY,Server,,,NA,NA,Not Tested,Not Tested
|
44
|
-
hl7.fhir.uv.subscriptions_1.1.0,42,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"Each Bundle.entry for id-only notification SHALL contain a relevant resource URL in the fullUrl and request elements, as is required for history bundles.",SHALL,Server,,,NA,NA,3.2.2.
|
45
|
-
hl7.fhir.uv.subscriptions_1.1.0,43,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"When the content type is full-resource, notification bundles SHALL include references to the appropriate focus resources in the SubscriptionStatus.notificationEvent.focus element.",SHALL,Server,,,NA,NA,3.3.2.
|
46
|
-
hl7.fhir.uv.subscriptions_1.1.0,44,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"Notification bundles for full-resource subscriptions SHALL contain, in addition to the SubscriptionStatus, at least one Bundle.entry for each resource relevant to the notification. For example, a notification for a topic based on the Encounter resource SHALL include an Encounter and MAY include additional resources deemed relevant (e.g., the referenced Patient).",SHALL,Server,,,NA,NA,3.3.2.
|
47
|
-
hl7.fhir.uv.subscriptions_1.1.0,45,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"Each Bundle.entry for a full-resource notification SHALL contain a relevant resource in the entry.resource element. If a server cannot include the resource contents due to an issue with a specific notification, the server SHALL populate the entry.request and/or entry.response elements.",SHALL,Server,,,NA,NA,3.3.2.
|
44
|
+
hl7.fhir.uv.subscriptions_1.1.0,42,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"Each Bundle.entry for id-only notification SHALL contain a relevant resource URL in the fullUrl and request elements, as is required for history bundles.",SHALL,Server,,,NA,NA,3.2.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance
|
45
|
+
hl7.fhir.uv.subscriptions_1.1.0,43,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"When the content type is full-resource, notification bundles SHALL include references to the appropriate focus resources in the SubscriptionStatus.notificationEvent.focus element.",SHALL,Server,,,NA,NA,3.3.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance
|
46
|
+
hl7.fhir.uv.subscriptions_1.1.0,44,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"Notification bundles for full-resource subscriptions SHALL contain, in addition to the SubscriptionStatus, at least one Bundle.entry for each resource relevant to the notification. For example, a notification for a topic based on the Encounter resource SHALL include an Encounter and MAY include additional resources deemed relevant (e.g., the referenced Patient).",SHALL,Server,,,NA,NA,3.3.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance
|
47
|
+
hl7.fhir.uv.subscriptions_1.1.0,45,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"Each Bundle.entry for a full-resource notification SHALL contain a relevant resource in the entry.resource element. If a server cannot include the resource contents due to an issue with a specific notification, the server SHALL populate the entry.request and/or entry.response elements.",SHALL,Server,,,NA,NA,3.3.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance
|
48
48
|
hl7.fhir.uv.subscriptions_1.1.0,47,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support the $status operation on the Subscription resource.",SHALL,Server,,,NA,NA,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation
|
49
49
|
hl7.fhir.uv.subscriptions_1.1.0,48,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHOULD support topic discovery via the CapabilityStatement SubscriptionTopic Canonical extension",SHOULD,Server,,,NA,NA,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery
|
50
50
|
hl7.fhir.uv.subscriptions_1.1.0,49,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support at least one channel type",SHALL,Server,,,NA,NA,"1.1.03, 3.1.1.03, 3.2.1.03, 3.3.1.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_creation_response_conformance"
|
51
51
|
hl7.fhir.uv.subscriptions_1.1.0,50,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHOULD include one [channel type] from this guide",SHOULD,Server,,,NA,NA,,
|
52
|
-
hl7.fhir.uv.subscriptions_1.1.0,51,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support at least one Payload Type",SHALL,Server,,,NA,NA,"3.1.2.
|
52
|
+
hl7.fhir.uv.subscriptions_1.1.0,51,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support at least one Payload Type",SHALL,Server,,,NA,NA,"3.1.2.03, 3.2.2.03, 3.3.2.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance"
|
53
53
|
hl7.fhir.uv.subscriptions_1.1.0,52,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"FHIR Servers claiming conformance to this Implementation Guide must conform to the expectations described in the Capability Statement appropriate to the implemented FHIR version. For FHIR R4 servers, this guide defines the R4 Server CapabilityStatement (https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html).",SHALL,Server,,,NA,NA,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance
|
54
|
-
hl7.fhir.uv.subscriptions_1.1.0,53,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In addition to the basic support in the CapabilityStatement (e.g., resources, interactions, and operations), a conformant server SHALL support at least one Payload Type … listed in this IG.",SHALL,Server,,,NA,NA,"3.1.2.
|
54
|
+
hl7.fhir.uv.subscriptions_1.1.0,53,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In addition to the basic support in the CapabilityStatement (e.g., resources, interactions, and operations), a conformant server SHALL support at least one Payload Type … listed in this IG.",SHALL,Server,,,NA,NA,"3.1.2.03, 3.2.2.03, 3.3.2.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance"
|
55
55
|
hl7.fhir.uv.subscriptions_1.1.0,54,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In addition to the basic support in the CapabilityStatement (e.g., resources, interactions, and operations), a conformant server ... SHOULD support one Channel Type listed in this IG.",SHOULD,Server,,,NA,NA,,
|
56
56
|
hl7.fhir.uv.subscriptions_1.1.0,57,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHOULD declare conformance with the Backport Subscription Server Capability Statement by including its official URL in the server’s CapabilityStatement.instantiates element: http://hl7.org/fhir/uv/subscriptions-backport/CapabilityStatement/backport-subscription-server-r4.,SHOULD,Server,,,NA,NA,,
|
57
57
|
hl7.fhir.uv.subscriptions_1.1.0,58,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,"a conformant server…SHALL specify the full capability details from the CapabilityStatement it claims to implement, including declaring support for the Backport Subscription Profile by including its official URL in the server’s CapabilityStatement.rest.resource.supportedProfile element: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription",SHALL,Server,,,NA,NA,Not Tested,Not Tested
|
@@ -60,12 +60,12 @@ hl7.fhir.uv.subscriptions_1.1.0,60,https://hl7.org/fhir/uv/subscriptions-backpor
|
|
60
60
|
hl7.fhir.uv.subscriptions_1.1.0,61,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,"Clients supporting this guide MAY support this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] extension, as necessary for their use case.",MAY,Client,,,Not Tested,Not Tested,NA,NA
|
61
61
|
hl7.fhir.uv.subscriptions_1.1.0,63,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,"If a server is capable of supporting filter criteria in general but unable to support criteria requested in a subscription [via the extension backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html], the server SHALL reject the subscription.",SHALL,Server,,,NA,NA,,
|
62
62
|
hl7.fhir.uv.subscriptions_1.1.0,64,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,Clients supporting this guide SHALL be able to write values in this [backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html] extension.,SHALL,Client,,,,,NA,NA
|
63
|
-
hl7.fhir.uv.subscriptions_1.1.0,65,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Servers supporting this guide SHALL be able to read values from this [backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html] extension.,SHALL,Server,,,NA,NA,"3.1.2.
|
63
|
+
hl7.fhir.uv.subscriptions_1.1.0,65,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Servers supporting this guide SHALL be able to read values from this [backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html] extension.,SHALL,Server,,,NA,NA,"3.1.2.03, 3.2.2.03, 3.3.2.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance"
|
64
64
|
hl7.fhir.uv.subscriptions_1.1.0,66,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,"A server SHALL reject the subscription request if a client asks for a content level the server does not intend to support (e.g., does not meet security requirements) [using the extension backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html].",SHALL,Server,,,NA,NA,,
|
65
|
-
hl7.fhir.uv.subscriptions_1.1.0,67,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Servers SHALL include information in notifications as described in this guide based on this value [in the extension backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html].,SHALL,Server,,,NA,NA,"3.1.2.
|
65
|
+
hl7.fhir.uv.subscriptions_1.1.0,67,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Servers SHALL include information in notifications as described in this guide based on this value [in the extension backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html].,SHALL,Server,,,NA,NA,"3.1.2.03, 3.2.2.03, 3.3.2.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance"
|
66
66
|
hl7.fhir.uv.subscriptions_1.1.0,68,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Clients supporting this guide SHALL be able to write values in this [backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html] extension.,SHALL,Client,,,1.3.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_conformance_verification-subscriptions_r4_client_subscription_verification,NA,NA
|
67
|
-
hl7.fhir.uv.subscriptions_1.1.0,69,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,Servers supporting this guide SHALL be able to generate a valid and correct R4 Backported R5 SubscriptionStatus resource for each notification. ,SHALL,Server,,,NA,NA,"1.2.
|
68
|
-
hl7.fhir.uv.subscriptions_1.1.0,70,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,The status entry SHALL be the first entry of each notification bundle.,SHALL,Server,,,NA,NA,"1.2.
|
67
|
+
hl7.fhir.uv.subscriptions_1.1.0,69,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,Servers supporting this guide SHALL be able to generate a valid and correct R4 Backported R5 SubscriptionStatus resource for each notification. ,SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
68
|
+
hl7.fhir.uv.subscriptions_1.1.0,70,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,The status entry SHALL be the first entry of each notification bundle.,SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
69
69
|
hl7.fhir.uv.subscriptions_1.1.0,71,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,Clients supporting this guide SHALL be able to process a valid R4 Backported R5 SubscriptionStatus resource without errors.,SHALL,Client,,,"1.2.01, 1.2.02","subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_handshake_notification_verification, subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_event_notification_verification",NA,NA
|
70
70
|
hl7.fhir.uv.subscriptions_1.1.0,72,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,"The Subscription.criteria element is required (cardinality of 1..1), so any compatible implementation SHALL be able to read and/or write as necessary.",SHALL,Server,,,NA,NA,"1.1.01, 3.1.1.01, 3.2.1.01, 3.3.1.01","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_subscription_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_subscription_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_subscription_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_subscription_conformance"
|
71
71
|
hl7.fhir.uv.subscriptions_1.1.0,73,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,"Compared with the core specification, this guide specifies that the [Subscription.criteria] element SHALL contain the canonical URL for the Subscription Topic.",SHALL,Server,,,NA,NA,"1.1.01, 3.1.1.01, 3.2.1.01, 3.3.1.01","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_subscription_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_subscription_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_subscription_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_subscription_conformance"
|
@@ -91,9 +91,9 @@ hl7.fhir.uv.subscriptions_1.1.0,95,https://hl7.org/fhir/uv/subscriptions-backpor
|
|
91
91
|
hl7.fhir.uv.subscriptions_1.1.0,96,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,Subscription.criteria.extension:filterCriteria: Keys can be either search parameters appropriate to the filtering resource or keys defined within the subscription topic.,SHALL,Client,,,,,NA,NA
|
92
92
|
hl7.fhir.uv.subscriptions_1.1.0,97,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:timeout: If present, the maximum amount of time a server will allow before failing a notification attempt. ",SHALL,Server,,,NA,NA,,
|
93
93
|
hl7.fhir.uv.subscriptions_1.1.0,98,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:maxCount: If present, the maximum number of triggering resources that will be included in a notification bundle (e.g., a server will not include more than this number of trigger resources in a single notification). Note that this is not a strict limit on the number of entries in a bundle, as dependent resources can be included.",SHALL,Server,,,NA,NA,,
|
94
|
-
hl7.fhir.uv.subscriptions_1.1.0,99,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value SHOULD NOT be present when using empty payloads ,SHOULD NOT,Server,,,NA,NA,3.1.2.
|
95
|
-
hl7.fhir.uv.subscriptions_1.1.0,100,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value … MAY be present when using id-only payloads,MAY,Server,,,NA,NA,3.2.2.
|
96
|
-
hl7.fhir.uv.subscriptions_1.1.0,101,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value … SHOULD be present when using full-resource payloads.,SHOULD,Server,,,NA,NA,3.3.2.
|
94
|
+
hl7.fhir.uv.subscriptions_1.1.0,99,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value SHOULD NOT be present when using empty payloads ,SHOULD NOT,Server,,,NA,NA,3.1.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance
|
95
|
+
hl7.fhir.uv.subscriptions_1.1.0,100,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value … MAY be present when using id-only payloads,MAY,Server,,,NA,NA,3.2.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance
|
96
|
+
hl7.fhir.uv.subscriptions_1.1.0,101,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value … SHOULD be present when using full-resource payloads.,SHOULD,Server,,,NA,NA,3.3.2.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance
|
97
97
|
hl7.fhir.uv.subscriptions_1.1.0,102,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:eventsSinceSubscriptionStart.value[x]: The total number of actual events which have been generated since the Subscription was created (inclusive of this notification) - regardless of how many have been successfully communicated. This number is NOT incremented for handshake and heartbeat notifications.,SHALL,Server,,,NA,NA,,
|
98
98
|
hl7.fhir.uv.subscriptions_1.1.0,103,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventNumber.value[x]: The sequential number of this event in this subscription context.,SHALL,Server,,,NA,NA,,
|
99
99
|
hl7.fhir.uv.subscriptions_1.1.0,104,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventFocus.value[x]: MAY contain a reference to a non-FHIR object.,MAY,Server,,,NA,NA,Not Tested,Not Tested
|
@@ -132,5 +132,5 @@ hl7.fhir.uv.subscriptions_1.1.0,134,https://hl7.org/fhir/uv/subscriptions-backpo
|
|
132
132
|
hl7.fhir.uv.subscriptions_1.1.0,135,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,Servers supporting this guide SHALL be able to read values in this [backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html] extension.,SHALL,Server,,,NA,NA,,
|
133
133
|
hl7.fhir.uv.subscriptions_1.1.0,136,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,Servers supporting this guide...SHALL be able to apply filters [from the backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html extension] as described by any Subscription Topics the server advertises support for.,SHALL,Server,,,NA,NA,,
|
134
134
|
hl7.fhir.uv.subscriptions_1.1.0,137,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4/B Topic-Based Subscription profile],SHALL,Server,,,NA,NA,,
|
135
|
-
hl7.fhir.uv.subscriptions_1.1.0,138,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4 Topic-Based Subscription Notification Bundle],SHALL,Server,,,NA,NA,"1.2.
|
136
|
-
hl7.fhir.uv.subscriptions_1.1.0,139,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4 Backported R5 SubscriptionStatus],SHALL,Server,,,NA,NA,"1.2.
|
135
|
+
hl7.fhir.uv.subscriptions_1.1.0,138,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4 Topic-Based Subscription Notification Bundle],SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
136
|
+
hl7.fhir.uv.subscriptions_1.1.0,139,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4 Backported R5 SubscriptionStatus],SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
|
@@ -3,8 +3,8 @@
|
|
3
3
|
module SubscriptionsTestKit
|
4
4
|
module SubscriptionsR5BackportR4Client
|
5
5
|
module SubscriptionSimulationUtils
|
6
|
-
# Per the IG this should only be application/fhir+xml and application/fhir+json,
|
7
|
-
#
|
6
|
+
# Per the IG this should only be application/fhir+xml and application/fhir+json,
|
7
|
+
# application/json, so we'll allow that. Disallow XML for now.
|
8
8
|
DEFAULT_MIME_TYPE = 'application/fhir+json'
|
9
9
|
ALLOWED_MIME_TYPES = [DEFAULT_MIME_TYPE, 'application/json'].freeze
|
10
10
|
|
@@ -18,7 +18,6 @@ module SubscriptionsTestKit
|
|
18
18
|
of the payload indicated in the subscription created by the client under test.
|
19
19
|
The content of the notification will be based on the Bundle provided by the tester.
|
20
20
|
)
|
21
|
-
input :notification_bundle
|
22
21
|
|
23
22
|
run do
|
24
23
|
subscription = find_subscription(test_session_id)
|
@@ -15,7 +15,6 @@ module SubscriptionsTestKit
|
|
15
15
|
profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-notification-r4.html).
|
16
16
|
The content of the notification will be based on the Bundle provided by the tester.
|
17
17
|
)
|
18
|
-
input :notification_bundle
|
19
18
|
|
20
19
|
run do
|
21
20
|
load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG)
|
@@ -38,6 +38,13 @@ module SubscriptionsTestKit
|
|
38
38
|
1. The provided content must be a valid json representation of a FHIR Bundle resource.
|
39
39
|
2. The first instance in the Bundle is a Parameters resource.
|
40
40
|
3. The first Parameters instance has a `subscription` parameter entry.
|
41
|
+
|
42
|
+
Additional notes:
|
43
|
+
- Inferno will only accept one successful Subscription creation request per test run. If you
|
44
|
+
need to change the Subscription after Inferno has successfully received it, end the tests and re-run them.
|
45
|
+
- Inferno will modify the `Subscription.channel.payload` value on the submitted Subscription to
|
46
|
+
`application/fhir+json` unless it is `application/json`. The value in their field returned by Inferno
|
47
|
+
will be used for the `content-type` HTTP header on notifications.
|
41
48
|
)
|
42
49
|
title 'Subscription Workflow Interaction'
|
43
50
|
|
data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow_group.rb
CHANGED
@@ -12,12 +12,18 @@ module SubscriptionsTestKit
|
|
12
12
|
id :subscriptions_r4_client_workflow
|
13
13
|
title 'Demonstrate the Rest-Hook Subscription Workflow'
|
14
14
|
description %(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
This test allows the tester to demonstrate the ability of the client
|
16
|
+
to request the= creation of a FHIR Subscription instance and receive
|
17
|
+
notifications for that Subscription.
|
18
|
+
|
19
|
+
The tester must provide the body of an event notification
|
20
|
+
that it expects to receive. Inferno will act as a server,
|
21
|
+
waiting for the Subscription creation request. Once the Subscription
|
22
|
+
has been received, Inferno will verify the endpoint using a
|
23
|
+
handshake based off of provided notification and then send the
|
24
|
+
provided notification after a short delay.
|
25
|
+
|
26
|
+
Inferno will then verify that the requested Subscription
|
21
27
|
and notification match and that the exchange is conformant.
|
22
28
|
)
|
23
29
|
run_as_group
|
@@ -4,7 +4,6 @@ require_relative 'subscriptions_r5_backport_r4_client/workflow_group'
|
|
4
4
|
require_relative '../endpoints/subscription_create_endpoint'
|
5
5
|
require_relative '../endpoints/subscription_read_endpoint'
|
6
6
|
require_relative '../endpoints/subscription_status_endpoint'
|
7
|
-
require_relative '../version'
|
8
7
|
|
9
8
|
module SubscriptionsTestKit
|
10
9
|
module SubscriptionsR5BackportR4Client
|
@@ -12,7 +11,6 @@ module SubscriptionsTestKit
|
|
12
11
|
id :subscriptions_r5_backport_r4_client
|
13
12
|
title 'Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite'
|
14
13
|
short_title 'Subscriptions R4 Client'
|
15
|
-
version VERSION
|
16
14
|
description File.read(File.join(__dir__, '..', 'docs',
|
17
15
|
'subscriptions_r5_backport_r4_client_suite_description.md'))
|
18
16
|
|
@@ -46,7 +44,9 @@ module SubscriptionsTestKit
|
|
46
44
|
|
47
45
|
capability_statement = File.read(File.join(__dir__, 'subscriptions_r5_backport_r4_client', 'fixtures',
|
48
46
|
'capability_statement.json'))
|
49
|
-
route(:get, '/fhir/metadata', proc {
|
47
|
+
route(:get, '/fhir/metadata', proc {
|
48
|
+
[200, { 'Content-Type' => 'application/fhir+json' }, [capability_statement]]
|
49
|
+
})
|
50
50
|
|
51
51
|
suite_endpoint :post, FHIR_SUBSCRIPTION_PATH, SubscriptionCreateEndpoint
|
52
52
|
suite_endpoint :get, FHIR_SUBSCRIPTION_INSTANCE_PATH, SubscriptionReadEndpoint
|
@@ -43,7 +43,7 @@ module SubscriptionsTestKit
|
|
43
43
|
assert_resource_type('Subscription', resource: subscription)
|
44
44
|
|
45
45
|
assert(subscription.channel.type == 'rest-hook' && subscription.status == 'requested',
|
46
|
-
"
|
46
|
+
"Expected Subscription.status to be 'requested', but was '#{subscription.status}'")
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -33,15 +33,15 @@ module SubscriptionsTestKit
|
|
33
33
|
|
34
34
|
run do
|
35
35
|
subscription = JSON.parse(updated_subscription)
|
36
|
-
|
37
|
-
|
36
|
+
returned_subscription = send_subscription(subscription)
|
37
|
+
subscription_payload_type = subscription_payload_type(subscription)
|
38
38
|
wait(
|
39
39
|
identifier: "notification #{access_token}",
|
40
40
|
message: %(
|
41
|
-
**Subscription `#{
|
41
|
+
**Subscription `#{returned_subscription['id']}`: `#{subscription_payload_type}` Notification Test**
|
42
42
|
|
43
|
-
Send any handshake, heartbeat, and `#{
|
44
|
-
with id `#{
|
43
|
+
Send any handshake, heartbeat, and `#{subscription_payload_type}` event-notification requests for the
|
44
|
+
Subscription with id `#{returned_subscription['id']}` to:
|
45
45
|
|
46
46
|
`#{subscription_channel_url}`
|
47
47
|
|
@@ -8,27 +8,25 @@ module SubscriptionsTestKit
|
|
8
8
|
id :subscriptions_r4_server_subscription_conformance
|
9
9
|
title '[USER INPUT VERIFICATION] Verify Subscription to Send to Server'
|
10
10
|
description %(
|
11
|
-
The Subscription resource is used to request notifications for a specific client about a specific topic
|
12
|
-
Conceptually, a subscription is a concrete request for a single client to receive notifications per a single
|
13
|
-
topic. In order to support topic-based subscriptions in R4, this guide defines several extensions for use on the
|
14
|
-
[R4 Subscription resource](http://hl7.org/fhir/R4/subscription.html). A list of extensions defined by this guide
|
15
|
-
can be found on the
|
16
|
-
[Subscriptions R5 Backport IG's Artifacts page](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/artifacts.html#5).
|
17
|
-
|
18
11
|
This test accepts a Subscription resource as an input and verifies that it is conformant to the
|
19
|
-
[R4/B Topic-Based Subscription profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription.html)
|
12
|
+
[R4/B Topic-Based Subscription profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription.html)
|
13
|
+
and that it is constructed to make supported notifications to Inferno's simulated
|
14
|
+
Subscriptions client.
|
20
15
|
|
21
|
-
|
22
|
-
|
16
|
+
For the server to successfuly deliver notifications recognized by this test session, the Subscription `channel`
|
17
|
+
element should have it's subelements populated with the following information:
|
18
|
+
- The `endpoint` field must be set to
|
23
19
|
`#{Inferno::Application['base_url']}/custom/subscriptions_r5_backport_r4_server#{SUBSCRIPTION_CHANNEL_PATH}`.
|
24
20
|
The test will add the correct url to this field if it is not properly set.
|
25
|
-
|
21
|
+
- The `type` element must be set to `rest-hook`, as the Inferno subscription workflow tests use a `rest-hook`
|
26
22
|
subscription channel to receive incoming notifications. The test will add the correct type to this field if it
|
27
23
|
is not properly set.
|
28
|
-
|
29
|
-
|
30
|
-
-
|
31
|
-
|
24
|
+
- The `payload` element should be `application/fhir+json`. Inferno will update it to that value
|
25
|
+
unless the provided value is `application/json`, which Inferno also supports receiving as the
|
26
|
+
`content-type` HTTP header on notifications.
|
27
|
+
- The `header` element must include the `Authorization` header with a Bearer token set to the inputted Inferno
|
28
|
+
access token to direct the server to send that header to identify the notifications are for this session.
|
29
|
+
Inferno will add the entry if it is not present.
|
32
30
|
)
|
33
31
|
|
34
32
|
verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@72',
|
@@ -9,9 +9,9 @@ module SubscriptionsTestKit
|
|
9
9
|
title 'Subscription Workflow Interaction'
|
10
10
|
description %(
|
11
11
|
Verify that the Subscription instance the tester provided is conformant, and then demonstrate the ability of the
|
12
|
-
server under test to accept a request for the creation of a FHIR Subscription instance and deliver
|
13
|
-
|
14
|
-
|
12
|
+
server under test to accept a request for the creation of a FHIR Subscription instance and deliver
|
13
|
+
notifications for that Subscription. Inferno will act as a client, creating the Subscription and waiting for
|
14
|
+
notifications based on it.
|
15
15
|
)
|
16
16
|
|
17
17
|
run_as_group
|
@@ -6,7 +6,7 @@ module SubscriptionsTestKit
|
|
6
6
|
include NotificationConformanceVerification
|
7
7
|
|
8
8
|
id :subscriptions_r4_server_notification_conformance
|
9
|
-
title 'Subscription Notification Verification'
|
9
|
+
title 'Subscription Event Notification Verification'
|
10
10
|
description %(
|
11
11
|
As described in [Topic-Based Subscription Components](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-notifications),
|
12
12
|
all notifications are enclosed in a Bundle with the type of history. Additionally, the first entry of the bundle
|
@@ -14,9 +14,11 @@ module SubscriptionsTestKit
|
|
14
14
|
[Backport SubscriptionStatus Profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html)
|
15
15
|
in FHIR R4.
|
16
16
|
|
17
|
-
This test takes the received notification bundle
|
17
|
+
This test takes the received event notification bundle or bundles from the most recently successfully created
|
18
|
+
Subscription (from the just-run interaction test) and ensures they are conformant to the
|
18
19
|
[R4 Topic-Based Subscription Notification Bundle](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-notification-r4.html)
|
19
|
-
profle.
|
20
|
+
profle. Note that other interactions like handshake and heartbeat notification are not verified as a
|
21
|
+
part of this test and those requests will not be associated with this test.
|
20
22
|
)
|
21
23
|
|
22
24
|
verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@14',
|
@@ -37,36 +39,50 @@ module SubscriptionsTestKit
|
|
37
39
|
subscription_requests =
|
38
40
|
requests
|
39
41
|
.select { |request| request.status == 201 }
|
40
|
-
skip_if subscription_requests.empty?,
|
41
|
-
|
42
|
+
skip_if subscription_requests.empty?, %(
|
43
|
+
No successful Subscription creation request of type #{subscription_type}
|
44
|
+
was made in the previous test.
|
45
|
+
)
|
42
46
|
else
|
43
47
|
all_requests = load_tagged_requests('subscription_creation')
|
44
|
-
|
48
|
+
subscription_requests =
|
45
49
|
all_requests
|
46
50
|
.select { |request| request.status == 201 }
|
47
|
-
skip_if
|
51
|
+
skip_if subscription_requests.empty?,
|
48
52
|
'No successful Subscription creation request was made in the previous test.'
|
49
|
-
subscription_requests = [all_subscription_requests.first]
|
50
53
|
end
|
51
54
|
|
55
|
+
# select the most recent subscription to verify
|
56
|
+
# this test is run as part of the interaction group, so the most recent
|
57
|
+
# successfully created Subscription will be the one that came during
|
58
|
+
# the previoius interaction test
|
59
|
+
latest_subscription = nil
|
52
60
|
subscription_requests.each do |subscription_request|
|
53
|
-
|
54
|
-
|
61
|
+
if latest_subscription.blank? || latest_subscription.created_at < subscription_request.created_at
|
62
|
+
latest_subscription = subscription_request
|
63
|
+
end
|
64
|
+
end
|
55
65
|
|
56
|
-
|
57
|
-
|
66
|
+
assert_valid_json(latest_subscription.response_body)
|
67
|
+
subscription = JSON.parse(latest_subscription.response_body)
|
58
68
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
69
|
+
requests = load_tagged_requests('event-notification', subscription['id'])
|
70
|
+
skip_if requests.empty?, %(
|
71
|
+
No event-notification requests were made for Subscription #{subscription['id']}
|
72
|
+
in during the interaction.
|
73
|
+
)
|
74
|
+
|
75
|
+
requests = requests.uniq(&:request_body)
|
76
|
+
requests.each do |request|
|
77
|
+
notification_verification(
|
78
|
+
request.request_body,
|
79
|
+
'event-notification',
|
80
|
+
subscription_id: subscription['id'],
|
81
|
+
status: 'active'
|
82
|
+
)
|
68
83
|
end
|
69
|
-
|
84
|
+
|
85
|
+
no_error_verification("Received event-notifications for Subscription #{subscription['id']} are not conformant.")
|
70
86
|
end
|
71
87
|
end
|
72
88
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module SubscriptionsTestKit
|
2
|
+
module SubscriptionsR5BackportR4Server
|
3
|
+
class NotificationPresenceTest < Inferno::Test
|
4
|
+
id :subscriptions_r4_server_notification_presence
|
5
|
+
title 'Notification Presence Verification'
|
6
|
+
description %(
|
7
|
+
This test identifies the most recent successfully created Subscription (from the just-run interaction test)
|
8
|
+
and checks that the server sent at least one notification to Inferno's notification endpoint
|
9
|
+
regarding that Subscription. This test does not check the types of these notifications or
|
10
|
+
whether they are conformant.
|
11
|
+
)
|
12
|
+
|
13
|
+
def subscription_type
|
14
|
+
config.options[:subscription_type]
|
15
|
+
end
|
16
|
+
|
17
|
+
run do
|
18
|
+
if subscription_type.present?
|
19
|
+
requests = load_tagged_requests('subscription_creation', subscription_type)
|
20
|
+
subscription_requests =
|
21
|
+
requests
|
22
|
+
.select { |request| request.status == 201 }
|
23
|
+
skip_if subscription_requests.empty?, %(
|
24
|
+
No successful Subscription creation request of type #{subscription_type}
|
25
|
+
was made in the previous test.
|
26
|
+
)
|
27
|
+
else
|
28
|
+
all_requests = load_tagged_requests('subscription_creation')
|
29
|
+
subscription_requests =
|
30
|
+
all_requests
|
31
|
+
.select { |request| request.status == 201 }
|
32
|
+
skip_if subscription_requests.empty?,
|
33
|
+
'No successful Subscription creation request was made in the previous test.'
|
34
|
+
end
|
35
|
+
|
36
|
+
# select the most recent subscription to verify
|
37
|
+
# this test is run as part of the interaction group, so the most recent
|
38
|
+
# successfully created Subscription will be the one that came during
|
39
|
+
# the previoius interaction test
|
40
|
+
latest_subscription = nil
|
41
|
+
subscription_requests.each do |subscription_request|
|
42
|
+
if latest_subscription.blank? || latest_subscription.created_at < subscription_request.created_at
|
43
|
+
latest_subscription = subscription_request
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
assert_valid_json(latest_subscription.response_body)
|
48
|
+
subscription = JSON.parse(latest_subscription.response_body)
|
49
|
+
|
50
|
+
requests = load_tagged_requests(subscription['id'])
|
51
|
+
assert !requests.empty?,
|
52
|
+
"No notifications were received from the server related to Subscription #{subscription['id']}."
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|