public async Task <IActionResult> GetGridJson(Pagination pagination, string keyword) { var data = new { rows = await _ordersApp.GetList(pagination, keyword), pagination.total, pagination.page, pagination.records }; return(Content(data.ToJson())); }
/// <summary> /// 今日就诊-治疗单详情 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <IActionResult> GetIntactInfo(BaseInput input) { var entity = await _patVisitApp.GetForm(input.KeyValue); var patient = await _patientApp.GetForm(entity.F_Pid); var data = new GetIntactInfoOutput { checkPerson = entity.F_CheckPerson, dialysisStartTime = entity.F_DialysisStartTime, dialysisEndTime = entity.F_DialysisEndTime, endPerson = entity.F_EndPerson, memo = entity.F_Memo, percent = 0, puncturePerson = entity.F_PuncturePerson, startPerson = entity.F_StartPerson }; data.patient = new Patients { patientId = patient.F_Id, headIcon = patient.F_HeadIcon, ideaWeight = patient.F_IdealWeight, maritalStatus = patient.F_MaritalStatus, patientGender = patient.F_Gender, patientName = patient.F_Name }; if (patient.F_BirthDay != null) { data.patient.patientAge = ((DateTime.Now - patient.F_BirthDay.ToDate()).TotalDays / 365).ToInt(); } data.vitalSigns = new VitalSigns { diastolicPressure = entity.F_DiastolicPressure, systolicPressure = entity.F_SystolicPressure, temperature = entity.F_Temperature, pulse = entity.F_Pulse }; data.dialysisParameter = new DialysisParameter { accessName = entity.F_AccessName, bloodSpeed = entity.F_BloodSpeed, Ca = entity.F_Ca, dialysateTemperature = entity.F_DialysateTemperature, dialysisType = entity.F_DialysisType, dialyzerType1 = entity.F_DialyzerType1, dialyzerType2 = entity.F_DialyzerType2, dilutionType = entity.F_DilutionType, estimateHours = entity.F_EstimateHours, exchangeAmount = entity.F_ExchangeAmount, exchangeSpeed = entity.F_ExchangeSpeed, Hco3 = entity.F_Hco3, heparinAddAmount = entity.F_HeparinAddAmount, heparinAddSpeedUnit = entity.F_HeparinAddSpeedUnit, heparinAmount = entity.F_HeparinAmount, heparinType = entity.F_HeparinType, heparinUnit = entity.F_HeparinUnit, K = entity.F_K, LowCa = entity.F_LowCa, Na = entity.F_Na, vascularAccess = entity.F_VascularAccess }; data.weightSet = new WeightSet { weightYT = entity.F_WeightYT, weightST = entity.F_WeightST, weightTQ = entity.F_WeightTQ, weightTH = entity.F_WeightTH }; var punctureRecord = await _punctureApp.GetSingle(entity.F_Pid, entity.F_VisitDate.ToDate()); if (punctureRecord != null) { data.punctureRecord = new PunctureRecord { point1 = punctureRecord.F_Point1, point2 = punctureRecord.F_Point2 } } ; //OrdersApp ordersApp = new OrdersApp(); var orders = (await _ordersApp.GetList(entity.F_Pid, entity.F_VisitDate.ToDate(), entity.F_VisitDate.ToDate().AddDays(1), true)) .Where(t => t.F_OrderType.Equals("药疗")).OrderBy(t => t.F_IsTemporary).ToList(); //医生医嘱 foreach (var item in orders) { data.doctorOrders.Add(new DoctorOrder { id = item.F_Id, isTemporary = item.F_IsTemporary, orderText = item.F_OrderText, orderUnitSpec = item.F_OrderUnitSpec, orderAmount = item.F_OrderAmount, orderFrequency = item.F_OrderFrequency, orderAdministration = item.F_OrderAdministration, orderStatus = item.F_OrderStatus }); } //护士医嘱 //查询医嘱执行记录 var orderExecRecord = await _ordersApp.GetPerformedOrderListJson(entity.F_Pid, entity.F_VisitDate.ToDate()); foreach (var item in orders.Where(t => t.F_OrderStatus >= 1)) { var nurserOrder = new NurserOrder { id = item.F_Id, isTemporary = item.F_IsTemporary, orderText = item.F_OrderText, orderUnitSpec = item.F_OrderUnitSpec, orderAmount = item.F_OrderAmount, orderFrequency = item.F_OrderFrequency, orderAdministration = item.F_OrderAdministration }; var find = orderExecRecord.FirstOrDefault(t => t.F_Oid.Equals(item.F_Id)); if (find != null) { nurserOrder.execTime = find.F_NurseOperatorTime; nurserOrder.nurseName = find.F_Nurse; } data.nurserOrders.Add(nurserOrder); } //观察记录 var obs = _dialysisObservationApp.GetListByVisit(entity.F_Id); foreach (var item in obs.OrderBy(t => t.F_NurseOperatorTime)) { data.observations.Add(new Observations { id = item.F_Id, ssy = item.F_SSY, szy = item.F_SZY, hr = item.F_HR, a = item.F_A, bf = item.F_BF, ufr = item.F_UFR, v = item.F_V, c = item.F_C, t = item.F_T, ufv = item.F_UFV, tmp = item.F_TMP, gsl = item.F_GSL, memo = item.F_MEMO, nurseName = item.F_Nurse, operatorTime = item.F_NurseOperatorTime }); } return(Ok(data)); }
public async Task <IActionResult> ExecOrder([FromBody] ExecOrderInput input) { //await _ordersApp.ExecOrder(keyValue); //计费 //var jArr = keyValue.ToJArrayObject(); //if (jArr.Count == 0) //{ // return BadRequest("未选择医嘱"); //} var c = (from r in input.items join o in await _ordersApp.GetList() on r.id equals o.F_Id select new { o.F_Nurse, o.F_NurseOperatorTime, o.F_OrderAdministration, o.F_OrderAmount, o.F_OrderCode, o.F_OrderFrequency, o.F_OrderSpec, o.F_OrderText, o.F_OrderType, o.F_OrderUnitAmount, o.F_OrderUnitSpec, o.F_Pid }).ToList(); var patient = await _patientApp.GetForm(c.FirstOrDefault()?.F_Pid); var user = await _usersService.GetCurrentUserAsync(); var date = DateTime.Now; var drugs = (from r in c where r.F_OrderType == "药疗" select r).ToList(); if (drugs.Count > 0) { //DrugsApp drugsApp = new DrugsApp(); //StorageApp storageApp = new StorageApp(); foreach (var item in drugs) { //var sl = item.F_OrderAmount.ToFloat(2) * 100 / item.F_OrderUnitAmount.ToFloat(2) * 100; //int i = (int)sl; var fz = (item.F_OrderAmount.ToFloat(4) * 10000).ToInt(); var fm = (item.F_OrderUnitAmount.ToFloat(4) * 10000).ToInt(); int count = fz % fm == 0 ? fz / fm : fz / fm + 1; //非整数倍 数量追加1 var dict = await _drugsApp.GetForm(item.F_OrderCode); //计费 await _billingApp.SubmitForm(new BillingEntity { F_Amount = count, F_BillingDateTime = date, F_BillingPerson = user.F_RealName, F_BillingPersonId = user.F_Id, F_Charges = dict.F_Charges, F_Costs = (dict.F_Charges * count).ToFloat(2), F_DialylisNo = patient.F_DialysisNo, F_Pid = patient.F_Id, F_PGender = patient.F_Gender, F_PName = patient.F_Name, F_ItemClass = "药品", F_ItemCode = dict.F_DrugCode, F_ItemId = dict.F_Id, F_ItemName = dict.F_DrugName, F_ItemSpec = dict.F_DrugSpec, F_ItemSpell = dict.F_DrugSpell, F_ItemUnit = dict.F_DrugUnit, F_Supplier = dict.F_DrugSupplier, F_EnabledMark = true, F_IsAcct = false }, new object()); //减库存 var storage = await _storageApp.GetFormByItemId(item.F_OrderCode); if (storage != null) { storage.F_Amount -= count; await _storageApp.UpdateForm(storage); } } } var treatments = (from r in c where r.F_OrderType == "治疗" select r).ToList(); if (treatments.Count > 0) { //TreatmentApp treatmentApp = new TreatmentApp(); foreach (var item in treatments) { var dict = await _treatmentApp.GetForm(item.F_OrderCode); var amount = item.F_OrderAmount.ToFloat(2); //计费 await _billingApp.SubmitForm(new BillingEntity { F_Amount = amount, F_BillingDateTime = date, F_BillingPerson = user.F_RealName, F_BillingPersonId = user.F_Id, F_Charges = dict.F_Charges, F_Costs = (dict.F_Charges *amount).ToFloat(2), F_DialylisNo = patient.F_DialysisNo, F_Pid = patient.F_Id, F_PGender = patient.F_Gender, F_PName = patient.F_Name, F_ItemClass = "诊疗", F_ItemCode = dict.F_TreatmentCode, F_ItemId = dict.F_Id, F_ItemName = dict.F_TreatmentName, F_ItemSpec = dict.F_TreatmentSpec, F_ItemSpell = dict.F_TreatmentSpell, F_ItemUnit = dict.F_TreatmentUnit, F_EnabledMark = true, F_IsAcct = false }, new object()); } } //添加执行历史记录 foreach (var item in input.items) { var order = await _ordersApp.GetForm(item.id); if (order == null) { continue; } order.F_NurseOperatorTime = item.operateTime?.ToDate() ?? DateTime.Now; order.F_Nurse = user.F_RealName;// await _ordersApp.UpdateForm(order); //claim = claimsIdentity?.FindFirst(t => t.Type == ClaimTypes.NameIdentifier)); //添加执行日志 var logEntity = new OrdersExecLogEntity { F_Oid = order.F_Id, F_Pid = order.F_Pid, F_VisitDate = order.F_VisitDate, F_VisitNo = order.F_VisitNo, F_OrderType = order.F_OrderType, F_OrderStartTime = order.F_OrderStartTime, F_OrderStopTime = order.F_OrderStopTime, F_OrderCode = order.F_OrderCode, F_OrderText = order.F_OrderText, F_OrderSpec = order.F_OrderSpec, F_OrderUnitAmount = order.F_OrderUnitAmount, F_OrderUnitSpec = order.F_OrderUnitSpec, F_OrderAmount = order.F_OrderAmount, F_OrderFrequency = order.F_OrderFrequency, F_OrderAdministration = order.F_OrderAdministration, F_IsTemporary = order.F_IsTemporary, F_Doctor = order.F_Doctor, F_DoctorOrderTime = order.F_DoctorOrderTime, F_DoctorAuditTime = order.F_DoctorAuditTime, F_Nurse = order.F_Nurse, F_NurseId = user.F_Id, F_NurseOperatorTime = order.F_NurseOperatorTime, F_Memo = order.F_Memo }; logEntity.Create(); logEntity.F_CreatorUserId = user.F_Id; await _ordersExecLogApp.InsertForm(logEntity); } return(Ok("执行成功")); }