Пример #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
                };
            }));
        }
Пример #3
0
        public async Task <PlannedViewModel> GetPlannedAsync(int id)
        {
            return(await Task <PlannedViewModel> .Run(() =>
            {
                Planned planned = MedicContext.Plannings
                                  .Include(p => p.PatientBranch)
                                  .ThenInclude(pb => pb.HealthRegion)
                                  .Include(p => p.PatientHRegion)
                                  .Include(p => p.CPFile)
                                  .ThenInclude(cp => cp.FileType)
                                  .SingleOrDefault(p => p.Id == id);

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

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

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

                List <DiagnosePreviewViewModel> sendDiagnose = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.SendPlannedId == planned.Id);

                List <DiagnosePreviewViewModel> diagnose = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.PlannedId == planned.Id);

                return new PlannedViewModel()
                {
                    Id = planned.Id,
                    Patient = patient,
                    PatientBranch = planned?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = planned?.PatientHRegion?.Name ?? default,
                    InType = planned.InType,
                    Sender = sender,
                    SendDate = planned.SendDate,
                    SendDiagnoses = sendDiagnose,
                    SendUrgency = planned.SendUrgency,
                    SendClinicalPath = planned.SendClinicalPath,
                    SendAPr = planned.SendAPr,
                    InAPr = planned.InAPr,
                    UniqueIdentifier = planned.UniqueIdentifier,
                    ExaminationDate = planned.ExaminationDate,
                    PlannedEntryDate = planned.PlannedEntryDate,
                    PlannedNumber = planned.PlannedNumber,
                    Diagnoses = diagnose,
                    Urgency = planned.Urgency,
                    ClinicalPath = planned.ClinicalPath,
                    NZOKPay = planned.NZOKPay,
                    CPFile = planned?.CPFile?.FileType?.Name ?? default
                };
            }));
        }
Пример #4
0
        protected Entry CreatePractitionerEntry(HealthcarePractitionerSummaryViewModel model)
        {
            if (model == default)
            {
                throw new ArgumentNullException(nameof(model));
            }

            IEntryBuilder entryPratitionerBuilder = EhrManager.EntryBuilder.Clear();

            if (!string.IsNullOrWhiteSpace(model.UniqueIdentifier))
            {
                entryPratitionerBuilder.AddItems(
                    EhrManager.ElementBuilder
                    .Clear()
                    .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.UniqueIdentifier)).Build())
                    .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.UniqueIdentifier).Build())
                    .Build());
            }

            if (!string.IsNullOrWhiteSpace(model.DeputyUniqueIdentifier))
            {
                entryPratitionerBuilder.AddItems(
                    EhrManager.ElementBuilder
                    .Clear()
                    .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.DeputyUniqueIdentifier)).Build())
                    .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.DeputyUniqueIdentifier).Build())
                    .Build());
            }

            if (!string.IsNullOrWhiteSpace(model.Speciality))
            {
                entryPratitionerBuilder.AddItems(
                    EhrManager.ElementBuilder
                    .Clear()
                    .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Speciality)).Build())
                    .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Speciality).Build())
                    .Build());
            }

            if (!string.IsNullOrWhiteSpace(model.Name))
            {
                entryPratitionerBuilder.AddItems(
                    EhrManager.ElementBuilder
                    .Clear()
                    .AddName(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(nameof(model.Name)).Build())
                    .AddValue(EhrManager.SimpleTextBuilder.Clear().AddOriginalText(model.Name).Build())
                    .Build());
            }

            return(entryPratitionerBuilder.Build());
        }
Пример #5
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,
                };
            }));
        }
Пример #7
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
                };
            }));
        }
Пример #8
0
        public async Task <InViewModel> GetInAsync(int id)
        {
            if (id < 1)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task <InViewModel> .Run(() =>
            {
                In inEntity = MedicContext.Ins
                              .Include(i => i.PatientBranch)
                              .ThenInclude(pb => pb.HealthRegion)
                              .Include(i => i.PatientHRegion)
                              .Include(i => i.CPFile)
                              .ThenInclude(cp => cp.FileType)
                              .SingleOrDefault(i => i.Id == id);

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

                PatientSummaryViewModel patient = MedicContext.Patients
                                                  .ProjectTo <PatientSummaryViewModel>(Configuration)
                                                  .SingleOrDefault(p => p.Id == inEntity.PatientId);

                HealthcarePractitionerSummaryViewModel sender = MedicContext.HealthcarePractitioners
                                                                .ProjectTo <HealthcarePractitionerSummaryViewModel>(Configuration)
                                                                .SingleOrDefault(hp => hp.Id == inEntity.SenderId);

                List <DiagnosePreviewViewModel> sendDiagnoses = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.SendInId == inEntity.Id);

                List <DiagnosePreviewViewModel> diagnoses = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.InId == inEntity.Id);

                return new InViewModel()
                {
                    Id = inEntity.Id,
                    Patient = patient,
                    PatientBranch = inEntity?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = inEntity.PatientHRegion.Name,
                    Sender = sender,
                    InType = inEntity.InType,
                    SendDate = inEntity.SendDate,
                    SendDiagnoses = sendDiagnoses,
                    SendUrgency = inEntity.SendUrgency,
                    SendAPr = inEntity.SendAPr,
                    SendClinicalPath = inEntity.SendClinicalPath,
                    UniqueIdentifier = inEntity.UniqueIdentifier,
                    ExaminationDate = inEntity.ExaminationDate,
                    PlannedEntryDate = inEntity.PlannedEntryDate,
                    PlannedNumber = inEntity.PlannedNumber,
                    Diagnoses = diagnoses,
                    Urgency = inEntity.Urgency,
                    InAPr = inEntity.InAPr,
                    ClinicalPath = inEntity.ClinicalPath,
                    NZOKPay = inEntity.NZOKPay,
                    InMedicalWard = inEntity.InMedicalWard,
                    EntryDate = inEntity.EntryDate,
                    Severity = inEntity.Severity,
                    Delay = inEntity.Delay,
                    Payer = inEntity.Payer,
                    AgeInDays = inEntity.AgeInDays,
                    WeightInGrams = inEntity.WeightInGrams,
                    BirthWeight = inEntity.BirthWeight,
                    MotherIZYear = inEntity.MotherIZYear,
                    MotherIZNo = inEntity.MotherIZNo,
                    IZYear = inEntity.IZYear,
                    IZNo = inEntity.IZNo,
                    CPFile = inEntity?.CPFile?.FileType?.Name ?? default
                };
            }));
        }
Пример #9
0
        public async Task <OutViewModel> GetOutAsync(int id)
        {
            if (id < 1)
            {
                throw new ArgumentException(nameof(id));
            }

            return(await Task <OutViewModel> .Run(() =>
            {
                Out outEntity = MedicContext.Outs
                                .Include(o => o.PatientBranch)
                                .ThenInclude(pb => pb.HealthRegion)
                                .Include(o => o.PatientHRegion)
                                .Include(o => o.CPFile)
                                .ThenInclude(cp => cp.FileType)
                                .SingleOrDefault(o => o.Id == id);

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

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

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

                List <DiagnosePreviewViewModel> sendDiagnoses = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.SendOutId == outEntity.Id);

                List <DiagnosePreviewViewModel> diagnoses = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.OutId == outEntity.Id);

                DiagnosePreviewViewModel dead = base.GetDiagnose <DiagnosePreviewViewModel>(d => d.Id == outEntity.DeadId);

                HistologicalResultSummaryViewModel histologicalResult = MedicContext.HistologicalResults
                                                                        .ProjectTo <HistologicalResultSummaryViewModel>(Configuration)
                                                                        .SingleOrDefault(hr => hr.Id == outEntity.HistologicalResultId);

                EpicrisisSummaryViewModel epicrisis = MedicContext.Epicrises
                                                      .ProjectTo <EpicrisisSummaryViewModel>(Configuration)
                                                      .SingleOrDefault(e => e.Id == outEntity.EpicrisisId);

                DiagnosePreviewViewModel outMainDiagnose = base.GetDiagnose <DiagnosePreviewViewModel>(d => d.Id == outEntity.OutMainDiagnoseId);

                List <DiagnosePreviewViewModel> outDiagnoses = base.GetDiagnoses <DiagnosePreviewViewModel>(d => d.OutOutId == outEntity.Id);

                List <UsedDrugSummaryViewModel> usedDrugs = MedicContext.UsedDrugs
                                                            .Where(ud => ud.OutId == outEntity.Id)
                                                            .ProjectTo <UsedDrugSummaryViewModel>(Configuration)
                                                            .ToList();

                List <ProcedureSummaryViewModel> procedures = base.GetProcedures <ProcedureSummaryViewModel>(p => p.OutId == outEntity.Id);

                return new OutViewModel()
                {
                    Id = outEntity.Id,
                    Patient = patient,
                    PatientBranch = outEntity?.PatientBranch?.HealthRegion?.Name ?? default,
                    PatientHRegion = outEntity?.PatientHRegion?.Name ?? default,
                    Sender = sender,
                    InType = outEntity.InType,
                    SendDate = outEntity.SendDate,
                    SendDiagnoses = sendDiagnoses,
                    SendUrgency = outEntity.SendUrgency,
                    SendClinicalPath = outEntity.SendClinicalPath,
                    SendAPr = outEntity.SendAPr,
                    PlannedNumber = outEntity.PlannedNumber,
                    InAPr = outEntity.InAPr,
                    UniqueIdentifier = outEntity.UniqueIdentifier,
                    ExaminationDate = outEntity.ExaminationDate,
                    Diagnoses = diagnoses,
                    Urgency = outEntity.Urgency,
                    ClinicalPath = outEntity.ClinicalPath,
                    NZOKPay = outEntity.NZOKPay,
                    InMedicalWard = outEntity.InMedicalWard,
                    EntryDate = outEntity.EntryDate,
                    Severity = outEntity.Severity,
                    Delay = outEntity.Delay,
                    Payer = outEntity.Payer,
                    AgeInDays = outEntity.AgeInDays,
                    WeightInGrams = outEntity.WeightInGrams,
                    BirthWeight = outEntity.BirthWeight,
                    MotherIZYear = outEntity.MotherIZYear,
                    MotherIZNo = outEntity.MotherIZNo,
                    IZYear = outEntity.IZYear,
                    IZNo = outEntity.IZNo,
                    OutMedicalWard = outEntity.OutMedicalWard,
                    OutUniqueIdentifier = outEntity.OutUniqueIdentifier,
                    OutDate = outEntity.OutDate,
                    OutType = outEntity.OutType,
                    Dead = dead,
                    BirthPractice = outEntity.BirthPractice,
                    BirthNumber = outEntity.BirthNumber,
                    BirthGestWeek = outEntity.BirthGestWeek,
                    OutClinicalPath = outEntity.OutClinicalPath,
                    OutAPr = outEntity.OutAPr,
                    HistologicalResult = histologicalResult,
                    Epicrisis = epicrisis,
                    OutMainDiagnose = outMainDiagnose,
                    OutDiagnoses = outDiagnoses,
                    UsedDrugs = usedDrugs,
                    Procedures = procedures,
                    BedDays = outEntity.BedDays,
                    HLDateFrom = outEntity.HLDateFrom,
                    HLNumber = outEntity.HLNumber,
                    HLTotalDays = outEntity.HLTotalDays,
                    StateAtDischarge = outEntity.StateAtDischarge,
                    Laparoscopic = outEntity.Laparoscopic,
                    EndCourse = outEntity.EndCourse,
                    CPFile = outEntity?.CPFile?.FileType?.Name ?? default
                };
            }));
        }