Its been a while
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
module MembersService
|
||||
class Claims
|
||||
|
||||
def initialize(entity, recent = false)
|
||||
if entity.is_a?(Integer)
|
||||
@member = Baclight::Member.find_by(pb_entity_key: entity)
|
||||
else
|
||||
@member = entity
|
||||
end
|
||||
if @member.present?
|
||||
@pl_plan_key = @member.pl_plan_key
|
||||
@family_id = @member.family_id
|
||||
@recent = recent
|
||||
else
|
||||
raise ArgumentError, "Member not found."
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def call
|
||||
args = {
|
||||
PLPlanKey: @pl_plan_key,
|
||||
FamilyId: @family_id,
|
||||
ProviderTaxId: "",
|
||||
UserID: "JASONJ"
|
||||
}
|
||||
claims_headers = CallStoredProc.new("CPFindClaim", args).call
|
||||
|
||||
ordered_claims_headers = claims_headers.sort_by { |ch| ch['IncurDate'].to_date }.reverse
|
||||
ordered_claims_headers = ordered_claims_headers.first(6) if @recent
|
||||
|
||||
ordered_claims_headers.map { |ch| { claim_number: ch['CPHeaderKey'], visit_date: ch['IncurDate'].strftime("%m-%d-%Y"), claim_status: ch['AdjudicatedStatusShortDesc'], patient_name: ch['FullName'], provider_name: ch['ProviderCompany']} } || []
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
# claimHeaders = _vContext.ClaimHeader.FromSql("dbo.CPFindClaim
|
||||
# @PLPlanKey = {0}, @CSCaseKey = {1}, @PAPriorAuthKey = {2}, @FromDate = {3}, @ToDate = {4}, @FamilyID = {5}, @FirstName = {6}, @LastName = {7}, @SequenceNumber = {8}, @PBEntityKey = {9}, @ProviderIdentifierCode = {10}, @ProviderCompanyName = {11}, @ProviderTaxID = {12}, @HeaderStatusValueID = {13}, @AdjudicatedStatusValueID = {14}, @EventUSUserKey = {15}, @IncludeRestricted = {16}, @ClaimTypeValueID = {17}, @ClaimSource = {18}, @ReceivedFromDate = {19}, @ReceivedToDate = {20}, @DCN = {21}, @SSN = {22}, @SSN_IncFamily = {23}, @SearchAllIDs = {24}, @UserID = {25}, @ExecuteOrDisplay = {26} ",
|
||||
# PlanKey, 0, 0, FromDate, ToDate, FamilyId, "", "", -1, 0, "", "", ProviderTaxId, 0, 0, 0, 0, 0, 2, null, null, null, null, 0, 0, "DAVIDH", 1)
|
||||
@@ -0,0 +1,41 @@
|
||||
module MembersService
|
||||
class IdCard
|
||||
|
||||
def initialize(member, layout)
|
||||
@member = member
|
||||
if @member.present?
|
||||
@pb_entity_key = @member.pb_entity_key
|
||||
@layout = layout
|
||||
else
|
||||
raise ArgumentError, "Member not found."
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def call
|
||||
url_components = {
|
||||
host: ENV["BACLIGHT_SERVER_HOST"],
|
||||
port: ENV["BACLIGHT_SERVER_PORT"],
|
||||
path: "/api/v1/web_id_cards/member_card/#{@pb_entity_key}/#{@layout}"
|
||||
}
|
||||
|
||||
response = HTTParty.get(
|
||||
URI::HTTP.build(url_components),
|
||||
headers: { 'Content-Type' => 'application/json', 'Accept' => 'application/pdf' },
|
||||
stream_body: true
|
||||
)
|
||||
|
||||
if response.code == 200
|
||||
# content_disposition = response.headers['Content-Disposition']
|
||||
# {
|
||||
# pdf_file: response.body,
|
||||
# filename: content_disposition[/filename="?([^"]*)"?/, 1]
|
||||
# }
|
||||
|
||||
response
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,24 @@
|
||||
module MembersService
|
||||
class InitializeDashboard
|
||||
|
||||
def initialize(member)
|
||||
@member = member
|
||||
unless @member.present?
|
||||
raise ArgumentError, "Member not found."
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def call
|
||||
plan_benefits = MembersService::PlanBenefits.new(@member).call
|
||||
network_provider = MembersService::NetworkProvider.new(@member).call
|
||||
recent_claims = MembersService::Claims.new(@member, true).call
|
||||
|
||||
{
|
||||
network_provider: network_provider,
|
||||
plan_benefits: plan_benefits,
|
||||
recent_claims: recent_claims
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,18 @@
|
||||
module MembersService
|
||||
class NetworkProvider
|
||||
|
||||
def initialize(member)
|
||||
@member = member
|
||||
if @member.present?
|
||||
@pl_plan_key = @member.pl_plan_key
|
||||
else
|
||||
raise ArgumentError, "Member not found."
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def call
|
||||
Baclight::IdCardSetup.find_by(pl_plan_key: @pl_plan_key).network_provider
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,20 @@
|
||||
module MembersService
|
||||
class PlanBenefits
|
||||
|
||||
def initialize(member)
|
||||
@member = member
|
||||
if @member.present?
|
||||
@plan_id = @member.id_card_plan_id
|
||||
else
|
||||
raise ArgumentError, "Member not found."
|
||||
end
|
||||
end
|
||||
|
||||
def call
|
||||
Baclight::IdCardPlan.joins(:baclight_id_card_plan_benefits)
|
||||
.select('id_card_plans.id, id_card_plans.title, id_card_plan_benefits.id, id_card_plan_benefits.sequence, id_card_plan_benefits.benefit, id_card_plan_benefits.benefit_desc')
|
||||
.where(id: @plan_id)
|
||||
.distinct
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user