candidhealth 0.30.0 → 0.31.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7dc3837b0ca573016c14778b36c302ea879990bcdca8e98c50c240c3702d6a6d
4
- data.tar.gz: 3c02048cb7203e632e1533d820827231784112d2f018950f473c5b015a5603a6
3
+ metadata.gz: e1c6e56c5d0482646728cd5dad2ad2715d4d824a87ccdc9994e9a4f4bffbc4fa
4
+ data.tar.gz: 764a249c8ea0ea9aea3a3c8e3af28cf2000da21c1733055c71954e88b52cb107
5
5
  SHA512:
6
- metadata.gz: 8c729973b43b11320ee00757d9bd2083d48d46da81f2655822c661b4f44aba2272671a7ac3f9d8d13f758952da625698f0f523e512bc7a3a09aac1b979bb7f02
7
- data.tar.gz: d9d9c8b36d05ac029b0656b6f782b59da026a1af706433e1a061bd04d9bb6c965acb262e779fbd2d4ffeff3426d851fa5af87e6d3ac58094afdef90722c8ef32
6
+ metadata.gz: 9fb13b34c2792b335cffed497c18d13493a3dfffc0a30887744b2e0c0741a1025c627b600fd00bfff7e6c26b0fc43ab5285c27442df504c17e6df9c73a740ff9
7
+ data.tar.gz: 1933fbc4b1b43a606dec62bc2b79bd943c46d5ed371253ecd84d0aa997148fccb6fa40a558dbf8a915cac3fa32c495fb67ef1bbd9ad7caed2057669b51f118cb
@@ -34,6 +34,7 @@ require_relative "../../service_lines/v_2/types/service_line_create"
34
34
  require_relative "../../guarantor/v_1/types/guarantor_create"
35
35
  require_relative "../../claim_submission/v_1/types/external_claim_submission_create"
36
36
  require_relative "../../custom_schemas/v_1/types/schema_instance"
37
+ require_relative "types/vitals_update"
37
38
  require "async"
38
39
 
39
40
  module CandidApiClient
@@ -804,6 +805,16 @@ module CandidApiClient
804
805
  # is provided as an input, then the encounter's schema instances will be cleared.Request of type Array<CandidApiClient::CustomSchemas::V1::Types::SchemaInstance>, as a Hash
805
806
  # * :schema_id (String)
806
807
  # * :content (Hash{String => Object})
808
+ # @param vitals [Hash] If a vitals entity already exists for the encounter, then all values will be
809
+ # updated to the provided values.
810
+ # Otherwise, a new vitals object will be created for the encounter.Request of type CandidApiClient::Encounters::V4::Types::VitalsUpdate, as a Hash
811
+ # * :height_in (Integer)
812
+ # * :weight_lbs (Integer)
813
+ # * :blood_pressure_systolic_mmhg (Integer)
814
+ # * :blood_pressure_diastolic_mmhg (Integer)
815
+ # * :body_temperature_f (Float)
816
+ # * :hemoglobin_gdl (Float)
817
+ # * :hematocrit_pct (Float)
807
818
  # @param request_options [CandidApiClient::RequestOptions]
808
819
  # @return [CandidApiClient::Encounters::V4::Types::Encounter]
809
820
  # @example
@@ -836,10 +847,11 @@ module CandidApiClient
836
847
  # last_menstrual_period_date: DateTime.parse(2023-01-15),
837
848
  # delay_reason_code: C_1,
838
849
  # patient_authorized_release: true,
839
- # schema_instances: [{ schema_id: "ec096b13-f80a-471d-aaeb-54b021c9d582", content: { "provider_category": "internist", "is_urgent_care": true, "bmi": 24.2, "age": 38 } }]
850
+ # schema_instances: [{ schema_id: "ec096b13-f80a-471d-aaeb-54b021c9d582", content: { "provider_category": "internist", "is_urgent_care": true, "bmi": 24.2, "age": 38 } }],
851
+ # vitals: { height_in: 70, weight_lbs: 165, blood_pressure_systolic_mmhg: 115, blood_pressure_diastolic_mmhg: 85, body_temperature_f: 98, hemoglobin_gdl: 15.1, hematocrit_pct: 51.2 }
840
852
  # )
841
853
  def update(encounter_id:, prior_authorization_number: nil, external_id: nil, date_of_service: nil,
842
- diagnosis_ids: nil, tag_ids: nil, clinical_notes: nil, pay_to_address: nil, billable_status: nil, responsible_party: nil, provider_accepts_assignment: nil, benefits_assigned_to_provider: nil, synchronicity: nil, place_of_service_code: nil, place_of_service_code_as_submitted: nil, appointment_type: nil, end_date_of_service: nil, subscriber_primary: nil, subscriber_secondary: nil, additional_information: nil, service_authorization_exception_code: nil, admission_date: nil, discharge_date: nil, onset_of_current_illness_or_symptom_date: nil, last_menstrual_period_date: nil, delay_reason_code: nil, patient_authorized_release: nil, schema_instances: nil, request_options: nil)
854
+ diagnosis_ids: nil, tag_ids: nil, clinical_notes: nil, pay_to_address: nil, billable_status: nil, responsible_party: nil, provider_accepts_assignment: nil, benefits_assigned_to_provider: nil, synchronicity: nil, place_of_service_code: nil, place_of_service_code_as_submitted: nil, appointment_type: nil, end_date_of_service: nil, subscriber_primary: nil, subscriber_secondary: nil, additional_information: nil, service_authorization_exception_code: nil, admission_date: nil, discharge_date: nil, onset_of_current_illness_or_symptom_date: nil, last_menstrual_period_date: nil, delay_reason_code: nil, patient_authorized_release: nil, schema_instances: nil, vitals: nil, request_options: nil)
843
855
  response = @request_client.conn.patch do |req|
844
856
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
845
857
  req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
@@ -876,7 +888,8 @@ module CandidApiClient
876
888
  last_menstrual_period_date: last_menstrual_period_date,
877
889
  delay_reason_code: delay_reason_code,
878
890
  patient_authorized_release: patient_authorized_release,
879
- schema_instances: schema_instances
891
+ schema_instances: schema_instances,
892
+ vitals: vitals
880
893
  }.compact
881
894
  req.url "#{@request_client.get_url(environment: CandidApi,
882
895
  request_options: request_options)}/api/encounters/v4/#{encounter_id}"
@@ -1656,6 +1669,16 @@ module CandidApiClient
1656
1669
  # is provided as an input, then the encounter's schema instances will be cleared.Request of type Array<CandidApiClient::CustomSchemas::V1::Types::SchemaInstance>, as a Hash
1657
1670
  # * :schema_id (String)
1658
1671
  # * :content (Hash{String => Object})
1672
+ # @param vitals [Hash] If a vitals entity already exists for the encounter, then all values will be
1673
+ # updated to the provided values.
1674
+ # Otherwise, a new vitals object will be created for the encounter.Request of type CandidApiClient::Encounters::V4::Types::VitalsUpdate, as a Hash
1675
+ # * :height_in (Integer)
1676
+ # * :weight_lbs (Integer)
1677
+ # * :blood_pressure_systolic_mmhg (Integer)
1678
+ # * :blood_pressure_diastolic_mmhg (Integer)
1679
+ # * :body_temperature_f (Float)
1680
+ # * :hemoglobin_gdl (Float)
1681
+ # * :hematocrit_pct (Float)
1659
1682
  # @param request_options [CandidApiClient::RequestOptions]
1660
1683
  # @return [CandidApiClient::Encounters::V4::Types::Encounter]
1661
1684
  # @example
@@ -1688,10 +1711,11 @@ module CandidApiClient
1688
1711
  # last_menstrual_period_date: DateTime.parse(2023-01-15),
1689
1712
  # delay_reason_code: C_1,
1690
1713
  # patient_authorized_release: true,
1691
- # schema_instances: [{ schema_id: "ec096b13-f80a-471d-aaeb-54b021c9d582", content: { "provider_category": "internist", "is_urgent_care": true, "bmi": 24.2, "age": 38 } }]
1714
+ # schema_instances: [{ schema_id: "ec096b13-f80a-471d-aaeb-54b021c9d582", content: { "provider_category": "internist", "is_urgent_care": true, "bmi": 24.2, "age": 38 } }],
1715
+ # vitals: { height_in: 70, weight_lbs: 165, blood_pressure_systolic_mmhg: 115, blood_pressure_diastolic_mmhg: 85, body_temperature_f: 98, hemoglobin_gdl: 15.1, hematocrit_pct: 51.2 }
1692
1716
  # )
1693
1717
  def update(encounter_id:, prior_authorization_number: nil, external_id: nil, date_of_service: nil,
1694
- diagnosis_ids: nil, tag_ids: nil, clinical_notes: nil, pay_to_address: nil, billable_status: nil, responsible_party: nil, provider_accepts_assignment: nil, benefits_assigned_to_provider: nil, synchronicity: nil, place_of_service_code: nil, place_of_service_code_as_submitted: nil, appointment_type: nil, end_date_of_service: nil, subscriber_primary: nil, subscriber_secondary: nil, additional_information: nil, service_authorization_exception_code: nil, admission_date: nil, discharge_date: nil, onset_of_current_illness_or_symptom_date: nil, last_menstrual_period_date: nil, delay_reason_code: nil, patient_authorized_release: nil, schema_instances: nil, request_options: nil)
1718
+ diagnosis_ids: nil, tag_ids: nil, clinical_notes: nil, pay_to_address: nil, billable_status: nil, responsible_party: nil, provider_accepts_assignment: nil, benefits_assigned_to_provider: nil, synchronicity: nil, place_of_service_code: nil, place_of_service_code_as_submitted: nil, appointment_type: nil, end_date_of_service: nil, subscriber_primary: nil, subscriber_secondary: nil, additional_information: nil, service_authorization_exception_code: nil, admission_date: nil, discharge_date: nil, onset_of_current_illness_or_symptom_date: nil, last_menstrual_period_date: nil, delay_reason_code: nil, patient_authorized_release: nil, schema_instances: nil, vitals: nil, request_options: nil)
1695
1719
  Async do
1696
1720
  response = @request_client.conn.patch do |req|
1697
1721
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -1729,7 +1753,8 @@ module CandidApiClient
1729
1753
  last_menstrual_period_date: last_menstrual_period_date,
1730
1754
  delay_reason_code: delay_reason_code,
1731
1755
  patient_authorized_release: patient_authorized_release,
1732
- schema_instances: schema_instances
1756
+ schema_instances: schema_instances,
1757
+ vitals: vitals
1733
1758
  }.compact
1734
1759
  req.url "#{@request_client.get_url(environment: CandidApi,
1735
1760
  request_options: request_options)}/api/encounters/v4/#{encounter_id}"
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module Encounters
8
+ module V4
9
+ module Types
10
+ class VitalsUpdate
11
+ # @return [Integer]
12
+ attr_reader :height_in
13
+ # @return [Integer]
14
+ attr_reader :weight_lbs
15
+ # @return [Integer]
16
+ attr_reader :blood_pressure_systolic_mmhg
17
+ # @return [Integer]
18
+ attr_reader :blood_pressure_diastolic_mmhg
19
+ # @return [Float]
20
+ attr_reader :body_temperature_f
21
+ # @return [Float]
22
+ attr_reader :hemoglobin_gdl
23
+ # @return [Float]
24
+ attr_reader :hematocrit_pct
25
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
26
+ attr_reader :additional_properties
27
+ # @return [Object]
28
+ attr_reader :_field_set
29
+ protected :_field_set
30
+
31
+ OMIT = Object.new
32
+
33
+ # @param height_in [Integer]
34
+ # @param weight_lbs [Integer]
35
+ # @param blood_pressure_systolic_mmhg [Integer]
36
+ # @param blood_pressure_diastolic_mmhg [Integer]
37
+ # @param body_temperature_f [Float]
38
+ # @param hemoglobin_gdl [Float]
39
+ # @param hematocrit_pct [Float]
40
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
41
+ # @return [CandidApiClient::Encounters::V4::Types::VitalsUpdate]
42
+ def initialize(height_in: OMIT, weight_lbs: OMIT, blood_pressure_systolic_mmhg: OMIT,
43
+ blood_pressure_diastolic_mmhg: OMIT, body_temperature_f: OMIT, hemoglobin_gdl: OMIT, hematocrit_pct: OMIT, additional_properties: nil)
44
+ @height_in = height_in if height_in != OMIT
45
+ @weight_lbs = weight_lbs if weight_lbs != OMIT
46
+ @blood_pressure_systolic_mmhg = blood_pressure_systolic_mmhg if blood_pressure_systolic_mmhg != OMIT
47
+ @blood_pressure_diastolic_mmhg = blood_pressure_diastolic_mmhg if blood_pressure_diastolic_mmhg != OMIT
48
+ @body_temperature_f = body_temperature_f if body_temperature_f != OMIT
49
+ @hemoglobin_gdl = hemoglobin_gdl if hemoglobin_gdl != OMIT
50
+ @hematocrit_pct = hematocrit_pct if hematocrit_pct != OMIT
51
+ @additional_properties = additional_properties
52
+ @_field_set = {
53
+ "height_in": height_in,
54
+ "weight_lbs": weight_lbs,
55
+ "blood_pressure_systolic_mmhg": blood_pressure_systolic_mmhg,
56
+ "blood_pressure_diastolic_mmhg": blood_pressure_diastolic_mmhg,
57
+ "body_temperature_f": body_temperature_f,
58
+ "hemoglobin_gdl": hemoglobin_gdl,
59
+ "hematocrit_pct": hematocrit_pct
60
+ }.reject do |_k, v|
61
+ v == OMIT
62
+ end
63
+ end
64
+
65
+ # Deserialize a JSON object to an instance of VitalsUpdate
66
+ #
67
+ # @param json_object [String]
68
+ # @return [CandidApiClient::Encounters::V4::Types::VitalsUpdate]
69
+ def self.from_json(json_object:)
70
+ struct = JSON.parse(json_object, object_class: OpenStruct)
71
+ height_in = struct["height_in"]
72
+ weight_lbs = struct["weight_lbs"]
73
+ blood_pressure_systolic_mmhg = struct["blood_pressure_systolic_mmhg"]
74
+ blood_pressure_diastolic_mmhg = struct["blood_pressure_diastolic_mmhg"]
75
+ body_temperature_f = struct["body_temperature_f"]
76
+ hemoglobin_gdl = struct["hemoglobin_gdl"]
77
+ hematocrit_pct = struct["hematocrit_pct"]
78
+ new(
79
+ height_in: height_in,
80
+ weight_lbs: weight_lbs,
81
+ blood_pressure_systolic_mmhg: blood_pressure_systolic_mmhg,
82
+ blood_pressure_diastolic_mmhg: blood_pressure_diastolic_mmhg,
83
+ body_temperature_f: body_temperature_f,
84
+ hemoglobin_gdl: hemoglobin_gdl,
85
+ hematocrit_pct: hematocrit_pct,
86
+ additional_properties: struct
87
+ )
88
+ end
89
+
90
+ # Serialize an instance of VitalsUpdate to a JSON object
91
+ #
92
+ # @return [String]
93
+ def to_json(*_args)
94
+ @_field_set&.to_json
95
+ end
96
+
97
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
98
+ # hash and check each fields type against the current object's property
99
+ # definitions.
100
+ #
101
+ # @param obj [Object]
102
+ # @return [Void]
103
+ def self.validate_raw(obj:)
104
+ obj.height_in&.is_a?(Integer) != false || raise("Passed value for field obj.height_in is not the expected type, validation failed.")
105
+ obj.weight_lbs&.is_a?(Integer) != false || raise("Passed value for field obj.weight_lbs is not the expected type, validation failed.")
106
+ obj.blood_pressure_systolic_mmhg&.is_a?(Integer) != false || raise("Passed value for field obj.blood_pressure_systolic_mmhg is not the expected type, validation failed.")
107
+ obj.blood_pressure_diastolic_mmhg&.is_a?(Integer) != false || raise("Passed value for field obj.blood_pressure_diastolic_mmhg is not the expected type, validation failed.")
108
+ obj.body_temperature_f&.is_a?(Float) != false || raise("Passed value for field obj.body_temperature_f is not the expected type, validation failed.")
109
+ obj.hemoglobin_gdl&.is_a?(Float) != false || raise("Passed value for field obj.hemoglobin_gdl is not the expected type, validation failed.")
110
+ obj.hematocrit_pct&.is_a?(Float) != false || raise("Passed value for field obj.hematocrit_pct is not the expected type, validation failed.")
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "v_1/client"
5
+
6
+ module CandidApiClient
7
+ module MedicationDispense
8
+ class Client
9
+ # @return [CandidApiClient::MedicationDispense::V1::V1Client]
10
+ attr_reader :v_1
11
+
12
+ # @param request_client [CandidApiClient::RequestClient]
13
+ # @return [CandidApiClient::MedicationDispense::Client]
14
+ def initialize(request_client:)
15
+ @v_1 = CandidApiClient::MedicationDispense::V1::V1Client.new(request_client: request_client)
16
+ end
17
+ end
18
+
19
+ class AsyncClient
20
+ # @return [CandidApiClient::MedicationDispense::V1::AsyncV1Client]
21
+ attr_reader :v_1
22
+
23
+ # @param request_client [CandidApiClient::AsyncRequestClient]
24
+ # @return [CandidApiClient::MedicationDispense::AsyncClient]
25
+ def initialize(request_client:)
26
+ @v_1 = CandidApiClient::MedicationDispense::V1::AsyncV1Client.new(request_client: request_client)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,112 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "types/medication_dispense_create"
5
+ require_relative "../../encounters/v_4/types/encounter"
6
+ require "async"
7
+
8
+ module CandidApiClient
9
+ module MedicationDispense
10
+ module V1
11
+ class V1Client
12
+ # @return [CandidApiClient::RequestClient]
13
+ attr_reader :request_client
14
+
15
+ # @param request_client [CandidApiClient::RequestClient]
16
+ # @return [CandidApiClient::MedicationDispense::V1::V1Client]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+
21
+ # @param request [Hash] Request of type CandidApiClient::MedicationDispense::V1::Types::MedicationDispenseCreate, as a Hash
22
+ # * :medication_dispense_external_id (String)
23
+ # * :patient_external_id (String)
24
+ # * :procedure_code (String)
25
+ # * :quantity (String)
26
+ # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
27
+ # * :date_of_service (Date)
28
+ # * :drug_identification (Hash)
29
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
30
+ # * :national_drug_code (String)
31
+ # * :national_drug_unit_count (String)
32
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
33
+ # * :link_sequence_number (String)
34
+ # * :pharmacy_prescription_number (String)
35
+ # * :conversion_formula (String)
36
+ # * :description (String)
37
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
38
+ # @param request_options [CandidApiClient::RequestOptions]
39
+ # @return [CandidApiClient::Encounters::V4::Types::Encounter]
40
+ # @example
41
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
42
+ # api.medication_dispense.v_1.create(request: { medication_dispense_external_id: "string", patient_external_id: "string", procedure_code: "string", quantity: "string", units: MJ, date_of_service: DateTime.parse(2023-01-15), drug_identification: { }, description: "string", modifiers: [TWENTY_TWO] })
43
+ def create(request:, request_options: nil)
44
+ response = @request_client.conn.post do |req|
45
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
46
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
47
+ req.headers = {
48
+ **(req.headers || {}),
49
+ **@request_client.get_headers,
50
+ **(request_options&.additional_headers || {})
51
+ }.compact
52
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
53
+ req.url "#{@request_client.get_url(environment: CandidApi,
54
+ request_options: request_options)}/api/medication-dispense/v1"
55
+ end
56
+ CandidApiClient::Encounters::V4::Types::Encounter.from_json(json_object: response.body)
57
+ end
58
+ end
59
+
60
+ class AsyncV1Client
61
+ # @return [CandidApiClient::AsyncRequestClient]
62
+ attr_reader :request_client
63
+
64
+ # @param request_client [CandidApiClient::AsyncRequestClient]
65
+ # @return [CandidApiClient::MedicationDispense::V1::AsyncV1Client]
66
+ def initialize(request_client:)
67
+ @request_client = request_client
68
+ end
69
+
70
+ # @param request [Hash] Request of type CandidApiClient::MedicationDispense::V1::Types::MedicationDispenseCreate, as a Hash
71
+ # * :medication_dispense_external_id (String)
72
+ # * :patient_external_id (String)
73
+ # * :procedure_code (String)
74
+ # * :quantity (String)
75
+ # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
76
+ # * :date_of_service (Date)
77
+ # * :drug_identification (Hash)
78
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
79
+ # * :national_drug_code (String)
80
+ # * :national_drug_unit_count (String)
81
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
82
+ # * :link_sequence_number (String)
83
+ # * :pharmacy_prescription_number (String)
84
+ # * :conversion_formula (String)
85
+ # * :description (String)
86
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
87
+ # @param request_options [CandidApiClient::RequestOptions]
88
+ # @return [CandidApiClient::Encounters::V4::Types::Encounter]
89
+ # @example
90
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
91
+ # api.medication_dispense.v_1.create(request: { medication_dispense_external_id: "string", patient_external_id: "string", procedure_code: "string", quantity: "string", units: MJ, date_of_service: DateTime.parse(2023-01-15), drug_identification: { }, description: "string", modifiers: [TWENTY_TWO] })
92
+ def create(request:, request_options: nil)
93
+ Async do
94
+ response = @request_client.conn.post do |req|
95
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
96
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
97
+ req.headers = {
98
+ **(req.headers || {}),
99
+ **@request_client.get_headers,
100
+ **(request_options&.additional_headers || {})
101
+ }.compact
102
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
103
+ req.url "#{@request_client.get_url(environment: CandidApi,
104
+ request_options: request_options)}/api/medication-dispense/v1"
105
+ end
106
+ CandidApiClient::Encounters::V4::Types::Encounter.from_json(json_object: response.body)
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../commons/types/service_line_units"
4
+ require "date"
5
+ require_relative "../../../service_lines/v_2/types/drug_identification"
6
+ require_relative "../../../commons/types/procedure_modifier"
7
+ require "ostruct"
8
+ require "json"
9
+
10
+ module CandidApiClient
11
+ module MedicationDispense
12
+ module V1
13
+ module Types
14
+ class MedicationDispenseCreate
15
+ # @return [String]
16
+ attr_reader :medication_dispense_external_id
17
+ # @return [String]
18
+ attr_reader :patient_external_id
19
+ # @return [String]
20
+ attr_reader :procedure_code
21
+ # @return [String]
22
+ attr_reader :quantity
23
+ # @return [CandidApiClient::Commons::Types::ServiceLineUnits]
24
+ attr_reader :units
25
+ # @return [Date]
26
+ attr_reader :date_of_service
27
+ # @return [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
28
+ attr_reader :drug_identification
29
+ # @return [String]
30
+ attr_reader :description
31
+ # @return [Array<CandidApiClient::Commons::Types::ProcedureModifier>]
32
+ attr_reader :modifiers
33
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
34
+ attr_reader :additional_properties
35
+ # @return [Object]
36
+ attr_reader :_field_set
37
+ protected :_field_set
38
+
39
+ OMIT = Object.new
40
+
41
+ # @param medication_dispense_external_id [String]
42
+ # @param patient_external_id [String]
43
+ # @param procedure_code [String]
44
+ # @param quantity [String]
45
+ # @param units [CandidApiClient::Commons::Types::ServiceLineUnits]
46
+ # @param date_of_service [Date]
47
+ # @param drug_identification [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
48
+ # @param description [String]
49
+ # @param modifiers [Array<CandidApiClient::Commons::Types::ProcedureModifier>]
50
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
51
+ # @return [CandidApiClient::MedicationDispense::V1::Types::MedicationDispenseCreate]
52
+ def initialize(medication_dispense_external_id:, patient_external_id:, procedure_code:, quantity:, units:,
53
+ date_of_service:, drug_identification: OMIT, description: OMIT, modifiers: OMIT, additional_properties: nil)
54
+ @medication_dispense_external_id = medication_dispense_external_id
55
+ @patient_external_id = patient_external_id
56
+ @procedure_code = procedure_code
57
+ @quantity = quantity
58
+ @units = units
59
+ @date_of_service = date_of_service
60
+ @drug_identification = drug_identification if drug_identification != OMIT
61
+ @description = description if description != OMIT
62
+ @modifiers = modifiers if modifiers != OMIT
63
+ @additional_properties = additional_properties
64
+ @_field_set = {
65
+ "medication_dispense_external_id": medication_dispense_external_id,
66
+ "patient_external_id": patient_external_id,
67
+ "procedure_code": procedure_code,
68
+ "quantity": quantity,
69
+ "units": units,
70
+ "date_of_service": date_of_service,
71
+ "drug_identification": drug_identification,
72
+ "description": description,
73
+ "modifiers": modifiers
74
+ }.reject do |_k, v|
75
+ v == OMIT
76
+ end
77
+ end
78
+
79
+ # Deserialize a JSON object to an instance of MedicationDispenseCreate
80
+ #
81
+ # @param json_object [String]
82
+ # @return [CandidApiClient::MedicationDispense::V1::Types::MedicationDispenseCreate]
83
+ def self.from_json(json_object:)
84
+ struct = JSON.parse(json_object, object_class: OpenStruct)
85
+ parsed_json = JSON.parse(json_object)
86
+ medication_dispense_external_id = struct["medication_dispense_external_id"]
87
+ patient_external_id = struct["patient_external_id"]
88
+ procedure_code = struct["procedure_code"]
89
+ quantity = struct["quantity"]
90
+ units = struct["units"]
91
+ date_of_service = (Date.parse(parsed_json["date_of_service"]) unless parsed_json["date_of_service"].nil?)
92
+ if parsed_json["drug_identification"].nil?
93
+ drug_identification = nil
94
+ else
95
+ drug_identification = parsed_json["drug_identification"].to_json
96
+ drug_identification = CandidApiClient::ServiceLines::V2::Types::DrugIdentification.from_json(json_object: drug_identification)
97
+ end
98
+ description = struct["description"]
99
+ modifiers = struct["modifiers"]
100
+ new(
101
+ medication_dispense_external_id: medication_dispense_external_id,
102
+ patient_external_id: patient_external_id,
103
+ procedure_code: procedure_code,
104
+ quantity: quantity,
105
+ units: units,
106
+ date_of_service: date_of_service,
107
+ drug_identification: drug_identification,
108
+ description: description,
109
+ modifiers: modifiers,
110
+ additional_properties: struct
111
+ )
112
+ end
113
+
114
+ # Serialize an instance of MedicationDispenseCreate to a JSON object
115
+ #
116
+ # @return [String]
117
+ def to_json(*_args)
118
+ @_field_set&.to_json
119
+ end
120
+
121
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
122
+ # hash and check each fields type against the current object's property
123
+ # definitions.
124
+ #
125
+ # @param obj [Object]
126
+ # @return [Void]
127
+ def self.validate_raw(obj:)
128
+ obj.medication_dispense_external_id.is_a?(String) != false || raise("Passed value for field obj.medication_dispense_external_id is not the expected type, validation failed.")
129
+ obj.patient_external_id.is_a?(String) != false || raise("Passed value for field obj.patient_external_id is not the expected type, validation failed.")
130
+ obj.procedure_code.is_a?(String) != false || raise("Passed value for field obj.procedure_code is not the expected type, validation failed.")
131
+ obj.quantity.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
132
+ obj.units.is_a?(CandidApiClient::Commons::Types::ServiceLineUnits) != false || raise("Passed value for field obj.units is not the expected type, validation failed.")
133
+ obj.date_of_service.is_a?(Date) != false || raise("Passed value for field obj.date_of_service is not the expected type, validation failed.")
134
+ obj.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
135
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
136
+ obj.modifiers&.is_a?(Array) != false || raise("Passed value for field obj.modifiers is not the expected type, validation failed.")
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
@@ -66,6 +66,14 @@ module CandidApiClient
66
66
  # * :diagnosis_id_one (String)
67
67
  # * :diagnosis_id_two (String)
68
68
  # * :diagnosis_id_three (String)
69
+ # * :drug_identification (Hash)
70
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
71
+ # * :national_drug_code (String)
72
+ # * :national_drug_unit_count (String)
73
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
74
+ # * :link_sequence_number (String)
75
+ # * :pharmacy_prescription_number (String)
76
+ # * :conversion_formula (String)
69
77
  # * :denial_reason (Hash)
70
78
  # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
71
79
  # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
@@ -79,7 +87,7 @@ module CandidApiClient
79
87
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
80
88
  # @example
81
89
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
82
- # api.service_lines.v_2.update(service_line_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", request: { edit_reason: "string", modifiers: [TWENTY_TWO], charge_amount_cents: 1, diagnosis_id_zero: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_one: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_two: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_three: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", denial_reason: { }, place_of_service_code: PHARMACY, units: MJ, procedure_code: "string", quantity: "string", description: "string", date_of_service: DateTime.parse(2023-01-15), end_date_of_service: DateTime.parse(2023-01-15) })
90
+ # api.service_lines.v_2.update(service_line_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", request: { edit_reason: "string", modifiers: [TWENTY_TWO], charge_amount_cents: 1, diagnosis_id_zero: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_one: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_two: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_three: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", drug_identification: { }, denial_reason: { }, place_of_service_code: PHARMACY, units: MJ, procedure_code: "string", quantity: "string", description: "string", date_of_service: DateTime.parse(2023-01-15), end_date_of_service: DateTime.parse(2023-01-15) })
83
91
  def update(service_line_id:, request:, request_options: nil)
84
92
  response = @request_client.conn.patch do |req|
85
93
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -176,6 +184,14 @@ module CandidApiClient
176
184
  # * :diagnosis_id_one (String)
177
185
  # * :diagnosis_id_two (String)
178
186
  # * :diagnosis_id_three (String)
187
+ # * :drug_identification (Hash)
188
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
189
+ # * :national_drug_code (String)
190
+ # * :national_drug_unit_count (String)
191
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
192
+ # * :link_sequence_number (String)
193
+ # * :pharmacy_prescription_number (String)
194
+ # * :conversion_formula (String)
179
195
  # * :denial_reason (Hash)
180
196
  # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
181
197
  # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
@@ -189,7 +205,7 @@ module CandidApiClient
189
205
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
190
206
  # @example
191
207
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
192
- # api.service_lines.v_2.update(service_line_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", request: { edit_reason: "string", modifiers: [TWENTY_TWO], charge_amount_cents: 1, diagnosis_id_zero: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_one: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_two: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_three: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", denial_reason: { }, place_of_service_code: PHARMACY, units: MJ, procedure_code: "string", quantity: "string", description: "string", date_of_service: DateTime.parse(2023-01-15), end_date_of_service: DateTime.parse(2023-01-15) })
208
+ # api.service_lines.v_2.update(service_line_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", request: { edit_reason: "string", modifiers: [TWENTY_TWO], charge_amount_cents: 1, diagnosis_id_zero: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_one: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_two: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", diagnosis_id_three: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", drug_identification: { }, denial_reason: { }, place_of_service_code: PHARMACY, units: MJ, procedure_code: "string", quantity: "string", description: "string", date_of_service: DateTime.parse(2023-01-15), end_date_of_service: DateTime.parse(2023-01-15) })
193
209
  def update(service_line_id:, request:, request_options: nil)
194
210
  Async do
195
211
  response = @request_client.conn.patch do |req|
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../../../commons/types/procedure_modifier"
4
+ require_relative "drug_identification"
4
5
  require_relative "service_line_era_data"
5
6
  require_relative "service_line_adjustment"
6
7
  require_relative "../../../invoices/types/invoice"
@@ -47,6 +48,8 @@ module CandidApiClient
47
48
  attr_reader :diagnosis_id_two
48
49
  # @return [String]
49
50
  attr_reader :diagnosis_id_three
51
+ # @return [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
52
+ attr_reader :drug_identification
50
53
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLineEraData]
51
54
  attr_reader :service_line_era_data
52
55
  # @return [Array<CandidApiClient::ServiceLines::V2::Types::ServiceLineAdjustment>]
@@ -114,6 +117,7 @@ module CandidApiClient
114
117
  # @param diagnosis_id_one [String]
115
118
  # @param diagnosis_id_two [String]
116
119
  # @param diagnosis_id_three [String]
120
+ # @param drug_identification [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
117
121
  # @param service_line_era_data [CandidApiClient::ServiceLines::V2::Types::ServiceLineEraData]
118
122
  # @param service_line_manual_adjustments [Array<CandidApiClient::ServiceLines::V2::Types::ServiceLineAdjustment>]
119
123
  # @param related_invoices [Array<CandidApiClient::Invoices::Types::Invoice>]
@@ -142,7 +146,7 @@ module CandidApiClient
142
146
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
143
147
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
144
148
  def initialize(service_line_id:, procedure_code:, quantity:, units:, claim_id:, date_of_service_range:, date_of_service:, modifiers: OMIT, charge_amount_cents: OMIT, allowed_amount_cents: OMIT,
145
- insurance_balance_cents: OMIT, patient_balance_cents: OMIT, paid_amount_cents: OMIT, primary_paid_amount_cents: OMIT, secondary_paid_amount_cents: OMIT, tertiary_paid_amount_cents: OMIT, patient_responsibility_cents: OMIT, diagnosis_id_zero: OMIT, diagnosis_id_one: OMIT, diagnosis_id_two: OMIT, diagnosis_id_three: OMIT, service_line_era_data: OMIT, service_line_manual_adjustments: OMIT, related_invoices: OMIT, related_invoice_info: OMIT, denial_reason: OMIT, place_of_service_code: OMIT, place_of_service_code_as_submitted: OMIT, referring_provider: OMIT, initial_referring_provider: OMIT, supervising_provider: OMIT, ordering_provider: OMIT, description: OMIT, end_date_of_service: OMIT, additional_properties: nil)
149
+ insurance_balance_cents: OMIT, patient_balance_cents: OMIT, paid_amount_cents: OMIT, primary_paid_amount_cents: OMIT, secondary_paid_amount_cents: OMIT, tertiary_paid_amount_cents: OMIT, patient_responsibility_cents: OMIT, diagnosis_id_zero: OMIT, diagnosis_id_one: OMIT, diagnosis_id_two: OMIT, diagnosis_id_three: OMIT, drug_identification: OMIT, service_line_era_data: OMIT, service_line_manual_adjustments: OMIT, related_invoices: OMIT, related_invoice_info: OMIT, denial_reason: OMIT, place_of_service_code: OMIT, place_of_service_code_as_submitted: OMIT, referring_provider: OMIT, initial_referring_provider: OMIT, supervising_provider: OMIT, ordering_provider: OMIT, description: OMIT, end_date_of_service: OMIT, additional_properties: nil)
146
150
  @modifiers = modifiers if modifiers != OMIT
147
151
  @charge_amount_cents = charge_amount_cents if charge_amount_cents != OMIT
148
152
  @allowed_amount_cents = allowed_amount_cents if allowed_amount_cents != OMIT
@@ -157,6 +161,7 @@ module CandidApiClient
157
161
  @diagnosis_id_one = diagnosis_id_one if diagnosis_id_one != OMIT
158
162
  @diagnosis_id_two = diagnosis_id_two if diagnosis_id_two != OMIT
159
163
  @diagnosis_id_three = diagnosis_id_three if diagnosis_id_three != OMIT
164
+ @drug_identification = drug_identification if drug_identification != OMIT
160
165
  @service_line_era_data = service_line_era_data if service_line_era_data != OMIT
161
166
  if service_line_manual_adjustments != OMIT
162
167
  @service_line_manual_adjustments = service_line_manual_adjustments
@@ -197,6 +202,7 @@ module CandidApiClient
197
202
  "diagnosis_id_one": diagnosis_id_one,
198
203
  "diagnosis_id_two": diagnosis_id_two,
199
204
  "diagnosis_id_three": diagnosis_id_three,
205
+ "drug_identification": drug_identification,
200
206
  "service_line_era_data": service_line_era_data,
201
207
  "service_line_manual_adjustments": service_line_manual_adjustments,
202
208
  "related_invoices": related_invoices,
@@ -243,6 +249,12 @@ module CandidApiClient
243
249
  diagnosis_id_one = struct["diagnosis_id_one"]
244
250
  diagnosis_id_two = struct["diagnosis_id_two"]
245
251
  diagnosis_id_three = struct["diagnosis_id_three"]
252
+ if parsed_json["drug_identification"].nil?
253
+ drug_identification = nil
254
+ else
255
+ drug_identification = parsed_json["drug_identification"].to_json
256
+ drug_identification = CandidApiClient::ServiceLines::V2::Types::DrugIdentification.from_json(json_object: drug_identification)
257
+ end
246
258
  if parsed_json["service_line_era_data"].nil?
247
259
  service_line_era_data = nil
248
260
  else
@@ -324,6 +336,7 @@ module CandidApiClient
324
336
  diagnosis_id_one: diagnosis_id_one,
325
337
  diagnosis_id_two: diagnosis_id_two,
326
338
  diagnosis_id_three: diagnosis_id_three,
339
+ drug_identification: drug_identification,
327
340
  service_line_era_data: service_line_era_data,
328
341
  service_line_manual_adjustments: service_line_manual_adjustments,
329
342
  related_invoices: related_invoices,
@@ -376,6 +389,7 @@ module CandidApiClient
376
389
  obj.diagnosis_id_one&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_one is not the expected type, validation failed.")
377
390
  obj.diagnosis_id_two&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_two is not the expected type, validation failed.")
378
391
  obj.diagnosis_id_three&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_three is not the expected type, validation failed.")
392
+ obj.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
379
393
  obj.service_line_era_data.nil? || CandidApiClient::ServiceLines::V2::Types::ServiceLineEraData.validate_raw(obj: obj.service_line_era_data)
380
394
  obj.service_line_manual_adjustments&.is_a?(Array) != false || raise("Passed value for field obj.service_line_manual_adjustments is not the expected type, validation failed.")
381
395
  obj.related_invoices&.is_a?(Array) != false || raise("Passed value for field obj.related_invoices is not the expected type, validation failed.")
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../../../commons/types/procedure_modifier"
4
+ require_relative "drug_identification"
4
5
  require_relative "service_line_denial_reason"
5
6
  require_relative "../../../commons/types/facility_type_code"
6
7
  require_relative "../../../commons/types/service_line_units"
@@ -27,6 +28,8 @@ module CandidApiClient
27
28
  attr_reader :diagnosis_id_two
28
29
  # @return [String]
29
30
  attr_reader :diagnosis_id_three
31
+ # @return [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
32
+ attr_reader :drug_identification
30
33
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason]
31
34
  attr_reader :denial_reason
32
35
  # @return [CandidApiClient::Commons::Types::FacilityTypeCode]
@@ -62,6 +65,7 @@ module CandidApiClient
62
65
  # @param diagnosis_id_one [String]
63
66
  # @param diagnosis_id_two [String]
64
67
  # @param diagnosis_id_three [String]
68
+ # @param drug_identification [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
65
69
  # @param denial_reason [CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason]
66
70
  # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode]
67
71
  # @param units [CandidApiClient::Commons::Types::ServiceLineUnits]
@@ -77,7 +81,7 @@ module CandidApiClient
77
81
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
78
82
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLineUpdate]
79
83
  def initialize(edit_reason: OMIT, modifiers: OMIT, charge_amount_cents: OMIT, diagnosis_id_zero: OMIT,
80
- diagnosis_id_one: OMIT, diagnosis_id_two: OMIT, diagnosis_id_three: OMIT, denial_reason: OMIT, place_of_service_code: OMIT, units: OMIT, procedure_code: OMIT, quantity: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, additional_properties: nil)
84
+ diagnosis_id_one: OMIT, diagnosis_id_two: OMIT, diagnosis_id_three: OMIT, drug_identification: OMIT, denial_reason: OMIT, place_of_service_code: OMIT, units: OMIT, procedure_code: OMIT, quantity: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, additional_properties: nil)
81
85
  @edit_reason = edit_reason if edit_reason != OMIT
82
86
  @modifiers = modifiers if modifiers != OMIT
83
87
  @charge_amount_cents = charge_amount_cents if charge_amount_cents != OMIT
@@ -85,6 +89,7 @@ module CandidApiClient
85
89
  @diagnosis_id_one = diagnosis_id_one if diagnosis_id_one != OMIT
86
90
  @diagnosis_id_two = diagnosis_id_two if diagnosis_id_two != OMIT
87
91
  @diagnosis_id_three = diagnosis_id_three if diagnosis_id_three != OMIT
92
+ @drug_identification = drug_identification if drug_identification != OMIT
88
93
  @denial_reason = denial_reason if denial_reason != OMIT
89
94
  @place_of_service_code = place_of_service_code if place_of_service_code != OMIT
90
95
  @units = units if units != OMIT
@@ -102,6 +107,7 @@ module CandidApiClient
102
107
  "diagnosis_id_one": diagnosis_id_one,
103
108
  "diagnosis_id_two": diagnosis_id_two,
104
109
  "diagnosis_id_three": diagnosis_id_three,
110
+ "drug_identification": drug_identification,
105
111
  "denial_reason": denial_reason,
106
112
  "place_of_service_code": place_of_service_code,
107
113
  "units": units,
@@ -129,6 +135,12 @@ module CandidApiClient
129
135
  diagnosis_id_one = struct["diagnosis_id_one"]
130
136
  diagnosis_id_two = struct["diagnosis_id_two"]
131
137
  diagnosis_id_three = struct["diagnosis_id_three"]
138
+ if parsed_json["drug_identification"].nil?
139
+ drug_identification = nil
140
+ else
141
+ drug_identification = parsed_json["drug_identification"].to_json
142
+ drug_identification = CandidApiClient::ServiceLines::V2::Types::DrugIdentification.from_json(json_object: drug_identification)
143
+ end
132
144
  if parsed_json["denial_reason"].nil?
133
145
  denial_reason = nil
134
146
  else
@@ -152,6 +164,7 @@ module CandidApiClient
152
164
  diagnosis_id_one: diagnosis_id_one,
153
165
  diagnosis_id_two: diagnosis_id_two,
154
166
  diagnosis_id_three: diagnosis_id_three,
167
+ drug_identification: drug_identification,
155
168
  denial_reason: denial_reason,
156
169
  place_of_service_code: place_of_service_code,
157
170
  units: units,
@@ -185,6 +198,7 @@ module CandidApiClient
185
198
  obj.diagnosis_id_one&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_one is not the expected type, validation failed.")
186
199
  obj.diagnosis_id_two&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_two is not the expected type, validation failed.")
187
200
  obj.diagnosis_id_three&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_three is not the expected type, validation failed.")
201
+ obj.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
188
202
  obj.denial_reason.nil? || CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason.validate_raw(obj: obj.denial_reason)
189
203
  obj.place_of_service_code&.is_a?(CandidApiClient::Commons::Types::FacilityTypeCode) != false || raise("Passed value for field obj.place_of_service_code is not the expected type, validation failed.")
190
204
  obj.units&.is_a?(CandidApiClient::Commons::Types::ServiceLineUnits) != false || raise("Passed value for field obj.units is not the expected type, validation failed.")
data/lib/candidhealth.rb CHANGED
@@ -19,6 +19,7 @@ require_relative "candidhealth/import_invoice/client"
19
19
  require_relative "candidhealth/insurance_adjudications/client"
20
20
  require_relative "candidhealth/insurance_payments/client"
21
21
  require_relative "candidhealth/insurance_refunds/client"
22
+ require_relative "candidhealth/medication_dispense/client"
22
23
  require_relative "candidhealth/non_insurance_payer_payments/client"
23
24
  require_relative "candidhealth/non_insurance_payer_refunds/client"
24
25
  require_relative "candidhealth/non_insurance_payers/client"
@@ -68,6 +69,8 @@ module CandidApiClient
68
69
  attr_reader :insurance_payments
69
70
  # @return [CandidApiClient::InsuranceRefunds::Client]
70
71
  attr_reader :insurance_refunds
72
+ # @return [CandidApiClient::MedicationDispense::Client]
73
+ attr_reader :medication_dispense
71
74
  # @return [CandidApiClient::NonInsurancePayerPayments::Client]
72
75
  attr_reader :non_insurance_payer_payments
73
76
  # @return [CandidApiClient::NonInsurancePayerRefunds::Client]
@@ -142,6 +145,7 @@ module CandidApiClient
142
145
  @insurance_adjudications = CandidApiClient::InsuranceAdjudications::Client.new(request_client: @request_client)
143
146
  @insurance_payments = CandidApiClient::InsurancePayments::Client.new(request_client: @request_client)
144
147
  @insurance_refunds = CandidApiClient::InsuranceRefunds::Client.new(request_client: @request_client)
148
+ @medication_dispense = CandidApiClient::MedicationDispense::Client.new(request_client: @request_client)
145
149
  @non_insurance_payer_payments = CandidApiClient::NonInsurancePayerPayments::Client.new(request_client: @request_client)
146
150
  @non_insurance_payer_refunds = CandidApiClient::NonInsurancePayerRefunds::Client.new(request_client: @request_client)
147
151
  @non_insurance_payers = CandidApiClient::NonInsurancePayers::Client.new(request_client: @request_client)
@@ -192,6 +196,8 @@ module CandidApiClient
192
196
  attr_reader :insurance_payments
193
197
  # @return [CandidApiClient::InsuranceRefunds::AsyncClient]
194
198
  attr_reader :insurance_refunds
199
+ # @return [CandidApiClient::MedicationDispense::AsyncClient]
200
+ attr_reader :medication_dispense
195
201
  # @return [CandidApiClient::NonInsurancePayerPayments::AsyncClient]
196
202
  attr_reader :non_insurance_payer_payments
197
203
  # @return [CandidApiClient::NonInsurancePayerRefunds::AsyncClient]
@@ -266,6 +272,7 @@ module CandidApiClient
266
272
  @insurance_adjudications = CandidApiClient::InsuranceAdjudications::AsyncClient.new(request_client: @async_request_client)
267
273
  @insurance_payments = CandidApiClient::InsurancePayments::AsyncClient.new(request_client: @async_request_client)
268
274
  @insurance_refunds = CandidApiClient::InsuranceRefunds::AsyncClient.new(request_client: @async_request_client)
275
+ @medication_dispense = CandidApiClient::MedicationDispense::AsyncClient.new(request_client: @async_request_client)
269
276
  @non_insurance_payer_payments = CandidApiClient::NonInsurancePayerPayments::AsyncClient.new(request_client: @async_request_client)
270
277
  @non_insurance_payer_refunds = CandidApiClient::NonInsurancePayerRefunds::AsyncClient.new(request_client: @async_request_client)
271
278
  @non_insurance_payers = CandidApiClient::NonInsurancePayers::AsyncClient.new(request_client: @async_request_client)
data/lib/requests.rb CHANGED
@@ -43,7 +43,7 @@ module CandidApiClient
43
43
 
44
44
  # @return [Hash{String => String}]
45
45
  def get_headers
46
- headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "candidhealth", "X-Fern-SDK-Version": "0.30.0" }
46
+ headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "candidhealth", "X-Fern-SDK-Version": "0.31.0" }
47
47
  headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless token.nil?
48
48
  headers
49
49
  end
@@ -87,7 +87,7 @@ module CandidApiClient
87
87
 
88
88
  # @return [Hash{String => String}]
89
89
  def get_headers
90
- headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "candidhealth", "X-Fern-SDK-Version": "0.30.0" }
90
+ headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "candidhealth", "X-Fern-SDK-Version": "0.31.0" }
91
91
  headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless token.nil?
92
92
  headers
93
93
  end
data/lib/types_export.rb CHANGED
@@ -39,6 +39,7 @@ require_relative "candidhealth/encounters/v_4/types/encounter"
39
39
  require_relative "candidhealth/encounters/v_4/types/encounter_sort_options"
40
40
  require_relative "candidhealth/encounters/v_4/types/medication"
41
41
  require_relative "candidhealth/encounters/v_4/types/vitals"
42
+ require_relative "candidhealth/encounters/v_4/types/vitals_update"
42
43
  require_relative "candidhealth/encounters/v_4/types/intervention"
43
44
  require_relative "candidhealth/encounters/v_4/types/intervention_category"
44
45
  require_relative "candidhealth/encounters/v_4/types/lab"
@@ -161,6 +162,7 @@ require_relative "candidhealth/invoices/v_2/types/claim_invoice_item"
161
162
  require_relative "candidhealth/invoices/v_2/types/claim_invoice_item_info"
162
163
  require_relative "candidhealth/invoices/v_2/types/unattributed_invoice_item"
163
164
  require_relative "candidhealth/invoices/v_2/types/invoice_item_info"
165
+ require_relative "candidhealth/medication_dispense/v_1/types/medication_dispense_create"
164
166
  require_relative "candidhealth/non_insurance_payer_payments/v_1/types/non_insurance_payer_payment"
165
167
  require_relative "candidhealth/non_insurance_payer_payments/v_1/types/non_insurance_payer_payment_create"
166
168
  require_relative "candidhealth/non_insurance_payer_payments/v_1/types/non_insurance_payer_payments_page"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: candidhealth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.31.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-09 00:00:00.000000000 Z
11
+ date: 2024-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http-faraday
@@ -221,6 +221,7 @@ files:
221
221
  - lib/candidhealth/encounters/v_4/types/synchronicity_type.rb
222
222
  - lib/candidhealth/encounters/v_4/types/value_does_not_match_key_type_error.rb
223
223
  - lib/candidhealth/encounters/v_4/types/vitals.rb
224
+ - lib/candidhealth/encounters/v_4/types/vitals_update.rb
224
225
  - lib/candidhealth/era/types/era.rb
225
226
  - lib/candidhealth/era/types/era_base.rb
226
227
  - lib/candidhealth/era/types/era_not_fully_processed_error_message.rb
@@ -368,6 +369,9 @@ files:
368
369
  - lib/candidhealth/invoices/v_2/types/invoice_status.rb
369
370
  - lib/candidhealth/invoices/v_2/types/service_line_invoice_item.rb
370
371
  - lib/candidhealth/invoices/v_2/types/unattributed_invoice_item.rb
372
+ - lib/candidhealth/medication_dispense/client.rb
373
+ - lib/candidhealth/medication_dispense/v_1/client.rb
374
+ - lib/candidhealth/medication_dispense/v_1/types/medication_dispense_create.rb
371
375
  - lib/candidhealth/non_insurance_payer_payments/client.rb
372
376
  - lib/candidhealth/non_insurance_payer_payments/v_1/client.rb
373
377
  - lib/candidhealth/non_insurance_payer_payments/v_1/types/non_insurance_payer_payment.rb