fhir_client 3.0.2 → 3.0.3

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.
@@ -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