Пример #1
0
        protected override async Task <IActionResult> PrepareAndDisplayPageAsync(bool isBeingSubmitted)
        {
            ContactTracing = Notification.ContactTracing;
            await SetNotificationProperties <ContactTracing>(isBeingSubmitted, ContactTracing);

            return(Page());
        }
Пример #2
0
        public ActionResult DeleteConfirmed(long id)
        {
            ContactTracing contactTracing = db.ContactTracings.Find(id);

            db.ContactTracings.Remove(contactTracing);
            db.SaveChanges();
            return(Json("Delete successful"));
        }
Пример #3
0
 public ActionResult Edit([Bind(Include = "ID,FTE_ID,LocationID,FullName,Email,Contact,Temp,RegisterDateTime,ExitDateTime")] ContactTracing contactTracing)
 {
     if (ModelState.IsValid)
     {
         db.Entry(contactTracing).State = EntityState.Modified;
         db.SaveChanges();
         return(Json("Edit successful"));
     }
     return(Json("Edit unsuccessful"));
 }
Пример #4
0
        public ActionResult Create([Bind(Include = "ID,FTE_ID,LocationID,FullName,Email,Contact,Temp,RegisterDateTime,ExitDateTime")] ContactTracing contactTracing)
        {
            if (ModelState.IsValid)
            {
                contactTracing.ID = db.ContactTracings.OrderByDescending(x => x.ID).Select(x => x.ID).FirstOrDefault() + 1;
                db.ContactTracings.Add(contactTracing);
                db.SaveChanges();
                return(Json("Records saved!"));
            }

            return(Json("Unable to save records!"));
        }
Пример #5
0
        public ActionResult Details(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContactTracing contactTracing = db.ContactTracings.Find(id);

            if (contactTracing == null)
            {
                return(HttpNotFound());
            }
            return(View(contactTracing));
        }
Пример #6
0
 private static ContactTracing CloneContactTracing(ContactTracing original) =>
 new ContactTracing
 {
     AdultsIdentified          = original.AdultsIdentified,
     AdultsScreened            = original.AdultsScreened,
     AdultsActiveTB            = original.AdultsActiveTB,
     AdultsLatentTB            = original.AdultsLatentTB,
     AdultsStartedTreatment    = original.AdultsStartedTreatment,
     AdultsFinishedTreatment   = original.AdultsFinishedTreatment,
     ChildrenIdentified        = original.ChildrenIdentified,
     ChildrenScreened          = original.ChildrenScreened,
     ChildrenActiveTB          = original.ChildrenActiveTB,
     ChildrenLatentTB          = original.ChildrenLatentTB,
     ChildrenStartedTreatment  = original.ChildrenStartedTreatment,
     ChildrenFinishedTreatment = original.ChildrenFinishedTreatment
 };
Пример #7
0
        public async Task ImportValidatorCleansContactTracingValuesBasedOn_ChildrenIdentified(int?valueEntered)
        {
            // Arrange
            var actualNotification = CreateBasicNotification();

            actualNotification.ContactTracing = new ContactTracing
            {
                ChildrenIdentified        = valueEntered,
                ChildrenScreened          = 3,
                ChildrenActiveTB          = 3,
                ChildrenLatentTB          = 3,
                ChildrenStartedTreatment  = 3,
                ChildrenFinishedTreatment = 3,
            };
            var oldContactTracing = CloneContactTracing(actualNotification.ContactTracing);

            var expectedContactTracing = new ContactTracing
            {
                ChildrenIdentified        = valueEntered,
                ChildrenScreened          = null,
                ChildrenActiveTB          = null,
                ChildrenLatentTB          = null,
                ChildrenStartedTreatment  = null,
                ChildrenFinishedTreatment = null,
            };

            // Act
            var validationResults = await _importValidator.CleanAndValidateNotification(null, RunId, actualNotification);

            // Assert
            // Validation errors
            var errorMessages = validationResults.Select(r => r.ErrorMessage).ToList();

            Assert.Empty(errorMessages);

            AssertWarningsGiven(actualNotification, new[]
            {
                ValidationMessages.ContactTracingChildrenScreened,
                ValidationMessages.ContactTracingChildrenActiveTB,
                ValidationMessages.ContactTracingChildrenLatentTB,
                ValidationMessages.ContactTracingChildrenStartedTreatment,
                ValidationMessages.ContactTracingChildrenFinishedTreatment
            });

            AssertContractTracingObjectsMatch(actualNotification.ContactTracing, expectedContactTracing,
                                              oldContactTracing, actualNotification.ClinicalDetails.Notes);
        }
Пример #8
0
        public async Task ImportValidatorCleansContactTracingValues_WhenTooManyOfEachAdultsCaseType()
        {
            // Arrange
            var actualNotification = CreateBasicNotification();

            actualNotification.ContactTracing = new ContactTracing
            {
                AdultsIdentified        = 3,
                AdultsScreened          = 3,
                AdultsActiveTB          = 2,
                AdultsLatentTB          = 2,
                AdultsStartedTreatment  = 1,
                AdultsFinishedTreatment = 1,
            };
            var oldContactTracing = CloneContactTracing(actualNotification.ContactTracing);

            var expectedContactTracing = new ContactTracing
            {
                AdultsIdentified        = 3,
                AdultsScreened          = 3,
                AdultsActiveTB          = null,
                AdultsLatentTB          = null,
                AdultsStartedTreatment  = null,
                AdultsFinishedTreatment = null,
            };

            // Act
            var validationResults = await _importValidator.CleanAndValidateNotification(null, RunId, actualNotification);

            // Assert
            // Validation errors
            var errorMessages = validationResults.Select(r => r.ErrorMessage).ToList();

            Assert.Empty(errorMessages);

            AssertWarningsGiven(actualNotification, new[]
            {
                ValidationMessages.ContactTracingAdultsActiveTB,
                ValidationMessages.ContactTracingAdultsLatentTB,
                ValidationMessages.ContactTracingAdultsStartedTreatment,
                ValidationMessages.ContactTracingAdultsFinishedTreatment,
            });

            AssertContractTracingObjectsMatch(actualNotification.ContactTracing, expectedContactTracing,
                                              oldContactTracing, actualNotification.ClinicalDetails.Notes);
        }
Пример #9
0
        private ContactTracing ExtractContactTracingDetails(MigrationDbNotification rawNotification)
        {
            var details = new ContactTracing();

            details.AdultsIdentified          = rawNotification.AdultsIdentified;
            details.ChildrenIdentified        = rawNotification.ChildrenIdentified;
            details.AdultsScreened            = rawNotification.AdultsScreened;
            details.ChildrenScreened          = rawNotification.ChildrenScreened;
            details.AdultsActiveTB            = rawNotification.AdultsActiveTB;
            details.ChildrenActiveTB          = rawNotification.ChildrenActiveTB;
            details.AdultsLatentTB            = rawNotification.AdultsLatentTB;
            details.ChildrenLatentTB          = rawNotification.ChildrenLatentTB;
            details.AdultsStartedTreatment    = rawNotification.AdultsStartedTreatment;
            details.ChildrenStartedTreatment  = rawNotification.ChildrenStartedTreatment;
            details.AdultsFinishedTreatment   = rawNotification.AdultsFinishedTreatment;
            details.ChildrenFinishedTreatment = rawNotification.ChildrenFinishedTreatment;
            return(details);
        }
Пример #10
0
        private static void AssertContactTracingPropertyMatches(ContactTracing actualContactTracing,
                                                                ContactTracing expectedContactTracing, ContactTracing oldContactTracing, string actualClinicalNotes,
                                                                string propertyName)
        {
            var property = typeof(ContactTracing).GetProperty(propertyName);

            var actualValue   = (int?)property?.GetValue(actualContactTracing);
            var expectedValue = (int?)property?.GetValue(expectedContactTracing);
            var oldValue      = (int?)property?.GetValue(oldContactTracing);

            Assert.Equal(expectedValue, actualValue);
            if (oldValue == expectedValue)
            {
                Assert.DoesNotContain(propertyName, actualClinicalNotes);
            }
            else
            {
                Assert.Contains($"{propertyName}: {oldValue}", actualClinicalNotes);
            }
        }
Пример #11
0
        private static void AssertContractTracingObjectsMatch(ContactTracing actual, ContactTracing expected,
                                                              ContactTracing old, string actualClinicalNotes)
        {
            actualClinicalNotes = actualClinicalNotes ?? "";

            var propertyNames = new[]
            {
                nameof(ContactTracing.AdultsIdentified), nameof(ContactTracing.ChildrenIdentified),
                nameof(ContactTracing.AdultsScreened), nameof(ContactTracing.ChildrenScreened),
                nameof(ContactTracing.AdultsActiveTB), nameof(ContactTracing.ChildrenActiveTB),
                nameof(ContactTracing.AdultsLatentTB), nameof(ContactTracing.ChildrenLatentTB),
                nameof(ContactTracing.AdultsStartedTreatment), nameof(ContactTracing.ChildrenStartedTreatment),
                nameof(ContactTracing.AdultsFinishedTreatment), nameof(ContactTracing.ChildrenFinishedTreatment)
            };

            foreach (var propertyName in propertyNames)
            {
                AssertContactTracingPropertyMatches(actual, expected, old, actualClinicalNotes, propertyName);
            }
        }
Пример #12
0
 public ContentResult OnPostValidateContactTracing([FromBody] ContactTracing model)
 {
     return(ValidationService.GetFullModelValidationResult(model));
 }
 public ContentResult OnGetValidateContactTracing(ContactTracing model, string key)
 {
     return(ValidationService.GetFullModelValidationResult(model));
 }
Пример #14
0
        public async Task UpdateContactTracingAsync(Notification notification, ContactTracing contactTracing)
        {
            _context.SetValues(notification.ContactTracing, contactTracing);

            await _notificationRepository.SaveChangesAsync();
        }