List <string> GetTumorLineCombos(SentenceFragment sf, Dictionary <string, List <string> > tumorLines) { var tumorLineCombos = new List <string>(); string lineName = sf.RecognizedEntities. Where(re => String.Compare(re.Entity.DomainName, CAConstants.DIMENSION1_COMPONENT2, true) == 0). FirstOrDefault()?. Value. ToString(); string tumorName = sf.RecognizedEntities. Where(re => String.Compare(re.Entity.DomainName, CAConstants.DIMENSION1_COMPONENT1, true) == 0). FirstOrDefault()?. Value. ToString(); if (!String.IsNullOrWhiteSpace(lineName)) { tumorLineCombos.Add(tumorName + " " + lineName); } else if (!String.IsNullOrWhiteSpace(tumorName) && tumorLines.ContainsKey(tumorName)) { foreach (var line in tumorLines[tumorName]) { if (String.IsNullOrWhiteSpace(line)) { tumorLineCombos.Add(tumorName); } else { tumorLineCombos.Add(tumorName + " " + line); } } } return(tumorLineCombos); }
private List <SentenceFragment> GetDataSlicesFromDataTable(DataTable dt) { var slices = new List <SentenceFragment>(); foreach (DataRow row in dt.Rows) { SentenceFragment sf = new SentenceFragment(); var ners = new List <RecognizedEntity>(); if (dt.Columns.Contains(CAConstants.DIMENSION1_COMPONENT1)) { ners.Add(new RecognizedEntity { Entity = new Tumor(), Value = row[CAConstants.DIMENSION1_COMPONENT1].SafeTrim() }); } if (dt.Columns.Contains(CAConstants.DIMENSION1_COMPONENT2)) { ners.Add(new RecognizedEntity { Entity = new TumorLine(), Value = row[CAConstants.DIMENSION1_COMPONENT2].SafeTrim() }); } if (dt.Columns.Contains(CAConstants.DIMENSION1_COMPONENT3)) { ners.Add(new RecognizedEntity { Entity = new TumorSegment(CAConstants.DEFAULT_SEGMENT), Value = row[CAConstants.DIMENSION1_COMPONENT3].SafeTrim() }); } if (dt.Columns.Contains(CAConstants.DIMENSION1_COMPONENT4)) { ners.Add(new RecognizedEntity { Entity = new TumorSubsegment(CAConstants.DEFAULT_SUBSEGMENT), Value = row[CAConstants.DIMENSION1_COMPONENT4].SafeTrim() }); } if (dt.Columns.Contains(CAConstants.DIMENSION1_COMPONENT5)) { ners.Add(new RecognizedEntity { Entity = new TumorTestStatus(), Value = row[CAConstants.DIMENSION1_COMPONENT5].SafeTrim() }); } if (dt.Columns.Contains(CAConstants.DIMENSION2)) { ners.Add(new RecognizedEntity { Entity = new Regimen(), Value = row[CAConstants.DIMENSION2].SafeTrim() }); } if (dt.Columns.Contains(CAConstants.DIMENSION4)) { ners.Add(new RecognizedEntity { Entity = new Time(), Value = row[CAConstants.DIMENSION4].SafeTrim() }); } var measureRE = recognitionOutput.SentenceFragments[NERClause.EQUAL][0].RecognizedEntities. Where(re => re.IsMeasure). FirstOrDefault(). Clone() as RecognizedEntity; var measureField = measureRE.Entity.FieldName; double measureVal = Math.Round(row[measureField].SafeToDouble() * 100, CAConstants.CHART_LABEL_PRECISION); measureRE.Value = measureVal; measureRE.RecognizedValue = measureVal; ners.Add(measureRE); if (ners.AnyOrNotNull()) { sf.AddOrReplaceNERs(ners); } slices.Add(sf); } return(slices); }