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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a320805ef8a57a99df11a56953314c3fd6243d0e05becea117695bd350965b3
4
- data.tar.gz: 8f313d29a48f593964f28b1029fb7abb02f8de7131237815be1fe248ab326147
3
+ metadata.gz: 9842da03d68bf3f56e22b6c8c6e6645c88f0a25e876233f0ab45f95517362c43
4
+ data.tar.gz: f202c9a2252b630b13afc67adce9c314f42eec3b2da88bec05ccff227211e73b
5
5
  SHA512:
6
- metadata.gz: 756910586865db0f779cbafde0d65d56ba5fd4549de71dddd15319e87363518cae11601912dd346d65474eec1ef6a0fc8caf7514ff72ef4c987c003014069f4c
7
- data.tar.gz: 96548027100932535419c6d8fd403e75997669cb3b83c644b66b195053f53e4af78d0ca7ef4bd15c06fb37e317e67b0aaa008a08426f38324391e7f5f14f812c
6
+ metadata.gz: 3e71f7c84fa1b9559fe085ef8d26317a29d3ab902c666694880d2d545deb8dbfeb645d961cb667a4a60408a50fc8754e6c8a3fabe06e2aa7e8954030992e8e26
7
+ data.tar.gz: c87f346a09f1ac9a2a5f84cd80489e014cbaa768679061831e87900a7608da3d954157b4c76bb1fe97519595f8b00090230da5021f8b31dc25c3b4af71023b66
data/Rakefile CHANGED
@@ -19,8 +19,4 @@ task :rubocop do
19
19
  RuboCop::RakeTask.new
20
20
  end
21
21
 
22
- task :test do
23
- system('open coverage/index.html')
24
- end
25
-
26
22
  task default: [:test]
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.0.2'
27
- spec.add_dependency 'fhir_stu3_models', '>= 3.0.1'
28
- spec.add_dependency 'fhir_dstu2_models', '>= 1.0.10'
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'
@@ -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 = nil
319
- begin
320
- res = 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
- res.client = self unless res.nil?
340
- rescue => e
341
- FHIR.logger.error "Failed to parse #{format} as resource #{klass}: #{e.message}"
342
- res = nil
343
- end
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.send :include, InstanceMethods
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.client = self
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 resource_url(options), params, fhir_headers({content_type: "#{format || @default_format}",
136
- accept: "#{format || @default_format}"})
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 resource_url(options), params, fhir_headers(headers)
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 resource_url(options), params, fhir_headers(headers)
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
@@ -74,6 +74,7 @@ module FHIR
74
74
  rescue
75
75
  reply.resource = nil
76
76
  end
77
+ set_client_on_resource(reply.resource)
77
78
  reply.resource_class = reply.resource.class
78
79
  reply
79
80
  end
@@ -1,5 +1,5 @@
1
1
  module FHIR
2
2
  class Client
3
- VERSION = '4.0.6'.freeze
3
+ VERSION = '5.0.3'.freeze
4
4
  end
5
5
  end
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.0.6
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-04-30 00:00:00.000000000 Z
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.0.2
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.0.2
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.0.1
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.0.1
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.0.10
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.0.10
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
- rubygems_version: 3.1.4
306
- signing_key:
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: []