Files
DP44/DataPRO/Modules/PreviousDBVersions/Version57/DatabaseExport/ISO/CalculatedValueClass.cs

99 lines
3.7 KiB
C#
Raw Normal View History

2026-04-17 14:55:32 -04:00
/* Copyright 2017 Diversified Technical Systems
*/
using System;
using System.Collections.Generic;
using System.Linq;
namespace DatabaseExport
{
/// <summary>
/// this class will probably become an abstract base class in the future but for now since we only have
/// summed realtime channels, we can be a little less formal
/// </summary>
public class CalculatedValueClass
{
public CalculatedValueClass(System.Data.DataRow dr)
{
var fields = Enum.GetValues(typeof(DbOperations.CalculatedChannels.Fields))
.Cast<DbOperations.CalculatedChannels.Fields>().ToArray();
foreach (var field in fields)
{
var o = dr[field.ToString()];
if (DBNull.Value.Equals(o)) { continue; }
switch (field)
{
case DbOperations.CalculatedChannels.Fields.TestSetupName:
TestSetupName = Convert.ToString(o);
break;
case DbOperations.CalculatedChannels.Fields.Operation:
Operation = (Operations)Convert.ToInt32(o);
break;
case DbOperations.CalculatedChannels.Fields.InputChannelIds:
InputChannelIdsBlob = (byte[])o;
break;
case DbOperations.CalculatedChannels.Fields.Id:
Id = Convert.ToInt32(o);
break;
case DbOperations.CalculatedChannels.Fields.CFCForOutput:
ChannelFilterClassForOutput = Convert.ToString(o);
break;
case DbOperations.CalculatedChannels.Fields.CFCForInputChannels:
CFCForInputChannels = Convert.ToString(o);
break;
case DbOperations.CalculatedChannels.Fields.CCName:
Name = Convert.ToString(o);
break;
case DbOperations.CalculatedChannels.Fields.CalculatedChannelValueCode:
CalculatedValueCode = Convert.ToString(o);
break;
}
}
}
public int Id { get; set; } = -1;
public enum Operations
{
SUM = 1,
AVERAGE = 2,
IRTRACC3D = 3,
IRTRACC3D_ABDOMEN = 4,
IRTRACC3D_LOWERTHORAX = 5
}
public Operations Operation { get; set; } = Operations.SUM;
public string CalculatedValueCode { get; set; } = "???????????????X";
private List<string> _inputChannelIds = new List<string>();
public string[] InputChannelIds
{
get => _inputChannelIds.ToArray();
set => _inputChannelIds = new List<string>(value);
}
public byte[] InputChannelIdsBlob
{
get
{
var text = string.Join(System.Globalization.CultureInfo.InvariantCulture.TextInfo.ListSeparator, InputChannelIds);
return System.Text.Encoding.UTF8.GetBytes(text);
}
set
{
_inputChannelIds.Clear();
var text = System.Text.Encoding.UTF8.GetString(value);
InputChannelIds = text.Split(new[] { System.Globalization.CultureInfo.InvariantCulture.TextInfo.ListSeparator }, StringSplitOptions.None);
}
}
public string CFCForInputChannels { get; set; } = "";
public string ChannelFilterClassForOutput { get; set; } = "";
public string TestSetupName { get; set; }
public string Name { get; set; }
}
}