diff --git a/AIMS/OperationDoing/AnasRecordBill/frmAanesthesiaRecord.cs b/AIMS/OperationDoing/AnasRecordBill/frmAanesthesiaRecord.cs
index 2b93710..b4893d5 100644
--- a/AIMS/OperationDoing/AnasRecordBill/frmAanesthesiaRecord.cs
+++ b/AIMS/OperationDoing/AnasRecordBill/frmAanesthesiaRecord.cs
@@ -1412,7 +1412,8 @@ namespace AIMS.OperationDoing.AnasRecordBill.UI
{
if (pdTemp.Value < 0) continue;
PhysioDataConfig addPP = _record.PhysioConfigList.Where(a => pdTemp.PhysioDataConfigId == a.Id).ToList()[0];
- addPP.AddOrDelItem(pdTemp, 5);
+ //addPP.AddOrDelItem(pdTemp, 5);
+ addPP.AddPointItem(pdTemp);
date++;
}
@@ -1756,23 +1757,23 @@ namespace AIMS.OperationDoing.AnasRecordBill.UI
DateTime RecordTime = DateTime.Parse(dr["InsertTime"].ToString());
if (!isCgtime(addPP.Name, RecordTime)) continue;
PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, RecordTime, dr["ParamValue"].ToString());
- addPP.AddItemByTime(pdTemp);
- }
- }
- }
- foreach (var addPP in _record.PhysioAnesConfigList)
- {
- if (addPP.IsValid == false) continue;
- foreach (DataRow dr in dtPhysioData.Rows)
- {
- if (dr["ParameterName"] != null && dr["ParameterName"].ToString() != "" && dr["ParameterName"].ToString().Equals(addPP.Id.ToString()))
- {
- DateTime RecordTime = DateTime.Parse(dr["InsertTime"].ToString());
- PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, RecordTime, dr["ParamValue"].ToString());
- addPP.AddItemByTime(pdTemp);
+ addPP.AddPointItem(pdTemp, false);
}
}
}
+ //foreach (var addPP in _record.PhysioAnesConfigList)
+ //{
+ // if (addPP.IsValid == false) continue;
+ // foreach (DataRow dr in dtPhysioData.Rows)
+ // {
+ // if (dr["ParameterName"] != null && dr["ParameterName"].ToString() != "" && dr["ParameterName"].ToString().Equals(addPP.Id.ToString()))
+ // {
+ // DateTime RecordTime = DateTime.Parse(dr["InsertTime"].ToString());
+ // PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, RecordTime, dr["ParamValue"].ToString());
+ // addPP.AddPointItem(pdTemp);
+ // }
+ // }
+ //}
}
}
private void UpdatePhysioDataResp()
@@ -1791,9 +1792,9 @@ namespace AIMS.OperationDoing.AnasRecordBill.UI
for (int i = 0; i < dtPhysioData.Rows.Count; i++)
{
if (dtPhysioData.Rows[i]["Name"].ToString().Equals(addPP.Name.ToString()))
- {
- PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, DateTime.Parse(dtPhysioData.Rows[i]["RecordTime"].ToString()) , dtPhysioData.Rows[i]["Value"].ToString());
- addPP.AddPoition(pdTemp);
+ {
+ PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, DateTime.Parse(dtPhysioData.Rows[i]["RecordTime"].ToString()), dtPhysioData.Rows[i]["Value"].ToString());
+ addPP.AddPointItem(pdTemp, false);
}
}
}
diff --git a/AIMS/OperationDoing/AnasRecordBill/frmFactEventsNew.cs b/AIMS/OperationDoing/AnasRecordBill/frmFactEventsNew.cs
index 0c97e9b..90e143e 100644
--- a/AIMS/OperationDoing/AnasRecordBill/frmFactEventsNew.cs
+++ b/AIMS/OperationDoing/AnasRecordBill/frmFactEventsNew.cs
@@ -911,7 +911,7 @@ namespace AIMS.PublicUI.UI
if (dtPhysioData.Rows[i]["Name"].ToString().Equals(addPP.Name.ToString()))
{
PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, DateTime.Parse(dtPhysioData.Rows[i]["RecordTime"].ToString()), dtPhysioData.Rows[i]["Value"].ToString());
- addPP.AddPoition(pdTemp);
+ addPP.AddPointItem(pdTemp, false);
}
}
}
diff --git a/AIMS/OperationDoing/AnasRecordBill/frmPhysioDataEdit.cs b/AIMS/OperationDoing/AnasRecordBill/frmPhysioDataEdit.cs
index 7003dee..4177722 100644
--- a/AIMS/OperationDoing/AnasRecordBill/frmPhysioDataEdit.cs
+++ b/AIMS/OperationDoing/AnasRecordBill/frmPhysioDataEdit.cs
@@ -209,7 +209,7 @@ namespace AIMS.OperationDoing.AnasRecordBill
if (pdNew.config.ConfigType == "麻醉体征")
pdNew.config.EditModifyItem(pdNew, pdNew);
else
- pdNew.config.ModItem(pdNew, pdNew);
+ pdNew.config.ModifyItem(pdNew, pdNew);
txtNum.Tag = pdNew;
TempValue = txtNum.Text.Trim();
}
@@ -224,7 +224,7 @@ namespace AIMS.OperationDoing.AnasRecordBill
if (pdNew.config.ConfigType == "麻醉体征")
pdNew.config.EditAddItem(pdNew);
else
- pdNew.config.AddFillItem(pdNew);
+ pdNew.config.AddPointItem(pdNew);
txtNum.Tag = pdNew;
TempValue = txtNum.Text.Trim();
}
diff --git a/AIMS/OperationDoing/AnasRecoverBill/frmAanesthesiaRecover.cs b/AIMS/OperationDoing/AnasRecoverBill/frmAanesthesiaRecover.cs
index aca07df..a883fd7 100644
--- a/AIMS/OperationDoing/AnasRecoverBill/frmAanesthesiaRecover.cs
+++ b/AIMS/OperationDoing/AnasRecoverBill/frmAanesthesiaRecover.cs
@@ -1030,7 +1030,8 @@ namespace AIMS.OperationDoing.AnasRecoverBill.UI
{
if (pdTemp.Value < 1) continue;
PhysioDataConfig addPP = _record.PhysioConfigList.Where(a => pdTemp.PhysioDataConfigId == a.Id).ToList()[0];
- addPP.AddOrDelItem(pdTemp, 5);
+ //addPP.AddOrDelItem(pdTemp, 5);
+ addPP.AddPointItem(pdTemp);
date++;
}
@@ -1364,7 +1365,7 @@ namespace AIMS.OperationDoing.AnasRecoverBill.UI
DateTime RecordTime = DateTime.Parse(dr["InsertTime"].ToString());
if (!isCgtime(addPP.Name, RecordTime)) continue;
PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, RecordTime, dr["ParamValue"].ToString());
- addPP.AddItemByTime(pdTemp);
+ addPP.AddPointItem(pdTemp);
}
}
}
diff --git a/AIMSExtension/PublicMethod.cs b/AIMSExtension/PublicMethod.cs
index 90d61e0..8a42a96 100644
--- a/AIMSExtension/PublicMethod.cs
+++ b/AIMSExtension/PublicMethod.cs
@@ -773,7 +773,7 @@ namespace AIMSExtension
sw.WriteLine("当前时间:" + DateTime.Now.ToString());
sw.WriteLine("异常信息:" + ex.Message);
sw.WriteLine("异常对象:" + ex.Source);
- sw.WriteLine("调用堆栈:\n" + ex.StackTrace.Trim());
+ sw.WriteLine("调用堆栈:\n" + ex.StackTrace);
sw.WriteLine("触发方法:" + ex.TargetSite);
sw.WriteLine();
sw.Close();
diff --git a/DrawGraph/AreaManage/MonitorManage.cs b/DrawGraph/AreaManage/MonitorManage.cs
index 3878d4f..dc2e8f0 100644
--- a/DrawGraph/AreaManage/MonitorManage.cs
+++ b/DrawGraph/AreaManage/MonitorManage.cs
@@ -192,7 +192,7 @@ namespace DrawGraph
if (dtPhysioData.Rows[i]["Name"].ToString().Equals(addPP.Name.ToString()))
{
PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, myOpeRecord.Id.Value, DateTime.Parse(dtPhysioData.Rows[i]["RecordTime"].ToString()), dtPhysioData.Rows[i]["Value"].ToString());
- addPP.AddPoition(pdTemp);
+ addPP.AddPointItem(pdTemp, false);
}
}
}
@@ -255,7 +255,7 @@ namespace DrawGraph
if (pdNew.config.ConfigType == "麻醉体征")
pdNew.config.EditModifyItem(pdNew, pdNew);
else
- pdNew.config.ModItem(pdNew, pdNew);
+ pdNew.config.ModifyItem(pdNew, pdNew);
txtNum.Tag = pdNew;
TempValue = txtNum.Text.Trim();
}
@@ -270,7 +270,7 @@ namespace DrawGraph
if (pdNew.config.ConfigType == "麻醉体征")
pdNew.config.EditAddItem(pdNew);
else
- pdNew.config.AddFillItem(pdNew);
+ pdNew.config.AddPointItem(pdNew);
txtNum.Tag = pdNew;
TempValue = txtNum.Text.Trim();
}
diff --git a/DrawGraph/AreaManage/PhysioDataConfig.cs b/DrawGraph/AreaManage/PhysioDataConfig.cs
index aa91360..527301c 100644
--- a/DrawGraph/AreaManage/PhysioDataConfig.cs
+++ b/DrawGraph/AreaManage/PhysioDataConfig.cs
@@ -15,7 +15,9 @@ namespace DrawGraph
{
public class PhysioDataConfig : EventObj
{
+ #region 属性
private int id;
+ private int patientId;
private string name;
private string enname;
private string color;
@@ -46,6 +48,14 @@ namespace DrawGraph
set { id = value; }
}
///
+ /// 手术ID
+ ///
+ public int PatientId
+ {
+ get { return patientId; }
+ set { patientId = value; }
+ }
+ ///
///
///
public string Name
@@ -198,23 +208,19 @@ namespace DrawGraph
set { physioOrder = value; }
}
+ #endregion
+
#region 私有变量
private int yAisx = 0;
- private int patientId;
private Color conveColor;
public double X_MINOR_GRID_STEP = 5.0; //步长
private PointPairList aPhysioDatas;
PhysioData pdTrue = null;
- public double showValue { get; set; }
+ public double YLocation { get; set; }
[XmlIgnore]
private LineItem curve1;
[XmlIgnore]
private bool isClick = false;
-
- #endregion
-
- #region 属性
-
[XmlIgnore]
public LineItem curve
{
@@ -237,7 +243,7 @@ namespace DrawGraph
set { aPhysioDatas = value; }
}
///
- /// 此曲线的值以Y的第几个轴匹配
+ /// 此曲线的Y轴
///
public int YAisx
{
@@ -245,14 +251,6 @@ namespace DrawGraph
set { yAisx = value; }
}
///
- /// 手术ID
- ///
- public int PatientId
- {
- get { return patientId; }
- set { patientId = value; }
- }
- ///
/// 线的着色
///
public Color ConveColor
@@ -260,9 +258,11 @@ namespace DrawGraph
get { return conveColor; }
set { conveColor = value; }
}
- #endregion
+ ///
+ /// Panel动态填写对象
+ ///
+ public AbleEditPackObj phListPack = null;
- #region 事件
public delegate void ClickEventHandler(object sender, EventArgs e);
public event ClickEventHandler Click;
public void onClick(EventArgs e)
@@ -272,91 +272,119 @@ namespace DrawGraph
Click(this, e);
}
}
- #endregion
-
public PhysioDataConfig()
{
APhysioParams = new PointPairList();
}
+ #endregion
+ #region 初始化
///
- /// 包含增加和删除,当插入位置已有生理数据时,执行删除
+ /// 画生理曲线,即初始化
///
- ///
- public void AddOrDelItem(PhysioData pd, int collectInterval)
+ public void initCurve(bool isValidLine = true)
{
+ if (zgcAnas == null)
+ {
+ return;
+ }
+
+ PointPairList ppl = new PointPairList();
+
+ curve = ZUtil.AddCurve(Name, ppl, conveColor, imgPath, true, zgcAnas, TextPrefix.PI + Name + Id.ToString());
+
+ curve.YAxisIndex = this.YAisx;
+ curve.Label.IsVisible = this.isValid;
+ curve.Symbol.IsVisible = this.isValid;
+ curve.Line.IsVisible = isValidLine;
+
+ curve.Label.FontSpec = new FontSpec("微软雅黑", 5.9f, System.Drawing.Color.Black, false, false, false);
+ curve.Label.FontSpec.Border.IsVisible = false;
+ curve.Label.FontSpec.Fill.IsVisible = false;
+ }
+ ///
+ /// 重新设置曲线属性
+ ///
+ public void reSetCurve()
+ {
+ this.curve.Color = this.ConveColor;
+ this.curve.Symbol.Fill = new Fill(new ZUtil().getImage(this.imgPath), System.Drawing.Drawing2D.WrapMode.Clamp);
+ this.curve.IsVisible = this.isValid;
+ this.curve.YAxisIndex = this.YAisx;
+ curve.Label.IsVisible = this.isValid;
+ curve.Line.IsVisible = this.isValid;
+ curve.Symbol.IsVisible = this.isValid;
+
+ if (!ShowText)
+ {
+ foreach (PointPair pp in APhysioParams)
+ {
+ PhysioData pd = PointPairToPhysioData(pp);
+ if (pd != null)
+ {
+ delAddObj(pd);
+ SetPositionText(pd, "-1");
+ }
+ }
+ }
+ else
+ {
+ foreach (PointPair pp in APhysioParams)
+ {
+ PhysioData pd = PointPairToPhysioData(pp);
+ if (pd != null) DrawTextPhysioData(pd);
+ }
+ }
+ }
+ ///
+ /// 重新设置曲线属性
+ ///
+ public void reSetCurveSpo2()
+ {
+ this.curve.Color = this.ConveColor;
+ this.curve.Symbol.Fill = new Fill(new ZUtil().getImage(this.imgPath), System.Drawing.Drawing2D.WrapMode.Clamp);
+ this.curve.IsVisible = this.isValid;
+ this.curve.YAxisIndex = this.YAisx;
+ curve.Label.IsVisible = this.isValid;
+ curve.Line.IsVisible = this.isValid;
+ curve.Symbol.IsVisible = this.isValid;
+ }
+ public static IList GetLifeList()
+ {
+ string sql = "Select * FROM PhysioDataConfig where ConfigType='生命体征' order by PhysioOrder asc";
+ return GetListBySql(sql);
+ }
+ public static IList GetAnesList()
+ {
+ string sql = "Select * FROM PhysioDataConfig where ConfigType='麻醉体征' order by PhysioOrder asc";
+ return GetListBySql(sql);
+ }
+ #endregion
+
+ #region 数据操作
+ public void AddPointItem(PhysioData pd, bool isInsertDB = true)
+ {
+ //如果是负数则不执行操作
+ if (pd.Value <= 0) return;
bool isHave = false;
- PhysioData curPd = null;
foreach (PointPair pptemp in APhysioParams)
{
PhysioData temp1 = PointPairToPhysioData(pptemp);
if (pd.isEquert(temp1) && temp1.Value != Double.MaxValue)
{
isHave = true;
- curPd = temp1;
break;
}
}
- if (isHave)
- {
- //DelItem(curPd);
- }
- else
- {
- AddMultipleItem(pd, pd.RecordTime, collectInterval);
- //AddItem(pd, true);
- }
- }
-
- public void AddFillItem(PhysioData pd)
- {
- bool isHave = false;
- foreach (PointPair pptemp in APhysioParams)
- {
- PhysioData temp1 = PointPairToPhysioData(pptemp);
- double yDiff = pd.Value - temp1.Value;
- TimeSpan ts1 = new TimeSpan(pd.RecordTime.Ticks);
- TimeSpan ts2 = new TimeSpan(temp1.RecordTime.Ticks);
- double minDiff = (ts1.Subtract(ts2).TotalMinutes);
- if (-2 < minDiff && minDiff < 2 && temp1.Value != Double.MaxValue)
- {
- isHave = true;
- break;
- }
- }
- if (!isHave)
- {
- //如果是负数则不执行操作
- if (pd.Value < 0) return;
- //pd = reCnterValue(pd);
- //增加点时如果当前有点且是隐藏的则直接改值
- Sort();
- foreach (PointPair pptemp in APhysioParams)
- {
- PhysioData pdTemp = PointPairToPhysioData(pptemp);
- if (pdTemp.isEquert(pd) && pdTemp.Value == Double.MaxValue)
- {
- pptemp.Y = pd.Value;
- isHave = true;
- break;
- }
- else if (pdTemp.isEquert(pd))
- {
- isHave = true;
- break;
- }
- }
- if (!isHave)
- {
- this.APhysioParams.Add(pd);
- }
- Sort();
- curve.Points = APhysioParams;
+ if (isHave) return;
+ this.APhysioParams.Add(pd);
+ Sort();
+ curve.Points = APhysioParams;
+ if (isInsertDB == true)
PhysioDataService.AddPhysioData(pd);
- if (ShowText == true)
- {
- DrawTextPhysioData(pd);
- }
+ if (ShowText == true)
+ {
+ DrawTextPhysioData(pd);
}
}
///
@@ -365,114 +393,108 @@ namespace DrawGraph
///
public void AddItem(PhysioData pd, bool isShouDong = true, bool isFillMissPoint = true)
{
- try
+ //如果是负数则不执行操作
+ if (pd.Value < 0) return;
+ if (pdTrue == null)
+ pdTrue = pd.Clone();
+
+ if (APhysioParams.Count > 0)
{
- //如果是负数则不执行操作
- if (pd.Value < 0) return;
- if (pdTrue == null)
- pdTrue = pd.Clone();
+ PhysioData pdTemp = pd.Clone();
- if (APhysioParams.Count > 0)
+ //当前点的前一个点加步长时间的结点
+ PhysioData pdQD = reMPhysioData(pdTemp);
+ //插入的点大于之前点5分钟以上
+ if (DateTime.Compare(pd.RecordTime, pdQD.RecordTime.AddMinutes(1)) > 0)
{
- PhysioData pdTemp = pd.Clone();
-
- //当前点的前一个点加步长时间的结点
- PhysioData pdQD = reMPhysioData(pdTemp);
- //插入的点大于之前点5分钟以上
- if (DateTime.Compare(pd.RecordTime, pdQD.RecordTime.AddMinutes(1)) > 0)
- {
- pdTemp.Value = Double.MaxValue;
- this.APhysioParams.Add(pdTemp);
- }
+ pdTemp.Value = Double.MaxValue;
+ this.APhysioParams.Add(pdTemp);
}
- if (isShouDong)
- pd = reCnterValue(pd);
- //增加点时如果当前有点且是隐藏的则直接改值
- Sort();
- bool isHave = false;
- foreach (PointPair pptemp in APhysioParams)
+ }
+ if (isShouDong)
+ pd = reCnterValue(pd);
+ //增加点时如果当前有点且是隐藏的则直接改值
+ Sort();
+ bool isHave = false;
+ foreach (PointPair pptemp in APhysioParams)
+ {
+ PhysioData pdTemp = PointPairToPhysioData(pptemp);
+ if (pdTemp.isEquert(pd) && pdTemp.Value == Double.MaxValue)
{
- PhysioData pdTemp = PointPairToPhysioData(pptemp);
- if (pdTemp.isEquert(pd) && pdTemp.Value == Double.MaxValue)
- {
- pptemp.Y = pd.Value;
- isHave = true;
- break;
- }
- else if (pdTemp.isEquert(pd))
- {
- isHave = true;
- break;
- }
+ pptemp.Y = pd.Value;
+ isHave = true;
+ break;
}
- if (!isHave)
+ else if (pdTemp.isEquert(pd))
{
- this.APhysioParams.Add(pd);
+ isHave = true;
+ break;
}
- Sort();
- curve.Points = APhysioParams;
- PhysioDataService.AddPhysioData(pd);
- if (ShowText == true)
+ }
+ if (!isHave)
+ {
+ this.APhysioParams.Add(pd);
+ }
+ Sort();
+ pd.ValueString = pd.Value.ToString();
+ curve.Points = APhysioParams;
+ PhysioDataService.AddPhysioData(pd);
+ if (ShowText == true)
+ {
+ DrawTextPhysioData(pd);
+ }
+ if (isShouDong == true)
+ {
+ for (int i = APhysioParams.Count - 1; i > -1; i--)
{
- DrawTextPhysioData(pd);
- }
- if (isShouDong == true)
- {
- for (int i = APhysioParams.Count - 1; i > -1; i--)
+ PhysioData maxPhysioData = PointPairToPhysioData(APhysioParams[i]);
+ if (i != 0 && i != APhysioParams.Count - 1)
{
- PhysioData maxPhysioData = PointPairToPhysioData(APhysioParams[i]);
- if (i != 0 && i != APhysioParams.Count - 1)
+ if (maxPhysioData.Y == Double.MaxValue)
{
- if (maxPhysioData.Y == Double.MaxValue)
+ bool b = false;
+ for (int j = 0; j < APhysioParams.Count; j++)
{
- bool b = false;
- for (int j = 0; j < APhysioParams.Count; j++)
+ PhysioData pdt = PointPairToPhysioData(APhysioParams[j]);
+ if (pdt.RecordTime == maxPhysioData.RecordTime && pdt.Value <= HighLimit)
{
- PhysioData pdt = PointPairToPhysioData(APhysioParams[j]);
- if (pdt.RecordTime == maxPhysioData.RecordTime && pdt.Value <= HighLimit)
- {
- b = true;
- break;
- }
+ b = true;
+ break;
}
- if (b == true)
- this.APhysioParams.Remove(maxPhysioData);
}
+ if (b == true)
+ this.APhysioParams.Remove(maxPhysioData);
}
}
}
- if (isFillMissPoint == true && pdTrue != null)
+ }
+ if (isFillMissPoint == true && pdTrue != null)
+ {
+ //返回当前曲线上最大且不为空的点
+ PhysioData maxPd = ReMaxAndGoodPhysioData();
+ if (maxPd != null && pdTrue.RecordTime > maxPd.RecordTime)
{
- //返回当前曲线上最大且不为空的点
- PhysioData maxPd = ReMaxAndGoodPhysioData();
- if (maxPd != null && pdTrue.RecordTime > maxPd.RecordTime)
+ int timeDiff = DateTime.Compare(pdTrue.RecordTime, maxPd.RecordTime);
+ //因为插入的真实点大于曲线上最后一个点,则指增加生理数据
+ if (timeDiff > 0)
{
- int timeDiff = DateTime.Compare(pdTrue.RecordTime, maxPd.RecordTime);
- //因为插入的真实点大于曲线上最后一个点,则指增加生理数据
- if (timeDiff > 0)
+ //如果新增加的点还小于真实的点,则批量增加生理数据
+ if (DateTime.Compare(pd.RecordTime, pdTrue.RecordTime) < 0 && pd.RecordTime.ToString("HH:mm") != pdTrue.RecordTime.ToString("HH:mm"))
{
- //如果新增加的点还小于真实的点,则批量增加生理数据
- if (DateTime.Compare(pd.RecordTime, pdTrue.RecordTime) < 0 && pd.RecordTime.ToString("HH:mm") != pdTrue.RecordTime.ToString("HH:mm"))
- {
- pd.RecordTime = pd.RecordTime.AddMinutes(this.X_MINOR_GRID_STEP);
+ pd.RecordTime = pd.RecordTime.AddMinutes(this.X_MINOR_GRID_STEP);
- bool isHavechild = false;
- foreach (PointPair pptemp in APhysioParams)
+ bool isHavechild = false;
+ foreach (PointPair pptemp in APhysioParams)
+ {
+ PhysioData pdTemp = PointPairToPhysioData(pptemp);
+ if (pdTemp.isEquert(pd) && pdTemp.Value != Double.MaxValue)
{
- PhysioData pdTemp = PointPairToPhysioData(pptemp);
- if (pdTemp.isEquert(pd) && pdTemp.Value != Double.MaxValue)
- {
- isHavechild = true;
- break;
- }
+ isHavechild = true;
+ break;
}
- if (isHavechild == false)
- AddItem(pd, isShouDong, isFillMissPoint);
}
- }
- else
- {
- pdTrue = null;
+ if (isHavechild == false)
+ AddItem(pd, isShouDong, isFillMissPoint);
}
}
else
@@ -480,140 +502,130 @@ namespace DrawGraph
pdTrue = null;
}
}
- }
- catch (Exception)
- {
- throw new Exception("插入生理数据结点时出错");
- }
- }
- ///
- /// 动态填写对象
- ///
- public AbleEditPackObj phListPack = null;
-
- public void SetPositionText(PhysioData pdTemp, string viewValue)
- {
- if (phListPack != null)
- {
- Panel pan3 = phListPack.CControl as Panel;
- if (pan3 != null)
+ else
{
- Control[] cs = pan3.Controls.Find(pdTemp.PhysioDataConfigId + "" + pdTemp.RecordTime.ToString("HHmm"), true);
- if (cs != null && cs.Length > 0)
- {
- TextBox c = cs[0] as TextBox;
- if (c != null)
- {
- if (viewValue == "-1")
- {
- pdTemp.Value = -1;
- pdTemp.ValueString = "";
- c.Tag = pdTemp;
- c.Text = "";
-
- }
- else
- {
- c.Tag = pdTemp;
- c.Text = viewValue.ToString();
- }
- }
- }
+ pdTrue = null;
}
}
}
- ///
- /// 增加一点生理数据,往数据库中写入数据
- ///
- ///
- public void AddItemByTime(PhysioData pd)
- {
- try
- {
- //如果是负数则不执行操作
- if (pd.Value <= 0) return;
- bool isHave = false;
- PhysioData curPd = null;
- foreach (PointPair pptemp in APhysioParams)
- {
- PhysioData temp1 = PointPairToPhysioData(pptemp);
- if (pd.isEquert(temp1) && temp1.Value != Double.MaxValue)
- {
- isHave = true;
- curPd = temp1;
- break;
- }
- }
-
- if (isHave) return;
- this.APhysioParams.Add(pd);
- Sort();
- curve.Points = APhysioParams;
- PhysioDataService.AddPhysioData(pd);
- if (ShowText == true)
- {
- DrawTextPhysioData(pd);
- }
- }
- catch (Exception)
- {
- //throw new Exception("插入生理数据结点时出错");
- }
- }
-
///
/// 增加一点生理数据,往数据库中写入数据
///
///
public void AddMultipleItem(PhysioData pd, DateTime endtime, int collectInterval)
{
- try
+ //如果是负数则不执行操作
+ pd = reCnterValue(pd);
+ TimeSpan tsp = endtime - pd.RecordTime;
+ if (tsp.TotalMinutes >= 20 && this.IsSplit == true)
{
- //如果是负数则不执行操作
- pd = reCnterValue(pd);
- TimeSpan tsp = endtime - pd.RecordTime;
- if (tsp.TotalMinutes >= 20 && this.IsSplit == true)
- {
- pd.RecordTime = endtime;
- pd = reCnterValue(pd, false);
- AddItem(pd, false);
- }
- else
- {
- pd.RecordTime = endtime;
- AddItem(pd);
- }
+ pd.RecordTime = endtime;
+ pd = reCnterValue(pd, false);
+ AddItem(pd, false);
}
- catch (Exception)
+ else
{
- throw;
+ pd.RecordTime = endtime;
+ AddItem(pd);
}
}
///
- /// 返回当前曲线上最大且不为空的点
+ /// 仅修改值不修改数据库
///
- ///
- private PhysioData ReMaxAndGoodPhysioData()
+ ///
+ ///
+ ///
+ public PhysioData MoveItem(PhysioData newPd )
{
- PhysioData rePd = null;
- for (int i = APhysioParams.Count - 1; i > -1; i--)
+ //如果是负数则不执行操作
+ if (newPd.Value < 0) return null;
+ newPd = reCnterValue(newPd);
+
+ int index = indexOf(newPd);
+ if (index == -1) return null;
+ this.APhysioParams[index].Y = newPd.Y;
+
+ Sort();
+ curve.Points = APhysioParams;
+
+ if (ShowText == true)
{
- rePd = PointPairToPhysioData(APhysioParams[i]);
- //且被大于的值的点不空隐藏
- if (rePd.Value != Double.MaxValue)
- {
- return rePd;
- }
+ MoveText(newPd);
+ }
+ return newPd;
+ }
+ private void MoveText(PhysioData newPd)
+ {
+ TextObj text = (TextObj)zgcAnas.MasterPane.GraphObjList[this.Enname + newPd.RecordTime.ToString()];
+ text.Location.Y = YLocation;
+ text.Text = ((int)newPd.Value).ToString();
+ }
+ public void ModifyItem(PhysioData oldPd, PhysioData newPd)
+ {
+ //如果是负数则不执行操作
+ if (newPd.Value < 0 && oldPd.PhysioDataConfigId != newPd.PhysioDataConfigId)
+ return;
+ int index = indexOf(newPd);
+ if (index == -1) return;
+ //newPd = reCnterValue(newPd, false);
+ newPd.ValueString = newPd.Value.ToString();
+ this.APhysioParams[index].Y = newPd.Y;
+ Sort();
+ curve.Points = APhysioParams;
+ PhysioDataService.UpdatePhysioData(oldPd, newPd, PublicMethod.OperatorName);
+ if (ShowText == true)
+ {
+ delAddObj(oldPd);
+ DrawTextPhysioData(newPd);
}
- return rePd;
}
- public void delAddObj(PhysioData newPd)
+ ///
+ /// 删除一点生理数据
+ ///
+ ///
+ public void DelItem(PhysioData pd)
{
- delAddObj(this.Enname + newPd.RecordTime.ToString());
+ Sort();
+ //如果是两头的点就删除,如果是中间的点就设置为无效
+ bool isModmaxValue = false;
+ for (int i = APhysioParams.Count - 1; i > -1; i--)
+ {
+ PhysioData maxPhysioData = PointPairToPhysioData(APhysioParams[i]);
+ if (maxPhysioData.isEquert(pd) && i != 0 && i != APhysioParams.Count - 1)
+ {
+ APhysioParams[i].Y = Double.MaxValue;
+ isModmaxValue = true;
+ break;
+ }
+ }
+ if (!isModmaxValue)
+ this.APhysioParams.Remove(pd);
+ curve.Points = APhysioParams;
+ Sort();
+
+ if (ShowText == true || pd.Value == HighLimit)
+ {
+ delAddObj(pd);
+ SetPositionText(pd, "-1");
+ }
+ PhysioDataService.DelPhysioByValueData(pd);
+ for (int i = APhysioParams.Count - 1; i > -1; i--)
+ {
+ PhysioData maxPhysioData = PointPairToPhysioData(APhysioParams[i]);
+ if (maxPhysioData.isEquert(pd) && maxPhysioData.Y != Double.MaxValue)
+ {
+ this.APhysioParams.Remove(APhysioParams[i]);
+ break;
+ }
+ }
+ }
+ public void DelItems(DateTime RecordTime, DateTime EndTime)
+ {
+ PhysioDataService.DelPhysioasDataParameterID(RecordTime, EndTime, this.Id, this.PatientId);
}
public void DrawTextPhysioData(PhysioData pd)
{
@@ -633,62 +645,21 @@ namespace DrawGraph
}
if (viewValue != "")
{
- ZUtil.DrawText(viewValue, getXPositinByXDate(pd.RecordTime), showValue, zgcAnas, this.Enname + pd.RecordTime.ToString(), 5f, true);
+ ZUtil.DrawText(viewValue, getXPositinByXDate(pd.RecordTime), YLocation, zgcAnas, this.Enname + pd.RecordTime.ToString(), 5f, true);
SetPositionText(pd, viewValue);
}
}
}
+ #endregion
+
+ #region 通用方法
///
- /// 仅修改值不修改数据库
+ /// 为生理数据集合排序
///
- ///
- ///
- ///
- public PhysioData onlyModItem(PhysioData newPd, PhysioData oldPd = null)
+ public void Sort()
{
- //如果是负数则不执行操作
- if (newPd.Value < 0)
- {
- //MessageBox.Show("输入的值不能小于0");
- return null;
- }
- newPd = reCnterValue(newPd);
-
- this.APhysioParams[indexOf(newPd)].Y = newPd.Y;
-
- Sort();
- curve.Points = APhysioParams;
-
- if (ShowText == true)
- {
- onlyMoveText(newPd, oldPd);
- }
- return newPd;
+ aPhysioDatas.Sort();
}
- private void onlyMoveText(PhysioData newPd, PhysioData oldPd = null)
- {
- TextObj text = (TextObj)zgcAnas.MasterPane.GraphObjList[this.Enname + ((oldPd == null) ? newPd.RecordTime.ToString() : oldPd.RecordTime.ToString())];
- text.Location.Y = showValue;
- text.Text = ((int)newPd.Value).ToString();
- }
- public void ModItem(PhysioData oldPd, PhysioData newPd)
- {
- //如果是负数则不执行操作
- if (newPd.Value < 0 && oldPd.PhysioDataConfigId != newPd.PhysioDataConfigId)
- return;
- newPd.RecordTime = oldPd.RecordTime;
- newPd = reCnterValue(newPd, false);
- this.APhysioParams[indexOf(newPd)].Y = newPd.Y;
- Sort();
- curve.Points = APhysioParams;
- PhysioDataService.UpdatePhysioData(oldPd, newPd, PublicMethod.OperatorName);
- if (ShowText == true)
- {
- delAddObj(oldPd);
- DrawTextPhysioData(newPd);
- }
- }
-
public int indexOf(PhysioData pd)
{
for (int i = 0; i < APhysioParams.Count; i++)
@@ -701,38 +672,59 @@ namespace DrawGraph
}
return -1;
}
- ///
- /// 仅画点,不操作数据库
- ///
- ///
- public void AddPoition(PhysioData pd)
+ public PhysioData PointPairToPhysioData(PointPair pp)
{
- //如果是负数则不执行操作
- if (pd.Value < 0) return;
- //pd.Tag = pd.Id;
- if (APhysioParams.Count > 0)
- {
- PhysioData pdTemp = pd.Clone();
+ if (pp == null) return null;
+ PhysioData pd = new PhysioData();
+ pd.ValueString = pp.Y.ToString();
+ pd.Value = pp.Y;
+ pd.RecordTime = new XDate(pp.X);
+ pd.PatientId = PatientId;
+ pd.PhysioDataConfigId = Id;
+ pd.config = this;
+ return pd;
+ }
+ ///
+ /// 删除麻醉单上的曲线本身,不包含数据删除
+ ///
+ ///
+ public override void clearAddObj(ZedGraphControl zgc)
+ {
+ if (zgcAnas == null || zgcAnas != zgc) zgcAnas = zgc;
- //当前点的前一个点加步长时间的结点
- PhysioData pdQD = reMPhysioData(pdTemp);
- //插入的点大于之前点5分钟以上
- if (DateTime.Compare(pd.RecordTime, pdQD.RecordTime.AddMinutes(1)) > 0)
- {
- pdTemp.Value = Double.MaxValue;
- this.APhysioParams.Add(pdTemp);
- }
- }
- pd = reCnterValue(pd, false);
-
- this.APhysioParams.Add(pd);
-
- Sort();
- curve.Points = APhysioParams;
if (ShowText == true)
{
- DrawTextPhysioData(pd);
+ foreach (PointPair pp in APhysioParams)
+ {
+ PhysioData pd = PointPairToPhysioData(pp);
+ if (pd != null)
+ {
+ delAddObj(pd);
+ SetPositionText(pd, "-1");
+ }
+ }
}
+ if (APhysioParams == null || curve == null) return;
+ APhysioParams.Clear();
+ curve.Points = APhysioParams;
+ }
+ ///
+ /// 清除各种对象数据
+ ///
+ ///
+ public void ClearTagstr(ZedGraphControl zgc)
+ {
+ if (zgcAnas == null || zgcAnas != zgc) zgcAnas = zgc;
+ delAddObj("PP" + Enname);
+ delAddObj("PP" + Enname + "unit");
+ delAddObj("PP" + Enname + Id);
+ delAddObj("PPP" + Enname);
+ delAddObj("PPP" + Enname + "unit");
+ }
+ public void delAddObj(PhysioData newPd)
+ {
+ delAddObj(this.Enname + newPd.RecordTime.ToString());
+
}
///
/// 控制画点的范围
@@ -783,206 +775,37 @@ namespace DrawGraph
}
return pd;
}
-
///
- /// 删除一点生理数据
+ /// 返回当前曲线上最大且不为空的点
///
- ///
- public void DelItem(PhysioData pd)
+ ///
+ private PhysioData ReMaxAndGoodPhysioData()
{
- try
+ PhysioData rePd = null;
+ for (int i = APhysioParams.Count - 1; i > -1; i--)
{
- Sort();
- //如果是两头的点就删除,如果是中间的点就设置为无效
- bool isModmaxValue = false;
- for (int i = APhysioParams.Count - 1; i > -1; i--)
+ rePd = PointPairToPhysioData(APhysioParams[i]);
+ //且被大于的值的点不空隐藏
+ if (rePd.Value != Double.MaxValue)
{
- PhysioData maxPhysioData = PointPairToPhysioData(APhysioParams[i]);
- if (maxPhysioData.isEquert(pd) && i != 0 && i != APhysioParams.Count - 1)
- {
- APhysioParams[i].Y = Double.MaxValue;
- isModmaxValue = true;
- break;
- }
- }
- if (!isModmaxValue)
- this.APhysioParams.Remove(pd);
- curve.Points = APhysioParams;
-
- Sort();
-
- if (ShowText == true || pd.Value == HighLimit)
- {
- delAddObj(pd);
- SetPositionText(pd, "-1");
- }
- PhysioDataService.DelPhysioByValueData(pd);
- for (int i = APhysioParams.Count - 1; i > -1; i--)
- {
- PhysioData maxPhysioData = PointPairToPhysioData(APhysioParams[i]);
- if (maxPhysioData.isEquert(pd) && maxPhysioData.Y != Double.MaxValue)
- {
- this.APhysioParams.Remove(APhysioParams[i]);
- break;
- }
+ return rePd;
}
}
- catch (Exception)
- {
- throw new Exception("删除生理数据结点时出错");
- }
+ return rePd;
}
- public void DelItems(DateTime RecordTime, DateTime EndTime)
+ #endregion
+
+ #region 动态体征方法
+ public static int UpdatePhysioDataConfig(PhysioDataConfig physioDataConfig)
{
- try
- {
- PhysioDataService.DelPhysioasDataParameterID(RecordTime, EndTime, this.Id, this.PatientId);
- }
- catch (Exception)
- {
- throw new Exception("删除生理数据结点时出错");
- }
+ string sql = "Update PhysioDataConfig set HighLimit=@HighLimit, LowLimit=@LowLimit,ShowImg=@ShowImg, ShowText=@ShowText, WarningHighLimit=@WarningHighLimit, WarningLowLimit=@WarningLowLimit, IsSplit=@IsSplit, IsDefalultShow=@IsDefalultShow, Unit=@Unit, PhysioOrder=@PhysioOrder, YAisx=@YAisx where Id=@Id";
+
+ SqlParameter[] para = new SqlParameter[]
+ {
+ new SqlParameter("@Id",physioDataConfig.Id), new SqlParameter("@HighLimit",physioDataConfig.HighLimit), new SqlParameter("@LowLimit",physioDataConfig.LowLimit), new SqlParameter("@ShowImg",physioDataConfig.ShowImg), new SqlParameter("@ShowText",physioDataConfig.ShowText), new SqlParameter("@WarningHighLimit",physioDataConfig.WarningHighLimit), new SqlParameter("@WarningLowLimit",physioDataConfig.WarningLowLimit), new SqlParameter("@IsSplit",physioDataConfig.IsSplit), new SqlParameter("@IsDefalultShow",physioDataConfig.IsDefalultShow), new SqlParameter("@Unit",physioDataConfig.Unit), new SqlParameter("@PhysioOrder",physioDataConfig.PhysioOrder), new SqlParameter("@YAisx",physioDataConfig.YAisx)
+ };
+ return DBHelper.ExecNonQuery(sql, para);
}
- ///
- /// 为生理数据集合排序
- ///
- public void Sort()
- {
- aPhysioDatas.Sort();
- }
-
- ///
- /// 画生理曲线,即初始化
- ///
- public void draw(bool isValidLine = true)
- {
- if (zgcAnas == null)
- {
- return;
- }
-
- PointPairList ppl = new PointPairList();
-
- curve = ZUtil.AddCurve(Name, ppl, conveColor, imgPath, true, zgcAnas, TextPrefix.PI + Name + Id.ToString());
-
- curve.YAxisIndex = this.YAisx;
- curve.Label.IsVisible = this.isValid;
- curve.Symbol.IsVisible = this.isValid;
- curve.Line.IsVisible = isValidLine;
-
- curve.Label.FontSpec = new FontSpec("微软雅黑", 5.9f, System.Drawing.Color.Black, false, false, false);
- curve.Label.FontSpec.Border.IsVisible = false;
- curve.Label.FontSpec.Fill.IsVisible = false;
- }
-
- public PhysioData PointPairToPhysioData(PointPair pp)
- {
- if (pp == null) return null;
- PhysioData pd = new PhysioData();
- pd.ValueString = pp.Y.ToString();
- pd.Value = pp.Y;
- pd.RecordTime = new XDate(pp.X);
- pd.PatientId = PatientId;
- pd.PhysioDataConfigId = Id;
- pd.config = this;
- return pd;
- }
-
- ///
- /// 删除麻醉单上的曲线本身,不包含数据删除
- ///
- ///
- public override void clearAddObj(ZedGraphControl zgc)
- {
- if (zgcAnas == null || zgcAnas != zgc) zgcAnas = zgc;
-
- if (ShowText == true)
- {
- foreach (PointPair pp in APhysioParams)
- {
- PhysioData pd = PointPairToPhysioData(pp);
- if (pd != null)
- delAddObj(pd);
- }
- }
- if (APhysioParams == null || curve == null) return;
- APhysioParams.Clear();
- curve.Points = APhysioParams;
- }
- ///
- /// 重新设置曲线属性
- ///
- public void reSetCurve()
- {
- this.curve.Color = this.ConveColor;
- this.curve.Symbol.Fill = new Fill(new ZUtil().getImage(this.imgPath), System.Drawing.Drawing2D.WrapMode.Clamp);
- this.curve.IsVisible = this.isValid;
- this.curve.YAxisIndex = this.YAisx;
- curve.Label.IsVisible = this.isValid;
- curve.Line.IsVisible = this.isValid;
- curve.Symbol.IsVisible = this.isValid;
-
- if (!ShowText)
- {
- foreach (PointPair pp in APhysioParams)
- {
- PhysioData pd = PointPairToPhysioData(pp);
- if (pd != null)
- delAddObj(pd);
- }
- }
- else
- {
- foreach (PointPair pp in APhysioParams)
- {
- PhysioData pd = PointPairToPhysioData(pp);
- if (pd != null) DrawTextPhysioData(pd);
- }
- }
- }
-
- ///
- /// 重新设置曲线属性
- ///
- public void reSetCurveSpo2()
- {
- this.curve.Color = this.ConveColor;
- this.curve.Symbol.Fill = new Fill(new ZUtil().getImage(this.imgPath), System.Drawing.Drawing2D.WrapMode.Clamp);
- this.curve.IsVisible = this.isValid;
- this.curve.YAxisIndex = this.YAisx;
- curve.Label.IsVisible = this.isValid;
- curve.Line.IsVisible = this.isValid;
- curve.Symbol.IsVisible = this.isValid;
- }
-
-
- ///
- /// 清除各种对象数据
- ///
- ///
- public void ClearTagstr(ZedGraphControl zgc)
- {
- if (zgcAnas == null || zgcAnas != zgc) zgcAnas = zgc;
- delAddObj("PP" + Enname);
- delAddObj("PP" + Enname + "unit");
- delAddObj("PP" + Enname + Id);
- delAddObj("PPP" + Enname);
- delAddObj("PPP" + Enname + "unit");
- }
-
-
- public static IList GetLifeList()
- {
- string sql = "Select * FROM PhysioDataConfig where ConfigType='生命体征' order by PhysioOrder asc";
- return GetListBySql(sql);
- }
- public static IList GetAnesList()
- {
- string sql = "Select * FROM PhysioDataConfig where ConfigType='麻醉体征' order by PhysioOrder asc";
- return GetListBySql(sql);
- }
-
-
private static IList GetListBySql(string sql, params SqlParameter[] para)
{
IList list = new List();
@@ -1020,16 +843,6 @@ namespace DrawGraph
return list;
}
}
- public static int UpdatePhysioDataConfig(PhysioDataConfig physioDataConfig)
- {
- string sql = "Update PhysioDataConfig set HighLimit=@HighLimit, LowLimit=@LowLimit,ShowImg=@ShowImg, ShowText=@ShowText, WarningHighLimit=@WarningHighLimit, WarningLowLimit=@WarningLowLimit, IsSplit=@IsSplit, IsDefalultShow=@IsDefalultShow, Unit=@Unit, PhysioOrder=@PhysioOrder, YAisx=@YAisx where Id=@Id";
-
- SqlParameter[] para = new SqlParameter[]
- {
- new SqlParameter("@Id",physioDataConfig.Id), new SqlParameter("@HighLimit",physioDataConfig.HighLimit), new SqlParameter("@LowLimit",physioDataConfig.LowLimit), new SqlParameter("@ShowImg",physioDataConfig.ShowImg), new SqlParameter("@ShowText",physioDataConfig.ShowText), new SqlParameter("@WarningHighLimit",physioDataConfig.WarningHighLimit), new SqlParameter("@WarningLowLimit",physioDataConfig.WarningLowLimit), new SqlParameter("@IsSplit",physioDataConfig.IsSplit), new SqlParameter("@IsDefalultShow",physioDataConfig.IsDefalultShow), new SqlParameter("@Unit",physioDataConfig.Unit), new SqlParameter("@PhysioOrder",physioDataConfig.PhysioOrder), new SqlParameter("@YAisx",physioDataConfig.YAisx)
- };
- return DBHelper.ExecNonQuery(sql, para);
- }
public static PhysioData newPhysioData(PhysioDataConfig dataConfig, int Id, DateTime RecordTime, string Value)
{
PhysioData pdTemp = new PhysioData();
@@ -1051,31 +864,63 @@ namespace DrawGraph
return pdTemp;
}
public void EditAddItem(PhysioData pd)
- {
- PhysioDataService.AddPhysioData(pd);
- DrawTextPhysioData(pd);
+ {
+ PhysioDataService.AddPhysioData(pd);
+ DrawTextPhysioData(pd);
}
public void EditModifyItem(PhysioData oldPd, PhysioData newPd)
{
//如果是负数则不执行操作
if (oldPd.PhysioDataConfigId != newPd.PhysioDataConfigId)
- return;
+ return;
PhysioDataService.UpdatePhysioData(oldPd, newPd, PublicMethod.OperatorName);
- delAddObj(oldPd);
- DrawTextPhysioData(newPd);
+ delAddObj(oldPd);
+ DrawTextPhysioData(newPd);
}
public void EditDelItem(PhysioData pd)
- {
- delAddObj(pd);
- SetPositionText(pd, "-1");
+ {
+ delAddObj(pd);
+ SetPositionText(pd, "-1");
PhysioDataService.DelPhysioByValueData(pd);
}
+ public void SetPositionText(PhysioData pdTemp, string viewValue)
+ {
+ if (phListPack != null)
+ {
+ Panel pan3 = phListPack.CControl as Panel;
+ if (pan3 != null)
+ {
+ Control[] cs = pan3.Controls.Find(pdTemp.PhysioDataConfigId + "" + pdTemp.RecordTime.ToString("HHmm"), true);
+ if (cs != null && cs.Length > 0)
+ {
+ TextBox c = cs[0] as TextBox;
+ if (c != null)
+ {
+ if (viewValue == "-1")
+ {
+ pdTemp.Value = -1;
+ pdTemp.ValueString = "";
+ c.Tag = pdTemp;
+ c.Text = "";
+
+ }
+ else
+ {
+ c.Tag = pdTemp;
+ c.Text = viewValue.ToString();
+ }
+ }
+ }
+ }
+ }
+ }
public void AddText(PhysioData pd)
{
if (pd.ValueString == null || pd.ValueString == "") return;
DrawTextPhysioData(pd);
}
+ #endregion
}
}
diff --git a/DrawGraph/AreaManage/PhysioDataManage.cs b/DrawGraph/AreaManage/PhysioDataManage.cs
index f252154..6c65d96 100644
--- a/DrawGraph/AreaManage/PhysioDataManage.cs
+++ b/DrawGraph/AreaManage/PhysioDataManage.cs
@@ -30,30 +30,18 @@ namespace DrawGraph
///
AbleEditPackObj phListPack = null;
///
- /// 当前图例文本
- ///
- //string curLegend = "";
- ///
/// 当前选中的,手术生理曲线
///
private PhysioDataConfig curPhysioParam = null;
///
- /// 当前选中的生命体征对象 临时
- ///
- private PhysioData curPhysioData = null;
- ///
/// 当前选中的生命体征对象 未改变前
///
- private PhysioData oldCurPhysioData = null;
+ private PhysioData CurPhysioData = null;
///
/// 悬浮选中的生命体征
///
private PhysioData selPhysioData = null;
///
- /// 选中点点坐标是否处在可编辑状态
- ///
- //private bool isEdit = false;
- ///
/// 当前手术对象
///
private OperationRecord myOpeRecord = null;
@@ -84,8 +72,6 @@ namespace DrawGraph
//自己要用的手术对象
myOpeRecord = OpeRecord as OperationRecord;
- //myOpeRecord.SAreaObj.maxnumber = ZedControl.GraphPane.YAxis.Scale.Max;
- //myOpeRecord.SAreaObj.minnumber = ZedControl.GraphPane.YAxis.Scale.Min;
}
///
@@ -120,7 +106,7 @@ namespace DrawGraph
{
if (curPhysioParam != null && curPhysioParam.IsClick == true)
{
- System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("你确定要删除当前曲线的所有生理数据吗?", "保存修改", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Information);
+ System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("是否删除当前选项的所有数据?", "系统提示", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Information);
if (dr == System.Windows.Forms.DialogResult.Yes)
{
if (curPhysioParam.ShowText == true)
@@ -141,13 +127,11 @@ namespace DrawGraph
curPhysioParam.DelItems(myOpeRecord.pageBegin, myOpeRecord.lastPageBegin);
curPhysioParam.clearAddObj(ZedControl);
+
+
ZedControl.Refresh();
}
}
- else
- {
- //PublicMethod.ShowMessage("删除曲线前请先选中曲线!");
- }
}
#endregion
@@ -159,7 +143,6 @@ namespace DrawGraph
///
public override void MouseDown(ZedGraphControl sender, MouseEventArgs e)
{
- //if ((OpeRecord != null && status == DoOpeStatus.BEGINOPE) || IsReview)
if (myOpeRecord != null)
{
if (e.Button != System.Windows.Forms.MouseButtons.Left) return;
@@ -214,7 +197,6 @@ namespace DrawGraph
{
if (curPhysioParam != null && curPhysioParam.IsClick)
{
- //如果曲线被选中则进行点的操作,反之选中所有点的集合在子范围内画选中框
bool isHave = false;
PhysioData pdTemp = rePD(sender, e);
@@ -222,13 +204,12 @@ namespace DrawGraph
foreach (PointPair pp in curPhysioParam.APhysioParams)
{
- curPhysioData = curPhysioParam.PointPairToPhysioData(pp);
if (pdTemp.isEquert(curPhysioParam.PointPairToPhysioData(pp)) && curPhysioParam.PointPairToPhysioData(pp).Value != Double.MaxValue)
{
isHave = true;
if (AnesOpeStatue == DoAnesOpeStatus.VIEW)
{
- oldCurPhysioData = curPhysioParam.PointPairToPhysioData(pp);
+ CurPhysioData = curPhysioParam.PointPairToPhysioData(pp);
AnesOpeStatue = DoAnesOpeStatus.MOVEPD;
break;
@@ -238,10 +219,8 @@ namespace DrawGraph
if (!isHave)
{
AnesOpeStatue = DoAnesOpeStatus.ADDPD;
- DateTime insTime = GetRecordTime(pdTemp.RecordTime);
-
- curPhysioParam.AddMultipleItem(pdTemp, insTime, collectInterval);
- AnesOpeStatue = DoAnesOpeStatus.VIEW;
+ DateTime insTime = GetRecordTime(pdTemp.RecordTime);
+ curPhysioParam.AddMultipleItem(pdTemp, insTime, collectInterval);
}
}
else
@@ -311,38 +290,35 @@ namespace DrawGraph
case DoAnesOpeStatus.MOVEPD:
if (curPhysioParam != null)
{
- try
+ PhysioData pdNew = rePD(sender, e);
+ if (pdNew == null) return;
+
+ PhysioData newPd = curPhysioParam.MoveItem(pdNew);
+ if (newPd != null )//&& CurPhysioData.Value != newPd.Value
{
- PhysioData pdNew = rePD(sender, e);
- if (pdNew == null) return;
-
- int countSim = 0;
- foreach (PointPair pp in curPhysioParam.APhysioParams)
+ CurPhysioData = newPd;
+ curPhysioParam.ModifyItem(CurPhysioData, CurPhysioData);
+ }
+ }
+ break;
+ case DoAnesOpeStatus.ADDPD:
+ if (curPhysioParam != null)
+ {
+ PhysioData pdTemp = rePD(sender, e);
+ if (pdTemp == null) return;
+ bool isHave = false;
+ foreach (PointPair pp in curPhysioParam.APhysioParams)
+ {
+ if (pdTemp.isEquert(curPhysioParam.PointPairToPhysioData(pp)) && curPhysioParam.PointPairToPhysioData(pp).Value != Double.MaxValue)
{
- PhysioData ppd = curPhysioParam.PointPairToPhysioData(pp);
- if (pdNew.isEquert(ppd))
- {
- countSim++;
- break;
- }
- }
- if (countSim < 2)
- {
- curPhysioParam.onlyModItem(pdNew, oldCurPhysioData);
- }
- else
- {
- curPhysioParam.onlyModItem(oldCurPhysioData, oldCurPhysioData);
- AnesOpeStatue = DoAnesOpeStatus.VIEW;
-
- ZedControl.AxisChange();
- ZedControl.Refresh();
- return;
+ isHave = true;
}
}
- catch
+ if (!isHave)
{
- return;
+ AnesOpeStatue = DoAnesOpeStatus.ADDPD;
+ DateTime insTime = GetRecordTime(pdTemp.RecordTime);
+ curPhysioParam.AddMultipleItem(pdTemp, insTime, collectInterval);
}
}
break;
@@ -356,8 +332,7 @@ namespace DrawGraph
myOpeRecord.SAreaObj.EndPd = pdNew;
myOpeRecord.SAreaObj.EndPds = rePDs(sender, e);
myOpeRecord.SAreaObj.Draw();
- }
-
+ }
}
catch { return; }
finally
@@ -380,23 +355,15 @@ namespace DrawGraph
if (curPhysioParam != null && curPhysioParam.IsClick == true)
{
- try
+ PhysioData pdNew = rePD(sender, e);
+ if (pdNew == null) return;
+ if (AnesOpeStatue == DoAnesOpeStatus.MOVEPD)
{
- PhysioData pdNew = rePD(sender, e);
- if (pdNew == null) return;
- if (AnesOpeStatue == DoAnesOpeStatus.MOVEPD)
- {
- curPhysioParam.ModItem(oldCurPhysioData, pdNew);
- curPhysioData = null;
- oldCurPhysioData = null;
- }
+ if (CurPhysioData.RecordTime == pdNew.RecordTime)
+ curPhysioParam.ModifyItem(CurPhysioData, pdNew);
+ CurPhysioData = null;
}
- catch
- {
- AnesOpeStatue = DoAnesOpeStatus.VIEW;
- return;
- }
AnesOpeStatue = DoAnesOpeStatus.VIEW;
ZedControl.AxisChange();
ZedControl.Refresh();
@@ -530,8 +497,7 @@ namespace DrawGraph
//DrawPhysioData();
curPhysioParam = null;
- curPhysioData = null;
- oldCurPhysioData = null;
+ CurPhysioData = null;
}
#endregion
@@ -546,7 +512,7 @@ namespace DrawGraph
Legend legend = myPane.Legend;
legend.IsVisible = true;
legend.Position = LegendPos.Float;//定位图标位置
- legend.Location = new Location(janCePack.RealX, janCePack.RealEndY - 0.02, CoordType.PaneFraction);//只有当Legend的Position属性设置为Float,才可修改其位置 0.87 0.3
+ legend.Location = new Location(janCePack.RealX, janCePack.RealEndY - 0.02, CoordType.PaneFraction);
legend.Border.Width = 0;
legend.Border.IsVisible = false; //不显示图标外边框
legend.Gap = 2.0f;
@@ -564,7 +530,7 @@ namespace DrawGraph
try
{
if (janCePack == null) return;
- int showvalue = 0;
+ int YRows = 0;
addPhysioList.Clear();
ZedControl.GraphPane.CurveList.Clear();
//监测区域里的第1根竖线,显示数值时用
@@ -588,21 +554,21 @@ namespace DrawGraph
int B = int.Parse(str[3].ToString());
pp.ConveColor = System.Drawing.Color.FromArgb(A, R, G, B);
- pp.IsValid = true;
+ pp.IsValid = true;
if (pp.IsDefalultShow == false || (pp.ShowImg == false && pp.ShowText == false))
- {
+ {
pp.IsValid = false;
- }
+ }
pp.ClearTagstr(ZedControl);
//如果模板管理不为空
if (pack != null && rowNum < 4 && pp.ShowText == true)
{
- double y = pack.RealY + getYPositionByListIndex(showvalue, pack.RealY, pack.RealEndY, RowsCount);
+ double y = pack.RealY + getYPositionByListIndex(YRows, pack.RealY, pack.RealEndY, RowsCount);
ZUtil.DrawText(pp.Name, pack.RealX, y, ZedControl, "PP" + pp.Enname, 5.5f);
- pp.showValue = y + 0.002;
- showvalue++;
+ pp.YLocation = y + 0.002;
+ YRows++;
rowNum++;
- }
+ }
pp.phListPack = phListPack;
pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.pageBegin,
myOpeRecord.pageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN));
@@ -617,7 +583,7 @@ namespace DrawGraph
if (!isHave)
{
addPhysioList.Add(pp);
- pp.draw();
+ pp.initCurve();
pp_Click(pp, null);
}
}
@@ -630,23 +596,23 @@ namespace DrawGraph
PhysioDataConfig pp = dt2[i];
pp.ConfigType = "麻醉体征";
if (pp.IsDefalultShow == false)
- {
+ {
pp.IsValid = false;
}
else
- {
+ {
pp.IsValid = true;
}
- pp.phListPack = phListPack;
+ pp.phListPack = phListPack;
pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.pageBegin,
myOpeRecord.pageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN));
pp.ClearTagstr(ZedControl);
- if ( rowNum < 4)
+ if (rowNum < 4)
{
- double y = pack.RealY + getYPositionByListIndex(showvalue, pack.RealY, pack.RealEndY, RowsCount);
+ double y = pack.RealY + getYPositionByListIndex(YRows, pack.RealY, pack.RealEndY, RowsCount);
ZUtil.DrawText(pp.Name, pack.RealX, y, ZedControl, "PP" + pp.Enname + pp.Id, 5.5f);
- pp.showValue = y + 0.002;
- showvalue++;
+ pp.YLocation = y + 0.002;
+ YRows++;
rowNum++;
}
myOpeRecord.PhysioAnesConfigList.Add(pp);
@@ -682,7 +648,7 @@ namespace DrawGraph
//原因:正是因为xmlOpe是全局变量,因此,在整个窗体生命周期都没有发生改变。
//即在该段时间内驻留内存,及时其他窗体将其信息改变,其操作的XML内容仍然不变。
//解决办法:重新定义,使XML操作对象发生变化。
- int showvalue = 0;
+ int YRows = 0;
//监测区域里的第1根竖线,显示数值时用
LinesPackObj pack = template.GetPackObjectOTag("MonitorManage_LinesPackObj_9");
@@ -698,11 +664,11 @@ namespace DrawGraph
int B = int.Parse(str[3].ToString());
pp.ConveColor = System.Drawing.Color.FromArgb(A, R, G, B);
- pp.IsValid = true;
+ pp.IsValid = true;
if (pp.IsDefalultShow == false || (pp.ShowImg == false && pp.ShowText == false))
- {
+ {
pp.IsValid = false;
- }
+ }
pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.pageBegin,
myOpeRecord.pageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN));
@@ -710,10 +676,10 @@ namespace DrawGraph
//如果模板管理不为空
if (pack != null && rowNum < 4 && pp.ShowText == true)
{
- double y = pack.RealY + getYPositionByListIndex(showvalue, pack.RealY, pack.RealEndY, RowsCount);
+ double y = pack.RealY + getYPositionByListIndex(YRows, pack.RealY, pack.RealEndY, RowsCount);
ZUtil.DrawText(pp.Name, pack.RealX, y, ZedControl, "PP" + pp.Enname, 5.5f);
- pp.showValue = y + 0.002;
- showvalue++;
+ pp.YLocation = y + 0.002;
+ YRows++;
rowNum++;
}
@@ -726,20 +692,20 @@ namespace DrawGraph
foreach (var pp in myOpeRecord.PhysioConfigList)
{
pp.ConfigType = "麻醉体征";
- pp.IsValid = true;
+ pp.IsValid = true;
if (pp.IsDefalultShow == false)
- {
+ {
pp.IsValid = false;
- }
+ }
pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.pageBegin,
myOpeRecord.pageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN));
pp.ClearTagstr(ZedControl);
if (pp.ShowText == true && rowNum < 4)
{
- double y = pack.RealY + getYPositionByListIndex(showvalue, pack.RealY, pack.RealEndY, RowsCount);
+ double y = pack.RealY + getYPositionByListIndex(YRows, pack.RealY, pack.RealEndY, RowsCount);
ZUtil.DrawText(pp.Name, pack.RealX, y, ZedControl, "PP" + pp.Enname + pp.Id, 5.5f);
- pp.showValue = y + 0.002;
- showvalue++;
+ pp.YLocation = y + 0.002;
+ YRows++;
rowNum++;
}
}
@@ -834,15 +800,18 @@ namespace DrawGraph
physioParam = myOpeRecord.PhysioConfigList[1];
else
physioParam = curPhysioParam;
- pdNews.Add(PhysioDataConfig.newPhysioData(physioParam, myOpeRecord.Id.Value, xd.DateTime, Math.Round(y[physioParam.YAisx], 2)));
+ double value = Math.Round(y[physioParam.YAisx], 0);
+ pdNews.Add(PhysioDataConfig.newPhysioData(physioParam, myOpeRecord.Id.Value, xd.DateTime, value));
if (y[1].ToString() != "")
{
- pdNews.Add(PhysioDataConfig.newPhysioData(myOpeRecord.PhysioConfigList.Where(a => a.Name == "氧饱和度").ToList()[0], myOpeRecord.Id.Value, xd.DateTime, Math.Round(y[physioParam.YAisx], 2)));
+ value = Math.Round(y[physioParam.YAisx], 0);
+ pdNews.Add(PhysioDataConfig.newPhysioData(myOpeRecord.PhysioConfigList.Where(a => a.Name == "氧饱和度").ToList()[0], myOpeRecord.Id.Value, xd.DateTime, value));
}
if (y[0].ToString() != "")
{
- pdNews.Add(PhysioDataConfig.newPhysioData(myOpeRecord.PhysioConfigList.Where(a => a.Name == "体温").ToList()[0], myOpeRecord.Id.Value, xd.DateTime, Math.Round(y[physioParam.YAisx], 2)));
+ value = Math.Round(y[physioParam.YAisx], 1);
+ pdNews.Add(PhysioDataConfig.newPhysioData(myOpeRecord.PhysioConfigList.Where(a => a.Name == "体温").ToList()[0], myOpeRecord.Id.Value, xd.DateTime, value));
}
}
@@ -885,7 +854,8 @@ namespace DrawGraph
{
physioParam = curPhysioParam;
}
- PhysioData pdNew = PhysioDataConfig.newPhysioData(physioParam, myOpeRecord.Id.Value, xd.DateTime, Math.Round(y[physioParam.YAisx], 2));
+ double value = physioParam.YAisx == 1 ? Math.Round(y[physioParam.YAisx], 1) : Math.Round(y[physioParam.YAisx], 0);
+ PhysioData pdNew = PhysioDataConfig.newPhysioData(physioParam, myOpeRecord.Id.Value, xd.DateTime, value);
return pdNew;
}