ips_test_kit 0.0.1
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 +7 -0
- data/LICENSE +201 -0
- data/lib/ips/allergy_intolerance.rb +40 -0
- data/lib/ips/bundle.rb +40 -0
- data/lib/ips/composition.rb +82 -0
- data/lib/ips/condition.rb +40 -0
- data/lib/ips/device.rb +40 -0
- data/lib/ips/device_observer.rb +40 -0
- data/lib/ips/device_use_statement.rb +40 -0
- data/lib/ips/diagnostic_report.rb +40 -0
- data/lib/ips/document_operation.rb +192 -0
- data/lib/ips/imaging_study.rb +40 -0
- data/lib/ips/immunization.rb +40 -0
- data/lib/ips/media_observation.rb +40 -0
- data/lib/ips/medication.rb +40 -0
- data/lib/ips/medication_statement.rb +40 -0
- data/lib/ips/observation_alcohol_use.rb +40 -0
- data/lib/ips/observation_pregnancy_edd.rb +40 -0
- data/lib/ips/observation_pregnancy_outcome.rb +40 -0
- data/lib/ips/observation_pregnancy_status.rb +40 -0
- data/lib/ips/observation_results.rb +40 -0
- data/lib/ips/observation_results_laboratory.rb +40 -0
- data/lib/ips/observation_results_pathology.rb +40 -0
- data/lib/ips/observation_results_radiology.rb +40 -0
- data/lib/ips/observation_tobacco_use.rb +40 -0
- data/lib/ips/organization.rb +40 -0
- data/lib/ips/patient.rb +40 -0
- data/lib/ips/practitioner.rb +40 -0
- data/lib/ips/practitioner_role.rb +40 -0
- data/lib/ips/procedure.rb +40 -0
- data/lib/ips/specimen.rb +40 -0
- data/lib/ips/summary_operation.rb +141 -0
- data/lib/ips/version.rb +3 -0
- data/lib/ips_test_kit.rb +56 -0
- metadata +150 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class DeviceObserver < Inferno::TestGroup
|
3
|
+
title 'Device (performer, observer) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the Device (performer, observer) profile.'
|
5
|
+
id :ips_device_observer
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct Device resource from the Device read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that Device resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Device-observer-uv-ips'
|
13
|
+
|
14
|
+
input :device_id
|
15
|
+
makes_request :device_observer
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:device, device_id, name: :device_observer)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:device)
|
22
|
+
assert resource.id == device_id,
|
23
|
+
"Requested resource with id #{device_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns Device resource that matches the Device (performer, observer) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the Device resource returned from the server matches the Device (performer, observer) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Device-observer-uv-ips'
|
33
|
+
uses_request :device_observer
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Device-observer-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class DeviceUseStatement < Inferno::TestGroup
|
3
|
+
title 'Device Use Statement (IPS) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the Device Use Statement (IPS) profile.'
|
5
|
+
id :ips_device_use_statement
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct DeviceUseStatement resource from the DeviceUseStatement read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that DeviceUseStatement resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/DeviceUseStatement-uv-ips'
|
13
|
+
|
14
|
+
input :device_use_statement_id
|
15
|
+
makes_request :device_use_statement
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:device_use_statement, device_use_statement_id, name: :device_use_statement)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:device_use_statement)
|
22
|
+
assert resource.id == device_use_statement_id,
|
23
|
+
"Requested resource with id #{device_use_statement_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns DeviceUseStatement resource that matches the Device Use Statement (IPS) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the DeviceUseStatement resource returned from the server matches the Device Use Statement (IPS) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/DeviceUseStatement-uv-ips'
|
33
|
+
uses_request :device_use_statement
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/DeviceUseStatement-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class DiagnosticReport < Inferno::TestGroup
|
3
|
+
title 'DiagnosticReport (IPS) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the DiagnosticReport (IPS) profile.'
|
5
|
+
id :ips_diagnostic_report
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct DiagnosticReport resource from the DiagnosticReport read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that DiagnosticReport resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/DiagnosticReport-uv-ips'
|
13
|
+
|
14
|
+
input :diagnostic_report_id
|
15
|
+
makes_request :diagnostic_report
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:diagnostic_report, diagnostic_report_id, name: :diagnostic_report)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:diagnostic_report)
|
22
|
+
assert resource.id == diagnostic_report_id,
|
23
|
+
"Requested resource with id #{diagnostic_report_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns DiagnosticReport resource that matches the DiagnosticReport (IPS) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the DiagnosticReport resource returned from the server matches the DiagnosticReport (IPS) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/DiagnosticReport-uv-ips'
|
33
|
+
uses_request :diagnostic_report
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/DiagnosticReport-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,192 @@
|
|
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
|
+
walk_resource(composition) 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
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class ImagingStudy < Inferno::TestGroup
|
3
|
+
title 'Imaging Study (IPS) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the Imaging Study (IPS) profile.'
|
5
|
+
id :ips_imaging_study
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct ImagingStudy resource from the ImagingStudy read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that ImagingStudy resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/ImagingStudy-uv-ips'
|
13
|
+
|
14
|
+
input :imaging_study_id
|
15
|
+
makes_request :imaging_study
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:imaging_study, imaging_study_id, name: :imaging_study)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:imaging_study)
|
22
|
+
assert resource.id == imaging_study_id,
|
23
|
+
"Requested resource with id #{imaging_study_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns ImagingStudy resource that matches the Imaging Study (IPS) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the ImagingStudy resource returned from the server matches the Imaging Study (IPS) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/ImagingStudy-uv-ips'
|
33
|
+
uses_request :imaging_study
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/ImagingStudy-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class Immunization < Inferno::TestGroup
|
3
|
+
title 'Immunization (IPS) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the Immunization (IPS) profile.'
|
5
|
+
id :ips_immunization
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct Immunization resource from the Immunization read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that Immunization resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Immunization-uv-ips'
|
13
|
+
|
14
|
+
input :immunization_id
|
15
|
+
makes_request :immunization
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:immunization, immunization_id, name: :immunization)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:immunization)
|
22
|
+
assert resource.id == immunization_id,
|
23
|
+
"Requested resource with id #{immunization_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns Immunization resource that matches the Immunization (IPS) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the Immunization resource returned from the server matches the Immunization (IPS) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Immunization-uv-ips'
|
33
|
+
uses_request :immunization
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Immunization-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class MediaObservation < Inferno::TestGroup
|
3
|
+
title 'Media observation (Results: laboratory, media) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the Media observation (Results: laboratory, media) profile.'
|
5
|
+
id :ips_media_observation
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct Media resource from the Media read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that Media resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Media-observation-uv-ips'
|
13
|
+
|
14
|
+
input :media_id
|
15
|
+
makes_request :media
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:media, media_id, name: :media)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:media)
|
22
|
+
assert resource.id == media_id,
|
23
|
+
"Requested resource with id #{media_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns Media resource that matches the Media observation (Results: laboratory, media) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the Media resource returned from the server matches the Media observation (Results: laboratory, media) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Media-observation-uv-ips'
|
33
|
+
uses_request :media
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Media-observation-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IPS
|
2
|
+
class Medication < Inferno::TestGroup
|
3
|
+
title 'Medication (IPS) Tests'
|
4
|
+
description 'Verify support for the server capabilities required by the Medication (IPS) profile.'
|
5
|
+
id :ips_medication
|
6
|
+
|
7
|
+
test do
|
8
|
+
title 'Server returns correct Medication resource from the Medication read interaction'
|
9
|
+
description %(
|
10
|
+
This test will verify that Medication resources can be read from the server.
|
11
|
+
)
|
12
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Medication-uv-ips'
|
13
|
+
|
14
|
+
input :medication_id
|
15
|
+
makes_request :medication
|
16
|
+
|
17
|
+
run do
|
18
|
+
fhir_read(:medication, medication_id, name: :medication)
|
19
|
+
|
20
|
+
assert_response_status(200)
|
21
|
+
assert_resource_type(:medication)
|
22
|
+
assert resource.id == medication_id,
|
23
|
+
"Requested resource with id #{medication_id}, received resource with id #{resource.id}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test do
|
28
|
+
title 'Server returns Medication resource that matches the Medication (IPS) profile'
|
29
|
+
description %(
|
30
|
+
This test will validate that the Medication resource returned from the server matches the Medication (IPS) profile.
|
31
|
+
)
|
32
|
+
# link 'http://hl7.org/fhir/uv/ips/StructureDefinition/Medication-uv-ips'
|
33
|
+
uses_request :medication
|
34
|
+
|
35
|
+
run do
|
36
|
+
assert_valid_resource(profile_url: 'http://hl7.org/fhir/uv/ips/StructureDefinition/Medication-uv-ips')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|