Пример #1
0
        protected override void Handle(SaveDtoRequest <StaffDto> request, DtoResponse <StaffDto> response)
        {
            var staff = _staffRepository.GetByKey(request.DataTransferObject.Key);

            staff.ReviseName(request.DataTransferObject.Name);
            staff.ReviseEmail(string.IsNullOrWhiteSpace(request.DataTransferObject.Email) ? null : new Email(request.DataTransferObject.Email));
            staff.ReviseLocation(request.DataTransferObject.Location);
            staff.ReviseNpi(request.DataTransferObject.NPI);

            response.DataTransferObject = Mapper.Map <Staff, StaffDto>(staff);
        }
        protected override void Handle(SaveDtoRequest <PatientDto> request, SaveDtoResponse <PatientDto> response)
        {
            var patient = _patientRepository.GetByKey(request.DataTransferObject.Key);

            if (patient != null)
            {
                //patient.ReviseName(request.DataTransferObject.Name);
                //patient.ReviseDateOfBirth(request.DataTransferObject.DateOfBirth);
                //patient.ReviseGender(Lookup.Find<Gender>(request.DataTransferObject.Gender.Code));
                patient.ReviseEthnicity(Lookup.Find <Ethnicity>(request.DataTransferObject.Ethnicity.Code));
                patient.ReviseReligion(Lookup.Find <Religion>(request.DataTransferObject.Religion.Code));

                response.DataTransferObject = Mapper.Map <Patient, PatientDto>(patient);
            }
        }
        /// <summary>
        ///     Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="response">The response.</param>
        protected override void Handle(SaveDtoRequest <PatientDto> request, SaveDtoResponse <PatientDto> response)
        {
            var           patient       = _patientRepository.GetByKey(request.DataTransferObject.Key);
            DataErrorInfo dataErrorInfo = null;

            if (patient != null)
            {
                patient.ReviseName(request.DataTransferObject.Name);
                patient.ReviseDateOfBirth(request.DataTransferObject.DateOfBirth);
                patient.ReviseGender(_lookupProvider.Find <Gender> (request.DataTransferObject.Gender.Code));
                if (request.DataTransferObject.Ethnicity != null && !string.IsNullOrEmpty(request.DataTransferObject.Ethnicity.Code))
                {
                    patient.ReviseEthnicity(_lookupProvider.Find <Ethnicity> (request.DataTransferObject.Ethnicity.Code));
                }
                if (request.DataTransferObject.Religion != null && !string.IsNullOrEmpty(request.DataTransferObject.Religion.Code))
                {
                    patient.ReviseReligion(_lookupProvider.Find <Religion> (request.DataTransferObject.Religion.Code));
                }
                Email newEmail = null;
                try
                {
                    if (!string.IsNullOrWhiteSpace(request.DataTransferObject.Email))
                    {
                        newEmail = new Email(request.DataTransferObject.Email);
                    }
                }
                catch (ArgumentException ae)
                {
                    if (!ae.Message.Contains("email address", StringComparison.OrdinalIgnoreCase))
                    {
                        throw;
                    }
                    dataErrorInfo = new DataErrorInfo(ae.Message, ErrorLevel.Error, PropertyUtil.ExtractPropertyName <PatientDto, string> (s => s.Email));
                }
                patient.ReviseEmail(string.IsNullOrWhiteSpace(request.DataTransferObject.Email) ? null : newEmail);

                response.DataTransferObject = Mapper.Map <Patient, PatientDto> (patient);
                if (dataErrorInfo != null)
                {
                    response.DataTransferObject.AddDataErrorInfo(dataErrorInfo);
                }
            }
        }
        /// <summary>
        ///     Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="response">The response.</param>
        protected override void Handle(SaveDtoRequest <PatientDto> request, SaveDtoResponse <PatientDto> response)
        {
            var patient = _patientRepository.GetByKey(request.DataTransferObject.Key);

            if (patient != null)
            {
                patient.ReviseName(request.DataTransferObject.Name);
                patient.ReviseDateOfBirth(request.DataTransferObject.DateOfBirth);
                patient.ReviseGender(_lookupProvider.Find <Gender> (request.DataTransferObject.Gender.Code));
                if (request.DataTransferObject.Ethnicity != null && !string.IsNullOrEmpty(request.DataTransferObject.Ethnicity.Code))
                {
                    patient.ReviseEthnicity(_lookupProvider.Find <Ethnicity> (request.DataTransferObject.Ethnicity.Code));
                }
                if (request.DataTransferObject.Religion != null && !string.IsNullOrEmpty(request.DataTransferObject.Religion.Code))
                {
                    patient.ReviseReligion(_lookupProvider.Find <Religion> (request.DataTransferObject.Religion.Code));
                }
                patient.ReviseEmail(string.IsNullOrWhiteSpace(request.DataTransferObject.Email) ? null : new Email(request.DataTransferObject.Email));

                response.DataTransferObject = Mapper.Map <Patient, PatientDto> (patient);
            }
        }
Пример #5
0
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>A <see cref="Agatha.Common.Response"/></returns>
        public override Response Handle(SaveDtoRequest <SelfPaymentDto> request)
        {
            var requestDto = request.DataTransferObject;

            DomainEvent.Register <RuleViolationEvent>(failure => _validationFailureOccurred = true);

            LogicalTreeWalker.Walk <IDataTransferObject>(requestDto, dto => dto.ClearAllDataErrorInfo());

            var response = CreateTypedResponse();

            response.DataTransferObject = requestDto;


            if (requestDto.EditStatus == EditStatus.Create)
            {
                var selfPayment = CreateNew(requestDto);
                response.DataTransferObject = AutoMapper.Mapper.Map <SelfPayment, SelfPaymentDto> (selfPayment);
            }
            else if (requestDto.EditStatus == EditStatus.Delete)
            {
                var selfPayment = _selfPaymentRepository.GetByKey(requestDto.Key);
                if (selfPayment != null)
                {
                    Delete(selfPayment);
                }
                response.DataTransferObject = requestDto;
            }

            var processSucceeded = !_validationFailureOccurred;

            if (processSucceeded)
            {
                Session.Flush();
                Session.Clear();
            }

            return(response);
        }
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>A <see cref="Agatha.Common.Response"/></returns>
        public override Response Handle(SaveDtoRequest <PayorCoverageCacheDto> request)
        {
            var requestDto = request.DataTransferObject;

            DomainEvent.Register <RuleViolationEvent> (failure => _validationFailureOccurred = true);

            LogicalTreeWalker.Walk <IDataTransferObject> (requestDto, dto => dto.ClearAllDataErrorInfo());

            var response = CreateTypedResponse();

            if (requestDto.EditStatus == EditStatus.Create || requestDto.EditStatus == EditStatus.Update)
            {
                var patient                = _patientRepository.GetByKeyOrThrow(requestDto.PatientKey, "Patient");
                var payorCache             = _payorCacheRepository.GetByKeyOrThrow(requestDto.PayorCache.Key, "Payor");
                var effectiveDateRange     = new DateRange(requestDto.StartDate, requestDto.EndDate);
                var payorCoverageCacheType = _mappingHelper.MapLookupField <PayorCoverageCacheType> (requestDto.PayorCoverageCacheType);

                var countyArea    = _mappingHelper.MapLookupField <CountyArea> (requestDto.PayorSubscriberCache.Address.CountyArea);
                var stateProvince = _mappingHelper.MapLookupField <StateProvince> (requestDto.PayorSubscriberCache.Address.StateProvince);
                var country       = _mappingHelper.MapLookupField <Country> (requestDto.PayorSubscriberCache.Address.Country);

                var address = new Address(
                    requestDto.PayorSubscriberCache.Address.FirstStreetAddress,
                    requestDto.PayorSubscriberCache.Address.SecondStreetAddress,
                    requestDto.PayorSubscriberCache.Address.CityName,
                    countyArea,
                    stateProvince,
                    country,
                    new PostalCode(requestDto.PayorSubscriberCache.Address.PostalCode));

                var gender = _mappingHelper.MapLookupField <AdministrativeGender>(requestDto.PayorSubscriberCache.AdministrativeGender);

                var patientName = new PersonNameBuilder()
                                  .WithFirst(requestDto.PayorSubscriberCache.FirstName)
                                  .WithMiddle(requestDto.PayorSubscriberCache.MiddleName)
                                  .WithLast(requestDto.PayorSubscriberCache.LastName);

                var payorSubscriberRelationshipCacheType =
                    _mappingHelper.MapLookupField <PayorSubscriberRelationshipCacheType> (requestDto.PayorSubscriberCache.PayorSubscriberRelationshipCacheType);

                var payorSubscriberCache = new PayorSubscriberCache(
                    address, requestDto.PayorSubscriberCache.BirthDate, gender, patientName, payorSubscriberRelationshipCacheType);

                PayorCoverageCache payorCoverageCache;

                if (requestDto.EditStatus == EditStatus.Create)
                {
                    payorCoverageCache = _payorCoverageCacheFactory.CreatePayorCoverage(
                        patient, payorCache, effectiveDateRange, requestDto.MemberNumber, payorSubscriberCache, payorCoverageCacheType);
                }
                else
                {
                    payorCoverageCache = _payorCoverageCacheRepository.GetByKeyOrThrow(requestDto.Key, "Payor");
                    payorCoverageCache.RevisePayorCoverageCacheInfo(payorCoverageCacheType, effectiveDateRange, requestDto.MemberNumber);
                    payorCoverageCache.RevisePayorCache(payorCache);
                    payorCoverageCache.RevisePayorSubscriberCache(payorSubscriberCache);
                }

                response.DataTransferObject = payorCoverageCache == null ? requestDto : Mapper.Map <PayorCoverageCache, PayorCoverageCacheDto>(payorCoverageCache);
            }
            else if (requestDto.EditStatus == EditStatus.Delete)
            {
                var payorCoverageCache = _payorCoverageCacheRepository.GetByKey(requestDto.Key);
                if (payorCoverageCache != null)
                {
                    _payorCoverageCacheFactory.DestroyPayorCoverage(payorCoverageCache);
                }
                response.DataTransferObject = requestDto;
            }
            else
            {
                var payorCoverageCache = _payorCoverageCacheRepository.GetByKeyOrThrow(requestDto.Key, "Payor");
                response.DataTransferObject = Mapper.Map <PayorCoverageCache, PayorCoverageCacheDto>(payorCoverageCache);
            }

            var processSucceeded = !_validationFailureOccurred;

            if (processSucceeded)
            {
                Session.Flush();
                Session.Clear();
            }
            else
            {
                if (requestDto.EditStatus == EditStatus.Create)
                {
                    response.DataTransferObject.Key = 0;
                }
            }

            return(response);
        }