private static bool MeningococciFound(MeningoSending sending) { var isolateInterpretation = new MeningoIsolateInterpretation(); isolateInterpretation.Interpret(sending.Isolate); var meningococciFound = isolateInterpretation.NoMeningococci == false; return(meningococciFound); }
public ActionResult Index() { var tempFile = Path.GetTempFileName(); var samplingLocations = new List <MeningoSamplingLocation> { MeningoSamplingLocation.Blood, MeningoSamplingLocation.Liquor }; var sendings = _db.MeningoSendings.Include(s => s.Patient) .Where(s => !s.Deleted && samplingLocations.Contains(s.SamplingLocation) && (s.SamplingDate == null && s.ReceivingDate >= new DateTime(2019, 10, 01) || s.SamplingDate > new DateTime(2019, 10, 01))) .OrderBy(s => s.MeningoPatientId).ToList(); var patientLines = new Dictionary <int, string>(); foreach (var sending in sendings) { var interpretation = new MeningoIsolateInterpretation(); interpretation.Interpret(sending.Isolate); var serogroup = interpretation.Serogroup; if (string.IsNullOrEmpty(serogroup) || serogroup is "NG" or "cnl") { continue; } var coordinate = _geonamesService.QueryCoordinateByPostalCode(sending.Patient.PostalCode, sending.Patient.City); if (coordinate == null) { continue; } var patientId = sending.MeningoPatientId; FormattableString line = $"{patientId};{sending.ReceivingDate.ToReportFormat()};{sending.SamplingDate.ToReportFormat(string.Empty)};{interpretation.Serogroup};{sending.Isolate.PorAVr1};{sending.Isolate.PorAVr2};{sending.Isolate.FetAVr};{sending.Isolate.PatientAgeAtSampling()};{coordinate?.Latitude};{coordinate?.Longitude}"; var newLine = line.ToString(CultureInfo.InvariantCulture); if (!patientLines.ContainsKey(patientId) || patientLines[patientId].Length < newLine.Length) { patientLines[patientId] = newLine; } } System.IO.File.WriteAllLines(tempFile, patientLines.Values); var result = File(System.IO.File.ReadAllBytes(tempFile), "text/csv", $"EpiscanGis_Export_{DateTime.Now:yyyyMMdd}.csv"); System.IO.File.Delete(tempFile); return(result); }
public void Process(MeningoIsolate source, MeningoIsolateViewModel destination) { var sending = source.Sending; ParseAndMapLaboratoryNumber(source, destination); destination.SamplingLocation = sending.SamplingLocation == MeningoSamplingLocation.OtherInvasive ? sending.OtherInvasiveSamplingLocation : sending.SamplingLocation == MeningoSamplingLocation.OtherNonInvasive ? sending.OtherNonInvasiveSamplingLocation : EnumEditor.GetEnumDescription(sending.SamplingLocation); destination.Material = EnumEditor.GetEnumDescription(sending.Material); destination.Invasive = EnumEditor.GetEnumDescription(sending.Invasive); destination.PatientAgeAtSampling = source.PatientAgeAtSampling(); destination.EpsilometerTestViewModels = EpsilometerTestsModelToViewModel(source.EpsilometerTests); //Report fields destination.SamplingDate = source.Sending.SamplingDate.ToReportFormat(); destination.ReceivingDate = source.Sending.ReceivingDate.ToReportFormat(); destination.PatientId = source.Sending.Patient.PatientId; destination.Patient = source.Sending.Patient.ToReportFormat(); destination.PatientBirthDate = source.Sending.Patient.BirthDate.ToReportFormat(); destination.PatientPostalCode = source.Sending.Patient.PostalCode; destination.SenderLaboratoryNumber = source.Sending.SenderLaboratoryNumber; //destination.EvaluationString = source.Evaluation.ToReportFormat(); var isolateInterpretation = new MeningoIsolateInterpretation(); isolateInterpretation.Interpret(source); destination.Report = isolateInterpretation.Result.Report; destination.Typings = isolateInterpretation.Typings; destination.Comment = isolateInterpretation.Result.Comment; var sender = db.Senders.Find(source.Sending.SenderId); if (sender != null) // special case for Meningo as old senders were not imported { destination.SenderName = sender.Name; destination.SenderStreet = sender.StreetWithNumber; destination.SenderCity = $"{sender.PostalCode} {sender.City}"; } }