Its been a while
CI / scan_ruby (push) Failing after 2m13s
CI / lint (push) Failing after 20s

This commit is contained in:
Jason Jordan
2026-07-23 10:41:46 -04:00
parent 16fadfd529
commit 9853d58469
83 changed files with 1978 additions and 243 deletions
@@ -0,0 +1,41 @@
module EmployersService
class IdCards
def initialize(pl_plan_key)
@employer = Baclight::Employer.find_by(pl_plan_key: pl_plan_key)
if @employer.present?
@pl_plan_key = pl_plan_key
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/employer_cards/#{@pl_plan_key}"
}
response = HTTParty.get(
URI::HTTP.build(url_components),
headers: { 'Content-Type' => 'application/json', 'Accept' => 'application/zip' },
stream_body: true
)
if response.code == 200
# content_disposition = response.headers['Content-Disposition']
# {
# zip_file: response.body,
# filename: content_disposition[/filename="?([^"]*)"?/, 1]
# }
response
else
nil
end
end
end
end
+33
View File
@@ -0,0 +1,33 @@
class MemberClaimsService
def initialize(pb_entity_key)
@member = Baclight::Member.find_by(pb_entity_key: pb_entity_key)
if @member.present?
@pl_plan_key = @member.pl_plan_key
@family_id = @member.family_id
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
recent_claims_headers = claims_headers.sort_by { |ch| ch['IncurDate'].to_date }.reverse.first(6)
recent_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
# 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)
+41
View File
@@ -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)
+41
View File
@@ -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