Exemplo n.º 1
0
        /// 检查对照项目
        private void btnCheckTest_Click(object sender, EventArgs e)
        {
            string           str = "";
            List <DATestmap> map = new DATestmapBLL().GetDATestmapCheckList();

            if (map.Count == 0)
            {
                ShowMessageHelper.ShowBoxMsg("没找到异常的对照项目,请到同步【达安项目】窗口 点击[同步]之后再来确认查看"); return;
            }

            foreach (DATestmap item in map)
            {
                str += string.Format("医院项目 [{0}] 编码[{1}] 需要重新对应对照\n", item.Customertestname, item.Customertestcode);
            }
            ShowMessageHelper.ShowBoxMsg(str);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 上传订单处理
        /// </summary>
        private void SendOrdersHandle()
        {
            try
            {
                DAOutSpecimenBLL bll = new DAOutSpecimenBLL();
                //获取需要获取结果的条码号
                List <DAOutspecimen> BarCodeList = bll.SelectRequestCodeBySendOrders();
                if (BarCodeList.Count == 0)
                {
                    SetTB("没有订单需要上传"); return;
                }

                //获取对照表
                List <DATestmap> datestmap = new DATestmapBLL().GetDATestmapList(null);
                for (int i = 0; i < BarCodeList.Count; i++)
                {
                    DAOutspecimen outspec = BarCodeList[i];
                    string        barcode = outspec.Requestcode;
                    try
                    {
                        Hashtable ht = new Hashtable();
                        ht.Add("Requestcode", barcode);
                        DataTable dt = outspecimenbll.GetOutspecimenTable(ht); //基本信息
                        dt.TableName = "data_row";

                        /* 发送模式:1 组合发送, 0 单项发送(默认)
                         * 组合发送: 发送订单表OutSpecimen的数据
                         * (DATESTCODES AS NaturalItem,CUSTOMERTESTNAMES AS NaturalItemDesc,CUSTOMERTESTCODES AS HospItemCode)
                         *
                         * 单项发送: 发送结果表da_result中的明细数据,获取Customertestcode,customertestname,
                         * 并根据Customertestcode获取对照表的datestcode
                         */
                        #region >>>> zhouy 发送项目拼装

                        string    cuscode = "", cusname = "", daancode = "";
                        DataTable dtTest;
                        if (config.Model == "1")
                        {
                            dtTest = new DAOutSpecimentestBLL().SelectSendGruopCodeByRequestCode(outspec.Requestcode); //组合
                        }
                        else
                        {
                            dtTest = new DAResultBLL().SelectSendTestCodeByRequestCode(outspec.Requestcode); //明细
                        }

                        foreach (DataRow dr in dtTest.Rows)
                        {
                            //没有达安代码,则对照表没有对应
                            if (dr["datestcode"] == null || dr["datestcode"].ToString() == "")
                            {
                                //没对项目跳出进行下一个条码
                                throw new Exception(string.Format("中的医院项目[{0}({1})]未对应好数据,请到项目对照表中对应好"
                                                                  , dr["customertestname"], dr["Customertestcode"]));
                            }

                            cuscode  += dr["Customertestcode"] + ",";
                            cusname  += dr["customertestname"] + ",";
                            daancode += dr["datestcode"] + ",";
                        }

                        dt.Rows[0]["HospItemCode"]    = cuscode.TrimEnd(','); //医院项目代码
                        dt.Rows[0]["NaturalItemDesc"] = cusname.TrimEnd(','); //医院项目名称

                        dt.Rows[0]["NaturalItem"] = daancode.TrimEnd(',');    //达安代码

                        #endregion

                        string[] obj = new string[2] {
                            SID, StringToXML(DataToXml.ConvertDataTableToXML(dt))
                        };

                        string strQueryResult = WebServiceUtils.ExecuteMethod("SendRequestInfo", obj);  //调用webService

                        if (strQueryResult.Contains("无法连接"))
                        {
                            throw new Exception("操作连接超时!" + strQueryResult);
                        }
                        else if (strQueryResult.Contains("MSG0006"))
                        {
                            string[] strlogin = commonbll.UserLogin(config);
                            if (strlogin[0] == "0")
                            {
                                SetTB("登录失败:" + strlogin[1]); continue;
                            }
                            else
                            {
                                SID = strlogin[1]; i--;
                            }
                        }
                        else
                        {
                            #region >>>> zhouy  发送成功记录成功日志,发送失败记录错误日志
                            string msg = strQueryResult; //strQueryResult.TrimEnd(',').Split('|'); 2019.1.29该接口康源系统返回的格式和其他接口不同做特殊处理
                            //0 为正常发送了
                            if (msg.Contains("|0"))
                            {
                                DAOperationlog daoperationlog = new DAOperationlog();
                                daoperationlog.Dictuserid       = user.Dictuserid;
                                daoperationlog.Usercode         = user.Usercode;
                                daoperationlog.Username         = user.Username;
                                daoperationlog.Usertype         = "1";//系统自动上传  写成医院客户
                                daoperationlog.Optype           = "订单已发送";
                                daoperationlog.Createdate       = DateTime.Now;
                                daoperationlog.Opcontent        = "发送订单,订单号:" + outspec.Requestcode;
                                daoperationlog.Requestcode      = outspec.Requestcode;      //达安条码
                                daoperationlog.Hospsampleid     = outspec.Hospsampleid;     //医院条码
                                daoperationlog.Hospsamplenumber = outspec.Hospsamplenumber; //医院样本号
                                if (new DAOperationlogBLL().SaveDAOperationlog(daoperationlog) == true)
                                {
                                    Hashtable htstatus = new Hashtable();
                                    htstatus.Add("Outspecimenid", outspec.Outspecimenid.ToString());
                                    htstatus.Add("status", "2");//已发送 修改状态
                                    new DAOutSpecimenBLL().UpdateStatus(htstatus);
                                }
                                //记录成功的达安条码号
                                SetTB(string.Format("达安条码[{0}]:发送成功", outspec.Requestcode));
                            }
                            else
                            {
                                SetTB(string.Format("达安条码[{0}]:{1}", outspec.Requestcode, msg));

                                //记录失败的异常信息到日志表中
                                DAErrorlog error = new DAErrorlog();
                                error.Dictuserid     = user.Dictuserid;
                                error.Createdate     = DateTime.Now;
                                error.LastUpdateDate = DateTime.Now;
                                error.Opcontent      = "订单发送异常信息: " + msg;
                                error.Usercode       = user.Usercode;
                                error.Usertype       = "1";
                                error.Username       = user.Username;
                                error.Ipaddress      = commonbll.GetHostIP();   //获取本机IP地址
                                error.Machinename    = commonbll.GetHostName(); //获取本机机器名
                                new DAErrorLogBLL().SaveErrorLog(error);
                            }
                            #endregion
                        }
                    }
                    catch (Exception e) { SetTB(string.Format("达安条码[{0}]:{1}", barcode, e.Message)); }
                }
            }
            catch (Exception e)
            {
                SetTB("发送订单出现异常:" + e.Message);
            }
        }