livia-test/Livia/Models/Data/RoiSummaryDataJson.cs
2025-03-28 14:31:53 +08:00

42 lines
1.7 KiB
C#

using System.Text.Json.Serialization;
using JetBrains.Annotations;
namespace Livia.Models.Data;
public readonly record struct RoiSummaryDataJson
{
[UsedImplicitly] public bool? Visible { get; init; }
[UsedImplicitly] public List<RoiGroup> Groups { get; init; }
}
public readonly record struct RoiGroup
{
[UsedImplicitly] public string Name { get; init; }
[UsedImplicitly] public string FullName { get; init; }
[JsonPropertyName("ID"), UsedImplicitly] public string Id { get; init; }
[UsedImplicitly] public string Color { get; init; }
[UsedImplicitly] public List<RoiData> Regions { get; init; }
[UsedImplicitly] public int? Score { get; init; }
[JsonPropertyName("Z-Index"), UsedImplicitly] public int? ZIndex { get; init; }
}
public readonly record struct RoiData
{
[UsedImplicitly] public string Name { get; init; }
[UsedImplicitly] public string FileName { get; init; }
[UsedImplicitly] public float Volume { get; init; }
[UsedImplicitly] public string? Mask { get; init; }
[UsedImplicitly] public string? MosaicMask { get; init; }
[UsedImplicitly] public List<LocationData> Locations { get; init; }
[UsedImplicitly] public List<RoiGroup>? SubGroups { get; init; }
}
public readonly record struct LocationData
{
[UsedImplicitly] public string Name { get; init; }
[UsedImplicitly] public float Percentage { get; init; }
[UsedImplicitly] public float Volume { get; init; }
[UsedImplicitly] public float? RegionPercentage { get; init; }
[UsedImplicitly] public int? Weight { get; init; }
[JsonPropertyName("SecondLocations"), UsedImplicitly] public List<LocationData>? SubLocations { get; init; }
}