bulk_data_test_kit 0.12.1 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bulk_data_test_kit/requirements/bulk_data_test_kit_requirements.csv +959 -0
  3. data/lib/bulk_data_test_kit/requirements/generated/bulk_data_v101_requirements_coverage.csv +342 -0
  4. data/lib/bulk_data_test_kit/requirements/generated/bulk_data_v200_client_requirements_coverage.csv +113 -0
  5. data/lib/bulk_data_test_kit/requirements/generated/bulk_data_v200_requirements_coverage.csv +473 -0
  6. data/lib/bulk_data_test_kit/requirements/hl7.fhir.uv.bulkdata_1.0.0_reqs.xlsx +0 -0
  7. data/lib/bulk_data_test_kit/requirements/hl7.fhir.uv.bulkdata_2.0.0_reqs.xlsx +0 -0
  8. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_export_cancel_test.rb +3 -0
  9. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_export_kick_off_test.rb +4 -0
  10. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_export_operation_support_test.rb +1 -1
  11. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_no_auth_test.rb +2 -0
  12. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_output_check_test.rb +8 -0
  13. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_status_check_test.rb +17 -0
  14. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_test_suite.rb +16 -0
  15. data/lib/bulk_data_test_kit/v1.0.1/bulk_data_valid_resources_test.rb +4 -0
  16. data/lib/bulk_data_test_kit/v1.0.1/group/bulk_data_group_export_group.rb +4 -1
  17. data/lib/bulk_data_test_kit/v1.0.1/patient/bulk_data_patient_export_group.rb +3 -0
  18. data/lib/bulk_data_test_kit/v1.0.1/system_export/bulk_data_system_export_group.rb +3 -0
  19. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_export_cancel_test.rb +4 -0
  20. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_group_export_test_group.rb +48 -2
  21. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_group_outputFormat_param_test.rb +6 -0
  22. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_group_since_param_test.rb +3 -0
  23. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_patient_export_test_group.rb +48 -2
  24. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_since_param_test.rb +3 -1
  25. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_smart_backend_services_v200_group.rb +1 -0
  26. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_system_export_test_group.rb +46 -2
  27. data/lib/bulk_data_test_kit/v2.0.0/bulk_data_test_suite.rb +16 -0
  28. data/lib/bulk_data_test_kit/v2.0.0/group/bulk_data_group_export_cancel_group.rb +4 -0
  29. data/lib/bulk_data_test_kit/v2.0.0/patient/bulk_data_patient_export_cancel_group.rb +4 -0
  30. data/lib/bulk_data_test_kit/v2.0.0/patient/bulk_data_patient_export_parameters_group.rb +2 -1
  31. data/lib/bulk_data_test_kit/v2.0.0/system_export/bulk_data_system_export_cancel_group.rb +4 -0
  32. data/lib/bulk_data_test_kit/v2.0.0/system_export/bulk_data_system_export_parameters_group.rb +4 -2
  33. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_auth_verification_group.rb +20 -0
  34. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_delete_test.rb +0 -2
  35. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_output_test.rb +0 -2
  36. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_registration_group.rb +13 -0
  37. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_status_test.rb +0 -2
  38. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_test_suite.rb +25 -3
  39. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_token_verification_test.rb +14 -0
  40. data/lib/bulk_data_test_kit/v2.0.0_client/bulk_data_client_wait_test.rb +11 -4
  41. data/lib/bulk_data_test_kit/v2.0.0_client/docs/suite_description.md +39 -11
  42. data/lib/bulk_data_test_kit/v2.0.0_client/endpoints/delete.rb +6 -1
  43. data/lib/bulk_data_test_kit/v2.0.0_client/endpoints/kick_off.rb +17 -5
  44. data/lib/bulk_data_test_kit/v2.0.0_client/endpoints/output.rb +6 -1
  45. data/lib/bulk_data_test_kit/v2.0.0_client/endpoints/status.rb +6 -1
  46. data/lib/bulk_data_test_kit/v2.0.0_client/tags.rb +1 -0
  47. data/lib/bulk_data_test_kit/v2.0.0_client/urls.rb +7 -3
  48. data/lib/bulk_data_test_kit/version.rb +2 -2
  49. data/lib/bulk_data_test_kit.rb +0 -1
  50. metadata +30 -17
  51. data/lib/bulk_data_test_kit/requirements/bulk-data-test-kit_out_of_scope_requirements.csv +0 -1
  52. data/lib/bulk_data_test_kit/requirements/bulk-data-test-kit_requirements.csv +0 -465
  53. data/lib/bulk_data_test_kit/requirements/generated/bulk-data-test-kit_requirements_coverage.csv +0 -442
  54. data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +0 -22
  55. data/lib/inferno_requirements_tools/rake/rakefile_template +0 -37
  56. data/lib/inferno_requirements_tools/tasks/collect_requirements.rb +0 -233
  57. data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +0 -283
  58. data/lib/requirements_config.yaml +0 -14
  59. data/lib/template_requirements_config.yaml +0 -11
@@ -17,6 +17,9 @@ module BulkDataTestKit
17
17
  DESCRIPTION
18
18
  # link 'http://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#bulk-data-delete-request'
19
19
 
20
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@305',
21
+ 'hl7.fhir.uv.bulkdata_1.0.0@306'
22
+
20
23
  input :smart_auth_info,
21
24
  type: :auth_info,
22
25
  options: { mode: 'access' },
@@ -19,6 +19,10 @@ module BulkDataTestKit
19
19
  DESCRIPTION
20
20
  # link 'http://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#response---success'
21
21
 
22
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@28',
23
+ 'hl7.fhir.uv.bulkdata_1.0.0@300',
24
+ 'hl7.fhir.uv.bulkdata_1.0.0@301'
25
+
22
26
  input :smart_auth_info,
23
27
  type: :auth_info,
24
28
  options: { mode: 'access' },
@@ -19,7 +19,7 @@ module BulkDataTestKit
19
19
  declares the standard bulk data export OperationDefinition provided in the
20
20
  Bulk Data specification, nor does it attempt to resolve any non-standard
21
21
  OperationDefinitions to verify if it is a constrained version of the
22
- standard OperationDefintion.
22
+ standard OperationDefinition.
23
23
 
24
24
  This test will provide a warning if no operations are declared via the
25
25
  `CapabilityStatement.rest.resource.operation.name` element. It will
@@ -20,6 +20,8 @@ module BulkDataTestKit
20
20
  DESCRIPTION
21
21
  # link 'http://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#bulk-data-kick-off-request'
22
22
 
23
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@27'
24
+
23
25
  input :smart_auth_info,
24
26
  type: :auth_info,
25
27
  options: { mode: 'access' },
@@ -24,6 +24,14 @@ module BulkDataTestKit
24
24
  DESCRIPTION
25
25
  # link 'http://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#response---complete-status'
26
26
 
27
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@164',
28
+ 'hl7.fhir.uv.bulkdata_1.0.0@165',
29
+ 'hl7.fhir.uv.bulkdata_1.0.0@166',
30
+ 'hl7.fhir.uv.bulkdata_1.0.0@168',
31
+ 'hl7.fhir.uv.bulkdata_1.0.0@169',
32
+ 'hl7.fhir.uv.bulkdata_1.0.0@170',
33
+ 'hl7.fhir.uv.bulkdata_1.0.0@175'
34
+
27
35
  input :status_response
28
36
 
29
37
  output :status_output, :bulk_download_url
@@ -22,6 +22,23 @@ module BulkDataTestKit
22
22
  DESCRIPTION
23
23
  # link 'http://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#bulk-data-status-request'
24
24
 
25
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@132',
26
+ 'hl7.fhir.uv.bulkdata_1.0.0@144',
27
+ 'hl7.fhir.uv.bulkdata_1.0.0@145',
28
+ 'hl7.fhir.uv.bulkdata_1.0.0@147',
29
+ 'hl7.fhir.uv.bulkdata_1.0.0@150',
30
+ 'hl7.fhir.uv.bulkdata_1.0.0@151',
31
+ 'hl7.fhir.uv.bulkdata_1.0.0@152',
32
+ 'hl7.fhir.uv.bulkdata_1.0.0@155',
33
+ 'hl7.fhir.uv.bulkdata_1.0.0@156',
34
+ 'hl7.fhir.uv.bulkdata_1.0.0@157',
35
+ 'hl7.fhir.uv.bulkdata_1.0.0@159',
36
+ 'hl7.fhir.uv.bulkdata_1.0.0@160',
37
+ 'hl7.fhir.uv.bulkdata_1.0.0@161',
38
+ 'hl7.fhir.uv.bulkdata_1.0.0@191',
39
+ 'hl7.fhir.uv.bulkdata_1.0.0@192',
40
+ 'hl7.fhir.uv.bulkdata_1.0.0@193'
41
+
25
42
  input :polling_url, :bulk_timeout
26
43
  input :smart_auth_info,
27
44
  type: :auth_info,
@@ -24,6 +24,22 @@ module BulkDataTestKit
24
24
  }
25
25
  ]
26
26
 
27
+ requirement_sets(
28
+ {
29
+ identifier: 'hl7.fhir.uv.bulkdata_1.0.0',
30
+ title: 'Bulk Data Access IG v1.0.0',
31
+ actor: 'Server'
32
+ },
33
+ {
34
+ identifier: 'hl7.fhir.uv.smart-app-launch_2.2.0',
35
+ title: 'SMART App Launch',
36
+ actor: 'Server',
37
+ # backend services and confidential asymmetric requirements
38
+ requirements: '30,228,231,240,241,243-262,265,266,285-289,296,297,305,306,310,311,316,326,335-342,344,372-374,' \
39
+ '376,377,380-386,389-394,438,439'
40
+ }
41
+ )
42
+
27
43
  VALIDATION_MESSAGE_FILTERS = [
28
44
  /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
29
45
  /\A\S+: \S+: URL value '.*' does not resolve/
@@ -18,6 +18,10 @@ module BulkDataTestKit
18
18
  number of error messages it will display to 20.
19
19
  DESCRIPTION
20
20
 
21
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@207',
22
+ 'hl7.fhir.uv.bulkdata_1.0.0@208',
23
+ 'hl7.fhir.uv.bulkdata_1.0.0@209'
24
+
21
25
  input :smart_auth_info, type: :auth_info
22
26
  input :status_output
23
27
  input :requires_access_token
@@ -17,6 +17,9 @@ module BulkDataTestKit
17
17
  description <<~DESCRIPTION
18
18
  Verify that group level export on the Bulk Data server follow the Bulk Data Access Implementation Guide
19
19
  DESCRIPTION
20
+
21
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@249'
22
+
20
23
  id :bulk_data_group_export_group
21
24
 
22
25
  input :smart_auth_info,
@@ -54,7 +57,7 @@ module BulkDataTestKit
54
57
  declares the standard Group export OperationDefinition provided in the
55
58
  Bulk Data specification, nor does it attempt to resolve any non-standard
56
59
  OperationDefinitions to verify if it is a constrained version of the
57
- standard OperationDefintion.
60
+ standard OperationDefinition.
58
61
 
59
62
  This test will provide a warning if no operations are declared at
60
63
  `Group/[group_id]/$export`, via the
@@ -15,6 +15,9 @@ module BulkDataTestKit
15
15
  description <<~DESCRIPTION
16
16
  Verify that patient level export on the Bulk Data server follow the Bulk Data Access Implementation Guide
17
17
  DESCRIPTION
18
+
19
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@272'
20
+
18
21
  id :bulk_data_patient_export_group
19
22
 
20
23
  input :smart_auth_info,
@@ -15,6 +15,9 @@ module BulkDataTestKit
15
15
  description <<~DESCRIPTION
16
16
  Verify that system level export on the Bulk Data server follow the Bulk Data Access Implementation Guide
17
17
  DESCRIPTION
18
+
19
+ verifies_requirements 'hl7.fhir.uv.bulkdata_1.0.0@229'
20
+
18
21
  id :bulk_data_system_export_group
19
22
 
20
23
  input :smart_auth_info,
@@ -16,6 +16,10 @@ module BulkDataTestKit
16
16
  http://hl7.org/fhir/uv/bulkdata/STU2/export.html#bulk-data-delete-request
17
17
  DESCRIPTION
18
18
 
19
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@122',
20
+ 'hl7.fhir.uv.bulkdata_2.0.0@308',
21
+ 'hl7.fhir.uv.bulkdata_2.0.0@309'
22
+
19
23
  id :bulk_data_export_cancel_stu2
20
24
 
21
25
  input :cancelled_polling_url
@@ -22,11 +22,57 @@ module BulkDataTestKit
22
22
  id: :bulk_data_group_export_group_stu2,
23
23
  config: {
24
24
  options: { require_absolute_urls_in_output: true }
25
- }
25
+ } do
26
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@224',
27
+ 'hl7.fhir.uv.bulkdata_2.0.0@249'
28
+
29
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
30
+ children.find { |child| child.id.ends_with?('bulk_data_group_no_auth_reject') }
31
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@9',
32
+ 'hl7.fhir.uv.bulkdata_2.0.0@27',
33
+ 'hl7.fhir.uv.bulkdata_2.0.0@226')
34
+ children.find { |child| child.id.ends_with?('bulk_data_group_output_check') }
35
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@164',
36
+ 'hl7.fhir.uv.bulkdata_2.0.0@165',
37
+ 'hl7.fhir.uv.bulkdata_2.0.0@166',
38
+ 'hl7.fhir.uv.bulkdata_2.0.0@168',
39
+ 'hl7.fhir.uv.bulkdata_2.0.0@169',
40
+ 'hl7.fhir.uv.bulkdata_2.0.0@170',
41
+ 'hl7.fhir.uv.bulkdata_2.0.0@175')
42
+ children.find { |child| child.id.ends_with?('bulk_data_group_status_check') }
43
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@132',
44
+ 'hl7.fhir.uv.bulkdata_2.0.0@144',
45
+ 'hl7.fhir.uv.bulkdata_2.0.0@145',
46
+ 'hl7.fhir.uv.bulkdata_2.0.0@147',
47
+ 'hl7.fhir.uv.bulkdata_2.0.0@150',
48
+ 'hl7.fhir.uv.bulkdata_2.0.0@151',
49
+ 'hl7.fhir.uv.bulkdata_2.0.0@152',
50
+ 'hl7.fhir.uv.bulkdata_2.0.0@155',
51
+ 'hl7.fhir.uv.bulkdata_2.0.0@156',
52
+ 'hl7.fhir.uv.bulkdata_2.0.0@157',
53
+ 'hl7.fhir.uv.bulkdata_2.0.0@159',
54
+ 'hl7.fhir.uv.bulkdata_2.0.0@160',
55
+ 'hl7.fhir.uv.bulkdata_2.0.0@161',
56
+ 'hl7.fhir.uv.bulkdata_2.0.0@191',
57
+ 'hl7.fhir.uv.bulkdata_2.0.0@192',
58
+ 'hl7.fhir.uv.bulkdata_2.0.0@193')
59
+ children.find { |child| child.id.ends_with?('bulk_data_group_kick_off') }
60
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@28',
61
+ 'hl7.fhir.uv.bulkdata_2.0.0@227',
62
+ 'hl7.fhir.uv.bulkdata_2.0.0@300',
63
+ 'hl7.fhir.uv.bulkdata_2.0.0@301')
64
+ end
65
+
26
66
 
27
67
  group from: :bulk_data_group_export_validation,
28
68
  title: 'Group Compartment Export Validation Tests STU2',
29
- id: :bulk_data_group_export_validation_stu2
69
+ id: :bulk_data_group_export_validation_stu2 do
70
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
71
+ children.find { |child| child.id.ends_with?('bulk_data_group_valid_resources') }
72
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@207',
73
+ 'hl7.fhir.uv.bulkdata_2.0.0@208',
74
+ 'hl7.fhir.uv.bulkdata_2.0.0@209')
75
+ end
30
76
 
31
77
  group from: :bulk_data_group_export_cancel_group_stu2
32
78
  group from: :bulk_data_group_export_parameters_group
@@ -6,6 +6,12 @@ module BulkDataTestKit
6
6
  module BulkDataV200
7
7
  class BulkDataGroupOutputFormatParamTest < BulkDataV200::BulkDataOutputFormatParamTest
8
8
  id :output_format_in_group_export_response
9
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@47',
10
+ 'hl7.fhir.uv.bulkdata_2.0.0@49',
11
+ 'hl7.fhir.uv.bulkdata_2.0.0@51',
12
+ 'hl7.fhir.uv.bulkdata_2.0.0@52',
13
+ 'hl7.fhir.uv.bulkdata_2.0.0@251'
14
+
9
15
  input :group_id
10
16
 
11
17
  config(
@@ -6,6 +6,9 @@ module BulkDataTestKit
6
6
  module BulkDataV200
7
7
  class BulkDataGroupSinceParamTest < BulkDataV200::BulkDataSinceParamTest
8
8
  id :since_in_group_export_response
9
+
10
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@53','hl7.fhir.uv.bulkdata_2.0.0@254'
11
+
9
12
  input :group_id
10
13
 
11
14
  config(
@@ -22,11 +22,57 @@ module BulkDataTestKit
22
22
  id: :bulk_data_patient_export_group_stu2,
23
23
  config: {
24
24
  options: { require_absolute_urls_in_output: true }
25
- }
25
+ } do
26
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@225',
27
+ 'hl7.fhir.uv.bulkdata_2.0.0@272'
28
+
29
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
30
+ children.find { |child| child.id.ends_with?('bulk_data_patient_no_auth_reject') }
31
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@9',
32
+ 'hl7.fhir.uv.bulkdata_2.0.0@27',
33
+ 'hl7.fhir.uv.bulkdata_2.0.0@226')
34
+ children.find { |child| child.id.ends_with?('bulk_data_patient_output_check') }
35
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@164',
36
+ 'hl7.fhir.uv.bulkdata_2.0.0@165',
37
+ 'hl7.fhir.uv.bulkdata_2.0.0@166',
38
+ 'hl7.fhir.uv.bulkdata_2.0.0@168',
39
+ 'hl7.fhir.uv.bulkdata_2.0.0@169',
40
+ 'hl7.fhir.uv.bulkdata_2.0.0@170',
41
+ 'hl7.fhir.uv.bulkdata_2.0.0@175')
42
+ children.find { |child| child.id.ends_with?('bulk_data_patient_status_check') }
43
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@132',
44
+ 'hl7.fhir.uv.bulkdata_2.0.0@144',
45
+ 'hl7.fhir.uv.bulkdata_2.0.0@145',
46
+ 'hl7.fhir.uv.bulkdata_2.0.0@147',
47
+ 'hl7.fhir.uv.bulkdata_2.0.0@150',
48
+ 'hl7.fhir.uv.bulkdata_2.0.0@151',
49
+ 'hl7.fhir.uv.bulkdata_2.0.0@152',
50
+ 'hl7.fhir.uv.bulkdata_2.0.0@155',
51
+ 'hl7.fhir.uv.bulkdata_2.0.0@156',
52
+ 'hl7.fhir.uv.bulkdata_2.0.0@157',
53
+ 'hl7.fhir.uv.bulkdata_2.0.0@159',
54
+ 'hl7.fhir.uv.bulkdata_2.0.0@160',
55
+ 'hl7.fhir.uv.bulkdata_2.0.0@161',
56
+ 'hl7.fhir.uv.bulkdata_2.0.0@191',
57
+ 'hl7.fhir.uv.bulkdata_2.0.0@192',
58
+ 'hl7.fhir.uv.bulkdata_2.0.0@193')
59
+ children.find { |child| child.id.ends_with?('bulk_data_patient_kick_off') }
60
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@28',
61
+ 'hl7.fhir.uv.bulkdata_2.0.0@227',
62
+ 'hl7.fhir.uv.bulkdata_2.0.0@300',
63
+ 'hl7.fhir.uv.bulkdata_2.0.0@301')
64
+
65
+ end
26
66
 
27
67
  group from: :bulk_data_patient_export_validation,
28
68
  title: 'All Patient Export Validation Tests STU2',
29
- id: :bulk_data_patient_export_validation_stu2
69
+ id: :bulk_data_patient_export_validation_stu2 do
70
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
71
+ children.find { |child| child.id.ends_with?('bulk_data_patient_valid_resources') }
72
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@207',
73
+ 'hl7.fhir.uv.bulkdata_2.0.0@208',
74
+ 'hl7.fhir.uv.bulkdata_2.0.0@209')
75
+ end
30
76
 
31
77
  group from: :bulk_data_patient_export_cancel_group_stu2
32
78
  group from: :bulk_data_patient_export_parameters_group
@@ -15,7 +15,7 @@ module BulkDataTestKit
15
15
  This test verifies that the server accepts an export request with the
16
16
  `[_since](http://hl7.org/fhir/uv/bulkdata/STU2/export.html#query-parameters)`
17
17
  query parameter. It initiates a new export using a _since parameter of
18
- one week ago, and ensures that the export was initiated succesfully.
18
+ one week ago, and ensures that the export was initiated successfully.
19
19
 
20
20
  The test does not attempt to verify that resources returned were
21
21
  modified after the _since date that was requested, because the Bulk Data
@@ -27,6 +27,8 @@ module BulkDataTestKit
27
27
  After the export was successfully initiated, it is then cancelled.
28
28
  DESCRIPTION
29
29
 
30
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@53'
31
+
30
32
  input :smart_auth_info,
31
33
  type: :auth_info,
32
34
  options: { mode: 'access' },
@@ -25,6 +25,7 @@ module BulkDataTestKit
25
25
  }
26
26
 
27
27
  group from: :backend_services_authorization,
28
+ verifies_requirements: ['hl7.fhir.uv.bulkdata_2.0.0@2', 'hl7.fhir.uv.bulkdata_2.0.0@19'],
28
29
  config: {
29
30
  inputs: {
30
31
  url: { name: :bulk_server_url },
@@ -22,11 +22,55 @@ module BulkDataTestKit
22
22
  id: :bulk_data_system_export_group_stu2,
23
23
  config: {
24
24
  options: { require_absolute_urls_in_output: true }
25
- }
25
+ } do
26
+ verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@223', 'hl7.fhir.uv.bulkdata_2.0.0@229'
27
+
28
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
29
+ children.find { |child| child.id.ends_with?('bulk_data_system_no_auth_reject') }
30
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@9',
31
+ 'hl7.fhir.uv.bulkdata_2.0.0@27',
32
+ 'hl7.fhir.uv.bulkdata_2.0.0@226')
33
+ children.find { |child| child.id.ends_with?('bulk_data_system_output_check') }
34
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@164',
35
+ 'hl7.fhir.uv.bulkdata_2.0.0@165',
36
+ 'hl7.fhir.uv.bulkdata_2.0.0@166',
37
+ 'hl7.fhir.uv.bulkdata_2.0.0@168',
38
+ 'hl7.fhir.uv.bulkdata_2.0.0@169',
39
+ 'hl7.fhir.uv.bulkdata_2.0.0@170',
40
+ 'hl7.fhir.uv.bulkdata_2.0.0@175')
41
+ children.find { |child| child.id.ends_with?('bulk_data_system_status_check') }
42
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@132',
43
+ 'hl7.fhir.uv.bulkdata_2.0.0@144',
44
+ 'hl7.fhir.uv.bulkdata_2.0.0@145',
45
+ 'hl7.fhir.uv.bulkdata_2.0.0@147',
46
+ 'hl7.fhir.uv.bulkdata_2.0.0@150',
47
+ 'hl7.fhir.uv.bulkdata_2.0.0@151',
48
+ 'hl7.fhir.uv.bulkdata_2.0.0@152',
49
+ 'hl7.fhir.uv.bulkdata_2.0.0@155',
50
+ 'hl7.fhir.uv.bulkdata_2.0.0@156',
51
+ 'hl7.fhir.uv.bulkdata_2.0.0@157',
52
+ 'hl7.fhir.uv.bulkdata_2.0.0@159',
53
+ 'hl7.fhir.uv.bulkdata_2.0.0@160',
54
+ 'hl7.fhir.uv.bulkdata_2.0.0@161',
55
+ 'hl7.fhir.uv.bulkdata_2.0.0@191',
56
+ 'hl7.fhir.uv.bulkdata_2.0.0@192',
57
+ 'hl7.fhir.uv.bulkdata_2.0.0@193')
58
+ children.find { |child| child.id.ends_with?('bulk_data_system_kick_off') }
59
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@28',
60
+ 'hl7.fhir.uv.bulkdata_2.0.0@227',
61
+ 'hl7.fhir.uv.bulkdata_2.0.0@300',
62
+ 'hl7.fhir.uv.bulkdata_2.0.0@301')
63
+ end
26
64
 
27
65
  group from: :bulk_data_system_export_validation,
28
66
  title: 'System Level Export Validation Tests STU2',
29
- id: :bulk_data_system_export_validation_stu2
67
+ id: :bulk_data_system_export_validation_stu2 do
68
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
69
+ children.find { |child| child.id.ends_with?('bulk_data_system_valid_resources') }
70
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@207',
71
+ 'hl7.fhir.uv.bulkdata_2.0.0@208',
72
+ 'hl7.fhir.uv.bulkdata_2.0.0@209')
73
+ end
30
74
 
31
75
  group from: :bulk_data_system_export_cancel_group_stu2
32
76
  group from: :bulk_data_system_export_parameters_group
@@ -24,6 +24,22 @@ module BulkDataTestKit
24
24
  }
25
25
  ]
26
26
 
27
+ requirement_sets(
28
+ {
29
+ identifier: 'hl7.fhir.uv.bulkdata_2.0.0',
30
+ title: 'Bulk Data Access IG v2.0.0',
31
+ actor: 'Server'
32
+ },
33
+ {
34
+ identifier: 'hl7.fhir.uv.smart-app-launch_2.2.0',
35
+ title: 'SMART App Launch',
36
+ actor: 'Server',
37
+ # backend services and confidential asymmetric requirements
38
+ requirements: '30,228,231,240,241,243-262,265,266,285-289,296,297,305,306,310,311,316,326,335-342,344,372-374,' \
39
+ '376,377,380-386,389-394,438,439'
40
+ }
41
+ )
42
+
27
43
  VALIDATION_MESSAGE_FILTERS = [
28
44
  /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
29
45
  /\A\S+: \S+: URL value '.*' does not resolve/
@@ -10,6 +10,10 @@ module BulkDataTestKit
10
10
 
11
11
  test from: :bulk_data_export_cancel_stu2,
12
12
  id: :bulk_data_group_export_cancel_stu2
13
+
14
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
15
+ children.find { |child| child.id.ends_with?('bulk_data_export_group_cancel') }
16
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@305', 'hl7.fhir.uv.bulkdata_2.0.0@306')
13
17
  end
14
18
  end
15
19
  end
@@ -13,6 +13,10 @@ module BulkDataTestKit
13
13
  config: {
14
14
  inputs: { cancelled_polling_url: { name: :patient_cancelled_polling_url } }
15
15
  }
16
+
17
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
18
+ children.find { |child| child.id.ends_with?('bulk_data_patient_export_cancel') }
19
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@305', 'hl7.fhir.uv.bulkdata_2.0.0@306')
16
20
  end
17
21
  end
18
22
  end
@@ -24,7 +24,8 @@ module BulkDataTestKit
24
24
  id: :output_format_in_patient_export_response,
25
25
  config: {
26
26
  options: { resource_type: 'Patient', bulk_export_url: 'Patient/$export' }
27
- }
27
+ },
28
+ verifies_requirements: ['hl7.fhir.uv.bulkdata_2.0.0@47','hl7.fhir.uv.bulkdata_2.0.0@49','hl7.fhir.uv.bulkdata_2.0.0@51','hl7.fhir.uv.bulkdata_2.0.0@52','hl7.fhir.uv.bulkdata_2.0.0@274']
28
29
 
29
30
  test from: :since_in_export_response,
30
31
  id: :since_in_patient_export_response,
@@ -13,6 +13,10 @@ module BulkDataTestKit
13
13
  config: {
14
14
  inputs: { cancelled_polling_url: { name: :system_cancelled_polling_url } }
15
15
  }
16
+
17
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
18
+ children.find { |child| child.id.ends_with?('bulk_data_system_export_cancel') }
19
+ .verifies_requirements('hl7.fhir.uv.bulkdata_2.0.0@305', 'hl7.fhir.uv.bulkdata_2.0.0@306')
16
20
  end
17
21
  end
18
22
  end
@@ -24,13 +24,15 @@ module BulkDataTestKit
24
24
  id: :output_format_in_system_export_response,
25
25
  config: {
26
26
  options: { resource_type: 'system', bulk_export_url: '$export' }
27
- }
27
+ },
28
+ verifies_requirements: ['hl7.fhir.uv.bulkdata_2.0.0@47','hl7.fhir.uv.bulkdata_2.0.0@49','hl7.fhir.uv.bulkdata_2.0.0@51','hl7.fhir.uv.bulkdata_2.0.0@52','hl7.fhir.uv.bulkdata_2.0.0@231']
28
29
 
29
30
  test from: :since_in_export_response,
30
31
  id: :since_in_system_export_response,
31
32
  config: {
32
33
  options: { resource_type: 'system', bulk_export_url: '$export' }
33
- }
34
+ },
35
+ verifies_requirements: ['hl7.fhir.uv.bulkdata_2.0.0@53','hl7.fhir.uv.bulkdata_2.0.0@234']
34
36
  end
35
37
  end
36
38
  end
@@ -0,0 +1,20 @@
1
+ require 'smart_app_launch_test_kit'
2
+ require_relative 'bulk_data_client_token_verification_test'
3
+
4
+ module BulkDataTestKit
5
+ module BulkDataV200Client
6
+ class BulkClientDataAuthVerification < Inferno::TestGroup
7
+ id :bulk_data_client_auth_verification
8
+ title 'Review Authentication Interactions'
9
+ run_as_group
10
+
11
+ test from: :bulk_data_client_token_smart_bsca_verification,
12
+ verifies_requirements: ['hl7.fhir.uv.bulkdata_2.0.0@15', 'hl7.fhir.uv.bulkdata_2.0.0@16']
13
+ test from: :smart_client_token_use_verification,
14
+ config: {
15
+ options: { access_request_tags: [KICKOFF_TAG, STATUS_TAG, OUTPUT_TAG, DELETE_TAG] }
16
+ }
17
+
18
+ end
19
+ end
20
+ end
@@ -14,8 +14,6 @@ module BulkDataTestKit
14
14
 
15
15
  id :bulk_data_client_delete
16
16
 
17
- verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@119'
18
-
19
17
  run do
20
18
  assert load_tagged_requests(DELETE_TAG).any?, fail_message
21
19
  end
@@ -13,8 +13,6 @@ module BulkDataTestKit
13
13
 
14
14
  id :bulk_data_client_output
15
15
 
16
- verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@200'
17
-
18
16
  run do
19
17
  assert load_tagged_requests(OUTPUT_TAG).any?, fail_message
20
18
  end
@@ -0,0 +1,13 @@
1
+ require 'smart_app_launch_test_kit'
2
+
3
+ module BulkDataTestKit
4
+ module BulkDataV200Client
5
+ class BulkClientDataRegistration < Inferno::TestGroup
6
+ id :bulk_data_client_registration
7
+ title 'Client Registration'
8
+ run_as_group
9
+
10
+ test from: :smart_client_registration_bsca_verification
11
+ end
12
+ end
13
+ end
@@ -14,8 +14,6 @@ module BulkDataTestKit
14
14
 
15
15
  id :bulk_data_client_status
16
16
 
17
- verifies_requirements 'hl7.fhir.uv.bulkdata_2.0.0@123'
18
-
19
17
  run do
20
18
  assert load_tagged_requests(STATUS_TAG).any?, fail_message
21
19
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'smart_app_launch_test_kit'
2
3
 
3
4
  require_relative '../version'
4
5
  require_relative 'tags'
@@ -11,7 +12,9 @@ require_relative 'endpoints/kick_off'
11
12
  require_relative 'endpoints/output'
12
13
  require_relative 'endpoints/status'
13
14
 
15
+ require_relative 'bulk_data_client_registration_group'
14
16
  require_relative 'bulk_data_client_export_group'
17
+ require_relative 'bulk_data_client_auth_verification_group'
15
18
 
16
19
  module BulkDataTestKit
17
20
  module BulkDataV200Client
@@ -41,9 +44,20 @@ module BulkDataTestKit
41
44
  }
42
45
  ]
43
46
 
44
- input :access_token,
45
- title: 'Access Token',
46
- description: 'The access token that will be included in all client requests during testing.'
47
+ requirement_sets(
48
+ {
49
+ identifier: 'hl7.fhir.uv.bulkdata_2.0.0',
50
+ title: 'Bulk Data Access IG v2.0.0',
51
+ actor: 'Client'
52
+ },
53
+ {
54
+ identifier: 'hl7.fhir.uv.smart-app-launch_2.2.0',
55
+ title: 'SMART App Launch',
56
+ actor: 'Client',
57
+ # backend services and confidential asymmetric requirements
58
+ requirements: '22,225-227,229,230,232-239,242,263,264,267,268,290-295,298-304,307-309,312-315,317-325,327-334'
59
+ }
60
+ )
47
61
 
48
62
  input :export_type,
49
63
  title: 'Export Type',
@@ -92,6 +106,12 @@ module BulkDataTestKit
92
106
  ]
93
107
  }
94
108
 
109
+ # SMART Backend Services server simulation
110
+ route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env|
111
+ SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id)
112
+ })
113
+ suite_endpoint :post, SMARTAppLaunch::TOKEN_PATH, SMARTAppLaunch::MockSMARTServer::TokenEndpoint
114
+
95
115
  suite_endpoint :get, PATIENT_KICKOFF_ROUTE, Endpoints::KickOff
96
116
  suite_endpoint :get, GROUP_KICKOFF_ROUTE, Endpoints::KickOff
97
117
  suite_endpoint :get, SYSTEM_KICKOFF_ROUTE, Endpoints::KickOff
@@ -103,7 +123,9 @@ module BulkDataTestKit
103
123
  request.query_parameters['id']
104
124
  end
105
125
 
126
+ group from: :bulk_data_client_registration
106
127
  group from: :bulk_data_client_export_group
128
+ group from: :bulk_data_client_auth_verification
107
129
  end
108
130
  end
109
131
  end