private void CreateProblem(ProblemDto dto, long patientKey, Provenance provenance) { var clinicalCase = _clinicalCaseRepository.GetActiveClinicalCaseByPatient(patientKey); CodedConcept problemCode = null; if (dto.ProblemCodeCodedConcept != null) { problemCode = new CodedConceptBuilder().WithCodedConceptDto(dto.ProblemCodeCodedConcept); } var problem = _problemFactory.CreateProblem(clinicalCase, problemCode, provenance); var problemType = _mappingHelper.MapLookupField <ProblemType> (dto.ProblemType); var problemStatus = _mappingHelper.MapLookupField <ProblemStatus> (dto.ProblemStatus); problem.ReviseProblemType(problemType); problem.ReviseOnsetDateRange(new DateRange(dto.OnsetStartDate, dto.OnsetEndDate)); problem.UpdateProblemStatus(problemStatus, dto.StatusChangedDate); problem.ReviseCauseOfDeathIndicator(dto.CauseOfDeathIndicator); if (dto.ObservedByStaff != null) { var staff = Session.Load <Staff> (dto.ObservedByStaff.Key); problem.ReviseObservationInfo(staff, dto.ObservedDate); } }
/// <summary> /// Creates the new. /// </summary> /// <param name="dto">The data transfer object.</param> /// <returns>A <see cref="Rem.Domain.Clinical.ClinicalCaseModule.Problem"/></returns> protected override Problem CreateNew(ProblemDto dto) { var clinicalCase = Session.Load <ClinicalCase> (dto.ClinicalCaseKey); CodedConcept problemCode = null; if (dto.ProblemCodeCodedConcept != null) { problemCode = new CodedConceptBuilder().WithCodedConceptDto(dto.ProblemCodeCodedConcept); } var entity = _problemFactory.CreateProblem(clinicalCase, problemCode); return(entity); }