Exemple #1
0
        /// <summary>
        /// If the visit does not have a NidaDrugQuestionnaire, then it returns a newly created NidaDrugQuestionnaire,
        /// else, it returns an existing one from the visit.
        /// </summary>
        /// <param name="visit">The visit.</param>
        /// <returns>A NidaDrugQuestionnaire.</returns>
        public NidaDrugQuestionnaire CreateNidaDrugQuestionnaire(Visit visit)
        {
            Check.IsNotNull(visit, "visit is required.");

            NidaDrugQuestionnaire nidaDrugQuestionnaire;
            var existingNidaDrugQuestionnaire = _nidaDrugQuestionnaireRepository.GetNidaDrugQuestionnaireInVisit(visit.Key);

            if (existingNidaDrugQuestionnaire != null)
            {
                nidaDrugQuestionnaire = existingNidaDrugQuestionnaire;
            }
            else
            {
                var activityType = _lookupValueRepository.GetLookupByWellKnownName <ActivityType> (WellKnownNames.VisitModule.ActivityType.NidaDrugQuestionnaire);
                nidaDrugQuestionnaire = new NidaDrugQuestionnaire(visit, activityType);

                _nidaDrugQuestionnaireRepository.MakePersistent(nidaDrugQuestionnaire);

                DomainEvent.Raise(new NidaDrugQuestionnaireCreatedEvent {
                    NidaDrugQuestionnaire = nidaDrugQuestionnaire
                });
            }

            return(nidaDrugQuestionnaire);
        }
Exemple #2
0
        /// <summary>
        /// Revises the and calculate.
        /// </summary>
        /// <param name="haveYouUsedDrugsIndicator">The have you used drugs indicator.</param>
        /// <param name="doYouAbuseMoreThanOneDrugIndicator">The do you abuse more than one drug indicator.</param>
        /// <param name="areYouAbleToStopUsingDrugsIndicator">The are you able to stop using drugs indicator.</param>
        /// <param name="haveYouHadBlackoutsOrFlashbacksIndicator">The have you had blackouts or flashbacks indicator.</param>
        /// <param name="doYouFeelBadOrGuiltyIndicator">The do you feel bad or guilty indicator.</param>
        /// <param name="doesYourSpouseOrParentComplainIndicator">The does your spouse or parent complain indicator.</param>
        /// <param name="haveYouNeglectedYourFamilyIndicator">The have you neglected your family indicator.</param>
        /// <param name="haveYouEngagedInIllegalActivitiesIndicator">The have you engaged in illegal activities indicator.</param>
        /// <param name="haveYouEverExperiencedWithdrawalSymptomsIndicator">The have you ever experienced withdrawal symptoms indicator.</param>
        /// <param name="haveYouHadMedicalProblemsIndicator">The have you had medical problems indicator.</param>
        public virtual void ReviseAndCalculate(bool?haveYouUsedDrugsIndicator,
                                               bool?doYouAbuseMoreThanOneDrugIndicator,
                                               bool?areYouAbleToStopUsingDrugsIndicator,
                                               bool?haveYouHadBlackoutsOrFlashbacksIndicator,
                                               bool?doYouFeelBadOrGuiltyIndicator,
                                               bool?doesYourSpouseOrParentComplainIndicator,
                                               bool?haveYouNeglectedYourFamilyIndicator,
                                               bool?haveYouEngagedInIllegalActivitiesIndicator,
                                               bool?haveYouEverExperiencedWithdrawalSymptomsIndicator,
                                               bool?haveYouHadMedicalProblemsIndicator)
        {
            HaveYouUsedDrugsIndicator                         = haveYouUsedDrugsIndicator;
            DoYouAbuseMoreThanOneDrugIndicator                = doYouAbuseMoreThanOneDrugIndicator;
            AreYouAbleToStopUsingDrugsIndicator               = areYouAbleToStopUsingDrugsIndicator;
            HaveYouHadBlackoutsOrFlashbacksIndicator          = haveYouHadBlackoutsOrFlashbacksIndicator;
            DoYouFeelBadOrGuiltyIndicator                     = doYouFeelBadOrGuiltyIndicator;
            DoesYourSpouseOrParentComplainIndicator           = doesYourSpouseOrParentComplainIndicator;
            HaveYouNeglectedYourFamilyIndicator               = haveYouNeglectedYourFamilyIndicator;
            HaveYouEngagedInIllegalActivitiesIndicator        = haveYouEngagedInIllegalActivitiesIndicator;
            HaveYouEverExperiencedWithdrawalSymptomsIndicator = haveYouEverExperiencedWithdrawalSymptomsIndicator;
            HaveYouHadMedicalProblemsIndicator                = haveYouHadMedicalProblemsIndicator;

            SeverityScore = InterpretAnswer(_haveYouUsedDrugsIndicator)
                            + InterpretAnswer(_doYouAbuseMoreThanOneDrugIndicator)
                            + InterpretAnswer(_areYouAbleToStopUsingDrugsIndicator, true)
                            + InterpretAnswer(_haveYouHadBlackoutsOrFlashbacksIndicator)
                            + InterpretAnswer(_doYouFeelBadOrGuiltyIndicator)
                            + InterpretAnswer(_doesYourSpouseOrParentComplainIndicator)
                            + InterpretAnswer(_haveYouNeglectedYourFamilyIndicator)
                            + InterpretAnswer(_haveYouEngagedInIllegalActivitiesIndicator)
                            + InterpretAnswer(_haveYouEverExperiencedWithdrawalSymptomsIndicator)
                            + InterpretAnswer(_haveYouHadMedicalProblemsIndicator);

            NidaDrugQuestionnaire nidaDrugQuestionnaire = null;

            if (SeverityScore > 0)
            {
                nidaDrugQuestionnaire = ScheduleNidaDrugQuestionnaire();
            }
            else
            {
                var           socialHistoryRepository = IoC.CurrentContainer.Resolve <ISocialHistoryRepository> ();
                SocialHistory socialHistory           = socialHistoryRepository.GetSocialHistoryInVisit(Visit.Key);

                if (socialHistory != null && socialHistory.SocialHistoryDast10.Dast10TimesPastYearUsedIllegalDrugOrPrescriptionMedicationForNonMedicalReasonsNumber.GetValueOrDefault() > 0)
                {
                    nidaDrugQuestionnaire = ScheduleNidaDrugQuestionnaire();
                }
            }

            SetDast10Result(nidaDrugQuestionnaire);
        }
Exemple #3
0
        /// <summary>
        /// Sets the dast10 result.
        /// </summary>
        /// <param name="nidaDrugQuestionnaire">The nida drug questionnaire.</param>
        /// <returns>A boolean value.</returns>
        public virtual bool SetDast10Result(NidaDrugQuestionnaire nidaDrugQuestionnaire)
        {
            int severityScore = SeverityScore.GetValueOrDefault();
            int dast10Result  = 0;

            if (SeverityScore.GetValueOrDefault() < MinConsiderableSeverityScore)
            {
                dast10Result = ResultAsReassesAnnually;
            }
            else
            {
                if (severityScore >= SeverityScoreThreshold)
                {
                    dast10Result = ResultAsScheduleFollowUp;
                }
                else
                {
                    if (severityScore >= MinConsiderableSeverityScore && severityScore < SeverityScoreThreshold)
                    {
                        if (nidaDrugQuestionnaire != null && nidaDrugQuestionnaire.NidaDrugQuestionnaireIndicator.HasValue)
                        {
                            dast10Result = nidaDrugQuestionnaire.NidaDrugQuestionnaireIndicator.Value ? ResultAsScheduleFollowUp : ResultAsBriefAdvice;
                        }
                    }
                    else
                    {
                        dast10Result = ResultAsReassesAnnually;
                    }
                }
            }

            bool dast10ResultChanged = false;

            if (Dast10Result != dast10Result)
            {
                Dast10Result        = dast10Result;
                dast10ResultChanged = true;
            }

            return(dast10ResultChanged);
        }
Exemple #4
0
 /// <summary>
 /// Destroys the NidaDrugQuestionnaire questionnaire.
 /// </summary>
 /// <param name="nidaDrugQuestionnaire">The Nida drug questionnaire.</param>
 public void DestroyNidaDrugQuestionnaire(NidaDrugQuestionnaire nidaDrugQuestionnaire)
 {
     _nidaDrugQuestionnaireRepository.MakeTransient(nidaDrugQuestionnaire);
 }
        /// <summary>
        /// If the visit does not have a NidaDrugQuestionnaire, then it returns a newly created NidaDrugQuestionnaire,
        /// else, it returns an existing one from the visit.
        /// </summary>
        /// <param name="visit">The visit.</param>
        /// <returns>A NidaDrugQuestionnaire.</returns>
        public NidaDrugQuestionnaire CreateNidaDrugQuestionnaire( Visit visit )
        {
            Check.IsNotNull(visit, "visit is required.");

            NidaDrugQuestionnaire nidaDrugQuestionnaire;
            var existingNidaDrugQuestionnaire = _nidaDrugQuestionnaireRepository.GetNidaDrugQuestionnaireInVisit ( visit.Key );

            if ( existingNidaDrugQuestionnaire != null )
            {
                nidaDrugQuestionnaire = existingNidaDrugQuestionnaire;
            }
            else
            {
                var activityType = _lookupValueRepository.GetLookupByWellKnownName<ActivityType> ( WellKnownNames.VisitModule.ActivityType.NidaDrugQuestionnaire );
                nidaDrugQuestionnaire = new NidaDrugQuestionnaire ( visit, activityType );

                _nidaDrugQuestionnaireRepository.MakePersistent ( nidaDrugQuestionnaire );

                DomainEvent.Raise(new NidaDrugQuestionnaireCreatedEvent { NidaDrugQuestionnaire = nidaDrugQuestionnaire });
            }

            return nidaDrugQuestionnaire;
        }
 /// <summary>
 /// Destroys the NidaDrugQuestionnaire questionnaire.
 /// </summary>
 /// <param name="nidaDrugQuestionnaire">The Nida drug questionnaire.</param>
 public void DestroyNidaDrugQuestionnaire( NidaDrugQuestionnaire nidaDrugQuestionnaire )
 {
     _nidaDrugQuestionnaireRepository.MakeTransient ( nidaDrugQuestionnaire );
 }
Exemple #7
0
        /// <summary>
        /// Sets the dast10 result.
        /// </summary>
        /// <param name="nidaDrugQuestionnaire">The nida drug questionnaire.</param>
        /// <returns>A boolean value.</returns>
        public virtual bool SetDast10Result( NidaDrugQuestionnaire nidaDrugQuestionnaire )
        {
            int severityScore = SeverityScore.GetValueOrDefault ();
            int dast10Result = 0;

            if ( SeverityScore.GetValueOrDefault () < MinConsiderableSeverityScore )
            {
                dast10Result = ResultAsReassesAnnually;
            }
            else
            {
                if ( severityScore >= SeverityScoreThreshold )
                {
                    dast10Result = ResultAsScheduleFollowUp;
                }
                else
                {
                    if ( severityScore >= MinConsiderableSeverityScore && severityScore < SeverityScoreThreshold )
                    {
                        if (nidaDrugQuestionnaire != null && nidaDrugQuestionnaire.NidaDrugQuestionnaireIndicator.HasValue)
                        {
                            dast10Result = nidaDrugQuestionnaire.NidaDrugQuestionnaireIndicator.Value ? ResultAsScheduleFollowUp : ResultAsBriefAdvice;
                        }
                    }
                    else
                    {
                        dast10Result = ResultAsReassesAnnually;
                    }
                }
            }

            bool dast10ResultChanged = false;

            if (Dast10Result != dast10Result)
            {
                Dast10Result = dast10Result;
                dast10ResultChanged = true;
            }

            return dast10ResultChanged;
        }