public IActionResult Create(int patientId, PatientImmunoglobulin patientIg) { var patient = _context.Patients.Where(p => p.ID == patientId).SingleOrDefault(); if (patient == null) { return(NotFound()); } patientIg.PatientId = patient.ID; if (ModelState.IsValid) { _context.Add(patientIg); _context.SaveChanges(); } else { Hashtable errors = ModelStateHelper.Errors(ModelState); return(StatusCode(422, Json(new { success = false, errors }))); } var igs = _context.PatientImmunoglobulins. Include(pi => pi.ImmunoglobulinType). Where(pm => pm.PatientId == patientId). OrderByDescending(pm => pm.DateTaken). ToList(); ViewBag.SelectedIg = new List <int>(); return(PartialView(igs)); }
private void ParseAndSaveLines(List <string> matched) { var patient = _context.Patients.Where(p => p.RM2Number.Contains(_id)) .Include(p => p.PatientImmunoglobulines) .ThenInclude(p => p.ImmunoglobulinType) .FirstOrDefault(); var igType = _context.ImmunoglobulinTypes .Where(it => it.Name == "Total IgE") .FirstOrDefault(); var existingDates = patient.PatientImmunoglobulines .Where(ig => ig.ImmunoglobulinTypeId == igType.ID) .Select(pi => pi.DateTaken.Date) .ToList(); foreach (string line in matched) { var dataArray = line.Split(" "); string range = ""; string dateString = dataArray.Take(3).ToList().Join(" "); string igeValue = dataArray[5].Replace("*", String.Empty) .Replace("<", String.Empty) .Replace(">", String.Empty); string sampleId = dataArray[4]; if (dataArray.Length > 6) { range = dataArray[6] + dataArray[7] + dataArray[8]; } else { range = "(" + Regex.Match(_lines[11], @"\(([^)]*)\)").Groups[1].Value + ")"; Console.WriteLine(dataArray); } DateTime parsedDate; DateTime.TryParseExact(dateString, "dd MMM yyyy", null, System.Globalization.DateTimeStyles.None, out parsedDate); if (existingDates.FindAll(d => d.Date == parsedDate.Date).ToList().Count == 0) { var totalIgE = new PatientImmunoglobulin(); totalIgE.ImmunoglobulinType = igType; totalIgE.SampleId = sampleId; totalIgE.Range = range; totalIgE.PatientId = patient.ID; totalIgE.Value = decimal.Parse(igeValue); totalIgE.DateTaken = parsedDate; _context.PatientImmunoglobulins.Add(totalIgE); Imported.Add(totalIgE); } } }
private void ParseAndSaveLines(List <string> matched) { var patient = _context.Patients.Where(p => p.RM2Number.Contains(_id)) .Include(p => p.PatientImmunoglobulines) .ThenInclude(p => p.ImmunoglobulinType) .FirstOrDefault(); var igType = _context.ImmunoglobulinTypes .Where(it => it.Name == "Aspergillus F IgG") .FirstOrDefault(); var existingDates = patient.PatientImmunoglobulines .Where(pi => pi.ImmunoglobulinTypeId == igType.ID) .Select(pi => pi.DateTaken.Date) .ToList(); foreach (string line in matched) { var dataArray = line.Split(" "); string dateString = dataArray.Take(3).ToList().Join(" "); string igGValue = dataArray[5].Replace("*", String.Empty) .Replace("<", String.Empty) .Replace(">", String.Empty); DateTime parsedDate; DateTime.TryParseExact(dateString, "dd MMM yyyy", null, System.Globalization.DateTimeStyles.None, out parsedDate); if (existingDates.FindAll(d => d.Date == parsedDate.Date).ToList().Count == 0) { var patientIGg = new PatientImmunoglobulin(); patientIGg.ImmunoglobulinType = igType; patientIGg.PatientId = patient.ID; patientIGg.Value = decimal.Parse(igGValue); patientIGg.DateTaken = parsedDate; _context.PatientImmunoglobulins.Add(patientIGg); Imported.Add(patientIGg); } } }
public async Task <IActionResult> Ig() { var allPatients = _context.Patients .Include(p => p.PatientImmunoglobulines); //var uom = _context.UnitOfMeasurements.Where(u => u.Name == "mg/L").FirstOrDefault(); foreach (var code in PatientImmunoglobulin.Codes().Keys) { var igType = _context.ImmunoglobulinTypes .Where(it => it.Name == PatientImmunoglobulin.IgFromCode(code)) .FirstOrDefault(); foreach (var patient in allPatients) { var igLevels = _externalImportDbContext.PathologyReports .Where(r => r.OrderItemCode.Equals(code) && r.RM2Number == "RM2" + patient.RM2Number); if (!igLevels.Any()) { continue; } var existingDates = patient.PatientImmunoglobulines .Where(pi => pi.ImmunoglobulinTypeId == igType.ID) .Select(pi => pi.DateTaken.Date) .ToList(); foreach (var iggLevel in igLevels) { if (existingDates.FindAll(d => d.Date == iggLevel.DatePerformed.Date).ToList().Count == 0) { if (iggLevel.Result == null) { continue; } var patientIgG = new PatientImmunoglobulin(); patientIgG.PatientId = patient.ID; patientIgG.DateTaken = iggLevel.DatePerformed; patientIgG.ImmunoglobulinTypeId = igType.ID; patientIgG.SourceSystemGUID = iggLevel.ObservationGUID; patientIgG.CreatedDate = DateTime.Now; try { patientIgG.Value = Decimal.Parse(iggLevel.Result .Replace("<", String.Empty) .Replace("*", String.Empty) .Replace(">", String.Empty)); } catch (System.FormatException e) { Console.WriteLine("VALUE::::::::::::" + iggLevel.Result); continue; } patientIgG.Range = iggLevel.NormalRange; await _context.PatientImmunoglobulins.AddAsync(patientIgG); } } } } await _context.SaveChangesAsync(); return(Ok()); }
public override Task ProcessInScope(IServiceProvider serviceProvider) { using (IServiceScope scope = _serviceProvider.CreateScope()) { var context = scope.ServiceProvider.GetRequiredService <AspergillosisContext>(); var externalContext = scope.ServiceProvider.GetRequiredService <ExternalImportDbContext>(); var allPatients = context.Patients.Include(p => p.PatientImmunoglobulines); //var uom = _context.UnitOfMeasurements.Where(u => u.Name == "mg/L").FirstOrDefault(); foreach (var code in PatientImmunoglobulin.Codes().Keys) { var igType = context.ImmunoglobulinTypes.Where(it => it.Name == PatientImmunoglobulin.IgFromCode(code)) .FirstOrDefault(); foreach (var patient in allPatients) { var igLevels = externalContext.PathologyReports.Where(r => r.OrderItemCode.Equals(code) && r.RM2Number == "RM2" + patient.RM2Number); if (!igLevels.Any()) { continue; } var existingDates = patient.PatientImmunoglobulines .Where(pi => pi.ImmunoglobulinTypeId == igType.ID) .Select(pi => pi.DateTaken.Date) .ToList(); foreach (var iggLevel in igLevels) { if (existingDates.FindAll(d => d.Date == iggLevel.DatePerformed.Date).ToList().Count == 0) { if (iggLevel.Result == null) { continue; } var patientIgG = new PatientImmunoglobulin(); patientIgG.PatientId = patient.ID; patientIgG.DateTaken = iggLevel.DatePerformed; patientIgG.ImmunoglobulinTypeId = igType.ID; patientIgG.SourceSystemGUID = iggLevel.ObservationGUID; patientIgG.CreatedDate = DateTime.Now; try { patientIgG.Value = Decimal.Parse(iggLevel.Result .Replace("<", String.Empty) .Replace("*", String.Empty) .Replace(">", String.Empty)); } catch (System.FormatException e) { Console.WriteLine("IG VALUE ERROR::::::::::::" + iggLevel.Result); continue; } patientIgG.Range = iggLevel.NormalRange; context.PatientImmunoglobulins.Add(patientIgG); } } } } context.SaveChanges(); } return(Task.CompletedTask); }