示例#1
0
        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);
        }