Class: ChangeHealth::Request::Claim::Submission

Inherits:
Hashie::Trash
  • Object
show all
Defined in:
lib/change_health/request/submission.rb

Constant Summary collapse

PROFESSIONAL_ENDPOINT =
'/medicalnetwork/professionalclaims/v3'.freeze
INSTITUTIONAL_ENDPOINT =
'/medicalnetwork/institutionalclaims/v1'.freeze
HEALTH_CHECK_SUFFIX =
'/healthcheck'.freeze
SUBMISSION_SUFFIX =
'/submission'.freeze
VALIDATION_SUFFIX =
'/validation'.freeze
ENDPOINT =

Deprecated but still here for backwards compatibility

PROFESSIONAL_ENDPOINT
HEALTH_CHECK_ENDPOINT =
ENDPOINT + '/healthcheck'.freeze
SUBMISSION_ENDPOINT =
ENDPOINT + '/submission'.freeze
VALIDATION_ENDPOINT =
ENDPOINT + '/validation'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.health_check(is_professional: true) ⇒ Object



62
63
64
65
66
# File 'lib/change_health/request/submission.rb', line 62

def self.health_check(is_professional: true)
  endpoint = is_professional ? PROFESSIONAL_ENDPOINT : INSTITUTIONAL_ENDPOINT
  endpoint += HEALTH_CHECK_SUFFIX
  ChangeHealth::Connection.new.request(endpoint: endpoint, verb: :get)
end

.ping(is_professional: true) ⇒ Object



68
69
70
# File 'lib/change_health/request/submission.rb', line 68

def self.ping(is_professional: true)
  health_check(is_professional: is_professional)
end

Instance Method Details

#add_provider(provider) ⇒ Object



33
34
35
36
# File 'lib/change_health/request/submission.rb', line 33

def add_provider(provider)
  self[:providers] ||= []
  self[:providers] << provider
end

#institutional_headersObject



83
84
85
86
87
88
89
90
91
92
# File 'lib/change_health/request/submission.rb', line 83

def institutional_headers
  return unless self[:headers]

  {
    'X-CHC-InstitutionalClaims-BillerId' => self[:headers][:biller_id],
    'X-CHC-InstitutionalClaims-Pwd' => self[:headers][:password],
    'X-CHC-InstitutionalClaims-SubmitterId' => self[:headers][:submitter_id],
    'X-CHC-InstitutionalClaims-Username' => self[:headers][:username]
  }
end

#professional_headersObject



72
73
74
75
76
77
78
79
80
81
# File 'lib/change_health/request/submission.rb', line 72

def professional_headers
  return unless self[:headers]

  {
    'X-CHC-ClaimSubmission-BillerId' => self[:headers][:biller_id],
    'X-CHC-ClaimSubmission-Pwd' => self[:headers][:password],
    'X-CHC-ClaimSubmission-SubmitterId' => self[:headers][:submitter_id],
    'X-CHC-ClaimSubmission-Username' => self[:headers][:username]
  }
end

#submission(is_professional: true) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/change_health/request/submission.rb', line 38

def submission(is_professional: true)
  endpoint = is_professional ? PROFESSIONAL_ENDPOINT : INSTITUTIONAL_ENDPOINT
  endpoint += SUBMISSION_SUFFIX
  ChangeHealth::Response::Claim::SubmissionData.new(
    response: ChangeHealth::Connection.new.request(
      endpoint: endpoint,
      body: to_h,
      headers: is_professional ? professional_headers : institutional_headers
    )
  )
end

#validation(is_professional: true) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/change_health/request/submission.rb', line 50

def validation(is_professional: true)
  endpoint = is_professional ? PROFESSIONAL_ENDPOINT : INSTITUTIONAL_ENDPOINT
  endpoint += VALIDATION_SUFFIX
  ChangeHealth::Response::Claim::SubmissionData.new(
    response: ChangeHealth::Connection.new.request(
      endpoint: endpoint,
      body: to_h,
      headers: is_professional ? professional_headers : institutional_headers
    )
  )
end