コード例 #1
0
ファイル: FrmDeptMed.cs プロジェクト: Wooyme/HIS-1
 private void myDataGrid2_DoubleClick(object sender, System.EventArgs e)
 {
     try
     {
         int       nrow   = this.myDataGrid2.CurrentCell.RowNumber;
         DataTable tbdept = (DataTable)this.myDataGrid2.DataSource;
         if (nrow > tbdept.Rows.Count - 1)
         {
             return;
         }
         DataTable tb = MedDeptYp(Convert.ToInt32(tbdept.Rows[nrow]["deptid"]));
         tb.TableName = "tb1";
         this.myDataGrid1.DataSource = tb;
         txtks.Text = Yp.SeekDeptName(Convert.ToInt32(tbdept.Rows[nrow]["deptid"]), InstanceForm.BDatabase);
         txtks.Tag  = Convert.ToString(tbdept.Rows[nrow]["deptid"]);
     }
     catch (System.Exception err)
     {
         MessageBox.Show("发生错误" + err.Message);
     }
 }
コード例 #2
0
        private void ComputeCf()
        {
            string[] GroupbyField = { "处方号" };
            string[] ComputeField = { };
            string[] CField       = { };

            DataTable tb = (DataTable)this.myDataGrid1.DataSource;
            DataTable tab;

            DataRow[] selrow = tb.Select("发药='◆' and cjid<>''");
            //DataRow[] selrow=tb.Select("发药='◆' and cjid<>'' and charge_bit='1'");
            DataTable tbsel = tb.Clone();

            for (int w = 0; w <= selrow.Length - 1; w++)
            {
                tbsel.ImportRow(selrow[w]);
            }
            tab = FunBase.GroupbyDataTable(tbsel, GroupbyField, ComputeField, CField, null);
            //this.lblbz.Text = "处方数:" + tab.Rows.Count.ToString() + " 张";

            string[]  GroupbyField1 = { "dept_ly" };
            string[]  ComputeField1 = { };
            string[]  CField1       = { };
            DataTable tbsel1        = tb.Clone();

            for (int w = 0; w <= selrow.Length - 1; w++)
            {
                tbsel1.ImportRow(selrow[w]);
            }
            tab = FunBase.GroupbyDataTable(tbsel1, GroupbyField1, ComputeField1, CField1, null);
            string ss = "";

            for (int i = 0; i <= tab.Rows.Count - 1; i++)
            {
                ss = ss + " " + Yp.SeekDeptName(Convert.ToInt32(tab.Rows[i]["dept_ly"]), InstanceForm.BDatabase);
            }
            //this.lblbz.Text = lblbz.Text + " 科室:" + ss.ToString();
        }
コード例 #3
0
 private void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
 {
     try
     {
         if (this.dataGridView1.CurrentCell == null)
         {
             return;
         }
         int       nrow   = this.dataGridView1.CurrentCell.RowIndex;
         DataTable tb     = (DataTable)this.dataGridView1.DataSource;
         int       deptid = 0;
         if (nrow <= tb.Rows.Count - 1)
         {
             deptid = Convert.ToInt32(tb.Rows[nrow]["p_deptid"]);
         }
         lblyk.Tag  = deptid;
         lblyk.Text = Yp.SeekDeptName(deptid, InstanceForm.BDatabase);
         AddView3(deptid);
     }
     catch (System.Exception err)
     {
         MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #4
0
ファイル: PubClass.cs プロジェクト: Wooyme/HIS-1
        public static void PrintCf(string inpatient_id, string mngtype, string groupid, RelationalDatabase _DataBase)
        {
            DataTable tb   = null;
            string    ssql = "select top 1  presc_no,execdept_id,cz_flag from zy_orderrecord a,zy_fee_speci b " +
                             " where a.inpatient_id=b.inpatient_id and  a.order_id=b.order_id and a.inpatient_id='" + inpatient_id +
                             "' and (mngtype=" + mngtype + " or mngtype=5 ) and a.group_id=" + groupid + "  and cz_flag in(0,1) order by cz_flag ";
            DataTable tbcx    = _DataBase.GetDataTable(ssql, 30);
            decimal   cfh     = 0;
            int       zxks    = 0;
            int       cz_flag = 0;

            if (tbcx.Rows.Count > 0)
            {
                cfh     = Convert.ToDecimal(tbcx.Rows[0]["presc_no"].ToString());
                zxks    = Convert.ToInt32(tbcx.Rows[0]["execdept_id"].ToString());
                cz_flag = Convert.ToInt32(tbcx.Rows[0]["cz_flag"].ToString());
                if (cz_flag == 1)
                {
                    MessageBox.Show("该处方已冲正,不能打印", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            else
            {
                MessageBox.Show("请确认处方已执行", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (cfh == 0)
            {
                return;
            }

            tb = ZY_FY.SelectCF("0", new Guid(inpatient_id), "", "", "", "", "", "", "0", 0, 0, 0, cfh, _DataBase, 2);
            if (tb.Rows.Count == 0)
            {
                tb = ZY_FY.SelectCF("0", new Guid(inpatient_id), "", "", "", "", "", "", "1", 0, 0, 0, cfh, _DataBase, 2);
            }



            if (new SystemCfg(8021).Config == "0")
            {
                #region  区分中药
                try
                {
                    if (tb.Rows.Count == 0)
                    {
                        return;
                    }

                    DataRow[] rows;
                    rows = tb.Select("ypsl<>0");

                    ts_Yk_ReportView.Dataset2 Dset = new ts_Yk_ReportView.Dataset2();
                    DataRow myrow;
                    for (int i = 0; i <= rows.Length - 1; i++)
                    {
                        myrow          = Dset.发药明细单.NewRow();
                        myrow["rowno"] = Convert.ToString(rows[i]["序号"]);
                        myrow["yppm"]  = Convert.ToString(rows[i]["品名"]);
                        myrow["ypspm"] = Convert.ToString(rows[i]["商品名"]);
                        myrow["ypgg"]  = Convert.ToString(rows[i]["规格"]);
                        myrow["sccj"]  = Convert.ToString(rows[i]["厂家"]);
                        myrow["lsj"]   = Convert.ToDecimal(rows[i]["单价"]);
                        myrow["ypsl"]  = Convert.ToDecimal(rows[i]["数量"]);
                        if (Convert.ToDecimal(rows[i]["剂数"]) > 1 || Convert.ToString(rows[i]["STATITEM_CODE"]).Substring(0, 2) == "03")
                        {
                            myrow["cfts"] = "剂数:" + rows[i]["剂数"].ToString() + " 剂   " + rows[i]["煎药"].ToString();
                        }
                        myrow["ypdw"]         = Convert.ToString(rows[i]["单位"]);
                        myrow["lsje"]         = Convert.ToDecimal(rows[i]["金额"]);
                        myrow["shh"]          = Convert.ToString(rows[i]["货号"]);
                        myrow["bed_no"]       = Convert.ToString(rows[i]["床号"]);
                        myrow["name"]         = Convert.ToString(rows[i]["姓名"]).Trim() + "  处方日期:" + Convert.ToString(rows[i]["处方日期"]).Trim();
                        myrow["inpatient_no"] = Convert.ToString(rows[i]["住院号"]);
                        myrow["lydw"]         = Convert.ToString(rows[i]["发药科室"]) + "  医生:" + Convert.ToString(rows[i]["医生"]);
                        myrow["ksname"]       = Yp.SeekDeptName(Convert.ToInt32(rows[i]["dept_id"]), _DataBase);
                        myrow["presc_no"]     = rows[i]["处方号"].ToString().Trim();
                        myrow["order_usage"]  = rows[i]["用法"].ToString().Trim() + " " + rows[i]["频次"].ToString().Trim();
                        myrow["xb"]           = Convert.ToString(rows[i]["性别"]);
                        myrow["nl"]           = Convert.ToString(rows[i]["年龄"]);

                        myrow["JTDZ"] = "";
                        myrow["LXDH"] = "";
                        myrow["SFZH"] = "";
                        myrow["bz1"]  = Convert.ToString(rows[i]["诊断"]);
                        myrow["bz2"]  = Convert.ToString(rows[i]["中医诊断"]);
                        myrow["bz3"]  = Convert.ToString(rows[i]["中医症型"]);

                        Dset.发药明细单.Rows.Add(myrow);
                    }

                    ParameterEx[] parameters = new ParameterEx[2];
                    parameters[0].Text = "titletext";
                    string ss = "";
                    //if (chkcydy.Checked == false)
                    ss = "住院处方清单";
                    // else
                    //    ss = "出院带药清单";
                    parameters[0].Value = TrasenFrame.Classes.Constant.HospitalName + "(" + Yp.SeekDeptName(zxks, _DataBase) + ")" + ss.Trim();
                    parameters[1].Text  = "BZ";
                    parameters[1].Value = "";
                    bool bview = false;
                    TrasenFrame.Forms.FrmReportView f;
                    f = new TrasenFrame.Forms.FrmReportView(Dset.发药明细单, Constant.ApplicationDirectory + "\\Report\\YF_住院处方清单医生站用.rpt", parameters, bview);
                    if (f.LoadReportSuccess)
                    {
                        f.Show();
                    }
                    else
                    {
                        f.Dispose();
                    }
                }
                catch (System.Exception err)
                {
                    MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                #endregion
            }

            else
            {
                try
                {
                    DataRow[] rows;
                    rows = tb.Select(" ypsl<>0");


                    DataRow[] rows_xy = null;
                    DataRow[] rows_zy = null;

                    rows_xy = tb.Select(" STATITEM_CODE not like '%03%' ");
                    rows_zy = tb.Select(" STATITEM_CODE like '%03%' ");



                    ts_Yk_ReportView.Dataset2 Dset;
                    DataRow myrow;

                    if (rows_xy.Length > 0)
                    {
                        Dset = new ts_Yk_ReportView.Dataset2();
                        for (int i = 0; i <= rows_xy.Length - 1; i++)
                        {
                            myrow          = Dset.发药明细单.NewRow();
                            myrow["rowno"] = Convert.ToString(rows_xy[i]["序号"]);
                            myrow["yppm"]  = Convert.ToString(rows_xy[i]["品名"]);
                            myrow["ypspm"] = Convert.ToString(rows_xy[i]["商品名"]);
                            myrow["ypgg"]  = Convert.ToString(rows_xy[i]["规格"]);
                            myrow["sccj"]  = Convert.ToString(rows_xy[i]["厂家"]);
                            myrow["lsj"]   = Convert.ToDecimal(rows_xy[i]["单价"]);
                            myrow["ypsl"]  = Convert.ToDecimal(rows_xy[i]["数量"]);
                            if (Convert.ToDecimal(rows_xy[i]["剂数"]) > 1 || Convert.ToString(rows_xy[i]["STATITEM_CODE"]).Substring(0, 2) == "03")
                            {
                                myrow["cfts"] = "剂数:" + rows_xy[i]["剂数"].ToString() + " 剂   " + rows_xy[i]["煎药"].ToString();
                            }
                            myrow["ypdw"]         = Convert.ToString(rows_xy[i]["单位"]);
                            myrow["lsje"]         = Convert.ToDecimal(rows_xy[i]["金额"]);
                            myrow["shh"]          = Convert.ToString(rows_xy[i]["货号"]);
                            myrow["bed_no"]       = Convert.ToString(rows_xy[i]["床号"]);
                            myrow["name"]         = Convert.ToString(rows_xy[i]["姓名"]).Trim() + "  处方日期:" + Convert.ToString(rows_xy[i]["处方日期"]).Trim();
                            myrow["inpatient_no"] = Convert.ToString(rows_xy[i]["住院号"]);
                            myrow["lydw"]         = Convert.ToString(rows_xy[i]["发药科室"]) + "  医生:" + Convert.ToString(rows_xy[i]["医生"]);
                            myrow["ksname"]       = Yp.SeekDeptName(Convert.ToInt32(rows_xy[i]["dept_id"]), _DataBase);
                            myrow["presc_no"]     = rows_xy[i]["处方号"].ToString().Trim();
                            myrow["order_usage"]  = rows_xy[i]["用法"].ToString().Trim() + " " + rows_xy[i]["频次"].ToString().Trim();
                            myrow["xb"]           = Convert.ToString(rows_xy[i]["性别"]);
                            myrow["nl"]           = Convert.ToString(rows_xy[i]["年龄"]);

                            myrow["JTDZ"] = "";
                            myrow["LXDH"] = "";
                            myrow["SFZH"] = "";
                            myrow["bz1"]  = Convert.ToString(rows_xy[i]["诊断"]);
                            myrow["bz2"]  = Convert.ToString(rows_xy[i]["中医诊断"]);
                            myrow["bz3"]  = Convert.ToString(rows_xy[i]["中医症型"]);

                            Dset.发药明细单.Rows.Add(myrow);
                        }

                        ParameterEx[] parameters = new ParameterEx[2];
                        parameters[0].Text = "titletext";
                        string ss = "";
                        //if (chkcydy.Checked == false)
                        ss = "住院处方清单";
                        //else
                        //    ss = "出院带药清单";
                        parameters[0].Value = TrasenFrame.Classes.Constant.HospitalName + "(" + Yp.SeekDeptName(zxks, _DataBase) + ")" + ss.Trim();
                        parameters[1].Text  = "BZ";
                        parameters[1].Value = "";
                        bool bview = false;
                        TrasenFrame.Forms.FrmReportView f;

                        f = new TrasenFrame.Forms.FrmReportView(Dset.发药明细单, Constant.ApplicationDirectory + "\\Report\\YF_住院处方清单医生站用.rpt", parameters, bview);
                        if (f.LoadReportSuccess)
                        {
                            f.Show();
                        }
                        else
                        {
                            f.Dispose();
                        }
                    }

                    if (rows_zy.Length > 0)
                    {
                        Dset = new ts_Yk_ReportView.Dataset2();
                        for (int i = 0; i <= rows_zy.Length - 1; i++)
                        {
                            myrow          = Dset.发药明细单.NewRow();
                            myrow["rowno"] = Convert.ToString(rows_zy[i]["序号"]);
                            myrow["yppm"]  = Convert.ToString(rows_zy[i]["品名"]);
                            myrow["ypspm"] = Convert.ToString(rows_zy[i]["商品名"]);
                            myrow["ypgg"]  = Convert.ToString(rows_zy[i]["规格"]);
                            myrow["sccj"]  = Convert.ToString(rows_zy[i]["厂家"]);
                            myrow["lsj"]   = Convert.ToDecimal(rows_zy[i]["单价"]);
                            myrow["ypsl"]  = Convert.ToDecimal(rows_zy[i]["数量"]);
                            if (Convert.ToDecimal(rows_zy[i]["剂数"]) > 1 || Convert.ToString(rows_zy[i]["STATITEM_CODE"]).Substring(0, 2) == "03")
                            {
                                myrow["cfts"] = "剂数:" + rows_zy[i]["剂数"].ToString() + " 剂   " + rows_zy[i]["煎药"].ToString();
                            }
                            myrow["ypdw"]         = Convert.ToString(rows_zy[i]["单位"]);
                            myrow["lsje"]         = Convert.ToDecimal(rows_zy[i]["金额"]);
                            myrow["shh"]          = Convert.ToString(rows_zy[i]["货号"]);
                            myrow["bed_no"]       = Convert.ToString(rows_zy[i]["床号"]);
                            myrow["name"]         = Convert.ToString(rows_zy[i]["姓名"]).Trim() + "  处方日期:" + Convert.ToString(rows_zy[i]["处方日期"]).Trim();
                            myrow["inpatient_no"] = Convert.ToString(rows_zy[i]["住院号"]);
                            myrow["lydw"]         = Convert.ToString(rows_zy[i]["发药科室"]) + "  医生:" + Convert.ToString(rows_zy[i]["医生"]);
                            myrow["ksname"]       = Yp.SeekDeptName(Convert.ToInt32(rows_zy[i]["dept_id"]), _DataBase);
                            myrow["presc_no"]     = rows_zy[i]["处方号"].ToString().Trim();
                            myrow["order_usage"]  = rows_zy[i]["用法"].ToString().Trim() + " " + rows_zy[i]["频次"].ToString().Trim();
                            myrow["xb"]           = Convert.ToString(rows_zy[i]["性别"]);
                            myrow["nl"]           = Convert.ToString(rows_zy[i]["年龄"]);

                            myrow["JTDZ"] = "";
                            myrow["LXDH"] = "";
                            myrow["SFZH"] = "";
                            myrow["bz1"]  = Convert.ToString(rows_zy[i]["诊断"]);
                            myrow["bz2"]  = Convert.ToString(rows_zy[i]["中医诊断"]);
                            myrow["bz3"]  = Convert.ToString(rows_zy[i]["中医症型"]);
                            Dset.发药明细单.Rows.Add(myrow);
                        }

                        ParameterEx[] parameters = new ParameterEx[2];
                        parameters[0].Text = "titletext";
                        string ss = "";
                        //if (chkcydy.Checked == false)
                        ss = "住院处方清单";
                        //else
                        //    ss = "出院带药清单";
                        parameters[0].Value = TrasenFrame.Classes.Constant.HospitalName + "(" + Yp.SeekDeptName(zxks, _DataBase) + ")" + ss.Trim();
                        parameters[1].Text  = "BZ";
                        parameters[1].Value = "";
                        bool bview = false;
                        TrasenFrame.Forms.FrmReportView f;

                        f = new TrasenFrame.Forms.FrmReportView(Dset.发药明细单, Constant.ApplicationDirectory + "\\Report\\YF_住院处方清单(中药)医生站用.rpt", parameters, bview);
                        if (f.LoadReportSuccess)
                        {
                            f.Show();
                        }
                        else
                        {
                            f.Dispose();
                        }
                    }
                }
                catch (System.Exception err)
                {
                    MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #5
0
        //汇总药品数量
        private void computeTld(string fyrq)
        {
            bool bGrpByDeptLy = false;

            bGrpByDeptLy = _menuTag.Function_Name.Trim().Equals("Fun_ts_yf_zyfy_cf_ZCY");//中草药上传不按照领药科室分组
            DataTable tb = (DataTable)this.myDataGrid1.DataSource;

            string[] GroupbyField = { "剂型", "品名", "商品名", "规格", "厂家", "单价", "货号", "cjid", "zxdw", "dwbl", "dept_ly" };
            bGrpByDeptLy = true;
            if (bGrpByDeptLy)
            {
                GroupbyField = new string[] { "剂型", "品名", "商品名", "规格", "厂家", "单价", "货号", "cjid", "zxdw", "dwbl" };
            }

            string[] ComputeField = { "ypsl", "金额" };
            string[] CField       = { "sum", "sum" };

            //			TrasenFrame.Classes.TsSet xcset=new TrasenFrame.Classes.TsSet();
            //			xcset.TsDataTable=tb;
            //汇总每个统领分类
            //			DataTable tab=xcset.GroupTable(GroupbyField,ComputeField,CField,"发药='◆' and ypsl<>0");

            DataTable tab;

            DataRow[] selrow;

            if (this.tabControl1.SelectedTab == this.tabPage2)
            {
                selrow = tb.Select("ypsl<>0");
                //selrow = tb.Select("发药='√' and ypsl<>0");
            }
            else
            {
                //if (fyrq != "")
                //    selrow = tb.Select("发药='√' and ypsl<>0 and 发药日期='" + Convertor.IsNull(butfy.Tag, "") + "'");
                //else
                selrow = tb.Select("发药='◆' and ypsl<>0");
            }

            DataTable tbsel = tb.Clone();

            for (int w = 0; w <= selrow.Length - 1; w++)
            {
                tbsel.ImportRow(selrow[w]);
            }
            tab = FunBase.GroupbyDataTable(tbsel, GroupbyField, ComputeField, CField, null);

            DataTable mytb = (DataTable)this.myDataGrid2.DataSource;

            mytb.Rows.Clear();

            DataRow[] Rows = tab.Select("", "剂型");
            decimal   dSum = 0M;

            //添加数据
            for (int x = 0; x <= Rows.Length - 1; x++)
            {
                DataRow row = mytb.NewRow();
                row["序号"]  = mytb.Rows.Count + 1;
                row["剂型"]  = Rows[x]["剂型"];
                row["品名"]  = Rows[x]["品名"];
                row["商品名"] = Rows[x]["商品名"];
                row["规格"]  = Rows[x]["规格"];
                row["厂家"]  = Rows[x]["厂家"];
                row["单价"]  = Rows[x]["单价"];
                //row["库存数"] = Rows[x]["库存数"];
                row["领药数"] = Rows[x]["ypsl"];
                //decimal kcl = Convert.ToDecimal(Rows[x]["库存数"]);
                decimal ypsl = Convert.ToDecimal(Rows[x]["ypsl"]);
                decimal dwbl = Convert.ToDecimal(Rows[x]["dwbl"]);
                //row["缺药数"] = (kcl - ypsl) < 0 ? System.Math.Abs(kcl - ypsl) : 0;
                row["单位"] = Yp.SeekYpdw(Convert.ToInt32(Rows[x]["zxdw"]), InstanceForm.BDatabase);
                Ypcj cj = new Ypcj(Convert.ToInt32(Rows[x]["cjid"]), InstanceForm.BDatabase);
                row["药库单位"] = Convert.ToDouble(Math.Round(ypsl / dwbl, 3)).ToString() + cj.S_YPDW;
                row["金额"]   = Rows[x]["金额"];
                row["货号"]   = Rows[x]["货号"];
                row["cjid"] = Rows[x]["cjid"];
                row["dwbl"] = Rows[x]["dwbl"];
                if (!bGrpByDeptLy)
                {
                    row["领药科室"] = Yp.SeekDeptName(Convert.ToInt32(Rows[x]["dept_ly"]), InstanceForm.BDatabase);
                }
                mytb.Rows.Add(row);
                dSum += decimal.Parse(Rows[x]["金额"].ToString().Trim());
            }

            DataRow rAll = mytb.NewRow();

            rAll["品名"] = "总金额";
            rAll["金额"] = dSum;
            mytb.Rows.Add(rAll);
        }