99 lines
3.7 KiB
C#
99 lines
3.7 KiB
C#
|
|
/* 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; }
|
|||
|
|
}
|
|||
|
|
}
|