コード例 #1
0
        protected override void LoadFromFile(string path)
        {
            var separator = _csvSeparatorSelector.GetCsvSeparator(path);

            //if separator selection dialog was cancelled, abort
            if (!(separator is char separatorCharacter))
            {
                return;
            }

            //we keep a copy of the already loaded sheets, in case the reading fails
            var alreadyLoadedDataSheets = DataSheets.Clone();

            DataSheets.Clear();

            try
            {
                using (var reader = new CsvReaderDisposer(path, separatorCharacter))
                {
                    var csv     = reader.Csv;
                    var headers = csv.GetFieldHeaders();
                    var rows    = new List <List <string> >(headers.Length);

                    var dataSheet = new DataSheet
                    {
                        SheetName = ""
                    };

                    for (var i = 0; i < headers.Length; i++)
                    {
                        dataSheet.AddColumn(headers[i], i);
                    }
                    var currentRow = new string[csv.FieldCount];

                    while (csv.ReadNextRecord())
                    {
                        csv.CopyCurrentRecordTo(currentRow);
                        var rowList = currentRow.ToList();
                        var levels  = getMeasurementLevels(rowList);
                        dataSheet.CalculateColumnDescription(levels);
                        dataSheet.AddRow(rowList);
                    }

                    dataSheet.RemoveEmptyColumns();
                    dataSheet.RemoveEmptyRows();

                    DataSheets.AddSheet(dataSheet);
                }
            }
            catch (Exception e)
            {
                DataSheets.CopySheetsFrom(alreadyLoadedDataSheets);
                _logger.AddError(e.Message);
                throw new InvalidObservedDataFileException(e.Message);
            }
        }
コード例 #2
0
        protected override void LoadFromFile(string path)
        {
            //we keep a copy of the already loaded sheets, in case the reading fails
            var alreadyLoadedDataSheets = DataSheets.Clone();

            DataSheets.Clear();

            try
            {
                var reader = new ExcelReader(path);

                while (reader.MoveToNextSheet())
                {
                    if (!reader.MoveToNextRow())
                    {
                        continue;
                    }

                    var rawSheetData = new DataSheet
                    {
                        SheetName = reader.CurrentSheet.SheetName
                    };
                    var headers = reader.CurrentRow;

                    for (var j = 0; j < headers.Count; j++)
                    {
                        rawSheetData.AddColumn(headers[j], j);
                    }

                    while (reader.MoveToNextRow())
                    {
                        //the first two could even be done only once
                        var levels = reader.GetMeasurementLevels(headers.Count);
                        rawSheetData.CalculateColumnDescription(levels);
                        rawSheetData.AddRow(reader.CurrentRow);
                    }

                    rawSheetData.RemoveEmptyColumns();
                    rawSheetData.RemoveEmptyRows();

                    DataSheets.AddSheet(rawSheetData);
                }
            }
            catch (Exception ex)
            {
                DataSheets.CopySheetsFrom(alreadyLoadedDataSheets);
                _logger.AddError(ex.Message);
                throw new InvalidObservedDataFileException(ex.Message);
            }
        }
コード例 #3
0
 public override void GlobalContext()
 {
     base.GlobalContext();
     _dataSourceFile = A.Fake <IDataSourceFile>();
     _importer       = A.Fake <IImporter>();
     _view           = A.Fake <IImporterDataView>();
     _dataSheet      = new DataSheet {
         SheetName = "sheet1"
     };
     _dataSheet.AddColumn("test_column", 0);
     _dataSheet.AddRow(new List <string>()
     {
         "1"
     });
     _dataSheet2 = new DataSheet {
         SheetName = "sheet2"
     };
     _dataSheet2.AddColumn("test_column", 0);
     _dataSheet2.AddRow(new List <string>()
     {
         "1"
     });
     _dataSheet3 = new DataSheet {
         SheetName = "sheet3"
     };
     _dataSheet3.AddColumn("test_column", 0);
     _dataSheet3.AddRow(new List <string>()
     {
         "1"
     });
     _sheetsCollection = new DataSheetCollection();
     _sheetsCollection.AddSheet(_dataSheet);
     _sheetsCollection.AddSheet(_dataSheet2);
     _sheetsCollection.AddSheet(_dataSheet3);
     A.CallTo(() => _importer.LoadFile(A <ColumnInfoCache> ._, A <string> ._, A <IReadOnlyList <MetaDataCategory> > ._)).Returns(_dataSourceFile);
     A.CallTo(() => _view.GetActiveFilterCriteria()).Returns("active_filter_criteria");
     A.CallTo(() => _dataSourceFile.DataSheets).Returns(_sheetsCollection);
 }
コード例 #4
0
        protected override void Context()
        {
            _columnInfos = new ColumnInfoCache
            {
                new ColumnInfo()
                {
                    DisplayName = "Time", IsMandatory = true
                },
                new ColumnInfo()
                {
                    DisplayName = "Concentration", IsMandatory = true
                },
                new ColumnInfo()
                {
                    DisplayName = "Error", IsMandatory = false
                }
            };
            _metaDataCategories = new List <MetaDataCategory>()
            {
                new MetaDataCategory()
                {
                    Name = "Organ"
                },
                new MetaDataCategory()
                {
                    Name = "Compartment"
                },
                new MetaDataCategory()
                {
                    Name = "Species"
                },
                new MetaDataCategory()
                {
                    Name = "Dose"
                },
                new MetaDataCategory()
                {
                    Name = "Molecule"
                },
                new MetaDataCategory()
                {
                    Name = "Route"
                }
            };

            sut           = new DataFormatNonmem();
            _headersCache = new Cache <string, ColumnDescription>()
            {
                {
                    "Organ",
                    new ColumnDescription(0, new List <string>()
                    {
                        "PeripheralVenousBlood"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Compartment",
                    new ColumnDescription(1, new List <string>()
                    {
                        "Arterialized"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Species",
                    new ColumnDescription(2, new List <string>()
                    {
                        "Human"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Dose",
                    new ColumnDescription(3, new List <string>()
                    {
                        "75 [g] glucose"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Molecule",
                    new ColumnDescription(4, new List <string>()
                    {
                        "GLP-1_7-36 total", "Glucose", "Insuline", "GIP_total", "Glucagon"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Time",
                    new ColumnDescription(5, null, ColumnDescription.MeasurementLevel.Numeric)
                },
                {
                    "Concentration",
                    new ColumnDescription(6, null, ColumnDescription.MeasurementLevel.Numeric)
                },
                {
                    "Error",
                    new ColumnDescription(7, null, ColumnDescription.MeasurementLevel.Numeric)
                },
                {
                    "Route",
                    new ColumnDescription(8, new List <string>()
                    {
                        "po"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Groupe Id",
                    new ColumnDescription(9, new List <string>()
                    {
                        "H", "T2DM"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Time_unit",
                    new ColumnDescription(10, new List <string>()
                    {
                        "min"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Concentration_unit",
                    new ColumnDescription(11, new List <string>()
                    {
                        "pmol/l"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Error_unit",
                    new ColumnDescription(12, new List <string>()
                    {
                        "pmol/l"
                    }, ColumnDescription.MeasurementLevel.Discrete)
                },
                {
                    "Concentration_lloq",
                    new ColumnDescription(13)
                    {
                        Level = ColumnDescription.MeasurementLevel.Numeric
                    }
                }
            };
            _basicFormat = new TestDataSheet(_headersCache);
            foreach (var molecule in _molecules)
            {
                foreach (var groupId in _groupIds)
                {
                    for (var time = 0; time < 10; time++)
                    {
                        _basicFormat.AddRow(new List <string>()
                        {
                            "PeripheralVenousBlood",
                            "Arterialized",
                            "Human",
                            "75 [g] glucose",
                            molecule,
                            $"time",
                            "0",
                            "0",
                            "po",
                            groupId,
                            "min",
                            "pmol/l",
                            "pmol/l",
                            $"{0.01}"
                        });
                    }
                }
            }
        }