/// <summary>
        /// Creates the Teds interview.
        /// </summary>
        /// <param name="visit">The visit.</param>
        /// <returns>A TedsAdmissionInterview.</returns>
        public TedsAdmissionInterview CreateTedsAdmissionInterview(Visit visit)
        {
            var activityType = _lookupValueRepository.GetLookupByWellKnownName<ActivityType>(WellKnownNames.VisitModule.ActivityType.TedsAdmissionInterview);
            var TedsAdmissionInterview = new TedsAdmissionInterview(visit, activityType);

            _tedsAdmissionInterviewRepository.MakePersistent(TedsAdmissionInterview);

            return TedsAdmissionInterview;
        }
Esempio n. 2
0
        /// <summary>
        /// Processes the single aggregate.
        /// </summary>
        /// <param name="dto">The dto.</param>
        /// <param name="tedsAdmissionInterview">The teds admission interview.</param>
        /// <returns>A bool.</returns>
        protected override bool ProcessSingleAggregate(TedsAdmissionInterviewDto dto, TedsAdmissionInterview tedsAdmissionInterview)
        {
            tedsAdmissionInterview.ReviseArrestsInPastThirtyDaysCount(TedsAnswerMapper.MapToTedsAnswer(dto.ArrestsInPastThirtyDaysCount, _mappingHelper));
            tedsAdmissionInterview.ReviseCoDependentIndicator(dto.CoDependentIndicator);

            //TedsAnswer<DsmDiagnosisResponse> dsmDiagnosis = null;
            //if (dto.DsmDiagnosis != null)
            //{
            //    if (dto.DsmDiagnosis.Response != null || dto.DsmDiagnosis.TedsNonResponse != null)
            //    {
            //        dsmDiagnosis = dto.DsmDiagnosis.TedsNonResponse != null
            //                     ? new TedsAnswer<DsmDiagnosisResponse>(
            //                           _mappingHelper.MapLookupField<TedsNonResponse>(dto.DsmDiagnosis.TedsNonResponse))
            //                     : new TedsAnswer<DsmDiagnosisResponse>(new DsmDiagnosisResponse(dto.DsmDiagnosis.Response));
            //    }
            //}
            //tedsAdmissionInterview.ReviseDsmDiagnosis(dsmDiagnosis);

            tedsAdmissionInterview.ReviseIncomeSourceType(TedsAnswerMapper.MapToTedsAnswer <IncomeSourceType>(dto.IncomeSourceType, _mappingHelper));

            tedsAdmissionInterview.ReviseLivingArrangementsType(TedsAnswerMapper.MapToTedsAnswer <LivingArrangementsType>(dto.LivingArrangementsType, _mappingHelper));

            tedsAdmissionInterview.ReviseVeteranStatusIndicator(TedsAnswerMapper.MapToTedsAnswer(dto.VeteranStatusIndicator, _mappingHelper));

            tedsAdmissionInterview.ReviseMedicationAssistedOpioidTherapyIndicator(TedsAnswerMapper.MapToTedsAnswer(dto.MedicationAssistedOpioidTherapyIndicator, _mappingHelper));

            tedsAdmissionInterview.ReviseOtherPsychiatricProblemIndicator(TedsAnswerMapper.MapToTedsAnswer(dto.OtherPsychiatricProblemIndicator, _mappingHelper));

            tedsAdmissionInterview.ReviseParticipatedSelfHelpGroupInPastThirtyDaysType(TedsAnswerMapper.MapToTedsAnswer <ParticipatedSelfHelpGroupInPastThirtyDaysType>(dto.ParticipatedSelfHelpGroupInPastThirtyDaysType, _mappingHelper));

            tedsAdmissionInterview.RevisePrimaryPaymentSourceType(TedsAnswerMapper.MapToTedsAnswer <PrimaryPaymentSourceType>(dto.PrimaryPaymentSourceType, _mappingHelper));

            tedsAdmissionInterview.RevisePriorTreatmentEpisodesCount(TedsAnswerMapper.MapToTedsAnswer(dto.PriorTreatmentEpisodesCount, _mappingHelper));

            TedsAdmissionInterviewSubstanceUsage primaryTedsAdmissionInterviewSubstanceUsage = null;
            var primarySubstanceProblemType         = TedsAnswerMapper.MapToTedsAnswer <SubstanceProblemType> (dto.PrimarySubstanceProblemType, _mappingHelper);
            var primaryUseFrequencyType             = TedsAnswerMapper.MapToTedsAnswer <UseFrequencyType> (dto.PrimaryUseFrequencyType, _mappingHelper);
            var primaryFirstUseAge                  = TedsAnswerMapper.MapToTedsAnswer(dto.PrimaryFirstUseAge, _mappingHelper);
            var primaryUsualAdministrationRouteType = TedsAnswerMapper.MapToTedsAnswer <UsualAdministrationRouteType> (dto.PrimaryUsualAdministrationRouteType, _mappingHelper);
            var primaryDetailedDrugCode             = TedsAnswerMapper.MapToTedsAnswer <DetailedDrugCode, DetailedDrugCodeDto> (dto.PrimaryDetailedDrugCode, _mappingHelper);

            if (primarySubstanceProblemType != null || primaryUseFrequencyType != null || primaryFirstUseAge != null || primaryUsualAdministrationRouteType != null || primaryDetailedDrugCode != null)
            {
                primaryTedsAdmissionInterviewSubstanceUsage =
                    new TedsAdmissionInterviewSubstanceUsage(new SubstanceUsageAtAdmission(new SubstanceProblemAndFrequency(primarySubstanceProblemType, primaryUseFrequencyType), primaryUsualAdministrationRouteType, primaryFirstUseAge, primaryDetailedDrugCode));
            }

            TedsAdmissionInterviewSubstanceUsage secondaryTedsAdmissionInterviewSubstanceUsage = null;
            var secondarySubstanceProblemType         = TedsAnswerMapper.MapToTedsAnswer <SubstanceProblemType>(dto.SecondarySubstanceProblemType, _mappingHelper);
            var secondaryUseFrequencyType             = TedsAnswerMapper.MapToTedsAnswer <UseFrequencyType>(dto.SecondaryUseFrequencyType, _mappingHelper);
            var secondaryFirstUseAge                  = TedsAnswerMapper.MapToTedsAnswer(dto.SecondaryFirstUseAge, _mappingHelper);
            var secondaryUsualAdministrationRouteType = TedsAnswerMapper.MapToTedsAnswer <UsualAdministrationRouteType>(dto.SecondaryUsualAdministrationRouteType, _mappingHelper);
            var secondaryDetailedDrugCode             = TedsAnswerMapper.MapToTedsAnswer <DetailedDrugCode, DetailedDrugCodeDto>(dto.SecondaryDetailedDrugCode, _mappingHelper);

            if (secondarySubstanceProblemType != null || secondaryUseFrequencyType != null || secondaryFirstUseAge != null || secondaryUsualAdministrationRouteType != null || secondaryDetailedDrugCode != null)
            {
                secondaryTedsAdmissionInterviewSubstanceUsage =
                    new TedsAdmissionInterviewSubstanceUsage(new SubstanceUsageAtAdmission(new SubstanceProblemAndFrequency(secondarySubstanceProblemType, secondaryUseFrequencyType), secondaryUsualAdministrationRouteType, secondaryFirstUseAge, secondaryDetailedDrugCode));
            }

            TedsAdmissionInterviewSubstanceUsage tertiaryTedsAdmissionInterviewSubstanceUsage = null;
            var tertiarySubstanceProblemType         = TedsAnswerMapper.MapToTedsAnswer <SubstanceProblemType>(dto.TertiarySubstanceProblemType, _mappingHelper);
            var tertiaryUseFrequencyType             = TedsAnswerMapper.MapToTedsAnswer <UseFrequencyType>(dto.TertiaryUseFrequencyType, _mappingHelper);
            var tertiaryFirstUseAge                  = TedsAnswerMapper.MapToTedsAnswer(dto.TertiaryFirstUseAge, _mappingHelper);
            var tertiaryUsualAdministrationRouteType = TedsAnswerMapper.MapToTedsAnswer <UsualAdministrationRouteType>(dto.TertiaryUsualAdministrationRouteType, _mappingHelper);
            var tertiaryDetailedDrugCode             = TedsAnswerMapper.MapToTedsAnswer <DetailedDrugCode, DetailedDrugCodeDto>(dto.TertiaryDetailedDrugCode, _mappingHelper);

            if (tertiarySubstanceProblemType != null || tertiaryUseFrequencyType != null || tertiaryFirstUseAge != null || tertiaryUsualAdministrationRouteType != null || tertiaryDetailedDrugCode != null)
            {
                tertiaryTedsAdmissionInterviewSubstanceUsage =
                    new TedsAdmissionInterviewSubstanceUsage(new SubstanceUsageAtAdmission(new SubstanceProblemAndFrequency(tertiarySubstanceProblemType, tertiaryUseFrequencyType), tertiaryUsualAdministrationRouteType, tertiaryFirstUseAge, tertiaryDetailedDrugCode));
            }

            tedsAdmissionInterview.ReviseTedsAdmissionInterviewSubstanceUsages(primaryTedsAdmissionInterviewSubstanceUsage, secondaryTedsAdmissionInterviewSubstanceUsage, tertiaryTedsAdmissionInterviewSubstanceUsage);

            tedsAdmissionInterview.ReviseTedsEducationYearCount(TedsAnswerMapper.MapToTedsAnswer(dto.TedsEducationYearCount, _mappingHelper));

            var tedsEmploymentStatus    = TedsAnswerMapper.MapToTedsAnswer <TedsEmploymentStatus>(dto.TedsEmploymentStatusInformationTedsEmploymentStatus, _mappingHelper);
            var detailedNotInLaborForce = TedsAnswerMapper.MapToTedsAnswer <DetailedNotInLaborForce>(dto.TedsEmploymentStatusInformationDetailedNotInLaborForce, _mappingHelper);

            if (tedsEmploymentStatus != null || detailedNotInLaborForce != null)
            {
                tedsAdmissionInterview.ReviseTedsEmploymentStatusInformation(new TedsEmploymentStatusInformation(tedsEmploymentStatus, detailedNotInLaborForce));
            }
            else
            {
                tedsAdmissionInterview.ReviseTedsEmploymentStatusInformation(null);
            }

            tedsAdmissionInterview.ReviseTedsEthnicity(TedsAnswerMapper.MapToTedsAnswer <TedsEthnicity>(dto.TedsEthnicity, _mappingHelper));

            var tedsGender        = TedsAnswerMapper.MapToTedsAnswer <TedsGender>(dto.TedsGenderInformationTedsGender, _mappingHelper);
            var pregnantIndicator = TedsAnswerMapper.MapToTedsAnswer(dto.TedsGenderInformationPregnantIndicator, _mappingHelper);

            if (tedsGender != null || pregnantIndicator != null)
            {
                tedsAdmissionInterview.ReviseTedsGenderInformation(new TedsGenderInformation(tedsGender, pregnantIndicator));
            }
            else
            {
                tedsAdmissionInterview.ReviseTedsGenderInformation(null);
            }

            tedsAdmissionInterview.ReviseTedsRace(TedsAnswerMapper.MapToTedsAnswer <TedsRace>(dto.TedsRace, _mappingHelper));

            tedsAdmissionInterview.ReviseTedsMartialStatus(TedsAnswerMapper.MapToTedsAnswer <MaritalStatus>(dto.MaritalStatus, _mappingHelper));

            return(true);
        }
        /// <summary>
        /// Destroys the Teds interview.
        /// </summary>
        /// <param name="tedsAdmissionInterview">The Teds interview.</param>
        public void DestroyTedsAdmissionInterview(TedsAdmissionInterview tedsAdmissionInterview)
        {
            Check.IsNotNull(tedsAdmissionInterview, "TedsAdmissionInterview is required.");

            _tedsAdmissionInterviewRepository.MakeTransient(tedsAdmissionInterview);
        }