예제 #1
0
        private async Task ApproveSelectedSeries(bool?approve)
        {
            await CancelPipeline();

            if (!approve.GetValueOrDefault() || !SelectedSeries.Any())
            {
                SeriesSelected?.Invoke(this, new Series[] { });
                return;
            }

            DownloadImagesProgress = 0;

            var selectedSeries = SelectedSeries.Select(vm => vm.Series); // unwrap

            var request = new GetSeriesImagesRequest
            {
                Series = selectedSeries
            };

            request.Progress += (s, e) =>
            {
                DownloadImagesProgress = e;
            };

            await _searchService.GetSeriesImagesAsync(request, CancellationToken.None);

            SeriesSelected?.Invoke(this, selectedSeries.ToArray());

            SelectedSeries.Clear();

            DownloadImagesProgress = 0;
        }
예제 #2
0
        private bool ConfirmDeletion()
        {
            string message;
            var    notYetDeleted = AllSeries.Where(series => !series.ScheduledDeleteTime.HasValue);

            if (SelectedSeries.Any(selected => selected.ScheduledDeleteTime.HasValue))
            {
                message = SR.MessageSelectSeriesNotAlreadyScheduledForDeletion;
                Context.DesktopWindow.ShowMessageBox(message, MessageBoxActions.Ok);
                return(false);
            }

            if (notYetDeleted.All(notDeleted => SelectedSeries.Any(selected => selected.SeriesInstanceUid == notDeleted.SeriesInstanceUid)))
            {
                message = SR.MessageConfirmDeleteEntireStudy;
            }
            else
            {
                message = Context.SelectedSeries.Count == 1
                                     ? SR.MessageConfirmDeleteSeries
                                     : String.Format(SR.MessageFormatConfirmDeleteSeries, Context.SelectedSeries.Count);

                message = String.Format("{0} {1}", SR.MessagePartialStudyWarning, message);
            }

            return(DialogBoxAction.Yes == Context.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo));
        }
예제 #3
0
        private void BindRatio()
        {
            ListMaxRatio = new ObservableCollection <ComboBox>();
            double max             = 1.3;
            double min             = 0.5;
            double defaultMaxRatio = 1;

            defaultMaxRatio = 0;
            ListMaxRatio.Clear();
            if (SelectedSeries != null)
            {
                if (SelectedSeries.Contains("FSNP") || SelectedSeries.Contains("FSXNP"))
                {
                    max = 1.5;
                }
                else if (JCHVRF.Model.Project.CurrentProject.SubRegionCode == "TW" && SelectedSeries.StartsWith("IVX,"))
                {
                    min = 1;
                }
            }
            for (int i = (int)(max * 100); i >= min * 100; i -= 10)
            {
                ListMaxRatio.Add(new ComboBox {
                    DisplayName = Convert.ToString(i), Value = Convert.ToString(i)
                });
            }
            if (CurrentProject.SystemListNextGen != null)
            {
                if (CurrentSystem.MaxRatio == 0)
                {
                    SelectedMaxRatio = Convert.ToString((double)(Math.Round(max - defaultMaxRatio, 2) * 100));
                }
                else
                {
                    SelectedMaxRatio = Convert.ToString(CurrentSystem.MaxRatio * 100);
                }



                //    if (CurrentProject.SystemListNextGen.FirstOrDefault(sys => sys.IsActiveSystem == true) != null && CurrentProject.SystemListNextGen.FirstOrDefault(sys => sys.IsActiveSystem == true).OutdoorItem != null)
                //{
                //    if (CurrentProject.SystemListNextGen.FirstOrDefault(sys => sys.IsActiveSystem == true).OutdoorItem.MaxRatio == 0)
                //    {
                //        SelectedMaxRatio = Convert.ToString((int)(Math.Round(max - defaultMaxRatio, 2) * 100));
                //    }
                //    else
                //    {
                //        SelectedMaxRatio = Convert.ToString(CurrentProject.SystemListNextGen.FirstOrDefault(sys => sys.IsActiveSystem == true).OutdoorItem.MaxRatio);
                //    }
                //}
            }
        }
        private async Task CreateSeriesView()
        {
            _originalTimer = await SelectedSeries.Clone();

            _scheduledLoaded  = false;
            _recordingsLoaded = false;

            foreach (var day in SelectedSeries.Days)
            {
                var dayOfWeek = DaysOfWeekList.FirstOrDefault(x => x.DayOfWeek == day);
                if (dayOfWeek != null)
                {
                    dayOfWeek.IsSelected = true;
                }
            }
        }
예제 #5
0
        private void BindMaxRatio()
        {
            listMaxRatio = new ObservableCollection <int>();
            double max             = 1.3;
            double min             = 0.5;
            double defaultMaxRatio = 1;

            if (SelectedSeries.Contains("FSNP") || SelectedSeries.Contains("FSXNP"))
            {
                max = 1.5;
            }
            else if (newProjectLegacy.SubRegionCode == "TW" && SelectedSeries.StartsWith("IVX,"))
            {
                min = 1;
            }
            if (curSystemItem.OutdoorItem != null)
            {
                if (SelectedSeries.Contains("FSXNPE") && curSystemItem.OutdoorItem.CoolingCapacity > 150)
                {
                    max = 1.3;
                }
                else if (SelectedSeries.Contains("FSXNPE") && curSystemItem.OutdoorItem.CoolingCapacity <= 150)
                {
                    max = 1.5;
                }
            }
            if (curSystemItem.SysType == SystemType.OnlyFreshAir)
            {
                return;
            }

            if (curSystemItem.MaxRatio > max)
            {
                curSystemItem.MaxRatio = max;
            }
            defaultMaxRatio = curSystemItem.MaxRatio;
            for (int i = (int)(max * 100); i >= min * 100; i -= 10)
            {
                listMaxRatio.Add(i);
            }
            this.ListMaxRatio  = listMaxRatio;
            this.SelectedIndex = (int)(Math.Round(max - defaultMaxRatio, 2) * 10);
        }
예제 #6
0
        private Func <CaseReport, int> Selector(SelectedSeries selectedSeries)
        {
            switch (selectedSeries)
            {
            case SelectedSeries.Total:
                return(x =>
                       x.NumberOfFemalesAged5AndOlder +
                       x.NumberOfFemalesUnder5 +
                       x.NumberOfMalesAged5AndOlder +
                       x.NumberOfMalesUnder5);

            case SelectedSeries.Male:
                return(x =>
                       x.NumberOfMalesAged5AndOlder +
                       x.NumberOfMalesUnder5);

            case SelectedSeries.Female:
                return(x =>
                       x.NumberOfFemalesAged5AndOlder +
                       x.NumberOfFemalesUnder5);

            case SelectedSeries.AgeUnderFive:
                return(x =>
                       x.NumberOfMalesUnder5 +
                       x.NumberOfFemalesUnder5);

            case SelectedSeries.AgeFiveOrAbove:
                return(x =>
                       x.NumberOfFemalesAged5AndOlder +
                       x.NumberOfMalesAged5AndOlder);

            case SelectedSeries.FemaleUnderFive: return(x => x.NumberOfFemalesUnder5);

            case SelectedSeries.FemaleFiveOrAbove: return(x => x.NumberOfMalesAged5AndOlder);

            case SelectedSeries.MaleUnderFive: return(x => x.NumberOfMalesUnder5);

            case SelectedSeries.MaleFiveOrAbove: return(x => x.NumberOfMalesAged5AndOlder);

            default: return(x => 0);
            }
        }
예제 #7
0
        private void BindRatio()
        {
            ListMaxRatio = new ObservableCollection <int>();
            double max             = 1.3;
            double min             = 0.5;
            double defaultMaxRatio = 1;

            defaultMaxRatio = 0;
            ListMaxRatio.Clear();
            SelectedMaxRatio = 0;
            if (SelectedSeries != null)
            {
                if (SelectedSeries.Contains("FSNP") || SelectedSeries.Contains("FSXNP"))
                {
                    max = 1.5;
                }
                else if (JCHVRF.Model.Project.CurrentProject.SubRegionCode == "TW" && SelectedSeries.StartsWith("IVX,"))
                {
                    min = 1;
                }

                for (int i = (int)(max * 100); i >= min * 100; i -= 10)
                {
                    ListMaxRatio.Add(i);
                }
                this.SelectedIndex = (int)(Math.Round(max - defaultMaxRatio, 2) * 10);
            }
        }
예제 #8
0
        private void SendSeriesInternal()
        {
            if (!Enabled || this.Context.SelectedSeries == null)
            {
                return;
            }

            if (SelectedSeries.Any(series => series.ScheduledDeleteTime.HasValue))
            {
                Context.DesktopWindow.ShowMessageBox(SR.MessageCannotSendSeriesScheduledForDeletion, MessageBoxActions.Ok);
                return;
            }

            var serverTreeComponent = new ServerTreeComponent
            {
                IsReadOnly          = true,
                ShowCheckBoxes      = false,
                ShowLocalServerNode = false,
                ShowTitlebar        = false,
                ShowTools           = false
            };

            var dialogContainer = new SimpleComponentContainer(serverTreeComponent);

            ApplicationComponentExitCode code =
                ApplicationComponent.LaunchAsDialog(
                    Context.DesktopWindow,
                    dialogContainer,
                    SR.TitleSendSeries);

            if (code != ApplicationComponentExitCode.Accepted)
            {
                return;
            }

            if (serverTreeComponent.SelectedServers.Count == 0)
            {
                Context.DesktopWindow.ShowMessageBox(SR.MessageSelectDestination, MessageBoxActions.Ok);
                return;
            }

            if (serverTreeComponent.SelectedServers.Count > 1)
            {
                if (Context.DesktopWindow.ShowMessageBox(SR.MessageConfirmSendToMultipleServers, MessageBoxActions.YesNo) == DialogBoxAction.No)
                {
                    return;
                }
            }

            var client     = new DicomSendBridge();
            var seriesUids = Context.SelectedSeries.Select(item => item.SeriesInstanceUid).ToList();

            foreach (var destination in serverTreeComponent.SelectedServers)
            {
                try
                {
                    client.SendSeries(destination, Context.Study, seriesUids.ToArray(), WorkItemPriorityEnum.High);
                    DateTime?studyDate = DateParser.Parse(Context.Study.StudyDate);
                    Context.DesktopWindow.ShowAlert(AlertLevel.Info,
                                                    string.Format(SR.MessageFormatSendSeriesScheduled, seriesUids.Count,
                                                                  destination.Name, Context.Study.PatientsName.FormattedName, studyDate.HasValue ? Format.Date(studyDate.Value) : string.Empty,
                                                                  Context.Study.AccessionNumber),
                                                    SR.LinkOpenActivityMonitor, ActivityMonitorManager.Show, true);
                }
                catch (EndpointNotFoundException)
                {
                    Context.DesktopWindow.ShowMessageBox(SR.MessageSendDicomServerServiceNotRunning,
                                                         MessageBoxActions.Ok);
                }
                catch (Exception e)
                {
                    ExceptionHandler.Report(e, SR.MessageFailedToSendSeries, Context.DesktopWindow);
                }
            }
        }
예제 #9
0
        private void GetOutDoor(string SelectedType)
        {
            if (!String.IsNullOrEmpty(SelectedType))
            {
                listModel   = new List <ComboBox>();
                listOutDoor = new ObservableCollection <string>();
                DataTable dtOutdoor = bll.GetOutdoorListStd();
                DataRow[] rows;
                string    powerValue = "";
                if (SelectedPower != null)
                {
                    powerValue = this.SelectedPower;
                }
                if ("EU_E".Equals(newProjectLegacy.SubRegionCode) && "H".Equals(newProjectLegacy.BrandCode))
                {
                    rows = dtOutdoor.Select("SubString(ModelFull,11,1)='" + powerValue + "' and UnitType='" + SelectedType.Trim() + "' and Series='" + SelectedSeries.Trim() + "'" + " and TypeImage <> '' and ModelFull <> 'JVOL060VVEM0AQ'", "Model asc");
                }
                else
                {
                    rows = dtOutdoor.Select("SubString(ModelFull,11,1)='" + powerValue + "' and UnitType='" + SelectedType.Trim() + "' and Series='" + SelectedSeries.Trim() + "'" + " and TypeImage <> ''", "Model asc");
                }
                if (newProjectLegacy != null && newProjectLegacy.BrandCode == "H")
                {
                    DataTable     dt          = rows.CopyToDataTable();
                    List <string> outDoorList = dt.AsEnumerable()
                                                .Select(r => r.Field <string>("Model_Hitachi"))
                                                .ToList();
                    listOutDoor = new ObservableCollection <string>(outDoorList);

                    foreach (DataRow row1 in dt.Rows)
                    {
                        listModel.Add(new ComboBox
                        {
                            DisplayName = Convert.ToString(row1["Model_Hitachi"]),
                            Value       = Convert.ToString(row1["ModelFull"])
                        });
                    }
                }
                else if (newProjectLegacy != null && newProjectLegacy.BrandCode == "S")
                {
                    DataTable     dt          = rows.CopyToDataTable();
                    List <string> outDoorList = dt.AsEnumerable()
                                                .Select(r => r.Field <string>("Model_York"))
                                                .ToList();
                    listOutDoor = new ObservableCollection <string>(outDoorList);
                    foreach (DataRow row1 in dt.Rows)
                    {
                        listModel.Add(new ComboBox
                        {
                            DisplayName = Convert.ToString(row1["Model_Hitachi"]),
                            Value       = Convert.ToString(row1["ModelFull"])
                        });
                    }
                }
                this.ListOutdoor = listOutDoor;
                this.ListModel   = listModel;
            }
        }