/// <summary> /// 增加麻醉事件 /// </summary> /// <param name="vitalSignGraph"></param> /// <param name="eventMark"></param> private void AddAnesEventMark(EventMarkModel eventMark, DateTime eventTime, string text, string anesFlag) { Color color = Color.Black; string alias = ""; SymbolModel symbol = null; MedSymbolCurveDetail detailFlag = GetVitalSignEventMark(anesFlag); SymbolCurveDetailModel detail = null; if (detailFlag != null) { detail = ConvertToDetailModel(GetVitalSignEventMark(anesFlag)); } if (detail != null) { symbol = new SymbolModel(detail.SymbolType); if (symbol.SymbolType == SymbolType.Text) { symbol.Text = detail.SymbolEntry; } symbol.Pen = new Pen(detail.Color); color = detail.Color; alias = anesFlag; } eventMark.AddPoint(eventTime, 0, text, symbol, color, alias); }
public EventMarkModel GetEventMark() { EventMarkModel mark = new EventMarkModel(); EventMarkModel mark1 = new EventMarkModel(); EventMarkModel mark2 = new EventMarkModel(); EventMarkModel mark3 = new EventMarkModel(); mark.Title = ""; mark1.Title = ""; mark2.Title = ""; mark3.Title = ""; AddAnesEventMark(mark1, DateTime.MinValue, "----- 事件 -----", EventNames.INDATETIME); AddAnesEventMark(mark2, DateTime.MinValue, "----- 麻药 -----", EventNames.INDATETIME); AddAnesEventMark(mark3, DateTime.MinValue, "----- 用药 -----", EventNames.INDATETIME); if (_operMaster != null) { if (_operMaster.IN_DATE_TIME.HasValue) { AddAnesEventMark(mark1, _operMaster.IN_DATE_TIME.Value, EventNames.INDATETIME, EventNames.INDATETIME); } if (_operMaster.ANES_START_TIME.HasValue)//麻醉开始 { AddAnesEventMark(mark1, _operMaster.ANES_START_TIME.Value, EventNames.ANESSTART, EventNames.ANESSTART); } if (_operMaster.START_DATE_TIME.HasValue)//手术开始 { AddAnesEventMark(mark1, _operMaster.START_DATE_TIME.Value, EventNames.OPERATIONSTART, EventNames.OPERATIONSTART); } if (_operMaster.END_DATE_TIME.HasValue)//手术结束 { AddAnesEventMark(mark1, _operMaster.END_DATE_TIME.Value, EventNames.OPERATIONEND, EventNames.OPERATIONEND); } if (_operMaster.ANES_END_TIME.HasValue)//麻醉结束 { AddAnesEventMark(mark1, _operMaster.ANES_END_TIME.Value, EventNames.ANESEND, EventNames.ANESEND); } if (_operMaster.OUT_DATE_TIME.HasValue) { AddAnesEventMark(mark1, _operMaster.OUT_DATE_TIME.Value, EventNames.OUTDATETIME, EventNames.OUTDATETIME); } } if (_anesEventList != null && _anesEventList.Count > 0) { _anesEventList.ForEach(row => { if (row.START_TIME.HasValue && !string.IsNullOrEmpty(row.EVENT_ITEM_NAME) && !string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && (row.EVENT_ITEM_NAME == "体外循环开始" || row.EVENT_ITEM_NAME == "体外循环结束" || row.EVENT_ITEM_NAME == "阻断升主动脉" || row.EVENT_ITEM_NAME == "开放升主动脉")) { AddAnesEventMark(mark1, row.START_TIME.Value, row.EVENT_ITEM_NAME, "体外循环"); //体外循环数据 } else if (row.EVENT_CLASS_CODE.Equals("7")) //插管数据 { AddAnesEventMark(mark1, row.START_TIME.Value, row.EVENT_ITEM_NAME, "插管"); } else if (row.EVENT_CLASS_CODE.Equals("8"))//插管数据 { AddAnesEventMark(mark1, row.START_TIME.Value, row.EVENT_ITEM_NAME, "拔管"); } else if (row.EVENT_CLASS_CODE.Equals("1")) { AddAnesEventMark(mark1, row.START_TIME.Value, row.EVENT_ITEM_NAME, ""); } else if (row.EVENT_CLASS_CODE.Equals("Z")) { AddAnesEventMark(mark1, row.START_TIME.Value, row.EVENT_ITEM_NAME, ""); } //else if (row.EVENT_CLASS_CODE.Equals("2") && (!row.DURATIVE_INDICATOR.HasValue || row.DURATIVE_INDICATOR == 0)) else if (row.EVENT_CLASS_CODE.Equals("2") && (!row.DURATIVE_INDICATOR.HasValue || row.DURATIVE_INDICATOR != 1))// 单点用药只要不是1,就是单点,都要出现在备注栏 { string text = row.EVENT_ITEM_NAME + " " + row.DOSAGE + row.DOSAGE_UNITS + " " + row.ADMINISTRATOR; AddAnesEventMark(mark2, row.START_TIME.Value, text, ""); } //else if (row.EVENT_CLASS_CODE.Equals("C") && (!row.DURATIVE_INDICATOR.HasValue || row.DURATIVE_INDICATOR == 0)) else if (row.EVENT_CLASS_CODE.Equals("C") && (!row.DURATIVE_INDICATOR.HasValue || row.DURATIVE_INDICATOR != 1)) { string text = row.EVENT_ITEM_NAME + " " + row.DOSAGE + row.DOSAGE_UNITS + " " + row.ADMINISTRATOR; AddAnesEventMark(mark3, row.START_TIME.Value, text, ""); } }); } List <MED_OPERATION_SHIFT_RECORD> shiftRecordList = AnesInfoService.ClientInstance.GetOperShiftRecord( ExtendAppContext.Current.PatientInformationExtend.PATIENT_ID, ExtendAppContext.Current.PatientInformationExtend.VISIT_ID, ExtendAppContext.Current.PatientInformationExtend.OPER_ID).Where(x => x.SHIFT_PERSON != null && x.END_DATE_TIME != null).ToList(); if (shiftRecordList.Count > 0) { foreach (var item in shiftRecordList) { string text = item.PERSON_NAME + "交班给" + item.SHIFT_PERSON_NAME; AddAnesEventMark(mark1, item.END_DATE_TIME.Value, text, ""); } } mark1.ReSort(); mark2.ReSort(); mark3.ReSort(); if (mark1.Points != null && mark1.Points.Count > 1) { for (int i = 1; i <= mark1.Points.Count; i++) { if (i != 1) { mark1.Points[i - 1].Index = i - 1; } mark.AddPoint(mark1.Points[i - 1].TimePoint, mark1.Points[i - 1].Index, mark1.Points[i - 1].Text, mark1.Points[i - 1].Symbol, mark1.Points[i - 1].Color, mark1.Points[i - 1].LengenedText); } } if (mark2.Points != null && mark2.Points.Count > 1) { for (int i = 1; i <= mark2.Points.Count; i++) { if (i != 1) { mark2.Points[i - 1].Index = i - 1; } mark.AddPoint(mark2.Points[i - 1].TimePoint, mark2.Points[i - 1].Index, mark2.Points[i - 1].Text, mark2.Points[i - 1].Symbol, mark2.Points[i - 1].Color, mark2.Points[i - 1].LengenedText); } } if (mark3.Points != null && mark3.Points.Count > 1) { for (int i = 1; i <= mark3.Points.Count; i++) { if (i != 1) { mark3.Points[i - 1].Index = i - 1; } mark.AddPoint(mark3.Points[i - 1].TimePoint, mark3.Points[i - 1].Index, mark3.Points[i - 1].Text, mark3.Points[i - 1].Symbol, mark3.Points[i - 1].Color, mark3.Points[i - 1].LengenedText); } } if (mark.Points != null && mark.Points.Count > 0) { int j = 0; for (int i = 1; i <= mark.Points.Count; i++) { if (mark.Points[i - 1].Index == 0) { j++; } else { mark.Points[i - 1].Index = i - j; } } } EventMark = mark; return(EventMark); }
/// <summary> /// ¹¹Ôì·½·¨ /// </summary> public TestViewModel() { //OperationDocLib lr = new OperationDocLib(); //lr.GetAnesDoc("Âé×í¼Ç¼µ¥"); //var aaa = AnesInfoService.ClientInstance.GetAnesthesiaPlan("1153772", 1, 1); //LoadReport lr = new LoadReport(); //lr.LoadReportByName("Âé×íµ¥"); DateTime begin = DateTime.Now.Date.AddHours(9); List <IntakeAndOutputData> DataList = new List <IntakeAndOutputData>(); IntakeAndOutputData data = new IntakeAndOutputData("ÑõÆø£¨ÎüÈ룩", 5, "L/min"); data.BeginTime = begin.AddMinutes(22); //data.EndTime = data.BeginTime.Value.AddMinutes(26); DataList.Add(data); data = new IntakeAndOutputData("5%ÆÏÌÑÌÇ", 500, "mL"); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(53)); DataList.Add(data); data = new IntakeAndOutputData("10%ÆÏÌÑÌÇ", 500, "mL"); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(53)); DataList.Add(data); data = new IntakeAndOutputData("15%ÆÏÌÑÌÇ", 500, "mL"); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(53)); DataList.Add(data); data = new IntakeAndOutputData("Äò", 1, "L", IntakeAndOutputType.Output); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(33)); DataList.Add(data); data = new IntakeAndOutputData("Ѫ", 500, "mL", IntakeAndOutputType.Output); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(33)); DataList.Add(data); data = new IntakeAndOutputData("ÒýÁ÷", 500, "mL", IntakeAndOutputType.Output); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(33)); DataList.Add(data); data = new IntakeAndOutputData("ÒýÁ÷1", 500, "mL", IntakeAndOutputType.Output); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(33)); DataList.Add(data); data = new IntakeAndOutputData("ÒýÁ÷2", 500, "mL", IntakeAndOutputType.Output); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(33)); DataList.Add(data); data = new IntakeAndOutputData("ÒýÁ÷3", 500, "mL", IntakeAndOutputType.Output); data.OnetimeData = new IntakeAndOutputData.OneTimeIntakeAndOut(begin.AddMinutes(33)); DataList.Add(data); data = new IntakeAndOutputData("¸´·½ÂÈ»¯ÄÆ×¢ÉäÒº", 500, "ml", IntakeAndOutputType.Infusion); data.BeginTime = begin.AddMinutes(22); data.EndTime = data.BeginTime.Value.AddMinutes(39); DataList.Add(data); _InputOutData = DataList; AxisSetting axisSetting = new AxisSetting(); axisSetting.BeginTime = begin; axisSetting.EndTime = begin.AddHours(3).AddMinutes(3); axisSetting.MoveMinLimitTime = begin.AddHours(-3); axisSetting.MoveMaxLimitTime = axisSetting.EndTime.Value.AddHours(1); xAxisSetting = axisSetting; _YAxisSettings = new List <YAxisSetting>() { new YAxisSetting() { MinVal = 0, MaxVal = 320, MinorStep = 0, MajorStep = 20, IsPrimary = true, Index = 0, Title = "xxx", Unit = "mmHg" } , new YAxisSetting() { MinVal = 10, MaxVal = 42, MinorStep = 0, MajorStep = 2, IsPrimary = false, Index = 1, Title = "ÌåÎÂ", Unit = "¡æ" } }; _RescueTimeList = new List <RescueTime>() { new RescueTime(begin.AddMinutes(30), begin.AddHours(1)) , new RescueTime(begin.AddHours(2), begin.AddHours(2).AddMinutes(30)) }; //»³±ÆøÁ¿Í¼±ê _breathParam = new BreathParaModel(); _breathParam.TopParamName = "I:E"; _breathParam.LeftParamName = "TVE"; _breathParam.RightParamName = "f"; _breathParam.BreathParalList.Add(begin.AddMinutes(68), new BreathParaDetail("30", "120", "40")); _breathParam.BreathParalList.Add(begin.AddMinutes(83), new BreathParaDetail("30", "120", "40")); _breathParam.BreathParalList.Add(begin.AddMinutes(95), new BreathParaDetail("30", "120", "40")); _breathParam.BreathParalList.Add(begin.AddMinutes(110), new BreathParaDetail("30", "120", "40")); //ÇúÏß _Curves = new List <VitalSignCurveDetailModel>(); List <SymbolModel> symbolList = new List <SymbolModel>(); symbolList.Add(new SymbolModel(SymbolType.None) { Text = "#" }); Model.InOperationModel.VitalSignCurveDetailModel curve = new Model.InOperationModel.VitalSignCurveDetailModel("²âÊÔ", 0, System.Drawing.Color.Blue, true); curve.Points = new List <VitalSignPointModel>(); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(68), "#", curve, null, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(72), "#", curve, null, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(83), "#", curve, null, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(97), "#", curve, null, string.Empty)); _Curves.Add(curve); curve = new Model.InOperationModel.VitalSignCurveDetailModel("²âÊÔ2", 0, System.Drawing.Color.Blue, true); curve.Points = new List <VitalSignPointModel>(); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(68), "#", curve, null, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(72), "#", curve, null, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(83), "#", curve, null, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(97), "#", curve, null, string.Empty)); _Curves.Add(curve); curve = new Model.InOperationModel.VitalSignCurveDetailModel("ÊæÕÅѹ", 0, System.Drawing.Color.FromArgb(0xFF, 0x1D, 0xAD, 0xE7)); curve.Points = new List <VitalSignPointModel>(); SymbolType stype = SymbolType.VLetter; SymbolModel smodel = new SymbolModel(stype); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(14), 100, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(32), 1300, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(64), 200, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(92), -100, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(120), 300, curve, smodel, string.Empty)); curve.LegendList = new List <LegendItem>() { new LegendItem() { DisplayName = "ÊæÕÅѹ", Symbol = smodel } }; _Curves.Add(curve); curve = new Model.InOperationModel.VitalSignCurveDetailModel("ÊÕËõѹ", 0, System.Drawing.Color.RoyalBlue); curve.Points = new List <VitalSignPointModel>(); stype = SymbolType.VLetterDown; smodel = new SymbolModel(stype); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(11), 80, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(50), 110, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(64), 130, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(92), 150, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(120), 220, curve, smodel, string.Empty)); curve.LegendList = new List <LegendItem>() { new LegendItem() { DisplayName = "ÊÕËõѹ", Symbol = smodel } }; _Curves.Add(curve); curve = new Model.InOperationModel.VitalSignCurveDetailModel("²âÊÔµÄ", 0, System.Drawing.Color.Chocolate); curve.Points = new List <VitalSignPointModel>(); stype = SymbolType.Triangle; smodel = new SymbolModel(stype); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(23), 60, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(32), 78, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(64), 82, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(92), 90, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(120), 110, curve, smodel, string.Empty)); curve.LegendList = new List <LegendItem>() { new LegendItem() { DisplayName = "²âÊÔµÄ", Symbol = smodel } }; curve.HideTime = new List <DateTimeRangeModel>() { new DateTimeRangeModel(begin.AddMinutes(65), begin.AddMinutes(90)) }; _Curves.Add(curve); curve = new Model.InOperationModel.VitalSignCurveDetailModel("²âÊÔµÄ2", 0, System.Drawing.Color.Gray); curve.Points = new List <VitalSignPointModel>(); stype = SymbolType.Circle; smodel = new SymbolModel(stype); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(23), 80, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(32), 168, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(64), 172, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(92), 199, curve, smodel, string.Empty)); curve.Points.Add(new VitalSignPointModel(begin.AddMinutes(120), 153, curve, smodel, string.Empty)); curve.LegendList = new List <LegendItem>() { new LegendItem() { DisplayName = "²âÊÔµÄ2", Symbol = smodel } }; _Curves.Add(curve); //ʼþ _EventMark = new EventMarkModel(); _EventMark.AddPoint(begin.AddMinutes(37), 12, "²âÊÔʼþ", new SymbolModel(SymbolType.CircleXCross), System.Drawing.Color.Red, "²âÊÔʼþ"); _EventMark.AddPoint(begin.AddMinutes(50), 12, "²âÊÔʼþ1", new SymbolModel(SymbolType.CircleDot), System.Drawing.Color.Red, "²âÊÔʼþ1"); _EventMark.AddPoint(begin.AddMinutes(53), 12, "²âÊÔʼþ2", new SymbolModel(SymbolType.CircleHArrow), System.Drawing.Color.Red, "²âÊÔʼþ2"); _EventMark.AddPoint(begin.AddMinutes(54), 12, "²âÊÔʼþ3", new SymbolModel(SymbolType.CircleHLine), System.Drawing.Color.Red, "²âÊÔʼþ3"); _EventMark.AddPoint(begin.AddMinutes(55), 12, "²âÊÔʼþ4", new SymbolModel(SymbolType.CirclePlus), System.Drawing.Color.Red, "²âÊÔʼþ4"); _EventMark.AddPoint(begin.AddMinutes(59), 12, "²âÊÔʼþ6", new SymbolModel(SymbolType.CircleXCrossDot), System.Drawing.Color.Red, "²âÊÔʼþ5"); _EventMark.AddPoint(begin.AddMinutes(65), 12, "²âÊÔʼþ7", new SymbolModel(SymbolType.Diamond), System.Drawing.Color.Red, "²âÊÔʼþ6"); _EventMark.AddPoint(begin.AddMinutes(85), 12, "²âÊÔʼþ8", new SymbolModel(SymbolType.MiniCircle), System.Drawing.Color.Red, "²âÊÔʼþ7"); _TextMarkPoints = new List <TextMarkPoint>(); _TextMarkPoints.Add(new TextMarkPoint(begin.AddMinutes(53), "ѪÆø·ÖÎö¶þ\nѪÆø·ÖÎö¶þ\nѪÆø·ÖÎö¶þ\nѪÆø·ÖÎö¶þ\nѪÆø·ÖÎö¶þ\nѪÆø·ÖÎö¶þ")); _TextMarkPoints.Add(new TextMarkPoint(begin.AddMinutes(85), "ѪÆø·ÖÎöÈý\nѪÆø·ÖÎöÈý\nѪÆø·ÖÎöÈý\nѪÆø·ÖÎöÈý\nѪÆø·ÖÎöÈý\nѪÆø·ÖÎöÈý")); _TextMarkPoints.Add(new TextMarkPoint(begin.AddMinutes(147), "ѪÆø·ÖÎöËÄ\nѪÆø·ÖÎöËÄ\nѪÆø·ÖÎöËÄ\nѪÆø·ÖÎöËÄ\nѪÆø·ÖÎöËÄ\nѪÆø·ÖÎöËÄ")); _ProcessBeginTime = begin.AddMinutes(54); _IsEditEnable = true; IsHiddenEventMarkArea = true; }