Пример #1
0
        public async Task <InClinicProcedureViewModel> GetInClinicProcedureAsync(int id)
        {
            if (id < 0)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task <InClinicProcedureViewModel> .Run(() =>
            {
                InClinicProcedure inClinicProcedure = MedicContext.InClinicProcedures
                                                      .Include(icp => icp.PatientBranch)
                                                      .ThenInclude(pb => pb.HealthRegion)
                                                      .Include(icp => icp.PatientHealthRegion)
                                                      .SingleOrDefault(icp => icp.Id == id);

                if (inClinicProcedure == default)
                {
                    return default;
                }

                PatientSummaryViewModel patient = base.GetPatient <PatientSummaryViewModel>(p => p.Id == inClinicProcedure.PatientId);

                HealthcarePractitionerSummaryViewModel sender =
                    base.GetHealthcarePractitioner <HealthcarePractitionerSummaryViewModel>(hp => hp.Id == inClinicProcedure.SenderId);

                CeasedClinicalViewModel ceasedClinical = base.GetCeasedClinical <CeasedClinicalViewModel>(cc => cc.Id == inClinicProcedure.CeasedClinicalPathId);

                DiagPreviewViewModel firstMainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == inClinicProcedure.FirstMainDiagId);

                DiagPreviewViewModel secondMainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == inClinicProcedure.SecondMainDiagId);

                return new InClinicProcedureViewModel()
                {
                    Id = inClinicProcedure.Id,
                    Patient = patient,
                    PatientBranch = inClinicProcedure?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHealthRegion = inClinicProcedure.PatientHealthRegion.Name,
                    Sender = sender,
                    APrSend = inClinicProcedure.APrSend,
                    TypeProcSend = inClinicProcedure.TypeProcSend,
                    DateSend = inClinicProcedure.DateSend,
                    CPrPriem = inClinicProcedure.CPrPriem,
                    APrPriem = inClinicProcedure.APrPriem,
                    TypeProcPriem = inClinicProcedure.TypeProcPriem,
                    ProcRefuse = inClinicProcedure.ProcRefuse,
                    CeasedClinicalPath = ceasedClinical,
                    IZNumChild = inClinicProcedure.IZNumChild,
                    IZYearChild = inClinicProcedure.IZYearChild,
                    FirstVisitDate = inClinicProcedure.FirstVisitDate,
                    PlanVisitDate = inClinicProcedure.PlanVisitDate,
                    VisitDoctorUniqueIdentifier = inClinicProcedure.VisitDoctorUniqueIdentifier,
                    VisitDoctorName = inClinicProcedure.VisitDoctorName,
                    FirstMainDiag = firstMainDiag,
                    SecondMainDiag = secondMainDiag,
                    PatientStatus = inClinicProcedure.PatientStatus,
                    NZOKPay = inClinicProcedure.NZOKPay
                };
            }));
        }
Пример #2
0
        public async Task <DispObservationViewModel> GetDispObservationAsync(int id)
        {
            if (id < 1)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task <DispObservationViewModel> .Run(() =>
            {
                DispObservation dispObservation = MedicContext.DispObservations
                                                  .Include(disp => disp.PatientBranch)
                                                  .ThenInclude(pb => pb.HealthRegion)
                                                  .Include(disp => disp.PatientHRegion)
                                                  .SingleOrDefault(disp => disp.Id == id);

                if (dispObservation == default)
                {
                    return default;
                }

                PatientSummaryViewModel patient = base.GetPatient <PatientSummaryViewModel>(p => p.Id == dispObservation.PatientId);

                HealthcarePractitionerSummaryViewModel doctor =
                    base.GetHealthcarePractitioner <HealthcarePractitionerSummaryViewModel>(hp => hp.Id == dispObservation.DoctorId);

                List <MDISummaryViewModel> MDIs = MedicContext.MDIs
                                                  .Where(m => m.DispObservationId == dispObservation.Id)
                                                  .ProjectTo <MDISummaryViewModel>(Configuration)
                                                  .ToList();

                DiagPreviewViewModel firstMainDiag = GetDiag <DiagPreviewViewModel>(d => d.Id == dispObservation.MainDiagFirstId);

                DiagPreviewViewModel secondMainDiag = GetDiag <DiagPreviewViewModel>(d => d.Id == dispObservation.MainDiagSecondId);

                return new DispObservationViewModel()
                {
                    Id = dispObservation.Id,
                    Patient = patient,
                    PatientBranch = dispObservation?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = dispObservation?.PatientHRegion?.Name ?? default,
                    Doctor = doctor,
                    DispNum = dispObservation.DispNum,
                    DispDate = dispObservation.DispDate,
                    AprCode = dispObservation.AprCode,
                    DiagDate = dispObservation.DiagDate,
                    DispanserDate = dispObservation.DispanserDate,
                    DispVisit = dispObservation.DispVisit,
                    MDIs = MDIs,
                    FirstMainDiag = firstMainDiag,
                    SecondMainDiag = secondMainDiag,
                    Anamnesa = dispObservation.Anamnesa,
                    HState = dispObservation.HState,
                    Therapy = dispObservation.Therapy,
                    Sign = dispObservation.Sign,
                    NZOKPay = dispObservation.NZOKPay
                };
            }));
        }
        private Cluster CreateDiagCluster(DiagPreviewViewModel model, string name)
        {
            if (model == default)
            {
                throw new ArgumentNullException(nameof(model));
            }

            return(EhrManager.ClusterBuilder.Clear()
                   .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(name).Build())
                   .AddParts(
                       EhrManager.ElementBuilder.Clear()
                       .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Name)).Build())
                       .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Name).Build()).Build(),
                       EhrManager.ElementBuilder.Clear()
                       .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Code)).Build())
                       .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Code).Build()).Build()
                       ).Build());
        }
Пример #4
0
        public async Task <TransferViewModel> GetTrasnferAsync(int id)
        {
            if (id == default)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task.Run(() =>
            {
                Transfer transfer = this.MedicContext.Transfers
                                    .Include(t => t.CPFile)
                                    .ThenInclude(cp => cp.FileType)
                                    .SingleOrDefault(t => t.Id == id);

                if (transfer == default)
                {
                    return default;
                }

                DiagPreviewViewModel firstMainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == transfer.FirstMainDiagId);
                DiagPreviewViewModel secondMainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == transfer.SecondMainDiagId);

                return new TransferViewModel()
                {
                    Id = transfer.Id,
                    IZYear = transfer.IZYear,
                    IZNumber = transfer.IZNumber,
                    FirstMainDiag = firstMainDiag,
                    SecondMainDiag = secondMainDiag,
                    CashPatient = transfer.CashPatient,
                    ClinicalProcedure = transfer.CashPatient,
                    ClinicalPath = transfer.ClinicalPath,
                    AmbulatoryProcedure = transfer.AmbulatoryProcedure,
                    DischargeWard = transfer.DischargeWard,
                    TransferWard = transfer.TransferWard,
                    TransferDateTime = transfer.TransferDateTime,
                    CPFile = transfer.CPFile?.FileType?.Name ?? default
                };
            }));
        }
Пример #5
0
        protected Entry CreateDiagEntry(DiagPreviewViewModel model)
        {
            if (model == default)
            {
                throw new ArgumentNullException(nameof(model));
            }

            return(EhrManager.EntryBuilder
                   .Clear()
                   .AddItems(
                       EhrManager.ElementBuilder
                       .Clear()
                       .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Code)).Build())
                       .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Code).Build())
                       .Build(),
                       EhrManager.ElementBuilder
                       .Clear()
                       .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Name)).Build())
                       .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Name).Build())
                       .Build())
                   .Build());
        }
Пример #6
0
        public async Task <CommissionAprViewModel> GetCommissionAprAsync(int id)
        {
            if (id < 1)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task <CommissionAprViewModel> .Run(() =>
            {
                CommissionApr commissionApr = MedicContext.CommissionAprs
                                              .Include(ca => ca.PatientBranch)
                                              .ThenInclude(pb => pb.HealthRegion)
                                              .Include(ca => ca.PatientHRegion)
                                              .SingleOrDefault(ca => ca.Id == id);

                if (commissionApr == default)
                {
                    return default;
                }

                PatientSummaryViewModel patient = base.GetPatient <PatientSummaryViewModel>(p => p.Id == commissionApr.PatientId);

                HealthcarePractitionerSummaryViewModel sender =
                    base.GetHealthcarePractitioner <HealthcarePractitionerSummaryViewModel>(hp => hp.Id == commissionApr.SenderId);

                HealthcarePractitionerSummaryViewModel chairman =
                    base.GetHealthcarePractitioner <HealthcarePractitionerSummaryViewModel>(hp => hp.Id == commissionApr.ChairmanId);

                DiagPreviewViewModel mainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == commissionApr.MainDiagId);

                List <DiagPreviewViewModel> addedDiag = base.GetDiags <DiagPreviewViewModel>(d => d.CommissionAprId == commissionApr.Id);

                APr38PreviewViewModel APr38 = MedicContext.APr38s
                                              .ProjectTo <APr38PreviewViewModel>(Configuration)
                                              .SingleOrDefault(apr => apr.Id == commissionApr.APr38Id);

                APr05PreviewViewModel APr05 = MedicContext.APr05s
                                              .ProjectTo <APr05PreviewViewModel>(Configuration)
                                              .SingleOrDefault(apr => apr.Id == commissionApr.APr05Id);

                return new CommissionAprViewModel()
                {
                    Id = commissionApr.Id,
                    Patient = patient,
                    PatientBranch = commissionApr?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = commissionApr.PatientHRegion.Name,
                    Sender = sender,
                    AprSend = commissionApr.AprSend,
                    SendDate = commissionApr.SendDate,
                    AprPriem = commissionApr.AprPriem,
                    SpecCommission = commissionApr.SpecCommission,
                    NoDecision = commissionApr.NoDecision,
                    DecisionDate = commissionApr.DecisionDate,
                    Chairman = chairman,
                    MainDiag = mainDiag,
                    AddDiags = addedDiag,
                    APr38 = APr38,
                    APr05 = APr05,
                    Sign = commissionApr.Sign,
                    NZOKPay = commissionApr.NZOKPay
                };
            }));
        }
        public async Task <ProtocolDrugTherapyViewModel> GetProtocolDrugTherapyAsync(int id)
        {
            if (id < 1)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task <ProtocolDrugTherapyViewModel> .Run(() =>
            {
                ProtocolDrugTherapy protocolDrugTherapy = MedicContext.ProtocolDrugTherapies
                                                          .Include(pdt => pdt.PatientBranch)
                                                          .ThenInclude(pb => pb.HealthRegion)
                                                          .Include(pdt => pdt.PatientHRegion)
                                                          .Include(pdt => pdt.CPFile)
                                                          .ThenInclude(cp => cp.FileType)
                                                          .SingleOrDefault(pdt => pdt.Id == id);

                if (protocolDrugTherapy == default)
                {
                    return default;
                }

                PatientSummaryViewModel patient = base.GetPatient <PatientSummaryViewModel>(p => p.Id == protocolDrugTherapy.PatientId);

                PracticePreviewViewModel practice = MedicContext.Practices
                                                    .ProjectTo <PracticePreviewViewModel>(Configuration)
                                                    .SingleOrDefault(p => p.Id == protocolDrugTherapy.PracticeId);

                DiagPreviewViewModel diag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == protocolDrugTherapy.DiagId);

                HematologyPartPreviewViewModel hematologyPart = MedicContext.HematologyParts
                                                                .ProjectTo <HematologyPartPreviewViewModel>(Configuration)
                                                                .SingleOrDefault(hp => hp.Id == protocolDrugTherapy.Id);

                ChemotherapyPartPreviewViewModel chemotherapyPart = MedicContext.ChemotherapyParts
                                                                    .ProjectTo <ChemotherapyPartPreviewViewModel>(Configuration)
                                                                    .SingleOrDefault(cp => cp.Id == protocolDrugTherapy.ChemotherapyPartId);

                List <DrugProtocolPreviewViewModel> drugProtocols = MedicContext.DrugProtocols
                                                                    .Where(dp => dp.ProtocolDrugTherapyId == protocolDrugTherapy.Id)
                                                                    .ProjectTo <DrugProtocolPreviewViewModel>(Configuration)
                                                                    .ToList();

                List <AccompanyingDrugPreviewViewModel> accompanyingDrugs = MedicContext.AccompanyingDrugs
                                                                            .Where(ad => ad.ProtocolDrugTherapyId == protocolDrugTherapy.Id)
                                                                            .ProjectTo <AccompanyingDrugPreviewViewModel>(Configuration)
                                                                            .ToList();

                HealthcarePractitionerSummaryViewModel chairman =
                    base.GetHealthcarePractitioner <HealthcarePractitionerSummaryViewModel>(hp => hp.Id == protocolDrugTherapy.ChairmanId);

                return new ProtocolDrugTherapyViewModel()
                {
                    Id = protocolDrugTherapy.Id,
                    Patient = patient,
                    PatientBranch = protocolDrugTherapy?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = protocolDrugTherapy?.PatientHRegion?.Name ?? default,
                    Practice = practice,
                    NumberOfDecision = protocolDrugTherapy.NumberOfDecision,
                    DecisionDate = protocolDrugTherapy.DecisionDate,
                    PracticeCodeProtocol = protocolDrugTherapy.PracticeCodeProtocol,
                    NumberOfProtocol = protocolDrugTherapy.NumberOfProtocol,
                    ProtocolDate = protocolDrugTherapy.ProtocolDate,
                    Diag = diag,
                    Height = protocolDrugTherapy.Height,
                    Weight = protocolDrugTherapy.Weight,
                    BSA = protocolDrugTherapy.BSA,
                    TherapyLine = protocolDrugTherapy.TherapyLine,
                    Scheme = protocolDrugTherapy.Scheme,
                    CycleCount = protocolDrugTherapy.CycleCount,
                    HematologyPart = hematologyPart,
                    ChemotherapyPart = chemotherapyPart,
                    DrugProtocols = drugProtocols,
                    AccompanyingDrugs = accompanyingDrugs,
                    Chairman = chairman,
                    Sign = protocolDrugTherapy.Sign,
                    CPFile = protocolDrugTherapy?.CPFile?.FileType.Name,
                };
            }));
        }
Пример #8
0
        public async Task <PathProcedureViewModel> GetPathProcedureByIdAsync(int id)
        {
            return(await Task <PathProcedureViewModel> .Run(() =>
            {
                PathProcedure pathProcedure = MedicContext.PathProcedures
                                              .Include(pp => pp.PatientBranch)
                                              .ThenInclude(pb => pb.HealthRegion)
                                              .Include(pp => pp.PatientHRegion)
                                              .SingleOrDefault(pp => pp.Id == id);

                if (pathProcedure == default)
                {
                    return default;
                }

                PatientSummaryViewModel patient = base.GetPatient <PatientSummaryViewModel>(p => p.Id == pathProcedure.PatientId);

                HealthcarePractitionerSummaryViewModel sender =
                    base.GetHealthcarePractitioner <HealthcarePractitionerSummaryViewModel>(hp => hp.Id == pathProcedure.SenderId);

                CeasedClinicalViewModel CeasedProcedure = base.GetCeasedClinical <CeasedClinicalViewModel>(cc => cc.Id == pathProcedure.CeasedProcedureId);

                CeasedClinicalViewModel CeasedClinicalPath = base.GetCeasedClinical <CeasedClinicalViewModel>(cc => cc.Id == pathProcedure.CeasedClinicalPathId);

                DiagPreviewViewModel firstMainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == pathProcedure.FirstMainDiagId);

                DiagPreviewViewModel secondMainDiag = base.GetDiag <DiagPreviewViewModel>(d => d.Id == pathProcedure.SecondMainDiagId);

                List <ProcedureSummaryViewModel> doneNewProcedures = base.GetProcedures <ProcedureSummaryViewModel>(pr => pr.PathProcedureId == pathProcedure.Id);

                List <ClinicUsedDrugViewModel> usedDrugs = MedicContext.ClinicUsedDrugs
                                                           .Where(ud => ud.PathProcedureId == pathProcedure.Id)
                                                           .ProjectTo <ClinicUsedDrugViewModel>(Configuration)
                                                           .ToList();

                List <ClinicProcedureViewModel> clinicProcedure = MedicContext.ClinicProcedures
                                                                  .Where(cp => cp.PathProcedureId == pathProcedure.Id)
                                                                  .ProjectTo <ClinicProcedureViewModel>(Configuration)
                                                                  .ToList();

                List <DoneProcedureViewModel> doneProcedures = MedicContext.DoneProcedures
                                                               .Where(dp => dp.PathProcedureId == pathProcedure.Id)
                                                               .ProjectTo <DoneProcedureViewModel>(Configuration)
                                                               .ToList();

                return new PathProcedureViewModel()
                {
                    Id = pathProcedure.Id,
                    Patient = patient,
                    PatientBranch = pathProcedure?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = pathProcedure?.PatientHRegion?.Name ?? default,
                    Sender = sender,
                    CPrSend = pathProcedure.CPrSend,
                    APrSend = pathProcedure.APrSend,
                    TypeProcSend = pathProcedure.TypeProcSend,
                    DateSend = pathProcedure.DateSend,
                    CPrPriem = pathProcedure.CPrPriem,
                    APrPriem = pathProcedure.APrPriem,
                    MedicalWard = pathProcedure.MedicalWard,
                    TypeProcPriem = pathProcedure.TypeProcPriem,
                    ProcRefuse = pathProcedure.ProcRefuse,
                    CeasedProcedure = CeasedProcedure,
                    CeasedClinicalPath = CeasedClinicalPath,
                    IZNumChild = pathProcedure.IZNumChild,
                    IZYearChild = pathProcedure.IZYearChild,
                    FirstVisitDate = pathProcedure.FirstVisitDate,
                    DatePlanPriem = pathProcedure.DatePlanPriem,
                    VisitDoctorUniqueIdentifier = pathProcedure.VisitDoctorUniqueIdentifier,
                    VisitDoctorName = pathProcedure.VisitDoctorName,
                    FirstMainDiag = firstMainDiag,
                    SecondMainDiag = secondMainDiag,
                    DateProcedureBegins = pathProcedure.DateProcedureBegins,
                    DateProcedureEnd = pathProcedure.DateProcedureEnd,
                    DoneNewProcedures = doneNewProcedures,
                    UsedDrugs = usedDrugs,
                    ClinicProcedures = clinicProcedure,
                    DoneProcedures = doneProcedures,
                    AllDoneProcedures = pathProcedure.AllDoneProcedures,
                    AllDrugCost = pathProcedure.AllDrugCost,
                    PatientStatus = pathProcedure.PatientStatus,
                    OutUniqueIdentifier = pathProcedure.OutUniqueIdentifier,
                    Sign = pathProcedure.Sign,
                    NZOKPay = pathProcedure.NZOKPay
                };
            }));
        }