fhir_client 4.0.6 → 5.0.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.
- checksums.yaml +4 -4
- data/Rakefile +0 -4
- data/fhir_client.gemspec +3 -3
- data/lib/fhir_client/client.rb +37 -26
- data/lib/fhir_client/ext/model.rb +4 -7
- data/lib/fhir_client/ext/reference.rb +2 -2
- data/lib/fhir_client/sections/crud.rb +1 -1
- data/lib/fhir_client/sections/operations.rb +9 -4
- data/lib/fhir_client/sections/transactions.rb +1 -0
- data/lib/fhir_client/version.rb +1 -1
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9842da03d68bf3f56e22b6c8c6e6645c88f0a25e876233f0ab45f95517362c43
|
4
|
+
data.tar.gz: f202c9a2252b630b13afc67adce9c314f42eec3b2da88bec05ccff227211e73b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e71f7c84fa1b9559fe085ef8d26317a29d3ab902c666694880d2d545deb8dbfeb645d961cb667a4a60408a50fc8754e6c8a3fabe06e2aa7e8954030992e8e26
|
7
|
+
data.tar.gz: c87f346a09f1ac9a2a5f84cd80489e014cbaa768679061831e87900a7608da3d954157b4c76bb1fe97519595f8b00090230da5021f8b31dc25c3b4af71023b66
|
data/Rakefile
CHANGED
data/fhir_client.gemspec
CHANGED
@@ -23,9 +23,9 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_dependency 'activesupport', '>= 3'
|
25
25
|
spec.add_dependency 'addressable', '>= 2.3'
|
26
|
-
spec.add_dependency 'fhir_models', '>= 4.
|
27
|
-
spec.add_dependency 'fhir_stu3_models', '>= 3.
|
28
|
-
spec.add_dependency 'fhir_dstu2_models', '>= 1.
|
26
|
+
spec.add_dependency 'fhir_models', '>= 4.2.1'
|
27
|
+
spec.add_dependency 'fhir_stu3_models', '>= 3.1.1'
|
28
|
+
spec.add_dependency 'fhir_dstu2_models', '>= 1.1.1'
|
29
29
|
spec.add_dependency 'nokogiri', '>= 1.10.4'
|
30
30
|
spec.add_dependency 'oauth2', '~> 1.1'
|
31
31
|
spec.add_dependency 'rack', '>= 1.5'
|
data/lib/fhir_client/client.rb
CHANGED
@@ -315,35 +315,46 @@ module FHIR
|
|
315
315
|
def parse_reply(klass, format, response)
|
316
316
|
FHIR.logger.debug "Parsing response with {klass: #{klass}, format: #{format}, code: #{response.code}}."
|
317
317
|
return nil unless [200, 201].include? response.code
|
318
|
-
res =
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
318
|
+
res =
|
319
|
+
begin
|
320
|
+
if(@fhir_version == :dstu2 || klass&.ancestors&.include?(FHIR::DSTU2::Model))
|
321
|
+
if(format.include?('xml'))
|
322
|
+
FHIR::DSTU2::Xml.from_xml(response.body)
|
323
|
+
else
|
324
|
+
FHIR::DSTU2::Json.from_json(response.body)
|
325
|
+
end
|
326
|
+
elsif(@fhir_version == :r4 || klass&.ancestors&.include?(FHIR::Model))
|
327
|
+
if(format.include?('xml'))
|
328
|
+
FHIR::Xml.from_xml(response.body)
|
329
|
+
else
|
330
|
+
FHIR::Json.from_json(response.body)
|
331
|
+
end
|
332
|
+
else
|
333
|
+
if(format.include?('xml'))
|
334
|
+
FHIR::STU3::Xml.from_xml(response.body)
|
335
|
+
else
|
336
|
+
FHIR::STU3::Json.from_json(response.body)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
rescue => e
|
340
|
+
FHIR.logger.error "Failed to parse #{format} as resource #{klass}: #{e.message}"
|
341
|
+
nil
|
342
|
+
end
|
343
|
+
set_client_on_resource(res) unless res.nil?
|
344
344
|
res
|
345
345
|
end
|
346
346
|
|
347
|
+
def set_client_on_resource(resource)
|
348
|
+
return if resource.nil?
|
349
|
+
|
350
|
+
resource.client = self
|
351
|
+
resource.each_element do |element, _, _|
|
352
|
+
if element.is_a?(Reference) || element.is_a?(STU3::Reference) || element.is_a?(DSTU2::Reference) || element.respond_to?(:resourceType)
|
353
|
+
element.client = self
|
354
|
+
end
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
347
358
|
def strip_base(path)
|
348
359
|
path.gsub(@base_service_url, '')
|
349
360
|
end
|
@@ -2,17 +2,14 @@ module FHIR
|
|
2
2
|
module ModelExtras
|
3
3
|
|
4
4
|
def self.included base
|
5
|
-
base.
|
5
|
+
base.include InstanceMethods
|
6
6
|
base.extend ClassMethods
|
7
|
+
base.attr_writer :client
|
7
8
|
end
|
8
9
|
|
9
10
|
module InstanceMethods
|
10
11
|
def client
|
11
|
-
FHIR::Model.client
|
12
|
-
end
|
13
|
-
|
14
|
-
def client=(client)
|
15
|
-
FHIR::Model.client = client
|
12
|
+
@client || FHIR::Model.client
|
16
13
|
end
|
17
14
|
|
18
15
|
def vread(version_id)
|
@@ -146,4 +143,4 @@ module FHIR
|
|
146
143
|
include FHIR::ModelExtras
|
147
144
|
end
|
148
145
|
end
|
149
|
-
end
|
146
|
+
end
|
@@ -54,7 +54,7 @@ module FHIR
|
|
54
54
|
parts[:base_uri]
|
55
55
|
end
|
56
56
|
|
57
|
-
def read
|
57
|
+
def read(client = self.client)
|
58
58
|
return if !(relative? || absolute?)
|
59
59
|
if relative? || reference == client.full_resource_url(resource: resource_class, id: reference_id)
|
60
60
|
read_client = client
|
@@ -64,7 +64,7 @@ module FHIR
|
|
64
64
|
resource_class.read(reference_id, read_client)
|
65
65
|
end
|
66
66
|
|
67
|
-
def vread
|
67
|
+
def vread(client = self.client)
|
68
68
|
return if !(relative? || absolute?) || version_id.blank?
|
69
69
|
if relative? || reference == client.full_resource_url(resource: resource_class, id: reference_id)
|
70
70
|
read_client = client
|
@@ -226,7 +226,7 @@ module FHIR
|
|
226
226
|
resource.id = FHIR::ResourceAddress.pull_out_id(resource.class.name.demodulize, reply.self_link)
|
227
227
|
reply.resource = resource # just send back the submitted resource
|
228
228
|
end
|
229
|
-
reply.resource
|
229
|
+
set_client_on_resource(reply.resource)
|
230
230
|
reply.resource_class = resource.class
|
231
231
|
reply
|
232
232
|
end
|
@@ -132,8 +132,11 @@ module FHIR
|
|
132
132
|
add_resource_parameter(params, 'resource', resource)
|
133
133
|
add_parameter(params, 'onlyCertainMatches', 'Boolean', options[:onlyCertainMatches]) unless options[:onlyCertainMatches].nil?
|
134
134
|
add_parameter(params, 'count', 'Integer', options[:matchCount]) if options[:matchCount].is_a?(Integer)
|
135
|
-
post
|
136
|
-
|
135
|
+
post(
|
136
|
+
resource_url(options),
|
137
|
+
params,
|
138
|
+
fhir_headers({content_type: "#{format || @default_format}", accept: "#{format || @default_format}"})
|
139
|
+
).tap { |reply| set_client_on_resource(reply.resource) }
|
137
140
|
end
|
138
141
|
|
139
142
|
#
|
@@ -154,7 +157,8 @@ module FHIR
|
|
154
157
|
params = versioned_resource_class('Parameters').new
|
155
158
|
add_resource_parameter(params, 'resource', resource)
|
156
159
|
add_parameter(params, 'profile', 'Uri', options[:profile_uri]) unless options[:profile_uri].nil?
|
157
|
-
post
|
160
|
+
post(resource_url(options), params, fhir_headers(headers))
|
161
|
+
.tap { |reply| set_client_on_resource(reply.resource) }
|
158
162
|
end
|
159
163
|
|
160
164
|
def validate_existing(resource, id, options = {}, format = @default_format)
|
@@ -165,7 +169,8 @@ module FHIR
|
|
165
169
|
params = versioned_resource_class('Parameters').new
|
166
170
|
add_resource_parameter(params, 'resource', resource)
|
167
171
|
add_parameter(params, 'profile', 'Uri', options[:profile_uri]) unless options[:profile_uri].nil?
|
168
|
-
post
|
172
|
+
post(resource_url(options), params, fhir_headers(headers))
|
173
|
+
.tap { |reply| set_client_on_resource(reply.resource) }
|
169
174
|
end
|
170
175
|
|
171
176
|
private
|
data/lib/fhir_client/version.rb
CHANGED
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fhir_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andre Quina
|
8
8
|
- Jason Walonoski
|
9
9
|
- Robert Scanlon
|
10
10
|
- Reece Adamson
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2021-
|
14
|
+
date: 2021-12-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|
@@ -47,42 +47,42 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 4.
|
50
|
+
version: 4.2.1
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - ">="
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 4.
|
57
|
+
version: 4.2.1
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: fhir_stu3_models
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
62
|
- - ">="
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 3.
|
64
|
+
version: 3.1.1
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: 3.
|
71
|
+
version: 3.1.1
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: fhir_dstu2_models
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
76
|
- - ">="
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 1.
|
78
|
+
version: 1.1.1
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 1.
|
85
|
+
version: 1.1.1
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: nokogiri
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
@@ -287,7 +287,7 @@ homepage: https://github.com/fhir-crucible/fhir_client
|
|
287
287
|
licenses:
|
288
288
|
- Apache-2.0
|
289
289
|
metadata: {}
|
290
|
-
post_install_message:
|
290
|
+
post_install_message:
|
291
291
|
rdoc_options: []
|
292
292
|
require_paths:
|
293
293
|
- lib
|
@@ -302,8 +302,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
302
302
|
- !ruby/object:Gem::Version
|
303
303
|
version: '0'
|
304
304
|
requirements: []
|
305
|
-
|
306
|
-
|
305
|
+
rubyforge_project:
|
306
|
+
rubygems_version: 2.7.6.2
|
307
|
+
signing_key:
|
307
308
|
specification_version: 4
|
308
309
|
summary: A Gem for handling FHIR client requests in ruby
|
309
310
|
test_files: []
|