From c3b991d8614675130a62c6daa42911eebe694d23 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Wed, 11 Jun 2025 15:13:24 -0400 Subject: [PATCH 01/14] add subscriptions requirements spreadsheet --- ...hir.uv.subscriptions_1.1.0_requirements.xlsx | Bin 0 -> 82429 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx diff --git a/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx b/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..48da28a8aae04d4530e0bb58ded620fa1f971c28 GIT binary patch literal 82429 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 L0sR;hgM<4&=cxCy literal 0 HcmV?d00001 From d4c04c21b39130a15a498c4cbe2573f908a470d6 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Wed, 11 Jun 2025 16:21:47 -0400 Subject: [PATCH 02/14] renamed requirement csv --- ...t_requirements.csv => subscriptions_test_kit_requirements.csv} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lib/subscriptions_test_kit/requirements/{subscriptions-test-kit_requirements.csv => subscriptions_test_kit_requirements.csv} (100%) diff --git a/lib/subscriptions_test_kit/requirements/subscriptions-test-kit_requirements.csv b/lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv similarity index 100% rename from lib/subscriptions_test_kit/requirements/subscriptions-test-kit_requirements.csv rename to lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv From f61fcfd554afc72efd92961a0912cebbbc1b7142 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Wed, 11 Jun 2025 16:27:57 -0400 Subject: [PATCH 03/14] remove old requirements tools --- Rakefile | 32 --- .../ext/inferno_core/runnable.rb | 22 -- .../tasks/collect_requirements.rb | 223 --------------- .../tasks/requirements_coverage.rb | 266 ------------------ lib/subscriptions_test_kit.rb | 1 - ...ons-test-kit_out_of_scope_requirements.csv | 23 -- 6 files changed, 567 deletions(-) delete mode 100644 lib/inferno_requirements_tools/ext/inferno_core/runnable.rb delete mode 100644 lib/inferno_requirements_tools/tasks/collect_requirements.rb delete mode 100644 lib/inferno_requirements_tools/tasks/requirements_coverage.rb delete mode 100644 lib/subscriptions_test_kit/requirements/subscriptions-test-kit_out_of_scope_requirements.csv diff --git a/Rakefile b/Rakefile index 8d4da08..f0f0446 100644 --- a/Rakefile +++ b/Rakefile @@ -13,35 +13,3 @@ namespace :db do Inferno::Utils::Migration.new.run end end - -namespace :requirements do - desc 'Generate requirements coverage CSV' - task :generate_coverage do - require 'inferno' - Inferno::Application.start(:suites) - - require_relative 'lib/inferno_requirements_tools/tasks/requirements_coverage' - InfernoRequirementsTools::Tasks::RequirementsCoverage.new.run - end - - desc 'Check if requirements coverage CSV is up-to-date' - task :check_coverage do - require 'inferno' - Inferno::Application.start(:suites) - - require_relative 'lib/inferno_requirements_tools/tasks/requirements_coverage' - InfernoRequirementsTools::Tasks::RequirementsCoverage.new.run_check - end - - desc 'Collect requirements and planned not tested requirements into CSVs' - task :collect, [:input_directory] => [] do |_, args| - require_relative 'lib/inferno_requirements_tools/tasks/collect_requirements' - InfernoRequirementsTools::Tasks::CollectRequirements.new.run(args.input_directory) - end - - desc 'Check if requirements and planned not tested CSVs are up-to-date' - task :check_collection, [:input_directory] => [] do |_, args| - require_relative 'lib/inferno_requirements_tools/tasks/collect_requirements' - InfernoRequirementsTools::Tasks::CollectRequirements.new.run_check(args.input_directory) - end -end diff --git a/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb b/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb deleted file mode 100644 index 085746d..0000000 --- a/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +++ /dev/null @@ -1,22 +0,0 @@ -module Inferno - module DSL - # This module contains the DSL for defining child entities in the test - # definition framework. - module Runnable - # Set/Get the IDs of requirements verifed by this runnable - # Set with [] to clear the list - # - # @param requirements [Array] - # @return [Array] the requirement IDs - def verifies_requirements(*requirement_ids) - if requirement_ids.empty? - @requirement_ids || [] - elsif requirement_ids == [[]] - @requirement_ids = [] - else - @requirement_ids = requirement_ids - end - end - end - end -end diff --git a/lib/inferno_requirements_tools/tasks/collect_requirements.rb b/lib/inferno_requirements_tools/tasks/collect_requirements.rb deleted file mode 100644 index 2524297..0000000 --- a/lib/inferno_requirements_tools/tasks/collect_requirements.rb +++ /dev/null @@ -1,223 +0,0 @@ -# frozen_string_literal: true - -require 'csv' -require 'roo' - -module InfernoRequirementsTools - module Tasks - # This class manages the collection of requirements details from - # requirements planning excel workbooks into a CSV representation. - # Currently splits out Requirements and Planned Not Tested Requirements - # into two separate files. - # - # The `run` method will generate the files - # The `run_check` method will check whether the previously generated files are up-to-date. - class CollectRequirements - # Update these constants based on the test kit. - TEST_KIT_ID = 'subscriptions-test-kit' - INPUT_SETS = ['hl7.fhir.uv.subscriptions_1.1.0'].freeze - - # Derivative constants - TEST_KIT_CODE_FOLDER = TEST_KIT_ID.gsub('-', '_') - INPUT_HEADERS = - [ - 'ID*', - 'URL*', - 'Requirement*', - 'Conformance*', - 'Actor*', - 'Sub-Requirement(s)', - 'Conditionality', - 'Verifiable?', - 'Verifiability Details', - 'Planning To Test?', - 'Planning To Test Details' - ].freeze - REQUIREMENTS_OUTPUT_HEADERS = - [ - 'Req Set', - 'ID', - 'URL', - 'Requirement', - 'Conformance', - 'Actor', - 'Sub-Requirement(s)', - 'Conditionality' - ].freeze - REQUIREMENTS_OUTPUT_FILE_NAME = "#{TEST_KIT_ID}_requirements.csv".freeze - REQUIREMENTS_OUTPUT_FILE = - File.join('lib', TEST_KIT_CODE_FOLDER, 'requirements', REQUIREMENTS_OUTPUT_FILE_NAME).freeze - PLANNED_NOT_TESTED_OUTPUT_HEADERS = ['Req Set', 'ID', 'Reason', 'Details'].freeze - PLANNED_NOT_TESTED_OUTPUT_FILE_NAME = "#{TEST_KIT_ID}_out_of_scope_requirements.csv".freeze - PLANNED_NOT_TESTED_OUTPUT_FILE = - File.join('lib', TEST_KIT_CODE_FOLDER, 'requirements', PLANNED_NOT_TESTED_OUTPUT_FILE_NAME).freeze - - def available_input_worksheets - @available_input_worksheets ||= Dir.glob(File.join(@input_directory, '*.xlsx')).reject { |f| f.include?('~$') } - end - - # Of the form: - # { - # req_set_id_1: [row1, row2, row 3, ...], - # req_set_id_2: [row1, row2, row 3, ...] - # } - def input_requirement_sets - @input_requirement_sets ||= INPUT_SETS.each_with_object({}) do |req_set_id, hash| - req_set_file = available_input_worksheets.find { |worksheet_file| worksheet_file.include?(req_set_id) } - - hash[req_set_id] = - unless req_set_file.nil? - CSV.parse(Roo::Spreadsheet.open(req_set_file).sheet('Requirements').to_csv, - headers: true).map do |row| - row.to_h.slice(*INPUT_HEADERS) - end - end - end - end - - def new_requirements_csv - @new_requirements_csv ||= - CSV.generate(+"\xEF\xBB\xBF") do |csv| # start with an unnecessary BOM to make viewing in excel easier - csv << REQUIREMENTS_OUTPUT_HEADERS - - input_requirement_sets.each do |req_set_id, input_rows| - input_rows.each do |input_row| # NOTE: use row order from source file - csv << REQUIREMENTS_OUTPUT_HEADERS.map do |header| - header == 'Req Set' ? req_set_id : input_row[header] || input_row["#{header}*"] - end - end - end - end - end - - def old_requirements_csv - @old_requirements_csv ||= File.read(REQUIREMENTS_OUTPUT_FILE) - end - - def new_planned_not_tested_csv - @new_planned_not_tested_csv ||= - CSV.generate(+"\xEF\xBB\xBF") do |csv| # start with an unnecessary BOM to make viewing in excel easier - csv << PLANNED_NOT_TESTED_OUTPUT_HEADERS - - input_requirement_sets.each do |req_set_id, input_rows| - input_rows.each do |row| - if spreadsheet_value_falsy?(row['Verifiable?']) - csv << [req_set_id, row['ID*'], 'Not Verifiable', row['Verifiability Details']] - elsif spreadsheet_value_falsy?(row['Planning To Test?']) - csv << [req_set_id, row['ID*'], 'Not Tested', row['Planning To Test Details']] - end - end - end - end - end - - def old_planned_not_tested_csv - @old_planned_not_tested_csv ||= File.read(PLANNED_NOT_TESTED_OUTPUT_FILE) - end - - def run(input_directory) - @input_directory = input_directory - check_presence_of_input_files - - update_requirements = - if File.exist?(REQUIREMENTS_OUTPUT_FILE) - if old_requirements_csv == new_requirements_csv - puts "'#{REQUIREMENTS_OUTPUT_FILE_NAME}' file is up to date." - false - else - puts 'Requirements set has changed.' - true - end - else - puts "No existing #{REQUIREMENTS_OUTPUT_FILE_NAME}." - true - end - - if update_requirements - puts "Writing to file #{REQUIREMENTS_OUTPUT_FILE}..." - File.write(REQUIREMENTS_OUTPUT_FILE, new_requirements_csv, encoding: Encoding::UTF_8) - end - - udpate_planned_not_tested = - if File.exist?(PLANNED_NOT_TESTED_OUTPUT_FILE) - if old_planned_not_tested_csv == new_planned_not_tested_csv - puts "'#{PLANNED_NOT_TESTED_OUTPUT_FILE_NAME}' file is up to date." - false - else - puts 'Planned Not Tested Requirements set has changed.' - true - end - else - puts "No existing #{PLANNED_NOT_TESTED_OUTPUT_FILE_NAME}." - true - end - - if udpate_planned_not_tested - puts "Writing to file #{PLANNED_NOT_TESTED_OUTPUT_FILE}..." - File.write(PLANNED_NOT_TESTED_OUTPUT_FILE, new_planned_not_tested_csv, encoding: Encoding::UTF_8) - end - - puts 'Done.' - end - - def run_check(input_directory) - @input_directory = input_directory - check_presence_of_input_files - - requirements_ok = - if File.exist?(REQUIREMENTS_OUTPUT_FILE) - if old_requirements_csv == new_requirements_csv - puts "'#{REQUIREMENTS_OUTPUT_FILE_NAME}' file is up to date." - true - else - puts "#{REQUIREMENTS_OUTPUT_FILE_NAME} file is out of date." - false - end - else - puts "No existing #{REQUIREMENTS_OUTPUT_FILE_NAME} file." - false - end - - planned_not_tested_requirements_ok = - if File.exist?(PLANNED_NOT_TESTED_OUTPUT_FILE) - if old_planned_not_tested_csv == new_planned_not_tested_csv - puts "'#{PLANNED_NOT_TESTED_OUTPUT_FILE_NAME}' file is up to date." - true - else - puts "#{PLANNED_NOT_TESTED_OUTPUT_FILE_NAME} file is out of date." - false - end - else - puts "No existing #{PLANNED_NOT_TESTED_OUTPUT_FILE_NAME} file." - false - end - - return if planned_not_tested_requirements_ok && requirements_ok - - puts <<~MESSAGE - Check Failed. To resolve, run: - - bundle exec rake "requirements:collect[]" - - MESSAGE - exit(1) - end - - def check_presence_of_input_files - input_requirement_sets.each do |req_set_id, rows| - next unless rows.nil? - - puts %( - Could not find input file for set #{req_set_id} in directory #{input_directory}. Aborting requirements - collection..." - ) - exit(1) - end - end - - def spreadsheet_value_falsy?(str) - str&.downcase == 'no' || str&.downcase == 'false' - end - end - end -end diff --git a/lib/inferno_requirements_tools/tasks/requirements_coverage.rb b/lib/inferno_requirements_tools/tasks/requirements_coverage.rb deleted file mode 100644 index 80039fa..0000000 --- a/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +++ /dev/null @@ -1,266 +0,0 @@ -# frozen_string_literal: true - -require 'csv' -require_relative '../ext/inferno_core/runnable' - -module InfernoRequirementsTools - module Tasks - # This class manages the mapping of test kit tests to requirements that they verify - # and creates a CSV file with the tests that cover each requirement. - # It expects a CSV file in the repo at `lib/[test kit id]/requirements/[test kit id]_requirements.csv` - # that serves as the source of the requirement set for the test kit. The requirements in - # this files are identified by a requirement set and an id and tests, groups, and suites - # within in the test kit can claim that they verify a requirement by including a reference - # to that requirementin the form @ in their `verifies_requirements` field. - # Requirements that are out of scope can be listed in a companion file - # `lib/[test kit id]/requirements/[test kit id]_out_of_scope_requirements.csv`. - # - # The `run` method generates a CSV file at - # `lib/[test kit id]/requirements/generated/[test kit id]_requirements_coverage.csv``. - # This file will be identical to the input spreadsheet, plus an additional column which holds a comma separated - # list of inferno test IDs that test each requirement. These test IDs are Inferno short form IDs that represent the - # position of the test within its group and suite. For example, the fifth test in the second group will have an ID - # of 2.05. This ID is also shown in the Inferno web UI. - # - # The `run_check` method will check whether the previously generated file is up-to-date. - class RequirementsCoverage - # Update these constants based on the test kit. - TEST_KIT_ID = 'subscriptions-test-kit' - TEST_SUITES = [SubscriptionsTestKit::SubscriptionsR5BackportR4Client::SubscriptionsR5BackportR4ClientSuite, - SubscriptionsTestKit::SubscriptionsR5BackportR4Server::SubscriptionsR5BackportR4ServerSuite].freeze - SUITE_ID_TO_ACTOR_MAP = { - 'subscriptions_r5_backport_r4_client' => 'Client', - 'subscriptions_r5_backport_r4_server' => 'Server' - }.freeze - - # Derivative constants - TEST_KIT_CODE_FOLDER = TEST_KIT_ID.gsub('-', '_') - INPUT_HEADERS = [ - 'Req Set', - 'ID', - 'URL', - 'Requirement', - 'Conformance', - 'Actor', - 'Sub-Requirement(s)', - 'Conditionality' - ].freeze - SHORT_ID_HEADER = 'Short ID(s)' - FULL_ID_HEADER = 'Full ID(s)' - INPUT_FILE_NAME = "#{TEST_KIT_ID}_requirements.csv".freeze - INPUT_FILE = File.join('lib', TEST_KIT_CODE_FOLDER, 'requirements', INPUT_FILE_NAME).freeze - NOT_TESTED_FILE_NAME = "#{TEST_KIT_ID}_out_of_scope_requirements.csv".freeze - NOT_TESTED_FILE = File.join('lib', TEST_KIT_CODE_FOLDER, 'requirements', NOT_TESTED_FILE_NAME).freeze - OUTPUT_HEADERS = INPUT_HEADERS + TEST_SUITES.flat_map do |suite| - ["#{suite.title} #{SHORT_ID_HEADER}", "#{suite.title} #{FULL_ID_HEADER}"] - end - OUTPUT_FILE_NAME = "#{TEST_KIT_ID}_requirements_coverage.csv".freeze - OUTPUT_FILE = File.join('lib', TEST_KIT_CODE_FOLDER, 'requirements', 'generated', OUTPUT_FILE_NAME).freeze - - def input_rows - @input_rows ||= - CSV.parse(File.open(INPUT_FILE, 'r:bom|utf-8'), headers: true).map do |row| - row.to_h.slice(*INPUT_HEADERS) - end - end - - def not_tested_requirements_map - @not_tested_requirements_map ||= load_not_tested_requirements - end - - def load_not_tested_requirements - return {} unless File.exist?(NOT_TESTED_FILE) - - not_tested_requirements = {} - CSV.parse(File.open(NOT_TESTED_FILE, 'r:bom|utf-8'), headers: true).each do |row| - row_hash = row.to_h - not_tested_requirements["#{row_hash['Req Set']}@#{row_hash['ID']}"] = row_hash - end - - not_tested_requirements - end - - # Of the form: - # { - # 'req-id-1': [ - # { short_id: 'short-id-1', full_id: 'long-id-1', suite_id: 'suite-id-1' }, - # { short_id: 'short-id-2', full_id: 'long-id-2', suite_id: 'suite-id-2' } - # ], - # 'req-id-2': [{ short_id: 'short-id-3', full_id: 'long-id-3', suite_id: 'suite-id-3' }], - # ... - # } - def inferno_requirements_map - @inferno_requirements_map ||= TEST_SUITES.each_with_object({}) do |suite, requirements_map| - serialize_requirements(suite, 'suite', suite.id, requirements_map) - suite.groups.each do |group| - map_group_requirements(group, suite.id, requirements_map) - end - end - end - - # rubocop:disable Metrics/CyclomaticComplexity - def new_csv - @new_csv ||= - CSV.generate(+"\xEF\xBB\xBF") do |csv| - csv << OUTPUT_HEADERS - input_rows.each do |row| # NOTE: use row order from source file - next if row['Conformance'] == 'DEPRECATED' # filter out deprecated rows - - TEST_SUITES.each do |suite| - suite_actor = SUITE_ID_TO_ACTOR_MAP[suite.id] - if row['Actor']&.include?(suite_actor) - set_and_req_id = "#{row['Req Set']}@#{row['ID']}" - suite_requirement_items = inferno_requirements_map[set_and_req_id]&.filter do |item| - item[:suite_id] == suite.id - end - short_ids = suite_requirement_items&.map { |item| item[:short_id] } - full_ids = suite_requirement_items&.map { |item| item[:full_id] } - if short_ids.blank? && not_tested_requirements_map.key?(set_and_req_id) - row["#{suite.title} #{SHORT_ID_HEADER}"] = 'Not Tested' - row["#{suite.title} #{FULL_ID_HEADER}"] = 'Not Tested' - else - row["#{suite.title} #{SHORT_ID_HEADER}"] = short_ids&.join(', ') - row["#{suite.title} #{FULL_ID_HEADER}"] = full_ids&.join(', ') - end - else - row["#{suite.title} #{SHORT_ID_HEADER}"] = 'NA' - row["#{suite.title} #{FULL_ID_HEADER}"] = 'NA' - end - end - - csv << row.values - end - end - end - # rubocop:enable Metrics/CyclomaticComplexity - - def input_requirement_ids - @input_requirement_ids ||= input_rows.map { |row| "#{row['Req Set']}@#{row['ID']}" } - end - - # The requirements present in Inferno that aren't in the input spreadsheet - def unmatched_requirements_map - @unmatched_requirements_map ||= inferno_requirements_map.except(*input_requirement_ids) - end - - def old_csv - @old_csv ||= File.read(OUTPUT_FILE) - end - - def run - unless File.exist?(INPUT_FILE) - puts "Could not find input file: #{INPUT_FILE}. Aborting requirements coverage generation..." - exit(1) - end - - if unmatched_requirements_map.any? - puts "WARNING: The following requirements indicated in the test kit are not present in #{INPUT_FILE_NAME}" - output_requirements_map_table(unmatched_requirements_map) - end - - if File.exist?(OUTPUT_FILE) - if old_csv == new_csv - puts "'#{OUTPUT_FILE_NAME}' file is up to date." - return - else - puts 'Requirements coverage has changed.' - end - else - puts "No existing #{OUTPUT_FILE_NAME}." - end - - puts "Writing to file #{OUTPUT_FILE}..." - File.write(OUTPUT_FILE, new_csv) - puts 'Done.' - end - - def run_check - unless File.exist?(INPUT_FILE) - puts "Could not find input file: #{INPUT_FILE}. Aborting requirements coverage check..." - exit(1) - end - - if unmatched_requirements_map.any? - puts "The following requirements indicated in the test kit are not present in #{INPUT_FILE_NAME}" - output_requirements_map_table(unmatched_requirements_map) - end - - if File.exist?(OUTPUT_FILE) - if old_csv == new_csv - puts "'#{OUTPUT_FILE_NAME}' file is up to date." - return unless unmatched_requirements_map.any? - else - puts <<~MESSAGE - #{OUTPUT_FILE_NAME} file is out of date. - To regenerate the file, run: - - bundle exec rake requirements:generate_coverage - - MESSAGE - end - else - puts <<~MESSAGE - No existing #{OUTPUT_FILE_NAME} file. - To generate the file, run: - - bundle exec rake requirements:generate_coverage - - MESSAGE - end - - puts 'Check failed.' - exit(1) - end - - def map_group_requirements(group, suite_id, requirements_map) - serialize_requirements(group, group.short_id, suite_id, requirements_map) - group.tests&.each { |test| serialize_requirements(test, test.short_id, suite_id, requirements_map) } - group.groups&.each { |subgroup| map_group_requirements(subgroup, suite_id, requirements_map) } - end - - def serialize_requirements(runnable, short_id, suite_id, requirements_map) - runnable.verifies_requirements&.each do |requirement_id| - requirement_id_string = requirement_id.to_s - - requirements_map[requirement_id_string] ||= [] - requirements_map[requirement_id_string] << { short_id:, full_id: runnable.id, suite_id: } - end - end - - # Output the requirements in the map like so: - # - # requirement_id | short_id | full_id - # ---------------+------------+---------- - # req-id-1 | short-id-1 | full-id-1 - # req-id-2 | short-id-2 | full-id-2 - # - # rubocop:disable Metrics/CyclomaticComplexity - def output_requirements_map_table(requirements_map) - headers = %w[requirement_id short_id full_id] - col_widths = headers.map(&:length) - col_widths[0] = [col_widths[0], requirements_map.keys.map(&:length).max].max - col_widths[1] = ([col_widths[1]] + requirements_map.values.flatten.map { |item| item[:short_id].length }).max - col_widths[2] = ([col_widths[2]] + requirements_map.values.flatten.map { |item| item[:full_id].length }).max - col_widths.map { |width| width + 3 } - - puts [ - headers[0].ljust(col_widths[0]), - headers[1].ljust(col_widths[1]), - headers[2].ljust(col_widths[2]) - ].join(' | ') - puts col_widths.map { |width| '-' * width }.join('-+-') - requirements_map.each do |requirement_id, runnables| - runnables.each do |runnable| - puts [ - requirement_id.ljust(col_widths[0]), - runnable[:short_id].ljust(col_widths[1]), - runnable[:full_id].ljust(col_widths[2]) - ].join(' | ') - end - end - puts - end - # rubocop:enable Metrics/CyclomaticComplexity - end - end -end diff --git a/lib/subscriptions_test_kit.rb b/lib/subscriptions_test_kit.rb index 09dd6bb..e10b5d1 100644 --- a/lib/subscriptions_test_kit.rb +++ b/lib/subscriptions_test_kit.rb @@ -1,4 +1,3 @@ require_relative 'subscriptions_test_kit/metadata' -require_relative 'inferno_requirements_tools/ext/inferno_core/runnable' require_relative 'subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite' require_relative 'subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite' diff --git a/lib/subscriptions_test_kit/requirements/subscriptions-test-kit_out_of_scope_requirements.csv b/lib/subscriptions_test_kit/requirements/subscriptions-test-kit_out_of_scope_requirements.csv deleted file mode 100644 index 5a67412..0000000 --- a/lib/subscriptions_test_kit/requirements/subscriptions-test-kit_out_of_scope_requirements.csv +++ /dev/null @@ -1,23 +0,0 @@ -Req Set,ID,Reason,Details -hl7.fhir.uv.subscriptions_1.1.0,3,Not Verifiable,Not precise enough to be consistently verified -hl7.fhir.uv.subscriptions_1.1.0,4,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, meeting this requirement is simply the absence of other features." -hl7.fhir.uv.subscriptions_1.1.0,18,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,19,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,22,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,33,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,34,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,37,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,41,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,58,Not Tested,Conflicts with requirement 120 and is removed in future versions of the spec. -hl7.fhir.uv.subscriptions_1.1.0,61,Not Verifiable,"In the context of this implementation guide, details on how to receive notifications over a custom channel do not exist." -hl7.fhir.uv.subscriptions_1.1.0,80,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,84,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,88,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, Inferno won't be able to accept non-R4 subscriptions." -hl7.fhir.uv.subscriptions_1.1.0,92,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,100,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,104,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,105,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,117,Not Tested,"MAY requirement, support for which doesn't imply other requirements." -hl7.fhir.uv.subscriptions_1.1.0,123,Not Tested,Used for Websocket channels that Inferno does not currently support -hl7.fhir.uv.subscriptions_1.1.0,131,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided) -hl7.fhir.uv.subscriptions_1.1.0,132,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided) From 5d42683ec4382119fae6dc4f8f564d801647b8c8 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Wed, 11 Jun 2025 16:28:19 -0400 Subject: [PATCH 04/14] generate requirements and coverage csv using new tools --- ...ckport_r4_client_requirements_coverage.csv | 17 ++ ...ckport_r4_server_requirements_coverage.csv | 120 ++++++++ ...r.uv.subscriptions_1.1.0_requirements.xlsx | Bin 82429 -> 83013 bytes .../subscriptions_test_kit_requirements.csv | 280 +++++++++--------- ...bscriptions_r5_backport_r4_client_suite.rb | 8 + ...bscriptions_r5_backport_r4_server_suite.rb | 8 + 6 files changed, 292 insertions(+), 141 deletions(-) create mode 100644 lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv create mode 100644 lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv new file mode 100644 index 0000000..68cbe36 --- /dev/null +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv @@ -0,0 +1,17 @@ +Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Full ID(s) +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,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,23,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To receive notifications via HTTP/S POST, a client should request a subscription with the channel type of rest-hook and set the endpoint to the appropriate client URL.",SHALL,Client,,,,,1.1.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-Group01-subscriptions_r4_client_interaction +hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,,1.2.02,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_event_notification_verification +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 Verifiable,"In the context of this implementation guide, details on how to receive notifications over a custom channel do not exist.",NA,NA +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,,,,,"","" +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 +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" +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 +hl7.fhir.uv.subscriptions_1.1.0,81,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,"Discovering the error state and recovering from it are responsibilities of the subscriber. This includes resetting the Subscription to an active or requested status - a client is responsible for requesting re-activation of a subscription. Note: this is important because a subscriber must make the determination of how to recover from an error state; if a server arbitrarily resets a subscription, a subscriber may not be aware of missing notifications.",SHALL,Client,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,82,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#recovering-from-errors,"Once an application has returned to a functional state, it should request the subscription is reactivated by updating the status to either requested or active as appropriate.",SHALL,Client,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,85,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"During a recovery process, clients MAY try to retrieve missing events via the $events operation, which should allow processing to continue as normal.",MAY,Client,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,86,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used [clients should not put into Subscriptions they create] on R4 subscriptions to describe any elements also described by this guide",SHOULD NOT,Client,,,,,1.3.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_conformance_verification-subscriptions_r4_client_subscription_verification +hl7.fhir.uv.subscriptions_1.1.0,88,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Note that subscription notifications, by default, are made using the same FHIR version as the server. The Subscription.channel.payload element can be used [by clients] to specify a different FHIR version, using syntax and values defined by the MIME Type Parameter.",MAY,Client,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, Inferno won't be able to accept non-R4 subscriptions.",NA,NA +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,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,116,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data. Codes from backport-content-value-set (e.g., empty, id-only, full-resource).",SHALL,Client,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,132,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Client,,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv new file mode 100644 index 0000000..4a8fa1c --- /dev/null +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv @@ -0,0 +1,120 @@ +Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Full ID(s) +hl7.fhir.uv.subscriptions_1.1.0,2,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"In order to allow for discovery of supported subscription topics, this guide defines the CapabilityStatement SubscriptionTopic Canonical extension. The extension allows server implementers to advertise the canonical URLs of topics available to clients and allows clients to see the list of supported topics on a server. The extension is expected to appear, if supported, on the Subscription resource entry. Note that servers are NOT required to advertise supported topics via this extension.",MAY,Server,,,,,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery +hl7.fhir.uv.subscriptions_1.1.0,3,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"Supported topics can also be advertised, for example, by the CapabilityStatement.instantiates or CapabilityStatement.implementationGuide elements of a CapabilityStatement, as defined by another Implementation Guide.",MAY,Server,,,Not Verifiable,Not precise enough to be consistently verified,NA,NA +hl7.fhir.uv.subscriptions_1.1.0,4,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"FHIR R4 servers MAY choose to leave topic discovery completely out-of-band and part of other steps, such as registration or integration.",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, meeting this requirement is simply the absence of other features.",NA,NA +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: + - is capable of detecting when events covered by the requested SubscriptionTopic occur, and + - is willing to make a simple best effort attempt at delivering a notification for each occurrence of a matching event.",SHALL,Server,,,,,"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" +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,,,,,6.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_topic +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,,,,,6.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_filter +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,,,,,6.04,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_type +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,,,,,6.05,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_endpoint +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,,,,,6.06,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_payload_type +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,,,,,6.07,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_payload_combo +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,,,,,"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" +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. +- For the status resource (entry[0]) the request SHALL be filled out to match a request to the $status operation. +- 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,,,,,"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" +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,,,,,"","" +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,19,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 requested (e.g., supported channel and payload, handshake required).",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,20,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the Endpoint responds appropriately, per the channel requirements (e.g., in REST an HTTP Success code such as 200), the Server updates the subscription to active.",SHALL,Server,,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation +hl7.fhir.uv.subscriptions_1.1.0,21,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the handshake fails (e.g., connection failure, bad response, etc.), the Server updates the subscription to error.",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,22,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY reject the Subscription request (e.g., unsupported channel type).",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,,"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" +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,,,,,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" +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,,,,,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" +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,,,,,"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" +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,,,,,"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" +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,,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation +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,,,,,"","" +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,,,,,"","" +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,,"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" +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,,,,,"","" +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,,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 +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,,,,,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 +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,,,,,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 +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,,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 +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,,,,,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 +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,,,,,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 +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,,,,,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 +hl7.fhir.uv.subscriptions_1.1.0,46,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 Subscription resource (read/write).",DEPRECATED,Server,,,,,"","" +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,,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation +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,,,,,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery +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,,,,,"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" +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,,,,,"","" +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,,,,,"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" +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,,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance +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,,,,,"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" +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,,,,,"","" +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,,,,,"","" +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,,,Not Tested,Conflicts with requirement 120 and is removed in future versions of the spec.,NA,NA +hl7.fhir.uv.subscriptions_1.1.0,59,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,Servers supporting this guide SHALL be able to read values present in this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,60,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,A server SHALL reject the subscription request if a client requests an unsupported channel via this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,62,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 and SHALL be able to apply filters as described by any Subscription Topics the server advertises support for.,DEPRECATED,Server,,,,,"","" +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,,,,,"","" +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,,,,,"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" +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,,,,,"","" +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,,,,,"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" +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,,,,,"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" +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,,,,,"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" +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,,,,,"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" +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,,,,,"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" +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,,,,,"","" +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,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,77,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Increment the eventsSinceSubscriptionStart counter internally.,SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,78,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Update the status of the subscription internally.,SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,79,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Continue to respond to $status requests.,SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,80,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server MAY Continue to send heartbeat messages (with an error status set).,MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,83,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers MAY choose to support the $events operation, as defined in this IG.",MAY,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,84,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers which implement the operation MAY use implementation-specific criteria to restrict availability of events (e.g., most recent 10 events, events within the past 30 days, etc.).",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,90,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Servers SHALL look for this [Subscription.channel.payload element] parameter during subscription negotiation and SHALL not accept requests for notification FHIR versions it cannot support (servers MAY reject or coerce, according to their policies)",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,92,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type heartbeat at any time.,MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,93,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If present, a 'hearbeat' notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds.",SHALL,Server,,,,,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance +hl7.fhir.uv.subscriptions_1.1.0,94,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If not present, a heartbeat notification is not sent.",SHALL,Server,,,,,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance +hl7.fhir.uv.subscriptions_1.1.0,95,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.criteria.extension:filterCriteria: When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND).",SHALL,Server,,,,,"","" +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,,,,,"","" +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,,,,,"","" +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,,,,,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 +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,,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 +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,,,,,"","" +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,,,,,"","" +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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,105,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventAdditionalContext.value[x]: MAY refer to non-FHIR objects.,MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,106,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,107,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … multiple values are joined via OR (e.g., ""id1"" OR ""id2"").",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,108,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … In the absence of any specified ids, the server returns the status for all Subscriptions available to the caller.",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,109,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,110,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … Multiple values are joined via OR (e.g., ""error"" OR ""off"").",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,111,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … In the absence of any specified status values, the server does not filter contents based on the status.",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,112,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"return Parameter: The operation returns a bundle containing one or more subscription status resources, one per Subscription being queried. The Bundle type is ""searchset"".",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,113,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type event-notification at any time.,MAY,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,114,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#subscription,[Subscription Resource] Conformance Expectation: SHALL,SHALL,Server,,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance +hl7.fhir.uv.subscriptions_1.1.0,115,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"The [$events] operation returns a valid notification bundle, with the first entry being the subscription status information resource. The bundle type is ""history"".",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,117,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data [from the $events operation]…. This is a hint to the server what a client would prefer, and MAY be ignored.",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,118,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsSinceNumber input indicates] The starting event number, inclusive of this event (lower bound).",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,119,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsUntilNumber input indicates] The ending event number, inclusive of this event (upper bound).",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,120,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"[servers] SHOULD support [profile]: Backported R5 Subscription [NOTE: narrative says SHALL, resource says SHOULD, future versions correct the narrative to SHOULD]",SHOULD,Server,,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance +hl7.fhir.uv.subscriptions_1.1.0,121,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,SHALL support the $status operation,SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,122,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $events operation,MAY,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,123,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $get-ws-binding-token operation,MAY,Server,,,Not Tested,Used for Websocket channels that Inferno does not currently support,NA,NA +hl7.fhir.uv.subscriptions_1.1.0,124,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHALL be capable of returning a Subscription resource using: GET [base]/Subscription/[id],SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of creating a Subscription resource using either: POST [base]/Subscription or PUT [base]/Subscription/[id],SHOULD,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"Search Parameter Summary: SHALL [support] url [narrative says SHOULD, resource says SHALL, future versions correct the narrative to SHALL]",SHALL,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA +hl7.fhir.uv.subscriptions_1.1.0,133,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 Subscription resource (...write).",SHALL,Server,,,,,"1.1.02, 3.1.1.02, 3.2.1.02, 3.3.1.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_notification_delivery, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_notification_delivery, 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_notification_delivery, 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_notification_delivery" +hl7.fhir.uv.subscriptions_1.1.0,134,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 Subscription resource (read...).",SHALL,Server,,,,,"","" +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,,,,,"","" +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,,,,,"","" +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,,,,,"","" +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,,,,,"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" +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,,,,,"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" diff --git a/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx b/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx index 48da28a8aae04d4530e0bb58ded620fa1f971c28..514d1ed936660f6bbc625838bc66b43567aecc85 100644 GIT binary patch delta 31661 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�iPR@LeT9s__ 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 delta 31224 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 Date: Mon, 16 Jun 2025 10:52:22 -0400 Subject: [PATCH 05/14] clean-up requirements --- ...ckport_r4_client_requirements_coverage.csv | 34 +-- ...ckport_r4_server_requirements_coverage.csv | 234 +++++++++--------- ...r.uv.subscriptions_1.1.0_requirements.xlsx | Bin 83013 -> 83013 bytes .../processing_attestation_test.rb | 1 - .../event_notification_verification_test.rb | 3 +- .../subscription_conformance_test.rb | 3 +- 6 files changed, 137 insertions(+), 138 deletions(-) diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv index 68cbe36..d177e75 100644 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv @@ -1,17 +1,17 @@ -Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Full ID(s) -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,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,23,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To receive notifications via HTTP/S POST, a client should request a subscription with the channel type of rest-hook and set the endpoint to the appropriate client URL.",SHALL,Client,,,,,1.1.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-Group01-subscriptions_r4_client_interaction -hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,,1.2.02,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_event_notification_verification -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 Verifiable,"In the context of this implementation guide, details on how to receive notifications over a custom channel do not exist.",NA,NA -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,,,,,"","" -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 -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" -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 -hl7.fhir.uv.subscriptions_1.1.0,81,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,"Discovering the error state and recovering from it are responsibilities of the subscriber. This includes resetting the Subscription to an active or requested status - a client is responsible for requesting re-activation of a subscription. Note: this is important because a subscriber must make the determination of how to recover from an error state; if a server arbitrarily resets a subscription, a subscriber may not be aware of missing notifications.",SHALL,Client,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,82,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#recovering-from-errors,"Once an application has returned to a functional state, it should request the subscription is reactivated by updating the status to either requested or active as appropriate.",SHALL,Client,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,85,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"During a recovery process, clients MAY try to retrieve missing events via the $events operation, which should allow processing to continue as normal.",MAY,Client,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,86,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used [clients should not put into Subscriptions they create] on R4 subscriptions to describe any elements also described by this guide",SHOULD NOT,Client,,,,,1.3.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_conformance_verification-subscriptions_r4_client_subscription_verification -hl7.fhir.uv.subscriptions_1.1.0,88,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Note that subscription notifications, by default, are made using the same FHIR version as the server. The Subscription.channel.payload element can be used [by clients] to specify a different FHIR version, using syntax and values defined by the MIME Type Parameter.",MAY,Client,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, Inferno won't be able to accept non-R4 subscriptions.",NA,NA -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,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,116,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data. Codes from backport-content-value-set (e.g., empty, id-only, full-resource).",SHALL,Client,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,132,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Client,,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA +Req Set,ID,URL,Requirement,Conformance,Actor,Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Full ID(s) +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,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,23,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To receive notifications via HTTP/S POST, a client should request a subscription with the channel type of rest-hook and set the endpoint to the appropriate client URL.",SHALL,Client,,,,1.1.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-Group01-subscriptions_r4_client_interaction +hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,"","" +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 Verifiable,"In the context of this implementation guide, details on how to receive notifications over a custom channel do not exist.",NA,NA +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,,,,"","" +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 +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" +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 +hl7.fhir.uv.subscriptions_1.1.0,81,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,"Discovering the error state and recovering from it are responsibilities of the subscriber. This includes resetting the Subscription to an active or requested status - a client is responsible for requesting re-activation of a subscription. Note: this is important because a subscriber must make the determination of how to recover from an error state; if a server arbitrarily resets a subscription, a subscriber may not be aware of missing notifications.",SHALL,Client,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,82,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#recovering-from-errors,"Once an application has returned to a functional state, it should request the subscription is reactivated by updating the status to either requested or active as appropriate.",SHALL,Client,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,85,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"During a recovery process, clients MAY try to retrieve missing events via the $events operation, which should allow processing to continue as normal.",MAY,Client,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,86,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used [clients should not put into Subscriptions they create] on R4 subscriptions to describe any elements also described by this guide",SHOULD NOT,Client,,,,1.3.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_conformance_verification-subscriptions_r4_client_subscription_verification +hl7.fhir.uv.subscriptions_1.1.0,88,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Note that subscription notifications, by default, are made using the same FHIR version as the server. The Subscription.channel.payload element can be used [by clients] to specify a different FHIR version, using syntax and values defined by the MIME Type Parameter.",MAY,Client,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, Inferno won't be able to accept non-R4 subscriptions.",NA,NA +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,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,116,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data. Codes from backport-content-value-set (e.g., empty, id-only, full-resource).",SHALL,Client,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,132,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Client,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv index 4a8fa1c..ddb5efe 100644 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv @@ -1,120 +1,122 @@ -Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Full ID(s) -hl7.fhir.uv.subscriptions_1.1.0,2,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"In order to allow for discovery of supported subscription topics, this guide defines the CapabilityStatement SubscriptionTopic Canonical extension. The extension allows server implementers to advertise the canonical URLs of topics available to clients and allows clients to see the list of supported topics on a server. The extension is expected to appear, if supported, on the Subscription resource entry. Note that servers are NOT required to advertise supported topics via this extension.",MAY,Server,,,,,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery -hl7.fhir.uv.subscriptions_1.1.0,3,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"Supported topics can also be advertised, for example, by the CapabilityStatement.instantiates or CapabilityStatement.implementationGuide elements of a CapabilityStatement, as defined by another Implementation Guide.",MAY,Server,,,Not Verifiable,Not precise enough to be consistently verified,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,4,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"FHIR R4 servers MAY choose to leave topic discovery completely out-of-band and part of other steps, such as registration or integration.",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, meeting this requirement is simply the absence of other features.",NA,NA +Req Set,ID,URL,Requirement,Conformance,Actor,Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Full ID(s) +hl7.fhir.uv.subscriptions_1.1.0,2,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"In order to allow for discovery of supported subscription topics, this guide defines the CapabilityStatement SubscriptionTopic Canonical extension. The extension allows server implementers to advertise the canonical URLs of topics available to clients and allows clients to see the list of supported topics on a server. The extension is expected to appear, if supported, on the Subscription resource entry. Note that servers are NOT required to advertise supported topics via this extension.",MAY,Server,,,,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery +hl7.fhir.uv.subscriptions_1.1.0,3,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"Supported topics can also be advertised, for example, by the CapabilityStatement.instantiates or CapabilityStatement.implementationGuide elements of a CapabilityStatement, as defined by another Implementation Guide.",MAY,Server,,Not Verifiable,Not precise enough to be consistently verified,NA,NA +hl7.fhir.uv.subscriptions_1.1.0,4,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"FHIR R4 servers MAY choose to leave topic discovery completely out-of-band and part of other steps, such as registration or integration.",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, meeting this requirement is simply the absence of other features.",NA,NA 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: - is capable of detecting when events covered by the requested SubscriptionTopic occur, and - - is willing to make a simple best effort attempt at delivering a notification for each occurrence of a matching event.",SHALL,Server,,,,,"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" -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,,,,,6.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_topic -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,,,,,6.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_filter -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,,,,,6.04,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_type -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,,,,,6.05,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_endpoint -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,,,,,6.06,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_payload_type -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,,,,,6.07,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_payload_combo -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,,,,,"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" + - is willing to make a simple best effort attempt at delivering a notification for each occurrence of a matching event.",SHALL,Server,,,,"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" +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,,,,6.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_topic +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,,,,6.03,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_filter +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,,,,6.04,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_type +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,,,,6.05,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_endpoint +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,,,,6.06,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_payload_type +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,,,,6.07,subscriptions_r5_backport_r4_server-subscriptions_r4_server_subscription_rejection-subscriptions_r4_server_reject_subscription_channel_payload_combo +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,,,,"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" 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. - For the status resource (entry[0]) the request SHALL be filled out to match a request to the $status operation. -- 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,,,,,"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" -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,,,,,"","" -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,19,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 requested (e.g., supported channel and payload, handshake required).",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,20,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the Endpoint responds appropriately, per the channel requirements (e.g., in REST an HTTP Success code such as 200), the Server updates the subscription to active.",SHALL,Server,,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation -hl7.fhir.uv.subscriptions_1.1.0,21,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the handshake fails (e.g., connection failure, bad response, etc.), the Server updates the subscription to error.",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,22,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY reject the Subscription request (e.g., unsupported channel type).",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -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,,,,,"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" -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,,,,,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" -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,,,,,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" -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,,,,,"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" -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,,,,,"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" -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,,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation -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,,,,,"","" -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,,,,,"","" -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -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,,,,,"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" -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,,,,,"","" -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -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,,,,,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 -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,,,,,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 -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,,,,,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 -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -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,,,,,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 -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,,,,,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 -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,,,,,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 -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,,,,,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 -hl7.fhir.uv.subscriptions_1.1.0,46,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 Subscription resource (read/write).",DEPRECATED,Server,,,,,"","" -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,,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation -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,,,,,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery -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,,,,,"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" -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,,,,,"","" -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,,,,,"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" -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,,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance -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,,,,,"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" -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,,,,,"","" -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,,,,,"","" -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,,,Not Tested,Conflicts with requirement 120 and is removed in future versions of the spec.,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,59,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,Servers supporting this guide SHALL be able to read values present in this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,60,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,A server SHALL reject the subscription request if a client requests an unsupported channel via this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,62,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 and SHALL be able to apply filters as described by any Subscription Topics the server advertises support for.,DEPRECATED,Server,,,,,"","" -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,,,,,"","" -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,,,,,"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" -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,,,,,"","" -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,,,,,"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" -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,,,,,"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" -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,,,,,"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" -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,,,,,"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" -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,,,,,"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" -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,,,,,"","" -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,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,77,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Increment the eventsSinceSubscriptionStart counter internally.,SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,78,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Update the status of the subscription internally.,SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,79,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Continue to respond to $status requests.,SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,80,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server MAY Continue to send heartbeat messages (with an error status set).,MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,83,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers MAY choose to support the $events operation, as defined in this IG.",MAY,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,84,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers which implement the operation MAY use implementation-specific criteria to restrict availability of events (e.g., most recent 10 events, events within the past 30 days, etc.).",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,90,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Servers SHALL look for this [Subscription.channel.payload element] parameter during subscription negotiation and SHALL not accept requests for notification FHIR versions it cannot support (servers MAY reject or coerce, according to their policies)",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,92,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type heartbeat at any time.,MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,93,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If present, a 'hearbeat' notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds.",SHALL,Server,,,,,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance -hl7.fhir.uv.subscriptions_1.1.0,94,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If not present, a heartbeat notification is not sent.",SHALL,Server,,,,,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance -hl7.fhir.uv.subscriptions_1.1.0,95,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.criteria.extension:filterCriteria: When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND).",SHALL,Server,,,,,"","" -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,,,,,"","" -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,,,,,"","" -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,,,,,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 -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -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,,,,,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 -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,,,,,"","" -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,,,,,"","" -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,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,105,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventAdditionalContext.value[x]: MAY refer to non-FHIR objects.,MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,106,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,107,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … multiple values are joined via OR (e.g., ""id1"" OR ""id2"").",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,108,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … In the absence of any specified ids, the server returns the status for all Subscriptions available to the caller.",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,109,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,110,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … Multiple values are joined via OR (e.g., ""error"" OR ""off"").",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,111,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … In the absence of any specified status values, the server does not filter contents based on the status.",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,112,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"return Parameter: The operation returns a bundle containing one or more subscription status resources, one per Subscription being queried. The Bundle type is ""searchset"".",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,113,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type event-notification at any time.,MAY,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,114,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#subscription,[Subscription Resource] Conformance Expectation: SHALL,SHALL,Server,,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance -hl7.fhir.uv.subscriptions_1.1.0,115,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"The [$events] operation returns a valid notification bundle, with the first entry being the subscription status information resource. The bundle type is ""history"".",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,117,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data [from the $events operation]…. This is a hint to the server what a client would prefer, and MAY be ignored.",MAY,Server,,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA -hl7.fhir.uv.subscriptions_1.1.0,118,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsSinceNumber input indicates] The starting event number, inclusive of this event (lower bound).",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,119,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsUntilNumber input indicates] The ending event number, inclusive of this event (upper bound).",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,120,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"[servers] SHOULD support [profile]: Backported R5 Subscription [NOTE: narrative says SHALL, resource says SHOULD, future versions correct the narrative to SHOULD]",SHOULD,Server,,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance -hl7.fhir.uv.subscriptions_1.1.0,121,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,SHALL support the $status operation,SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,122,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $events operation,MAY,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,123,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $get-ws-binding-token operation,MAY,Server,,,Not Tested,Used for Websocket channels that Inferno does not currently support,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,124,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHALL be capable of returning a Subscription resource using: GET [base]/Subscription/[id],SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of creating a Subscription resource using either: POST [base]/Subscription or PUT [base]/Subscription/[id],SHOULD,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"Search Parameter Summary: SHALL [support] url [narrative says SHOULD, resource says SHALL, future versions correct the narrative to SHALL]",SHALL,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA -hl7.fhir.uv.subscriptions_1.1.0,133,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 Subscription resource (...write).",SHALL,Server,,,,,"1.1.02, 3.1.1.02, 3.2.1.02, 3.3.1.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_notification_delivery, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_notification_delivery, 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_notification_delivery, 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_notification_delivery" -hl7.fhir.uv.subscriptions_1.1.0,134,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 Subscription resource (read...).",SHALL,Server,,,,,"","" -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,,,,,"","" -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,,,,,"","" -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,,,,,"","" -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,,,,,"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" -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,,,,,"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" +- 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,,,,"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" +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,,,,"","" +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,19,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 requested (e.g., supported channel and payload, handshake required).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,20,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the Endpoint responds appropriately, per the channel requirements (e.g., in REST an HTTP Success code such as 200), the Server updates the subscription to active.",SHALL,Server,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation +hl7.fhir.uv.subscriptions_1.1.0,21,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the handshake fails (e.g., connection failure, bad response, etc.), the Server updates the subscription to error.",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,22,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY reject the Subscription request (e.g., unsupported channel type).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,"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" +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,,,,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" +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,,,,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" +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,,,,"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" +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,,,,"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" +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,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation +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,,,,"","" +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,,,,"","" +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,"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" +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,,,,"","" +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,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 +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,,,,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 +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,,,,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 +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,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 +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,,,,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 +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,,,,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 +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,,,,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 +hl7.fhir.uv.subscriptions_1.1.0,46,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 Subscription resource (read/write).",DEPRECATED,Server,,,,"","" +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,,,,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation +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,,,,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery +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,,,,"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" +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,,,,"","" +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,,,,"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" +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,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance +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,,,,"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" +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,,,,"","" +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,,,,"","" +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,,Not Tested,Conflicts with requirement 120 and is removed in future versions of the spec.,NA,NA +hl7.fhir.uv.subscriptions_1.1.0,59,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,Servers supporting this guide SHALL be able to read values present in this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,60,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,A server SHALL reject the subscription request if a client requests an unsupported channel via this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,62,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 and SHALL be able to apply filters as described by any Subscription Topics the server advertises support for.,DEPRECATED,Server,,,,"","" +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,,,,"","" +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,,,,"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" +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,,,,"","" +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,,,,"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" +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,,,,"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" +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,,,,"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" +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,,,,"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" +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,,,,"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" +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,,,,"","" +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,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,77,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Increment the eventsSinceSubscriptionStart counter internally.,SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,78,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Update the status of the subscription internally.,SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,79,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Continue to respond to $status requests.,SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,80,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server MAY Continue to send heartbeat messages (with an error status set).,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,83,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers MAY choose to support the $events operation, as defined in this IG.",MAY,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,84,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers which implement the operation MAY use implementation-specific criteria to restrict availability of events (e.g., most recent 10 events, events within the past 30 days, etc.).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,90,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Servers SHALL look for this [Subscription.channel.payload element] parameter during subscription negotiation and SHALL not accept requests for notification FHIR versions it cannot support (servers MAY reject or coerce, according to their policies)",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,92,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type heartbeat at any time.,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,93,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If present, a 'hearbeat' notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds.",SHALL,Server,,,,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance +hl7.fhir.uv.subscriptions_1.1.0,94,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If not present, a heartbeat notification is not sent.",SHALL,Server,,,,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance +hl7.fhir.uv.subscriptions_1.1.0,95,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.criteria.extension:filterCriteria: When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND).",SHALL,Server,,,,"","" +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,,,,"","" +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,,,,"","" +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,,,,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 +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +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,,,,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 +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,,,,"","" +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,,,,"","" +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,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,105,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventAdditionalContext.value[x]: MAY refer to non-FHIR objects.,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,106,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,107,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … multiple values are joined via OR (e.g., ""id1"" OR ""id2"").",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,108,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … In the absence of any specified ids, the server returns the status for all Subscriptions available to the caller.",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,109,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,110,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … Multiple values are joined via OR (e.g., ""error"" OR ""off"").",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,111,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … In the absence of any specified status values, the server does not filter contents based on the status.",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,112,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"return Parameter: The operation returns a bundle containing one or more subscription status resources, one per Subscription being queried. The Bundle type is ""searchset"".",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,113,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type event-notification at any time.,MAY,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,114,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#subscription,[Subscription Resource] Conformance Expectation: SHALL,SHALL,Server,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance +hl7.fhir.uv.subscriptions_1.1.0,115,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"The [$events] operation returns a valid notification bundle, with the first entry being the subscription status information resource. The bundle type is ""history"".",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,117,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data [from the $events operation]…. This is a hint to the server what a client would prefer, and MAY be ignored.",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA +hl7.fhir.uv.subscriptions_1.1.0,118,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsSinceNumber input indicates] The starting event number, inclusive of this event (lower bound).",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,119,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsUntilNumber input indicates] The ending event number, inclusive of this event (upper bound).",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,120,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"[servers] SHOULD support [profile]: Backported R5 Subscription [NOTE: narrative says SHALL, resource says SHOULD, future versions correct the narrative to SHOULD]",SHOULD,Server,,,,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance +hl7.fhir.uv.subscriptions_1.1.0,121,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,SHALL support the $status operation,SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,122,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $events operation,MAY,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,123,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $get-ws-binding-token operation,MAY,Server,,Not Tested,Used for Websocket channels that Inferno does not currently support,NA,NA +hl7.fhir.uv.subscriptions_1.1.0,124,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHALL be capable of returning a Subscription resource using: GET [base]/Subscription/[id],SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of creating a Subscription resource using either: POST [base]/Subscription or PUT [base]/Subscription/[id],SHOULD,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"Search Parameter Summary: SHALL [support] url [narrative says SHOULD, resource says SHALL, future versions correct the narrative to SHALL]",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA +hl7.fhir.uv.subscriptions_1.1.0,133,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 Subscription resource (...write).",SHALL,Server,,,,"1.1.02, 3.1.1.02, 3.2.1.02, 3.3.1.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_notification_delivery, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_notification_delivery, 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_notification_delivery, 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_notification_delivery" +hl7.fhir.uv.subscriptions_1.1.0,134,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 Subscription resource (read...).",SHALL,Server,,,,"","" +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,,,,"","" +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,,,,"","" +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,,,,"","" +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,,,,"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" +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,,,,"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" +hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,4.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance +hl7.fhir.uv.subscriptions_1.1.0,86,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used [clients should not put into Subscriptions they create] on R4 subscriptions to describe any elements also described by this guide",SHOULD NOT,Client,,,,"","" diff --git a/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx b/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx index 514d1ed936660f6bbc625838bc66b43567aecc85..b6696f495ec34f1a2ad40e2b58519f76ccf080dd 100644 GIT binary patch delta 6593 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 e#w`J0A^Yd}{}m-(_`mM0sjXw-)B4k delta 6643 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 Date: Mon, 16 Jun 2025 11:15:01 -0400 Subject: [PATCH 06/14] requirement fix --- ...bscriptions_r5_backport_r4_client_requirements_coverage.csv | 2 +- ...bscriptions_r5_backport_r4_server_requirements_coverage.csv | 2 -- .../event_notification_verification_test.rb | 3 ++- .../handshake_heartbeat/handshake_conformance_test.rb | 1 - 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv index d177e75..b37f7d0 100644 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_client_requirements_coverage.csv @@ -1,7 +1,7 @@ Req Set,ID,URL,Requirement,Conformance,Actor,Conditionality,Not Tested Reason,Not Tested Details,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Full ID(s) 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,,,,"","" hl7.fhir.uv.subscriptions_1.1.0,23,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To receive notifications via HTTP/S POST, a client should request a subscription with the channel type of rest-hook and set the endpoint to the appropriate client URL.",SHALL,Client,,,,1.1.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-Group01-subscriptions_r4_client_interaction -hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,1.2.02,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_event_notification_verification 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 Verifiable,"In the context of this implementation guide, details on how to receive notifications over a custom channel do not exist.",NA,NA 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,,,,"","" 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 diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv index ddb5efe..c228880 100644 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv @@ -118,5 +118,3 @@ hl7.fhir.uv.subscriptions_1.1.0,136,https://hl7.org/fhir/uv/subscriptions-backpo 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,,,,"","" 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,,,,"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" 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,,,,"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" -hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,,4.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance -hl7.fhir.uv.subscriptions_1.1.0,86,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used [clients should not put into Subscriptions they create] on R4 subscriptions to describe any elements also described by this guide",SHOULD NOT,Client,,,,"","" diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_verification/event_notification_verification_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_verification/event_notification_verification_test.rb index 4c86299..041a42f 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_verification/event_notification_verification_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_verification/event_notification_verification_test.rb @@ -13,7 +13,8 @@ class EventNotificationVerificationTest < Inferno::Test This test verifies that the client's response to the event notification was conformant. ) - verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@71' + verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@24', + 'hl7.fhir.uv.subscriptions_1.1.0@71' run do load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG) diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/handshake_conformance_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/handshake_conformance_test.rb index ff70b05..362c9fa 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/handshake_conformance_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/handshake_heartbeat/handshake_conformance_test.rb @@ -23,7 +23,6 @@ class HandshakeConformanceTest < Inferno::Test 'hl7.fhir.uv.subscriptions_1.1.0@28', 'hl7.fhir.uv.subscriptions_1.1.0@69', 'hl7.fhir.uv.subscriptions_1.1.0@70', - 'hl7.fhir.uv.subscriptions_1.1.0@24', 'hl7.fhir.uv.subscriptions_1.1.0@25', 'hl7.fhir.uv.subscriptions_1.1.0@138', 'hl7.fhir.uv.subscriptions_1.1.0@139' From a335b62be6d30dbdc1fa24594528b51a7c33cb21 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Mon, 16 Jun 2025 11:15:43 -0400 Subject: [PATCH 07/14] update github workflow for requirements check --- .github/workflows/ruby.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 9cc4781..d88c163 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -66,7 +66,5 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - - name: Create Database - run: bundle exec inferno migrate - name: Check Coverage - run: bundle exec rake requirements:check_coverage + run: bundle exec rake requirements check_coverage From 2649bf23801c85d4619c5e766dcadf70fc7db1c5 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Mon, 16 Jun 2025 11:22:23 -0400 Subject: [PATCH 08/14] fix github workflow --- .github/workflows/ruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index d88c163..c4cd877 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -67,4 +67,4 @@ jobs: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Check Coverage - run: bundle exec rake requirements check_coverage + run: bundle exec inferno requirements check_coverage From 588197b9a0542e98e3b1d1a49f17d3265a88fe2c Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Tue, 17 Jun 2025 09:29:25 -0400 Subject: [PATCH 09/14] enable requirements UI, bump core, add req verification to github workflows --- .env.development | 3 +- .env.production | 3 +- .env.test | 1 + .github/workflows/ruby.yml | 6 +- Gemfile.lock | 127 ++++++++++-------- ...r.uv.subscriptions_1.1.0_requirements.xlsx | Bin 83013 -> 75159 bytes subscriptions_test_kit.gemspec | 2 +- 7 files changed, 80 insertions(+), 62 deletions(-) diff --git a/.env.development b/.env.development index e8690f6..5e78f06 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1,3 @@ FHIR_RESOURCE_VALIDATOR_URL=http://localhost/hl7validatorapi -REDIS_URL=redis://localhost:6379/0 \ No newline at end of file +REDIS_URL=redis://localhost:6379/0 +ENABLE_REQUIREMENTS=true \ No newline at end of file diff --git a/.env.production b/.env.production index 719b168..57af30e 100644 --- a/.env.production +++ b/.env.production @@ -1,2 +1,3 @@ REDIS_URL=redis://redis:6379/0 -FHIR_RESOURCE_VALIDATOR_URL=http://hl7_validator_service:3500 \ No newline at end of file +FHIR_RESOURCE_VALIDATOR_URL=http://hl7_validator_service:3500 +ENABLE_REQUIREMENTS=true \ No newline at end of file diff --git a/.env.test b/.env.test index 1545bfc..7c80584 100644 --- a/.env.test +++ b/.env.test @@ -1,2 +1,3 @@ FHIR_RESOURCE_VALIDATOR_URL=https://example.com/validatorapi ASYNC_JOBS=false +ENABLE_REQUIREMENTS=true \ No newline at end of file diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index c4cd877..7cd8713 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -53,7 +53,7 @@ jobs: - name: Rubocop run: bundle exec rubocop - requirements-coverage: + requirements: needs: build runs-on: ubuntu-latest strategy: @@ -66,5 +66,7 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - name: Check Export + run: bundle exec rake requirements check - name: Check Coverage - run: bundle exec inferno requirements check_coverage + run: bundle exec rake requirements check_coverage diff --git a/Gemfile.lock b/Gemfile.lock index 149650b..189dc69 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,7 +2,7 @@ PATH remote: . specs: subscriptions_test_kit (0.11.1) - inferno_core (~> 0.6.4) + inferno_core (~> 0.6.12) GEM remote: https://rubygems.org/ @@ -15,17 +15,17 @@ GEM zeitwerk (~> 2.3) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - ast (2.4.2) + ast (2.4.3) base62-rb (0.3.1) - base64 (0.2.0) + base64 (0.3.0) bcp47 (0.3.3) i18n - bigdecimal (3.1.9) + bigdecimal (3.2.2) blueprinter (0.25.2) byebug (12.0.0) coderay (1.1.3) concurrent-ruby (1.3.4) - connection_pool (2.5.0) + connection_pool (2.5.3) crack (1.0.0) bigdecimal rexml @@ -33,11 +33,12 @@ GEM database_cleaner-sequel (1.99.0) database_cleaner (~> 1.99.0) sequel + date (3.4.1) date_time_precision (0.8.1) - debug (1.9.2) + debug (1.10.0) irb (~> 1.10) reline (>= 0.3.8) - diff-lcs (1.5.1) + diff-lcs (1.6.2) domain_name (0.6.20240107) dotenv (2.8.1) dry-auto_inject (1.0.1) @@ -59,8 +60,9 @@ GEM dry-inflector (~> 1.0, < 2) dry-transformer (1.0.1) zeitwerk (~> 2.6) - factory_bot (6.4.6) - activesupport (>= 5.0.0) + erb (5.0.1) + factory_bot (6.5.4) + activesupport (>= 6.1.0) faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -127,13 +129,13 @@ GEM dry-core (~> 1.0, < 2) dry-transformer (~> 1.0, < 2) hansi (0.2.1) - hashdiff (1.1.0) + hashdiff (1.2.0) http-accept (1.7.0) http-cookie (1.0.8) domain_name (~> 0.5) i18n (1.14.7) concurrent-ruby (~> 1.0) - inferno_core (0.6.8) + inferno_core (0.6.12) activesupport (~> 6.1.7.5) base62-rb (= 0.3.1) blueprinter (= 0.25.2) @@ -156,31 +158,34 @@ GEM pry-byebug puma (~> 5.6.7) rake (~> 13.0) + roo (~> 2.10.1) sequel (~> 5.42.0) sidekiq (~> 7.2.4) sqlite3 (~> 1.4) thor (~> 1.2.1) tty-markdown (~> 0.7.1) - io-console (0.7.2) - irb (1.13.1) + io-console (0.8.0) + irb (1.15.2) + pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.7.2) + json (2.12.2) jwt (2.10.1) base64 kramdown (2.5.1) rexml (>= 3.3.9) - language_server-protocol (3.17.0.3) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) logger (1.7.0) method_source (1.1.0) - mime-types (3.6.2) + mime-types (3.7.0) logger - mime-types-data (~> 3.2015) - mime-types-data (3.2025.0402) - mini_portile2 (2.8.8) + mime-types-data (~> 3.2025, >= 3.2025.0507) + mime-types-data (3.2025.0610) + mini_portile2 (2.8.9) minitest (5.25.5) multi_json (1.15.0) - multi_xml (0.7.1) + multi_xml (0.7.2) bigdecimal (~> 3.1) multipart-post (2.4.1) mustermann (1.1.2) @@ -190,18 +195,18 @@ GEM mustermann (= 1.1.2) netrc (0.11.0) nio4r (2.7.4) - nokogiri (1.18.7) + nokogiri (1.18.8) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.18.7-aarch64-linux-gnu) + nokogiri (1.18.8-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.7-arm-linux-gnu) + nokogiri (1.18.8-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.7-arm64-darwin) + nokogiri (1.18.8-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.7-x86_64-darwin) + nokogiri (1.18.8-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.7-x86_64-linux-gnu) + nokogiri (1.18.8-x86_64-linux-gnu) racc (~> 1.4) oauth2 (1.4.11) faraday (>= 0.17.3, < 3.0) @@ -210,35 +215,41 @@ GEM multi_xml (~> 0.5) rack (>= 1.2, < 4) oj (3.11.0) - parallel (1.25.1) - parser (3.3.4.0) + parallel (1.27.0) + parser (3.3.8.0) ast (~> 2.4.1) racc pastel (0.8.0) tty-color (~> 0.5) + pp (0.6.2) + prettyprint + prettyprint (0.2.0) + prism (1.4.0) pry (0.15.2) coderay (~> 1.1) method_source (~> 1.0) pry-byebug (3.11.0) byebug (~> 12.0) pry (>= 0.13, < 0.16) - psych (5.1.2) + psych (5.2.6) + date stringio - public_suffix (6.0.1) + public_suffix (6.0.2) puma (5.6.9) nio4r (~> 2.0) racc (1.8.1) - rack (2.2.13) - rack-test (2.1.0) + rack (2.2.17) + rack-test (2.2.0) rack (>= 1.3) rainbow (3.1.1) - rake (13.2.1) - rdoc (6.7.0) + rake (13.3.0) + rdoc (6.14.0) + erb psych (>= 4.0.0) - redis-client (0.24.0) + redis-client (0.25.0) connection_pool - regexp_parser (2.9.2) - reline (0.5.8) + regexp_parser (2.10.0) + reline (0.6.1) io-console (~> 0.5) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -249,40 +260,42 @@ GEM roo (2.10.1) nokogiri (~> 1) rubyzip (>= 1.3.0, < 3.0.0) - rouge (4.5.1) - rspec (3.13.0) + rouge (4.5.2) + rspec (3.13.1) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.0) + rspec-core (3.13.4) rspec-support (~> 3.13.0) - rspec-expectations (3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) + rspec-mocks (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rubocop (1.65.0) + rspec-support (3.13.4) + rubocop (1.76.2) json (~> 2.3) - language_server-protocol (>= 3.17.0) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.4, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.31.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.45.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.31.3) - parser (>= 3.3.1.0) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.45.1) + parser (>= 3.3.7.2) + prism (~> 1.4) rubocop-rake (0.6.0) rubocop (~> 1.0) - rubocop-rspec (3.0.3) - rubocop (~> 1.61) + rubocop-rspec (3.6.0) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) - rubyzip (2.3.2) + rubyzip (2.4.1) sequel (5.42.0) sidekiq (7.2.4) concurrent-ruby (< 2) @@ -297,7 +310,7 @@ GEM sqlite3 (1.7.3-x86-linux) sqlite3 (1.7.3-x86_64-darwin) sqlite3 (1.7.3-x86_64-linux) - stringio (3.1.0) + stringio (3.1.7) strings (0.2.1) strings-ansi (~> 0.2) unicode-display_width (>= 1.5, < 3.0) @@ -318,11 +331,11 @@ GEM concurrent-ruby (~> 1.0) unicode-display_width (2.6.0) unicode_utils (1.4.0) - webmock (3.23.1) + webmock (3.25.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - zeitwerk (2.7.2) + zeitwerk (2.7.3) PLATFORMS aarch64-linux diff --git a/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx b/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx index b6696f495ec34f1a2ad40e2b58519f76ccf080dd..b62f4a013bd49efa0988dbc360399376df29a5f9 100644 GIT binary patch delta 54174 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 z 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
Xzh$ z!6YEXe-0FQ4+*GB3W3OmE08ck6b2LcM+&tD!H-BlUaHg*t3A&GgV{q$;{T-(a4_?W zh$yIy0z@<4$P4oRBfKL5uA%^h)Rja+%pvH$Is+Jt?;kPLN|pjO(SVFpb>Eq0t_v_& zcQgPw^Y4Rt1oTA%rYzhsnKDHPkcI&SGYv@p9z`=2+(iSwu{6g)8j_jxVs6mS1Q3+^ z&o=cu|BF~7ejjnU2_P!cjdhV19i-Rqx;nt zbTb3QSntqbV1yYU5C12vVKBje&kQVR6$Un#0miJjbr`s51{s4GBf;9W0Rs)p0W`}F z3=A^|kSyK@!MeTkLt*f%Ibh6^BnoO`04tXCLwjd2FcSmlu-rTR^I{SLyvH&A|6)O* cBmlM;K^~}E00;QtFgUCdif1nzq7>}^0K#=cod5s; delta 61748 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�DP}V=# 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 ZhzMU<4j$p99TdP@5J- 0.6.4' + spec.add_dependency 'inferno_core', '~> 0.6.12' spec.required_ruby_version = Gem::Requirement.new('>= 3.3.6') spec.metadata['inferno_test_kit'] = 'true' spec.metadata['homepage_uri'] = spec.homepage From 7d09de5d91c0886fbcd88d1f95fd995b4646725e Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Tue, 17 Jun 2025 09:31:18 -0400 Subject: [PATCH 10/14] fix workflow --- .github/workflows/ruby.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 7cd8713..afac92d 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -67,6 +67,6 @@ jobs: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Check Export - run: bundle exec rake requirements check + run: bundle exec inferno requirements check - name: Check Coverage - run: bundle exec rake requirements check_coverage + run: bundle exec inferno requirements check_coverage From be86138f92d0b9e590578b228398f7f7ffe7ad6d Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Tue, 17 Jun 2025 09:45:47 -0400 Subject: [PATCH 11/14] rubocop fixes --- .../common/notification_conformance_verification.rb | 2 +- .../endpoints/subscription_create_endpoint.rb | 2 +- .../jobs/send_subscription_notifications.rb | 4 +++- .../common/subscription_simulation_utils.rb | 4 +++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/subscriptions_test_kit/common/notification_conformance_verification.rb b/lib/subscriptions_test_kit/common/notification_conformance_verification.rb index 77e1f12..98bcddf 100644 --- a/lib/subscriptions_test_kit/common/notification_conformance_verification.rb +++ b/lib/subscriptions_test_kit/common/notification_conformance_verification.rb @@ -102,7 +102,7 @@ def empty_notification_event_references(notification_events) empty_req_check = true notification_events.each do |notification_event| empty_req_check = notification_event.part.none? do |part| - part.name == 'focus' || part.name == 'additional-context' + ['focus', 'additional-context'].include?(part.name) end break unless empty_req_check end diff --git a/lib/subscriptions_test_kit/endpoints/subscription_create_endpoint.rb b/lib/subscriptions_test_kit/endpoints/subscription_create_endpoint.rb index 67199b7..1021ab5 100644 --- a/lib/subscriptions_test_kit/endpoints/subscription_create_endpoint.rb +++ b/lib/subscriptions_test_kit/endpoints/subscription_create_endpoint.rb @@ -79,7 +79,7 @@ def verify_subscription(subscription) end def find_heartbeat_period(subscription) - subscription&.channel&.extension&.find do |e| + subscription.channel&.extension&.find do |e| e.url == 'http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period' end end diff --git a/lib/subscriptions_test_kit/jobs/send_subscription_notifications.rb b/lib/subscriptions_test_kit/jobs/send_subscription_notifications.rb index 00e8704..6fa9af1 100644 --- a/lib/subscriptions_test_kit/jobs/send_subscription_notifications.rb +++ b/lib/subscriptions_test_kit/jobs/send_subscription_notifications.rb @@ -64,7 +64,9 @@ def content_type_header end def subscription_headers - @subscription_headers ||= subscription&.channel&.header&.each_with_object({}) do |header, hash| + return {} unless subscription.present? + + @subscription_headers ||= subscription.channel&.header&.each_with_object({}) do |header, hash| header_name, header_value = header.split(': ', 2) hash[header_name] = header_value end || {} diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/common/subscription_simulation_utils.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/common/subscription_simulation_utils.rb index a036d09..028987c 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/common/subscription_simulation_utils.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/common/subscription_simulation_utils.rb @@ -116,7 +116,9 @@ def notification_subscription_id(notification_json) notification_bundle = FHIR.from_contents(notification_json) subscription_status = find_subscription_status_entry(notification_bundle)&.resource subscription_url = find_parameter(subscription_status, 'subscription')&.valueReference - subscription_url&.reference&.chomp('/')&.split('/')&.last + return unless subscription_url&.reference.present? + + subscription_url.reference.chomp('/').split('/').last end def update_subscription_status(notification_bundle, subscription_url, subscription_topic, status_code, From 9509d8cf16cbddf9c2c55a38cbef63674475cdcc Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Tue, 17 Jun 2025 09:47:43 -0400 Subject: [PATCH 12/14] fix export --- .../requirements/subscriptions_test_kit_requirements.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv b/lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv index 002c429..8628399 100644 --- a/lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv +++ b/lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv @@ -130,7 +130,7 @@ hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backpo hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,, hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,, hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,, -hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"Search Parameter Summary: SHALL [support] url [narrative says SHOULD, resource says SHALL, future versions correct the narrative to SHALL]",SHALL,Server,,,, +hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHALL [support] url,SHALL,Server,,,, hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,, hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided) hl7.fhir.uv.subscriptions_1.1.0,132,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Client,,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided) From 4966848b15e8b5749b1e1ada35ef52753a20e220 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Tue, 17 Jun 2025 09:49:30 -0400 Subject: [PATCH 13/14] fix coverage --- ...ubscriptions_r5_backport_r4_server_requirements_coverage.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv index c228880..b03215c 100644 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv @@ -108,7 +108,7 @@ hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backpo hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,,"","" hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,,"","" hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,,"","" -hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"Search Parameter Summary: SHALL [support] url [narrative says SHOULD, resource says SHALL, future versions correct the narrative to SHALL]",SHALL,Server,,,,"","" +hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHALL [support] url,SHALL,Server,,,,"","" hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,,"","" hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA hl7.fhir.uv.subscriptions_1.1.0,133,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 Subscription resource (...write).",SHALL,Server,,,,"1.1.02, 3.1.1.02, 3.2.1.02, 3.3.1.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_notification_delivery, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_notification_delivery, 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_notification_delivery, 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_notification_delivery" From 4709f0df7411f1d1b6b42f0aa2bdd75b5d0085ea Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Tue, 17 Jun 2025 21:05:07 -0400 Subject: [PATCH 14/14] remove old coverage file --- ...iptions-test-kit_requirements_coverage.csv | 136 ------------------ 1 file changed, 136 deletions(-) delete mode 100644 lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv diff --git a/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv deleted file mode 100644 index 29471cc..0000000 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv +++ /dev/null @@ -1,136 +0,0 @@ -Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality,Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Client Test Suite Full ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Short ID(s),Subscriptions R5 Backport IG v1.1.0 FHIR R4 Server Test Suite Full ID(s) -hl7.fhir.uv.subscriptions_1.1.0,2,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"In order to allow for discovery of supported subscription topics, this guide defines the CapabilityStatement SubscriptionTopic Canonical extension. The extension allows server implementers to advertise the canonical URLs of topics available to clients and allows clients to see the list of supported topics on a server. The extension is expected to appear, if supported, on the Subscription resource entry. Note that servers are NOT required to advertise supported topics via this extension.",MAY,Server,,,NA,NA,2.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_topic_discovery -hl7.fhir.uv.subscriptions_1.1.0,3,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"Supported topics can also be advertised, for example, by the CapabilityStatement.instantiates or CapabilityStatement.implementationGuide elements of a CapabilityStatement, as defined by another Implementation Guide.",MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,4,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"FHIR R4 servers MAY choose to leave topic discovery completely out-of-band and part of other steps, such as registration or integration.",MAY,Server,,,NA,NA,Not Tested,Not Tested -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: - - is capable of detecting when events covered by the requested SubscriptionTopic occur, and - - 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" -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 -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 -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 -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 -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 -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 -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" -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. -- For the status resource (entry[0]) the request SHALL be filled out to match a request to the $status operation. -- 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" -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,, -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 -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 -hl7.fhir.uv.subscriptions_1.1.0,19,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 requested (e.g., supported channel and payload, handshake required).",MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,20,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the Endpoint responds appropriately, per the channel requirements (e.g., in REST an HTTP Success code such as 200), the Server updates the subscription to active.",SHALL,Server,,,NA,NA,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation -hl7.fhir.uv.subscriptions_1.1.0,21,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the handshake fails (e.g., connection failure, bad response, etc.), the Server updates the subscription to error.",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,22,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY reject the Subscription request (e.g., unsupported channel type).",MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,23,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To receive notifications via HTTP/S POST, a client should request a subscription with the channel type of rest-hook and set the endpoint to the appropriate client URL.",SHALL,Client,,,1.1.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-Group01-subscriptions_r4_client_interaction,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,1.2.02,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_event_notification_verification,NA,NA -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" -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,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" -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,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.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_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_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance" -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" -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" -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 -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,, -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,, -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 -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 -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" -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,, -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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" -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,, -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" -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 -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" -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,, -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,, -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 -hl7.fhir.uv.subscriptions_1.1.0,59,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,Servers supporting this guide SHALL be able to read values present in this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element. ,SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,60,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,A server SHALL reject the subscription request if a client requests an unsupported channel via this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,NA,NA,, -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 -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,, -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 -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" -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,, -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" -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 -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" -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" -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 -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" -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" -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,, -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,, -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 -hl7.fhir.uv.subscriptions_1.1.0,77,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Increment the eventsSinceSubscriptionStart counter internally.,SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,78,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Update the status of the subscription internally.,SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,79,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Continue to respond to $status requests.,SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,80,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server MAY Continue to send heartbeat messages (with an error status set).,MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,81,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,"Discovering the error state and recovering from it are responsibilities of the subscriber. This includes resetting the Subscription to an active or requested status - a client is responsible for requesting re-activation of a subscription. Note: this is important because a subscriber must make the determination of how to recover from an error state; if a server arbitrarily resets a subscription, a subscriber may not be aware of missing notifications.",SHALL,Client,,,,,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,82,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#recovering-from-errors,"Once an application has returned to a functional state, it should request the subscription is reactivated by updating the status to either requested or active as appropriate.",SHALL,Client,,,,,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,83,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers MAY choose to support the $events operation, as defined in this IG.",MAY,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,84,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers which implement the operation MAY use implementation-specific criteria to restrict availability of events (e.g., most recent 10 events, events within the past 30 days, etc.).",MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,85,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"During a recovery process, clients MAY try to retrieve missing events via the $events operation, which should allow processing to continue as normal.",MAY,Client,,,,,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,86,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used [clients should not put into Subscriptions they create] on R4 subscriptions to describe any elements also described by this guide",SHOULD NOT,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 -hl7.fhir.uv.subscriptions_1.1.0,88,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Note that subscription notifications, by default, are made using the same FHIR version as the server. The Subscription.channel.payload element can be used [by clients] to specify a different FHIR version, using syntax and values defined by the MIME Type Parameter.",MAY,Client,,,Not Tested,Not Tested,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,90,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Servers SHALL look for this [Subscription.channel.payload element] parameter during subscription negotiation and SHALL not accept requests for notification FHIR versions it cannot support (servers MAY reject or coerce, according to their policies)",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,92,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type heartbeat at any time.,MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,93,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If present, a 'hearbeat' notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds. ",SHALL,Server,,,NA,NA,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance -hl7.fhir.uv.subscriptions_1.1.0,94,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If not present, a heartbeat notification is not sent.",SHALL,Server,,,NA,NA,4.02,subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance -hl7.fhir.uv.subscriptions_1.1.0,95,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.criteria.extension:filterCriteria: When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND). ",SHALL,Server,,,NA,NA,, -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 -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,, -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,, -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 -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 -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 -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,, -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,, -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 -hl7.fhir.uv.subscriptions_1.1.0,105,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventAdditionalContext.value[x]: MAY refer to non-FHIR objects.,MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,106,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,107,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … multiple values are joined via OR (e.g., ""id1"" OR ""id2"").",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,108,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … In the absence of any specified ids, the server returns the status for all Subscriptions available to the caller.",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,109,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,110,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … Multiple values are joined via OR (e.g., ""error"" OR ""off"").",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,111,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … In the absence of any specified status values, the server does not filter contents based on the status.",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,112,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"return Parameter: The operation returns a bundle containing one or more subscription status resources, one per Subscription being queried. The Bundle type is ""searchset"".",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,113,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type event-notification at any time.,MAY,Server,,,NA,NA,"","" -hl7.fhir.uv.subscriptions_1.1.0,114,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#subscription,[Subscription Resource] Conformance Expectation: SHALL,SHALL,Server,,,NA,NA,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance -hl7.fhir.uv.subscriptions_1.1.0,115,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html," -The [$events] operation returns a valid notification bundle, with the first entry being the subscription status information resource. The bundle type is ""history"".",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,116,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data. Codes from backport-content-value-set (e.g., empty, id-only, full-resource).",SHALL,Client,,,,,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,117,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data [from the $events operation]…. This is a hint to the server what a client would prefer, and MAY be ignored.",MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,118,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsSinceNumber input indicates] The starting event number, inclusive of this event (lower bound).",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,119,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsUntilNumber input indicates] The ending event number, inclusive of this event (upper bound).",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,120,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary," -[servers] SHOULD support [profile]: Backported R5 Subscription [NOTE: narrative says SHALL, resource says SHOULD, future versions correct the narrative to SHOULD]",SHOULD,Server,,,NA,NA,2.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_capability_statement-subscriptions_r4_server_cs_conformance -hl7.fhir.uv.subscriptions_1.1.0,121,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,SHALL support the $status operation,SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,122,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $events operation,MAY,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,123,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $get-ws-binding-token operation,MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,124,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHALL be capable of returning a Subscription resource using: GET [base]/Subscription/[id],SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of creating a Subscription resource using either: POST [base]/Subscription or PUT [base]/Subscription/[id],SHOULD,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"Search Parameter Summary: SHALL [support] url [narrative says SHOULD, resource says SHALL, future versions correct the narrative to SHALL]",SHALL,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,NA,NA,, -hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,,NA,NA,Not Tested,Not Tested -hl7.fhir.uv.subscriptions_1.1.0,132,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Client,,,Not Tested,Not Tested,NA,NA -hl7.fhir.uv.subscriptions_1.1.0,133,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 Subscription resource (...write).",SHALL,Server,,,NA,NA,"1.1.02, 3.1.1.02, 3.2.1.02, 3.3.1.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_notification_delivery, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_notification_delivery, 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_notification_delivery, 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_notification_delivery" -hl7.fhir.uv.subscriptions_1.1.0,134,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 Subscription resource (read...).",SHALL,Server,,,NA,NA,, -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,, -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,, -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,, -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" -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"