public EhrExtract Convert(DispObservationViewModel model, string name, string systemId) { if (model == default) { throw new ArgumentNullException(nameof(model)); } if (_dispObservationToEHRConverter == default) { _locker.EnterWriteLock(); if (_dispObservationToEHRConverter == default) { _dispObservationToEHRConverter = new DispObservationToEHRConverter(EhrManager); } _locker.ExitWriteLock(); } return(_dispObservationToEHRConverter.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 { DispObservationViewModel model = await GetModelById(id); if (model == default) { return(BadRequest()); } EhrExtract ehrExtractModel = ToEHRConverter.Convert(model, nameof(DispObservationViewModel), 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(DispObservationViewModel model, string name, string systemId) { if (model == default) { throw new ArgumentNullException(nameof(model)); } IEntryBuilder entryDispObservationBuilder = EhrManager.EntryBuilder; entryDispObservationBuilder.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.DispNum)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.DispNum).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DispDate)).Build()) .AddValue(EhrManager.DATEBuilder.Clear().AddDate(model.DispDate).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.AprCode)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.AprCode).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DiagDate)).Build()) .AddValue(EhrManager.DATEBuilder.Clear().AddDate(model.DiagDate).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DispVisit)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.DispVisit).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Anamnesa)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Anamnesa).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.HState)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.HState).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Therapy)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Therapy).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.NZOKPay)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.NZOKPay).Build()).Build() ); if (model.DispanserDate != default) { entryDispObservationBuilder.AddItems( EhrManager.ElementBuilder .Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DispanserDate)).Build()) .AddValue(EhrManager.DATEBuilder.Clear().AddDate((DateTime)model.DispanserDate).Build()) .Build()); } Content dispObservationContent = entryDispObservationBuilder.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.Doctor != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Doctor)).Build()) .AddMembers(base.CreatePractitionerEntry(model.Doctor)) .Build()); } if (model.FirstMainDiag != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.FirstMainDiag)).Build()) .AddMembers(base.CreateDiagEntry(model.FirstMainDiag)) .Build()); } if (model.SecondMainDiag != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.SecondMainDiag)).Build()) .AddMembers(base.CreateDiagEntry(model.SecondMainDiag)) .Build()); } if (model.MDIs != default && model.MDIs.Count > 0) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.MDIs)).Build()) .AddMembers(model.MDIs.Where(m => m != default).Select(m => CreateMDIsEntry(m)).ToArray()) .Build()); } compositionBuilder.AddContent(EhrManager.SectionBuilder.Clear().AddMembers(dispObservationContent).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); }