public EhrExtract Convert(CommissionAprViewModel model, string name, string systemId) { if (model == default) { throw new ArgumentNullException(nameof(model)); } if (_commissionAprToEHRConverter == default) { _locker.EnterWriteLock(); if (_commissionAprToEHRConverter == default) { _commissionAprToEHRConverter = new CommissionAprToEHRConverter(EhrManager); } _locker.ExitWriteLock(); } return(_commissionAprToEHRConverter.Convert(model, name, systemId)); }
public async Task <IActionResult> Json(int id) { try { if (id < 1) { return(BadRequest()); } else { CommissionAprViewModel model = await GetModelById(id); if (model == default) { return(BadRequest()); } EhrExtract ehrExtractModel = ToEHRConverter.Convert(model, nameof(CommissionAprViewModel), 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(CommissionAprViewModel model, string name, string systemId) { if (model == default) { throw new ArgumentNullException(nameof(model)); } IEntryBuilder entryCommissionAprBuilder = EhrManager.EntryBuilder; entryCommissionAprBuilder.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.SendDate)).Build()) .AddValue(EhrManager.DATEBuilder.Clear().AddDate(model.SendDate).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.SpecCommission)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.SpecCommission).Build()).Build(), EhrManager.ElementBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.NoDecision)).Build()) .AddValue(EhrManager.INTBuilder.Clear().AddValue(model.NoDecision).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.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.AprSend != default) { entryCommissionAprBuilder.AddItems( EhrManager.ElementBuilder .Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.AprSend)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.AprSend).Build()) .Build()); } if (model.AprPriem != default) { entryCommissionAprBuilder.AddItems( EhrManager.ElementBuilder .Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.AprPriem)).Build()) .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.AprPriem).Build()) .Build()); } Content commissionAprContent = entryCommissionAprBuilder.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.Sender != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Sender)).Build()) .AddMembers(base.CreatePractitionerEntry(model.Sender)) .Build()); } if (model.MainDiag != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.MainDiag)).Build()) .AddMembers(base.CreateDiagEntry(model.MainDiag)) .Build()); } if (model.AddDiags != default && model.AddDiags.Count > 0) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.AddDiags)).Build()) .AddMembers(model.AddDiags.Where(ad => ad != default).Select(d => base.CreateDiagEntry(d)).ToArray()) .Build()); } if (model.APr38 != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.APr38)).Build()) .AddMembers(CreateAPr38PreviewViewModelEntry(model.APr38)) .Build()); } if (model.APr05 != default) { compositionBuilder.AddContent( EhrManager.SectionBuilder.Clear() .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.APr05)).Build()) .AddMembers(CreateAPr05PreviewViewModelEntry(model.APr05)) .Build()); } compositionBuilder.AddContent(EhrManager.SectionBuilder.Clear().AddMembers(commissionAprContent).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); }