us_core_test_kit 0.4.5 → 0.4.7

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/fhir_resource_navigation.rb +9 -3
  3. data/lib/us_core_test_kit/generated/v3.1.1/metadata.yml +9 -1
  4. data/lib/us_core_test_kit/generated/v3.1.1/patient/metadata.yml +9 -1
  5. data/lib/us_core_test_kit/generated/v3.1.1/patient/patient_must_support_test.rb +5 -1
  6. data/lib/us_core_test_kit/generated/v4.0.0/device/metadata.yml +0 -2
  7. data/lib/us_core_test_kit/generated/v4.0.0/device_group.rb +0 -2
  8. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_reference_resolution_test.rb +1 -0
  9. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/metadata.yml +1 -1
  10. data/lib/us_core_test_kit/generated/v4.0.0/metadata.yml +10 -4
  11. data/lib/us_core_test_kit/generated/v4.0.0/patient/metadata.yml +9 -3
  12. data/lib/us_core_test_kit/generated/v4.0.0/patient/patient_must_support_test.rb +2 -2
  13. data/lib/us_core_test_kit/generated/v5.0.1/condition_encounter_diagnosis/metadata.yml +4 -4
  14. data/lib/us_core_test_kit/generated/v5.0.1/condition_problems_health_concerns/metadata.yml +4 -4
  15. data/lib/us_core_test_kit/generated/v5.0.1/device/metadata.yml +0 -2
  16. data/lib/us_core_test_kit/generated/v5.0.1/device_group.rb +0 -2
  17. data/lib/us_core_test_kit/generated/v5.0.1/medication_request/medication_request_reference_resolution_test.rb +1 -0
  18. data/lib/us_core_test_kit/generated/v5.0.1/medication_request/metadata.yml +1 -1
  19. data/lib/us_core_test_kit/generated/v5.0.1/metadata.yml +23 -12
  20. data/lib/us_core_test_kit/generated/v5.0.1/patient/metadata.yml +9 -3
  21. data/lib/us_core_test_kit/generated/v5.0.1/patient/patient_must_support_test.rb +2 -4
  22. data/lib/us_core_test_kit/generated/v5.0.1/service_request/metadata.yml +5 -0
  23. data/lib/us_core_test_kit/generator/group_generator.rb +0 -5
  24. data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +7 -167
  25. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_3.rb +62 -0
  26. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_4.rb +110 -0
  27. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb +113 -0
  28. data/lib/us_core_test_kit/generator/search_definition_metadata_extractor.rb +52 -4
  29. data/lib/us_core_test_kit/generator.rb +1 -1
  30. data/lib/us_core_test_kit/igs/us_core_501/StructureDefinition-condition-assertedDate.json +280 -0
  31. data/lib/us_core_test_kit/search_test.rb +1 -1
  32. data/lib/us_core_test_kit/version.rb +1 -1
  33. data/lib/us_core_test_kit.rb +0 -1
  34. metadata +6 -4
  35. data/lib/us_core_test_kit/custom_groups/v4.0.0/device_udi_pi_test.rb +0 -40
  36. data/lib/us_core_test_kit/ext/fhir_models.rb +0 -59
@@ -0,0 +1,280 @@
1
+ {
2
+ "resourceType": "StructureDefinition",
3
+ "id": "condition-assertedDate",
4
+ "extension": [
5
+ {
6
+ "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
7
+ "valueCode": "pc"
8
+ },
9
+ {
10
+ "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
11
+ "valueInteger": 1
12
+ }
13
+ ],
14
+ "url": "http://hl7.org/fhir/StructureDefinition/condition-assertedDate",
15
+ "version": "4.0.1",
16
+ "name": "assertedDate",
17
+ "title": "assertedDate",
18
+ "status": "draft",
19
+ "date": "2015-02-21",
20
+ "publisher": "Health Level Seven, Inc. - FHIR WG",
21
+ "contact": [
22
+ {
23
+ "telecom": [
24
+ {
25
+ "system": "url",
26
+ "value": "HL7"
27
+ }
28
+ ]
29
+ }
30
+ ],
31
+ "description": "The date on which the existence of the Condition was first asserted or acknowledged.",
32
+ "fhirVersion": "4.0.1",
33
+ "mapping": [
34
+ {
35
+ "identity": "rim",
36
+ "uri": "http://hl7.org/v3",
37
+ "name": "RIM Mapping"
38
+ }
39
+ ],
40
+ "kind": "complex-type",
41
+ "abstract": false,
42
+ "context": [
43
+ {
44
+ "type": "element",
45
+ "expression": "Condition"
46
+ }
47
+ ],
48
+ "type": "Extension",
49
+ "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
50
+ "derivation": "constraint",
51
+ "snapshot": {
52
+ "element": [
53
+ {
54
+ "id": "Extension",
55
+ "path": "Extension",
56
+ "short": "Date the condition was first asserted",
57
+ "definition": "The date on which the existence of the Condition was first asserted or acknowledged.",
58
+ "comment": "The assertedDate is in the context of the recording practitioner and might not be the same as the recordedDate.",
59
+ "min": 0,
60
+ "max": "1",
61
+ "base": {
62
+ "path": "Extension",
63
+ "min": 0,
64
+ "max": "*"
65
+ },
66
+ "condition": [
67
+ "ele-1"
68
+ ],
69
+ "constraint": [
70
+ {
71
+ "key": "ele-1",
72
+ "severity": "error",
73
+ "human": "All FHIR elements must have a @value or children",
74
+ "expression": "hasValue() or (children().count() > id.count())",
75
+ "xpath": "@value|f:*|h:div",
76
+ "source": "http://hl7.org/fhir/StructureDefinition/Element"
77
+ },
78
+ {
79
+ "key": "ext-1",
80
+ "severity": "error",
81
+ "human": "Must have either extensions or value[x], not both",
82
+ "expression": "extension.exists() != value.exists()",
83
+ "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
84
+ "source": "http://hl7.org/fhir/StructureDefinition/Extension"
85
+ }
86
+ ],
87
+ "isModifier": false
88
+ },
89
+ {
90
+ "id": "Extension.id",
91
+ "path": "Extension.id",
92
+ "representation": [
93
+ "xmlAttr"
94
+ ],
95
+ "short": "Unique id for inter-element referencing",
96
+ "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
97
+ "min": 0,
98
+ "max": "1",
99
+ "base": {
100
+ "path": "Element.id",
101
+ "min": 0,
102
+ "max": "1"
103
+ },
104
+ "type": [
105
+ {
106
+ "extension": [
107
+ {
108
+ "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
109
+ "valueUrl": "string"
110
+ }
111
+ ],
112
+ "code": "http://hl7.org/fhirpath/System.String"
113
+ }
114
+ ],
115
+ "isModifier": false,
116
+ "isSummary": false,
117
+ "mapping": [
118
+ {
119
+ "identity": "rim",
120
+ "map": "n/a"
121
+ }
122
+ ]
123
+ },
124
+ {
125
+ "id": "Extension.extension",
126
+ "path": "Extension.extension",
127
+ "slicing": {
128
+ "discriminator": [
129
+ {
130
+ "type": "value",
131
+ "path": "url"
132
+ }
133
+ ],
134
+ "description": "Extensions are always sliced by (at least) url",
135
+ "rules": "open"
136
+ },
137
+ "short": "Extension",
138
+ "definition": "An Extension",
139
+ "min": 0,
140
+ "max": "0",
141
+ "base": {
142
+ "path": "Element.extension",
143
+ "min": 0,
144
+ "max": "*"
145
+ },
146
+ "type": [
147
+ {
148
+ "code": "Extension"
149
+ }
150
+ ],
151
+ "constraint": [
152
+ {
153
+ "key": "ele-1",
154
+ "severity": "error",
155
+ "human": "All FHIR elements must have a @value or children",
156
+ "expression": "hasValue() or (children().count() > id.count())",
157
+ "xpath": "@value|f:*|h:div",
158
+ "source": "http://hl7.org/fhir/StructureDefinition/Element"
159
+ },
160
+ {
161
+ "key": "ext-1",
162
+ "severity": "error",
163
+ "human": "Must have either extensions or value[x], not both",
164
+ "expression": "extension.exists() != value.exists()",
165
+ "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
166
+ "source": "http://hl7.org/fhir/StructureDefinition/Extension"
167
+ }
168
+ ],
169
+ "isModifier": false,
170
+ "isSummary": false
171
+ },
172
+ {
173
+ "id": "Extension.url",
174
+ "path": "Extension.url",
175
+ "representation": [
176
+ "xmlAttr"
177
+ ],
178
+ "short": "identifies the meaning of the extension",
179
+ "definition": "Source of the definition for the extension code - a logical name or a URL.",
180
+ "comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
181
+ "min": 1,
182
+ "max": "1",
183
+ "base": {
184
+ "path": "Extension.url",
185
+ "min": 1,
186
+ "max": "1"
187
+ },
188
+ "type": [
189
+ {
190
+ "extension": [
191
+ {
192
+ "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
193
+ "valueUrl": "uri"
194
+ }
195
+ ],
196
+ "code": "http://hl7.org/fhirpath/System.String"
197
+ }
198
+ ],
199
+ "fixedUri": "http://hl7.org/fhir/StructureDefinition/condition-assertedDate",
200
+ "isModifier": false,
201
+ "isSummary": false,
202
+ "mapping": [
203
+ {
204
+ "identity": "rim",
205
+ "map": "N/A"
206
+ }
207
+ ]
208
+ },
209
+ {
210
+ "id": "Extension.value[x]",
211
+ "path": "Extension.value[x]",
212
+ "short": "Value of extension",
213
+ "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/extensibility.html) for a list).",
214
+ "min": 1,
215
+ "max": "1",
216
+ "base": {
217
+ "path": "Extension.value[x]",
218
+ "min": 0,
219
+ "max": "1"
220
+ },
221
+ "type": [
222
+ {
223
+ "code": "dateTime"
224
+ }
225
+ ],
226
+ "constraint": [
227
+ {
228
+ "key": "ele-1",
229
+ "severity": "error",
230
+ "human": "All FHIR elements must have a @value or children",
231
+ "expression": "hasValue() or (children().count() > id.count())",
232
+ "xpath": "@value|f:*|h:div",
233
+ "source": "http://hl7.org/fhir/StructureDefinition/Element"
234
+ }
235
+ ],
236
+ "isModifier": false,
237
+ "isSummary": false,
238
+ "mapping": [
239
+ {
240
+ "identity": "rim",
241
+ "map": "N/A"
242
+ }
243
+ ]
244
+ }
245
+ ]
246
+ },
247
+ "differential": {
248
+ "element": [
249
+ {
250
+ "id": "Extension",
251
+ "path": "Extension",
252
+ "short": "Date the condition was first asserted",
253
+ "definition": "The date on which the existence of the Condition was first asserted or acknowledged.",
254
+ "comment": "The assertedDate is in the context of the recording practitioner and might not be the same as the recordedDate.",
255
+ "min": 0,
256
+ "max": "1"
257
+ },
258
+ {
259
+ "id": "Extension.extension",
260
+ "path": "Extension.extension",
261
+ "max": "0"
262
+ },
263
+ {
264
+ "id": "Extension.url",
265
+ "path": "Extension.url",
266
+ "fixedUri": "http://hl7.org/fhir/StructureDefinition/condition-assertedDate"
267
+ },
268
+ {
269
+ "id": "Extension.value[x]",
270
+ "path": "Extension.value[x]",
271
+ "min": 1,
272
+ "type": [
273
+ {
274
+ "code": "dateTime"
275
+ }
276
+ ]
277
+ }
278
+ ]
279
+ }
280
+ }
@@ -620,7 +620,7 @@ module USCoreTestKit
620
620
  end
621
621
  end
622
622
 
623
- break if search_value.present?
623
+ break if search_value.present?
624
624
  end
625
625
 
626
626
  escaped_value = search_value&.gsub(',', '\\,')
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module USCoreTestKit
4
- VERSION = '0.4.5'
4
+ VERSION = '0.4.7'
5
5
  end
@@ -1,4 +1,3 @@
1
- require_relative 'us_core_test_kit/ext/fhir_models'
2
1
  require_relative 'us_core_test_kit/generated/v3.1.1/us_core_test_suite'
3
2
  require_relative 'us_core_test_kit/generated/v4.0.0/us_core_test_suite'
4
3
  require_relative 'us_core_test_kit/generated/v5.0.1/us_core_test_suite'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: us_core_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-03 00:00:00.000000000 Z
11
+ date: 2023-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -115,11 +115,9 @@ files:
115
115
  - lib/us_core_test_kit/custom_groups/v3.1.1/clinical_notes_guidance_group.rb
116
116
  - lib/us_core_test_kit/custom_groups/v4.0.0/capability_statement_group.rb
117
117
  - lib/us_core_test_kit/custom_groups/v4.0.0/clinical_notes_guidance_group.rb
118
- - lib/us_core_test_kit/custom_groups/v4.0.0/device_udi_pi_test.rb
119
118
  - lib/us_core_test_kit/custom_groups/v4.0.0/document_reference_custodian_test.rb
120
119
  - lib/us_core_test_kit/custom_groups/v5.0.1/capability_statement_group.rb
121
120
  - lib/us_core_test_kit/date_search_validation.rb
122
- - lib/us_core_test_kit/ext/fhir_models.rb
123
121
  - lib/us_core_test_kit/fhir_resource_navigation.rb
124
122
  - lib/us_core_test_kit/generated/v3.1.1/allergy_intolerance/allergy_intolerance_must_support_test.rb
125
123
  - lib/us_core_test_kit/generated/v3.1.1/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb
@@ -1279,6 +1277,9 @@ files:
1279
1277
  - lib/us_core_test_kit/generator/ig_metadata_extractor.rb
1280
1278
  - lib/us_core_test_kit/generator/ig_resources.rb
1281
1279
  - lib/us_core_test_kit/generator/must_support_metadata_extractor.rb
1280
+ - lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_3.rb
1281
+ - lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_4.rb
1282
+ - lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb
1282
1283
  - lib/us_core_test_kit/generator/must_support_test_generator.rb
1283
1284
  - lib/us_core_test_kit/generator/naming.rb
1284
1285
  - lib/us_core_test_kit/generator/provenance_revinclude_search_test_generator.rb
@@ -1302,6 +1303,7 @@ files:
1302
1303
  - lib/us_core_test_kit/igs/us_core_311/StructureDefinition-resprate.json
1303
1304
  - lib/us_core_test_kit/igs/us_core_400.tgz
1304
1305
  - lib/us_core_test_kit/igs/us_core_501.tgz
1306
+ - lib/us_core_test_kit/igs/us_core_501/StructureDefinition-condition-assertedDate.json
1305
1307
  - lib/us_core_test_kit/must_support_test.rb
1306
1308
  - lib/us_core_test_kit/provenance_validator.rb
1307
1309
  - lib/us_core_test_kit/read_test.rb
@@ -1,40 +0,0 @@
1
- module USCoreTestKit
2
- module USCoreV400
3
- class DeviceUdiPiTest < Inferno::Test
4
- id :us_core_v400_device_udi_pi_test
5
- title 'Device resources returned during previous tests have UDI-PI elements'
6
- description %(
7
- This test verifies implantable medical devices that have UDI information represent all of the UDI-PI elements that are present in the UDI code
8
- in the corresponding US Core Implantable Device Profile element.
9
- )
10
-
11
- def scratch_resources
12
- scratch[:device_resources] ||= {}
13
- end
14
-
15
- run do
16
- resources = scratch_resources[:all] || []
17
-
18
- skip_if resources.blank?,
19
- 'No Devices resources appear to be available. ' \
20
- 'Please use patients with more information.'
21
-
22
- resources.each do |device|
23
- if device.udiCarrier&.first&.carrierHRF.present? &&
24
- !(
25
- device.manufactureDate.present? ||
26
- device.expirationDate.present? ||
27
- device.lotNumber.present? ||
28
- device.serialNumber.present? ||
29
- device.distinctIdentifier.present?
30
- )
31
- add_message('error',
32
- "Device/#{device.id} has UDI information but does not have any UDI-PI elements presented")
33
- end
34
- end
35
-
36
- assert messages.blank?, "Resource has UDI information but does not have any UDI-PI elements presented"
37
- end
38
- end
39
- end
40
- end
@@ -1,59 +0,0 @@
1
- require 'json'
2
-
3
- # Extension to FHIR::Model. Prepending this into FHIR::Model (done below)
4
- # allows us to call super() on initialize when we overriding it,
5
- # while also defining new methods and attributes
6
- module InfernoFHIRModelExtensions
7
- attr_accessor :source_hash, :source_text
8
-
9
- def initialize(hash = {})
10
- super(hash)
11
- @source_hash = hash
12
- end
13
-
14
- def source_contents
15
- @source_text || JSON.generate(@source_hash)
16
- end
17
- end
18
-
19
- module FHIR
20
- class Model
21
- prepend ::InfernoFHIRModelExtensions
22
- end
23
- end
24
-
25
- # Extension to FHIR::Json. Prepending this into FHIR::Json (done below)
26
- # allows us to call super() on from_json
27
- module InfernoJson
28
- def from_json(json)
29
- resource = super(json)
30
- resource.source_text = json
31
- resource
32
- end
33
- end
34
-
35
- # Extension to FHIR::Xml. Prepending this into FHIR::Xml (done below)
36
- # allows us to call super() on from_xml
37
- module InfernoXml
38
- def from_xml(xml)
39
- resource = super(xml)
40
- resource.source_text = xml
41
- resource
42
- end
43
- end
44
-
45
- module FHIR
46
- module Json
47
- class << self
48
- prepend InfernoJson
49
- end
50
- end
51
- end
52
-
53
- module FHIR
54
- module Xml
55
- class << self
56
- prepend InfernoXml
57
- end
58
- end
59
- end