protected result_files AddResultFile(string filePath, result_sources source) { string hash = GetFileHash(filePath); var file = new result_files() { md5 = hash, name = filePath, received_on = DateTime.Now, result_source_id = source.id }; return fileRepo.AddResultFile(file); }
public result_entities AddPhenotype(result_files resultFile, patient patient, attribute attribute, DateTime? resultedOn) { result_entities rootEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = attribute.id, }; result_entities resultedOnEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = GetAttribute(null, null, "Resulted on", null).id, parent = rootEntity, value_date_time = resultedOn }; entities.result_entities.AddRange(new[] { rootEntity, resultedOnEntity }); entities.SaveChanges(); return rootEntity; }
public result_files AddResultFile(result_files file) { entities.result_files.Add(file); entities.SaveChanges(); return file; }
public result_entities[] AddSnps(result_files resultFile, patient patient, DateTime? resultedOn, List<SnpResult> snps) { var results = new List<result_entities>(); var snpAlleleAttributeId = GetAttribute(null, null, "SNP allele", null).id; var referenceBaseAttributeId = GetAttribute(null, null, "Reference base", null).id; var resultedOnAttributeId = GetAttribute(null, null, "Resulted on", null).id; foreach (var snp in snps) { var entityParts = new List<result_entities>(); result_entities rootEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = GetAttribute(snp.RSID, "dbSNP", snp.RSID, snp.RSID).id, }; result_entities resultedOnEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = resultedOnAttributeId, parent = rootEntity, value_date_time = resultedOn }; result_entities referenceBaseEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = referenceBaseAttributeId, parent = rootEntity, value_short_text = snp.ReferenceBase }; result_entities allele1Entity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = snpAlleleAttributeId, parent = rootEntity, value_short_text = snp.Genotype[0].ToString() }; result_entities allele2Entity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = snpAlleleAttributeId, parent = rootEntity, value_short_text = snp.Genotype[1].ToString() }; entities.result_entities.AddRange(new[] { rootEntity, resultedOnEntity, referenceBaseEntity, allele1Entity, allele2Entity }); results.Add(rootEntity); } entities.SaveChanges(); return results.ToArray(); }
public result_entities[] AddStarVariants(patient patient, result_files resultFile, DateTime resultedOn, List<StarVariantResult> stars) { var results = new List<result_entities>(); foreach (var star in stars) { var entityParts = new List<result_entities>(); result_entities rootEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = GetAttribute(star.Gene, "HGNC", star.Gene, star.Gene).id }; entityParts.Add(rootEntity); result_entities resultedOnEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = GetAttribute(null, null, "Resulted on", null).id, parent = rootEntity, value_date_time = resultedOn }; entityParts.Add(resultedOnEntity); string[] splitStars = star.Result.Split(new string[] { "*" }, StringSplitOptions.RemoveEmptyEntries); foreach (var value in splitStars) { result_entities alleleEntity = new result_entities() { patient_id = patient.id, result_file_id = resultFile.id, attribute_id = GetAttribute(null, null, "Star allele", null).id, parent = rootEntity, value_short_text = value }; entityParts.Add(alleleEntity); } entities.result_entities.AddRange(entityParts); results.Add(rootEntity); } entities.SaveChanges(); return results.ToArray(); }
private List<string> GetPhenotypeDetailsForStar(result_files file, string phenotype) { List<string> details = new List<string>(); var geneIds = GetGeneFilterForPhenotype(phenotype); if (geneIds == null) { return details; } var results = (from re in entities.result_entities join parentEnt in entities.result_entities on re.parent_id equals parentEnt.id join attr in entities.attributes on parentEnt.attribute_id equals attr.id where geneIds.Contains(attr.id) && re.result_file_id == file.id && re.attribute_id == 129 select new DetailResult() { AttributeName = attr.name, Result = re }).ToArray(); string currentGene = ""; foreach (var result in results) { if (string.IsNullOrEmpty(currentGene)) { details.Add(string.Format("<div>{0}: *{1}", result.AttributeName, FormatResultEntityValue(result.Result))); } else if (currentGene != result.AttributeName) { details.Add(string.Format("</div><div>{0}: {1}", result.AttributeName, FormatResultEntityValue(result.Result))); } else { details.Add(string.Format("/*{0}", FormatResultEntityValue(result.Result))); } currentGene = result.AttributeName; } details.Add("</div>"); return details; }
private List<string> GetPhenotypeDetailsForSNP(result_files file, string phenotype) { List<string> details = new List<string>(); var geneIds = GetGeneFilterForPhenotype(phenotype); if (geneIds == null) { return details; } var results = (from valRes in entities.result_entities join varRes in entities.result_entities on valRes.parent_id equals varRes.id join attr in entities.attributes on varRes.attribute_id equals attr.id join rel in entities.attribute_relationships on attr.id equals rel.attribute1_id where rel.relationship_id == 5 && geneIds.Contains(rel.attribute2_id) && varRes.result_file_id == file.id && (valRes.attribute_id == 128 || valRes.attribute_id == 129) orderby attr.name select new DetailResult() { AttributeName = attr.name, Result = valRes }).ToArray(); string currentVariant = ""; foreach (var result in results) { if (string.IsNullOrEmpty(currentVariant)) { details.Add(string.Format("<div>{0}: {1}", result.AttributeName, FormatResultEntityValue(result.Result))); } else if (currentVariant != result.AttributeName) { details.Add(string.Format("</div><div>{0}: {1}", result.AttributeName, FormatResultEntityValue(result.Result))); } else { details.Add(FormatResultEntityValue(result.Result)); } currentVariant = result.AttributeName; } details.Add("</div>"); return details; }
private List<string> GetPhenotypeDetails(result_files file, string phenotype) { List<string> details = new List<string>(); var geneIds = GetGeneFilterForPhenotype(phenotype); if (geneIds == null) { return details; } var results = (from re in entities.result_entities join attr in entities.attributes on re.attribute_id equals attr.id join phenRel in entities.attribute_relationships on attr.id equals phenRel.attribute1_id join phenAttr in entities.attributes on phenRel.attribute2_id equals phenAttr.id join geneRel in entities.attribute_relationships on phenRel.attribute2_id equals geneRel.attribute1_id where phenRel.relationship_id == 2 && geneIds.Contains(geneRel.attribute2_id) && geneRel.relationship_id == 3 && re.result_file_id == file.id select new List<string>() { phenAttr.name, attr.name }).ToArray(); List<string> uniqueValues = new List<string>(); foreach (var result in results) { string value = string.Format("<div>{0}: {1}</div>", result[0], result[1]); if (!uniqueValues.Contains(value)) { details.Add(value); uniqueValues.Add(value); } } return details; }