Exemple #1
0
        public ActionResult TestDllEvent(string primaryKey, TEST_PARAM_VIEWMODEL param)
        {
            var id    = int.Parse(primaryKey);
            var model = _itemService.Get(item => item.SD_ITEM_ID == id);

            try
            {
                if (param.url.EndsWith("ManyDataItemApi"))
                {
                    return(Error("url输入错误!接口应为:DataItemApi"));
                }
                var startTime = param.startTime;
                var endTime   = param.endTime;
                if (param.endTime != DateTime.MinValue)
                {
                    endTime = Convert.ToDateTime(param.endTime.ToDateString() + " 23:59:59");
                }
                var cpats      = new List <UN_SD_CPATS>();
                var detailList = _itemResultService.GetCpatList(model.SD_ID.Value, param.startTime, endTime, param.patientId, ref cpats);
                if (cpats.Count == 0)
                {
                    return(Info("没有找到符合条件的入组信息!", null));
                }
                var result = _itemService.TestUrl(param.url.Trim(), id, model, param);
                if (result == null)
                {
                    return(Error("测试失败!", null));
                }
                //if (result.Count != cpatList.Count) return Error("测试失败!请检查信息填写是否正确!");
                //更新执行日志表
                var proLog = new PDP_PROC_LOG()
                {
                    SD_ID           = model.SD_ID,
                    PROC_CAT_CODE   = _procLogService.DataItemCatCode(),
                    PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(),
                    PROC_URL        = param.url,
                    PATIENT_ID      = param.patientId
                };
                if (startTime != DateTime.MinValue)
                {
                    proLog.START_TIME = startTime;
                }
                if (startTime != DateTime.MinValue)
                {
                    proLog.END_TIME = endTime;
                }

                _procLogService.Insert(proLog);
                return(Success("测试成功!", result));
            }
            catch (Exception ex)
            {
                if (model.SD_ID != null)
                {
                    _itemService.InsertErrorLog(model.SD_ID.Value, 2, param.url, "数据项测试失败!异常信息:" + ex.Message, "2");
                }
                return(Error("测试失败!"));
            }
        }
Exemple #2
0
        public ActionResult ExecuteDllEvent(string primaryKey, TEST_PARAM_VIEWMODEL param)// string url)
        {
            var id    = int.Parse(primaryKey);
            var model = _itemService.Get(item => item.SD_ITEM_ID == id);

            try
            {
                var cpats      = new List <UN_SD_CPATS>();
                var detailList = _itemResultService.GetCpatList(model.SD_ID.Value, param.startTime, param.endTime, param.patientId, ref cpats);
                if (cpats.Count == 0)
                {
                    return(Info("没有找到符合条件的入组信息!"));
                }
                _itemService.ExecuteUrl(param.url.Trim(), id, param.clientKey, model, param);
                //更新执行状态表
                if (model.SD_ID != null)
                {
                    _procStateService.DataItemDoExecute(model.SD_ID.Value,
                                                        model.SD_ITEM_ID.ToString());
                    //更新执行日志表
                    var proLog = new PDP_PROC_LOG()
                    {
                        SD_ID           = model.SD_ID,
                        PROC_CAT_CODE   = _procLogService.DataItemCatCode(),
                        PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(),
                        PATIENT_ID      = param.patientId,
                        PROC_URL        = param.url,
                        PROC_STAT_CODE  = 2
                    };
                    if (param.startTime != DateTime.MinValue)
                    {
                        proLog.START_TIME = param.startTime;
                    }
                    if (param.endTime != DateTime.MinValue)
                    {
                        proLog.END_TIME = param.endTime;
                    }
                    _procLogService.Insert(proLog);
                }
                var proc = _procStateService.Get(item => item.PROC_CONTENT_ID == primaryKey && item.SD_ID == model.SD_ID.Value);
                var data = new Dictionary <string, string>
                {
                    { "exeUser", proc.UPD_USER_ID },
                    { "exeTime", proc.UPD_DATE.ToString() }
                };
                return(Success("数据项正在后台执行,可在首页查看进度!", data));// : Error("执行失败!请检查信息是否完整!");
            }
            catch (Exception ex)
            {
                if (model.SD_ID != null)
                {
                    _itemService.InsertErrorLog(model.SD_ID.Value, 1, param.url, "数据项执行失败!异常信息:" + ex.Message, "2");
                }
                return(Error("执行失败!" + ex.ToString()));
            }
        }
Exemple #3
0
        /// <summary>
        /// 清库
        /// </summary>
        /// <param name="primaryKey"></param>
        /// <returns></returns>
        public ActionResult ClearData(string primaryKey)
        {
            var id    = int.Parse(primaryKey);
            var model = _itemService.Get(item => item.SD_ITEM_ID == id);

            try
            {
                var count  = _itemResultService.GetUnitDataCount(id);
                var result = _itemResultService.UnitClearData(id);
                if (result == count)
                {
                    //更新执行状态表
                    _procStateService.DataItemDoClear(model.SD_ID.Value, primaryKey);
                    //更新执行日志表
                    var proLog = new PDP_PROC_LOG()
                    {
                        SD_ID           = model.SD_ID,
                        PROC_CAT_CODE   = _procLogService.DataItemCatCode(),
                        PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(),
                        PATIENT_ID      = "",
                        PROC_URL        = "",
                        PROC_STAT_CODE  = 3
                    };
                    _procLogService.Insert(proLog);
                    //更新数据项
                    _itemService.Update(model);
                }
                var proc     = _procStateService.Get(item => item.PROC_CONTENT_ID == primaryKey && item.SD_ID == model.SD_ID.Value);
                var user     = _userService.Get(u => u.Id == proc.UPD_USER_ID);
                var userName = user == null ? proc.UPD_USER_ID : user.RealName;
                var data     = new Dictionary <string, string>
                {
                    { "exeUser", userName },
                    { "exeTime", proc.UPD_DATE.ToString() }
                };
                return(result == count?Success("清库成功!", data) : Error("清库失败!"));
            }
            catch (Exception ex)
            {
                _itemService.InsertErrorLog(model.SD_ID.Value, 0, "", "清库失败!" + ex.Message, "2");
                return(Error("清库失败!"));
            }
        }
        public ActionResult TestDllEvent(string primaryKey, TEST_PARAM_VIEWMODEL param)
        {
            var id    = int.Parse(primaryKey);
            var model = _sDataItemService.Get(item => item.SITEM_ID == id);

            try
            {
                var result = _sDataItemService.TestUrl(param.url.Trim(), id, "", model, param);
                if (result == null)
                {
                    return(Error("api接口调用失败,url或参数信息不正确!", null));
                }
                //更新执行日志表
                var proLog = new PDP_PROC_LOG()
                {
                    SD_ID           = int.Parse(model.SD_ID),
                    PROC_CAT_CODE   = _procLogService.SDataItemCatCode(),
                    PROC_CONTENT_ID = model.SITEM_ID.ToString(),
                    PROC_URL        = param.url,
                    PATIENT_ID      = param.patientId
                };
                if (param.startTime != DateTime.MinValue)
                {
                    proLog.START_TIME = param.startTime;
                }
                if (param.startTime != DateTime.MinValue)
                {
                    proLog.END_TIME = param.endTime;
                }
                _procLogService.Insert(proLog);
                return(Success("测试成功!", result));
            }
            catch (Exception ex)
            {
                if (model.SD_ID != null)
                {
                    _itemService.InsertErrorLog(int.Parse(model.SD_ID), 2, param.url, "数据项测试失败!异常信息:" + ex.Message, "4");
                }
                return(Error("测试失败!"));
            }
        }
Exemple #5
0
        public ActionResult ClearDataAll(string clientKey, string ids, string type)
        {
            var itemIdList = ids.Split(',').ToList();

            Task.Factory.StartNew(() =>
            {
                double index = 0;
                itemIdList.ForEach(r =>
                {
                    index         += 1;
                    var percent    = Math.Round(index * 100 / itemIdList.Count, 2);
                    var primaryKey = int.Parse(r);
                    var model      = _itemService.Get(i => i.SD_ITEM_ID == primaryKey);
                    var count      = _itemResultService.GetUnitDataCount(primaryKey);
                    var result     = _itemResultService.UnitClearData(primaryKey);
                    if (result == count)
                    {
                        //更新执行状态表
                        _procStateService.DataItemDoClear(model.SD_ID.Value, primaryKey.ToString());
                        //更新执行日志表
                        var proLog = new PDP_PROC_LOG()
                        {
                            SD_ID           = model.SD_ID,
                            PROC_CAT_CODE   = _procLogService.DataItemCatCode(),
                            PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(),
                            PATIENT_ID      = "",
                            PROC_URL        = "",
                            PROC_STAT_CODE  = 3
                        };
                        _procLogService.Insert(proLog);
                        //更新数据项
                        _itemService.Update(model);
                    }
                    ProcessHub.GetInstance()
                    .Send(clientKey, percent.ToString(), "清库", $"数据项:{model.SD_ITEM_NAME}清库成功,共清除 {result}条!!!", "");
                });
            });
            return(View("ExecuteProgress"));;
        }