redox 1.8.5 → 1.8.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/CHANGELOG.md +17 -0
- data/Gemfile +13 -0
- data/Rakefile +2 -0
- data/lib/redox/authentication.rb +34 -25
- data/lib/redox/connection.rb +5 -3
- data/lib/redox/models/administration.rb +6 -4
- data/lib/redox/models/component.rb +5 -3
- data/lib/redox/models/financial.rb +5 -3
- data/lib/redox/models/media/notification.rb +6 -4
- data/lib/redox/models/media.rb +26 -26
- data/lib/redox/models/media_upload.rb +5 -3
- data/lib/redox/models/medication.rb +12 -10
- data/lib/redox/models/medications.rb +5 -4
- data/lib/redox/models/meta.rb +18 -16
- data/lib/redox/models/model.rb +63 -54
- data/lib/redox/models/note.rb +7 -5
- data/lib/redox/models/notes.rb +4 -4
- data/lib/redox/models/ordering_provider.rb +6 -4
- data/lib/redox/models/patient/contacts.rb +7 -5
- data/lib/redox/models/patient/demographics.rb +13 -11
- data/lib/redox/models/patient/identifier.rb +4 -2
- data/lib/redox/models/patient/insurance.rb +13 -11
- data/lib/redox/models/patient/p_c_p.rb +3 -1
- data/lib/redox/models/patient.rb +14 -10
- data/lib/redox/models/potential_matches.rb +3 -1
- data/lib/redox/models/provider.rb +6 -4
- data/lib/redox/models/scheduling.rb +5 -3
- data/lib/redox/models/transaction.rb +17 -15
- data/lib/redox/models/visit.rb +18 -15
- data/lib/redox/redox_exception.rb +17 -13
- data/lib/redox/request/financial.rb +5 -1
- data/lib/redox/request/media.rb +5 -1
- data/lib/redox/request/medications.rb +5 -1
- data/lib/redox/request/notes.rb +5 -1
- data/lib/redox/request/patient_admin.rb +10 -4
- data/lib/redox/request/patient_search.rb +7 -2
- data/lib/redox/request/provider.rb +5 -1
- data/lib/redox/request/request.rb +3 -1
- data/lib/redox/request/scheduling.rb +14 -4
- data/lib/redox/version.rb +3 -1
- data/lib/redox.rb +12 -9
- data/redox.gemspec +8 -9
- metadata +9 -98
data/lib/redox/models/note.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Note < AbstractModel
|
@@ -7,11 +9,11 @@ module Redox
|
|
7
9
|
property :Provider, required: false, from: :provider, default: {}
|
8
10
|
property :Components, required: false, from: :components, default: []
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
alias content_type ContentType
|
13
|
+
alias document_type DocumentType
|
14
|
+
alias document_id DocumentID
|
15
|
+
alias provider Provider
|
16
|
+
alias components Components
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
data/lib/redox/models/notes.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Notes < AbstractModel
|
4
6
|
property :Note, from: :note, required: false
|
5
7
|
|
6
|
-
alias_method :note, :Note
|
7
|
-
|
8
8
|
def note
|
9
|
-
|
10
|
-
|
9
|
+
self[:Note] = Note.new(self[:Note]) unless self[:Note].is_a?(Redox::Models::Note)
|
10
|
+
self[:Note] ||= Note.new
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class OrderingProvider < AbstractModel
|
@@ -6,10 +8,10 @@ module Redox
|
|
6
8
|
property :FirstName, required: false, from: :first_name
|
7
9
|
property :LastName, required: false, from: :last_name
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
alias first_name FirstName
|
12
|
+
alias last_name LastName
|
13
|
+
alias id ID
|
14
|
+
alias id_type IDType
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Contact < AbstractModel
|
@@ -10,11 +12,11 @@ module Redox
|
|
10
12
|
property :PhoneNumber, required: false, default: {}
|
11
13
|
property :Roles, required: false, default: []
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
alias first_name FirstName
|
16
|
+
alias middle_name MiddleName
|
17
|
+
alias last_name LastName
|
18
|
+
alias address Address
|
19
|
+
alias phone_number PhoneNumber
|
18
20
|
end
|
19
21
|
end
|
20
22
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Demographics < AbstractModel
|
@@ -18,17 +20,17 @@ module Redox
|
|
18
20
|
property :Address, required: false, default: {}
|
19
21
|
property :PhoneNumber, required: false, default: {}
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
23
|
+
alias first_name FirstName
|
24
|
+
alias middle_name MiddleName
|
25
|
+
alias last_name LastName
|
26
|
+
alias dob DOB
|
27
|
+
alias ssn SSN
|
28
|
+
alias sex Sex
|
29
|
+
alias race Race
|
30
|
+
alias marital_status MaritalStatus
|
31
|
+
alias language Language
|
32
|
+
alias address Address
|
33
|
+
alias phone_number PhoneNumber
|
32
34
|
end
|
33
35
|
end
|
34
36
|
end
|
@@ -1,11 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Identifier < AbstractModel
|
4
6
|
property :ID, from: :id
|
5
7
|
property :IDType, from: :id_type
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
+
alias id ID
|
10
|
+
alias id_type IDType
|
9
11
|
end
|
10
12
|
end
|
11
13
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Insurance < Model
|
@@ -13,17 +15,17 @@ module Redox
|
|
13
15
|
property :CoverageType, required: false, from: :coverage_type
|
14
16
|
property :Insured, required: false, from: :insured, default: {}
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
18
|
+
alias plan Plan
|
19
|
+
alias member_number MemberNumber
|
20
|
+
alias company Company
|
21
|
+
alias group_number GroupNumber
|
22
|
+
alias group_name GroupName
|
23
|
+
alias effective_date EffectiveDate
|
24
|
+
alias expiration_date ExpirationDate
|
25
|
+
alias policy_number PolicyNumber
|
26
|
+
alias agreement_type AgreementType
|
27
|
+
alias coverage_type CoverageType
|
28
|
+
alias insured Insured
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
data/lib/redox/models/patient.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Patient < Model
|
@@ -7,9 +9,7 @@ module Redox
|
|
7
9
|
property :Contacts, from: :contacts, required: false, default: []
|
8
10
|
property :PCP, from: :primary_care_provider, required: false
|
9
11
|
|
10
|
-
|
11
|
-
alias_method :insurances, :Insurances
|
12
|
-
alias_method :contacts, :Contacts
|
12
|
+
alias identifiers Identifiers
|
13
13
|
|
14
14
|
def demographics
|
15
15
|
self[:Demographics] = Demographics.new(self[:Demographics]) unless self[:Demographics].is_a?(Redox::Models::Demographics)
|
@@ -17,7 +17,9 @@ module Redox
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def insurances
|
20
|
-
self[:Insurances] = self[:Insurances].map
|
20
|
+
self[:Insurances] = self[:Insurances].map do |ins|
|
21
|
+
ins.is_a?(Redox::Models::Insurance) ? ins : Insurance.new(ins)
|
22
|
+
end
|
21
23
|
end
|
22
24
|
|
23
25
|
def primary_care_provider
|
@@ -25,19 +27,21 @@ module Redox
|
|
25
27
|
end
|
26
28
|
|
27
29
|
def contacts
|
28
|
-
self[:Contacts] = self[:Contacts].map
|
30
|
+
self[:Contacts] = self[:Contacts].map do |contact|
|
31
|
+
contact.is_a?(Redox::Models::Contact) ? contact : Contact.new(contact)
|
32
|
+
end
|
29
33
|
end
|
30
34
|
|
31
|
-
def add_identifier(type
|
32
|
-
self[:Identifiers] << Identifier.new({'ID' => value, 'IDType' => type})
|
35
|
+
def add_identifier(type:, value:)
|
36
|
+
self[:Identifiers] << Identifier.new({ 'ID' => value, 'IDType' => type })
|
33
37
|
|
34
|
-
|
38
|
+
self
|
35
39
|
end
|
36
40
|
|
37
41
|
def add_insurance(data = {})
|
38
42
|
self[:Insurances] << Insurance.new(data)
|
39
43
|
|
40
|
-
|
44
|
+
self
|
41
45
|
end
|
42
46
|
|
43
47
|
def update(meta: Meta.new)
|
@@ -50,7 +54,7 @@ module Redox
|
|
50
54
|
|
51
55
|
class << self
|
52
56
|
def query(params, meta: Meta.new)
|
53
|
-
|
57
|
+
Redox::Request::PatientSearch.query(params, meta: meta)
|
54
58
|
end
|
55
59
|
end
|
56
60
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class PotentialMatches < Array
|
4
6
|
def initialize(data = [])
|
5
7
|
if false == data.nil?
|
6
|
-
super(data.map {|patient| Redox::Models::Patient.new(patient) })
|
8
|
+
super(data.map { |patient| Redox::Models::Patient.new(patient) })
|
7
9
|
else
|
8
10
|
super([])
|
9
11
|
end
|
@@ -1,20 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Provider < Model
|
4
6
|
property :Identifiers, from: :identifiers, required: false, default: []
|
5
7
|
property :Demographics, from: :demographics, required: false
|
6
8
|
|
7
|
-
|
9
|
+
alias identifiers Identifiers
|
8
10
|
|
9
11
|
def demographics
|
10
12
|
self[:Demographics] = Demographics.new(self[:Demographics]) unless self[:Demographics].is_a?(Redox::Models::Demographics)
|
11
13
|
self[:Demographics] ||= Demographics.new
|
12
14
|
end
|
13
15
|
|
14
|
-
def add_identifier(type
|
15
|
-
self[:Identifiers] << Identifier.new({'ID' => value, 'IDType' => type})
|
16
|
+
def add_identifier(type:, value:)
|
17
|
+
self[:Identifiers] << Identifier.new({ 'ID' => value, 'IDType' => type })
|
16
18
|
|
17
|
-
|
19
|
+
self
|
18
20
|
end
|
19
21
|
end
|
20
22
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Scheduling < AbstractModel
|
@@ -5,9 +7,9 @@ module Redox
|
|
5
7
|
property :Patient, required: false, from: :patient, default: Redox::Models::Patient.new
|
6
8
|
property :AppointmentInfo, required: false, from: :appointment_info, default: []
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
alias patient Patient
|
11
|
+
alias visit Visit
|
12
|
+
alias appointment_info AppointmentInfo
|
11
13
|
|
12
14
|
def add_appointment_info(code: nil, codeset: nil, description: nil, value: nil)
|
13
15
|
self[:AppointmentInfo] << {
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Models
|
3
5
|
class Transaction < AbstractModel
|
@@ -15,19 +17,19 @@ module Redox
|
|
15
17
|
property :Procedure, required: false, from: :procedure, default: {}
|
16
18
|
property :Type, required: false, from: :type
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
20
|
+
alias chargeable Chargeable
|
21
|
+
alias start DateTimeOfService
|
22
|
+
alias department Department
|
23
|
+
alias diagnoses Diagnoses
|
24
|
+
alias end EndDateTime
|
25
|
+
alias extensions Extensions
|
26
|
+
alias id ID
|
27
|
+
alias ndc NDC
|
28
|
+
alias order_id OrderID
|
29
|
+
alias ordering_providers OrderingProviders
|
30
|
+
alias performers Performers
|
31
|
+
alias procedure Procedure
|
32
|
+
alias type Type
|
31
33
|
|
32
34
|
def add_medication(ndc_code: nil, quantity: nil, magnitude: nil, unit: nil, description: nil)
|
33
35
|
self[:NDC] = { Code: ndc_code, Description: description }
|
@@ -67,8 +69,8 @@ module Redox
|
|
67
69
|
result
|
68
70
|
end
|
69
71
|
|
70
|
-
def as_json(
|
71
|
-
|
72
|
+
def as_json(_args)
|
73
|
+
to_h
|
72
74
|
end
|
73
75
|
end
|
74
76
|
end
|
data/lib/redox/models/visit.rb
CHANGED
@@ -1,22 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Naming/MethodParameterName
|
1
4
|
module Redox
|
2
5
|
module Models
|
3
6
|
class Visit < Model
|
4
7
|
DEFAULT_LOCATION = {
|
5
8
|
Department: nil,
|
6
9
|
Facility: nil
|
7
|
-
}
|
10
|
+
}.freeze
|
8
11
|
DEFAULT_REFERRING_PROVIDER = {
|
9
12
|
ID: nil,
|
10
13
|
IDType: nil,
|
11
14
|
FirstName: nil,
|
12
15
|
LastName: nil
|
13
|
-
}
|
16
|
+
}.freeze
|
14
17
|
DEFAULT_ATTENDING_PROVIDER = {
|
15
18
|
ID: nil,
|
16
19
|
IDType: nil,
|
17
20
|
FirstName: nil,
|
18
21
|
LastName: nil
|
19
|
-
}
|
22
|
+
}.freeze
|
20
23
|
|
21
24
|
property :Insurances, from: :insurances, required: false, default: []
|
22
25
|
property :Location, from: :location, required: false, default: DEFAULT_LOCATION
|
@@ -33,22 +36,19 @@ module Redox
|
|
33
36
|
property :ReferringProvider, from: :referring_provider, required: false, default: DEFAULT_REFERRING_PROVIDER
|
34
37
|
property :AttendingProvider, from: :attending_provider, required: false, default: DEFAULT_ATTENDING_PROVIDER
|
35
38
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
alias_method :attending_provider, :AttendingProvider
|
39
|
+
alias start VisitDateTime
|
40
|
+
alias end DischargeDateTime
|
41
|
+
alias referring_provider ReferringProvider
|
42
|
+
alias attending_provider AttendingProvider
|
41
43
|
|
42
44
|
def department=(v)
|
43
45
|
self[:Location] ||= DEFAULT_LOCATION
|
44
46
|
self[:Location][:Department] = v
|
45
|
-
self
|
46
47
|
end
|
47
48
|
|
48
49
|
def facility=(v)
|
49
50
|
self[:Location] ||= DEFAULT_LOCATION
|
50
51
|
self[:Location][:Facility] = v
|
51
|
-
self
|
52
52
|
end
|
53
53
|
|
54
54
|
def attending_provider_id=(v)
|
@@ -98,7 +98,9 @@ module Redox
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def insurances
|
101
|
-
self[:Insurances] = self[:Insurances].map
|
101
|
+
self[:Insurances] = self[:Insurances].map do |ins|
|
102
|
+
ins.is_a?(Redox::Models::Insurance) ? ins : Insurance.new(ins)
|
103
|
+
end
|
102
104
|
end
|
103
105
|
|
104
106
|
def to_h
|
@@ -111,13 +113,14 @@ module Redox
|
|
111
113
|
result
|
112
114
|
end
|
113
115
|
|
114
|
-
def to_json(
|
115
|
-
|
116
|
+
def to_json(_args = {})
|
117
|
+
to_h.to_json
|
116
118
|
end
|
117
119
|
|
118
|
-
def as_json(
|
119
|
-
|
120
|
+
def as_json(_args = {})
|
121
|
+
to_h['Visit']
|
120
122
|
end
|
121
123
|
end
|
122
124
|
end
|
123
125
|
end
|
126
|
+
# rubocop:enable Naming/MethodParameterName
|
@@ -1,23 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
|
-
class RedoxException <
|
4
|
+
class RedoxException < StandardError
|
3
5
|
def self.from_response(response, msg: nil)
|
4
|
-
|
5
|
-
exception_msg << " HTTP code: #{response&.code} MSG: "
|
6
|
+
error_msg = nil
|
6
7
|
|
7
8
|
begin
|
8
|
-
|
9
|
-
error_list = error_response&.[]('Meta')&.[]('Errors')
|
10
|
-
|
11
|
-
if error_list
|
12
|
-
exception_msg << error_list.map {|el| el['Text'] || el.to_s }.join('|')
|
13
|
-
else
|
14
|
-
exception_msg << error_response.to_s
|
15
|
-
end
|
9
|
+
error_msg = parse_error_msg(response.parsed_response)
|
16
10
|
rescue JSON::ParserError
|
17
|
-
|
11
|
+
error_msg = response.body
|
18
12
|
end
|
19
13
|
|
20
|
-
|
14
|
+
RedoxException.new("Failed #{msg}: HTTP code: #{response&.code} MSG: #{error_msg}")
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.parse_error_msg(error_response)
|
18
|
+
error_list = error_response&.[]('Meta')&.[]('Errors')
|
19
|
+
|
20
|
+
if error_list
|
21
|
+
error_list.map { |el| el['Text'] || el.to_s }.join('|')
|
22
|
+
else
|
23
|
+
error_response.to_s
|
24
|
+
end
|
21
25
|
end
|
22
26
|
end
|
23
27
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class Financial
|
@@ -5,7 +7,9 @@ module Redox
|
|
5
7
|
|
6
8
|
def self.create(financial, meta: Redox::Models::Meta.new)
|
7
9
|
meta = TRANSACTION_META.merge(meta)
|
8
|
-
|
10
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(body: Redox::Request.build_body(
|
11
|
+
financial, meta
|
12
|
+
)))
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
data/lib/redox/request/media.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class Media
|
@@ -5,7 +7,9 @@ module Redox
|
|
5
7
|
|
6
8
|
def self.create(model, meta: Redox::Models::Meta.new)
|
7
9
|
meta = CREATE_META.merge(meta)
|
8
|
-
|
10
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(body: Redox::Request.build_body(
|
11
|
+
model, meta
|
12
|
+
)))
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class Medications
|
@@ -5,7 +7,9 @@ module Redox
|
|
5
7
|
|
6
8
|
def self.administration(model, meta: Redox::Models::Meta.new)
|
7
9
|
meta = ADMINISTRATION_META.merge(meta)
|
8
|
-
|
10
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(body: Redox::Request.build_body(
|
11
|
+
model, meta
|
12
|
+
)))
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
data/lib/redox/request/notes.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class Notes
|
@@ -5,7 +7,9 @@ module Redox
|
|
5
7
|
|
6
8
|
def self.create(model, meta: Redox::Models::Meta.new)
|
7
9
|
meta = CREATE_META.merge(meta)
|
8
|
-
|
10
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(body: Redox::Request.build_body(
|
11
|
+
model, meta
|
12
|
+
)))
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
@@ -1,17 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class PatientAdmin
|
4
6
|
CREATE_META = Redox::Models::Meta.new(EventType: 'NewPatient', DataModel: 'PatientAdmin')
|
5
7
|
UPDATE_META = Redox::Models::Meta.new(EventType: 'PatientUpdate', DataModel: 'PatientAdmin')
|
6
8
|
|
7
|
-
def self.create(patient
|
9
|
+
def self.create(patient:, meta: Redox::Models::Meta.new)
|
8
10
|
meta = CREATE_META.merge(meta)
|
9
|
-
|
11
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(body: Redox::Request.build_body(
|
12
|
+
patient, meta
|
13
|
+
)))
|
10
14
|
end
|
11
15
|
|
12
|
-
def self.update(patient
|
16
|
+
def self.update(patient:, meta: Redox::Models::Meta.new)
|
13
17
|
meta = UPDATE_META.merge(meta)
|
14
|
-
|
18
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(body: Redox::Request.build_body(
|
19
|
+
patient, meta
|
20
|
+
)))
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
@@ -1,12 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class PatientSearch
|
4
|
-
QUERY_ENDPOINT = '/query'
|
6
|
+
QUERY_ENDPOINT = '/query'
|
5
7
|
QUERY_META = Redox::Models::Meta.new(EventType: 'Query', DataModel: 'PatientSearch')
|
6
8
|
|
7
9
|
def self.query(params, meta: Redox::Models::Meta.new)
|
8
10
|
meta = QUERY_META.merge(meta)
|
9
|
-
|
11
|
+
Redox::Models::Model.from_response(RedoxClient.connection.request(endpoint: QUERY_ENDPOINT,
|
12
|
+
body: Redox::Request.build_body(
|
13
|
+
params, meta
|
14
|
+
)))
|
10
15
|
end
|
11
16
|
end
|
12
17
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Redox
|
2
4
|
module Request
|
3
5
|
class Provider
|
@@ -5,7 +7,9 @@ module Redox
|
|
5
7
|
|
6
8
|
def self.query(provider, meta: Redox::Models::Meta.new)
|
7
9
|
meta = QUERY_META.merge(meta)
|
8
|
-
|
10
|
+
Redox::Models::Model.from_response_inflected(RedoxClient.connection.request(body: Redox::Request.build_body(
|
11
|
+
provider, meta
|
12
|
+
)))
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|