public async Task <Models.Examination> Handle(CreateExaminationQuery param)
        {
            if (param == null)
            {
                throw new ArgumentNullException(nameof(param));
            }

            param.Examination.ExaminationId = Guid.NewGuid().ToString();
            param.Examination.MedicalExaminerOfficeResponsibleName = _locationHandler.Handle(new LocationRetrievalByIdQuery(param.Examination.MedicalExaminerOfficeResponsible)).Result.Name;
            param.Examination.Unassigned    = true;
            param.Examination.CaseBreakdown = new CaseBreakDown();

            param.Examination.CaseBreakdown.DeathEvent = new DeathEvent()
            {
                Created      = param.Examination.CreatedAt.DateTime,
                DateOfDeath  = param.Examination.DateOfDeath,
                TimeOfDeath  = param.Examination.TimeOfDeath,
                UserId       = param.Examination.CreatedBy,
                UsersRole    = param.User.UsersRoleIn(new[] { UserRoles.MedicalExaminer, UserRoles.MedicalExaminerOfficer }).ToString(),
                UserFullName = param.User.FullName(),
                GmcNumber    = param.User.GmcNumber,
                EventId      = Guid.NewGuid().ToString()
            };
            param.Examination.UpdateCaseUrgencySort(_urgencySettings.DaysToPreCalculateUrgencySort);
            param.Examination.UpdateCaseStatus();
            param.Examination.LastModifiedBy = param.User.UserId;
            param.Examination.ModifiedAt     = DateTime.Now;

            return(await _databaseAccess.CreateItemAsync(_connectionSettings, param.Examination));
        }