fhir_client 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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&amp;searchId=ff15fd40-ff71-4b48-b366-09c
13
+ 706bed9d0&amp;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
@@ -0,0 +1,8 @@
1
+ require_relative "./simplecov"
2
+ require_relative '../lib/fhir_client'
3
+
4
+ require 'pry'
5
+ require 'minitest/autorun'
6
+ require 'bundler/setup'
7
+ require 'test/unit'
8
+ require 'turn'
@@ -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: []