fhir_client 3.0.6 → 3.0.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.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/lib/fhir_client/ext/reference.rb +48 -14
- data/lib/fhir_client/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e672a83cc2c6d38d9b7b907e593fcee05ecead0a75320f79a8a65627deff0df7
|
4
|
+
data.tar.gz: 79219638d996eaa08b9ec7b38957da73eb1e6e5c5d26b428480178ee2e939fc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 904a33c45ee559acfbc0372435c9ee31e76412ef840d3616ae6f8e584aa9381d8a43cb81d937a3818891a82fe26ca5acbcaa74778602bbbe42c01c78d2e7ea35
|
7
|
+
data.tar.gz: ad3ec868c7c139105890e4091e1780efffb30649df4b7e63a5fbc8ed599dcfa249cfac2d7b84f12236712a32ec4d69b4a58c5d8fb1891330a6fc30907dfddae2
|
data/Gemfile
CHANGED
@@ -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
|
-
/
|
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
|
-
|
38
|
+
parts[:id]
|
18
39
|
end
|
19
40
|
end
|
20
41
|
|
21
42
|
def type
|
22
|
-
|
43
|
+
return if contained?
|
44
|
+
parts[:type]
|
23
45
|
end
|
24
46
|
|
25
47
|
def version_id
|
26
|
-
if
|
27
|
-
|
28
|
-
|
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
|
33
|
-
|
34
|
-
|
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
|
39
|
-
|
40
|
-
|
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
|
data/lib/fhir_client/version.rb
CHANGED
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.
|
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-
|
13
|
+
date: 2018-12-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|