/// <summary> /// 将对应的类型数据添加到明细栏中 /// </summary> /// <param name="anesDetail">明细栏控件</param> /// <param name="anesEventTable">事件表数据</param> /// <param name="anesClassType">事件类型</param> /// <param name="collectionText">明细类型的信息:用药OR麻药OR事件</param> /// <param name="collectionType">对应个明细类型:事件OR用药OR汇总</param> /// <param name="collectionColor">明细栏控件的颜色</param> /// <param name="startDate">起始时间</param> /// <param name="drugShowType">用药明细显示类型:单点OR持续OR全部</param> /// <param name="isYouDao">当前系统是否为诱导系统,默认是麻醉系统</param> /// <param name="operationMaster">主表信息</param> private MedAnesSheetDetailCollection AddAnesSheetDetailCollection(MedAnesSheetDetails anesDetail, List <MED_ANESTHESIA_EVENT> anesEventTable, AnesClassType anesClassType, string collectionText, CollectionType collectionType, Color collectionColor, DateTime startDate, AnesDrugShowType drugShowType, bool isYouDao, MED_OPERATION_MASTER operationMaster) { return(this.AddAnesSheetDetailCollection(anesDetail, anesEventTable, new AnesClassType[] { anesClassType }, collectionText, collectionType, collectionColor, startDate, null, drugShowType, isYouDao, operationMaster)); }
/// <summary> /// 将对应的类型数据添加到明细栏中 /// </summary> /// <param name="anesDetail">明细栏控件</param> /// <param name="anesEventTable">事件表数据</param> /// <param name="anesClassType">事件类型</param> /// <param name="collectionText">明细类型的信息:用药OR麻药OR事件</param> /// <param name="collectionType">对应个明细类型:事件OR用药OR汇总</param> /// <param name="collectionColor">明细栏控件的颜色</param> /// <param name="startDate">起始时间</param> /// <param name="filtItemName">事件类型EVENT_CLASS_CODE:B、C、2</param> /// <param name="drugShowType">用药明细显示类型:单点OR持续OR全部</param> /// <param name="isYouDao">当前系统是否为诱导系统,默认是麻醉系统</param> /// <param name="operationMaster">主表信息</param> private MedAnesSheetDetailCollection AddAnesSheetDetailCollection(MedAnesSheetDetails anesDetail, List <MED_ANESTHESIA_EVENT> anesEventTable, AnesClassType[] anesClasses, string collectionText, CollectionType collectionType, Color collectionColor, DateTime startDate, string filtItemName, AnesDrugShowType drugShowType, bool isYouDao, MED_OPERATION_MASTER operationMaster) { MedAnesSheetDetailCollection collection = this.GenDetailCollection(anesEventTable, anesClasses, collectionText, collectionType, startDate, filtItemName, drugShowType, isYouDao, operationMaster); if (collection != null) { collection.Color = collectionColor; anesDetail.Collections.Add(collection); } return(collection); }
/// <summary> /// 将对应的类型数据添加到明细栏中 /// </summary> /// <param name="anesEventTable">事件表数据</param> /// <param name="anesClassType">事件类型</param> /// <param name="collectionText">明细类型的信息:用药OR麻药OR事件</param> /// <param name="collectionType">对应个明细类型:事件OR用药OR汇总</param> /// <param name="startDate">起始时间</param> /// <param name="filtItemName">事件类型EVENT_CLASS_CODE:B、C、2</param> /// <param name="drugShowType">用药明细显示类型:单点OR持续OR全部</param> /// <param name="isYouDao">当前系统是否为诱导系统,默认是麻醉系统</param> /// <param name="operationMaster">主表信息</param> private MedAnesSheetDetailCollection GenDetailCollection(List <MED_ANESTHESIA_EVENT> anesEventTable, AnesClassType[] anesClasses, string collectionText, CollectionType collectionType, DateTime startDate, string filtItemName, AnesDrugShowType drugShowType, bool isYouDao, MED_OPERATION_MASTER operationMaster) { // 明细集合 MedAnesSheetDetailCollection collection = new MedAnesSheetDetailCollection(collectionText); List <MED_ANESTHESIA_EVENT> anesthesiaEventDataTable; ///获取事件数据 if (anesClasses != null) { anesthesiaEventDataTable = this.GetAnesthesiaEvent(anesEventTable, anesClasses); } else { anesthesiaEventDataTable = anesEventTable; } if (anesthesiaEventDataTable != null && anesthesiaEventDataTable.Count > 0) { foreach (MED_ANESTHESIA_EVENT row in anesthesiaEventDataTable) { if (!isYouDao && !string.IsNullOrEmpty(row.EVENT_ATTR) && row.EVENT_ATTR.Equals(EventNames.YOUDAONUMBER)) { continue; } else if (string.IsNullOrEmpty(row.EVENT_ITEM_NAME)) { continue; } else if (!string.IsNullOrEmpty(filtItemName) && !string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && filtItemName.Equals(row.EVENT_CLASS_CODE)) { continue; } // 明细类型:事件OR用药OR汇总 switch (collectionType) { case CollectionType.Event: // 事件显示 MedAnesSheetDetailPoint pt = null; if (row.START_TIME.HasValue && row.END_TIME.HasValue && !IsTimeEvent(row.EVENT_ITEM_NAME)) { DateTime startTime = this.PraseDate(startDate, row.START_TIME.Value); DateTime endTime = this.PraseDate(startDate, row.END_TIME.Value); if (endTime > startTime) { pt = new MedAnesSheetDetailPoint(startTime, endTime, row.EVENT_ITEM_NAME, row); collection.Points.Add(pt); pt.Color = collection.Color; } else { pt = new MedAnesSheetDetailPoint(startTime, row.EVENT_ITEM_NAME, row); collection.Points.Add(pt); pt.Color = collection.Color; } } else if (row.START_TIME.HasValue && !this.IsTimeEvent(row.EVENT_ITEM_NAME)) { pt = new MedAnesSheetDetailPoint(row.START_TIME.Value, row.EVENT_ITEM_NAME); collection.Points.Add(pt); pt.Color = collection.Color; } if (pt != null) { if (!string.IsNullOrEmpty(row.DOSAGE_UNITS)) { pt.Unit = row.DOSAGE_UNITS; } if (row.DOSAGE.HasValue && row.DOSAGE > 0) { pt.Value = (double)row.DOSAGE; } if (!string.IsNullOrEmpty(row.ADMINISTRATOR)) { pt.Route = row.ADMINISTRATOR; } } break; case CollectionType.Drug: // 用药显示 if (row.START_TIME.HasValue && !string.IsNullOrEmpty(row.DOSAGE_UNITS) && row.DOSAGE.HasValue) { bool canAdd = true; if (drugShowType != AnesDrugShowType.Total) { AnesDrugShowType stype = (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1) ? AnesDrugShowType.ProLonged : AnesDrugShowType.SinglePoint; canAdd = stype == drugShowType; } if (canAdd) { double value = 0; MedAnesSheetDetailPoint ppt = null; string strAdministrator = string.IsNullOrEmpty(row.ADMINISTRATOR) ? "" : row.ADMINISTRATOR; if (row.DOSAGE.HasValue) { value = (double)row.DOSAGE; } if (row.END_TIME.HasValue) { DateTime startTime = this.PraseDate(startDate, row.START_TIME.Value); DateTime endTime = this.PraseDate(startDate, row.END_TIME.Value); if (endTime > startTime) { ppt = new MedAnesSheetDetailPoint(startTime, endTime, row.EVENT_ITEM_NAME, value, row.DOSAGE_UNITS, strAdministrator, row); } else { ppt = new MedAnesSheetDetailPoint(startTime, row.EVENT_ITEM_NAME, value, row.DOSAGE_UNITS, strAdministrator, row); } } else { ppt = new MedAnesSheetDetailPoint(this.PraseDate(startDate, row.START_TIME.Value), row.EVENT_ITEM_NAME, value, row.DOSAGE_UNITS, strAdministrator, row); } if (null != ppt) { collection.Points.Add(ppt); ppt.Color = collection.Color; } } } break; } } } if (collectionType == CollectionType.Event && null != operationMaster) { if (ExtendAppContext.Current.EventNo == "0") { //判断当前页的时间范围内是否有入手术室和出手术室事件 if (operationMaster.IN_DATE_TIME.HasValue && operationMaster.IN_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.IN_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //入手术室 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.IN_DATE_TIME.Value, EventNames.INDATETIME, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.ANES_START_TIME.HasValue && operationMaster.ANES_START_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.ANES_START_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //麻醉开始 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.ANES_START_TIME.Value, EventNames.ANESSTART, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.START_DATE_TIME.HasValue && operationMaster.START_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.START_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //手术开始 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.START_DATE_TIME.Value, EventNames.OPERATIONSTART, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.END_DATE_TIME.HasValue && operationMaster.END_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.END_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //手术结束 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.END_DATE_TIME.Value, EventNames.OPERATIONEND, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.ANES_END_TIME.HasValue && operationMaster.ANES_END_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.ANES_END_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //麻醉结束 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.ANES_END_TIME.Value, EventNames.ANESEND, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.OUT_DATE_TIME.HasValue && operationMaster.OUT_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.OUT_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //出手术室 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.OUT_DATE_TIME.Value, "出手术室", null); pt.Color = collection.Color; collection.Points.Add(pt); } } //End Modify else if (ExtendAppContext.Current.EventNo == "1") { if (operationMaster.IN_PACU_DATE_TIME.HasValue && operationMaster.IN_PACU_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.IN_PACU_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.IN_PACU_DATE_TIME.Value, EventNames.INPACU, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.OUT_PACU_DATE_TIME.HasValue && operationMaster.OUT_PACU_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.OUT_PACU_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime)// { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.OUT_PACU_DATE_TIME.Value, EventNames.OUTPACU, null); pt.Color = collection.Color; collection.Points.Add(pt); } } //备注栏显示交接班记录 //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; // MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(item.END_DATE_TIME.Value, text, null); // pt.Color = collection.Color; // collection.Points.Add(pt); // } //} } collection.Sort(); return(collection); }
private MedAnesSheetDetailCollection GenDetailCollection(List <MED_ANESTHESIA_EVENT> anesEventTable, AnesClassType[] anesClasses, string collectionText, CollectionType collectionType, DateTime startDate, string filtItemName, AnesDrugShowType drugShowType, bool isYouDao, MED_OPERATION_MASTER operationMaster) { MedAnesSheetDetailCollection collection = new MedAnesSheetDetailCollection(collectionText); List <MED_ANESTHESIA_EVENT> anesthesiaEventDataTable; ///获取事件数据 if (anesClasses != null) { anesthesiaEventDataTable = GetAnesthesiaEvent(anesEventTable, anesClasses); } else { anesthesiaEventDataTable = anesEventTable; } if (anesthesiaEventDataTable != null && anesthesiaEventDataTable.Count > 0) { foreach (MED_ANESTHESIA_EVENT row in anesthesiaEventDataTable) { if (!isYouDao && !string.IsNullOrEmpty(row.EVENT_ATTR) && row.EVENT_ATTR.Equals(EventNames.YOUDAONUMBER)) { continue; } //if (isYouDao && (string.IsNullOrEmpty(row.EVENT_ATTR)) || !row.EVENT_ATTR.Equals(EventNames.YOUDAONUMBER)) continue; if (string.IsNullOrEmpty(row.EVENT_ITEM_NAME)) { continue; } if (!string.IsNullOrEmpty(filtItemName)) { if (!string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && filtItemName.Equals(row.EVENT_CLASS_CODE)) { continue; } } switch (collectionType) { case CollectionType.Event: MedAnesSheetDetailPoint pt = null; if (row.START_TIME.HasValue && row.END_TIME.HasValue && !IsTimeEvent(row.EVENT_ITEM_NAME)) { DateTime startTime = PraseDate(startDate, row.START_TIME.Value); DateTime endTime = PraseDate(startDate, row.END_TIME.Value); if (endTime > startTime) { pt = new MedAnesSheetDetailPoint(startTime, endTime, row.EVENT_ITEM_NAME, row); collection.Points.Add(pt); pt.Color = collection.Color; } else { pt = new MedAnesSheetDetailPoint(startTime, row.EVENT_ITEM_NAME, row); collection.Points.Add(pt); pt.Color = collection.Color; } } else if (row.START_TIME.HasValue && !IsTimeEvent(row.EVENT_ITEM_NAME)) { pt = new MedAnesSheetDetailPoint(row.START_TIME.Value, row.EVENT_ITEM_NAME); collection.Points.Add(pt); pt.Color = collection.Color; } if (pt != null) { if (!string.IsNullOrEmpty(row.DOSAGE_UNITS)) { pt.Unit = row.DOSAGE_UNITS; } if (row.DOSAGE.HasValue && row.DOSAGE > 0) { pt.Value = (double)row.DOSAGE; } if (!string.IsNullOrEmpty(row.ADMINISTRATOR)) { pt.Route = row.ADMINISTRATOR; } } break; case CollectionType.Drug: if (row.START_TIME.HasValue && !string.IsNullOrEmpty(row.DOSAGE_UNITS) && row.DOSAGE.HasValue) { bool canAdd = true; if (drugShowType != AnesDrugShowType.Total) { AnesDrugShowType stype = (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1) ? AnesDrugShowType.ProLonged : AnesDrugShowType.SinglePoint; canAdd = stype == drugShowType; } if (canAdd) { double value = 0; if (row.DOSAGE.HasValue) { value = (double)row.DOSAGE; } if (row.END_TIME.HasValue) { DateTime startTime = PraseDate(startDate, row.START_TIME.Value); DateTime endTime = PraseDate(startDate, row.END_TIME.Value); if (endTime > startTime) { MedAnesSheetDetailPoint ppt = new MedAnesSheetDetailPoint(startTime, endTime, row.EVENT_ITEM_NAME, value, row.DOSAGE_UNITS, (string.IsNullOrEmpty(row.ADMINISTRATOR) ? "" : row.ADMINISTRATOR), row); collection.Points.Add(ppt); ppt.Color = collection.Color; } else { MedAnesSheetDetailPoint ppt = new MedAnesSheetDetailPoint(startTime, row.EVENT_ITEM_NAME, value, row.DOSAGE_UNITS, (string.IsNullOrEmpty(row.ADMINISTRATOR) ? "" : row.ADMINISTRATOR), row); collection.Points.Add(ppt); ppt.Color = collection.Color; } } else { MedAnesSheetDetailPoint ppt = new MedAnesSheetDetailPoint(PraseDate(startDate, row.START_TIME.Value), row.EVENT_ITEM_NAME, value, row.DOSAGE_UNITS, (string.IsNullOrEmpty(row.ADMINISTRATOR) ? "" : row.ADMINISTRATOR), row); collection.Points.Add(ppt); ppt.Color = collection.Color; } } } break; } } } if (collectionType == CollectionType.Event) { if (operationMaster != null) { if (ExtendApplicationContext.Current.EventNo == "0") { //判断当前页的时间范围内是否有入手术室和出手术室事件 if (operationMaster.IN_DATE_TIME.HasValue && operationMaster.IN_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.IN_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //入手术室 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.IN_DATE_TIME.Value, EventNames.INDATETIME, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.ANES_START_TIME.HasValue && operationMaster.ANES_START_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.ANES_START_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //麻醉开始 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.ANES_START_TIME.Value, EventNames.ANESSTART, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.START_DATE_TIME.HasValue && operationMaster.START_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.START_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //手术开始 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.START_DATE_TIME.Value, EventNames.OPERATIONSTART, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.END_DATE_TIME.HasValue && operationMaster.END_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.END_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //手术结束 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.END_DATE_TIME.Value, EventNames.OPERATIONEND, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.ANES_END_TIME.HasValue && operationMaster.ANES_END_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.ANES_END_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //麻醉结束 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.ANES_END_TIME.Value, EventNames.ANESEND, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.OUT_DATE_TIME.HasValue && operationMaster.OUT_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.OUT_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) //出手术室 { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.OUT_DATE_TIME.Value, "出手术室", null); pt.Color = collection.Color; collection.Points.Add(pt); } } //End Modify else if (ExtendApplicationContext.Current.EventNo == "1") { if (operationMaster.IN_PACU_DATE_TIME.HasValue && operationMaster.IN_PACU_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.IN_PACU_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime) { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.IN_PACU_DATE_TIME.Value, EventNames.INPACU, null); pt.Color = collection.Color; collection.Points.Add(pt); } if (operationMaster.OUT_PACU_DATE_TIME.HasValue && operationMaster.OUT_PACU_DATE_TIME >= PagerSetting.PageTimeSpan.StartDateTime && operationMaster.OUT_PACU_DATE_TIME <= PagerSetting.PageTimeSpan.EndDateTime)// { MedAnesSheetDetailPoint pt = new MedAnesSheetDetailPoint(operationMaster.OUT_PACU_DATE_TIME.Value, EventNames.OUTPACU, null); pt.Color = collection.Color; collection.Points.Add(pt); } } } } collection.Sort(); // collection.CollectionType = collectionType; return(collection); }