fhir_client 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,14 +11,14 @@ module FHIR
11
11
  # http://hl7.org/implement/standards/FHIR-Develop/patient-operations.html#everything
12
12
  # Fetches resources for a given patient record, scoped by a start and end time, and returns a Bundle of results
13
13
  def fetch_patient_record(id = nil, startTime = nil, endTime = nil, method = 'GET', format = @default_format)
14
- fetch_record(id, [startTime, endTime], method, FHIR::Patient, format)
14
+ fetch_record(id, [startTime, endTime], method, versioned_resource_class('Patient'), format)
15
15
  end
16
16
 
17
17
  def fetch_encounter_record(id = nil, method = 'GET', format = @default_format)
18
- fetch_record(id, [nil, nil], method, FHIR::Encounter, format)
18
+ fetch_record(id, [nil, nil], method, versioned_resource_class('Encounter'), format)
19
19
  end
20
20
 
21
- def fetch_record(id = nil, time = [nil, nil], method = 'GET', klass = FHIR::Patient, format = @default_format)
21
+ def fetch_record(id = nil, time = [nil, nil], method = 'GET', klass = versioned_resource_class('Patient'), format = @default_format)
22
22
  options = { resource: klass, format: format, operation: { name: :fetch_patient_record, method: method } }
23
23
  options.deep_merge!(id: id) unless id.nil?
24
24
  options[:operation][:parameters] = {} if options[:operation][:parameters].nil?
@@ -30,9 +30,9 @@ module FHIR
30
30
  else
31
31
  # create Parameters body
32
32
  if options[:operation] && options[:operation][:parameters]
33
- p = FHIR::Parameters.new
33
+ p = versioned_resource_class('Parameters').new
34
34
  options[:operation][:parameters].each do |key, value|
35
- parameter = FHIR::Parameters::Parameter.new.from_hash(name: key.to_s)
35
+ parameter = versioned_resource_class('Parameters::Parameter').new.from_hash(name: key.to_s)
36
36
  parameter.method("value#{value[:type]}=").call(value[:value])
37
37
  p.parameter << parameter
38
38
  end
@@ -40,7 +40,7 @@ module FHIR
40
40
  reply = post resource_url(options), p, fhir_headers(options)
41
41
  end
42
42
 
43
- reply.resource = parse_reply(FHIR::Bundle, format, reply)
43
+ reply.resource = parse_reply(versioned_resource_class('Bundle'), format, reply)
44
44
  reply.resource_class = options[:resource]
45
45
  reply
46
46
  end
@@ -53,7 +53,7 @@ module FHIR
53
53
  # http://hl7.org/implement/standards/FHIR-Develop/valueset-operations.html#expand
54
54
  # The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation.
55
55
  def value_set_expansion(params = {}, format = @default_format)
56
- options = { resource: FHIR::ValueSet, operation: { name: :value_set_expansion } }
56
+ options = { resource: versioned_resource_class('ValueSet'), operation: { name: :value_set_expansion } }
57
57
  options.deep_merge!(params)
58
58
  terminology_operation(options, format)
59
59
  end
@@ -62,21 +62,26 @@ module FHIR
62
62
  # http://hl7.org/implement/standards/FHIR-Develop/valueset-operations.html#validate
63
63
  # Validate that a coded value is in the set of codes allowed by a value set.
64
64
  def value_set_code_validation(params = {}, format = @default_format)
65
- options = { resource: FHIR::ValueSet, operation: { name: :value_set_based_validation } }
65
+ options = { resource: versioned_resource_class('ValueSet'), operation: { name: :value_set_based_validation } }
66
66
  options.deep_merge!(params)
67
67
  terminology_operation(options, format)
68
68
  end
69
69
 
70
70
  # Concept Look Up [base]/CodeSystem/$lookup
71
71
  def code_system_lookup(params = {}, format = @default_format)
72
- options = { resource: FHIR::CodeSystem, operation: { name: :code_system_lookup } }
72
+ klass = if @fhir_version == :stu3
73
+ FHIR::CodeSystem
74
+ else
75
+ FHIR::DSTU2::ValueSet
76
+ end
77
+ options = { resource: klass, operation: { name: :code_system_lookup } }
73
78
  options.deep_merge!(params)
74
79
  terminology_operation(options, format)
75
80
  end
76
81
 
77
82
  # ConceptMap Translation
78
83
  def concept_map_translate(params = {}, format = @default_format)
79
- options = { resource: FHIR::ConceptMap, operation: { name: :concept_map_translate } }
84
+ options = { resource: versioned_resource_class('ConceptMap'), operation: { name: :concept_map_translate } }
80
85
  options.deep_merge!(params)
81
86
  terminology_operation(options, format)
82
87
  end
@@ -98,9 +103,9 @@ module FHIR
98
103
  else
99
104
  # create Parameters body
100
105
  if options[:operation] && options[:operation][:parameters]
101
- p = FHIR::Parameters.new
106
+ p = versioned_resource_class('Parameters').new
102
107
  options[:operation][:parameters].each do |key, value|
103
- parameter = FHIR::Parameters::Parameter.new.from_hash(name: key.to_s)
108
+ parameter = versioned_resource_class('Parameters::Parameter').new.from_hash(name: key.to_s)
104
109
  parameter.method("value#{value[:type]}=").call(value[:value])
105
110
  p.parameter << parameter
106
111
  end
@@ -115,7 +120,7 @@ module FHIR
115
120
 
116
121
  def match(resource, options = {}, format = @default_format)
117
122
  options.merge!(resource: resource.class, match: true, format: format)
118
- params = FHIR::Parameters.new
123
+ params = versioned_resource_class('Parameters').new
119
124
  add_resource_parameter(params, 'resource', resource)
120
125
  add_parameter(params, 'onlyCertainMatches', 'Boolean', options[:onlyCertainMatches]) unless options[:onlyCertainMatches].nil?
121
126
  add_parameter(params, 'count', 'Integer', options[:matchCount]) if options[:matchCount].is_a?(Integer)
@@ -134,7 +139,7 @@ module FHIR
134
139
 
135
140
  def validate(resource, options = {}, format = @default_format)
136
141
  options.merge!(resource: resource.class, validate: true, format: format)
137
- params = FHIR::Parameters.new
142
+ params = versioned_resource_class('Parameters').new
138
143
  add_resource_parameter(params, 'resource', resource)
139
144
  add_parameter(params, 'profile', 'Uri', options[:profile_uri]) unless options[:profile_uri].nil?
140
145
  post resource_url(options), params, fhir_headers(options)
@@ -142,7 +147,7 @@ module FHIR
142
147
 
143
148
  def validate_existing(resource, id, options = {}, format = @default_format)
144
149
  options.merge!(resource: resource.class, id: id, validate: true, format: format)
145
- params = FHIR::Parameters.new
150
+ params = versioned_resource_class('Parameters').new
146
151
  add_resource_parameter(params, 'resource', resource)
147
152
  add_parameter(params, 'profile', 'Uri', options[:profile_uri]) unless options[:profile_uri].nil?
148
153
  post resource_url(options), params, fhir_headers(options)
@@ -152,14 +157,14 @@ module FHIR
152
157
 
153
158
  def add_parameter(params, name, type, value)
154
159
  params.parameter ||= []
155
- parameter = FHIR::Parameters::Parameter.new.from_hash(name: name)
160
+ parameter = versioned_resource_class('Parameters::Parameter').new.from_hash(name: name)
156
161
  parameter.method("value#{type}=").call(value)
157
162
  params.parameter << parameter
158
163
  end
159
164
 
160
165
  def add_resource_parameter(params, name, resource)
161
166
  params.parameter ||= []
162
- parameter = FHIR::Parameters::Parameter.new.from_hash(name: name)
167
+ parameter = versioned_resource_class('Parameters::Parameter').new.from_hash(name: name)
163
168
  parameter.resource = resource
164
169
  params.parameter << parameter
165
170
  end
@@ -4,14 +4,14 @@ module FHIR
4
4
  attr_accessor :transaction_bundle
5
5
 
6
6
  def begin_transaction
7
- @transaction_bundle = FHIR::Bundle.new
7
+ @transaction_bundle = versioned_resource_class('Bundle').new
8
8
  @transaction_bundle.type = 'transaction'
9
9
  @transaction_bundle.entry ||= []
10
10
  @transaction_bundle
11
11
  end
12
12
 
13
13
  def begin_batch
14
- @transaction_bundle = FHIR::Bundle.new
14
+ @transaction_bundle = versioned_resource_class('Bundle').new
15
15
  @transaction_bundle.type = 'batch'
16
16
  @transaction_bundle.entry ||= []
17
17
  @transaction_bundle
@@ -26,8 +26,8 @@ module FHIR
26
26
  end
27
27
 
28
28
  def add_batch_request(method, url, resource = nil, if_none_exist = nil)
29
- request = FHIR::Bundle::Entry::Request.new
30
- request.local_method = if FHIR::Bundle::Entry::Request::METADATA['method']['valid_codes'].values.first.include?(method.upcase)
29
+ request = versioned_resource_class('Bundle::Entry::Request').new
30
+ request.local_method = if versioned_resource_class('Bundle::Entry::Request::METADATA')['method']['valid_codes'].values.first.include?(method.upcase)
31
31
  method.upcase
32
32
  else
33
33
  'POST'
@@ -43,7 +43,7 @@ module FHIR
43
43
  request.url = url
44
44
  end
45
45
 
46
- entry = FHIR::Bundle::Entry.new
46
+ entry = versioned_resource_class('Bundle::Entry').new
47
47
  entry.resource = resource
48
48
  entry.request = request
49
49
 
@@ -65,9 +65,9 @@ module FHIR
65
65
  reply = post resource_url(options), @transaction_bundle, fhir_headers(options)
66
66
  begin
67
67
  reply.resource = if format.downcase.include?('xml')
68
- FHIR::Xml.from_xml(reply.body)
68
+ versioned_resource_class('Xml').from_xml(reply.body)
69
69
  else
70
- FHIR::Json.from_json(reply.body)
70
+ versioned_resource_class('Json').from_json(reply.body)
71
71
  end
72
72
  rescue
73
73
  reply.resource = nil
@@ -4,7 +4,7 @@ FHIR.logger.level = Logger::ERROR
4
4
  namespace :fhir do
5
5
  desc 'console'
6
6
  task :console, [] do
7
- sh 'bin/console'
7
+ exec('ruby bin/console')
8
8
  end
9
9
 
10
10
  #
@@ -1,5 +1,5 @@
1
1
  module FHIR
2
2
  class Client
3
- VERSION = '3.0.2'
3
+ VERSION = '3.0.3'
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.2
4
+ version: 3.0.3
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: 2017-06-14 00:00:00.000000000 Z
13
+ date: 2018-03-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -46,14 +46,28 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 3.0.0
49
+ version: 3.0.2
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 3.0.0
56
+ version: 3.0.2
57
+ - !ruby/object:Gem::Dependency
58
+ name: fhir_dstu2_models
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.0.3
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.0.3
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: nokogiri
59
73
  requirement: !ruby/object:Gem::Requirement