private void SetValueForExamWorkSheet(byte[] value, IExamInfo examInfo) { CpuClock c = new CpuClock(); try { using (_workSheetsOnExam.LockOnCollectionChanged()) { using (_fetalBPSInfoNodes.LockOnCollectionChanged()) { _fetalBPSInfoNodes.Clear(); _workSheetsOnExam.Clear(); try { if (value != null && value.Length > 0) { ScanNodeContext context = new ScanNodeContext((ExamInfo)examInfo); var extensibleData = ExtensibleData.DeSerialize(value, context); if (extensibleData != null) { _fetalBPSInfoNodes.AddRange(extensibleData.BpsNodes); _workSheetsOnExam.AddRange(extensibleData.ScanNodes); } } } catch (Exception ex) { _workSheetsOnExam.Clear(); _fetalBPSInfoNodes.Clear(); Logger.WriteLineError("Failed to parse ExtensibleData value, details:{0}.", ex); } } } } finally { if (c.TotalMilliSeconds >= 500) { Logger.WriteLineError("ExamInfo.SetWorkSheetsXml spent {0:F2} ms", c.TotalMilliSeconds); } } }
private IScanInfo CreateScanInfo(DataRow scanInfoRow, IExamInfo examInfo) { var time = (DateTime)scanInfoRow["ScanDate"]; var id = scanInfoRow["ScanId"].ToString(); var probeName = scanInfoRow["ProbeName"].ToString(); var app = ApplicationInfo.Unknown; var appXml = scanInfoRow["ApplicationInfoXml"].ToString(); if (!string.IsNullOrEmpty(appXml)) { XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(appXml); XmlElement element = xDoc.DocumentElement; app.ReloadFrom(element); } ScanInfo scanInfo = new ScanInfo((ExamInfo)examInfo, id, time, probeName, app); return(scanInfo); }
private void SaveWorksheet(IExamInfo examInfo) { var exam = examInfo as ExamInfo; var scanNodes = exam?.ScanNodes as NamedList <IScanNode>; //Do clear in both worksheet & fetalBPS info nodes. scanNodes?.Clear(); exam?.FetalBPSInfoNodes.Clear(); if (_workSheetsOnExam.Count != 0) { foreach (var workSheet in _workSheetsOnExam) { exam?.AddScanNode(workSheet); } } exam?.FetalBPSInfoNodes.AddRange(_fetalBPSInfoNodes); exam?.SaveWorksheet(); }
public CExamLevelsMgrImpl(IExamInfo examData) { this.examData = examData; }