画点模式修改

This commit is contained in:
leomon 2022-12-20 00:09:37 +08:00
parent 6374f814bf
commit 4f34e157d6
8 changed files with 510 additions and 693 deletions

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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();
}

View File

@ -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);
}
}
}

View File

@ -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();

View File

@ -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();
}

File diff suppressed because it is too large Load Diff

View File

@ -30,30 +30,18 @@ namespace DrawGraph
/// </summary>
AbleEditPackObj phListPack = null;
/// <summary>
/// 当前图例文本
/// </summary>
//string curLegend = "";
/// <summary>
/// 当前选中的,手术生理曲线
/// </summary>
private PhysioDataConfig curPhysioParam = null;
/// <summary>
/// 当前选中的生命体征对象 临时
/// </summary>
private PhysioData curPhysioData = null;
/// <summary>
/// 当前选中的生命体征对象 未改变前
/// </summary>
private PhysioData oldCurPhysioData = null;
private PhysioData CurPhysioData = null;
/// <summary>
/// 悬浮选中的生命体征
/// </summary>
private PhysioData selPhysioData = null;
/// <summary>
/// 选中点点坐标是否处在可编辑状态
/// </summary>
//private bool isEdit = false;
/// <summary>
/// 当前手术对象
/// </summary>
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;
}
/// <summary>
@ -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
/// <param name="e"></param>
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<LinesPackObj>("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;
}