Class: CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateStandalone

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

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(procedure_code:, quantity:, units:, claim_id:, diagnosis_id_zero: OMIT, diagnosis_id_one: OMIT, diagnosis_id_two: OMIT, diagnosis_id_three: OMIT, modifiers: OMIT, charge_amount_cents: OMIT, denial_reason: OMIT, place_of_service_code: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, drug_identification: OMIT, ordering_provider: OMIT, test_results: OMIT, has_epsdt_indicator: OMIT, has_family_planning_indicator: OMIT, note: OMIT, additional_properties: nil) ⇒ CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateStandalone

Parameters:

  • diagnosis_id_zero (String) (defaults to: OMIT)
  • diagnosis_id_one (String) (defaults to: OMIT)
  • diagnosis_id_two (String) (defaults to: OMIT)
  • diagnosis_id_three (String) (defaults to: OMIT)
  • procedure_code (String)
  • modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>) (defaults to: OMIT)
  • charge_amount_cents (Integer) (defaults to: OMIT)

    The total amount charged for this service line, factoring in quantity. The system will attempt to set it based on the chargemaster configuration 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, the system will default to the amount set via this field.

  • denial_reason (CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason) (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).

  • 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)
  • claim_id (String)
  • 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)
  • drug_identification (CandidApiClient::ServiceLines::V2::Types::DrugIdentification) (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.

  • 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.

  • 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



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 140

def initialize(procedure_code:, quantity:, units:, claim_id:, diagnosis_id_zero: OMIT, diagnosis_id_one: OMIT, diagnosis_id_two: OMIT,
               diagnosis_id_three: OMIT, modifiers: OMIT, charge_amount_cents: OMIT, denial_reason: OMIT, place_of_service_code: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, drug_identification: OMIT, ordering_provider: OMIT, test_results: OMIT, has_epsdt_indicator: OMIT, has_family_planning_indicator: OMIT, note: OMIT, additional_properties: nil)
  @diagnosis_id_zero = diagnosis_id_zero if diagnosis_id_zero != OMIT
  @diagnosis_id_one = diagnosis_id_one if diagnosis_id_one != OMIT
  @diagnosis_id_two = diagnosis_id_two if diagnosis_id_two != OMIT
  @diagnosis_id_three = diagnosis_id_three if diagnosis_id_three != OMIT
  @procedure_code = procedure_code
  @modifiers = modifiers if modifiers != OMIT
  @charge_amount_cents = charge_amount_cents if charge_amount_cents != OMIT
  @denial_reason = denial_reason if denial_reason != OMIT
  @place_of_service_code = place_of_service_code if place_of_service_code != OMIT
  @quantity = quantity
  @units = units
  @claim_id = claim_id
  @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
  @drug_identification = drug_identification if drug_identification != OMIT
  @ordering_provider = ordering_provider if ordering_provider != OMIT
  @test_results = test_results if test_results != 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
  @note = note if note != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "diagnosis_id_zero": diagnosis_id_zero,
    "diagnosis_id_one": diagnosis_id_one,
    "diagnosis_id_two": diagnosis_id_two,
    "diagnosis_id_three": diagnosis_id_three,
    "procedure_code": procedure_code,
    "modifiers": modifiers,
    "charge_amount_cents": charge_amount_cents,
    "denial_reason": denial_reason,
    "place_of_service_code": place_of_service_code,
    "quantity": quantity,
    "units": units,
    "claim_id": claim_id,
    "description": description,
    "date_of_service": date_of_service,
    "end_date_of_service": end_date_of_service,
    "drug_identification": drug_identification,
    "ordering_provider": ordering_provider,
    "test_results": test_results,
    "has_epsdt_indicator": has_epsdt_indicator,
    "has_family_planning_indicator": has_family_planning_indicator,
    "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



86
87
88
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 86

def additional_properties
  @additional_properties
end

#charge_amount_centsInteger (readonly)

Returns The total amount charged for this service line, factoring in quantity. The system will attempt to set it based on the chargemaster configuration 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, the system will default to the amount set via this field.

Returns:

  • (Integer)

    The total amount charged for this service line, factoring in quantity. The system will attempt to set it based on the chargemaster configuration 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, the system will default to the amount set via this field.



37
38
39
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 37

def charge_amount_cents
  @charge_amount_cents
end

#claim_idString (readonly)

Returns:

  • (String)


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

def claim_id
  @claim_id
end

#date_of_serviceDate (readonly)

Returns:

  • (Date)


61
62
63
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 61

def date_of_service
  @date_of_service
end

#denial_reasonCandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason (readonly)



39
40
41
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 39

def denial_reason
  @denial_reason
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.



59
60
61
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 59

def description
  @description
end

#diagnosis_id_oneString (readonly)

Returns:

  • (String)


22
23
24
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 22

def diagnosis_id_one
  @diagnosis_id_one
end

#diagnosis_id_threeString (readonly)

Returns:

  • (String)


26
27
28
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 26

def diagnosis_id_three
  @diagnosis_id_three
end

#diagnosis_id_twoString (readonly)

Returns:

  • (String)


24
25
26
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 24

def diagnosis_id_two
  @diagnosis_id_two
end

#diagnosis_id_zeroString (readonly)

Returns:

  • (String)


20
21
22
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 20

def diagnosis_id_zero
  @diagnosis_id_zero
end

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



65
66
67
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 65

def drug_identification
  @drug_identification
end

#end_date_of_serviceDate (readonly)

Returns:

  • (Date)


63
64
65
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 63

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.



78
79
80
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 78

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.



82
83
84
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 82

def has_family_planning_indicator
  @has_family_planning_indicator
end

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



30
31
32
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 30

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.



84
85
86
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 84

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:



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

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:



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

def place_of_service_code
  @place_of_service_code
end

#procedure_codeString (readonly)

Returns:

  • (String)


28
29
30
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 28

def procedure_code
  @procedure_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.



52
53
54
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 52

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.



74
75
76
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 74

def test_results
  @test_results
end

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



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

def units
  @units
end

Class Method Details

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

Deserialize a JSON object to an instance of ServiceLineCreateStandalone

Parameters:

  • json_object (String)

Returns:



195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 195

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  diagnosis_id_zero = struct["diagnosis_id_zero"]
  diagnosis_id_one = struct["diagnosis_id_one"]
  diagnosis_id_two = struct["diagnosis_id_two"]
  diagnosis_id_three = struct["diagnosis_id_three"]
  procedure_code = struct["procedure_code"]
  modifiers = struct["modifiers"]
  charge_amount_cents = struct["charge_amount_cents"]
  if parsed_json["denial_reason"].nil?
    denial_reason = nil
  else
    denial_reason = parsed_json["denial_reason"].to_json
    denial_reason = CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason.from_json(json_object: denial_reason)
  end
  place_of_service_code = struct["place_of_service_code"]
  quantity = struct["quantity"]
  units = struct["units"]
  claim_id = struct["claim_id"]
  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["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
  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
  has_epsdt_indicator = struct["has_epsdt_indicator"]
  has_family_planning_indicator = struct["has_family_planning_indicator"]
  note = struct["note"]
  new(
    diagnosis_id_zero: diagnosis_id_zero,
    diagnosis_id_one: diagnosis_id_one,
    diagnosis_id_two: diagnosis_id_two,
    diagnosis_id_three: diagnosis_id_three,
    procedure_code: procedure_code,
    modifiers: modifiers,
    charge_amount_cents: charge_amount_cents,
    denial_reason: denial_reason,
    place_of_service_code: place_of_service_code,
    quantity: quantity,
    units: units,
    claim_id: claim_id,
    description: description,
    date_of_service: date_of_service,
    end_date_of_service: end_date_of_service,
    drug_identification: drug_identification,
    ordering_provider: ordering_provider,
    test_results: test_results,
    has_epsdt_indicator: has_epsdt_indicator,
    has_family_planning_indicator: has_family_planning_indicator,
    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)


278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 278

def self.validate_raw(obj:)
  obj.diagnosis_id_zero&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_zero is not the expected type, validation failed.")
  obj.diagnosis_id_one&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_one is not the expected type, validation failed.")
  obj.diagnosis_id_two&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_two is not the expected type, validation failed.")
  obj.diagnosis_id_three&.is_a?(String) != false || raise("Passed value for field obj.diagnosis_id_three is not the expected type, validation failed.")
  obj.procedure_code.is_a?(String) != false || raise("Passed value for field obj.procedure_code is not the expected type, validation failed.")
  obj.modifiers&.is_a?(Array) != false || raise("Passed value for field obj.modifiers 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.denial_reason.nil? || CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason.validate_raw(obj: obj.denial_reason)
  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.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.claim_id.is_a?(String) != false || raise("Passed value for field obj.claim_id 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.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
  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.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.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 ServiceLineCreateStandalone to a JSON object

Returns:

  • (String)


268
269
270
# File 'lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb', line 268

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