285 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using AIMSDAL;
 | |
| using AIMSModel;
 | |
| using AIMSObjectQuery;
 | |
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using System.Data;
 | |
| using DrawGraph;
 | |
| 
 | |
| namespace AIMSBLL
 | |
| {
 | |
|     public partial class BOperationTemplate
 | |
|     {
 | |
|         public static bool Exists(string TemplateName, int TypeId)
 | |
|         {
 | |
|             return DOperationTemplate.Exists(TemplateName, TypeId);
 | |
|         }
 | |
|         public static void Adds(List<OperationTemplate> operationTemplates)
 | |
|         {
 | |
|             DOperationTemplate.Adds(operationTemplates);
 | |
|         }
 | |
|         public static void Add(OperationTemplate OperationTemplateObj)
 | |
|         {
 | |
|             DOperationTemplate.Add(OperationTemplateObj);
 | |
|         }
 | |
| 
 | |
|         public static void Delete(string TemplateName, int TypeId)
 | |
|         {
 | |
|             DOperationTemplate.Delete(TemplateName, TypeId);
 | |
|         }
 | |
| 
 | |
|         public static OperationTemplate GetModel(int Id)
 | |
|         {
 | |
|             return DOperationTemplate.GetModel(Id);
 | |
|         }
 | |
| 
 | |
|         public static DataTable GetDataTable(int TypeId)
 | |
|         {
 | |
|             return DOperationTemplate.GetDataTable(TypeId, AIMSExtension.PublicMethod.OperatorNo);
 | |
|         }
 | |
| 
 | |
|         public static DataTable GetDataTable2(string TemplateName, int TypeId)
 | |
|         {
 | |
|             return DOperationTemplate.GetDataTable(TemplateName, TypeId);
 | |
|         }
 | |
|         public static void ClearData(int PatientId, int TypeId)
 | |
|         {
 | |
|             DOperationTemplate.ClearData(PatientId, TypeId);
 | |
|         }
 | |
|         public static void InputData(string TemplateName, int PatientId, DateTime InRoomTime, int TypeId, OperationRecord _record)
 | |
|         {
 | |
|             DateTime NewInRoomTime = AIMSExtension.PublicMethod.SystemDate();
 | |
|             DataTable dt = DOperationTemplate.GetDataTable(TemplateName, TypeId);
 | |
|             DateTime drugMinTime = InRoomTime;
 | |
|             DataRow[] drugdr = dt.Select("ItemKindName='药品' and Spare5='0' ");
 | |
|             if (drugdr.Length > 0) drugMinTime = DateTime.Parse(drugdr[0]["BeginTime"].ToString());
 | |
|             foreach (var item in drugdr)
 | |
|             {
 | |
|                 if (drugMinTime > DateTime.Parse(item["BeginTime"].ToString()))
 | |
|                 {
 | |
|                     drugMinTime = DateTime.Parse(item["BeginTime"].ToString());
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             foreach (DataRow dr in drugdr)
 | |
|             {
 | |
|                 int DrugId = int.Parse(dr["ItemId"].ToString());
 | |
|                 //if (BFactDrug.IsValid(DrugId))
 | |
|                 //{
 | |
|                 FactDrug FactDrugObj = new FactDrug();
 | |
|                 FactDrugObj.PatientId = PatientId;
 | |
|                 FactDrugObj.DrugId = DrugId;
 | |
|                 TimeSpan BeginTimets = DateTime.Parse(dr["BeginTime"].ToString()).Subtract(drugMinTime);
 | |
|                 TimeSpan EndTimets = DateTime.Parse(dr["EndTime"].ToString()).Subtract(drugMinTime);
 | |
| 
 | |
|                 FactDrugObj.DrugBeginTime = InRoomTime.AddSeconds(BeginTimets.TotalSeconds);
 | |
|                 FactDrugObj.DrugEndTime = InRoomTime.AddSeconds(EndTimets.TotalSeconds);
 | |
| 
 | |
|                 if (dr["BeginTime"].ToString() == dr["EndTime"].ToString())
 | |
|                 {
 | |
|                     FactDrugObj.IsContinue = 0;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     FactDrugObj.IsContinue = 1;
 | |
|                 }
 | |
|                 FactDrugObj.DrugTypeId = TypeId;
 | |
|                 if (dr["Value"].ToString() != "")
 | |
|                 {
 | |
|                     FactDrugObj.Dosage = decimal.Parse(dr["Value"].ToString());
 | |
|                 }
 | |
|                 FactDrugObj.DosageUnit = dr["DosageUnit"].ToString();
 | |
|                 if (dr["Spare1"].ToString() != "" && dr["Spare1"].ToString() != "0" && dr["Spare1"].ToString() != "0.00")
 | |
|                 {
 | |
|                     FactDrugObj.Density = decimal.Parse(dr["Spare1"].ToString());
 | |
|                     FactDrugObj.DensityUnit = dr["Spare2"].ToString();
 | |
|                 }
 | |
|                 if (dr["Spare3"].ToString() != "" && dr["Spare3"].ToString() != "0" && dr["Spare3"].ToString() != "0.00")
 | |
|                 {
 | |
|                     FactDrugObj.Velocity = dr["Spare3"].ToString();
 | |
|                     FactDrugObj.VelocityUnit = dr["Spare4"].ToString();
 | |
|                 }
 | |
| 
 | |
|                 FactDrugObj.DrugChannel = dr["DrugChannel"].ToString();
 | |
|                 FactDrugObj.GiveDrugType = dr["GiveDrugType"].ToString();
 | |
|                 FactDrugObj.OperatorNo = AIMSExtension.PublicMethod.OperatorNo;
 | |
|                 FactDrugObj.OperatorName = AIMSExtension.PublicMethod.OperatorName;
 | |
|                 FactDrugObj.OperateDate = NewInRoomTime;
 | |
|                 FactDrugObj.ParentId = 0;// int.Parse(dr["Spare5"].ToString());
 | |
|                 FactDrugObj.DrugName = dr["Spare6"].ToString();
 | |
|                 FactDrugObj.Access = dr["Spare7"].ToString();
 | |
|                 FactDrugObj.Id = BFactDrug.Add(FactDrugObj);
 | |
|                 DataRow[] drugchild = dt.Select("ItemKindName='药品' and Spare5='" + dr["Spare8"].ToString() + "' ");
 | |
|                 foreach (DataRow child in drugchild)
 | |
|                 {
 | |
|                     int DrugId2 = int.Parse(child["ItemId"].ToString());
 | |
|                     //if (BFactDrug.IsValid(DrugId2))
 | |
|                     //{
 | |
|                     FactDrug FactDrugObjChild = new FactDrug();
 | |
|                     FactDrugObjChild.PatientId = PatientId;
 | |
|                     FactDrugObjChild.DrugId = DrugId2;
 | |
|                     TimeSpan BeginTimets2 = DateTime.Parse(child["BeginTime"].ToString()).Subtract(DateTime.Parse(child["InRoomTime"].ToString()));
 | |
|                     TimeSpan EndTimets2 = DateTime.Parse(child["EndTime"].ToString()).Subtract(DateTime.Parse(child["InRoomTime"].ToString()));
 | |
| 
 | |
|                     FactDrugObjChild.DrugBeginTime = InRoomTime.AddSeconds(BeginTimets2.TotalSeconds);
 | |
|                     FactDrugObjChild.DrugEndTime = InRoomTime.AddSeconds(EndTimets2.TotalSeconds);
 | |
| 
 | |
|                     if (child["BeginTime"].ToString() == child["EndTime"].ToString())
 | |
|                     {
 | |
|                         FactDrugObjChild.IsContinue = 0;
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         FactDrugObjChild.IsContinue = 1;
 | |
|                     }
 | |
|                     FactDrugObjChild.DrugTypeId = TypeId;
 | |
|                     if (child["Value"].ToString() != "")
 | |
|                     {
 | |
|                         FactDrugObjChild.Dosage = decimal.Parse(child["Value"].ToString());
 | |
|                     }
 | |
|                     FactDrugObjChild.DosageUnit = child["DosageUnit"].ToString();
 | |
|                     if (child["Spare1"].ToString() != "" && child["Spare1"].ToString() != "0" && child["Spare1"].ToString() != "0.00")
 | |
|                     {
 | |
|                         FactDrugObjChild.Density = decimal.Parse(child["Spare1"].ToString());
 | |
|                         FactDrugObjChild.DensityUnit = child["Spare2"].ToString();
 | |
|                     }
 | |
|                     if (child["Spare3"].ToString() != "" && child["Spare3"].ToString() != "0" && child["Spare3"].ToString() != "0.00")
 | |
|                     {
 | |
|                         FactDrugObjChild.Velocity = child["Spare3"].ToString();
 | |
|                         FactDrugObjChild.VelocityUnit = child["Spare4"].ToString();
 | |
|                     }
 | |
| 
 | |
|                     FactDrugObjChild.DrugChannel = child["DrugChannel"].ToString();
 | |
|                     FactDrugObjChild.GiveDrugType = child["GiveDrugType"].ToString();
 | |
|                     FactDrugObjChild.OperatorNo = AIMSExtension.PublicMethod.OperatorNo;
 | |
|                     FactDrugObjChild.OperatorName = AIMSExtension.PublicMethod.OperatorName;
 | |
|                     FactDrugObjChild.OperateDate = NewInRoomTime;
 | |
|                     FactDrugObjChild.ParentId = FactDrugObj.Id;
 | |
|                     FactDrugObjChild.DrugName = child["Spare6"].ToString();
 | |
|                     FactDrugObjChild.Access = child["Spare7"].ToString();
 | |
|                     BFactDrug.Add(FactDrugObjChild);
 | |
| 
 | |
|                     //}
 | |
| 
 | |
|                 }
 | |
|                 //}
 | |
| 
 | |
|             }
 | |
| 
 | |
|             DataRow[] Eventdr = dt.Select("ItemKindName='事件'");
 | |
|             foreach (DataRow dr in Eventdr)
 | |
|             {
 | |
|                 bool istrue = false;
 | |
|                 int EventId = int.Parse(dr["ItemId"].ToString());
 | |
|                 if (EventId <= 10) continue;
 | |
|                 foreach (var item in _record.FactEventsList)
 | |
|                 {
 | |
|                     if (item.EventId == EventId)
 | |
|                     {
 | |
|                         istrue = true;
 | |
|                         break;
 | |
|                     }
 | |
|                 }
 | |
|                 if (istrue == true) continue;
 | |
|                 //if (BFactEvents.IsValid(EventId))
 | |
|                 //{
 | |
|                 FactEvents FactEventObj = new FactEvents();
 | |
|                 FactEventObj.PatientId = PatientId;
 | |
|                 FactEventObj.EventId = EventId;
 | |
|                 TimeSpan BeginTimets = DateTime.Parse(dr["BeginTime"].ToString()).Subtract(drugMinTime);
 | |
|                 TimeSpan EndTimets = DateTime.Parse(dr["EndTime"].ToString()).Subtract(drugMinTime);
 | |
| 
 | |
|                 FactEventObj.EventBeginTime = InRoomTime.AddSeconds(BeginTimets.TotalSeconds);
 | |
|                 FactEventObj.EventEndTime = InRoomTime.AddSeconds(EndTimets.TotalSeconds);
 | |
|                 if (dr["BeginTime"].ToString() == dr["EndTime"].ToString())
 | |
|                 {
 | |
|                     FactEventObj.IsContinue = 0;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     FactEventObj.IsContinue = 1;
 | |
|                 }
 | |
|                 FactEventObj.EventTypeId = TypeId;
 | |
| 
 | |
|                 FactEventObj.OperatorNo = AIMSExtension.PublicMethod.OperatorNo;
 | |
|                 FactEventObj.OperatorName = AIMSExtension.PublicMethod.OperatorName;
 | |
|                 FactEventObj.OperateDate = NewInRoomTime;
 | |
|                 BFactEvents.Add(FactEventObj);
 | |
|                 //}
 | |
|             }
 | |
| 
 | |
|             DataRow[] OutputLiquidsdr = dt.Select("ItemKindName='出量'");
 | |
|             foreach (DataRow dr in OutputLiquidsdr)
 | |
|             {
 | |
|                 int OutputLiquidsId = int.Parse(dr["ItemId"].ToString());
 | |
|                 //if (BFactOutputLiquids.IsValid(OutputLiquidsId))
 | |
|                 //{
 | |
|                 FactOutputLiquids FactOutputLiquidsObj = new FactOutputLiquids();
 | |
|                 FactOutputLiquidsObj.PatientId = PatientId;
 | |
|                 FactOutputLiquidsObj.OutputLiquidsId = OutputLiquidsId;
 | |
|                 TimeSpan BeginTimets = DateTime.Parse(dr["BeginTime"].ToString()).Subtract(drugMinTime);
 | |
|                 TimeSpan EndTimets = DateTime.Parse(dr["EndTime"].ToString()).Subtract(drugMinTime);
 | |
| 
 | |
|                 FactOutputLiquidsObj.BeginTime = InRoomTime.AddSeconds(BeginTimets.TotalSeconds);
 | |
|                 FactOutputLiquidsObj.EndTime = InRoomTime.AddSeconds(EndTimets.TotalSeconds);
 | |
|                 if (dr["BeginTime"].ToString() == dr["EndTime"].ToString())
 | |
|                 {
 | |
|                     FactOutputLiquidsObj.IsContinue = 0;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     FactOutputLiquidsObj.IsContinue = 1;
 | |
|                 }
 | |
|                 FactOutputLiquidsObj.OutputLiquidsTypeId = TypeId;
 | |
|                 if (dr["Value"].ToString() != "")
 | |
|                 {
 | |
|                     FactOutputLiquidsObj.Dosage = decimal.Parse(dr["Value"].ToString());
 | |
|                 }
 | |
|                 FactOutputLiquidsObj.DosageUnit = dr["DosageUnit"].ToString();
 | |
| 
 | |
|                 FactOutputLiquidsObj.OperatorNo = AIMSExtension.PublicMethod.OperatorNo;
 | |
|                 FactOutputLiquidsObj.OperatorName = AIMSExtension.PublicMethod.OperatorName;
 | |
|                 FactOutputLiquidsObj.OperateDate = NewInRoomTime;
 | |
|                 BFactOutputLiquids.Add(FactOutputLiquidsObj);
 | |
|                 //}
 | |
|             }
 | |
|             DataRow[] PhysioParamdr = dt.Select("ItemKindName='生命体征'");
 | |
|             List<PhysioData> PhysioDataObjs = new List<PhysioData>();
 | |
|             foreach (DataRow dr in PhysioParamdr)
 | |
|             {
 | |
|                 int PhysioParamId = int.Parse(dr["ItemId"].ToString());
 | |
|                 TimeSpan BeginTimets = DateTime.Parse(dr["BeginTime"].ToString()).Subtract(drugMinTime);
 | |
|                 PhysioData PhysioDataObj = new PhysioData();
 | |
|                 PhysioDataObj.PatientId = _record.Id.Value;
 | |
|                 PhysioDataObj.RecordTime = GetRecordTime(_record, InRoomTime.AddSeconds(BeginTimets.TotalSeconds));
 | |
|                 PhysioDataObj.PhysioDataConfigId = PhysioParamId;
 | |
|                 PhysioDataObj.ValueString = dr["Value"].ToString();
 | |
|                 if (PhysioDataObj.RecordTime >= InRoomTime)
 | |
|                     PhysioDataObjs.Add(PhysioDataObj);
 | |
|             }
 | |
|             PhysioDataService.AddPhysioDatas2(PhysioDataObjs);
 | |
|         }
 | |
| 
 | |
|         public static DateTime GetRecordTime(OperationRecord myOpeRecord, DateTime pdTemp, int collectInterval = 5)
 | |
|         {
 | |
|             DateTime result = Convert.ToDateTime(pdTemp.ToString("yyyy-MM-dd HH:mm:00.000"));
 | |
|             //小于入室时间默认不画 
 | |
|             for (int i = 0; i < (480 / 5); i++)
 | |
|             {//InRoomTime.Value
 | |
|                 DateTime tempTime = myOpeRecord.PageBegin.AddMinutes(i * 5);
 | |
|                 if (tempTime >= result && result < tempTime.AddMinutes(5))
 | |
|                 {
 | |
|                     result = tempTime;
 | |
|                     break;
 | |
|                 }
 | |
|             }
 | |
|             //if (result < myOpeRecord.InRoomTime.Value)
 | |
|             //{
 | |
|             //    result = myOpeRecord.InRoomTime.Value;
 | |
|             //}
 | |
|             return result;
 | |
|         }
 | |
|     }
 | |
| }
 |