fhir_client 1.0.1
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 +7 -0
- data/.gitignore +38 -0
- data/.travis.yml +10 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +98 -0
- data/LICENSE +201 -0
- data/README.md +135 -0
- data/Rakefile +25 -0
- data/fhir_client.gemspec +21 -0
- data/lib/client_interface.rb +525 -0
- data/lib/feed_format.rb +10 -0
- data/lib/fhir_api_validation.json +360 -0
- data/lib/fhir_client.rb +41 -0
- data/lib/model/bundle.rb +32 -0
- data/lib/model/client_reply.rb +172 -0
- data/lib/model/tag.rb +57 -0
- data/lib/patch_format.rb +10 -0
- data/lib/resource_address.rb +133 -0
- data/lib/resource_format.rb +10 -0
- data/lib/sections/crud.rb +170 -0
- data/lib/sections/feed.rb +23 -0
- data/lib/sections/history.rb +78 -0
- data/lib/sections/operations.rb +118 -0
- data/lib/sections/search.rb +53 -0
- data/lib/sections/tags.rb +64 -0
- data/lib/sections/transactions.rb +83 -0
- data/lib/sections/validate.rb +49 -0
- data/lib/tasks/tasks.rake +73 -0
- data/test/fixtures/bundle-example.xml +79 -0
- data/test/fixtures/parameters-example.json +18 -0
- data/test/fixtures/parameters-example.xml +17 -0
- data/test/simplecov.rb +17 -0
- data/test/test_helper.rb +8 -0
- data/test/unit/basic_test.rb +17 -0
- data/test/unit/bundle_test.rb +21 -0
- data/test/unit/parameters_test.rb +44 -0
- metadata +177 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
<Bundle xmlns="http://hl7.org/fhir">
|
2
|
+
<id value="example"/>
|
3
|
+
<meta>
|
4
|
+
<versionId value="1"/>
|
5
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
6
|
+
</meta>
|
7
|
+
<type value="transaction"/>
|
8
|
+
<base value="http://example.com/base"/>
|
9
|
+
<total value="3"/>
|
10
|
+
<link>
|
11
|
+
<relation value="next"/>
|
12
|
+
<url value="https://example.com/base/MedicationOrder?patient=347&searchId=ff15fd40-ff71-4b48-b366-09c
|
13
|
+
706bed9d0&page=2"/>
|
14
|
+
</link>
|
15
|
+
<link>
|
16
|
+
<relation value="self"/>
|
17
|
+
<url value="https://example.com/base/MedicationOrder?patient=347"/>
|
18
|
+
</link>
|
19
|
+
<entry>
|
20
|
+
<status value="update"/>
|
21
|
+
<resource>
|
22
|
+
<MedicationOrder>
|
23
|
+
<id value="3123"/>
|
24
|
+
<meta>
|
25
|
+
<versionId value="1"/>
|
26
|
+
<lastUpdated value="2014-08-16T05:31:17Z"/>
|
27
|
+
</meta>
|
28
|
+
<text>
|
29
|
+
<status value="generated"/>
|
30
|
+
<div xmlns="http://www.w3.org/1999/xhtml"><!-- Snipped for brevity --></div>
|
31
|
+
</text>
|
32
|
+
<status value="active"/>
|
33
|
+
<patient>
|
34
|
+
<reference value="Patient/example"/>
|
35
|
+
</patient>
|
36
|
+
<prescriber>
|
37
|
+
<reference value="Practitioner/example"/>
|
38
|
+
</prescriber>
|
39
|
+
|
40
|
+
<medicationReference>
|
41
|
+
<reference value="Medication/example"/>
|
42
|
+
</medicationReference>
|
43
|
+
|
44
|
+
<dosageInstruction>
|
45
|
+
<timing>
|
46
|
+
<repeat>
|
47
|
+
<frequency value="3"/>
|
48
|
+
<duration value="1"/>
|
49
|
+
<units value="d"/>
|
50
|
+
</repeat>
|
51
|
+
</timing>
|
52
|
+
<route>
|
53
|
+
<coding>
|
54
|
+
<system value="http://snomed.info/sct"/>
|
55
|
+
<code value="394899003"/>
|
56
|
+
<display value="oral administration of treatment"/>
|
57
|
+
</coding>
|
58
|
+
</route>
|
59
|
+
<doseQuantity>
|
60
|
+
<value value="5"/>
|
61
|
+
<units value="ml"/>
|
62
|
+
<system value="http://unitsofmeasure.org"/>
|
63
|
+
<code value="ml"/>
|
64
|
+
</doseQuantity>
|
65
|
+
</dosageInstruction>
|
66
|
+
|
67
|
+
<dispenseRequest>
|
68
|
+
<quantity>
|
69
|
+
<value value="100"/>
|
70
|
+
<units value="ml"/>
|
71
|
+
<system value="http://unitsofmeasure.org"/>
|
72
|
+
<code value="ml"/>
|
73
|
+
</quantity>
|
74
|
+
</dispenseRequest>
|
75
|
+
|
76
|
+
</MedicationOrder>
|
77
|
+
</resource>
|
78
|
+
</entry>
|
79
|
+
</Bundle>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"resourceType": "Parameters",
|
3
|
+
"id": "example",
|
4
|
+
"parameter": [
|
5
|
+
{
|
6
|
+
"name": "start",
|
7
|
+
"valueDate": "2010-01-01"
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"name": "end",
|
11
|
+
"resource": {
|
12
|
+
"resourceType": "Binary",
|
13
|
+
"contentType": "text/plain",
|
14
|
+
"content": "VGhpcyBpcyBhIHRlc3QgZXhhbXBsZQ=="
|
15
|
+
}
|
16
|
+
}
|
17
|
+
]
|
18
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Parameters xmlns="http://hl7.org/fhir">
|
3
|
+
<id value="example"/>
|
4
|
+
<parameter>
|
5
|
+
<name value="start"/>
|
6
|
+
<valueDate value="2010-01-01"/>
|
7
|
+
</parameter>
|
8
|
+
<parameter>
|
9
|
+
<name value="end"/>
|
10
|
+
<resource>
|
11
|
+
<Binary>
|
12
|
+
<contentType value="text/plain"/>
|
13
|
+
<content value="VGhpcyBpcyBhIHRlc3QgZXhhbXBsZQ=="/>
|
14
|
+
</Binary>
|
15
|
+
</resource>
|
16
|
+
</parameter>
|
17
|
+
</Parameters>
|
data/test/simplecov.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.command_name 'Unit Tests'
|
3
|
+
SimpleCov.start do
|
4
|
+
add_filter "test/"
|
5
|
+
add_group "Library", "lib"
|
6
|
+
end
|
7
|
+
|
8
|
+
class SimpleCov::Formatter::QualityFormatter
|
9
|
+
def format(result)
|
10
|
+
SimpleCov::Formatter::HTMLFormatter.new.format(result)
|
11
|
+
File.open("coverage/covered_percent", "w") do |f|
|
12
|
+
f.puts result.source_files.covered_percent.to_f
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
SimpleCov.formatter = SimpleCov::Formatter::QualityFormatter
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class BasicTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
TESTING_ENDPOINT = 'http://fhirtest.uhn.ca/baseDstu3'
|
6
|
+
|
7
|
+
def test_client_initialization
|
8
|
+
client = FHIR::Client.new(TESTING_ENDPOINT)
|
9
|
+
assert !client.use_format_param, "Using _format instead of [Accept] headers."
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_conformance
|
13
|
+
client = FHIR::Client.new(TESTING_ENDPOINT)
|
14
|
+
assert !client.conformanceStatement.nil?, "Unable to retrieve conformance statement."
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class BundleTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_example_bundle
|
6
|
+
client = FHIR::Client.new("feed-test")
|
7
|
+
root = File.expand_path '..', File.dirname(File.absolute_path(__FILE__))
|
8
|
+
bundle_xml = File.read(File.join(root, 'fixtures', 'bundle-example.xml'))
|
9
|
+
response = {
|
10
|
+
:code => '200',
|
11
|
+
:headers => {},
|
12
|
+
:body => bundle_xml
|
13
|
+
}
|
14
|
+
clientReply = FHIR::ClientReply.new('feed-test', response)
|
15
|
+
|
16
|
+
bundle = client.parse_reply(FHIR::Bundle, FHIR::Formats::FeedFormat::FEED_XML, clientReply)
|
17
|
+
|
18
|
+
assert !bundle.nil?, "Failed to parse example Bundle."
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class ParametersTest < Test::Unit::TestCase
|
4
|
+
# <?xml version="1.0" encoding="UTF-8"?>
|
5
|
+
# <Parameters xmlns="http://hl7.org/fhir">
|
6
|
+
# <id value="example"/>
|
7
|
+
# <parameter>
|
8
|
+
# <name value="start"/>
|
9
|
+
# <valueDate value="2010-01-01"/>
|
10
|
+
# </parameter>
|
11
|
+
# <parameter>
|
12
|
+
# <name value="end"/>
|
13
|
+
# <resource>
|
14
|
+
# <Binary>
|
15
|
+
# <contentType value="text/plain"/>
|
16
|
+
# <content value="VGhpcyBpcyBhIHRlc3QgZXhhbXBsZQ=="/>
|
17
|
+
# </Binary>
|
18
|
+
# </resource>
|
19
|
+
# </parameter>
|
20
|
+
# </Parameters>
|
21
|
+
def test_example_parameters_xml
|
22
|
+
root = File.expand_path '..', File.dirname(File.absolute_path(__FILE__))
|
23
|
+
xml = File.read(File.join(root, 'fixtures', 'parameters-example.xml'))
|
24
|
+
parameters = FHIR::Xml.from_xml(xml)
|
25
|
+
check_params(parameters)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_example_parameters_json
|
29
|
+
root = File.expand_path '..', File.dirname(File.absolute_path(__FILE__))
|
30
|
+
json = File.read(File.join(root, 'fixtures', 'parameters-example.json'))
|
31
|
+
parameters = FHIR::Json.from_json(json)
|
32
|
+
check_params(parameters)
|
33
|
+
end
|
34
|
+
|
35
|
+
def check_params(parameters)
|
36
|
+
message = "Failed to parse example Parameters."
|
37
|
+
assert parameters.parameter.length==2, message
|
38
|
+
assert parameters.parameter[0].name=='start', message
|
39
|
+
assert parameters.parameter[0].valueDate=='2010-01-01', message
|
40
|
+
assert parameters.parameter[1].name=='end', message
|
41
|
+
assert !parameters.parameter[1].resource.nil? && parameters.parameter[1].resource.class==FHIR::Binary, message
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
metadata
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fhir_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andre Quina
|
8
|
+
- Jason Walonoski
|
9
|
+
- Janoo Fernandes
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: fhir_models
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.3'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0.3'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: tilt
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '1.1'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.1'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rest-client
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.8'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.8'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: oauth2
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.1'
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '1.1'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: activesupport
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '3'
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '3'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: addressable
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '2.3'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '2.3'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: pry
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
description: A Gem for handling FHIR client requests in ruby
|
114
|
+
email: aquina@mitre.org
|
115
|
+
executables: []
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".gitignore"
|
120
|
+
- ".travis.yml"
|
121
|
+
- Gemfile
|
122
|
+
- Gemfile.lock
|
123
|
+
- LICENSE
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- fhir_client.gemspec
|
127
|
+
- lib/client_interface.rb
|
128
|
+
- lib/feed_format.rb
|
129
|
+
- lib/fhir_api_validation.json
|
130
|
+
- lib/fhir_client.rb
|
131
|
+
- lib/model/bundle.rb
|
132
|
+
- lib/model/client_reply.rb
|
133
|
+
- lib/model/tag.rb
|
134
|
+
- lib/patch_format.rb
|
135
|
+
- lib/resource_address.rb
|
136
|
+
- lib/resource_format.rb
|
137
|
+
- lib/sections/crud.rb
|
138
|
+
- lib/sections/feed.rb
|
139
|
+
- lib/sections/history.rb
|
140
|
+
- lib/sections/operations.rb
|
141
|
+
- lib/sections/search.rb
|
142
|
+
- lib/sections/tags.rb
|
143
|
+
- lib/sections/transactions.rb
|
144
|
+
- lib/sections/validate.rb
|
145
|
+
- lib/tasks/tasks.rake
|
146
|
+
- test/fixtures/bundle-example.xml
|
147
|
+
- test/fixtures/parameters-example.json
|
148
|
+
- test/fixtures/parameters-example.xml
|
149
|
+
- test/simplecov.rb
|
150
|
+
- test/test_helper.rb
|
151
|
+
- test/unit/basic_test.rb
|
152
|
+
- test/unit/bundle_test.rb
|
153
|
+
- test/unit/parameters_test.rb
|
154
|
+
homepage: https://github.com/hl7-fhir/fhir-svn
|
155
|
+
licenses: []
|
156
|
+
metadata: {}
|
157
|
+
post_install_message:
|
158
|
+
rdoc_options: []
|
159
|
+
require_paths:
|
160
|
+
- lib
|
161
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '0'
|
171
|
+
requirements: []
|
172
|
+
rubyforge_project:
|
173
|
+
rubygems_version: 2.4.3
|
174
|
+
signing_key:
|
175
|
+
specification_version: 4
|
176
|
+
summary: A Gem for handling FHIR client requests in ruby
|
177
|
+
test_files: []
|