subscriptions_test_kit 0.9.3 → 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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/subscription_client_empty_preset.json.erb +15 -0
  3. data/config/presets/subscription_client_full_resource_preset.json.erb +15 -0
  4. data/config/presets/subscription_client_id_only_preset.json.erb +15 -0
  5. data/config/presets/subscription_server_preset_empty.json.erb +23 -0
  6. data/config/presets/subscription_server_preset_full_resource.json.erb +23 -0
  7. data/config/presets/subscription_server_preset_id_only.json.erb +23 -0
  8. data/lib/subscriptions_test_kit/common/notification_conformance_verification.rb +8 -11
  9. data/lib/subscriptions_test_kit/common/subscription_conformance_verification.rb +28 -7
  10. data/lib/subscriptions_test_kit/docs/samples/Subscription_empty.json +2 -2
  11. data/lib/subscriptions_test_kit/docs/samples/Subscription_full-resource.json +2 -2
  12. data/lib/subscriptions_test_kit/docs/samples/Subscription_id-only.json +2 -2
  13. data/lib/subscriptions_test_kit/docs/subscriptions_r5_backport_r4_client_suite_description.md +7 -1
  14. data/lib/subscriptions_test_kit/docs/subscriptions_r5_backport_r4_server_suite_description.md +11 -1
  15. data/lib/subscriptions_test_kit/endpoints/subscription_status_endpoint.rb +6 -5
  16. data/lib/subscriptions_test_kit/igs/.keep +0 -0
  17. data/lib/subscriptions_test_kit/jobs/send_subscription_notifications.rb +7 -2
  18. data/lib/subscriptions_test_kit/metadata.rb +92 -0
  19. data/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv +29 -29
  20. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/common/subscription_simulation_utils.rb +43 -15
  21. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/notification_input_payload_verification_test.rb +14 -8
  22. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/notification_input_verification_test.rb +7 -5
  23. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/subscription_verification_test.rb +1 -0
  24. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb +8 -0
  25. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow_group.rb +12 -6
  26. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb +3 -3
  27. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/creation_response_conformance_test.rb +1 -1
  28. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb +5 -5
  29. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb +15 -21
  30. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_group.rb +3 -3
  31. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification/notification_conformance_test.rb +38 -22
  32. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification/notification_presence_test.rb +56 -0
  33. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification_group.rb +7 -3
  34. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/subscription_creation.rb +11 -2
  35. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification/full_resource_content/full_resource_conformance_test.rb +1 -2
  36. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification/id_only_content/id_only_conformance_test.rb +1 -2
  37. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification_group.rb +4 -3
  38. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/handshake_conformance_test.rb +3 -0
  39. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/heartbeat_conformance_test.rb +3 -0
  40. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat_group.rb +1 -1
  41. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_channel_endpoint_test.rb +65 -0
  42. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_channel_payload_combo_test.rb +76 -0
  43. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_channel_type_test.rb +68 -0
  44. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_cross_version_extension_test.rb +59 -0
  45. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_filter_test.rb +66 -0
  46. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_payload_type_test.rb +66 -0
  47. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscription_topic_test.rb +64 -0
  48. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection_group.rb +14 -2
  49. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/workflow_group.rb +4 -4
  50. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb +0 -2
  51. data/lib/subscriptions_test_kit/version.rb +2 -1
  52. data/lib/subscriptions_test_kit.rb +1 -0
  53. metadata +23 -7
  54. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection/reject_subscriptions_test.rb +0 -185
@@ -5,16 +5,16 @@ hl7.fhir.uv.subscriptions_1.1.0,4,https://hl7.org/fhir/uv/subscriptions-backport
5
5
  hl7.fhir.uv.subscriptions_1.1.0,7,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,"When a FHIR Server accepts a request to create a Subscription, the server is indicating to the client that the server:
6
6
  - is capable of detecting when events covered by the requested SubscriptionTopic occur, and
7
7
  - is willing to make a simple best effort attempt at delivering a notification for each occurrence of a matching event.",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"
8
- hl7.fhir.uv.subscriptions_1.1.0,8,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 SubscriptionTopic is valid and implemented by the server,SHOULD,Server,,,NA,NA,6.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscriptions
9
- hl7.fhir.uv.subscriptions_1.1.0,9,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 all requested filters are defined in the requested topic and are implemented in the server,SHOULD,Server,,,NA,NA,6.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscriptions
10
- hl7.fhir.uv.subscriptions_1.1.0,10,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 type is known and implemented by the server,SHOULD,Server,,,NA,NA,6.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscriptions
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.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscriptions
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.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscriptions
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.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscriptions
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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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"
8
+ hl7.fhir.uv.subscriptions_1.1.0,8,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 SubscriptionTopic is valid and implemented by the server,SHOULD,Server,,,NA,NA,6.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_topic
9
+ hl7.fhir.uv.subscriptions_1.1.0,9,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 all requested filters are defined in the requested topic and are implemented in the server,SHOULD,Server,,,NA,NA,6.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_filter
10
+ hl7.fhir.uv.subscriptions_1.1.0,10,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 type is known and implemented by the server,SHOULD,Server,,,NA,NA,6.04,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_type
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
+ 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
+ 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.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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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"
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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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"
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.02, 3.2.2.02, 3.3.2.02","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"
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.02,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.02,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.02,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
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.02,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.02,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.02,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.02,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
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.02, 3.2.2.02, 3.3.2.02","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"
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.02, 3.2.2.02, 3.3.2.02","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"
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,15 +60,15 @@ 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.02, 3.2.2.02, 3.3.2.02","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"
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.02, 3.2.2.02, 3.3.2.02","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"
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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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"
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
- 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,,
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"
72
72
  hl7.fhir.uv.subscriptions_1.1.0,74,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,Servers supporting this guide SHALL be able to read values in this [Subscription.criteria] element and process requests for subscription topics referenced by it.,SHALL,Server,,,NA,NA,,
73
73
  hl7.fhir.uv.subscriptions_1.1.0,75,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,"If a server does not support a requested topic [in the Subscription.criteria element] or will not honor the subscription otherwise, a server SHALL reject the subscription request.",SHALL,Server,,,NA,NA,,
74
74
  hl7.fhir.uv.subscriptions_1.1.0,76,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,Clients supporting this guide SHALL be able to write subscription topic URLs into this [Subscription.criteria] element.,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
@@ -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.02,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.02,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.02,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
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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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.01, 3.1.2.01, 3.1.2.02, 3.2.2.01, 3.2.2.02, 3.3.2.01, 3.3.2.02, 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"
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, however, Inferno (server suite)
7
- # can only handle application/json, so we'll allow that. Disallow XML for now.
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
 
@@ -16,25 +16,32 @@ module SubscriptionsTestKit
16
16
  JSON.parse(test_result.input_json).find { |i| i['name'] == 'client_endpoint_access_token' }['value']
17
17
  end
18
18
 
19
- def derive_handshake_notification(notification_json, subscription_url)
19
+ def derive_handshake_notification(notification_json, subscription_url, subscription_topic)
20
20
  notification_bundle = FHIR.from_contents(notification_json)
21
- subscription_status = update_subscription_status(notification_bundle, subscription_url, 'requested', 0,
22
- 'handshake')
21
+ subscription_status = update_subscription_status(notification_bundle, subscription_url, subscription_topic,
22
+ 'requested', 0, 'handshake')
23
23
  subscription_status.parameter.delete(find_parameter(subscription_status, 'notification-event'))
24
24
  subscription_status.parameter.delete(find_parameter(subscription_status, 'error'))
25
+ notification_bundle.entry = [find_subscription_status_entry(notification_bundle)]
26
+ notification_bundle.timestamp = Time.now.utc.iso8601
25
27
  notification_bundle
26
28
  end
27
29
 
28
- def derive_event_notification(notification_json, subscription_url, event_count)
30
+ def derive_event_notification(notification_json, subscription_url, subscription_topic, event_count)
31
+ notification_timestamp = Time.now.utc.iso8601
29
32
  notification_bundle = FHIR.from_contents(notification_json)
30
- update_subscription_status(notification_bundle, subscription_url, 'active', event_count, 'event-notification')
33
+ subscription_status = update_subscription_status(notification_bundle, subscription_url, subscription_topic,
34
+ 'active', event_count, 'event-notification')
35
+ update_event_timestamps(subscription_status, notification_timestamp)
36
+ notification_bundle.timestamp = notification_timestamp
31
37
  notification_bundle
32
38
  end
33
39
 
34
- def derive_status_bundle(notification_json, subscription_url, status_code, event_count, request_url)
40
+ def derive_status_bundle(notification_json, subscription_url, subscription_topic,
41
+ status_code, event_count, request_url)
35
42
  notification_bundle = FHIR.from_contents(notification_json)
36
- subscription_status = update_subscription_status(notification_bundle, subscription_url, status_code,
37
- event_count, 'query-status')
43
+ subscription_status = update_subscription_status(notification_bundle, subscription_url, subscription_topic,
44
+ status_code, event_count, 'query-status')
38
45
  subscription_status.parameter.delete(find_parameter(subscription_status, 'notification-event'))
39
46
  subscription_status_entry = find_subscription_status_entry(notification_bundle)
40
47
  FHIR::Bundle.new(
@@ -45,7 +52,8 @@ module SubscriptionsTestKit
45
52
  ),
46
53
  link: FHIR::Bundle::Link.new(relation: 'self', url: request_url),
47
54
  total: 1,
48
- type: 'searchset'
55
+ type: 'searchset',
56
+ timestamp: Time.now.utc.iso8601
49
57
  )
50
58
  end
51
59
 
@@ -55,14 +63,19 @@ module SubscriptionsTestKit
55
63
  oo
56
64
  end
57
65
 
58
- def find_subscription(test_session_id)
66
+ def find_subscription(test_session_id, as_json: false)
59
67
  request = requests_repo.tagged_requests(test_session_id, [SUBSCRIPTION_CREATE_TAG])&.find do |r|
60
68
  r.status == 201
61
69
  end
62
70
  return unless request
63
71
 
64
72
  begin
65
- FHIR.from_contents(request.response_body)
73
+ if as_json
74
+ # needed to access primitive extensions
75
+ JSON.parse(request.response_body)
76
+ else
77
+ FHIR.from_contents(request.response_body)
78
+ end
66
79
  rescue StandardError
67
80
  nil
68
81
  end
@@ -106,18 +119,29 @@ module SubscriptionsTestKit
106
119
  subscription_url&.reference&.chomp('/')&.split('/')&.last
107
120
  end
108
121
 
109
- def update_subscription_status(notification_bundle, subscription_url, status_code, event_count, type)
122
+ def update_subscription_status(notification_bundle, subscription_url, subscription_topic, status_code,
123
+ event_count, type)
110
124
  subscription_status_entry = find_subscription_status_entry(notification_bundle)
111
- subscription_status_entry.request = FHIR::Bundle::Entry::Request.new(method: 'POST',
125
+ subscription_status_entry.request = FHIR::Bundle::Entry::Request.new(method: 'GET',
112
126
  url: "#{subscription_url}/$status")
127
+ subscription_status_entry.response = FHIR::Bundle::Entry::Response.new(status: '200')
113
128
  subscription_status = subscription_status_entry&.resource
114
129
  set_subscription_reference(subscription_status, subscription_url)
130
+ find_parameter(subscription_status, 'topic')&.valueCanonical = subscription_topic
115
131
  find_parameter(subscription_status, 'status')&.valueCode = status_code
116
132
  find_parameter(subscription_status, 'type')&.valueCode = type
117
133
  find_parameter(subscription_status, 'events-since-subscription-start')&.valueString = event_count.to_s
118
134
  subscription_status
119
135
  end
120
136
 
137
+ def update_event_timestamps(subscription_status, timestamp = nil)
138
+ timestamp = Time.now.utc.iso8601 unless timestamp.present?
139
+ event_list = find_all_parameters(subscription_status, 'notification-event')
140
+ event_list.each do |event|
141
+ event.part.find { |part| part.name == 'timestamp' }&.valueInstant = timestamp
142
+ end
143
+ end
144
+
121
145
  def find_subscription_status_entry(notification_bundle)
122
146
  notification_bundle.entry.find do |e|
123
147
  e.resource&.resourceType == 'Parameters' && e.resource.parameter&.any? { |p| p.name == 'subscription' }
@@ -138,6 +162,10 @@ module SubscriptionsTestKit
138
162
  def find_parameter(subscription_status, parameter_name)
139
163
  subscription_status.parameter&.find { |p| p.name == parameter_name }
140
164
  end
165
+
166
+ def find_all_parameters(subscription_status, parameter_name)
167
+ subscription_status.parameter&.select { |p| p.name == parameter_name }
168
+ end
141
169
  end
142
170
  end
143
171
  end
@@ -13,9 +13,11 @@ module SubscriptionsTestKit
13
13
 
14
14
  id :subscriptions_r4_client_notification_input_payload_verification
15
15
  title '[USER INPUT VERIFICATION] Notification Bundle Input Conformance Verification for Payload Content'
16
- description 'This test verifies that the notification bundle from the test input meets the requirements ' \
17
- 'of the payload indicated in the subscription created by the client under test.'
18
- input :notification_bundle
16
+ description %(
17
+ This test verifies that the notification bundle sent by Inferno meets the requirements
18
+ of the payload indicated in the subscription created by the client under test.
19
+ The content of the notification will be based on the Bundle provided by the tester.
20
+ )
19
21
 
20
22
  run do
21
23
  subscription = find_subscription(test_session_id)
@@ -30,20 +32,24 @@ module SubscriptionsTestKit
30
32
  payload_content_code = payload_ext['valueCode'] if payload_ext
31
33
  skip_if(payload_content_code.nil?, 'Subscription does not have a payload content code')
32
34
 
33
- criteria_resource_type = subscription_criteria(subscription.source_hash)
35
+ load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG)
36
+ skip_if(requests.none?, 'Inferno did not send an event notification')
34
37
 
35
38
  case payload_content_code
36
39
  when 'empty'
37
- empty_event_notification_verification(notification_bundle)
40
+ empty_event_notification_verification(request.request_body)
38
41
  when 'id-only'
39
- id_only_event_notification_verification(notification_bundle, criteria_resource_type)
42
+ id_only_event_notification_verification(request.request_body, nil)
40
43
  when 'full-resource'
41
- full_resource_event_notification_verification(notification_bundle, criteria_resource_type)
44
+ full_resource_event_notification_verification(request.request_body, nil)
42
45
  else
43
46
  skip "Unrecognized payload content code: #{payload_content_code}"
44
47
  end
45
48
 
46
- no_error_verification('Notification bundle input payload content was not conformant, see error messages')
49
+ no_error_verification(%(
50
+ Notification bundle payload content was not conformant to requirements of the #{payload_content_code}
51
+ content type. See error messages for details.
52
+ ))
47
53
  end
48
54
  end
49
55
  end
@@ -10,15 +10,17 @@ module SubscriptionsTestKit
10
10
  id :subscriptions_r4_client_notification_input_verification
11
11
  title '[USER INPUT VERIFICATION] Notification Bundle Input Conformance Verification'
12
12
  description %(
13
- This test verifies that the notification bundle provided by the tester is conformant
13
+ This test verifies that the notification bundle sent is conformant
14
14
  to the [R4 Topic-Based Subscription Notification Bundle
15
15
  profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-notification-r4.html).
16
- )
17
- input :notification_bundle
16
+ The content of the notification will be based on the Bundle provided by the tester.
17
+ )
18
18
 
19
19
  run do
20
- notification_verification(notification_bundle, 'event-notification')
21
- no_error_verification('Notification bundle input was not conformant, see error messages')
20
+ load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG)
21
+ skip_if(requests.none?, 'Inferno did not send an event notification')
22
+ notification_verification(request.request_body, 'event-notification')
23
+ no_error_verification('Notification bundle was not conformant, see error messages')
22
24
  end
23
25
  end
24
26
  end
@@ -22,6 +22,7 @@ module SubscriptionsTestKit
22
22
  load_tagged_requests(SUBSCRIPTION_CREATE_TAG)
23
23
  skip_if(requests.none?, 'Inferno did not receive a Subscription creation request')
24
24
  subscription_verification(request.request_body)
25
+ no_error_verification('Subscription resource is not conformant.')
25
26
  end
26
27
  end
27
28
  end
@@ -3,6 +3,7 @@
3
3
  module SubscriptionsTestKit
4
4
  module SubscriptionsR5BackportR4Client
5
5
  class InteractionTest < Inferno::Test
6
+ include URLs
6
7
  id :subscriptions_r4_client_interaction
7
8
  description %(
8
9
  During this test, the client under test will interact with Inferno following the Subscription
@@ -37,6 +38,13 @@ module SubscriptionsTestKit
37
38
  1. The provided content must be a valid json representation of a FHIR Bundle resource.
38
39
  2. The first instance in the Bundle is a Parameters resource.
39
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.
40
48
  )
41
49
  title 'Subscription Workflow Interaction'
42
50
 
@@ -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
- Demonstrate the ability of the client to request the
16
- creation of a FHIR Subscription instance and receive a notification
17
- for that Subscription. The tester must provide the body of a Notification
18
- that it expects to receive. Inferno will act as a server,
19
- waiting for the Subscription creation request and then sending the
20
- notification. Inferno will then verify that the provided Subscription
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 { [200, { 'Content-Type' => 'application/json' }, [capability_statement]] })
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
- "The Subscription resource should have it's status set to 'requested', was '#{subscription.status}'")
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
- subscription_type = send_subscription(subscription)
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 `#{subscription['id']}`: `#{subscription_type}` Notification Test**
41
+ **Subscription `#{returned_subscription['id']}`: `#{subscription_payload_type}` Notification Test**
42
42
 
43
- Send any handshake, heartbeat, and `#{subscription_type}` event-notification requests for the Subscription
44
- with id `#{subscription['id']}` to:
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