318 lines
25 KiB
XML
318 lines
25 KiB
XML
<UserControl x:Class="Livia.Views.Controls.DataBlockTableControl"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:viewModels="clr-namespace:Livia.ViewModels"
|
|
xmlns:converters="clr-namespace:Livia.Views.Converters"
|
|
xmlns:attachedProperties="clr-namespace:Livia.Views.AttachedProperties"
|
|
xmlns:properties="clr-namespace:Livia.Properties"
|
|
xmlns:controls="clr-namespace:Livia.Views.Controls"
|
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
|
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
|
|
TextElement.FontWeight="Regular"
|
|
TextElement.FontSize="13"
|
|
TextOptions.TextFormattingMode="Ideal"
|
|
TextOptions.TextRenderingMode="Auto"
|
|
mc:Ignorable="d"
|
|
d:Background="{StaticResource PrimaryColorBrush}"
|
|
d:DataContext="{d:DesignInstance Type=viewModels:DataBlockTableViewModel}">
|
|
|
|
<UserControl.Resources>
|
|
<ResourceDictionary>
|
|
<converters:ServerJobStatusColorConverter x:Key="ServerJobStatusColorConverter" />
|
|
<converters:BooleanToVisibilityHiddenConverter x:Key="BooleanToVisibilityHiddenConverter" />
|
|
<converters:ServerJobStatusVisibilityHiddenConverter x:Key="ServerJobStatusVisibilityHiddenConverter" />
|
|
<converters:ServerJobStatusVisibilityCollapsedConverter x:Key="ServerJobStatusVisibilityCollapsedConverter" />
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="pack://application:,,,/Livia;component/Resources/Themes/ScrollViewBarStyle.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
|
|
</ResourceDictionary>
|
|
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<DataGrid Grid.Row="0"
|
|
ItemsSource="{Binding ServerJobList, IsAsync=True}"
|
|
x:Name="DataGrid"
|
|
Margin="20, 20, 20, 0"
|
|
Style="{StaticResource LiviaDataGrid}"
|
|
RowBackground="{StaticResource ServerJobListRowBackground}"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="0"
|
|
AlternatingRowBackground="{StaticResource PrimaryColorBrush}"
|
|
Background="Transparent"
|
|
EnableRowVirtualization="True"
|
|
ScrollViewer.CanContentScroll="True"
|
|
RowHeight="80"
|
|
GridLinesVisibility="None"
|
|
ColumnHeaderStyle="{StaticResource ServerJobListColumnHeader}"
|
|
CellStyle="{StaticResource LiviaDataGridCell}">
|
|
<DataGrid.Columns>
|
|
<DataGridTemplateColumn Header="{StaticResource PatientName}"
|
|
SortMemberPath="PatientName"
|
|
IsReadOnly="True">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding PatientName}"
|
|
ToolTip="{Binding PatientName}"
|
|
MaxWidth="150"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
Style="{StaticResource ServerJobListText}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="{StaticResource PatientId}"
|
|
SortMemberPath="PatientId"
|
|
IsReadOnly="True">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding PatientId}"
|
|
ToolTip="{Binding PatientId}"
|
|
MaxWidth="150"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
Style="{StaticResource ServerJobListText}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTextColumn Binding="{Binding PatientSex}"
|
|
Header="{StaticResource PatientSex}"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
ElementStyle="{StaticResource ServerJobListText}"
|
|
IsReadOnly="True" />
|
|
<DataGridTextColumn Binding="{Binding PatientAge}"
|
|
Header="{StaticResource PatientAge}"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
ElementStyle="{StaticResource ServerJobListText}"
|
|
IsReadOnly="True" />
|
|
<DataGridTextColumn Binding="{Binding StudyDate, StringFormat=d}"
|
|
Header="{StaticResource StudyDate}"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
ElementStyle="{StaticResource ServerJobListText}"
|
|
IsReadOnly="True" />
|
|
<DataGridTextColumn Binding="{Binding ImportTime}"
|
|
Header="{StaticResource ImportTime}"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
ElementStyle="{StaticResource ServerJobListText}"
|
|
IsReadOnly="True" />
|
|
<DataGridTemplateColumn Header="{StaticResource Sequence}"
|
|
IsReadOnly="True">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<ItemsControl ItemsSource="{Binding Sequence}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<UniformGrid Rows="2"
|
|
Columns="{Binding DataContext.SequenceColumnNum, ElementName=DataGrid}" />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Border Background="{StaticResource DataGridButtonBackgroundBrush}"
|
|
HorizontalAlignment="Stretch"
|
|
Width="125"
|
|
Margin="3">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Text="{Binding Name}"
|
|
Grid.Column="0"
|
|
Margin="5, 0"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
HorizontalAlignment="Left"
|
|
Style="{StaticResource MaterialDesignBody1TextBlock}" />
|
|
<materialDesign:PopupBox Background="{StaticResource PrimaryColorBrush}"
|
|
Grid.Column="1"
|
|
HorizontalAlignment="Right"
|
|
Padding="0"
|
|
Foreground="{StaticResource Gray1Brush}">
|
|
<Border Padding="40, 20"
|
|
Background="{StaticResource PrimaryColorBrush}">
|
|
<DataGrid ItemsSource="{Binding Series}"
|
|
MaxHeight="500"
|
|
Background="{StaticResource PrimaryColorBrush}"
|
|
Style="{StaticResource LiviaDataGrid}"
|
|
AlternatingRowBackground="{StaticResource PrimaryColorBrush}"
|
|
RowBackground="{StaticResource ServerJobListRowBackground}"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="0"
|
|
EnableRowVirtualization="True"
|
|
ScrollViewer.CanContentScroll="True"
|
|
RowHeight="80"
|
|
GridLinesVisibility="None"
|
|
ColumnHeaderStyle="{StaticResource ServerJobListColumnHeader}"
|
|
CellStyle="{StaticResource LiviaDataGridCell}">
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Binding="{Binding SeriesDescription}"
|
|
Header="{StaticResource Sequence}"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
FontSize="16"
|
|
IsReadOnly="True" />
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</Border>
|
|
</materialDesign:PopupBox>
|
|
</Grid>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="{StaticResource Status}"
|
|
SortMemberPath="Status"
|
|
IsReadOnly="True">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding StatusString}"
|
|
Foreground="{Binding Status, Converter={StaticResource ServerJobStatusColorConverter}}"
|
|
Style="{StaticResource ServerJobListText}" />
|
|
<Button Style="{StaticResource LiviaPrimaryTinyIconButton}"
|
|
Visibility="{Binding Status, Converter={StaticResource ServerJobStatusVisibilityCollapsedConverter}}"
|
|
Margin="-8, 2, -8, 0"
|
|
Foreground="{StaticResource MaterialDesignCheckBoxOff}"
|
|
attachedProperties:IconKindProperties.IconKind="HelpCircleOutline"
|
|
ToolTip="{Binding Tooltip}"
|
|
VerticalAlignment="Center">
|
|
</Button>
|
|
<materialDesign:PopupBox Visibility="{Binding ContainsMultipleHistory, Converter={StaticResource BooleanToVisibilityHiddenConverter}}"
|
|
Background="{StaticResource PrimaryColorBrush}"
|
|
Padding="0"
|
|
Margin="0, 2, 0, 0"
|
|
Foreground="{StaticResource Gray1Brush}">
|
|
<Border Padding="40, 20"
|
|
Background="{StaticResource PrimaryColorBrush}">
|
|
<DataGrid ItemsSource="{Binding HistoryList}"
|
|
MaxHeight="500"
|
|
Background="{StaticResource PrimaryColorBrush}"
|
|
Style="{StaticResource LiviaDataGrid}"
|
|
AlternatingRowBackground="{StaticResource PrimaryColorBrush}"
|
|
RowBackground="{StaticResource ServerJobListRowBackground}"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="0"
|
|
EnableRowVirtualization="True"
|
|
ScrollViewer.CanContentScroll="True"
|
|
RowHeight="80"
|
|
GridLinesVisibility="None"
|
|
ColumnHeaderStyle="{StaticResource ServerJobListColumnHeader}"
|
|
CellStyle="{StaticResource LiviaDataGridCell}">
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Binding="{Binding ImportTime}"
|
|
Header="{StaticResource ImportTime}"
|
|
Foreground="{StaticResource PrimaryTextColorBrush}"
|
|
ElementStyle="{StaticResource ServerJobListText}"
|
|
IsReadOnly="True" />
|
|
<DataGridTemplateColumn Header="{StaticResource Status}"
|
|
SortMemberPath="Status"
|
|
IsReadOnly="True">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding StatusString}"
|
|
Foreground="{Binding Status, Converter={StaticResource ServerJobStatusColorConverter}}"
|
|
Style="{StaticResource ServerJobListText}" />
|
|
<Button Style="{StaticResource LiviaPrimaryTinyIconButton}"
|
|
Visibility="{Binding Status, Converter={StaticResource ServerJobStatusVisibilityHiddenConverter}}"
|
|
Margin="-7, 2, 0, 0"
|
|
Foreground="{StaticResource MaterialDesignCheckBoxOff}"
|
|
attachedProperties:IconKindProperties.IconKind="HelpCircleOutline"
|
|
ToolTip="{Binding Tooltip}"
|
|
VerticalAlignment="Center">
|
|
</Button>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="{StaticResource Operation}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<Button Margin="0, 0, 0, 0"
|
|
Style="{StaticResource LiviaAlertIconButton}"
|
|
ToolTip="{StaticResource JobListDeleteSeriesButtonText}"
|
|
attachedProperties:IconKindProperties.IconKind="DeleteOutline"
|
|
IsEnabled="{Binding DataContext.ServerHandler.Processing, ElementName=DataGrid, Converter={StaticResource InvertBooleanConverter}}"
|
|
Click="HistoryListDeleteHistoryButtonClick" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</Border>
|
|
</materialDesign:PopupBox>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="{StaticResource Operation}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal"
|
|
Margin="10, 0">
|
|
<Button Margin="10, 0"
|
|
Style="{StaticResource LiviaPrimaryGridProcessingTextButton}"
|
|
Visibility="{Binding SelectSeriesButtonVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
attachedProperties:StringItemProperties.ItemName="{StaticResource JobListSelectSeriesButtonText}"
|
|
IsEnabled="True"
|
|
Click="SelectSeriesButtonClick" />
|
|
<StackPanel Orientation="Horizontal"
|
|
Visibility="{Binding JobSuccess, Converter={StaticResource BooleanToVisibilityHiddenConverter}}"
|
|
d:Visibility="Visible">
|
|
<Button Style="{StaticResource LiviaPrimaryGridProcessingTextButton}"
|
|
attachedProperties:StringItemProperties.ItemName="{StaticResource JobListLoadDataButtonText}"
|
|
IsEnabled="{Binding DataContext.ServerHandler.Processing, ElementName=DataGrid, Converter={StaticResource InvertBooleanConverter}}"
|
|
Click="LoadDataButtonClick" />
|
|
<Button Margin="10, 0, 0, 0"
|
|
Style="{StaticResource LiviaPrimaryGridProcessingTextButton}"
|
|
attachedProperties:StringItemProperties.ItemName="{StaticResource CheckReportsButtonText}"
|
|
Visibility="{Binding ShowSortedDownloadButton, Source={x:Static properties:Settings.Default}, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
IsEnabled="{Binding DataContext.ServerHandler.Processing, ElementName=DataGrid, Converter={StaticResource InvertBooleanConverter}}"
|
|
Click="CheckReportsButtonClick" />
|
|
<Button Margin="10, 0, 0, 0"
|
|
Style="{StaticResource LiviaPrimaryGridProcessingTextButton}"
|
|
Visibility="{Binding ShowArchiveDownloadButton, Source={x:Static properties:Settings.Default}, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
attachedProperties:StringItemProperties.ItemName="{StaticResource JobListDownloadArchiveButtonText}"
|
|
IsEnabled="{Binding DataContext.ServerHandler.Processing, ElementName=DataGrid, Converter={StaticResource InvertBooleanConverter}}"
|
|
Click="DownloadArchiveButtonClick" />
|
|
<Button Margin="10, 0, 0, 0"
|
|
Style="{StaticResource LiviaPrimaryGridProcessingTextButton}"
|
|
Visibility="{Binding ShowSortedDownloadButton, Source={x:Static properties:Settings.Default}, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
attachedProperties:StringItemProperties.ItemName="{StaticResource JobListDownloadSortedButtonText}"
|
|
IsEnabled="{Binding DataContext.ServerHandler.Processing, ElementName=DataGrid, Converter={StaticResource InvertBooleanConverter}}"
|
|
Click="DownloadSortedButtonClick" />
|
|
</StackPanel>
|
|
<StackPanel Visibility="{Binding DeleteButtonVisible, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<Button Margin="10, 0, 0, 0"
|
|
Style="{StaticResource LiviaAlertIconButton}"
|
|
attachedProperties:IconKindProperties.IconKind="DeleteOutline"
|
|
IsEnabled="{Binding DataContext.ServerHandler.Processing, ElementName=DataGrid, Converter={StaticResource InvertBooleanConverter}}"
|
|
Click="DeleteDataButtonClick"
|
|
ToolTip="{StaticResource JobListDeleteSeriesButtonText}" >
|
|
</Button>
|
|
</StackPanel>
|
|
<Button Margin="10, 0"
|
|
Style="{StaticResource LiviaPrimaryGridProcessingTextButton}"
|
|
Visibility="{Binding CancelButtonVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
attachedProperties:StringItemProperties.ItemName="{StaticResource JobListCancelButtonText}"
|
|
IsEnabled="True"
|
|
Click="CancelButtonClick" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
<controls:PagingControl DataContext="{Binding DataBlockPagingViewModel}"
|
|
Grid.Row="1"
|
|
Margin="10"
|
|
HorizontalAlignment="Center" />
|
|
</Grid>
|
|
</UserControl>
|