Class: CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateBaseBase

Inherits:
Object
  • Object
show all
Defined in:
lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(quantity:, units:, modifiers: OMIT, has_epsdt_indicator: OMIT, has_family_planning_indicator: OMIT, charge_amount_cents: OMIT, drug_identification: OMIT, place_of_service_code: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, ordering_provider: OMIT, test_results: OMIT, note: OMIT, additional_properties: nil) ⇒ CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateBaseBase

Parameters:

  • modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>) (defaults to: OMIT)
  • has_epsdt_indicator (Boolean) (defaults to: OMIT)

    Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500. If the value is true, the box will be populated with “Y”. Otherwise, the box will not be populated.

  • has_family_planning_indicator (Boolean) (defaults to: OMIT)

    Maps to SV1-12 on the 837-P and Box 24I on the CMS-1500. If the value is true, the box will be populated with “Y”. Otherwise, the box will not be populated.

  • quantity (String)

    String representation of a Decimal that can be parsed by most libraries. For professional claims, a ServiceLine quantity cannot contain more than one digit of precision (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine quantity cannot contain more than three decimal digits of precision.

  • units (CandidApiClient::Commons::Types::ServiceLineUnits)
  • charge_amount_cents (Integer) (defaults to: OMIT)

    The total amount charged for this service line, factoring in quantity. If procedure_code is updated and this is not, the system will attempt to set it based on chargemasters entries and the service line’s quantity. For example, if a single unit has an entry of 100 cents and 2 units were rendered, the charge_amount_cents will be set to 200, if there is no chargemaster entry, it will default to the amount set in this field.

  • drug_identification (CandidApiClient::ServiceLines::V2::Types::DrugIdentification) (defaults to: OMIT)
  • place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode) (defaults to: OMIT)

    837p Loop2300, SV105. This enum is not used or required in 837i claims. If your organization does not intend to submit claims with a different place of service at the service line level, this field should not be populated. 02 for telemedicine, 11 for in-person. Full list //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).

  • description (String) (defaults to: OMIT)

    A free-form description to clarify the related data elements and their content. Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.

  • date_of_service (Date) (defaults to: OMIT)
  • end_date_of_service (Date) (defaults to: OMIT)
  • ordering_provider (CandidApiClient::EncounterProviders::V2::Types::OrderingProvider) (defaults to: OMIT)

    Required when the service or supply was ordered by a provider who is different than the rendering provider for this service line. If not required by this implementation guide, do not send.

  • test_results (Array<CandidApiClient::ServiceLines::V2::Types::TestResult>) (defaults to: OMIT)

    Contains a list of test results. Test result types may map to MEA-02 on the 837-P (ex: Hemoglobin, Hematocrit). This is unused by 837-i and ignored for institutional service lines. No more than 5 MEA-02 test results may be submitted per service line.

  • note (String) (defaults to: OMIT)

    Maps to NTE02 loop 2400 on the EDI 837.

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 118

def initialize(quantity:, units:, modifiers: OMIT, has_epsdt_indicator: OMIT,
               has_family_planning_indicator: OMIT, charge_amount_cents: OMIT, drug_identification: OMIT, place_of_service_code: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, ordering_provider: OMIT, test_results: OMIT, note: OMIT, additional_properties: nil)
  @modifiers = modifiers if modifiers != OMIT
  @has_epsdt_indicator = has_epsdt_indicator if has_epsdt_indicator != OMIT
  @has_family_planning_indicator = has_family_planning_indicator if has_family_planning_indicator != OMIT
  @quantity = quantity
  @units = units
  @charge_amount_cents = charge_amount_cents if charge_amount_cents != OMIT
  @drug_identification = drug_identification if drug_identification != OMIT
  @place_of_service_code = place_of_service_code if place_of_service_code != OMIT
  @description = description if description != OMIT
  @date_of_service = date_of_service if date_of_service != OMIT
  @end_date_of_service = end_date_of_service if end_date_of_service != OMIT
  @ordering_provider = ordering_provider if ordering_provider != OMIT
  @test_results = test_results if test_results != OMIT
  @note = note if note != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "modifiers": modifiers,
    "has_epsdt_indicator": has_epsdt_indicator,
    "has_family_planning_indicator": has_family_planning_indicator,
    "quantity": quantity,
    "units": units,
    "charge_amount_cents": charge_amount_cents,
    "drug_identification": drug_identification,
    "place_of_service_code": place_of_service_code,
    "description": description,
    "date_of_service": date_of_service,
    "end_date_of_service": end_date_of_service,
    "ordering_provider": ordering_provider,
    "test_results": test_results,
    "note": note
  }.reject do |_k, v|
    v == OMIT
  end
end

Instance Attribute Details

#additional_propertiesOpenStruct (readonly)

Returns Additional properties unmapped to the current class definition.

Returns:

  • (OpenStruct)

    Additional properties unmapped to the current class definition



71
72
73
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 71

def additional_properties
  @additional_properties
end

#charge_amount_centsInteger (readonly)

Returns The total amount charged for this service line, factoring in quantity. If procedure_code is updated and this is not, the system will attempt to set it based on chargemasters entries and the service line’s quantity. For example, if a single unit has an entry of 100 cents and 2 units were rendered, the charge_amount_cents will be set to 200, if there is no chargemaster entry, it will default to the amount set in this field.

Returns:

  • (Integer)

    The total amount charged for this service line, factoring in quantity. If procedure_code is updated and this is not, the system will attempt to set it based on chargemasters entries and the service line’s quantity. For example, if a single unit has an entry of 100 cents and 2 units were rendered, the charge_amount_cents will be set to 200, if there is no chargemaster entry, it will default to the amount set in this field.



43
44
45
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 43

def charge_amount_cents
  @charge_amount_cents
end

#date_of_serviceDate (readonly)

Returns:

  • (Date)


56
57
58
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 56

def date_of_service
  @date_of_service
end

#descriptionString (readonly)

Returns A free-form description to clarify the related data elements and their content. Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.

Returns:

  • (String)

    A free-form description to clarify the related data elements and their content. Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.



54
55
56
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 54

def description
  @description
end

#drug_identificationCandidApiClient::ServiceLines::V2::Types::DrugIdentification (readonly)



45
46
47
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 45

def drug_identification
  @drug_identification
end

#end_date_of_serviceDate (readonly)

Returns:

  • (Date)


58
59
60
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 58

def end_date_of_service
  @end_date_of_service
end

#has_epsdt_indicatorBoolean (readonly)

Returns Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500. If the value is true, the box will be populated with “Y”. Otherwise, the box will not be populated.

Returns:

  • (Boolean)

    Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500. If the value is true, the box will be populated with “Y”. Otherwise, the box will not be populated.



23
24
25
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 23

def has_epsdt_indicator
  @has_epsdt_indicator
end

#has_family_planning_indicatorBoolean (readonly)

Returns Maps to SV1-12 on the 837-P and Box 24I on the CMS-1500. If the value is true, the box will be populated with “Y”. Otherwise, the box will not be populated.

Returns:

  • (Boolean)

    Maps to SV1-12 on the 837-P and Box 24I on the CMS-1500. If the value is true, the box will be populated with “Y”. Otherwise, the box will not be populated.



27
28
29
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 27

def has_family_planning_indicator
  @has_family_planning_indicator
end

#modifiersArray<CandidApiClient::Commons::Types::ProcedureModifier> (readonly)



19
20
21
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 19

def modifiers
  @modifiers
end

#noteString (readonly)

Returns Maps to NTE02 loop 2400 on the EDI 837.

Returns:

  • (String)

    Maps to NTE02 loop 2400 on the EDI 837.



69
70
71
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 69

def note
  @note
end

#ordering_providerCandidApiClient::EncounterProviders::V2::Types::OrderingProvider (readonly)

Returns Required when the service or supply was ordered by a provider who is different than the rendering provider for this service line. If not required by this implementation guide, do not send.

Returns:



62
63
64
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 62

def ordering_provider
  @ordering_provider
end

#place_of_service_codeCandidApiClient::Commons::Types::FacilityTypeCode (readonly)

Returns 837p Loop2300, SV105. This enum is not used or required in 837i claims. If your organization does not intend to submit claims with a different place of service at the service line level, this field should not be populated. 02 for telemedicine, 11 for in-person. Full list //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).

Returns:



51
52
53
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 51

def place_of_service_code
  @place_of_service_code
end

#quantityString (readonly)

Returns String representation of a Decimal that can be parsed by most libraries. For professional claims, a ServiceLine quantity cannot contain more than one digit of precision (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine quantity cannot contain more than three decimal digits of precision.

Returns:

  • (String)

    String representation of a Decimal that can be parsed by most libraries. For professional claims, a ServiceLine quantity cannot contain more than one digit of precision (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine quantity cannot contain more than three decimal digits of precision.



34
35
36
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 34

def quantity
  @quantity
end

#test_resultsArray<CandidApiClient::ServiceLines::V2::Types::TestResult> (readonly)

Returns Contains a list of test results. Test result types may map to MEA-02 on the 837-P (ex: Hemoglobin, Hematocrit). This is unused by 837-i and ignored for institutional service lines. No more than 5 MEA-02 test results may be submitted per service line.

Returns:

  • (Array<CandidApiClient::ServiceLines::V2::Types::TestResult>)

    Contains a list of test results. Test result types may map to MEA-02 on the 837-P (ex: Hemoglobin, Hematocrit). This is unused by 837-i and ignored for institutional service lines. No more than 5 MEA-02 test results may be submitted per service line.



67
68
69
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 67

def test_results
  @test_results
end

#unitsCandidApiClient::Commons::Types::ServiceLineUnits (readonly)



36
37
38
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 36

def units
  @units
end

Class Method Details

.from_json(json_object:) ⇒ CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateBaseBase

Deserialize a JSON object to an instance of ServiceLineCreateBaseBase

Parameters:

  • json_object (String)

Returns:



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 159

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  modifiers = struct["modifiers"]
  has_epsdt_indicator = struct["has_epsdt_indicator"]
  has_family_planning_indicator = struct["has_family_planning_indicator"]
  quantity = struct["quantity"]
  units = struct["units"]
  charge_amount_cents = struct["charge_amount_cents"]
  if parsed_json["drug_identification"].nil?
    drug_identification = nil
  else
    drug_identification = parsed_json["drug_identification"].to_json
    drug_identification = CandidApiClient::ServiceLines::V2::Types::DrugIdentification.from_json(json_object: drug_identification)
  end
  place_of_service_code = struct["place_of_service_code"]
  description = struct["description"]
  date_of_service = (Date.parse(parsed_json["date_of_service"]) unless parsed_json["date_of_service"].nil?)
  end_date_of_service = unless parsed_json["end_date_of_service"].nil?
                          Date.parse(parsed_json["end_date_of_service"])
                        end
  if parsed_json["ordering_provider"].nil?
    ordering_provider = nil
  else
    ordering_provider = parsed_json["ordering_provider"].to_json
    ordering_provider = CandidApiClient::EncounterProviders::V2::Types::OrderingProvider.from_json(json_object: ordering_provider)
  end
  test_results = parsed_json["test_results"]&.map do |item|
    item = item.to_json
    CandidApiClient::ServiceLines::V2::Types::TestResult.from_json(json_object: item)
  end
  note = struct["note"]
  new(
    modifiers: modifiers,
    has_epsdt_indicator: has_epsdt_indicator,
    has_family_planning_indicator: has_family_planning_indicator,
    quantity: quantity,
    units: units,
    charge_amount_cents: charge_amount_cents,
    drug_identification: drug_identification,
    place_of_service_code: place_of_service_code,
    description: description,
    date_of_service: date_of_service,
    end_date_of_service: end_date_of_service,
    ordering_provider: ordering_provider,
    test_results: test_results,
    note: note,
    additional_properties: struct
  )
end

.validate_raw(obj:) ⇒ Void

Leveraged for Union-type generation, validate_raw attempts to parse the given

hash and check each fields type against the current object's property
definitions.

Parameters:

  • obj (Object)

Returns:

  • (Void)


223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 223

def self.validate_raw(obj:)
  obj.modifiers&.is_a?(Array) != false || raise("Passed value for field obj.modifiers is not the expected type, validation failed.")
  obj.has_epsdt_indicator&.is_a?(Boolean) != false || raise("Passed value for field obj.has_epsdt_indicator is not the expected type, validation failed.")
  obj.has_family_planning_indicator&.is_a?(Boolean) != false || raise("Passed value for field obj.has_family_planning_indicator is not the expected type, validation failed.")
  obj.quantity.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
  obj.units.is_a?(CandidApiClient::Commons::Types::ServiceLineUnits) != false || raise("Passed value for field obj.units is not the expected type, validation failed.")
  obj.charge_amount_cents&.is_a?(Integer) != false || raise("Passed value for field obj.charge_amount_cents is not the expected type, validation failed.")
  obj.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
  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.")
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
  obj.date_of_service&.is_a?(Date) != false || raise("Passed value for field obj.date_of_service is not the expected type, validation failed.")
  obj.end_date_of_service&.is_a?(Date) != false || raise("Passed value for field obj.end_date_of_service is not the expected type, validation failed.")
  obj.ordering_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::OrderingProvider.validate_raw(obj: obj.ordering_provider)
  obj.test_results&.is_a?(Array) != false || raise("Passed value for field obj.test_results is not the expected type, validation failed.")
  obj.note&.is_a?(String) != false || raise("Passed value for field obj.note is not the expected type, validation failed.")
end

Instance Method Details

#to_json(*_args) ⇒ String

Serialize an instance of ServiceLineCreateBaseBase to a JSON object

Returns:

  • (String)


213
214
215
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb', line 213

def to_json(*_args)
  @_field_set&.to_json
end