private void Apply(AssessmentScoredEvent assessmentScoredEvent) { Score = new Score(assessmentScoredEvent.ScoreCode) { Value = assessmentScoredEvent.Value, Guidance = assessmentScoredEvent.Guidance }; }
/// <summary>Handles the specified message.</summary> /// <param name="message">The message.</param> public void Handle(AssessmentScoredEvent message) { var assessment = _assessmentInstanceRepository.GetByKey(message.Key); var assessmentDefinition = _assessmentDefinitionRepository.GetByKey(assessment.AssessmentDefinitionKey); using (var connection = _connectionFactory.CreateConnection()) { var assessmentScoreString = message.Value.GetType().IsValueType ? message.Value.ToString() : JsonConvert.SerializeObject(message.Value); connection.Execute( "INSERT INTO AssessmentModule.AssessmentScores VALUES (@AssessmentScoresKey, @AssessmentDefinitionCode, @AssessmentScore, @ScoredDate, @PatientKey)", new { AssessmentScoresKey = CombGuid.NewCombGuid(), AssessmentDefinitionCode = assessmentDefinition.CodedConcept.Code, AssessmentScore = assessmentScoreString, ScoredDate = DateTime.Now, assessment.PatientKey }); } if (assessment.Score.HasReport) { using (var connection = _connectionFactory.CreateConnection()) { connection.Execute( "insert into AssessmentModule.Report values(@ReportKey, @SourceKey, @CreatedTimestamp, @Name, @NameFormat, @CanCustomize, @PatientKey, " + "@ReportSeverity, @ReportType, @ReportStatus, @IsPatientViewable, @OrganizationKey)", new { ReportKey = CombGuid.NewCombGuid(), SourceKey = assessment.Key, CreatedTimestamp = DateTime.Now, Name = assessment.AssessmentName, NameFormat = "{0}", CanCustomize = false, assessment.PatientKey, ReportSeverity = (assessment.Score.Value is IGenerateReport) ? (assessment.Score.Value as IGenerateReport).Severity : ReportSeverity.Unknown, ReportType = ReportType.Canned, ReportStatus = " ", IsPatientViewable = false, message.OrganizationKey }); } } }