/// <summary> /// Populates this <see cref="LabTestResults"/> instance from the data in the XML. /// </summary> /// /// <param name="typeSpecificXml"> /// The XML to get the lab test results data from. /// </param> /// /// <exception cref="InvalidOperationException"> /// If the first node in <paramref name="typeSpecificXml"/> is not /// a lab test results node. /// </exception> /// protected override void ParseXml(IXPathNavigable typeSpecificXml) { XPathNavigator itemNav = typeSpecificXml.CreateNavigator().SelectSingleNode("lab-test-results"); Validator.ThrowInvalidIfNull(itemNav, "LabTestResultsUnexpectedNode"); // when _when = XPathHelper.GetOptNavValue<ApproximateDateTime>(itemNav, "when"); // lab-group XPathNodeIterator labGroupIterator = itemNav.Select("lab-group"); _labGroup = new Collection<LabTestResultGroup>(); foreach (XPathNavigator labGroupNav in labGroupIterator) { LabTestResultGroup labTestResultGroup = new LabTestResultGroup(); labTestResultGroup.ParseXml(labGroupNav); _labGroup.Add(labTestResultGroup); } // ordered-by _orderedBy = XPathHelper.GetOptNavValue<Organization>(itemNav, "ordered-by"); }
/// <summary> /// Populates this <see cref="LabTestResultGroup"/> instance from the data in the XML. /// </summary> /// /// <param name="navigator"> /// The XML to get the lab test results group type data from. /// </param> /// /// <exception cref="ArgumentNullException"> /// If <paramref name="navigator"/> is <b>null</b>. /// </exception> /// public override void ParseXml(XPathNavigator navigator) { Validator.ThrowIfNavigatorNull(navigator); // group-name _groupName = new CodableValue(); _groupName.ParseXml(navigator.SelectSingleNode("group-name")); // laboratory-name _laboratoryName = XPathHelper.GetOptNavValue<Organization>(navigator,"laboratory-name"); // status _status = XPathHelper.GetOptNavValue<CodableValue>(navigator,"status"); // sub-groups XPathNodeIterator subGroupsIterator = navigator.Select("sub-groups"); _subGroups = new Collection<LabTestResultGroup>(); foreach (XPathNavigator subGroupNav in subGroupsIterator) { LabTestResultGroup _subGroup = new LabTestResultGroup(); _subGroup.ParseXml(subGroupNav); _subGroups.Add(_subGroup); } // results XPathNodeIterator resultsIterator = navigator.Select("results"); _results = new Collection<LabTestResultDetails>(); foreach (XPathNavigator resultNav in resultsIterator) { LabTestResultDetails result = new LabTestResultDetails(); result.ParseXml(resultNav); _results.Add(result); } }