candidhealth 0.24.2 → 0.24.4

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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/commons/types/primitive.rb +17 -0
  3. data/lib/candidhealth/custom_schemas/client.rb +30 -0
  4. data/lib/candidhealth/custom_schemas/v_1/client.rb +291 -0
  5. data/lib/candidhealth/custom_schemas/v_1/types/key_with_name_already_exists_error.rb +71 -0
  6. data/lib/candidhealth/custom_schemas/v_1/types/schema.rb +91 -0
  7. data/lib/candidhealth/custom_schemas/v_1/types/schema_field.rb +71 -0
  8. data/lib/candidhealth/custom_schemas/v_1/types/schema_get_multi_response.rb +65 -0
  9. data/lib/candidhealth/custom_schemas/v_1/types/schema_instance.rb +76 -0
  10. data/lib/candidhealth/custom_schemas/v_1/types/schema_validation_error.rb +100 -0
  11. data/lib/candidhealth/custom_schemas/v_1/types/schema_validation_failure.rb +65 -0
  12. data/lib/candidhealth/custom_schemas/v_1/types/schema_with_name_already_exists_error.rb +70 -0
  13. data/lib/candidhealth/encounters/v_4/client.rb +49 -12
  14. data/lib/candidhealth/encounters/v_4/types/encounter.rb +17 -1
  15. data/lib/candidhealth/encounters/v_4/types/key_does_not_exist_error.rb +70 -0
  16. data/lib/candidhealth/encounters/v_4/types/multiple_instances_for_schema_error.rb +60 -0
  17. data/lib/candidhealth/encounters/v_4/types/schema_does_not_exist_error.rb +60 -0
  18. data/lib/candidhealth/encounters/v_4/types/schema_instance_validation_error.rb +139 -0
  19. data/lib/candidhealth/encounters/v_4/types/schema_instance_validation_failure.rb +65 -0
  20. data/lib/candidhealth/encounters/v_4/types/schema_unauthorized_access_error.rb +60 -0
  21. data/lib/candidhealth/encounters/v_4/types/value_does_not_match_key_type_error.rb +90 -0
  22. data/lib/candidhealth/pre_encounter/common/types/disability_status.rb +14 -0
  23. data/lib/candidhealth/pre_encounter/common/types/ethnicity.rb +16 -0
  24. data/lib/candidhealth/pre_encounter/common/types/gender.rb +5 -2
  25. data/lib/candidhealth/pre_encounter/common/types/race.rb +21 -0
  26. data/lib/candidhealth/pre_encounter/common/types/sex.rb +16 -0
  27. data/lib/candidhealth/pre_encounter/common/types/sexual_orientation.rb +19 -0
  28. data/lib/candidhealth/pre_encounter/coverages/client.rb +6 -6
  29. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +464 -11
  30. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage.rb +183 -0
  31. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_status.rb +20 -0
  32. data/lib/candidhealth/pre_encounter/coverages/v_1/types/insurance_plan.rb +134 -0
  33. data/lib/candidhealth/pre_encounter/coverages/v_1/types/mutable_coverage.rb +129 -0
  34. data/lib/candidhealth/pre_encounter/coverages/v_1/types/network_type.rb +33 -0
  35. data/lib/candidhealth/pre_encounter/coverages/v_1/types/subscriber.rb +88 -0
  36. data/lib/candidhealth/pre_encounter/patients/client.rb +6 -6
  37. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +607 -11
  38. data/lib/candidhealth/pre_encounter/patients/v_1/types/contact.rb +133 -0
  39. data/lib/candidhealth/pre_encounter/patients/v_1/types/external_provenance.rb +73 -0
  40. data/lib/candidhealth/pre_encounter/patients/v_1/types/external_provider.rb +122 -0
  41. data/lib/candidhealth/pre_encounter/patients/v_1/types/filing_order.rb +63 -0
  42. data/lib/candidhealth/pre_encounter/patients/v_1/types/marital_status.rb +26 -0
  43. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +325 -0
  44. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +389 -0
  45. data/lib/candidhealth.rb +14 -7
  46. data/lib/requests.rb +2 -2
  47. data/lib/types_export.rb +34 -12
  48. metadata +38 -16
  49. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/client.rb +0 -487
  50. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/types/coverage.rb +0 -185
  51. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/types/coverage_status.rb +0 -22
  52. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/types/coverage_type.rb +0 -18
  53. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/types/insurance_plan.rb +0 -136
  54. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/types/mutable_coverage.rb +0 -131
  55. data/lib/candidhealth/pre_encounter/coverages/v_1/coverages/types/subscriber.rb +0 -90
  56. data/lib/candidhealth/pre_encounter/patients/v_1/patients/client.rb +0 -590
  57. data/lib/candidhealth/pre_encounter/patients/v_1/patients/types/contact.rb +0 -135
  58. data/lib/candidhealth/pre_encounter/patients/v_1/patients/types/external_provenance.rb +0 -75
  59. data/lib/candidhealth/pre_encounter/patients/v_1/patients/types/external_provider.rb +0 -116
  60. data/lib/candidhealth/pre_encounter/patients/v_1/patients/types/marital_status.rb +0 -28
  61. data/lib/candidhealth/pre_encounter/patients/v_1/patients/types/mutable_patient.rb +0 -242
  62. data/lib/candidhealth/pre_encounter/patients/v_1/patients/types/patient.rb +0 -294
@@ -0,0 +1,133 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../common/types/relationship"
4
+ require_relative "../../../common/types/human_name"
5
+ require_relative "../../../common/types/gender"
6
+ require_relative "../../../common/types/contact_point"
7
+ require_relative "../../../common/types/address"
8
+ require_relative "../../../common/types/period"
9
+ require "ostruct"
10
+ require "json"
11
+
12
+ module CandidApiClient
13
+ module PreEncounter
14
+ module Patients
15
+ module V1
16
+ module Types
17
+ class Contact
18
+ # @return [Array<CandidApiClient::PreEncounter::Common::Types::Relationship>]
19
+ attr_reader :relationship
20
+ # @return [CandidApiClient::PreEncounter::Common::Types::HumanName]
21
+ attr_reader :name
22
+ # @return [CandidApiClient::PreEncounter::Common::Types::Gender]
23
+ attr_reader :gender
24
+ # @return [Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>]
25
+ attr_reader :telecoms
26
+ # @return [Array<CandidApiClient::PreEncounter::Common::Types::Address>]
27
+ attr_reader :addresses
28
+ # @return [CandidApiClient::PreEncounter::Common::Types::Period]
29
+ attr_reader :period
30
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
31
+ attr_reader :additional_properties
32
+ # @return [Object]
33
+ attr_reader :_field_set
34
+ protected :_field_set
35
+
36
+ OMIT = Object.new
37
+
38
+ # @param relationship [Array<CandidApiClient::PreEncounter::Common::Types::Relationship>]
39
+ # @param name [CandidApiClient::PreEncounter::Common::Types::HumanName]
40
+ # @param gender [CandidApiClient::PreEncounter::Common::Types::Gender]
41
+ # @param telecoms [Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>]
42
+ # @param addresses [Array<CandidApiClient::PreEncounter::Common::Types::Address>]
43
+ # @param period [CandidApiClient::PreEncounter::Common::Types::Period]
44
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
45
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::Contact]
46
+ def initialize(relationship:, name:, telecoms:, addresses:, gender: OMIT, period: OMIT,
47
+ additional_properties: nil)
48
+ @relationship = relationship
49
+ @name = name
50
+ @gender = gender if gender != OMIT
51
+ @telecoms = telecoms
52
+ @addresses = addresses
53
+ @period = period if period != OMIT
54
+ @additional_properties = additional_properties
55
+ @_field_set = {
56
+ "relationship": relationship,
57
+ "name": name,
58
+ "gender": gender,
59
+ "telecoms": telecoms,
60
+ "addresses": addresses,
61
+ "period": period
62
+ }.reject do |_k, v|
63
+ v == OMIT
64
+ end
65
+ end
66
+
67
+ # Deserialize a JSON object to an instance of Contact
68
+ #
69
+ # @param json_object [String]
70
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::Contact]
71
+ def self.from_json(json_object:)
72
+ struct = JSON.parse(json_object, object_class: OpenStruct)
73
+ parsed_json = JSON.parse(json_object)
74
+ relationship = struct["relationship"]
75
+ if parsed_json["name"].nil?
76
+ name = nil
77
+ else
78
+ name = parsed_json["name"].to_json
79
+ name = CandidApiClient::PreEncounter::Common::Types::HumanName.from_json(json_object: name)
80
+ end
81
+ gender = struct["gender"]
82
+ telecoms = parsed_json["telecoms"]&.map do |item|
83
+ item = item.to_json
84
+ CandidApiClient::PreEncounter::Common::Types::ContactPoint.from_json(json_object: item)
85
+ end
86
+ addresses = parsed_json["addresses"]&.map do |item|
87
+ item = item.to_json
88
+ CandidApiClient::PreEncounter::Common::Types::Address.from_json(json_object: item)
89
+ end
90
+ if parsed_json["period"].nil?
91
+ period = nil
92
+ else
93
+ period = parsed_json["period"].to_json
94
+ period = CandidApiClient::PreEncounter::Common::Types::Period.from_json(json_object: period)
95
+ end
96
+ new(
97
+ relationship: relationship,
98
+ name: name,
99
+ gender: gender,
100
+ telecoms: telecoms,
101
+ addresses: addresses,
102
+ period: period,
103
+ additional_properties: struct
104
+ )
105
+ end
106
+
107
+ # Serialize an instance of Contact to a JSON object
108
+ #
109
+ # @return [String]
110
+ def to_json(*_args)
111
+ @_field_set&.to_json
112
+ end
113
+
114
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
115
+ # hash and check each fields type against the current object's property
116
+ # definitions.
117
+ #
118
+ # @param obj [Object]
119
+ # @return [Void]
120
+ def self.validate_raw(obj:)
121
+ obj.relationship.is_a?(Array) != false || raise("Passed value for field obj.relationship is not the expected type, validation failed.")
122
+ CandidApiClient::PreEncounter::Common::Types::HumanName.validate_raw(obj: obj.name)
123
+ obj.gender&.is_a?(CandidApiClient::PreEncounter::Common::Types::Gender) != false || raise("Passed value for field obj.gender is not the expected type, validation failed.")
124
+ obj.telecoms.is_a?(Array) != false || raise("Passed value for field obj.telecoms is not the expected type, validation failed.")
125
+ obj.addresses.is_a?(Array) != false || raise("Passed value for field obj.addresses is not the expected type, validation failed.")
126
+ obj.period.nil? || CandidApiClient::PreEncounter::Common::Types::Period.validate_raw(obj: obj.period)
127
+ end
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module PreEncounter
8
+ module Patients
9
+ module V1
10
+ module Types
11
+ # Information about the upstream system that owns this patient data.
12
+ class ExternalProvenance
13
+ # @return [String]
14
+ attr_reader :external_id
15
+ # @return [String]
16
+ attr_reader :system_name
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param external_id [String]
26
+ # @param system_name [String]
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::ExternalProvenance]
29
+ def initialize(external_id:, system_name:, additional_properties: nil)
30
+ @external_id = external_id
31
+ @system_name = system_name
32
+ @additional_properties = additional_properties
33
+ @_field_set = { "external_id": external_id, "system_name": system_name }
34
+ end
35
+
36
+ # Deserialize a JSON object to an instance of ExternalProvenance
37
+ #
38
+ # @param json_object [String]
39
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::ExternalProvenance]
40
+ def self.from_json(json_object:)
41
+ struct = JSON.parse(json_object, object_class: OpenStruct)
42
+ external_id = struct["external_id"]
43
+ system_name = struct["system_name"]
44
+ new(
45
+ external_id: external_id,
46
+ system_name: system_name,
47
+ additional_properties: struct
48
+ )
49
+ end
50
+
51
+ # Serialize an instance of ExternalProvenance to a JSON object
52
+ #
53
+ # @return [String]
54
+ def to_json(*_args)
55
+ @_field_set&.to_json
56
+ end
57
+
58
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
59
+ # hash and check each fields type against the current object's property
60
+ # definitions.
61
+ #
62
+ # @param obj [Object]
63
+ # @return [Void]
64
+ def self.validate_raw(obj:)
65
+ obj.external_id.is_a?(String) != false || raise("Passed value for field obj.external_id is not the expected type, validation failed.")
66
+ obj.system_name.is_a?(String) != false || raise("Passed value for field obj.system_name is not the expected type, validation failed.")
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../common/types/human_name"
4
+ require_relative "../../../common/types/contact_point"
5
+ require_relative "../../../common/types/address"
6
+ require_relative "../../../common/types/period"
7
+ require "ostruct"
8
+ require "json"
9
+
10
+ module CandidApiClient
11
+ module PreEncounter
12
+ module Patients
13
+ module V1
14
+ module Types
15
+ class ExternalProvider
16
+ # @return [CandidApiClient::PreEncounter::Common::Types::HumanName]
17
+ attr_reader :name
18
+ # @return [String]
19
+ attr_reader :npi
20
+ # @return [Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>]
21
+ attr_reader :telecoms
22
+ # @return [Array<CandidApiClient::PreEncounter::Common::Types::Address>]
23
+ attr_reader :addresses
24
+ # @return [CandidApiClient::PreEncounter::Common::Types::Period]
25
+ attr_reader :period
26
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
27
+ attr_reader :additional_properties
28
+ # @return [Object]
29
+ attr_reader :_field_set
30
+ protected :_field_set
31
+
32
+ OMIT = Object.new
33
+
34
+ # @param name [CandidApiClient::PreEncounter::Common::Types::HumanName]
35
+ # @param npi [String]
36
+ # @param telecoms [Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>]
37
+ # @param addresses [Array<CandidApiClient::PreEncounter::Common::Types::Address>]
38
+ # @param period [CandidApiClient::PreEncounter::Common::Types::Period]
39
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
40
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::ExternalProvider]
41
+ def initialize(name:, npi:, telecoms:, addresses:, period: OMIT, additional_properties: nil)
42
+ @name = name
43
+ @npi = npi
44
+ @telecoms = telecoms
45
+ @addresses = addresses
46
+ @period = period if period != OMIT
47
+ @additional_properties = additional_properties
48
+ @_field_set = {
49
+ "name": name,
50
+ "npi": npi,
51
+ "telecoms": telecoms,
52
+ "addresses": addresses,
53
+ "period": period
54
+ }.reject do |_k, v|
55
+ v == OMIT
56
+ end
57
+ end
58
+
59
+ # Deserialize a JSON object to an instance of ExternalProvider
60
+ #
61
+ # @param json_object [String]
62
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::ExternalProvider]
63
+ def self.from_json(json_object:)
64
+ struct = JSON.parse(json_object, object_class: OpenStruct)
65
+ parsed_json = JSON.parse(json_object)
66
+ if parsed_json["name"].nil?
67
+ name = nil
68
+ else
69
+ name = parsed_json["name"].to_json
70
+ name = CandidApiClient::PreEncounter::Common::Types::HumanName.from_json(json_object: name)
71
+ end
72
+ npi = struct["npi"]
73
+ telecoms = parsed_json["telecoms"]&.map do |item|
74
+ item = item.to_json
75
+ CandidApiClient::PreEncounter::Common::Types::ContactPoint.from_json(json_object: item)
76
+ end
77
+ addresses = parsed_json["addresses"]&.map do |item|
78
+ item = item.to_json
79
+ CandidApiClient::PreEncounter::Common::Types::Address.from_json(json_object: item)
80
+ end
81
+ if parsed_json["period"].nil?
82
+ period = nil
83
+ else
84
+ period = parsed_json["period"].to_json
85
+ period = CandidApiClient::PreEncounter::Common::Types::Period.from_json(json_object: period)
86
+ end
87
+ new(
88
+ name: name,
89
+ npi: npi,
90
+ telecoms: telecoms,
91
+ addresses: addresses,
92
+ period: period,
93
+ additional_properties: struct
94
+ )
95
+ end
96
+
97
+ # Serialize an instance of ExternalProvider to a JSON object
98
+ #
99
+ # @return [String]
100
+ def to_json(*_args)
101
+ @_field_set&.to_json
102
+ end
103
+
104
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
105
+ # hash and check each fields type against the current object's property
106
+ # definitions.
107
+ #
108
+ # @param obj [Object]
109
+ # @return [Void]
110
+ def self.validate_raw(obj:)
111
+ CandidApiClient::PreEncounter::Common::Types::HumanName.validate_raw(obj: obj.name)
112
+ obj.npi.is_a?(String) != false || raise("Passed value for field obj.npi is not the expected type, validation failed.")
113
+ obj.telecoms.is_a?(Array) != false || raise("Passed value for field obj.telecoms is not the expected type, validation failed.")
114
+ obj.addresses.is_a?(Array) != false || raise("Passed value for field obj.addresses is not the expected type, validation failed.")
115
+ obj.period.nil? || CandidApiClient::PreEncounter::Common::Types::Period.validate_raw(obj: obj.period)
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module PreEncounter
8
+ module Patients
9
+ module V1
10
+ module Types
11
+ # The patient's active coverages, in order of primary, secondary, etc.
12
+ class FilingOrder
13
+ # @return [Array<String>]
14
+ attr_reader :coverages
15
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
16
+ attr_reader :additional_properties
17
+ # @return [Object]
18
+ attr_reader :_field_set
19
+ protected :_field_set
20
+
21
+ OMIT = Object.new
22
+
23
+ # @param coverages [Array<String>]
24
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
25
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::FilingOrder]
26
+ def initialize(coverages:, additional_properties: nil)
27
+ @coverages = coverages
28
+ @additional_properties = additional_properties
29
+ @_field_set = { "coverages": coverages }
30
+ end
31
+
32
+ # Deserialize a JSON object to an instance of FilingOrder
33
+ #
34
+ # @param json_object [String]
35
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::FilingOrder]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ coverages = struct["coverages"]
39
+ new(coverages: coverages, additional_properties: struct)
40
+ end
41
+
42
+ # Serialize an instance of FilingOrder to a JSON object
43
+ #
44
+ # @return [String]
45
+ def to_json(*_args)
46
+ @_field_set&.to_json
47
+ end
48
+
49
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
50
+ # hash and check each fields type against the current object's property
51
+ # definitions.
52
+ #
53
+ # @param obj [Object]
54
+ # @return [Void]
55
+ def self.validate_raw(obj:)
56
+ obj.coverages.is_a?(Array) != false || raise("Passed value for field obj.coverages is not the expected type, validation failed.")
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ module PreEncounter
5
+ module Patients
6
+ module V1
7
+ module Types
8
+ class MaritalStatus
9
+ ANNULLED = "ANNULLED"
10
+ DIVORCED = "DIVORCED"
11
+ INTERLOCUTORY = "INTERLOCUTORY"
12
+ SEPARATED = "SEPARATED"
13
+ MARRIED = "MARRIED"
14
+ COMMON_LAW = "COMMON_LAW"
15
+ POLYGAMOUS = "POLYGAMOUS"
16
+ DOMESTIC_PARTNER = "DOMESTIC_PARTNER"
17
+ UNMARRIED = "UNMARRIED"
18
+ NEVER_MARRIED = "NEVER_MARRIED"
19
+ WIDOWED = "WIDOWED"
20
+ UNKNOWN = "UNKNOWN"
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end