Ejemplo n.º 1
0
        /// <summary>
        /// Prepare the model for adding a new encounter
        /// </summary>
        private EncounterDetail PrepareEncounterDetail(EncounterForCreationDto encounterForCreation)
        {
            var encounterDetail = new EncounterDetail();

            encounterDetail = _mapper.Map <EncounterDetail>(encounterForCreation);

            return(encounterDetail);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Register patient encounter
        /// </summary>
        public async Task <int> AddEncounterAsync(Patient patient, EncounterDetail encounterDetail)
        {
            var encounterType = _encounterTypeRepository.Get(et => et.Id == encounterDetail.EncounterTypeId);

            if (encounterType == null)
            {
                throw new ArgumentException(nameof(encounterDetail.EncounterTypeId));
            }

            var priority = _priorityRepository.Get(p => p.Id == encounterDetail.PriorityId);

            if (priority == null)
            {
                throw new ArgumentException(nameof(encounterDetail.PriorityId));
            }

            var newEncounter = new Encounter(patient)
            {
                EncounterType = encounterType,
                Priority      = priority,
                EncounterDate = encounterDetail.EncounterDate,
                Notes         = encounterDetail.Notes
            };

            //newEncounter.AuditStamp(user);
            await _encounterRepository.SaveAsync(newEncounter);

            var encounterTypeWorkPlan = _encounterTypeWorkPlanRepository.Get(et => et.EncounterType.Id == encounterType.Id, new string[] { "WorkPlan.Dataset" });

            if (encounterTypeWorkPlan != null)
            {
                // Create a new instance
                var dataset = _datasetRepository.Get(d => d.Id == encounterTypeWorkPlan.WorkPlan.Dataset.Id, new string[] { "DatasetCategories.DatasetCategoryElements.DatasetElement.Field.FieldType" });
                if (dataset != null)
                {
                    var datasetInstance = dataset.CreateInstance(newEncounter.Id, "", encounterTypeWorkPlan, null, null);
                    await _datasetInstanceRepository.SaveAsync(datasetInstance);
                }
            }

            return(newEncounter.Id);
        }