public IEnumerable <object> Get() { logData.Info("Get Assay Function is called"); // getting back the assaytypes from the database table( AssayTypes) using (var repo = new AssayRepository()) { try { List <DisplayClass> objectAssay = new List <DisplayClass>(); var assaynamesobj = repo.GetAssay(); foreach (var assaytype in assaynamesobj) { DisplayClass ds = new DisplayClass(); ds.Id = assaytype.ID; ds.TypeId = assaytype.TypeId; ds.AssayName = assaytype.AssayName; objectAssay.Add(ds); } logData.Info("Get Assay Function is finished"); return(objectAssay); } catch (SqlException odbcEx) { Console.WriteLine(odbcEx.Message); logData.Error(odbcEx.Message); return(null); } } }
public CurveFile Transform(string jsonMessages, string AssayName) { var delim = new[] { '"' }; jsonMessages = Regex.Unescape(jsonMessages); jsonMessages = jsonMessages.TrimEnd(delim).TrimStart(delim); AssayName = Regex.Unescape(AssayName); AssayName = AssayName.TrimEnd(delim).TrimStart(delim); dynamic data = JObject.Parse(jsonMessages); long AssayDBID = 0; using (var repo = new AssayRepository()) { AssayDBID = repo.GetAssayID(AssayName); } CurveFile toReturn = JsonConvert.DeserializeObject <CurveFile>(jsonMessages); toReturn.AssayDBID = AssayDBID; //Extract extension from file name ExtractExtensionService helper = new ExtractExtensionService(); string[] fullFileName = new string[2]; fullFileName = helper.ExtractExt(toReturn); return(toReturn); }
public AssayController(AssayRepository repository, PurchaseRepository pu_repository, IHubContext <PrintHub> hub, IOptionsSnapshot <WorkOption> option, IHostingEnvironment env) { r = repository; pu_r = pu_repository; _hub = hub; _hostingEnvironment = env; this.option = option.Value; }
// POST: api/HashValues public IEnumerable <int> Post() { List <int> exists = new List <int>(); List <string> hashedValues = new List <string>(); for (var i = 0; i < HttpContext.Current.Request.Files.Count; i++) { List <string> hashValues = new List <string>(); HttpPostedFile file = HttpContext.Current.Request.Files.Get(i); string filename = file.FileName; Debug.WriteLine(file); Debug.WriteLine(filename); using (var repo = new AssayRepository()) { try { var fileStream = file.InputStream; SHA1Managed sha = new SHA1Managed(); byte[] checksum = sha.ComputeHash(fileStream); string sendCheckSum = BitConverter.ToString(checksum) .Replace("-", string.Empty); var hashValuesObj = repo.GetReport(); foreach (var hashtype in hashValuesObj) { hashedValues.Add(hashtype.HashValue); } Debug.WriteLine(hashedValues); if (hashedValues.Contains(sendCheckSum)) { exists.Add(1); } else { exists.Add(0); } Debug.WriteLine(exists); // return exists; } catch (Exception e) { Console.WriteLine(e.Message); logData.Error(e.Message); return(null); } } // return exists; } return(exists); }
public string GetAssayInDB() { IEnumerable <long> container = null; List <AssayType> assayContainer = new List <AssayType>(); List <AssayType> toReturn = new List <AssayType>(); using (var repo = new CurveFilesRepository()) { container = repo.GetUniqueTypeID(); } var assayRepo = new AssayRepository(); foreach (var item in container) { assayContainer.Add(assayRepo.GetAssayUsingTypeID(item)); } return(JsonConvert.SerializeObject(assayContainer)); }
public string Get() { log.Info("getAssay method is called"); IEnumerable <AssayType> container = null; var toReturn = new List <AssayCount>(); var repo = new AssayRepository(); var curveRepo = new CurveFilesRepository(); container = repo.GetAssay(); foreach (var item in container) { toReturn.Add(new AssayCount { assay = item, fileCount = curveRepo.GetCountOfCurve(item.TypeId) }); } log.Info("getAssay method is finished"); return(JsonConvert.SerializeObject(toReturn)); }
// GET: api/AssayNamesReportFile public IEnumerable <object> Get() { logData.Info("Get Assay Name from Report File Function is called"); // getting assay id from the database table( ReportFile) using (var repo = new AssayRepository()) { try { List <DisplayClass> objectAssay = new List <DisplayClass>(); List <long> ids = new List <long>(); List <long> typeId = new List <long>(); List <string> assayNames = new List <string>(); var assayobject = repo.GetAssayNameFromReportFile(); foreach (var assayName in assayobject) { DisplayClass ds = new DisplayClass(); ids.Add(assayName.AssayTypeId); ds.Id = assayName.AssayTypeId; } //Using the assayId getting back the assay names foreach (var assayid in ids) { DisplayClass ds = new DisplayClass(); ds.AssayName = repo.GetAssayName(assayid); ds.TypeId = repo.GetTypeIdWithID(assayid); objectAssay.Add(ds); } return(objectAssay); } catch (SqlException odbcEx) { Console.WriteLine(odbcEx.Message); logData.Error(odbcEx.Message); return(null); } } }
public string Get(Boolean IsGolden, string Tag, string AssayVersion, string SoftwareVersion, int AssayID) { long AssayDBID; string AssayName = ""; //Assay name is specified if (AssayID != -1) { using (var repo = new AssayRepository()) { AssayDBID = repo.GetTypeIdWithID(AssayID); AssayName = repo.GetAssayName(AssayID); } } else { AssayDBID = -1; } var files = new List <Pair>(); if (Tag == "undefined") { Tag = ""; } if (AssayVersion == "undefined") { AssayVersion = ""; } if (SoftwareVersion == "undefined") { SoftwareVersion = ""; } using (var repo = new CurveFilesRepository()) { var tempContainer = repo.GetSpecifiedFile(IsGolden, Tag, AssayVersion, SoftwareVersion, AssayDBID); if (tempContainer.Count <CurveFile>() == 0) { return(JsonConvert.SerializeObject("No Matching Curve File Found")); } else { var service = new CurveDataPointService(); var assayRepo = new AssayRepository(); foreach (var temp in tempContainer) { var container = service.getCurveData(temp.Data, temp.FullFileName); if (AssayDBID == -1) { AssayName = assayRepo.GetAssayNameUsingTypeID(temp.AssayDBID); } files.Add(new Pair { AssayName = AssayName, curveFile = temp, data = container.dataSet, FileType = container.FileType }); } } } return(JsonConvert.SerializeObject(files)); }
// POST: api/ExtractAssayName public IEnumerable <string> Post() { /* lock (ControllerSync) * { */ List <string> assayNames = new List <string>(); for (var i = 0; i < HttpContext.Current.Request.Files.Count; i++) { int flag = 0; logData.Info("Get all files from the staged area to extract assayname"); HttpPostedFile file = HttpContext.Current.Request.Files.Get(i); string filename = file.FileName; var tempPathToStore = Path.GetTempPath(); tempPathToStore += "assaynames"; System.IO.Directory.CreateDirectory(tempPathToStore); //save the file in temp folder file.SaveAs(tempPathToStore + file.FileName); //getting the path of stored file var tempStoredPath = tempPathToStore + file.FileName; var tempfilename = filename.Replace(".pdf", ".txt"); string pathToText = System.IO.Path.Combine(tempPathToStore, tempfilename); //Convert PDF file to Text file SautinSoft.PdfFocus f = new SautinSoft.PdfFocus(); f.OpenPdf(tempStoredPath); if (f.PageCount > 0) { int count = 0; try { string line; //getting assaynames from database var repo = new AssayRepository(); List <string> assaylist1 = new List <string>(); //string[] assayFromDb; var assaynamesobj = repo.GetAssay(); foreach (var assaytype in assaynamesobj) { string assayname = assaytype.AssayShortName; assaylist1.Add(assayname); } string[] assaylistFromDB = assaylist1.ToArray(); foreach (var ind in assaylistFromDB) { Debug.WriteLine(ind); } //string[] assaylist1 = { "AC2", "AC2 250 (1)", "AdV/hMPV/RV", "Babesia", "C. diff", "CT", "CT 250", "DENV", "dHBV", "dHCV", "dHIV", "DNA60", "Flu A/B/RSV", "GBS", "GC", "GC 250 (6)", "GT HPV", "HEV", "HPV", "HPV 250 (14)", "HSV 1&2", "LDT RT TMA-1", "LDT RT TMA-2", "LDT RT TMA-3", "LDT TMA-1", "LDT TMA-2", "LDT TMA-3", "LDT1", "M gen", "MRSA", "OADNA55", "OADNA58", "OADNA62", "OADNA65", "Paraflu", "Parvo/HAV", "PSA 100", "QCDNAIC", "QCFluPPR", "QCRNAIC", "qHBV", "qHCV", "qHIV-1", "RNA60", "RNA60-10uL", "TRICH", "TRICH 250 (10)", "Ultrio Elite", "WNV", "ZIKV", "ZIKV (51)" }; string[] assaylist2 = { "AC2 100 (21)", "AC2 250 (1)", "AdV/hMPV/RV (102)", "Babesia (50)", "C. diff (108)", "CT 100 (22)", "CT 250 (5)", "DENV (36)", "dHBV (97)", "dHCV (98)", "dHIV (99)", "DNA60 (1507)", "Flu A/B/RSV (101)", "GBS (106)", "GC 100 (23)", "GC 250 (6)", "GT HPV (20)", "HEV (39)", "HPV 100 (24)", "HPV 250 (14)", "HSV 1&2 (40)", "LDT RT TMA-1 (90)", "LDT RT TMA-2 (91)", "LDT RT TMA-3 (92)", "LDT TMA-1 (95)", "LDT TMA-2 (88)", "LDT TMA-3 (89)", "LDT1 (1001)", "M gen (43)", "MRSA (107)", "OADNA55 (1505)", "OADNA58 (1506)", "OADNA62 (1508)", "OADNA65 (1509)", "Paraflu (103)", "Parvo/HAV (29)", "PSA 100 (31)", "QCDNAIC (1501)", "QCFluPPR (1503)", "QCRNAIC (1502)", "qHBV (34)", "qHCV (32)", "qHIV-1 (28)", "RNA60 (1510)", "RNA60-10uL (1512)", "TRICH 100 (9)", "TRICH 250 (10)", "Ultrio Elite (25)", "WNV (4)", "ZIKV (52)", "ZIKV (51)" }; int result = f.ToText(pathToText); if (result == 0) { var lineCount = File.ReadLines(pathToText).Count(); Debug.WriteLine(lineCount); FileStream inFile = new FileStream(pathToText, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); using (StreamReader sr = new StreamReader(inFile)) { while ((line = sr.ReadLine()) != null) { count++; foreach (string word in assaylist1) { if (line.Contains(word)) { var indexOfAssay = Array.IndexOf(assaylistFromDB, word); var assayNameExtracted = assaylist2[indexOfAssay]; assayNames.Add(assayNameExtracted); flag = 1; break; } } if (flag == 1) { break; } } Debug.WriteLine(count); if (count == lineCount) { var assayNameExtracted = "Choose AssayName"; assayNames.Add(assayNameExtracted); } } if (assayNames[i] == "") { assayNames.Add("Choose AssayName"); } } logData.Info("Returning the assay name"); } catch (Exception e) { logData.Error(e.Message); } f.ClosePdf(); } else { assayNames.Add("Choose AssayName"); } } return(assayNames); // } }
public string getAssayFromFile(Byte[] byteFile, string fileName) { var delim = new[] { '"' }; fileName = Regex.Unescape(fileName); fileName = fileName.TrimEnd(delim).TrimStart(delim); var tempPath = Path.GetTempPath(); var tempPathFile = Path.Combine(tempPath, fileName); File.WriteAllBytes(tempPathFile, byteFile); var repo = new AssayRepository(); var typeID = ""; using (var streamReader = new StreamReader(tempPathFile)) { var firstLine = streamReader.ReadLine(); var secondLine = streamReader.ReadLine(); if (firstLine == null || secondLine == null) { return("Invalid"); } var lowerFirstLine = firstLine.ToLower(); string[] seperatedValueFirst = lowerFirstLine.Split(','); if (lowerFirstLine.Contains("sampleid") && (lowerFirstLine.Contains("testorderid") || lowerFirstLine.Contains("testorder id"))) { //RPTool files if (seperatedValueFirst.Length == 9) { List <string> firstColHolder = new List <string>(); var newStream = new StreamReader(tempPathFile); while (!newStream.EndOfStream) { var newLine = newStream.ReadLine(); String[] seperatedVal = newLine.Split(','); firstColHolder.Add(seperatedVal[0]); } //check the string with number for (var index = 0; index < firstColHolder.Count; index++) { var charArr = firstColHolder[index].ToCharArray(); if (Char.IsNumber(charArr[0])) { typeID = charArr[0].ToString(); typeID = typeID.Insert(1, charArr[1].ToString()); var toReturn = repo.GetAssayNameUsingTypeID(Int32.Parse(typeID)); return(toReturn); } } } //TCycle and some versions of .curve if (lowerFirstLine.Contains("cyclenum")) { String[] seperatedValue = secondLine.Split(','); //TCYC if (seperatedValue.Length != 15) { typeID = seperatedValue[7]; } //.Curve else { typeID = seperatedValue[6]; } var toReturn = repo.GetAssayNameUsingTypeID(Int32.Parse(typeID)); //If assay are outdated if (toReturn == "") { return("Invalid-Outdated"); } return(toReturn); } //Fluorescence curve else if (lowerFirstLine.Contains("rtf")) { String[] seperatedValue = secondLine.Split(';'); var Assay = seperatedValue[2]; String[] assayNumber = seperatedValue[2].Split(','); var AssayDBID = assayNumber[0]; var toReturn = repo.GetAssayNameUsingTypeID(Int32.Parse(AssayDBID)); //If assay are outdated if (toReturn == "") { return("Invalid-Outdated"); } return(toReturn); } } //validates FLUO.csv file else if (seperatedValueFirst.Length == 19) { var typeIDStr = seperatedValueFirst[8]; var toReturn = repo.GetAssayNameUsingTypeID(Int32.Parse(typeIDStr)); //If assay are outdated if (toReturn == "") { return("Invalid-Outdated"); } return(toReturn); } //validates LUMI.csv file else { var typeIDStr = ""; if (seperatedValueFirst.Length > 5) { if (seperatedValueFirst[5] != null) { var numOfDataPts = seperatedValueFirst[5]; typeIDStr = seperatedValueFirst[Int32.Parse(numOfDataPts) + 8]; } else { return("Invalid"); } var toReturn = repo.GetAssayNameUsingTypeID(Int32.Parse(typeIDStr)); //If assay are outdated if (toReturn == "") { return("Invalid-Outdated"); } return(toReturn); } } } return("Invalid"); }
public PairResponse ValidateFile(Byte [] byteFile, string fileName, string AssayName) { var delim = new[] { '"' }; AssayName = Regex.Unescape(AssayName); AssayName = AssayName.TrimEnd(delim).TrimStart(delim); var tempPath = Path.GetTempPath(); var tempPathFile = Path.Combine(tempPath, fileName); File.WriteAllBytes(tempPathFile, byteFile); using (var streamReader = new StreamReader(tempPathFile)) { var firstLine = streamReader.ReadLine(); var secondLine = streamReader.ReadLine(); var lowerFirstLine = firstLine.ToLower(); string lowerSecondLine = ""; if (secondLine != null) { lowerSecondLine = secondLine.ToLower(); } else { return(new PairResponse { Indicator = false, message = "^Curve File has no content" }); } long TypeId; //parse String[] seperatedValue = firstLine.Split(','); //validates TCYC, .curve, LUMI.RPTool, FLUO.RPTool if (lowerFirstLine.Contains("sampleid") && (lowerFirstLine.Contains("testorderid") || lowerFirstLine.Contains("testorder id"))) { using (var repo = new AssayRepository()) { TypeId = repo.GetAssayTypeId(AssayName); } //RPTool files if (seperatedValue.Length == 9) { List <string> firstColHolder = new List <string>(); var newStream = new StreamReader(tempPathFile); while (!newStream.EndOfStream) { var newLine = newStream.ReadLine(); String[] seperatedVal = newLine.Split(','); firstColHolder.Add(seperatedVal[0]); } //check the string with number for (var index = 0; index < firstColHolder.Count; index++) { var charArr = firstColHolder[index].ToCharArray(); if (Char.IsNumber(charArr[0])) { //TODO get index 0 and 1 and combine them string typeID = charArr[0].ToString(); typeID = typeID.Insert(1, charArr[1].ToString()); return(new PairResponse { Indicator = true, message = "" }); } } return(new PairResponse { Indicator = false, message = "^Curve does not match Assay type" }); } //TCycle curve if (lowerFirstLine.Contains("cyclenum")) { if (TypeId > 99) { if (lowerSecondLine.Contains(AssayName.ToLower()) && lowerSecondLine != null) { return(new PairResponse { Indicator = true, message = "" }); } } return(new PairResponse { Indicator = false, message = "^Curve does not match Assay type" }); //Fluorescence curve } else if (lowerFirstLine.Contains("rtf")) { if (TypeId < 100 && lowerSecondLine != null) { return(new PairResponse { Indicator = true, message = "" }); } else { return(new PairResponse { Indicator = false, message = "^Curve does not match Assay type" }); } } //Else else if (lowerFirstLine.Contains("rfu")) { if (TypeId < 100 && lowerSecondLine != null) { return(new PairResponse { Indicator = true, message = "" }); } else { return(new PairResponse { Indicator = false, message = "^Curve does not match Assay type" }); } } } //validates FLUO.csv file else if (seperatedValue.Length == 19) { //TODO validate if mapped correctly var typeIDStr = seperatedValue[8]; return(new PairResponse { Indicator = true, message = "" }); } //validates LUMI.csv file else { var typeIDStr = ""; if (seperatedValue.Length > 5) { if (seperatedValue[5] != null) { var numOfDataPts = seperatedValue[5]; typeIDStr = seperatedValue[Int32.Parse(numOfDataPts) + 8]; return(new PairResponse { Indicator = true, message = "" }); } else { return(new PairResponse { Indicator = false, message = "^Invalid Curve File" }); } } } } return(new PairResponse { Indicator = false, message = "^Invalid Curve File" }); }