fhir_client 3.0.6 → 3.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3ea696abc5f4af913b2cd11a96299090f49fcd5859e53631bff94e48e68a665
4
- data.tar.gz: 0e3b5a443b3f71bd73c0183f964a832b6eabe67e6e4b2e2b961087cefd320dee
3
+ metadata.gz: e672a83cc2c6d38d9b7b907e593fcee05ecead0a75320f79a8a65627deff0df7
4
+ data.tar.gz: 79219638d996eaa08b9ec7b38957da73eb1e6e5c5d26b428480178ee2e939fc4
5
5
  SHA512:
6
- metadata.gz: 2099e5b55c14de2726db9cac85f042f1974d51f6621fdd3589c6c25e52d4f6a05f2a375dde770b60b1aa8b0cf783e714714fb989901ff2e3c4e1314e43aa0312
7
- data.tar.gz: 9ad4e0543eda624b54653aa6ac7cfa9bb4371426757af02a1df4012e1b33cc80083d74940f4758f333d5f158588ee1fa1a3663a06e0339109014109c55f57f5f
6
+ metadata.gz: 904a33c45ee559acfbc0372435c9ee31e76412ef840d3616ae6f8e584aa9381d8a43cb81d937a3818891a82fe26ca5acbcaa74778602bbbe42c01c78d2e7ea35
7
+ data.tar.gz: ad3ec868c7c139105890e4091e1780efffb30649df4b7e63a5fbc8ed599dcfa249cfac2d7b84f12236712a32ec4d69b4a58c5d8fb1891330a6fc30907dfddae2
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- ruby RUBY_VERSION
3
2
 
4
3
  # gem 'fhir_models', :path => '../fhir_models'
5
4
  # gem 'fhir_dstu2_models', :path => '../fhir_dstu2_models'
@@ -1,43 +1,77 @@
1
1
  module FHIR
2
2
  module ReferenceExtras
3
+ def parts
4
+ return if contained?
5
+ if has_version?
6
+ *base_uri, type, id, _, version = reference.to_s.split '/'
7
+ else
8
+ *base_uri, type, id = reference.to_s.split '/'
9
+ end
10
+ {
11
+ base_uri: (base_uri.empty?) ? nil : base_uri.join('/'),
12
+ type: type,
13
+ id: id,
14
+ version: version
15
+ }
16
+ end
17
+
3
18
  def contained?
4
19
  reference.to_s.start_with?('#')
5
20
  end
6
21
 
22
+ def absolute?
23
+ /^https?:\/\//.match reference.to_s
24
+ end
25
+
26
+ def relative?
27
+ !(reference.blank? || contained? || absolute?)
28
+ end
29
+
7
30
  def has_version?
8
- /history/.match reference.to_s
31
+ /_history/.match reference.to_s
9
32
  end
10
33
 
11
34
  def reference_id
12
35
  if contained?
13
36
  reference.to_s[1..-1]
14
- elsif has_version?
15
- reference.to_s.split('/').second
16
37
  else
17
- reference.to_s.split('/').last
38
+ parts[:id]
18
39
  end
19
40
  end
20
41
 
21
42
  def type
22
- reference.to_s.split('/').first unless contained?
43
+ return if contained?
44
+ parts[:type]
23
45
  end
24
46
 
25
47
  def version_id
26
- if has_version?
27
- reference.to_s.split('/').last
28
- end
48
+ return if contained?
49
+ parts[:version]
50
+ end
51
+
52
+ def base_uri
53
+ return if !absolute? || contained?
54
+ parts[:base_uri]
29
55
  end
30
56
 
31
57
  def read
32
- return if contained? || type.blank? || (id.blank? && reference.blank?)
33
- rid = id || reference_id
34
- resource_class.read(rid, client)
58
+ return if !(relative? || absolute?)
59
+ if relative? || reference == client.full_resource_url(resource: resource_class, id: reference_id)
60
+ read_client = client
61
+ else
62
+ read_client = FHIR::Client.new base_uri, default_format: client.default_format
63
+ end
64
+ resource_class.read(reference_id, read_client)
35
65
  end
36
66
 
37
67
  def vread
38
- return if contained? || type.blank? || (id.blank? && reference.blank?) || version_id.blank?
39
- rid = id || reference_id
40
- resource_class.vread(rid, version_id, client)
68
+ return if !(relative? || absolute?) || version_id.blank?
69
+ if relative? || reference == client.full_resource_url(resource: resource_class, id: reference_id)
70
+ read_client = client
71
+ else
72
+ read_client = FHIR::Client.new base_uri, default_format: client.default_format
73
+ end
74
+ resource_class.vread(reference_id, version_id, read_client)
41
75
  end
42
76
 
43
77
  end
@@ -1,5 +1,5 @@
1
1
  module FHIR
2
2
  class Client
3
- VERSION = '3.0.6'
3
+ VERSION = '3.0.7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fhir_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.6
4
+ version: 3.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andre Quina
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-09-28 00:00:00.000000000 Z
13
+ date: 2018-12-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport