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); }
/// <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"); } }