inferno_core 0.6.8 → 0.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/inferno/apps/cli/evaluate/database.yml +15 -0
- data/lib/inferno/apps/cli/evaluate/docker-compose.evaluate.yml +16 -0
- data/lib/inferno/apps/cli/evaluate.rb +52 -4
- data/lib/inferno/apps/cli/main.rb +5 -1
- data/lib/inferno/apps/cli/requirements.rb +28 -0
- data/lib/inferno/apps/cli/requirements_exporter.rb +194 -0
- data/lib/inferno/apps/cli/suite.rb +21 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%/example_suite/patient_group.rb.tt +141 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%/example_suite.rb.tt +128 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%/metadata.rb.tt +65 -3
- data/lib/inferno/apps/cli/templates/lib/%library_name%/suite.rb.tt +2 -2
- data/lib/inferno/apps/cli/templates/lib/%library_name%/version.rb.tt +1 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%.rb.tt +1 -1
- data/lib/inferno/apps/web/controllers/requirements/show.rb +18 -0
- data/lib/inferno/apps/web/controllers/test_suites/requirements/index.rb +29 -0
- data/lib/inferno/apps/web/router.rb +7 -0
- data/lib/inferno/apps/web/serializers/input.rb +1 -0
- data/lib/inferno/apps/web/serializers/requirement.rb +18 -0
- data/lib/inferno/apps/web/serializers/requirement_set.rb +13 -0
- data/lib/inferno/apps/web/serializers/test.rb +1 -0
- data/lib/inferno/apps/web/serializers/test_group.rb +1 -0
- data/lib/inferno/apps/web/serializers/test_suite.rb +11 -0
- data/lib/inferno/config/boot/requirements.rb +40 -0
- data/lib/inferno/config/boot/suites.rb +3 -0
- data/lib/inferno/dsl/fhir_evaluation/default.yml +68 -0
- data/lib/inferno/dsl/fhir_evaluation/evaluator.rb +3 -5
- data/lib/inferno/dsl/fhir_evaluation/rules/all_defined_extensions_have_examples.rb +2 -2
- data/lib/inferno/dsl/fhir_evaluation/rules/all_extensions_used.rb +76 -0
- data/lib/inferno/dsl/fhir_evaluation/rules/all_must_supports_present.rb +1 -1
- data/lib/inferno/dsl/fhir_evaluation/rules/all_profiles_have_examples.rb +1 -1
- data/lib/inferno/dsl/fhir_evaluation/rules/all_references_resolve.rb +2 -2
- data/lib/inferno/dsl/fhir_evaluation/rules/all_resources_reachable.rb +2 -2
- data/lib/inferno/dsl/fhir_evaluation/rules/all_search_parameters_have_examples.rb +22 -11
- data/lib/inferno/dsl/fhir_evaluation/rules/differential_content_has_examples.rb +124 -0
- data/lib/inferno/dsl/fhir_evaluation/rules/value_sets_demonstrate.rb +233 -0
- data/lib/inferno/dsl/fhir_resource_navigation.rb +11 -2
- data/lib/inferno/dsl/fhir_resource_validation.rb +25 -3
- data/lib/inferno/dsl/fhirpath_evaluation.rb +25 -1
- data/lib/inferno/dsl/input_output_handling.rb +1 -0
- data/lib/inferno/dsl/must_support_assessment.rb +15 -3
- data/lib/inferno/dsl/requirement_set.rb +82 -0
- data/lib/inferno/dsl/runnable.rb +27 -0
- data/lib/inferno/dsl/short_id_manager.rb +55 -0
- data/lib/inferno/dsl/suite_requirements.rb +46 -0
- data/lib/inferno/entities/ig.rb +4 -0
- data/lib/inferno/entities/input.rb +14 -5
- data/lib/inferno/entities/requirement.rb +75 -0
- data/lib/inferno/entities/test.rb +3 -1
- data/lib/inferno/entities/test_group.rb +3 -1
- data/lib/inferno/entities/test_suite.rb +4 -0
- data/lib/inferno/exceptions.rb +6 -0
- data/lib/inferno/public/237.bundle.js +1 -1
- data/lib/inferno/public/bundle.js +54 -54
- data/lib/inferno/public/bundle.js.LICENSE.txt +3 -36
- data/lib/inferno/repositories/igs.rb +1 -2
- data/lib/inferno/repositories/requirements.rb +120 -0
- data/lib/inferno/version.rb +1 -1
- data/spec/shared/test_kit_examples.rb +32 -0
- metadata +36 -3
- data/lib/inferno/apps/cli/templates/lib/%library_name%/patient_group.rb.tt +0 -44
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
/**
|
16
16
|
* @license React
|
17
|
-
* react-is.production.
|
17
|
+
* react-is.production.js
|
18
18
|
*
|
19
|
-
* Copyright (c)
|
19
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
20
20
|
*
|
21
21
|
* This source code is licensed under the MIT license found in the
|
22
22
|
* LICENSE file in the root directory of this source tree.
|
@@ -53,46 +53,13 @@
|
|
53
53
|
*/
|
54
54
|
|
55
55
|
/**
|
56
|
-
* @mui/styled-engine v6.
|
56
|
+
* @mui/styled-engine v6.4.8
|
57
57
|
*
|
58
58
|
* @license MIT
|
59
59
|
* This source code is licensed under the MIT license found in the
|
60
60
|
* LICENSE file in the root directory of this source tree.
|
61
61
|
*/
|
62
62
|
|
63
|
-
/**
|
64
|
-
* @remix-run/router v1.21.0
|
65
|
-
*
|
66
|
-
* Copyright (c) Remix Software Inc.
|
67
|
-
*
|
68
|
-
* This source code is licensed under the MIT license found in the
|
69
|
-
* LICENSE.md file in the root directory of this source tree.
|
70
|
-
*
|
71
|
-
* @license MIT
|
72
|
-
*/
|
73
|
-
|
74
|
-
/**
|
75
|
-
* React Router DOM v6.28.1
|
76
|
-
*
|
77
|
-
* Copyright (c) Remix Software Inc.
|
78
|
-
*
|
79
|
-
* This source code is licensed under the MIT license found in the
|
80
|
-
* LICENSE.md file in the root directory of this source tree.
|
81
|
-
*
|
82
|
-
* @license MIT
|
83
|
-
*/
|
84
|
-
|
85
|
-
/**
|
86
|
-
* React Router v6.28.1
|
87
|
-
*
|
88
|
-
* Copyright (c) Remix Software Inc.
|
89
|
-
*
|
90
|
-
* This source code is licensed under the MIT license found in the
|
91
|
-
* LICENSE.md file in the root directory of this source tree.
|
92
|
-
*
|
93
|
-
* @license MIT
|
94
|
-
*/
|
95
|
-
|
96
63
|
/** @license React v16.13.1
|
97
64
|
* react-is.production.min.js
|
98
65
|
*
|
@@ -18,8 +18,7 @@ module Inferno
|
|
18
18
|
def find_or_load(id_or_path)
|
19
19
|
return find(id_or_path) if exists?(id_or_path)
|
20
20
|
|
21
|
-
ig_by_path = find_by_path(id_or_path)
|
22
|
-
|
21
|
+
ig_by_path = find_by_path(id_or_path) || find_by_path(find_local_file(id_or_path))
|
23
22
|
return ig_by_path if ig_by_path
|
24
23
|
|
25
24
|
load(id_or_path)
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'csv'
|
2
|
+
require_relative 'in_memory_repository'
|
3
|
+
require_relative '../entities/requirement'
|
4
|
+
|
5
|
+
module Inferno
|
6
|
+
module Repositories
|
7
|
+
# Repository that deals with persistence for the `Requirement` entity.
|
8
|
+
class Requirements < InMemoryRepository
|
9
|
+
def insert_from_file(path)
|
10
|
+
result = []
|
11
|
+
|
12
|
+
CSV.foreach(path, headers: true, header_converters: :symbol) do |row|
|
13
|
+
req_set = row[:req_set]
|
14
|
+
id = row[:id]
|
15
|
+
sub_requirements_field = row[:subrequirements]
|
16
|
+
|
17
|
+
combined_id = "#{req_set}@#{id}"
|
18
|
+
|
19
|
+
# Processing sub requirements: e.g. "170.315(g)(31)_hti-2-proposal@5,17,23,26,27,32,35,38-41"
|
20
|
+
sub_requirements = Inferno::Entities::Requirement.expand_requirement_ids(sub_requirements_field)
|
21
|
+
|
22
|
+
result << {
|
23
|
+
requirement_set: req_set,
|
24
|
+
id: combined_id,
|
25
|
+
url: row[:url],
|
26
|
+
requirement: row[:requirement],
|
27
|
+
conformance: row[:conformance],
|
28
|
+
actor: row[:actor],
|
29
|
+
sub_requirements: sub_requirements,
|
30
|
+
conditionality: row[:conditionality]&.downcase,
|
31
|
+
not_tested_reason: row[:not_tested_reason],
|
32
|
+
not_tested_details: row[:not_tested_details]
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
result.each do |raw_req|
|
37
|
+
requirement = Entities::Requirement.new(raw_req)
|
38
|
+
|
39
|
+
insert(requirement)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def filter_requirements_by_ids(ids)
|
44
|
+
all.select { |requirement| ids.include?(requirement.id) }
|
45
|
+
end
|
46
|
+
|
47
|
+
def requirements_for_suite(test_suite_id, test_session_id = nil)
|
48
|
+
test_suite = Inferno::Repositories::TestSuites.new.find(test_suite_id)
|
49
|
+
selected_suite_options =
|
50
|
+
if test_session_id.present?
|
51
|
+
Inferno::Repositories::TestSessions.new.find(test_session_id).suite_options
|
52
|
+
else
|
53
|
+
[]
|
54
|
+
end
|
55
|
+
|
56
|
+
requirement_sets =
|
57
|
+
test_suite
|
58
|
+
.requirement_sets
|
59
|
+
.select do |set|
|
60
|
+
set.suite_options.all? { |set_option| selected_suite_options.include? set_option }
|
61
|
+
end
|
62
|
+
|
63
|
+
requirements =
|
64
|
+
complete_requirement_set_requirements(requirement_sets) +
|
65
|
+
filtered_requirement_set_requirements(requirement_sets)
|
66
|
+
|
67
|
+
add_referenced_requirement_set_requirements(requirements, requirement_sets).uniq
|
68
|
+
end
|
69
|
+
|
70
|
+
def complete_requirement_set_requirements(requirement_sets)
|
71
|
+
requirement_sets.select(&:complete?)
|
72
|
+
.flat_map do |requirement_set|
|
73
|
+
all.select do |requirement|
|
74
|
+
requirement.requirement_set == requirement_set.identifier &&
|
75
|
+
requirement.actor == requirement_set.actor &&
|
76
|
+
requirement.tested?
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def filtered_requirement_set_requirements(requirement_sets)
|
82
|
+
requirement_sets.select(&:filtered?)
|
83
|
+
.flat_map do |requirement_set|
|
84
|
+
requirement_set
|
85
|
+
.expand_requirement_ids
|
86
|
+
.map { |requirement_id| find(requirement_id) }
|
87
|
+
.select { |requirement| requirement.actor == requirement_set.actor }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def add_referenced_requirement_set_requirements( # rubocop:disable Metrics/CyclomaticComplexity
|
92
|
+
requirements_to_process,
|
93
|
+
requirement_sets,
|
94
|
+
processed_requirements = []
|
95
|
+
)
|
96
|
+
return processed_requirements if requirements_to_process.blank?
|
97
|
+
|
98
|
+
referenced_requirement_sets = requirement_sets.select(&:referenced?)
|
99
|
+
|
100
|
+
referenced_requirement_ids =
|
101
|
+
requirements_to_process
|
102
|
+
.flat_map(&:sub_requirements)
|
103
|
+
.select do |requirement_id|
|
104
|
+
referenced_requirement_sets.any? do |set|
|
105
|
+
requirement_id.start_with?("#{set.identifier}@") && (find(requirement_id).actor == set.actor)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
new_requirements =
|
110
|
+
referenced_requirement_ids.map { |id| find(id) } - requirements_to_process - processed_requirements
|
111
|
+
|
112
|
+
add_referenced_requirement_set_requirements(
|
113
|
+
new_requirements,
|
114
|
+
referenced_requirement_sets,
|
115
|
+
(processed_requirements + requirements_to_process).uniq
|
116
|
+
)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
data/lib/inferno/version.rb
CHANGED
@@ -168,6 +168,38 @@ RSpec.shared_examples 'platform_deployable_test_kit' do
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
171
|
+
|
172
|
+
context 'when short_id map file present' do
|
173
|
+
it 'contains a short_id for every suite test and group' do
|
174
|
+
suites.each do |suite|
|
175
|
+
short_id_map = suite.short_id_map.dup
|
176
|
+
next unless short_id_map
|
177
|
+
|
178
|
+
runnable_ids = suite.all_descendants.map(&:id)
|
179
|
+
missing_ids = runnable_ids.reject { |id| short_id_map.delete(id).present? }
|
180
|
+
|
181
|
+
expect(missing_ids).to be_empty, <<~MSG
|
182
|
+
The following runnables in #{suite.short_id_file_path} are missing short_ids:
|
183
|
+
#{missing_ids.join(', ')}
|
184
|
+
MSG
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
it 'does not contain any extra short ids' do
|
189
|
+
suites.each do |suite|
|
190
|
+
short_id_map = suite.short_id_map.dup
|
191
|
+
next unless short_id_map
|
192
|
+
|
193
|
+
runnable_ids = suite.all_descendants.map(&:id)
|
194
|
+
extra_ids = short_id_map.keys - runnable_ids
|
195
|
+
|
196
|
+
expect(extra_ids).to be_empty, <<~MSG
|
197
|
+
#{suite.short_id_file_path} contains the following ids which do not belong
|
198
|
+
to any runnable: #{extra_ids.join(', ')}
|
199
|
+
MSG
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
171
203
|
end
|
172
204
|
|
173
205
|
describe 'presets' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inferno_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen MacVicar
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2025-
|
13
|
+
date: 2025-05-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -320,6 +320,20 @@ dependencies:
|
|
320
320
|
- - "~>"
|
321
321
|
- !ruby/object:Gem::Version
|
322
322
|
version: '13.0'
|
323
|
+
- !ruby/object:Gem::Dependency
|
324
|
+
name: roo
|
325
|
+
requirement: !ruby/object:Gem::Requirement
|
326
|
+
requirements:
|
327
|
+
- - "~>"
|
328
|
+
- !ruby/object:Gem::Version
|
329
|
+
version: 2.10.1
|
330
|
+
type: :runtime
|
331
|
+
prerelease: false
|
332
|
+
version_requirements: !ruby/object:Gem::Requirement
|
333
|
+
requirements:
|
334
|
+
- - "~>"
|
335
|
+
- !ruby/object:Gem::Version
|
336
|
+
version: 2.10.1
|
323
337
|
- !ruby/object:Gem::Dependency
|
324
338
|
name: sequel
|
325
339
|
requirement: !ruby/object:Gem::Requirement
|
@@ -405,6 +419,8 @@ files:
|
|
405
419
|
- lib/inferno/apps/cli.rb
|
406
420
|
- lib/inferno/apps/cli/console.rb
|
407
421
|
- lib/inferno/apps/cli/evaluate.rb
|
422
|
+
- lib/inferno/apps/cli/evaluate/database.yml
|
423
|
+
- lib/inferno/apps/cli/evaluate/docker-compose.evaluate.yml
|
408
424
|
- lib/inferno/apps/cli/execute.rb
|
409
425
|
- lib/inferno/apps/cli/execute/console_outputter.rb
|
410
426
|
- lib/inferno/apps/cli/execute/json_outputter.rb
|
@@ -414,6 +430,8 @@ files:
|
|
414
430
|
- lib/inferno/apps/cli/main.rb
|
415
431
|
- lib/inferno/apps/cli/migration.rb
|
416
432
|
- lib/inferno/apps/cli/new.rb
|
433
|
+
- lib/inferno/apps/cli/requirements.rb
|
434
|
+
- lib/inferno/apps/cli/requirements_exporter.rb
|
417
435
|
- lib/inferno/apps/cli/services.rb
|
418
436
|
- lib/inferno/apps/cli/suite.rb
|
419
437
|
- lib/inferno/apps/cli/suite_input_template.rb
|
@@ -450,11 +468,12 @@ files:
|
|
450
468
|
- lib/inferno/apps/cli/templates/docs/_Footer.md
|
451
469
|
- lib/inferno/apps/cli/templates/docs/_Sidebar.md
|
452
470
|
- lib/inferno/apps/cli/templates/lib/%library_name%.rb.tt
|
471
|
+
- lib/inferno/apps/cli/templates/lib/%library_name%/example_suite.rb.tt
|
472
|
+
- lib/inferno/apps/cli/templates/lib/%library_name%/example_suite/patient_group.rb.tt
|
453
473
|
- lib/inferno/apps/cli/templates/lib/%library_name%/igs/.keep
|
454
474
|
- lib/inferno/apps/cli/templates/lib/%library_name%/igs/README.md
|
455
475
|
- lib/inferno/apps/cli/templates/lib/%library_name%/igs/put_ig_package_dot_tgz_here
|
456
476
|
- lib/inferno/apps/cli/templates/lib/%library_name%/metadata.rb.tt
|
457
|
-
- lib/inferno/apps/cli/templates/lib/%library_name%/patient_group.rb.tt
|
458
477
|
- lib/inferno/apps/cli/templates/lib/%library_name%/suite.rb.tt
|
459
478
|
- lib/inferno/apps/cli/templates/lib/%library_name%/version.rb.tt
|
460
479
|
- lib/inferno/apps/cli/templates/run.sh
|
@@ -465,6 +484,7 @@ files:
|
|
465
484
|
- lib/inferno/apps/web/application.rb
|
466
485
|
- lib/inferno/apps/web/controllers/controller.rb
|
467
486
|
- lib/inferno/apps/web/controllers/requests/show.rb
|
487
|
+
- lib/inferno/apps/web/controllers/requirements/show.rb
|
468
488
|
- lib/inferno/apps/web/controllers/test_runs/create.rb
|
469
489
|
- lib/inferno/apps/web/controllers/test_runs/destroy.rb
|
470
490
|
- lib/inferno/apps/web/controllers/test_runs/results/index.rb
|
@@ -479,6 +499,7 @@ files:
|
|
479
499
|
- lib/inferno/apps/web/controllers/test_sessions/show.rb
|
480
500
|
- lib/inferno/apps/web/controllers/test_suites/check_configuration.rb
|
481
501
|
- lib/inferno/apps/web/controllers/test_suites/index.rb
|
502
|
+
- lib/inferno/apps/web/controllers/test_suites/requirements/index.rb
|
482
503
|
- lib/inferno/apps/web/controllers/test_suites/show.rb
|
483
504
|
- lib/inferno/apps/web/index.html.erb
|
484
505
|
- lib/inferno/apps/web/router.rb
|
@@ -489,6 +510,8 @@ files:
|
|
489
510
|
- lib/inferno/apps/web/serializers/message.rb
|
490
511
|
- lib/inferno/apps/web/serializers/preset.rb
|
491
512
|
- lib/inferno/apps/web/serializers/request.rb
|
513
|
+
- lib/inferno/apps/web/serializers/requirement.rb
|
514
|
+
- lib/inferno/apps/web/serializers/requirement_set.rb
|
492
515
|
- lib/inferno/apps/web/serializers/result.rb
|
493
516
|
- lib/inferno/apps/web/serializers/serializer.rb
|
494
517
|
- lib/inferno/apps/web/serializers/session_data.rb
|
@@ -505,6 +528,7 @@ files:
|
|
505
528
|
- lib/inferno/config/boot/ig_files.rb
|
506
529
|
- lib/inferno/config/boot/logging.rb
|
507
530
|
- lib/inferno/config/boot/presets.rb
|
531
|
+
- lib/inferno/config/boot/requirements.rb
|
508
532
|
- lib/inferno/config/boot/sidekiq.rb
|
509
533
|
- lib/inferno/config/boot/suites.rb
|
510
534
|
- lib/inferno/config/boot/validator.rb
|
@@ -528,6 +552,7 @@ files:
|
|
528
552
|
- lib/inferno/dsl/fhir_client_builder.rb
|
529
553
|
- lib/inferno/dsl/fhir_evaluation/config.rb
|
530
554
|
- lib/inferno/dsl/fhir_evaluation/dataset_loader.rb
|
555
|
+
- lib/inferno/dsl/fhir_evaluation/default.yml
|
531
556
|
- lib/inferno/dsl/fhir_evaluation/evaluation_context.rb
|
532
557
|
- lib/inferno/dsl/fhir_evaluation/evaluation_result.rb
|
533
558
|
- lib/inferno/dsl/fhir_evaluation/evaluator.rb
|
@@ -535,11 +560,14 @@ files:
|
|
535
560
|
- lib/inferno/dsl/fhir_evaluation/reference_extractor.rb
|
536
561
|
- lib/inferno/dsl/fhir_evaluation/rule.rb
|
537
562
|
- lib/inferno/dsl/fhir_evaluation/rules/all_defined_extensions_have_examples.rb
|
563
|
+
- lib/inferno/dsl/fhir_evaluation/rules/all_extensions_used.rb
|
538
564
|
- lib/inferno/dsl/fhir_evaluation/rules/all_must_supports_present.rb
|
539
565
|
- lib/inferno/dsl/fhir_evaluation/rules/all_profiles_have_examples.rb
|
540
566
|
- lib/inferno/dsl/fhir_evaluation/rules/all_references_resolve.rb
|
541
567
|
- lib/inferno/dsl/fhir_evaluation/rules/all_resources_reachable.rb
|
542
568
|
- lib/inferno/dsl/fhir_evaluation/rules/all_search_parameters_have_examples.rb
|
569
|
+
- lib/inferno/dsl/fhir_evaluation/rules/differential_content_has_examples.rb
|
570
|
+
- lib/inferno/dsl/fhir_evaluation/rules/value_sets_demonstrate.rb
|
543
571
|
- lib/inferno/dsl/fhir_resource_navigation.rb
|
544
572
|
- lib/inferno/dsl/fhir_resource_validation.rb
|
545
573
|
- lib/inferno/dsl/fhir_validation.rb
|
@@ -556,11 +584,14 @@ files:
|
|
556
584
|
- lib/inferno/dsl/oauth_credentials.rb
|
557
585
|
- lib/inferno/dsl/primitive_type.rb
|
558
586
|
- lib/inferno/dsl/request_storage.rb
|
587
|
+
- lib/inferno/dsl/requirement_set.rb
|
559
588
|
- lib/inferno/dsl/results.rb
|
560
589
|
- lib/inferno/dsl/resume_test_route.rb
|
561
590
|
- lib/inferno/dsl/runnable.rb
|
591
|
+
- lib/inferno/dsl/short_id_manager.rb
|
562
592
|
- lib/inferno/dsl/suite_endpoint.rb
|
563
593
|
- lib/inferno/dsl/suite_option.rb
|
594
|
+
- lib/inferno/dsl/suite_requirements.rb
|
564
595
|
- lib/inferno/dsl/tcp_exception_handler.rb
|
565
596
|
- lib/inferno/dsl/value_extractor.rb
|
566
597
|
- lib/inferno/entities.rb
|
@@ -573,6 +604,7 @@ files:
|
|
573
604
|
- lib/inferno/entities/message.rb
|
574
605
|
- lib/inferno/entities/preset.rb
|
575
606
|
- lib/inferno/entities/request.rb
|
607
|
+
- lib/inferno/entities/requirement.rb
|
576
608
|
- lib/inferno/entities/result.rb
|
577
609
|
- lib/inferno/entities/session_data.rb
|
578
610
|
- lib/inferno/entities/test.rb
|
@@ -607,6 +639,7 @@ files:
|
|
607
639
|
- lib/inferno/repositories/presets.rb
|
608
640
|
- lib/inferno/repositories/repository.rb
|
609
641
|
- lib/inferno/repositories/requests.rb
|
642
|
+
- lib/inferno/repositories/requirements.rb
|
610
643
|
- lib/inferno/repositories/results.rb
|
611
644
|
- lib/inferno/repositories/session_data.rb
|
612
645
|
- lib/inferno/repositories/tags.rb
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module <%= module_name %>
|
2
|
-
class PatientGroup < Inferno::TestGroup
|
3
|
-
title 'Patient Tests'
|
4
|
-
description 'Verify that the server makes Patient resources available'
|
5
|
-
id :patient_group
|
6
|
-
|
7
|
-
test do
|
8
|
-
title 'Server returns requested Patient resource from the Patient read interaction'
|
9
|
-
description %(
|
10
|
-
Verify that Patient resources can be read from the server.
|
11
|
-
)
|
12
|
-
|
13
|
-
input :patient_id,
|
14
|
-
title: 'Patient ID'
|
15
|
-
|
16
|
-
# Named requests can be used by other tests
|
17
|
-
makes_request :patient
|
18
|
-
|
19
|
-
run do
|
20
|
-
fhir_read(:patient, patient_id, name: :patient)
|
21
|
-
|
22
|
-
assert_response_status(200)
|
23
|
-
assert_resource_type(:patient)
|
24
|
-
assert resource.id == patient_id,
|
25
|
-
"Requested resource with id #{patient_id}, received resource with id #{resource.id}"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
test do
|
30
|
-
title 'Patient resource is valid'
|
31
|
-
description %(
|
32
|
-
Verify that the Patient resource returned from the server is a valid FHIR resource.
|
33
|
-
)
|
34
|
-
# This test will use the response from the :patient request in the
|
35
|
-
# previous test
|
36
|
-
uses_request :patient
|
37
|
-
|
38
|
-
run do
|
39
|
-
assert_resource_type(:patient)
|
40
|
-
assert_valid_resource
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|