public async Task <IActionResult> SubmitForm([FromBody] SubmitFormInput input)
        {
            foreach (var item in input.Items)
            {
                var find = await _qualityItemApp.GetForm(item.ItemId);

                if (find == null)
                {
                    continue;
                }
                var entity = new QualityResultEntity
                {
                    F_Pid                = input.PatientId,
                    F_ItemId             = item.ItemId,
                    F_ItemType           = find.F_ItemType,
                    F_ItemCode           = find.F_ItemCode,
                    F_ItemName           = find.F_ItemName,
                    F_ReportTime         = item.ReportTime?.ToDate() ?? DateTime.Now,
                    F_Result             = item.Result,
                    F_Flag               = item.Flag,
                    F_Memo               = item.Memo,
                    F_UpperValue         = find.F_UpperValue,
                    F_LowerValue         = find.F_LowerValue,
                    F_Unit               = find.F_Unit,
                    F_LowerCriticalValue = find.F_LowerCriticalValue,
                    F_UpperCriticalValue = find.F_UpperCriticalValue,
                    F_ResultType         = find.F_ResultType
                };
                await _qualityResultApp.SubmitForm(entity, null);
            }
            return(Success("操作成功。"));
        }
Beispiel #2
0
        public Task <int> SubmitForm(QualityResultEntity entity, string keyValue)
        {
            var userId = _usersService.GetCurrentUserId();

            if (!string.IsNullOrEmpty(keyValue))
            {
                entity.Modify(keyValue);
                entity.F_LastModifyUserId = userId;
                return(_service.UpdateAsync(entity));
            }
            else
            {
                entity.Create();
                if (entity.F_EnabledMark == null)
                {
                    entity.F_EnabledMark = true;
                }
                entity.F_CreatorUserId = userId;
                return(_service.InsertAsync(entity));
            }
        }
Beispiel #3
0
 public Task <int> UpdateForm(QualityResultEntity entity)
 {
     return(_service.UpdatePartialAsync(entity));
 }
Beispiel #4
0
        public async Task <string> AuditTest(LabTestEntity entity)
        {
            var claimsIdentity = _httpContext.HttpContext.User.Identity as ClaimsIdentity;

            claimsIdentity.CheckArgumentIsNull(nameof(claimsIdentity));
            var claim     = claimsIdentity?.FindFirst(t => t.Type == ClaimTypes.NameIdentifier);
            var claimName = claimsIdentity?.FindFirst(t => t.Type == ClaimTypes.Name);
            var result    = string.Empty;
            //查询子项
            var items = GetReport(entity.F_TestId);

            if (items.Count == 0)
            {
                result = "无报告明细";
            }
            else
            {
                //保存质控数据
                var itemDict = _labInstrumentApp.GetItem(entity.F_InstrumentId)
                               .Where(t => t.F_IsQualityItem == true)
                               .Select(t => new
                {
                    t.F_Id,
                    t.F_IsQualityItem,
                    t.F_QualityItemId,
                    t.F_QualityItemName,
                    t.F_ConvertCoefficient,
                    t.F_KeepDecimal,
                    t.F_ResultType,
                    t.F_MachineId,
                    t.F_Code,
                    t.F_Name,
                    t.F_CnName,
                    t.F_EnName
                }).ToList();
                var list = items.Join(itemDict, m => m.F_ItemId, n => n.F_Id, (m, n) => new
                {
                    result = m,
                    dict   = n
                });
                if (list.Any())
                {
                    var sheet = (await _labRequestApp.GetFormByBarcode(entity.F_Barcode)).FirstOrDefault(t => t.F_RequestId == entity.F_RequestId);
                    if (sheet == null)
                    {
                        result = "申请单已删除";
                    }
                    else
                    {
                        //var LoginInfo = OperatorProvider.Provider.GetCurrent();
                        var currentTime = DateTime.Now;
                        foreach (var row in list)
                        {
                            var qualityItem = await _qualityItemService.FindEntityAsync(row.dict.F_QualityItemId);

                            if (qualityItem == null)
                            {
                                continue;
                            }
                            var quality = new QualityResultEntity
                            {
                                F_Id                 = Common.GuId(),
                                F_CreatorTime        = currentTime,
                                F_CreatorUserId      = claim?.Value,
                                F_EnabledMark        = true,
                                F_Flag               = row.result.F_Flag,
                                F_ItemCode           = qualityItem.F_ItemCode,
                                F_ItemName           = qualityItem.F_ItemName,
                                F_ItemId             = qualityItem.F_Id,
                                F_LowerCriticalValue = qualityItem.F_LowerCriticalValue,
                                F_LowerValue         = qualityItem.F_LowerValue,
                                F_Pid                = entity.F_PatientId,
                                F_ReportTime         = currentTime
                            };
                            if (row.dict.F_ResultType ?? true)
                            {
                                quality.F_ResultType = true;
                                var temp = row.result.F_Result;
                                if (!temp.HasValue)
                                {
                                    continue;
                                }
                                int keep = 2;
                                if (row.dict.F_KeepDecimal.HasValue)
                                {
                                    keep = row.dict.F_KeepDecimal.ToInt();
                                    if (keep == 0)
                                    {
                                        keep = 2;
                                    }
                                }
                                float convertCoefficient = 1;
                                if (row.dict.F_ConvertCoefficient.HasValue)
                                {
                                    convertCoefficient = row.dict.F_ConvertCoefficient.ToFloat(keep);
                                }
                                quality.F_Result = (temp * convertCoefficient).ToFloat(keep).ToString();
                            }
                            else
                            {
                                quality.F_Result = row.result.F_ResultText;
                            }
                            quality.F_Unit = qualityItem.F_Unit;
                            quality.F_UpperCriticalValue = qualityItem.F_UpperCriticalValue;
                            quality.F_UpperValue         = qualityItem.F_UpperValue;
                            await _qualityResultService.InsertAsync(quality);
                        }
                        entity.F_Status      = 3;
                        entity.F_AuditPerson = claim?.Value;
                        entity.F_AuditTime   = currentTime;
                        await _service.UpdatePartialAsync(entity);

                        sheet.F_AuditTime     = currentTime;
                        sheet.F_AuditUserId   = claim?.Value;
                        sheet.F_AuditUserName = claimName?.Value;
                        await _labSheetService.UpdatePartialAsync(sheet);
                    }
                }
            }
            return(result);
        }