コード例 #1
0
        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.PatientRadiologyNotes);

                foreach (var radiology in context.RadiologyTypes)
                {
                    foreach (var patient in allPatients)
                    {
                        var results = externalContext.RadiologyReports
                                      .Where(r => r.OrderItemCode.Equals(radiology.Name) &&
                                             r.RM2Number == "RM2" + patient.RM2Number);
                        if (!results.Any())
                        {
                            continue;
                        }
                        var existingDates = patient.PatientRadiologyNotes
                                            .Where(pi => pi.RadiologyTypeId == radiology.ID)
                                            .Select(pi => pi.DateTaken.Date)
                                            .ToList();

                        foreach (var result in results)
                        {
                            if (existingDates.FindAll(d => d.Date == result.DatePerformed.Date).ToList().Count == 0)
                            {
                                var patientRadiologyNote = new PatientRadiologyNote();
                                patientRadiologyNote.PatientId        = patient.ID;
                                patientRadiologyNote.DateTaken        = result.DatePerformed;
                                patientRadiologyNote.RadiologyTypeId  = radiology.ID;
                                patientRadiologyNote.SourceSystemGUID = result.OrderGUID;
                                patientRadiologyNote.Note             = result.Report;
                                patientRadiologyNote.CreatedDate      = DateTime.Now;
                                context.PatientRadiologyNotes.Add(patientRadiologyNote);
                            }
                        }
                    }
                }
                context.SaveChanges();
                return(Task.CompletedTask);
            }
        }
コード例 #2
0
        public async Task <IActionResult> Radiology()
        {
            var allPatients = _context.Patients
                              .Include(p => p.PatientRadiologyNotes);

            foreach (var radiology in _context.RadiologyTypes)
            {
                foreach (var patient in allPatients)
                {
                    var results = _externalImportDbContext.RadiologyReports
                                  .Where(r => r.OrderItemCode.Equals(radiology.Name) &&
                                         r.RM2Number == "RM2" + patient.RM2Number);
                    if (!results.Any())
                    {
                        continue;
                    }
                    var existingDates = patient.PatientRadiologyNotes
                                        .Where(pi => pi.RadiologyTypeId == radiology.ID)
                                        .Select(pi => pi.DateTaken.Date)
                                        .ToList();

                    foreach (var result in results)
                    {
                        if (existingDates.FindAll(d => d.Date == result.DatePerformed.Date).ToList().Count == 0)
                        {
                            var patientRadiologyNote = new PatientRadiologyNote();
                            patientRadiologyNote.PatientId        = patient.ID;
                            patientRadiologyNote.DateTaken        = result.DatePerformed;
                            patientRadiologyNote.RadiologyTypeId  = radiology.ID;
                            patientRadiologyNote.SourceSystemGUID = result.OrderGUID;
                            patientRadiologyNote.Note             = result.Report;
                            patientRadiologyNote.CreatedDate      = DateTime.Now;
                            await _context.PatientRadiologyNotes.AddAsync(patientRadiologyNote);
                        }
                    }
                }
            }
            await _context.SaveChangesAsync();

            return(Ok());
        }