ips_test_kit 0.1.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 650a85c007fb04d840c6f168157bd88aba95322bc9519842f0b4ecd787c11754
4
- data.tar.gz: '0518d25606072dd83c41d44699f4af1943275e67e1357ebe5086ac453c8b237e'
3
+ metadata.gz: '08f2c86440184d9a85aa426ee93f205d2c5f4c43dd440cb68ceaf0e5190e52b7'
4
+ data.tar.gz: 2305ca26944ca2fedeaab8afe3b40dc368ccebd5841f334555943e2708c22865
5
5
  SHA512:
6
- metadata.gz: 50def57c91637dbbc72792d5fa23632bde5f4739a5f5498db9e5f893d01dc90b4c747a5d91d2f00963bcb88abb78c602cabe97bc015a3e9f173881595f442f19
7
- data.tar.gz: 516bc1507f00364e7ad0c7ccc11cc461f814126c4db5e0c5d230f914b7edc53df5968ced71b770b92c1ee1b2068955aa52fa939d2316463a14ca8b5a50b5821d
6
+ metadata.gz: 5011ad2a089725196601c2ac4e43f8314fca677bae1f75247c2d1cc973a3601ca874c8dca309de8be05804e4792079de4a4901e5e3934f4e6a2c9da523b5aa4a
7
+ data.tar.gz: 795e384158a473b796f9299cbe4a829f1fc868121ba2d341035f1c616bba1f56d0f889556eb8a14c4fb297b012fe2f5a9368f08703cdc9505c62bf46a6b767e8
@@ -37,46 +37,5 @@ module IPS
37
37
  end
38
38
  end
39
39
 
40
- test do
41
- title 'Server returns a fully bundled document from a Composition resource'
42
- description %(
43
- This test will perform the $document operation on the chosen composition resource with the persist option on.
44
- It will verify that all referenced resources in the composition are in the document bundle and that we are able to retrieve the bundle after it's generated.
45
- )
46
- # link 'https://www.hl7.org/fhir/composition-operation-document.html'
47
- uses_request :composition
48
-
49
- run do
50
- skip_if resource.blank?, 'No resource found from Read test'
51
- composition = resource
52
- references_in_composition = []
53
- walk_resource(composition) do |value, meta, _path|
54
- next if meta['type'] != 'Reference'
55
- next if value.reference.blank?
56
-
57
- references_in_composition << value
58
- end
59
-
60
- fhir_client.get("Composition/#{resource.id}/$document?persist=true")
61
- assert_response_status(200)
62
- assert_resource_type(:bundle)
63
-
64
- bundled_resources = resource.entry.map(&:resource)
65
- missing_resources =
66
- references_in_composition
67
- .select(&:relative?)
68
- .select do |reference|
69
- resource_class = reference.resource_class
70
- resource_id = reference.reference.split('/').last
71
- bundled_resources.none? do |resource|
72
- resource.instance_of?(resource_class) && resource.id == resource_id
73
- end
74
- end
75
-
76
- assert missing_resources.empty?,
77
- 'The following resources were missing in the response from the document' \
78
- "operation: #{missing_resources.map(&:to_s).join(',')}"
79
- end
80
- end
81
40
  end
82
41
  end
@@ -0,0 +1,71 @@
1
+ module IPS
2
+ class DocRefOperation < Inferno::TestGroup
3
+ title 'DocRef Operation Tests'
4
+
5
+ description %(
6
+ Verify support for the $docref operation as as described in the [IPS
7
+ Guidance](http://hl7.org/fhir/uv/ips/STU1.1/ipsGeneration.html).
8
+
9
+ Note that this currently does not request an IPS bundle specifically
10
+ therefore does not validate the content.
11
+ )
12
+ id :ips_docref_operation
13
+ run_as_group
14
+ optional
15
+
16
+ test do
17
+ title 'IPS Server declares support for $docref operation in CapabilityStatement'
18
+ description %(
19
+ The IPS Server declares support for DocumentReference/$docref operation in its server CapabilityStatement
20
+ )
21
+ # link 'http://build.fhir.org/composition-operation-document.html'
22
+
23
+ run do
24
+ fhir_get_capability_statement
25
+ assert_response_status(200)
26
+ assert_resource_type(:capability_statement)
27
+
28
+ operations = resource.rest&.flat_map do |rest|
29
+ rest.resource
30
+ &.select { |r| r.type == 'DocumentReference' && r.respond_to?(:operation) }
31
+ &.flat_map(&:operation)
32
+ end&.compact
33
+
34
+ operation_defined = operations.any? do |operation|
35
+ operation.definition == 'http://hl7.org/fhir/uv/ipa/OperationDefinition/docref' || 'docref' == operation.name.downcase
36
+ end
37
+
38
+ assert operation_defined, 'Server CapabilityStatement did not declare support for $docref operation in DocumentReference resource.'
39
+ end
40
+ end
41
+
42
+ test do
43
+ title 'Server responds successfully to a $docref operation'
44
+ description %(
45
+ This test creates a $docref operation request for a patient. Note that this
46
+ currently does not request an IPS bundle specifically therefore does not validate
47
+ the content.
48
+ )
49
+
50
+ input :patient_id
51
+ makes_request :docref_operation
52
+
53
+ run do
54
+
55
+ # Perform a FHIR Operation
56
+ parameters = FHIR::Parameters.new(
57
+ parameter: [
58
+ {
59
+ name: 'patient',
60
+ valueId: patient_id
61
+ }
62
+ ]
63
+ )
64
+ fhir_operation("/DocumentReference/$docref", body: parameters)
65
+
66
+ assert_response_status(200)
67
+ end
68
+
69
+ end
70
+ end
71
+ end
@@ -2,19 +2,33 @@ module IPS
2
2
  class IPSResourceValidation < Inferno::TestGroup
3
3
  title 'IPS Resource Validation Tests'
4
4
  id :ips_resource_validation
5
+ description %(
6
+ This group performs content validation, which is useful for evaluating
7
+ conformance of systems that produce IPS bundles but do not generate
8
+ content using a FHIR interface as described in the [IPS
9
+ Guidance](http://hl7.org/fhir/uv/ips/STU1.1/ipsGeneration.html).
10
+
11
+ There is currently a single validation test for IPS bundles without any
12
+ other context-specific constraints. Therefore, this test measures a
13
+ systems ability to produce a single, valid IPS bundle. Future enhancements
14
+ to these tests should require systems to demonstrate more than just a
15
+ single valid IPS bundle.
16
+ )
5
17
 
6
18
  group do
7
19
  title 'IPS Bundle with no other constraints'
8
20
 
9
21
  test do
10
- title 'Valid IPS Bundle'
22
+ title 'IPS Bundle meets constraints provided in the IPS Bundle profile'
11
23
  description %(
12
24
  This test will validate the content of an IPS bundle to ensure it is valid.
13
25
  )
14
- input :bundle_content, title: 'IPS Bundle', type: 'textarea'
26
+ input :bundle_content, title: 'IPS Bundle', type: 'textarea', optional: true, description: 'Validate a single IPS bundle (optional)'
15
27
 
16
28
  run do
17
29
 
30
+ skip_if bundle_content.blank?, 'No IPS Bundle provided'
31
+
18
32
  resource_instance = FHIR.from_contents(bundle_content)
19
33
 
20
34
  assert_resource_type(:bundle, resource: resource_instance)
@@ -1,15 +1,18 @@
1
1
  module IPS
2
2
  class SummaryOperation < Inferno::TestGroup
3
- title 'Summary Operation (IPS) Tests'
4
- description 'Verify support for the $summary operation required by the Specimen (IPS) profile.'
3
+ title 'Summary Operation Tests'
4
+ description %(
5
+ Verify support for the $summary operation as as described in the [IPS
6
+ Guidance](http://hl7.org/fhir/uv/ips/STU1.1/ipsGeneration.html).
7
+ )
5
8
  id :ips_summary_operation
9
+ run_as_group
6
10
 
7
11
  test do
8
12
  title 'IPS Server declares support for $summary operation in CapabilityStatement'
9
13
  description %(
10
- The IPS Server SHALL declare support for Patient/[id]/$summary operation in its server CapabilityStatement
14
+ The IPS Server declares support for Patient/[id]/$summary operation in its server CapabilityStatement
11
15
  )
12
- # link 'http://build.fhir.org/ig/HL7/fhir-ips/index.html'
13
16
 
14
17
  run do
15
18
  fhir_get_capability_statement
@@ -17,32 +20,40 @@ module IPS
17
20
 
18
21
  operations = resource.rest&.flat_map do |rest|
19
22
  rest.resource
20
- &.select { |r| r.type == 'Composition' && r.respond_to?(:operation) }
23
+ &.select { |r| r.type == 'Patient' && r.respond_to?(:operation) }
21
24
  &.flat_map(&:operation)
22
25
  end&.compact
23
26
 
24
27
  operation_defined = operations.any? do |operation|
25
- operation.definition == 'http://hl7.org/fhir/OperationDefinition/Patient-summary' ||
28
+ operation.definition == 'http://hl7.org/fhir/uv/ips/OperationDefinition/summary' ||
26
29
  ['summary', 'patient-summary'].include?(operation.name.downcase)
27
30
  end
28
31
 
29
- assert operation_defined, 'Server CapabilityStatement did not declare support for $summary operation in Composition resource.'
32
+ assert operation_defined, 'Server CapabilityStatement did not declare support for $summary operation in Patient resource.'
30
33
  end
31
34
  end
32
35
 
33
36
  test do
34
- title 'IPS Server returns Bundle resource for Patient/id/$summary operation'
37
+ title 'IPS Server returns Bundle resource for Patient/[id]/$summary GET operation'
35
38
  description %(
36
- IPS Server return valid IPS Bundle resource as successful result of $summary operation
39
+ IPS Server returns a valid IPS Bundle resource as successful result of
40
+ $summary operation.
37
41
 
38
- POST [base]/Patient/id/$summary
42
+ This test currently only issues a GET request for the summary due to a
43
+ limitation in Inferno in issuing POST requests that omit a Content-Type
44
+ header when the body is empty. Inferno currently adds a `Content-Type:
45
+ application/x-www-form-urlencoded` header when issuing a POST with no
46
+ body, which causes issues in known reference implementations.
47
+
48
+ A future update to this test suite should include a required POST
49
+ request as well as an optional GET request for this content.
39
50
  )
40
- # link 'http://build.fhir.org/ig/HL7/fhir-ips/index.html'
51
+
41
52
  input :patient_id
42
53
  makes_request :summary_operation
43
54
 
44
55
  run do
45
- fhir_operation("Patient/#{patient_id}/$summary", name: :summary_operation)
56
+ fhir_operation("Patient/#{patient_id}/$summary", name: :summary_operation, operation_method: :get)
46
57
  assert_response_status(200)
47
58
  assert_resource_type(:bundle)
48
59
  assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips')
@@ -62,10 +73,10 @@ module IPS
62
73
 
63
74
  assert resource.entry.length.positive?, 'Bundle has no entries'
64
75
 
65
- entry = resource.entry.first
76
+ first_resource = resource.entry.first.resource
66
77
 
67
- assert entry.resource.is_a?(FHIR::Composition), 'The first entry in the Bundle is not a Composition'
68
- assert_valid_resource(resource: entry, profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips')
78
+ assert first_resource.is_a?(FHIR::Composition), 'The first entry in the Bundle is not a Composition'
79
+ assert_valid_resource(resource: first_resource, profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips')
69
80
  end
70
81
  end
71
82
 
data/lib/ips/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module IPS
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.9.0'.freeze
3
3
  end
data/lib/ips_test_kit.rb CHANGED
@@ -1,36 +1,89 @@
1
1
  Dir.glob(File.join(__dir__, 'ips', '*.rb')).each { |path| require_relative path.delete_prefix("#{__dir__}/") }
2
+ require_relative 'ips/version'
2
3
 
3
4
  module IPS
4
5
  class Suite < Inferno::TestSuite
5
- title 'International Patient Summary (IPS)'
6
- description 'International Patient Summary (IPS)'
6
+ title 'International Patient Summary (IPS) v1.1.0'
7
+ short_title 'IPS v1.1.0'
8
+ description %(
9
+ This test suite evaluates the ability of a system to provide patient
10
+ summary data expressed using HL7® FHIR® in accordance with the
11
+ [International Patient Summary Implementation Guide (IPS
12
+ IG) v1.1.0](https://www.hl7.org/fhir/uv/ips/STU1.1).
13
+
14
+ Because IPS bundles can be generated and transmitted in many different
15
+ ways beyond a traditional FHIR RESTful server, this test suite allows you
16
+ to optionally evaluate a single bundle that is not being provided by a server in the
17
+ 'IPS Resource Validation Tests'.
18
+
19
+ For systems that support a standard API for generating and communicating
20
+ these bundles in accordance with the guidance provided in the IG, use the
21
+ 'IPS Operation Tests'.
22
+
23
+ For systems that also provide a FHIR API access to the components resources
24
+ of the IPS bundle, use the 'IPS Read Tests'.
25
+
26
+ This suite provides two presets:
27
+ * HL7.org IPS Server: Hosted reference IPS Server. This is suitable for running
28
+ the 'Operation' and 'Read' tests. Resource IDs may not remain valid as this is an
29
+ open server.
30
+ * IPS Example Summary Bundle: Populates the 'IPS Resource Validation Test' with an
31
+ example provided in the IG.
32
+ )
7
33
 
8
34
  id 'ips'
35
+ version IPS::VERSION
9
36
 
10
37
  validator do
11
38
  url ENV.fetch('VALIDATOR_URL', 'http://validator_service:4567')
12
39
  end
40
+
41
+ links [
42
+ {
43
+ label: 'Report Issue',
44
+ url: 'https://github.com/inferno-framework/ips-test-kit/issues/'
45
+ },
46
+ {
47
+ label: 'Open Source',
48
+ url: 'https://github.com/inferno-framework/ips-test-kit/'
49
+ },
50
+ {
51
+ label: 'International Patient Summary IG v1.1.0',
52
+ url: 'http://hl7.org/fhir/uv/ips/STU1.1/'
53
+ }
54
+ ]
13
55
 
14
56
  # Comment this out to remove
15
57
  group from: :ips_resource_validation
16
58
 
17
59
  group do
18
- title 'IPS Operations'
60
+ title 'IPS Server Operations for Generating IPS Bundles Tests'
61
+ short_title 'IPS Operation Tests'
62
+ description %(
63
+ This group evaluates the ability of systems to provide a standard FHIR
64
+ API for generating and communicating an IPS Bundle as described in the
65
+ [IPS Data Generation and Inclusion Guidance](http://hl7.org/fhir/uv/ips/STU1.1/ipsGeneration.html).
66
+
67
+ Please note that the DocRef tests are currently of limited scope.
68
+ )
69
+
19
70
 
20
- input :url
71
+ input :url, title: 'IPS FHIR Server Base URL'
21
72
 
22
73
  fhir_client do
23
74
  url :url
24
75
  end
25
76
 
26
- group from: :ips_document_operation
27
77
  group from: :ips_summary_operation
78
+ group from: :ips_docref_operation
28
79
  end
29
80
 
30
81
  group do
31
- title 'IPS Read and Validate Profiles'
82
+ title 'IPS Server Read and Validate Profiles Tests'
83
+ short_title 'IPS Read Tests'
84
+ optional
32
85
 
33
- input :url
86
+ input :url, title: 'IPS FHIR Server Base URL'
34
87
 
35
88
  fhir_client do
36
89
  url :url
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ips_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - MITRE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-03 00:00:00.000000000 Z
11
+ date: 2024-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.2
19
+ version: 0.4.21
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.2
26
+ version: 0.4.21
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: database_cleaner-sequel
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -96,7 +96,7 @@ files:
96
96
  - lib/ips/device_observer.rb
97
97
  - lib/ips/device_use_statement.rb
98
98
  - lib/ips/diagnostic_report.rb
99
- - lib/ips/document_operation.rb
99
+ - lib/ips/docref_operation.rb
100
100
  - lib/ips/imaging_study.rb
101
101
  - lib/ips/immunization.rb
102
102
  - lib/ips/ips_resource_validation.rb
@@ -1,192 +0,0 @@
1
- module IPS
2
- class DocumentOperation < Inferno::TestGroup
3
- title 'Document Operation Tests'
4
- description 'Verify support for the $document operation required by the Specimen (IPS) profile.'
5
- id :ips_document_operation
6
-
7
- test do
8
- title 'IPS Server declares support for $document operation in CapabilityStatement'
9
- description %(
10
- The IPS Server SHALL declare support for Composition/[id]/$document operation in its server CapabilityStatement
11
- )
12
- # link 'http://build.fhir.org/composition-operation-document.html'
13
-
14
- run do
15
- fhir_get_capability_statement
16
- assert_response_status(200)
17
- assert_resource_type(:capability_statement)
18
-
19
- operations = resource.rest&.flat_map do |rest|
20
- rest.resource
21
- &.select { |r| r.type == 'Composition' && r.respond_to?(:operation) }
22
- &.flat_map(&:operation)
23
- end&.compact
24
-
25
- operation_defined = operations.any? do |operation|
26
- operation.definition == 'http://hl7.org/fhir/OperationDefinition/Composition-document' ||
27
- ['document', 'composition-document'].include?(operation.name.downcase)
28
- end
29
-
30
- assert operation_defined, 'Server CapabilityStatement did not declare support for $document operation in Composition resource.'
31
- end
32
- end
33
-
34
- test do
35
- title 'Server returns a fully bundled document from a Composition resource'
36
- description %(
37
- This test will perform the $document operation on the chosen composition resource with the persist option on.
38
- It will verify that all referenced resources in the composition are in the document bundle and that we are able to retrieve the bundle after it's generated.
39
- )
40
- # link 'https://www.hl7.org/fhir/composition-operation-document.html'
41
-
42
- input :composition_id
43
- makes_request :document_operation
44
-
45
- run do
46
- fhir_read(:composition, composition_id)
47
-
48
- assert_response_status(200)
49
- assert_resource_type(:composition)
50
- assert resource.id == composition_id,
51
- "Requested resource with id #{composition_id}, received resource with id #{resource.id}"
52
-
53
- assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips')
54
-
55
- composition = resource
56
- references_in_composition = []
57
- composition.each_element do |value, meta, _path|
58
- next if meta['type'] != 'Reference'
59
- next if value.reference.blank?
60
-
61
- references_in_composition << value
62
- end
63
-
64
- fhir_operation("Composition/#{composition.id}/$document?persist=true", name: :document_operation)
65
- assert_response_status(200)
66
- assert_resource_type(:bundle)
67
-
68
- bundled_resources = resource.entry.map(&:resource)
69
- missing_resources =
70
- references_in_composition
71
- .select(&:relative?)
72
- .select do |reference|
73
- resource_class = reference.resource_class
74
- resource_id = reference.reference.split('/').last
75
- bundled_resources.none? do |resource|
76
- resource.instance_of?(resource_class) && resource.id == resource_id
77
- end
78
- end
79
-
80
- assert missing_resources.empty?,
81
- 'The following resources were missing in the response from the document ' \
82
- "operation: #{missing_resources.map(&:reference).join(',')}"
83
- end
84
- end
85
-
86
- test do
87
- title 'IPS Server returns Bundle resource for Composition/id/$document operation'
88
- description %(
89
- IPS Server return valid IPS Bundle resource as successful result of $document operation
90
-
91
- POST [base]/Composition/id/$document
92
- )
93
- # link 'https://www.hl7.org/fhir/composition-operation-document.html'
94
- uses_request :document_operation
95
-
96
- run do
97
- skip_if !resource.is_a?(FHIR::Bundle), 'No Bundle returned from document operation'
98
-
99
- assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips')
100
- end
101
- end
102
-
103
- test do
104
- title 'IPS Server returns Bundle resource containing valid IPS Composition entry'
105
- description %(
106
- IPS Server return valid IPS Composition resource in the Bundle as first entry
107
- )
108
- # link 'http://hl7.org/fhir/uv/ips/StructureDefinition-Composition-uv-ips.html'
109
- uses_request :document_operation
110
-
111
- run do
112
- skip_if !resource.is_a?(FHIR::Bundle), 'No Bundle returned from document operation'
113
-
114
- assert resource.entry.length.positive?, 'Bundle has no entries'
115
-
116
- entry = resource.entry.first
117
-
118
- assert entry.resource.is_a?(FHIR::Composition), 'The first entry in the Bundle is not a Composition'
119
- assert_valid_resource(resource: entry, profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips')
120
- end
121
- end
122
-
123
- test do
124
- title 'IPS Server returns Bundle resource containing valid IPS MedicationStatement entry'
125
- description %(
126
- IPS Server return valid IPS MedicationStatement resource in the Bundle as first entry
127
- )
128
- # link 'http://hl7.org/fhir/uv/ips/StructureDefinition-MedicationStatement-uv-ips.html'
129
- uses_request :document_operation
130
-
131
- run do
132
- skip_if !resource.is_a?(FHIR::Bundle), 'No Bundle returned from document operation'
133
-
134
- resources_present = resource.entry.any? { |r| r.resource.is_a?(FHIR::MedicationStatement) }
135
-
136
- assert resources_present, 'Bundle does not contain any MedicationStatement resources'
137
-
138
- assert_valid_bundle_entries(
139
- resource_types: {
140
- medication_statement: 'http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips'
141
- }
142
- )
143
- end
144
- end
145
-
146
- test do
147
- title 'IPS Server returns Bundle resource containing valid IPS AllergyIntolerance entry'
148
- description %(
149
- IPS Server return valid IPS AllergyIntolerance resource in the Bundle as first entry
150
- )
151
- # link 'http://hl7.org/fhir/uv/ips/StructureDefinition-AllergyIntolerance-uv-ips.html'
152
- uses_request :document_operation
153
-
154
- run do
155
- skip_if !resource.is_a?(FHIR::Bundle), 'No Bundle returned from document operation'
156
-
157
- resources_present = resource.entry.any? { |r| r.resource.is_a?(FHIR::AllergyIntolerance) }
158
-
159
- assert resources_present, 'Bundle does not contain any AllergyIntolerance resources'
160
-
161
- assert_valid_bundle_entries(
162
- resource_types: {
163
- allergy_intolerance: 'http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips'
164
- }
165
- )
166
- end
167
- end
168
-
169
- test do
170
- title 'IPS Server returns Bundle resource containing valid IPS Condition entry'
171
- description %(
172
- IPS Server return valid IPS Condition resource in the Bundle as first entry
173
- )
174
- # link 'http://hl7.org/fhir/uv/ips/StructureDefinition-Condition-uv-ips.html'
175
- uses_request :document_operation
176
-
177
- run do
178
- skip_if !resource.is_a?(FHIR::Bundle), 'No Bundle returned from document operation'
179
-
180
- resources_present = resource.entry.any? { |r| r.resource.is_a?(FHIR::Condition) }
181
-
182
- assert resources_present, 'Bundle does not contain any Condition resources'
183
-
184
- assert_valid_bundle_entries(
185
- resource_types: {
186
- condition: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Condition-uv-ips'
187
- }
188
- )
189
- end
190
- end
191
- end
192
- end