示例#1
0
        // 扫描医院条码 显示匹配信息
        private void txtBarcode_KeyPress(object sender, KeyPressEventArgs e)
        {
            //是否回车
            if (e.KeyChar != (char)Keys.Enter)
            {
                return;
            }

            string cusbarcode = string.Empty;

            if (this.dtpBeginDate.Value.Date > this.dtpEndDate.Value.Date)
            {
                ShowMessageHelper.ShowBoxMsg("结束时间应大于开始时间!"); return;
            }
            cusbarcode = this.txtBarcode.Text.Trim();
            if (cusbarcode == "")
            {
                ShowMessageHelper.ShowBoxMsg("医院条码或样本号不能为空!"); return;
            }
            this.txtBarcode.Text = string.Empty;
            Hashtable ht = new Hashtable();

            if (chxHosNumer.Checked == false)
            {
                ht.Add("Hospsampleid", cusbarcode);
            }
            else
            {
                ht.Add("dtpBeginDate", Convert.ToDateTime(this.dtpBeginDate.Value).ToString("yyyy-MM-dd"));
                ht.Add("dtpEndDate", Convert.ToDateTime(this.dtpEndDate.Value.AddDays(+1)).ToString("yyyy-MM-dd"));
                ht.Add("Hospsamplenumber", cusbarcode);
            }

            //是否输入条码值
            // if (message == "") { return; }

            //绑定医院条码相关信息
            //实现List排序,否则无法点击表头按列重新排序 fenghp
            BindingCollection <VDaLisrequest> list = new BindingCollection <VDaLisrequest>();

            foreach (VDaLisrequest lst in new VDALisrequestBLL().GetVDaLisrequestList(ht))
            {
                list.Add(lst);
            }

            if (list.Count == 0)
            {
                ShowMessageHelper.ShowBoxMsg("无医院条码或样本信息!"); return;
            }

            this.bgSource1.DataSource = list;

            VDaLisrequest vda = (VDaLisrequest)gvLisrequest.Rows[gvLisrequest.CurrentCell.RowIndex].DataBoundItem;

            BindRightData(vda);
        }
示例#2
0
        // 扫描达安条码 插入订单
        private void txtDaanBarcode_KeyPress(object sender, KeyPressEventArgs e)
        {
            //是否回车键
            if (e.KeyChar != (char)Keys.Enter)
            {
                return;
            }
            string barcode = this.txtDaanBarcode.Text.Trim();

            this.txtDaanBarcode.Text = string.Empty;
            if (barcode == "")
            {
                ShowMessageHelper.ShowBoxMsg("达安条码不能为空!"); return;
            }
            Regex r = new Regex(@"^\d*00$|\:");  //正则12位数字尾数必须为0

            //达安条码为12位
            if (barcode.Length != 12)
            {
                ShowMessageHelper.ShowBoxMsg("请核对达安条码为12位数字!"); return;
            }
            //达安条码为数字

            if (!r.IsMatch(barcode))
            {
                ShowMessageHelper.ShowBoxMsg("请核对达安条码后两位为0的12位数字!"); return;
            }


            if (gvLisrequest.RowCount == 0)
            {
                ShowMessageHelper.ShowBoxMsg("无医院相关信息!"); return;
            }

            BindingSource TestData = gvDaLis.DataSource as BindingSource;

            if (TestData.Count == 0)
            {
                ShowMessageHelper.ShowBoxMsg("没有项目,不能添加!"); return;
            }

            try
            {
                #region >>>> zhouy  添加过滤
                //选中的当前行
                VDaLisrequest vda = (VDaLisrequest)gvLisrequest.Rows[gvLisrequest.CurrentCell.RowIndex].DataBoundItem;
                //是否存在相同的达安条码
                List <DAOutspecimen> daoutlist = outspecimenbll.GetOutspecimenList(new Hashtable()
                {
                    { "txtRequestcode", barcode }
                });

                if (daoutlist.Count > 0)
                {
                    ShowMessageHelper.ShowBoxMsg("已存在相同的达安条码!"); return;
                }


                #endregion

                #region  >>>插入订单主表、从表、结果表


                //项目列表 取列表项目,可见见即可得
                List <VDaLisrequesttest> VTestList = ((BindingCollection <VDaLisrequesttest>)TestData.List).ToList().FindAll(c => c.IsSelect);
                //项目是否匹配
                if (VTestList.FindAll(c => c.Datestcode == "").Count != 0)
                {
                    ShowMessageHelper.ShowBoxMsg("项目不匹配,数据添加失败!"); return;
                }
                SortedList SQLlist = new SortedList(new MySort());

                #region >>>> zhouy 申请单
                DAOutspecimen daoutspecimen = new DAOutspecimen();
                int           age           = 0;
                if (vda.Age != null && vda.Age != "")
                {
                    if (!int.TryParse(vda.Age, out age))
                    {
                        ShowMessageHelper.ShowBoxMsg("年龄格式不对!"); return;
                    }
                    //如果年龄大于200岁
                    if (age > 200 && age < 0 && vda.Ageunit == "0")
                    {
                        ShowMessageHelper.ShowBoxMsg("年龄不能大于200岁!"); return;
                    }
                }

                daoutspecimen.Age          = age;
                daoutspecimen.Requestcode  = barcode;
                daoutspecimen.Hospsampleid = vda.Hospsampleid;
                //  if (chxHosNumer.Checked) {
                daoutspecimen.Hospsamplenumber = vda.Hospsamplenumber;
                //  }
                daoutspecimen.Customercode    = SystemConfig.Config.Username;
                daoutspecimen.Remark          = "";
                daoutspecimen.Patientnumber   = vda.Patientnumber;
                daoutspecimen.Bednumber       = vda.Bednumber;
                daoutspecimen.Samplingdate    = vda.Samplingdate;
                daoutspecimen.Patientsource   = vda.Patientnumber;
                daoutspecimen.Patientname     = vda.Pname;
                daoutspecimen.Bodystyle       = vda.Bodystyle;
                daoutspecimen.Sex             = vda.Sex;
                daoutspecimen.Patienttel      = vda.Patienttel;
                daoutspecimen.Location        = vda.Sectionoffice;
                daoutspecimen.Doctor          = vda.Doctor;
                daoutspecimen.Doctortel       = vda.Doctortel;
                daoutspecimen.Birthday        = vda.Birthday;
                daoutspecimen.Ageunit         = vda.Ageunit;
                daoutspecimen.Diagnostication = vda.Diagnostication;
                daoutspecimen.Status          = "0";
                daoutspecimen.Babycount       = vda.Babycount;
                daoutspecimen.Lmp             = vda.Lmp;
                daoutspecimen.Lmpdate         = vda.Lmpdate;
                daoutspecimen.Uninevolumn     = vda.Uninevolumn.ToString();
                daoutspecimen.Weight          = vda.Weight.ToString();
                daoutspecimen.Height          = vda.Height.ToString();
                daoutspecimen.Bultrasonic     = vda.Bultrasonic;
                daoutspecimen.Pregnant        = vda.Pregnant;
                daoutspecimen.Enterby         = SystemConfig.UserInfo.UserCode; //"";//录单人
                daoutspecimen.Enterbydate     = DateTime.Now;
                daoutspecimen.Lastupdatedate1 = DateTime.Now;
                daoutspecimen.Createdate      = DateTime.Now;
                daoutspecimen.Usertype        = SystemConfig.UserInfo.UserType.ToString();
                #endregion

                //显示校验医院项目是否与达安项目匹配
                List <string> strCoustomercode = new List <string>(); //客户项目代码
                List <string> strCoustomername = new List <string>(); //客户项目名称
                List <string> strDatecode      = new List <string>(); //达安项目代码
                List <string> strDatename      = new List <string>(); //达安项目名称

                //查询系统中 医院中的所有项目
                Hashtable ht = new Hashtable();
                ht.Add("Hospsampleid", daoutspecimen.Hospsampleid);
                List <DAResult> _daresult = new DAResultBLL().GetDAResultList(ht);   //显示基本信息

                foreach (VDaLisrequesttest vdl in VTestList)
                {
                    string[] dacodearr = vdl.Datestcode.Split(',');

                    #region >>>> 申请单项目表

                    for (int i = 0; i < dacodearr.Length; i++)
                    {
                        string dacode = dacodearr[i].Trim();
                        string daname = "";
                        IEnumerable <string> IEdaname = from a in DaTestList
                                                        where a.Datestcode.Trim() == dacode
                                                        select a.Datestname;

                        if (IEdaname.Count() == 0)
                        {
                            //dacode = daname = "";
                            ShowMessageHelper.ShowBoxMsg(string.Format("达安项目中不存在编号为[{0}]的项目!", dacode)); return;
                        }
                        //  else { daname = IEdaname.First(); }



                        DAOutspecimentest daouttest = new DAOutspecimentest();
                        daouttest.Hospsampleid = vda.Hospsampleid;
                        //if (chxHosNumer.Checked) {
                        daouttest.Hospsamplenumber = vda.Hospsamplenumber;
                        //  }
                        daouttest.Requestcode      = barcode;
                        daouttest.Customertestcode = vdl.Testcode;
                        daouttest.Customertestname = vdl.Testname;
                        daouttest.Datestcode       = dacode;
                        daouttest.Datestname       = daname;
                        daouttest.Createdate       = DateTime.Now;
                        SQLlist.Add(new Hashtable()
                        {
                            { "INSERT", "Da.InsertDAOutspecimentest" }
                        }, daouttest);
                    }

                    #endregion

                    //保存重复过的项目名称
                    string testnamelist = "";

                    #region >>>> 插入结果表

                    List <VDAListests> vdalisttest = new VDAListestsBLL().GetVDaListestsresultByCode(new Hashtable()
                    {
                        { "Testcode", vdl.Testcode }
                    });

                    foreach (VDAListests item in vdalisttest)
                    {
                        DAResult daResult = new DAResult();
                        daResult.Requestcode  = barcode;
                        daResult.Hospsampleid = vda.Hospsampleid;
                        //if (chxHosNumer.Checked) {
                        daResult.Hospsamplenumber = vda.Hospsamplenumber;
                        //  }
                        daResult.Testtype          = item.Testtype;
                        daResult.Customergroupcode = item.CustomerGroupCode; //医院组合代码
                        daResult.Customergroupname = item.CustomerGroupName; //医院组合名称
                        daResult.Customertestcode  = item.Subtestcode;       //医院单项代码
                        daResult.Customertestname  = item.Subtestname;       //医院单项名称
                        //不存在单项名 取组合名
                        if (item.Subtestcode == null || item.Subtestcode == "")
                        {
                            daResult.Customertestcode = item.CustomerGroupCode; //医院单项代码
                            daResult.Customertestname = item.CustomerGroupName; //医院单项名称
                        }

                        //如果已经插入系统的项目 再次扫描不允许插入
                        if (_daresult.FindAll(c => c.Customertestcode.Trim() == daResult.Customertestcode.Trim()).Count > 0)
                        {
                            testnamelist += daResult.Customertestname + ",";
                            continue;
                        }


                        daResult.Dagroupcode = string.Empty;
                        daResult.Dagroupname = string.Empty;
                        daResult.Datestcode  = string.Empty;  //达安单项代码
                        daResult.Datestname  = string.Empty;  //达安单项名称
                        SQLlist.Add(new Hashtable()
                        {
                            { "INSERT", "InsertDAResult" }
                        }, daResult);
                    }
                    #endregion

                    //同意医院条码有重复项目
                    if (testnamelist != "")
                    {
                        ShowMessageHelper.ShowBoxMsg(
                            string.Format("送检人【{0}】医院条码[{1}]的项目[{2}]已经添加到系统中,分开条码请先删除已添加的项目,或者去掉勾选",
                                          daoutspecimen.Patientname, daoutspecimen.Hospsampleid, testnamelist.TrimEnd(',')));
                        return;
                    }
                    daoutspecimen.Customertestcodes += vdl.Testcode + ",";
                    daoutspecimen.Customertestnames += vdl.Testname + ",";
                    daoutspecimen.Datestcodes       += vdl.Datestcode + ",";
                    daoutspecimen.Datestnames       += vdl.Datestname + ",";
                }

                daoutspecimen.Customertestcodes = daoutspecimen.Customertestcodes.TrimEnd(',');
                daoutspecimen.Customertestnames = daoutspecimen.Customertestnames.TrimEnd(',');
                daoutspecimen.Datestcodes       = daoutspecimen.Datestcodes.TrimEnd(',');
                daoutspecimen.Datestnames       = daoutspecimen.Datestnames.TrimEnd(',');
                SQLlist.Add(new Hashtable()
                {
                    { "INSERT", "Da.InsertDAOutspecimen" }
                }, daoutspecimen);

                #region >>>> 写操作日志

                DAOperationlog daoperationlog = new DAOperationlog();
                daoperationlog.Dictuserid   = SystemConfig.UserInfo.UserId == "" ? 0 : Convert.ToDecimal(SystemConfig.UserInfo.UserId);
                daoperationlog.Usercode     = SystemConfig.UserInfo.UserCode;
                daoperationlog.Username     = SystemConfig.UserInfo.UserName;
                daoperationlog.Usertype     = SystemConfig.UserInfo.UserType.ToString();
                daoperationlog.Optype       = "新增订单信息";
                daoperationlog.Createdate   = DateTime.Now;
                daoperationlog.Opcontent    = "生成订单号:" + barcode;
                daoperationlog.Requestcode  = barcode;
                daoperationlog.Hospsampleid = vda.Hospsampleid;
                //  if (chxHosNumer.Checked) {
                daoperationlog.Hospsamplenumber = vda.Hospsamplenumber;
                //  }
                SQLlist.Add(new Hashtable()
                {
                    { "INSERT", "InsertDAOperationlog" }
                }, daoperationlog);

                #endregion


                string errmsg = "";
                if (!outspecimenbll.ExecuteSqlTran(SQLlist, ref errmsg))
                {
                    ShowMessageHelper.ShowBoxMsg("添加失败!:" + errmsg); return;
                }

                DataBind(daoutspecimen);
                this.txtBarcode.Focus();

                #endregion
            }
            catch (Exception Ex)
            {
                ShowMessageHelper.ShowBoxMsg("添加订单异常:" + Ex.Message);
                return;
            }
        }
示例#3
0
        private void BindRightData(VDaLisrequest vda)
        {
            //绑定医院项目信息
            //实现List排序,否则无法点击表头按列重新排序 fenghp
            BindingCollection <VDaLisrequesttest> list2 = new BindingCollection <VDaLisrequesttest>();

            Hashtable htCode = new Hashtable();

            htCode.Add("Hospsampleid", vda.Hospsampleid);
            List <VDaLisrequesttest> VtestList = new VDALisrequesttestBLL().GetVDaLisrequesttestList(htCode);



            //显示校验医院项目是否与达安项目匹配
            Hashtable htmap = new Hashtable();

            foreach (VDaLisrequesttest vdl in VtestList)
            {
                //解决病理常有两个项目一起做,LIS病理项目必须单独条码,所以扫描时需要去掉其中一个勾选,重复操作两次,等待解决
                //if (txtCode.Text.Trim() == "")
                //{
                //    vdl.IsSelect = cbIsSelect.Checked;
                //}
                //else if (txtCode.Text.Trim() == vdl.Testcode)
                //{
                //    vdl.IsSelect = true;
                //}
                //else
                //{
                //    vdl.IsSelect = false;
                //}

                vdl.IsSelect = cbIsSelect.Checked;

                //选择存在对应关系的序列值
                var result = (from a in DaTestMap
                              where a.Customertestcode == vdl.Testcode
                              group a by new { a.Datestname, a.Datestcode } into g
                              select new
                {
                    g.Key.Datestname,
                    g.Key.Datestcode,
                }).ToArray();
                string dacode = "", daname = "";
                //一对多则 拼接多个项目
                foreach (var item in result)
                {
                    dacode += item.Datestcode.Trim() + ",";
                    daname += item.Datestname.Trim() + ",";
                }
                vdl.Datestcode = dacode.TrimEnd(',');
                vdl.Datestname = daname.TrimEnd(',');

                #region >>>> zhouy  按照医学专业组过滤标本类型
                if (result.Length > 0)
                {
                    string strtype = "";

                    var type = (from a in DaTestList
                                where a.Datestcode.Trim() == result[0].Datestcode.Trim()
                                group a by new { a.Testtype } into g
                                select new { g.Key.Testtype }).ToArray();
                    if (type.Length == 0)
                    {
                        ShowMessageHelper.ShowBoxMsg(string.Format("请检查医院代码为[{0}]的项目对照!", vdl.Testcode)); return;
                    }

                    strtype = type[0].Testtype;
                    //病理
                    if (radioButton2.Checked)
                    {
                        vdl.IsDelete = DefaultConfig.TestType_病理 != strtype;
                    }//微生物
                    else if (radioButton3.Checked)
                    {
                        vdl.IsDelete = DefaultConfig.TestType_微生物 != strtype;
                    }//糖筛
                    else if (radioButton4.Checked)
                    {
                        vdl.IsDelete = DefaultConfig.TestType_唐氏筛查 != strtype;
                    }//常规
                    else
                    {
                        vdl.IsDelete = DefaultConfig.TestType_病理 == strtype || DefaultConfig.TestType_微生物 == strtype || DefaultConfig.TestType_唐氏筛查 == strtype;
                    }
                }

                #endregion
            }
            List <VDaLisrequesttest> VtestList2 = VtestList.FindAll(c => !c.IsDelete);

            foreach (VDaLisrequesttest lst in VtestList2)
            {
                list2.Add(lst);
            }

            this.bgSource2.DataSource = list2;

            DaHeaderCheckBox.Checked = cbIsSelect.Checked;

            StringBuilder str = new StringBuilder();
            if (VtestList2.Count > 0)
            {
                str.Append("项目没有对照:");
                int num = 0;
                for (int i = 0; i < VtestList2.Count; i++)
                {
                    if (VtestList2[i].Datestcode == "" || VtestList2[i].Datestname == "")
                    {
                        str.Append("项目编码:" + VtestList2[i].Testcode + "[" + VtestList2[i].Testname + "],");
                        num++;
                    }
                }
                if (num > 0)
                {
                    //写项目匹配错误日志
                    this.lblMessage.Text = str.ToString().TrimEnd(',');
                    DAErrorlog eaerror = new DAErrorlog();
                    eaerror.Dictuserid     = Convert.ToDecimal(SystemConfig.UserInfo.UserId);
                    eaerror.Createdate     = DateTime.Now;
                    eaerror.LastUpdateDate = DateTime.Now;
                    eaerror.Opcontent      = this.lblMessage.Text;
                    eaerror.Usercode       = SystemConfig.UserInfo.UserCode;
                    eaerror.Usertype       = SystemConfig.UserInfo.UserType.ToString();
                    eaerror.Ipaddress      = common.GetHostIP();   //获取本机IP地址
                    eaerror.Machinename    = common.GetHostName(); //获取本机机器名
                    new DAErrorLogBLL().SaveErrorLog(eaerror);
                }
                else
                {
                    this.lblMessage.Text = "";
                    this.txtDaanBarcode.Focus();
                }
            }

            gvDaLis.ClearSelection();
            gvDaLis.TabStop = false;
        }