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 9cc4781..afac92d 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,7 +66,7 @@ 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 Export + run: bundle exec inferno requirements check - name: Check Coverage - run: bundle exec rake requirements:check_coverage + run: bundle exec inferno 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/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/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/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..b37f7d0 --- /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,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-test-kit_requirements_coverage.csv b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv similarity index 53% rename from lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv rename to lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv index 29471cc..b03215c 100644 --- a/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv +++ b/lib/subscriptions_test_kit/requirements/generated/subscriptions_r5_backport_r4_server_requirements_coverage.csv @@ -1,136 +1,120 @@ -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 +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,,,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" + - 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,,,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" +- 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,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 new file mode 100644 index 0000000..b62f4a0 Binary files /dev/null and b/lib/subscriptions_test_kit/requirements/hl7.fhir.uv.subscriptions_1.1.0_requirements.xlsx differ 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) 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 84% rename from lib/subscriptions_test_kit/requirements/subscriptions-test-kit_requirements.csv rename to lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv index d5cb697..8628399 100644 --- a/lib/subscriptions_test_kit/requirements/subscriptions-test-kit_requirements.csv +++ b/lib/subscriptions_test_kit/requirements/subscriptions_test_kit_requirements.csv @@ -1,145 +1,143 @@ -Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality -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,, -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,, -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,, -hl7.fhir.uv.subscriptions_1.1.0,5,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 on R4 subscriptions to describe any elements also described by this guide",DEPRECATED,,, -hl7.fhir.uv.subscriptions_1.1.0,6,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 to specify a different FHIR version, using syntax and values defined by the MIME Type Parameter. Servers SHALL look for this 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).",DEPRECATED,,, +Req Set,ID,URL,Requirement,Conformance,Actor,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details +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,,,, +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 +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." +hl7.fhir.uv.subscriptions_1.1.0,5,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 on R4 subscriptions to describe any elements also described by this guide",DEPRECATED,,,,, +hl7.fhir.uv.subscriptions_1.1.0,6,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 to specify a different FHIR version, using syntax and values defined by the MIME Type Parameter. Servers SHALL look for this 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).",DEPRECATED,,,,, 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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, + - is willing to make a simple best effort attempt at delivering a notification for each occurrence of a matching event.",SHALL,Server,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, 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,, -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,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,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,, -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,, -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,, -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,, -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,, -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,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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,55,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used on R4 subscriptions to describe any elements also described by this guide",DEPRECATED,,, -hl7.fhir.uv.subscriptions_1.1.0,56,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.,DEPRECATED,,, -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,, -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,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,, -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,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,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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,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,, -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,, -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,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,, -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,, -hl7.fhir.uv.subscriptions_1.1.0,87,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 [servers should ?? Subscriptions that include them] on R4 subscriptions to describe any elements also described by this guide",DEPRECATED,,, -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,, -hl7.fhir.uv.subscriptions_1.1.0,89,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,DEPRECATED,,, -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,91,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"servers MAY reject or coerce [the FHIR version requested via the Subscription.channel.payload element], according to their policies",DEPRECATED,,, -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,, -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,, -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,, -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,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,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,, -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,, -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,, -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,, -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,, -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,, -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,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,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,, -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,, -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,, -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,, -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,, -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,, -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,, -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,, +- 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,,,, +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,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,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." +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." +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,,,, +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." +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,,,, +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,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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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." +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." +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,,,, +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." +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,,,, +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,,,, +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,,,, +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." +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,55,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In order to promote widespread compatibility, cross version extensions SHOULD NOT be used on R4 subscriptions to describe any elements also described by this guide",DEPRECATED,,,,, +hl7.fhir.uv.subscriptions_1.1.0,56,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.,DEPRECATED,,,,, +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. +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,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." +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,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,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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,,,, +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,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,,,, +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." +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,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." +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,,,, +hl7.fhir.uv.subscriptions_1.1.0,87,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 [servers should ?? Subscriptions that include them] on R4 subscriptions to describe any elements also described by this guide",DEPRECATED,,,,, +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." +hl7.fhir.uv.subscriptions_1.1.0,89,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,DEPRECATED,,,,, +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,91,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"servers MAY reject or coerce [the FHIR version requested via the Subscription.channel.payload element], according to their policies",DEPRECATED,,,,, +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." +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,,,, +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,,,, +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,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,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,,,, +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." +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,,,, +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." +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." +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,,,, +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,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,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." +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,,,, +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 +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,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) +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,,,, +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,,,, +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,,,, 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, diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb index 4f79205..eb392ce 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb @@ -16,7 +16,6 @@ class ProcessingAttestationTest < Inferno::Test of what should happen when the client receives an event notification for the requested Subscription. ) - verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@113' run do load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG) diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb index 82be591..e698db6 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb @@ -33,6 +33,14 @@ class SubscriptionsR5BackportR4ClientSuite < Inferno::TestSuite } ] + requirement_sets( + { + identifier: 'hl7.fhir.uv.subscriptions_1.1.0', + title: 'Subscriptions R5 Backport IG', + actor: 'Client' + } + ) + # All FHIR validation requests will use this FHIR validator fhir_resource_validator do igs 'hl7.fhir.uv.subscriptions-backport#1.1.0' diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb index 9122d0e..45f2b87 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb @@ -30,8 +30,7 @@ class SubscriptionConformanceTest < Inferno::Test ) verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@72', - 'hl7.fhir.uv.subscriptions_1.1.0@73', - 'hl7.fhir.uv.subscriptions_1.1.0@86' + 'hl7.fhir.uv.subscriptions_1.1.0@73' input :subscription_resource, title: 'Workflow Subscription Resource', 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' diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb index 307c1e6..c5c4db5 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb @@ -35,6 +35,14 @@ class SubscriptionsR5BackportR4ServerSuite < Inferno::TestSuite } ] + requirement_sets( + { + identifier: 'hl7.fhir.uv.subscriptions_1.1.0', + title: 'Subscriptions R5 Backport IG', + actor: 'Server' + } + ) + # These inputs will be available to all tests in this suite input :url, title: 'FHIR Server Base URL', diff --git a/subscriptions_test_kit.gemspec b/subscriptions_test_kit.gemspec index 98b8b0b..b75c2f8 100644 --- a/subscriptions_test_kit.gemspec +++ b/subscriptions_test_kit.gemspec @@ -9,7 +9,7 @@ Gem::Specification.new do |spec| spec.description = 'Inferno test kit for FHIR R5-style Subscriptions' spec.homepage = 'https://github.com/inferno-framework/subscriptions-test-kit' spec.license = 'Apache-2.0' - spec.add_dependency 'inferno_core', '~> 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