public async Task MigrationTreatmentEventWithCustomNoteMappedToWithoutBoilerplateParts()
        {
            // Arrange
            GivenLegacyUserWithName("*****@*****.**", "Miles", "Davis");
            var migrationTransferEvent = new MigrationDbTransferEvent
            {
                EventDate          = DateTime.Parse("12/12/2012"),
                CaseManager        = "*****@*****.**",
                HospitalId         = new Guid("B8AA918D-233F-4C41-B9AE-BE8A8DC8BE7B"),
                TreatmentEventType = "TransferIn",
                Notes = "Dear Mrs Lucy Carmen-Minoe, \n You have been identified as the new case manager for the case below. This patient was moved from XYX hospital in London. This is very important information.\n"
                        + "Id: 134222 \n\n Patient: Harry Swingset  Case report date: 11/11/2009 \n Also they are allergic to mung beans"
            };

            // Act
            var mappedEvent = await _treatmentEventMapper.AsTransferEvent(migrationTransferEvent, null, 1);

            // Assert
            Assert.Equal(DateTime.Parse("12/12/2012"), mappedEvent.EventDate);
            Assert.Equal(TreatmentEventType.TransferIn, mappedEvent.TreatmentEventType);
            Assert.Contains("This patient was moved from XYX hospital in London. This is very important information.", mappedEvent.Note);
            Assert.Contains("Also they are allergic to mung beans", mappedEvent.Note);
            Assert.DoesNotContain("Id: 134222", mappedEvent.Note);
            Assert.DoesNotContain("Dear Mrs Lucy Carmen-Minoe", mappedEvent.Note);
            Assert.DoesNotContain("You have been identified as the new case manager for the case below.", mappedEvent.Note);
        }
        private async Task <TreatmentEvent> AsTransferEvent(MigrationDbTransferEvent rawEvent)
        {
            var ev = new TreatmentEvent();

            ev.EventDate           = rawEvent.EventDate;
            ev.TreatmentEventType  = Converter.GetEnumValue <TreatmentEventType>(rawEvent.TreatmentEventType);
            ev.CaseManagerUsername = rawEvent.CaseManager;

            // ReSharper disable once InvertIf
            if (rawEvent.HospitalId is Guid guid)
            {
                var tbService = (await _referenceDataRepository.GetTbServiceFromHospitalIdAsync(guid));
                if (tbService == null)
                {
                    Log.Warning(
                        $"No TB service exists for hospital with guid {guid} - treatment event recorded without a service");
                }
                else
                {
                    ev.TbServiceCode = tbService.Code;
                }
            }

            return(ev);
        }
示例#3
0
        public async Task <TreatmentEvent> AsTransferEvent(MigrationDbTransferEvent rawEvent, PerformContext context, int runId)
        {
            var ev = new TreatmentEvent
            {
                EventDate          = rawEvent.EventDate,
                TreatmentEventType = Converter.GetEnumValue <TreatmentEventType>(rawEvent.TreatmentEventType),
                Note = RemoveUnnecessaryNoteInfo(rawEvent.Notes)
            };

            await TryAddTbServiceAndCaseManagerToTreatmentEvent(ev, rawEvent.HospitalId, rawEvent.CaseManager, context, runId);

            return(ev);
        }
        public async Task MigrationTreatmentEventWithBoilerplateNoteMappedToNull()
        {
            // Arrange
            GivenLegacyUserWithName("*****@*****.**", "Miles", "Davis");
            var migrationTransferEvent = new MigrationDbTransferEvent
            {
                EventDate          = DateTime.Parse("12/12/2012"),
                CaseManager        = "*****@*****.**",
                HospitalId         = new Guid("B8AA918D-233F-4C41-B9AE-BE8A8DC8BE7B"),
                TreatmentEventType = "TransferIn",
                Notes = "Dear Mrs Lucy Carmen-Minoe, \n You have been identified as the new case manager for the case below.\n"
                        + "Id: 134222 \n\n Patient: Harry Swingset  Case report date: 11/11/2009"
            };

            // Act
            var mappedEvent = await _treatmentEventMapper.AsTransferEvent(migrationTransferEvent, null, 1);

            // Assert
            Assert.Equal(DateTime.Parse("12/12/2012"), mappedEvent.EventDate);
            Assert.Equal(TreatmentEventType.TransferIn, mappedEvent.TreatmentEventType);
            Assert.Null(mappedEvent.Note);
        }
        public async Task MigrationTreatmentEventMappedCorrectlyWithTbServiceAndCaseManagerAdded()
        {
            // Arrange
            GivenLegacyUserWithName("*****@*****.**", "Miles", "Davis");
            GivenHospitalIdHasTbServiceCode(new Guid("B8AA918D-233F-4C41-B9AE-BE8A8DC8BE7B"), "TBS00JAZZ");
            var migrationTransferEvent = new MigrationDbTransferEvent
            {
                EventDate          = DateTime.Parse("12/12/2012"),
                CaseManager        = "*****@*****.**",
                HospitalId         = new Guid("B8AA918D-233F-4C41-B9AE-BE8A8DC8BE7B"),
                TreatmentEventType = "TransferIn"
            };

            // Act
            var mappedEvent = await _treatmentEventMapper.AsTransferEvent(migrationTransferEvent, null, 1);

            // Assert
            Assert.Equal(DateTime.Parse("12/12/2012"), mappedEvent.EventDate);
            Assert.Equal(TreatmentEventType.TransferIn, mappedEvent.TreatmentEventType);
            Assert.Equal("TBS00JAZZ", mappedEvent.TbServiceCode);
            Assert.NotNull(_context.User.SingleOrDefault(u => u.Username == "*****@*****.**"));
            Assert.Equal(_context.User.Single().Id, mappedEvent.CaseManagerId);
        }