Ejemplo n.º 1
0
        private static List <string> GetSignificances(XElement interpretations)
        {
            if (interpretations == null || interpretations.IsEmpty)
            {
                return(null);
            }

            var significanceList = new List <string>();

            foreach (var interpretation in interpretations.Elements(InterpretationTag))
            {
                var type = interpretation.Attribute(TypeTag)?.Value;
                if (type == null || type != "Clinical significance")
                {
                    continue;
                }

                var significanceString = interpretation.Element(DescriptionTag)?.Value.ToLower();
                if (significanceString == null)
                {
                    continue;
                }

                var significances = ClinVarCommon.GetSignificances(significanceString, null);
                foreach (var significance in significances)
                {
                    if (!ClinVarCommon.ValidPathogenicity.Contains(significance))
                    {
                        throw new InvalidDataException($"Invalid clinical significance found. Observed: {significance}");
                    }
                    significanceList.Add(significance);
                }
            }
            return(significanceList);
        }
Ejemplo n.º 2
0
        private void GetClinicalSignificance(XElement xElement)
        {
            if (xElement == null || xElement.IsEmpty)
            {
                return;
            }

            _reviewStatus = xElement.Element(ReviewStatusTag)?.Value;
            var description = xElement.Element(DescriptionTag)?.Value;
            var explanation = xElement.Element(ExplanationTag)?.Value;

            _significances = ClinVarCommon.GetSignificances(description, explanation);

            ValidateSignificance(_significances);
        }