Esempio n. 1
0
        private void CreateMedication(MedicationDto dto, Patient patient, Provenance provenance)
        {
            CodedConcept medicationCode = null;

            if (dto.MedicationCodeCodedConcept != null)
            {
                medicationCode = new CodedConceptBuilder().WithCodedConceptDto(dto.MedicationCodeCodedConcept);
            }

            var medication = patient.AddMedication(medicationCode, provenance);

            CodedConcept rootMedicationCode = null;

            if (dto.RootMedicationCodedConcept != null)
            {
                rootMedicationCode = new CodedConceptBuilder().WithCodedConceptDto(dto.RootMedicationCodedConcept);
            }

            var discontinuedReason = _mappingHelper.MapLookupField <DiscontinuedReason> (dto.DiscontinuedReason);
            var medicationStatus   = dto.MedicationStatus == null
                                       ? _mappingHelper.MapLookupField <MedicationStatus> (WellKnownNames.PatientModule.MedicationStatus.Inactive)
                                       : _mappingHelper.MapLookupField <MedicationStatus> (dto.MedicationStatus);

            medication.ReviseOverTheCounterIndicator(dto.OverTheCounterIndicator);
            medication.RevisePrescribingPhysicianName(dto.PrescribingPhysicianName);
            medication.ReviseUsageDateRange(new DateRange(dto.StartDate, dto.EndDate));
            medication.ReviseDiscontinuedByPhysicianName(dto.DiscontinuedByPhysicianName);
            medication.ReviseDiscontinuedReason(discontinuedReason);
            medication.ReviseDiscontinuedReasonOtherDescription(dto.DiscontinuedReasonOtherDescription);
            medication.ReviseFrequencyDescription(dto.FrequencyDescription);
            medication.ReviseInstructionsNote(dto.InstructionsNote);
            medication.ReviseMedicationStatus(medicationStatus);
            medication.ReviseRootMedicationCodedConcept(rootMedicationCode);
        }
Esempio n. 2
0
        /// <summary>
        /// Prepare patient record with associated medications
        /// </summary>
        private async Task AddMedicationsAsync(Patient patient, List <MedicationDetail> medications)
        {
            if (patient == null)
            {
                throw new ArgumentNullException(nameof(patient));
            }
            if (medications == null)
            {
                throw new ArgumentNullException(nameof(medications));
            }
            if (medications.Count == 0)
            {
                return;
            }

            var concept = await _conceptRepository.GetAsync(c => c.ConceptName == "NOT ASSIGNED");

            foreach (var medication in medications)
            {
                var patientMedication = patient.AddMedication(concept, medication.DateStart, medication.DateEnd, medication.Dose, medication.DoseFrequency, "", null, medication.MedicationSource);
                _typeExtensionHandler.UpdateExtendable(patientMedication, medication.CustomAttributes, "Admin");
            }
        }