public VitalSignViewModel(List <MED_VITAL_SIGN> vitalSignList, List <MED_ANESTHESIA_EVENT> anesEventList, MedVitalSignGraph vitalSignGraph, AxisSetting xAxisSetting) { _vitalSignList = vitalSignList; _anesEventList = anesEventList; _vitalSignGraph = vitalSignGraph; _xAxisSetting = xAxisSetting; }
/// <summary> /// 绑定数据源数据到控件 /// </summary> public override void BindDataToUI(MedLegengGraph control, Dictionary <string, System.Data.DataTable> dataSources) { MedVitalSignGraph vitalGraph = null; foreach (IUIElementHandler handler in MedicalPaperUIElementHandlers) { if (handler.GetControlType == typeof(MedVitalSignGraph) && handler.GetCurrentControl != null) { vitalGraph = handler.GetCurrentControl as MedVitalSignGraph; } } control.VitalSign = vitalGraph; }
public bool CancelBloodGas(MedVitalSignGraph vitalSignGraph) { bool n = false; if (vitalSignGraph != null && vitalSignGraph.MouseTime >= vitalSignGraph.StartTime && vitalSignGraph.MouseTime <= vitalSignGraph.EndTime && vitalSignGraph.SelectedBlood != null) { List <MED_BLOOD_GAS_MASTER> bloodGasMasterDataTable = operationInfoRepository.GetBloodGasMasterListByID(vitalSignGraph.SelectedBlood.DetailId).Data; if (bloodGasMasterDataTable != null && bloodGasMasterDataTable.Count == 1) { bloodGasMasterDataTable[0].NURSE_MEMO2 = "取消显示"; n = operationInfoRepository.SaveBloodGasMaster(bloodGasMasterDataTable).Data > 0 ? true : false; } } return(n); }
/// <summary> /// 设置所有控件是否可编辑 /// </summary> /// <param name="canEdit"></param> public void SetAllControlEditable(bool canEdit) { foreach (T control in _controls) { if (control is MedVitalSignGraph) { MedVitalSignGraph graph = control as MedVitalSignGraph; graph.CanUpdate = canEdit; } else { control.Enabled = canEdit; } control.BackColor = Color.White; } }
protected List <MedVitalSignCurveDetail> GetUserVitalShowSet(string eventNo) { List <MedVitalSignCurveDetail> list = new List <MedVitalSignCurveDetail>(); MED_PATIENT_MONITOR_CONFIG config = GetPatientMonitorConfigDataTable(eventNo); if (config != null && !string.IsNullOrEmpty(config.CONTENT.ToString())) { System.IO.MemoryStream stream = new System.IO.MemoryStream(config.CONTENT); stream.Position = 0; DataSet ds = new DataSet(); ds.ReadXml(stream); if (ds.Tables.Count > 0) { string tableName = "UserVitalShowSet" + ((Convert.ToInt32(eventNo) < 0) ? "0" : eventNo); DataTable dataTable = ds.Tables[tableName]; ListFromTable(list, typeof(MedVitalSignCurveDetail), dataTable); } ds.Dispose(); stream.Close(); stream.Dispose(); } // 获取用药图表控件,去掉重复的药 MedVitalSignGraph vitalSignGraph = null; foreach (IUIElementHandler handler in MedicalPaperUIElementHandlers) { if (handler.GetControlType == typeof(MedVitalSignGraph) && handler.GetCurrentControl != null) { vitalSignGraph = handler.GetCurrentControl as MedVitalSignGraph; break; } } if (null != vitalSignGraph) { foreach (MedVitalSignCurveDetail detail in vitalSignGraph.CurveDetails) { if (!string.IsNullOrEmpty(detail.CurveCode) && !list.Contains(detail)) { list.Add(detail); } } } return(list); }
public override void LoadData() { //加载数据 if (ExtendAppContext.Current._VitalSignGraph == null) { ApplicationConfiguration.MedicalDocucementElement document = ApplicationConfiguration.GetMedicalDocument("麻醉记录单"); string _reportName = ExtendAppContext.Current.AppPath + document.Path; Panel p = new Panel(); AssemblyHelper.ReadFile(_reportName, p); ReadControl(p); p.Dispose(); } else { _vitalSignGraph = ExtendAppContext.Current._VitalSignGraph; } }
/// <summary> /// 取消血气 /// </summary> public bool CancelBloodGas(MedVitalSignGraph vitalSignGraph) { bool n = false; if (vitalSignGraph != null && vitalSignGraph.MouseTime >= vitalSignGraph.StartTime && vitalSignGraph.MouseTime <= vitalSignGraph.EndTime && vitalSignGraph.SelectedBlood != null) { List <MED_BLOOD_GAS_MASTER> bloodGasMasterDataTable = AnesInfoService.ClientInstance.GetBloodGasMasterListByID(vitalSignGraph.SelectedBlood.DetailId); if (bloodGasMasterDataTable != null && bloodGasMasterDataTable.Count == 1) { bloodGasMasterDataTable[0].NURSE_MEMO2 = null; n = AnesInfoService.ClientInstance.SaveBloodGasMaster(bloodGasMasterDataTable); } } return(n); }
private MedSymbolCurveDetail GetVitalSignEventMark(MedVitalSignGraph vitalSignGraph, string curveText) { foreach (MedSymbolCurveDetail curveDetail in vitalSignGraph.EventMarkSettings) { string text1 = curveText.Trim(); string text2 = curveDetail.Text.Trim(); if (text1.ToLower().Equals(text2.ToLower()) || text1.ToLower().StartsWith(text2.ToLower() + "(")) { return(curveDetail); } else if ((text2.EndsWith("%") && text1.StartsWith(text2.Substring(0, text2.Length - 2))) || (text2.StartsWith("%") && text1.EndsWith(text2.Substring(1))) || (text2.StartsWith("%") && text2.EndsWith("%") && text1.Contains(text2.Substring(1, text2.Length - 2)))) { return(curveDetail); } } return(null); }
/// <summary> /// 数据保存 /// </summary> protected override bool OnSaveData(Dictionary <string, DataTable> dataSource) { base.OnSaveData(dataSource); bool result = this.SaveDocDataPars(dataSource); foreach (IUIElementHandler handler in _UIElementHandlers) { if (handler.GetControlType == typeof(MedVitalSignGraph) && handler.GetCurrentControl != null) { MedVitalSignGraph vitalSign = handler.GetCurrentControl as MedVitalSignGraph; if (vitalSign.NewMonitorData != null) { vitalSign.NewMonitorData.Save(); } } } return(result); }
public void ReadControl(Control ctrl) { // MedVitalSignGraph vitalGraph = null; foreach (Control control in ctrl.Controls) { if (control.HasChildren) { ReadControl(control); } if (control is MedVitalSignGraph) { _vitalSignGraph = control as MedVitalSignGraph; ExtendAppContext.Current._VitalSignGraph = _vitalSignGraph; try { LoadVitalSignControl(); } catch (Exception ex) { Logger.Error("加载体征数据异常", ex); } } } }
/// <summary> /// 数据保存 /// </summary> /// <param name="dataSource"></param> protected override void OnSaveData(Dictionary <string, DataTable> dataSource) { base.OnSaveData(dataSource); List <MED_OPERATION_MASTER> operMasterList = ModelHelper <MED_OPERATION_MASTER> .ConvertDataTableToList(dataSource["MED_OPERATION_MASTER"]); MED_OPERATION_MASTER operMaster = null; if (operMasterList != null && operMasterList.Count > 0) { operMaster = operMasterList[0]; if (!operMaster.OUT_PACU_DATE_TIME.HasValue && operMaster.OPER_STATUS_CODE == (int)OperationStatus.InPACU) { MED_OPERATION_MASTER master = operationInfoRepository.GetOperMaster(ExtendApplicationContext.Current.PatientContextExtend.PatientID, ExtendApplicationContext.Current.PatientContextExtend.VisitID, ExtendApplicationContext.Current.PatientContextExtend.OperID).Data; if (master.OUT_PACU_DATE_TIME.HasValue) { operMaster.OUT_PACU_DATE_TIME = master.OUT_PACU_DATE_TIME; operMaster.OPER_STATUS_CODE = master.OPER_STATUS_CODE; } } if (operMaster.IN_PACU_DATE_TIME.HasValue && !operMaster.OUT_PACU_DATE_TIME.HasValue) { operMaster.OPER_STATUS_CODE = 45; } } List <MED_PAT_MASTER_INDEX> patIndexList = ModelHelper <MED_PAT_MASTER_INDEX> .ConvertDataTableToList(dataSource["MED_PAT_MASTER_INDEX"]); MED_PAT_MASTER_INDEX patMasterIndex = null; if (patIndexList != null && patIndexList.Count > 0) { patMasterIndex = patIndexList[0]; } List <MED_PAT_VISIT> patVisitList = ModelHelper <MED_PAT_VISIT> .ConvertDataTableToList(dataSource["MED_PAT_VISIT"]); MED_PAT_VISIT patVisit = null; if (patVisitList != null && patVisitList.Count > 0) { patVisit = patVisitList[0]; } List <MED_ANESTHESIA_PLAN> anesPlanList = ModelHelper <MED_ANESTHESIA_PLAN> .ConvertDataTableToList(dataSource["MED_ANESTHESIA_PLAN"]); MED_ANESTHESIA_PLAN anesPlan = null; if (anesPlanList != null && anesPlanList.Count > 0) { anesPlan = anesPlanList[0]; } List <MED_ANESTHESIA_PLAN_PMH> anesPlanPMHList = ModelHelper <MED_ANESTHESIA_PLAN_PMH> .ConvertDataTableToList(dataSource["MED_ANESTHESIA_PLAN_PMH"]); MED_ANESTHESIA_PLAN_PMH anesPlanPmh = null; if (anesPlanPMHList != null && anesPlanPMHList.Count > 0) { anesPlanPmh = anesPlanPMHList[0]; } List <MED_OPERATION_EXTENDED> operExtended = ModelHelper <MED_OPERATION_EXTENDED> .ConvertDataTableToList(dataSource["MED_OPERATION_EXTENDED"]); List <MED_POSTOPERATIVE_EXTENDED> postExtended = ModelHelper <MED_POSTOPERATIVE_EXTENDED> .ConvertDataTableToList(dataSource["MED_POSTOPERATIVE_EXTENDED"]); //OperationInfoService.SaveMedicalBasicDoc(operMaster, patIndex, patVisit, null, anesPlan, null, anesPlanPMH, operExtended, posExtended, null); MED_PATS_IN_HOSPITAL patsInHospital = null; MED_ANESTHESIA_PLAN_EXAM anesPlanExam = null; List <MED_PREOPERATIVE_EXPANSION> preExpansion = null; operationInfoRepository.SaveMedicalBasicDoc(new { operMaster, patMasterIndex, patVisit, patsInHospital, anesPlan, anesPlanExam, anesPlanPmh, operExtended, postExtended, preExpansion }); foreach (IUIElementHandler handler in _UIElementHandlers) { if (handler.GetControlType == typeof(MedVitalSignGraph) && handler.GetCurrentControl != null) { MedVitalSignGraph vitalSign = handler.GetCurrentControl as MedVitalSignGraph; if (vitalSign.NewMonitorData != null) { vitalSign.NewMonitorData.Save(); } } } }
/// <summary> /// 获取呼吸时间列表 /// </summary> /// <param name="breathType"></param> /// <param name="anesEvent"></param> /// <param name="vitalSignGraph"></param> /// <returns></returns> private List <MedVitalSignBreathControlTime> BreathTimeList(string breathType, List <MED_ANESTHESIA_EVENT> anesEvent, MedVitalSignGraph vitalSignGraph, Dictionary <string, VitalSignCurveDetailModel> dict) { List <MED_ANESTHESIA_EVENT> rows = anesEvent.Where(x => x.EVENT_ITEM_NAME.Contains(breathType)).ToList(); DateTime controlStartTime = DateTime.MinValue; DateTime controlEndTime = DateTime.MaxValue; double dBreathValue = -1; //控制呼吸时间列表 List <MedVitalSignBreathControlTime> listControlTime = new List <MedVitalSignBreathControlTime>(); DateTime sysDatetTime = DateTime.Now; if (rows != null) { rows.ForEach(anesthesiaEventRow => { //初始化值 controlStartTime = DateTime.MinValue; controlEndTime = DateTime.MaxValue; if (anesthesiaEventRow.START_TIME.HasValue) { controlStartTime = anesthesiaEventRow.START_TIME.Value; } if (anesthesiaEventRow.END_TIME.HasValue) { controlEndTime = anesthesiaEventRow.END_TIME.Value; } if (anesthesiaEventRow.DOSAGE.HasValue) { dBreathValue = (double)anesthesiaEventRow.DOSAGE; } else { dBreathValue = 0; } //有开始时间 并且有体征数据 并且有呼吸值 if (controlStartTime != DateTime.MinValue && dBreathValue >= 0) { //没有结束时间 if (controlEndTime == DateTime.MaxValue) { controlEndTime = sysDatetTime; } DateTimeRange range = new DateTimeRange(controlStartTime, controlEndTime); //控制呼吸 MedVitalSignBreathControlTime breathControlTime = new MedVitalSignBreathControlTime(); breathControlTime.startTime = range.StartDateTime; breathControlTime.endTime = range.EndDateTime; breathControlTime.oStartTime = controlStartTime; breathControlTime.oEndTime = controlEndTime; breathControlTime.breathValue = dBreathValue; //显示频率 int timeSpan = 5; string breathName = "呼吸"; Color color = Color.Magenta; //设置初始值 foreach (VitalSignCurveDetailModel detail in dict.Values) { if (detail.CurveName.Equals("呼吸")) { color = detail.Color; break; } } foreach (VitalSignCurveDetailModel detail in dict.Values) { if (breathType == "自主呼吸") { breathName = "呼吸"; } else { breathName = breathType; } if (detail.CurveName.Equals(breathName)) { color = detail.Color; switch (detail.ShowTimeInterval) { case ShowTimeInterval.Five: timeSpan = 5; break; case ShowTimeInterval.Fifiteen: timeSpan = 15; break; case ShowTimeInterval.Ten: timeSpan = 10; break; case ShowTimeInterval.Twenty: timeSpan = 20; break; case ShowTimeInterval.HalfHour: timeSpan = 30; break; case ShowTimeInterval.Hour: timeSpan = 60; break; } } } //新增显示频率 20120927 breathControlTime.showTimeInterval = timeSpan; breathControlTime.curveColor = color; if (breathType.Contains("控制呼吸")) { breathControlTime.BreathType = BreathControlType.ControlBreath; if (!string.IsNullOrEmpty(vitalSignGraph.BreathPara1) && !string.IsNullOrEmpty(vitalSignGraph.BreathPara2) && !string.IsNullOrEmpty(vitalSignGraph.BreathPara3)) { List <MED_PAT_MONITOR_DATA_EXT> patMonitorDataExtDataTable = AnesInfoService.ClientInstance.GetPatMonitorExtList(ExtendAppContext.Current.PatientInformationExtend.PATIENT_ID, ExtendAppContext.Current.PatientInformationExtend.VISIT_ID, ExtendAppContext.Current.PatientInformationExtend.OPER_ID); if (patMonitorDataExtDataTable != null && patMonitorDataExtDataTable.Count > 0) { List <MED_PAT_MONITOR_DATA_EXT> rows1 = patMonitorDataExtDataTable.Where(x => x.ITEM_CODE == vitalSignGraph.BreathPara1 || x.ITEM_CODE == vitalSignGraph.BreathPara2 || x.ITEM_CODE == vitalSignGraph.BreathPara3).ToList(); if (rows1 != null && rows1.Count > 0) { rows1.ForEach(rr => { if (!vitalSignGraph.BreathParalList.ContainsKey(rr.TIME_POINT)) { vitalSignGraph.BreathParalList.Add(rr.TIME_POINT, new MedVitalSignGraph.BreathPara()); } if (!string.IsNullOrEmpty(rr.ITEM_VALUE)) { if (rr.ITEM_CODE.Equals(vitalSignGraph.BreathPara1)) { vitalSignGraph.BreathParalList[rr.TIME_POINT].Para1 = rr.ITEM_VALUE; } else if (rr.ITEM_CODE.Equals(vitalSignGraph.BreathPara2)) { vitalSignGraph.BreathParalList[rr.TIME_POINT].Para2 = rr.ITEM_VALUE; } else if (rr.ITEM_CODE.Equals(vitalSignGraph.BreathPara3)) { vitalSignGraph.BreathParalList[rr.TIME_POINT].Para3 = rr.ITEM_VALUE; } } }); } } } } else if (breathType.Contains("辅助呼吸")) { breathControlTime.BreathType = BreathControlType.HelpBreath; } else if (breathType.Contains("自主呼吸")) { breathControlTime.BreathType = BreathControlType.FreeBreath; } listControlTime.Add(breathControlTime); } }); } return(listControlTime); }
public BreathParaViewModel(MedVitalSignGraph vitalSignGraph) { _vitalSignGraph = vitalSignGraph; }
public EventMarkViewModel(List <MED_ANESTHESIA_EVENT> anesEventList, MED_OPERATION_MASTER operMaster, MedVitalSignGraph vitalSignGraph) { _anesEventList = anesEventList; _operMaster = operMaster; _vitalSignGraph = vitalSignGraph; }
protected override void RescueMode() { MedVitalSignGraph vitalSignGraph = null; MedDrugGraph drugGraph = null; MedGridGraph gridGraph = null; List <MedVitalSignGraph> vitalSignGraphs = ReportViewer.GetControls <MedVitalSignGraph>(); List <MedDrugGraph> drugGraphs = ReportViewer.GetControls <MedDrugGraph>(); List <MedGridGraph> gridGraphs = ReportViewer.GetControls <MedGridGraph>(); if (vitalSignGraphs.Count > 0) { vitalSignGraph = vitalSignGraphs[0]; if (!ExtendApplicationContext.Current.IsRescueMode) { ExtendApplicationContext.Current.OldMinScaleCount = vitalSignGraph.MinScaleCount; } } if (drugGraphs.Count > 0) { drugGraph = drugGraphs[0]; } if (gridGraphs.Count > 0) { gridGraph = gridGraphs[0]; } base.RescueMode(); if (ExtendApplicationContext.Current.IsRescueMode) { switch (vitalSignGraph.ScaleType) { case ScaleType.HalfHour: vitalSignGraph.MinScaleCount = 30; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 30; gridGraph.MinScaleCount = 30; break; case ScaleType.Hour: vitalSignGraph.MinScaleCount = 60; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 60; gridGraph.MinScaleCount = 60; break; case ScaleType.OneMin: vitalSignGraph.MinScaleCount = 1; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 1; gridGraph.MinScaleCount = 1; break; case ScaleType.Quarter: vitalSignGraph.MinScaleCount = 15; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 15; gridGraph.MinScaleCount = 15; break; case ScaleType.TenMin: vitalSignGraph.MinScaleCount = 10; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 10; gridGraph.MinScaleCount = 10; break; case ScaleType.TriQuarter: vitalSignGraph.MinScaleCount = 45; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 45; gridGraph.MinScaleCount = 45; break; case ScaleType.TwiHour: vitalSignGraph.MinScaleCount = 120; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 120; gridGraph.MinScaleCount = 120; break; case ScaleType.TwoMin: vitalSignGraph.MinScaleCount = 2; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 2; gridGraph.MinScaleCount = 2; break; case ScaleType.FiveMin: vitalSignGraph.MinScaleCount = 5; vitalSignGraph.OnlyShowFileMinute = false; drugGraph.MinScaleCount = 5; gridGraph.MinScaleCount = 5; break; } } else { vitalSignGraph.MinScaleCount = ExtendApplicationContext.Current.OldMinScaleCount; vitalSignGraph.OnlyShowFileMinute = true; drugGraph.MinScaleCount = ExtendApplicationContext.Current.OldMinScaleCount; gridGraph.MinScaleCount = ExtendApplicationContext.Current.OldMinScaleCount; } this.RefreshData(); }
/// <summary> /// 加载接受参数 /// </summary> public override void OnViewLoaded() { base.OnViewLoaded(); _vitalSignGraph = Args[0] as MedVitalSignGraph; _rescueTime = Args[1] as RescueTime; }