Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        /// <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;
        }