redox 1.3.0 → 1.5.2
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 +41 -1
- data/lib/redox.rb +6 -0
- data/lib/redox/models/financial.rb +1 -4
- data/lib/redox/models/model.rb +67 -26
- data/lib/redox/models/ordering_provider.rb +15 -0
- data/lib/redox/models/patient.rb +6 -0
- data/lib/redox/models/patient/contacts.rb +20 -0
- data/lib/redox/models/patient/demographics.rb +3 -3
- data/lib/redox/models/patient/identifier.rb +1 -1
- data/lib/redox/models/patient/p_c_p.rb +1 -5
- data/lib/redox/models/provider.rb +21 -0
- data/lib/redox/models/scheduling.rb +24 -0
- data/lib/redox/models/transaction.rb +22 -9
- data/lib/redox/models/visit.rb +27 -4
- data/lib/redox/request/provider.rb +12 -0
- data/lib/redox/request/scheduling.rb +30 -0
- data/lib/redox/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e502173db4efa95ee3c6e4f338ad78344c25c52aa35be766d4f6137724a4923
|
4
|
+
data.tar.gz: 339890660bea9426b4950c33697a7e38eada9b07ba0a4356ecda5076271d404c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a434730a3fb38681fdd434ac7451c1c9ee5ed49f9f136292991f2499e97f6f16537c853bb1d1b2c13b25882e3ea0210d2cb301f64594fc97c9a229341a5fc213
|
7
|
+
data.tar.gz: 7d9ab435afe16ae9288f5a8dea5c18e137d592adc4122ecd3b65dbd6504ecbe22b5ecd0ba1c262abcd797ecc230f8c24ce39963fbabf315c8233eb7d9b0334f7
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,42 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [1.5.2] - 2021-01-08
|
8
|
+
### Added
|
9
|
+
- Visit#Type
|
10
|
+
- Visit#Status
|
11
|
+
- Visit#Reason
|
12
|
+
- Visit#Equipment
|
13
|
+
|
14
|
+
## [1.5.1] - 2020-12-22
|
15
|
+
### Added
|
16
|
+
- Contacts model
|
17
|
+
- Patient#contacts
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
- typo of martialstatus is now maritalstatus for Demographics model
|
21
|
+
|
22
|
+
## [1.5.0] - 2020-12-15
|
23
|
+
### Added
|
24
|
+
- Scheduling model
|
25
|
+
- Scheduling#create
|
26
|
+
- Scheduling#cancel
|
27
|
+
- Scheduling#reschedule
|
28
|
+
- Scheduling#modification
|
29
|
+
|
30
|
+
## [1.4.0] - 2020-10-13
|
31
|
+
### Added
|
32
|
+
- AbstractModel that does not add top level key
|
33
|
+
- OrderingProvider that is the base for PCP
|
34
|
+
- Provider model
|
35
|
+
- Provider#query
|
36
|
+
- Created new method that can add helpers dynamically from response
|
37
|
+
|
38
|
+
## [1.3.1] - 2020-10-02
|
39
|
+
### Added
|
40
|
+
- Transaction#as\_json
|
41
|
+
- Visit#as\_json
|
42
|
+
|
7
43
|
## [1.3.0] - 2020-09-17
|
8
44
|
### Added
|
9
45
|
- Transaction model
|
@@ -23,7 +59,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
23
59
|
- Moving to Requst classes instead of mixing in logic to models (kept backwards compatibility)
|
24
60
|
- Added potential matches to responses and implemented for patient search
|
25
61
|
|
26
|
-
=======
|
27
62
|
### Added
|
28
63
|
- PotentialMatches class
|
29
64
|
|
@@ -108,6 +143,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
108
143
|
### Added
|
109
144
|
- Initial Release
|
110
145
|
|
146
|
+
[1.5.2]: https://github.com/WeInfuse/redox/compare/v1.5.1...v1.5.2
|
147
|
+
[1.5.1]: https://github.com/WeInfuse/redox/compare/v1.5.0...v1.5.1
|
148
|
+
[1.5.0]: https://github.com/WeInfuse/redox/compare/v1.4.0...v1.5.0
|
149
|
+
[1.4.0]: https://github.com/WeInfuse/redox/compare/v1.3.1...v1.4.0
|
150
|
+
[1.3.1]: https://github.com/WeInfuse/redox/compare/v1.3.0...v1.3.1
|
111
151
|
[1.3.0]: https://github.com/WeInfuse/redox/compare/v1.2.0...v1.3.0
|
112
152
|
[1.2.0]: https://github.com/WeInfuse/redox/compare/v1.1.1...v1.2.0
|
113
153
|
[1.1.1]: https://github.com/WeInfuse/redox/compare/v1.1.0...v1.1.1
|
data/lib/redox.rb
CHANGED
@@ -6,19 +6,25 @@ require 'redox/connection'
|
|
6
6
|
require 'redox/authentication'
|
7
7
|
require 'redox/models/model'
|
8
8
|
require 'redox/models/meta'
|
9
|
+
require 'redox/models/ordering_provider'
|
9
10
|
require 'redox/models/patient'
|
11
|
+
require 'redox/models/provider'
|
10
12
|
require 'redox/models/visit'
|
11
13
|
require 'redox/models/transaction'
|
12
14
|
require 'redox/models/financial'
|
13
15
|
require 'redox/models/patient/demographics'
|
16
|
+
require 'redox/models/patient/contacts'
|
14
17
|
require 'redox/models/patient/identifier'
|
15
18
|
require 'redox/models/patient/insurance'
|
16
19
|
require 'redox/models/patient/p_c_p'
|
17
20
|
require 'redox/models/potential_matches'
|
21
|
+
require 'redox/models/scheduling'
|
18
22
|
require 'redox/request/request'
|
19
23
|
require 'redox/request/financial'
|
20
24
|
require 'redox/request/patient_admin'
|
21
25
|
require 'redox/request/patient_search'
|
26
|
+
require 'redox/request/provider'
|
27
|
+
require 'redox/request/scheduling'
|
22
28
|
|
23
29
|
module Redox
|
24
30
|
class Configuration
|
@@ -1,9 +1,6 @@
|
|
1
1
|
module Redox
|
2
2
|
module Models
|
3
|
-
class Financial <
|
4
|
-
include Hashie::Extensions::IgnoreUndeclared
|
5
|
-
include Hashie::Extensions::IndifferentAccess
|
6
|
-
|
3
|
+
class Financial < AbstractModel
|
7
4
|
property :Visit, required: false, from: :visit, default: Redox::Models::Visit.new
|
8
5
|
property :Patient, required: false, from: :patient, default: Redox::Models::Patient.new
|
9
6
|
property :Transactions, required: false, from: :transactions, default: []
|
data/lib/redox/models/model.rb
CHANGED
@@ -8,10 +8,12 @@ module Redox
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
class
|
11
|
+
class AbstractModel < Hashie::Trash
|
12
12
|
include Hashie::Extensions::IgnoreUndeclared
|
13
13
|
include Hashie::Extensions::IndifferentAccess
|
14
14
|
|
15
|
+
HIGH_LEVEL_KEYS = %w[Meta Patient Visit PotentialMatches]
|
16
|
+
|
15
17
|
property :Meta, from: :meta, required: false
|
16
18
|
property :Patient, from: :patient, required: false
|
17
19
|
property :Visit, from: :visit, required: false
|
@@ -24,6 +26,70 @@ module Redox
|
|
24
26
|
alias_method :visit, :Visit
|
25
27
|
alias_method :meta, :Meta
|
26
28
|
|
29
|
+
def to_json(args = {})
|
30
|
+
return self.to_h.to_json
|
31
|
+
end
|
32
|
+
|
33
|
+
def insurances
|
34
|
+
(self.patient&.insurances || []) + (self.visit&.insurances || [])
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.from_response(response)
|
38
|
+
model = Model.new
|
39
|
+
model.response = response
|
40
|
+
|
41
|
+
HIGH_LEVEL_KEYS.each do |k|
|
42
|
+
begin
|
43
|
+
model.send("#{k}=", Module.const_get("Redox::Models::#{k}").new(response[k])) if response[k]
|
44
|
+
rescue
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
return model
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.from_response_inflected(response)
|
52
|
+
model = self.from_response(response)
|
53
|
+
|
54
|
+
if (model.response.ok?)
|
55
|
+
data = model.response.parsed_response
|
56
|
+
|
57
|
+
if data.respond_to?(:keys)
|
58
|
+
model_class = nil
|
59
|
+
|
60
|
+
if model.meta&.data_model
|
61
|
+
model_class = "Redox::Models::#{model.meta.data_model}"
|
62
|
+
|
63
|
+
begin
|
64
|
+
model_class = Object.const_get(model_class)
|
65
|
+
rescue NameError
|
66
|
+
model_class = nil
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
data.keys.each do |key|
|
71
|
+
next if HIGH_LEVEL_KEYS.include?(key.to_s)
|
72
|
+
|
73
|
+
helper_name = key.to_s.downcase.to_sym
|
74
|
+
|
75
|
+
if model_class.nil?
|
76
|
+
model.define_singleton_method(helper_name) { data[key] }
|
77
|
+
else
|
78
|
+
if data[key].is_a?(Array)
|
79
|
+
model.define_singleton_method(helper_name) { data[key].map {|obj| model_class.new(obj) } }
|
80
|
+
else
|
81
|
+
model.define_singleton_method(helper_name) { model_class.new(data[key]) }
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
return model
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
class Model < AbstractModel
|
27
93
|
def initialize(data = {})
|
28
94
|
if data.is_a?(Hash)
|
29
95
|
if data.include?(key)
|
@@ -40,32 +106,7 @@ module Redox
|
|
40
106
|
return { key => super.to_h }
|
41
107
|
end
|
42
108
|
|
43
|
-
def to_json(args = {})
|
44
|
-
return self.to_h.to_json
|
45
|
-
end
|
46
|
-
|
47
|
-
def insurances
|
48
|
-
(self.patient&.insurances || []) + (self.visit&.insurances || [])
|
49
|
-
end
|
50
|
-
|
51
|
-
class << self
|
52
|
-
def from_response(response)
|
53
|
-
model = Model.new
|
54
|
-
model.response = response
|
55
|
-
|
56
|
-
%w[Meta Patient Visit PotentialMatches].each do |k|
|
57
|
-
begin
|
58
|
-
model.send("#{k}=", Module.const_get("Redox::Models::#{k}").new(response[k])) if response[k]
|
59
|
-
rescue
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
return model
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
109
|
private
|
68
|
-
|
69
110
|
def key
|
70
111
|
return self.class.to_s.split('::').last.to_s
|
71
112
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Redox
|
2
|
+
module Models
|
3
|
+
class OrderingProvider < AbstractModel
|
4
|
+
property :ID, required: false, from: :id
|
5
|
+
property :IDType, required: false, from: :id_type
|
6
|
+
property :FirstName, required: false, from: :first_name
|
7
|
+
property :LastName, required: false, from: :last_name
|
8
|
+
|
9
|
+
alias_method :first_name, :FirstName
|
10
|
+
alias_method :last_name, :LastName
|
11
|
+
alias_method :id, :ID
|
12
|
+
alias_method :id_type, :IDType
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/redox/models/patient.rb
CHANGED
@@ -4,10 +4,12 @@ module Redox
|
|
4
4
|
property :Identifiers, from: :identifiers, required: false, default: []
|
5
5
|
property :Insurances, from: :insurances, required: false, default: []
|
6
6
|
property :Demographics, from: :demographics, required: false
|
7
|
+
property :Contacts, from: :contacts, required: false, default: []
|
7
8
|
property :PCP, from: :primary_care_provider, required: false
|
8
9
|
|
9
10
|
alias_method :identifiers, :Identifiers
|
10
11
|
alias_method :insurances, :Insurances
|
12
|
+
alias_method :contacts, :Contacts
|
11
13
|
|
12
14
|
def demographics
|
13
15
|
self[:Demographics] = Demographics.new(self[:Demographics]) unless self[:Demographics].is_a?(Redox::Models::Demographics)
|
@@ -22,6 +24,10 @@ module Redox
|
|
22
24
|
self[:PCP] ||= PCP.new
|
23
25
|
end
|
24
26
|
|
27
|
+
def contacts
|
28
|
+
self[:Contacts] = self[:Contacts].map {|contact| contact.is_a?(Redox::Models::Contact) ? contact : Contact.new(contact)}
|
29
|
+
end
|
30
|
+
|
25
31
|
def add_identifier(type: , value: )
|
26
32
|
self[:Identifiers] << Identifier.new({'ID' => value, 'IDType' => type})
|
27
33
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Redox
|
2
|
+
module Models
|
3
|
+
class Contact < AbstractModel
|
4
|
+
property :FirstName, required: false, from: :first_name
|
5
|
+
property :MiddleName, required: false, from: :middle_name
|
6
|
+
property :LastName, required: false, from: :last_name
|
7
|
+
property :RelationToPatient, required: false
|
8
|
+
property :EmailAddresses, required: false, default: []
|
9
|
+
property :Address, required: false, default: {}
|
10
|
+
property :PhoneNumber, required: false, default: {}
|
11
|
+
property :Roles, required: false, default: []
|
12
|
+
|
13
|
+
alias_method :first_name, :FirstName
|
14
|
+
alias_method :middle_name, :MiddleName
|
15
|
+
alias_method :last_name, :LastName
|
16
|
+
alias_method :address, :Address
|
17
|
+
alias_method :phone_number, :PhoneNumber
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Redox
|
2
2
|
module Models
|
3
|
-
class Demographics <
|
3
|
+
class Demographics < AbstractModel
|
4
4
|
property :FirstName, required: false, from: :first_name
|
5
5
|
property :MiddleName, required: false, from: :middle_name
|
6
6
|
property :LastName, required: false, from: :last_name
|
@@ -9,7 +9,7 @@ module Redox
|
|
9
9
|
property :Sex, required: false, from: :sex
|
10
10
|
property :Race, required: false, from: :race
|
11
11
|
property :IsHispanic, required: false
|
12
|
-
property :MaritalStatus, required: false, from: :
|
12
|
+
property :MaritalStatus, required: false, from: :marital_status
|
13
13
|
property :IsDeceased, required: false
|
14
14
|
property :DeathDateTime, required: false
|
15
15
|
property :Language, required: false, from: :language
|
@@ -25,7 +25,7 @@ module Redox
|
|
25
25
|
alias_method :ssn, :SSN
|
26
26
|
alias_method :sex, :Sex
|
27
27
|
alias_method :race, :Race
|
28
|
-
alias_method :
|
28
|
+
alias_method :marital_status, :MaritalStatus
|
29
29
|
alias_method :language, :Language
|
30
30
|
alias_method :address, :Address
|
31
31
|
alias_method :phone_number, :PhoneNumber
|
@@ -1,13 +1,9 @@
|
|
1
1
|
module Redox
|
2
2
|
module Models
|
3
|
-
class PCP <
|
3
|
+
class PCP < OrderingProvider
|
4
4
|
property :NPI, from: :npi
|
5
|
-
property :FirstName, required: false, from: :first_name
|
6
|
-
property :LastName, required: false, from: :last_name
|
7
5
|
|
8
6
|
alias_method :npi, :NPI
|
9
|
-
alias_method :first_name, :FirstName
|
10
|
-
alias_method :last_name, :LastName
|
11
7
|
end
|
12
8
|
end
|
13
9
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Redox
|
2
|
+
module Models
|
3
|
+
class Provider < Model
|
4
|
+
property :Identifiers, from: :identifiers, required: false, default: []
|
5
|
+
property :Demographics, from: :demographics, required: false
|
6
|
+
|
7
|
+
alias_method :identifiers, :Identifiers
|
8
|
+
|
9
|
+
def demographics
|
10
|
+
self[:Demographics] = Demographics.new(self[:Demographics]) unless self[:Demographics].is_a?(Redox::Models::Demographics)
|
11
|
+
self[:Demographics] ||= Demographics.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def add_identifier(type: , value: )
|
15
|
+
self[:Identifiers] << Identifier.new({'ID' => value, 'IDType' => type})
|
16
|
+
|
17
|
+
return self
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Redox
|
2
|
+
module Models
|
3
|
+
class Scheduling < AbstractModel
|
4
|
+
property :Visit, required: false, from: :visit, default: Redox::Models::Visit.new
|
5
|
+
property :Patient, required: false, from: :patient, default: Redox::Models::Patient.new
|
6
|
+
property :AppointmentInfo, required: false, from: :appointment_info, default: []
|
7
|
+
|
8
|
+
alias_method :patient, :Patient
|
9
|
+
alias_method :visit, :Visit
|
10
|
+
alias_method :appointment_info, :AppointmentInfo
|
11
|
+
|
12
|
+
def add_appointment_info(code: nil, codeset: nil, description: nil, value: nil)
|
13
|
+
self[:AppointmentInfo] << {
|
14
|
+
Code: code,
|
15
|
+
Codeset: codeset,
|
16
|
+
Description: description,
|
17
|
+
Value: value
|
18
|
+
}
|
19
|
+
|
20
|
+
self
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,9 +1,6 @@
|
|
1
1
|
module Redox
|
2
2
|
module Models
|
3
|
-
class Transaction <
|
4
|
-
include Hashie::Extensions::IgnoreUndeclared
|
5
|
-
include Hashie::Extensions::IndifferentAccess
|
6
|
-
|
3
|
+
class Transaction < AbstractModel
|
7
4
|
property :Chargeable, required: false, from: :chargeable, default: {}
|
8
5
|
property :DateTimeOfService, required: false, from: :start
|
9
6
|
property :Department, required: false, from: :department, default: {}
|
@@ -48,14 +45,30 @@ module Redox
|
|
48
45
|
self
|
49
46
|
end
|
50
47
|
|
51
|
-
def
|
52
|
-
|
48
|
+
def add_ordering_provider(**kwargs)
|
49
|
+
self[:OrderingProviders] ||= []
|
50
|
+
self[:OrderingProviders] << OrderingProvider.new(kwargs)
|
51
|
+
self
|
52
|
+
end
|
53
53
|
|
54
|
-
|
55
|
-
|
54
|
+
def add_performer(**kwargs)
|
55
|
+
self[:Performers] ||= []
|
56
|
+
self[:Performers] << OrderingProvider.new(kwargs)
|
57
|
+
self
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_h
|
61
|
+
result = super.to_h
|
62
|
+
|
63
|
+
%w[EndDateTime DateTimeOfService].each do |k|
|
64
|
+
result[k] = Redox::Models.format_datetime(result[k])
|
56
65
|
end
|
57
66
|
|
58
|
-
|
67
|
+
result
|
68
|
+
end
|
69
|
+
|
70
|
+
def as_json(args)
|
71
|
+
self.to_h
|
59
72
|
end
|
60
73
|
end
|
61
74
|
end
|
data/lib/redox/models/visit.rb
CHANGED
@@ -9,8 +9,13 @@ module Redox
|
|
9
9
|
property :Insurances, from: :insurances, required: false, default: []
|
10
10
|
property :Location, from: :location, required: false, default: DEFAULT_LOCATION
|
11
11
|
property :VisitDateTime, from: :start, required: false
|
12
|
+
property :Duration, from: :duration, required: false
|
12
13
|
property :VisitNumber, from: :visit_number, required: false
|
13
14
|
property :AccountNumber, from: :account_number, required: false
|
15
|
+
property :Status, from: :status, required: false
|
16
|
+
property :Type, from: :type, required: false
|
17
|
+
property :Reason, from: :reason, required: false
|
18
|
+
property :Equipment, from: :equipment, required: false
|
14
19
|
|
15
20
|
alias_method :insurances, :Insurances
|
16
21
|
alias_method :start, :VisitDateTime
|
@@ -27,14 +32,32 @@ module Redox
|
|
27
32
|
self
|
28
33
|
end
|
29
34
|
|
35
|
+
def add_equipment(description: nil, code: nil)
|
36
|
+
self[:Equipment] ||= []
|
37
|
+
self[:Equipment] << { Description: description, Code: code }
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
30
41
|
def insurances
|
31
42
|
self[:Insurances] = self[:Insurances].map {|ins| ins.is_a?(Redox::Models::Insurance) ? ins : Insurance.new(ins) }
|
32
43
|
end
|
33
44
|
|
34
|
-
def
|
35
|
-
|
36
|
-
|
37
|
-
|
45
|
+
def to_h
|
46
|
+
result = super.to_h
|
47
|
+
|
48
|
+
%w[VisitDateTime].each do |k|
|
49
|
+
result[key][k] = Redox::Models.format_datetime(result[key][k])
|
50
|
+
end
|
51
|
+
|
52
|
+
result
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_json(args = {})
|
56
|
+
self.to_h.to_json
|
57
|
+
end
|
58
|
+
|
59
|
+
def as_json(args = {})
|
60
|
+
self.to_h.dig('Visit')
|
38
61
|
end
|
39
62
|
end
|
40
63
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Redox
|
2
|
+
module Request
|
3
|
+
class Provider
|
4
|
+
QUERY_META = Redox::Models::Meta.new(EventType: 'ProviderQuery', DataModel: 'Provider')
|
5
|
+
|
6
|
+
def self.query(provider, meta: Redox::Models::Meta.new)
|
7
|
+
meta = QUERY_META.merge(meta)
|
8
|
+
return Redox::Models::Model.from_response_inflected((RedoxClient.connection.request(body: Redox::Request.build_body(provider, meta))))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Redox
|
2
|
+
module Request
|
3
|
+
class Scheduling
|
4
|
+
CREATE_META = Redox::Models::Meta.new(EventType: 'New', DataModel: 'Scheduling')
|
5
|
+
CANCEL_META = Redox::Models::Meta.new(EventType: 'Cancel', DataModel: 'Scheduling')
|
6
|
+
RESCHEDULE_META = Redox::Models::Meta.new(EventType: 'Reschedule', DataModel: 'Scheduling')
|
7
|
+
MODIFICATION_META = Redox::Models::Meta.new(EventType: 'Modification', DataModel: 'Scheduling')
|
8
|
+
|
9
|
+
def self.create(model, meta: Redox::Models::Meta.new)
|
10
|
+
meta = CREATE_META.merge(meta)
|
11
|
+
return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(model, meta))))
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.cancel(model, meta: Redox::Models::Meta.new)
|
15
|
+
meta = CANCEL_META.merge(meta)
|
16
|
+
return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(model, meta))))
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.reschedule(model, meta: Redox::Models::Meta.new)
|
20
|
+
meta = RESCHEDULE_META.merge(meta)
|
21
|
+
return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(model, meta))))
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.modification(model, meta: Redox::Models::Meta.new)
|
25
|
+
meta = MODIFICATION_META.merge(meta)
|
26
|
+
return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(model, meta))))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/redox/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Clark
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-01-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -150,19 +150,25 @@ files:
|
|
150
150
|
- lib/redox/models/financial.rb
|
151
151
|
- lib/redox/models/meta.rb
|
152
152
|
- lib/redox/models/model.rb
|
153
|
+
- lib/redox/models/ordering_provider.rb
|
153
154
|
- lib/redox/models/patient.rb
|
155
|
+
- lib/redox/models/patient/contacts.rb
|
154
156
|
- lib/redox/models/patient/demographics.rb
|
155
157
|
- lib/redox/models/patient/identifier.rb
|
156
158
|
- lib/redox/models/patient/insurance.rb
|
157
159
|
- lib/redox/models/patient/p_c_p.rb
|
158
160
|
- lib/redox/models/potential_matches.rb
|
161
|
+
- lib/redox/models/provider.rb
|
162
|
+
- lib/redox/models/scheduling.rb
|
159
163
|
- lib/redox/models/transaction.rb
|
160
164
|
- lib/redox/models/visit.rb
|
161
165
|
- lib/redox/redox_exception.rb
|
162
166
|
- lib/redox/request/financial.rb
|
163
167
|
- lib/redox/request/patient_admin.rb
|
164
168
|
- lib/redox/request/patient_search.rb
|
169
|
+
- lib/redox/request/provider.rb
|
165
170
|
- lib/redox/request/request.rb
|
171
|
+
- lib/redox/request/scheduling.rb
|
166
172
|
- lib/redox/version.rb
|
167
173
|
- redox.gemspec
|
168
174
|
homepage: https://github.com/WeInfuse/redox
|