public EhrExtract Convert(ProtocolDrugTherapyViewModel model, string name, string systemId) { if (model == default) { throw new ArgumentNullException(nameof(model)); } if (_protocolDrugTherapyToEHRConverter == default) { _locker.EnterWriteLock(); if (_protocolDrugTherapyToEHRConverter == default) { _protocolDrugTherapyToEHRConverter = new ProtocolDrugTherapyToEHRConverter(EhrManager); } _locker.ExitWriteLock(); } return(_protocolDrugTherapyToEHRConverter.Convert(model, name, systemId)); }
public async Task <IActionResult> Json(int id) { try { if (id < 1) { return(RedirectToAction(nameof(HomeController.Index), this.GetControllerName(nameof(HomeController)))); } else { ProtocolDrugTherapyViewModel model = await GetModelById(id); if (model == default) { return(BadRequest()); } EhrExtract ehrExtractModel = ToEHRConverter.Convert(model, nameof(ProtocolDrugTherapyViewModel), MedicConstants.ItupMedic); return(await base.FormatModel(ehrExtractModel, FormattableFactory.CreateFormatter(FormatterEnum.Json))); } } catch (Exception ex) { Task <int> _ = MedicLoggerService.SaveAsync(new Log() { Message = ex.Message, InnerExceptionMessage = ex?.InnerException?.Message ?? null, Source = ex.Source, StackTrace = ex.StackTrace, Date = DateTime.Now }); throw; } }
internal EhrExtract Convert(ProtocolDrugTherapyViewModel model, string name, string systemId) { IEntryBuilder entryProtocolDrugTherapyBuilder = EhrManager.EntryBuilder; entryProtocolDrugTherapyBuilder.AddItems( EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.PatientBranch)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.PatientBranch).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.PatientHRegion)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.PatientHRegion).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.NumberOfDecision)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.NumberOfDecision).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DecisionDate)).Build()) .AddValue(EhrManager.DATEBuilder.Clear().AddDate(model.DecisionDate).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.PracticeCodeProtocol)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.PracticeCodeProtocol).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.NumberOfProtocol)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.NumberOfProtocol).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.ProtocolDate)).Build()) .AddValue(EhrManager.DATEBuilder.Clear().AddDate(model.ProtocolDate).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Height)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.Height).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Weight)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.Weight).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.BSA)).Build()) .AddValue(EhrManager.REALBuilder.Clear().AddValue(model.BSA).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.TherapyLine)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.TherapyLine).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Scheme)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Scheme).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.CycleCount)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.CycleCount).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Sign)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.Sign).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.CPFile)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.CPFile).Build()).Build() ); Content protocolDrugTherapyContent = entryProtocolDrugTherapyBuilder.Build(); ICompositionBuilder compositionBuilder = EhrManager.CompositionBuilder .Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(name).Build()); if (model.Patient != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Patient)).Build()) .AddMembers(base.CreatePatientEntry(model.Patient)) .Build()); } if (model.Chairman != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Chairman)).Build()) .AddMembers(base.CreatePractitionerEntry(model.Chairman)) .Build()); } if (model.Diag != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Diag)).Build()) .AddMembers(base.CreateDiagEntry(model.Diag)) .Build()); } if (model.Practice != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Practice)).Build()) .AddMembers(CreatePracticeEntry(model.Practice)) .Build()); } if (model.HematologyPart != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.HematologyPart)).Build()) .AddMembers(CreateHematologyPartEntry(model.HematologyPart)) .Build()); } if (model.ChemotherapyPart != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.ChemotherapyPart)).Build()) .AddMembers(CreateChemotherapyPartEntry(model.ChemotherapyPart)) .Build()); } if (model.DrugProtocols != default && model.DrugProtocols.Count > 0) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DrugProtocols)).Build()) .AddMembers(model.DrugProtocols.Where(dp => dp != default).Select(dp => CreateDrugProtocolEntry(dp)).ToArray()) .Build()); } if (model.AccompanyingDrugs != default && model.AccompanyingDrugs.Count > 0) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.AccompanyingDrugs)).Build()) .AddMembers(model.AccompanyingDrugs.Where(ad => ad != default).Select(ad => CreateAccompanyingDrugEntry(ad)).ToArray()) .Build()); } compositionBuilder.AddContent(EhrManager.SectionBuilder.Clear().AddMembers(protocolDrugTherapyContent).Build()); EhrExtract ehrExtractModel = EhrManager .EhrExtractModelBuilder .AddEhrSystem(EhrManager.IIBuilder.Clear().AddRoot(EhrManager.OIDBuilder.Build(systemId)).Build()) .AddSubjectOfCare(EhrManager.IIBuilder.Clear().AddRoot(EhrManager.OIDBuilder.Build(model.Patient.IdentityNumber)).Build()) .AddTimeCreated(EhrManager.TSBuilder.Clear().AddTime(DateTime.Now).Build()) .AddComposition(compositionBuilder.Build()) .Build(); return(ehrExtractModel); }