Skip to content

Commit

Permalink
Merge branch 'main' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
acoffman committed Feb 12, 2025
2 parents 049f5f3 + 7e5a7b3 commit 56e1f41
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 2 deletions.
4 changes: 4 additions & 0 deletions server/app/lib/link_adaptors/fusion_variant.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module LinkAdaptors
class FusionVariant < Variant
end
end
2 changes: 1 addition & 1 deletion server/app/models/frontend_router.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def query_info
end

def remove_tag(id_with_tag)
match = id_with_tag.upcase.match(/^(AID|GID|FID|VID|EID|SID|MPID)(\d+)$/)
match = id_with_tag&.upcase&.match(/^(AID|GID|FID|VID|EID|SID|MPID)(\d+)$/)
if match
match.captures
else
Expand Down
30 changes: 30 additions & 0 deletions server/app/reports/diseases_without_eids.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
class DiseasesWithoutEids < Report
attr_reader :diseases_without_associations

def self.name
"Diseases Without Assertions or EIDs"
end

def self.description
"Generate a report of diseases that have no assertions or evidence items associated with them."
end

def setup
@diseases_without_associations = Disease
.left_joins(:assertions, :evidence_items)
.group('diseases.id')
.having('COUNT(assertions.id) = 0 AND COUNT(evidence_items.id) = 0')
.where(deprecated: false)
.distinct
end

def headers
['ID', 'DOID', 'Name']
end

def execute
diseases_without_associations.each do |disease|
data << [disease.id, disease.doid, disease.name]
end
end
end
37 changes: 37 additions & 0 deletions server/app/reports/duplicate_disease_names.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
class DuplicateDiseaseNames < Report
attr_reader :duplicate_name_groups

def self.name
"Duplicate Disease Names"
end

def self.description
"Generate a report of diseases with duplicate names."
end

def setup
@duplicate_name_groups = Disease
.select('name, COUNT(*) as disease_count')
.where.not(name: nil)
.where(deprecated: false)
.group(:name)
.having('COUNT(*) > 1')
.each_with_object({}) do |disease_group, hash|
hash[disease_group.name] = Disease.where(name: disease_group.name, deprecated: false)
end
end

def headers
['ID', 'DOID', 'Name', 'Assertion Count', 'EID Count']
end

def execute
duplicate_name_groups.each do |name, diseases|
diseases.each do |disease|
num_assertions = disease.assertions.count
num_evidence_items = disease.evidence_items.count
data << [disease.id, disease.doid, disease.name, num_assertions, num_evidence_items]
end
end
end
end
37 changes: 37 additions & 0 deletions server/app/reports/duplicate_doids.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
class DuplicateDoids < Report
attr_reader :duplicate_doid_groups

def self.name
"Duplicate DOIDs"
end

def self.description
"Generate a report of diseases with duplicate DOIDs."
end

def setup
@duplicate_doid_groups = Disease
.select('doid, COUNT(*) as disease_count')
.where.not(doid: nil)
.where(deprecated: false)
.group(:doid)
.having('COUNT(*) > 1')
.each_with_object({}) do |disease_group, hash|
hash[disease_group.doid] = Disease.where(doid: disease_group.doid, deprecated: false)
end
end

def headers
['ID', 'DOID', 'Name', 'Assertion Count', 'EID Count']
end

def execute
duplicate_doid_groups.each do |doid, diseases|
diseases.each do |disease|
num_assertions = disease.assertions.count
num_evidence_items = disease.evidence_items.count
data << [disease.id, disease.doid, disease.name, num_assertions, num_evidence_items]
end
end
end
end
5 changes: 4 additions & 1 deletion server/app/reports/reports.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ module Reports
AVAILABLE_REPORTS = [
OrganizationContributions,
EidsWithOnsetTerms,
DiseasesWithIcdo
DiseasesWithIcdo,
DuplicateDoids,
DuplicateDiseaseNames,
DiseasesWithoutEids
]
end

0 comments on commit 56e1f41

Please sign in to comment.