AIMS/AIMSEntity/BLL/Extension/BOperationTemplate.cs
leomon d6a0fb77de 术中增加拔喉罩选项
手术护理物品清点单修改
2023-05-08 20:56:16 +08:00

253 lines
12 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 = decimal.Parse(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 = decimal.Parse(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)
{
int EventId = int.Parse(dr["ItemId"].ToString());
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 = InRoomTime.AddSeconds(BeginTimets.TotalSeconds);
PhysioDataObj.PhysioDataConfigId = PhysioParamId;
PhysioDataObj.ValueString = dr["Value"].ToString();
PhysioDataObjs.Add(PhysioDataObj);
}
PhysioDataService.AddPhysioDatas2(PhysioDataObjs);
}
}
}