Beispiel #1
0
        /// <summary>
        /// 产生医嘱不产生费用
        /// </summary>
        /// <param name="inpatient_no">住院号</param>
        /// <param name="yzid">医嘱项目id</param>
        /// <param name="xyl">剂量</param>
        /// <param name="app_docid">申请医生id</param>
        /// <param name="app_deptid">申请科室id</param>
        /// <param name="_database">数据库连接对象</param>
        /// <param name="baby_id">婴儿id,大人为0</param>
        /// <param name="bb">标本id</param>
        /// <param name="jgbm">机构编码</param>
        /// <param name="bz">备注</param>
        public static void CommitOrder_notexe(string inpatient_no, long yzid, Decimal xyl, long app_docid, long app_deptid, RelationalDatabase _database, long baby_id, string bb, long jgbm, string bz)
        {
            string    sql = "select * from zy_inpatient where inpatient_no='" + inpatient_no + "' and flag in(1,3,4)";
            DataTable tb  = _database.GetDataTable(sql);

            bz = "";
            if (tb.Rows.Count == 0)
            {
                throw new Exception("没有找到住院号为【" + inpatient_no + "】的病人信息!!");
            }
            else
            {
                _database.BeginTransaction();
                try
                {
                    Ts_zyys_public.DbQuery dbquery = new DbQuery(_database);
                    sql = "select *,CASE WHEN  b.EXEC_DEPT>0 THEN b.EXEC_DEPT ELSE A.DEFAULT_DEPT END zkxsid   "
                          + " from JC_HOITEMDICTION a left join JC_HOI_DEPT b  on a.ORDER_ID=b.ORDER_ID "
                          + "  left join JC_DEPT_PROPERTY c on c.DEPT_ID=b.EXEC_DEPT  where a.ORDER_ID=" + yzid + "  and  c.jgbm=" + jgbm;
                    DataTable hoitemtb = _database.GetDataTable(sql);
                    if (hoitemtb.Rows.Count == 0)
                    {
                        throw new Exception("获取医嘱项目失败!!");
                    }
                    long   zxksid       = long.Parse(hoitemtb.Rows[0]["zkxsid"].ToString());
                    string ward_id      = Convert.ToString(_database.GetDataResult("select ward_id from JC_WARDRDEPT where dept_id='" + tb.Rows[0]["dept_id"].ToString() + "'"));
                    Guid   inpatient_id = new Guid(tb.Rows[0]["inpatient_id"].ToString());
                    long   yzNum        = dbquery.GetYzNum(_database, inpatient_id) + 1;
                    Guid   order_id     = PubStaticFun.NewGuid();
                    string commandtext  = string.Concat(new object[] {
                        "INSERT INTO ZY_ORDERRECORD(order_id,Group_ID,Inpatient_ID,Dept_ID,Ward_ID,MNGTYPE,nType,Order_Doc,HOItem_ID,xmly,Order_context,Num,Dosage,Unit,book_date,Order_bDate,First_times,Order_Usage,frequency,Operator,Delete_Bit,status_flag,baby_id,dept_br,exec_dept,dwlx,MEMO,MEMO1,jgbm,zsl,jz_flag) "
                        + " VALUES('", order_id, "',", yzNum.ToString(), ",'", inpatient_id.ToString(), "',", app_deptid, ",'", ward_id, "',1,5,", FrmMdiMain.CurrentUser.EmployeeId, ",", yzid, ",2,'", "",
                        hoitemtb.Rows[0]["ORDER_NAME"].ToString() + bz, "',", xyl.ToString(), ",1,'", hoitemtb.Rows[0]["ORDER_UNIT"].ToString(), "',GetDate(),GetDate(),0,'", "", "','',", app_docid, ",0,0,", baby_id.ToString(), ",", tb.Rows[0]["dept_id"], ",", zxksid.ToString(), ",",
                        bb.ToString(), ",'", "", "★", "", "','", "", "',", jgbm, "," + xyl.ToString() + ",0)"
                    });
                    _database.DoCommand(commandtext);

                    dbquery.insertJY(_database, inpatient_id, baby_id, order_id);
                    // ts_zyhs_classes.BaseFunc bfucn = new ts_zyhs_classes.BaseFunc(_database);
                    //bfucn.ExecOrders("", inpatient_id, baby_id, yzNum, 1, DateManager.ServerDateTimeByDBType(_database), DateManager.ServerDateTimeByDBType(_database), app_docid, (int)jgbm);
                    _database.CommitTransaction();
                }
                catch (Exception ex)
                {
                    _database.RollbackTransaction();
                    throw ex;
                }
            }
        }
Beispiel #2
0
        private void btnOk_Click(object sender, System.EventArgs e)
        {
            if (cmbWard.Text == "")
            {
                MessageBox.Show("没有选择病区,请选择转到的病区", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (cmbDept.Text == "")
            {
                MessageBox.Show("没有选择科室,请选择转到的科室", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            //Modify By tany 2010-01-08 原来判断开单医生的科室,现在判断病人所在科室
            if (this.Dept_Br == Convert.ToInt64(this.cmbDept.SelectedValue))
            {
                FrmMessageBox.Show("不允许本科室转本科室!请重新选择科室。", new Font("宋体", 12f), Color.Red, "Sorry!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            //			if(myQuery.SexName(this.BinID)=="男")
            //			{
            //				//选择转出的科室如果是妇科和产科,则提示不能转(302表示妇产科)
            //				if(Convert.ToInt64(this.cmbDept.SelectedValue) == 302)
            //				{
            //					MessageBox.Show("该病人是男性,不能转去妇产科,请重新选择科室","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            //					return;
            //				}
            //			}

            #region 权限确认
            //Modify By Tany 2010-06-08 是否使用密码确认 0=使用 1=不使用
            if (new SystemCfg(6023).Config == "0")
            {
                string dlgvalue = DlgPW.Show();
                string pwStr    = dlgvalue; //YS.Password;
                bool   bOk      = InstanceForm._currentUser.CheckPassword(pwStr);
                if (!bOk)
                {
                    FrmMessageBox.Show("你没有通过权限确认,不能发送医嘱!", new Font("宋体", 12f), Color.Red, "Sorry!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
            }
            #endregion

            //写停医嘱记录
            string    er            = "";
            long      Order_Num     = myQuery.GetYzNum(this.BinID, this.DeptID);
            long      OrderNumCount = Order_Num + 1;
            int       num           = 0;
            SystemCfg cfg6045       = new SystemCfg(6045);
            DataTable babyTb;
            //Modify By Tany 2011-03-07 婴儿和大人一起停医嘱并转科
            //add by zouchihua 2012-5-15
            if (cfg6045.Config.Trim() == "0")
            {
                babyTb = FrmMdiMain.Database.GetDataTable("select * from zy_inpatient_baby where inpatient_id='" + BinID + "'");
            }
            else
            {
                babyTb = FrmMdiMain.Database.GetDataTable("select * from zy_inpatient_baby where inpatient_id='" + BinID + "'  and  flag in(1,3,4)");
            }
            //Modify By Tany 2011-03-07 婴儿和大人一起转科,对方科室也必须是产科
            if (babyTb != null && babyTb.Rows.Count > 0)
            {
                if (!myFunc.IsFCK(cmbWard.SelectedValue.ToString().Trim()))
                {
                    FrmMessageBox.Show("带婴儿的病人不允许转到非妇产科室!请重新选择科室。", new Font("宋体", 12f), Color.Red, "Sorry!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
            }
            //生成数据库访问对象
            FrmMdiMain.Database.BeginTransaction();
            try
            {
                //构成SQL语句,并执行,默认婴儿ID为0,医嘱录入人为医生本人,默认病人科室为医生科室,中草药剂量默认为1,操作员为医生本人
                //武汉中心医院转科、出院、死亡医嘱存储到临时医嘱 Moidify by jchl
                string OrderID = PubStaticFun.NewGuid().ToString();//Modify BY Tany 2014-12-04 转科的Order_id不用查询来取,直接赋值公用就行//Convert.ToString(FrmMdiMain.Database.GetDataResult(sSql));
                string sSql    = "INSERT INTO ZY_ORDERRECORD(" +
                                 "order_id,Group_ID,Inpatient_ID,Dept_ID,Ward_ID,MNGTYPE,nType,Order_Doc," +
                                 "HOItem_ID,xmly,Order_context,Num,Dosage,Unit,book_date," +
                                 "Order_bDate,First_times,Order_Usage,frequency," +
                                 "Operator,Delete_Bit,status_flag,baby_id,dept_br,exec_dept,serial_no,jgbm)" +
                                 " VALUES('" + OrderID + "'," + OrderNumCount.ToString() + ",'" + BinID.ToString() + "'," + this.DeptID.ToString() + ",'" + this.WardID + "',1,0," + this.YS_ID.ToString() + "," +
                                 "-1,2,'" + "转:【" + this.cmbJgbm.Text + "】" + this.cmbDept.Text.Trim() + "',0,1,'',GetDate()," + "'" + this.dateTimePicker1.Value.ToString() + "',1,'','1'," +
                                 "" + this.YS_ID.ToString() + ",0,1," + "0" + "," + (Dept_Br == 0 ? DeptID.ToString() : Dept_Br.ToString()) + "," + this.DeptID.ToString() + ",0," + FrmMdiMain.Jgbm + ") ";
                FrmMdiMain.Database.DoCommand(sSql);

                //获取转科医嘱order_id
                //武汉中心医院转科、出院、死亡医嘱存储到临时医嘱 Moidify by jchl[mngtype=0->mngtype=1]
                //sSql = "select order_id from zy_orderrecord where inpatient_id='" + this.BinID.ToString() + "' and mngtype=1 and HOItem_ID=-1 and order_context like '%转%'and Order_bDate='" + this.dateTimePicker1.Value.ToString() + "' ";
                //string OrderID = Convert.ToString(FrmMdiMain.Database.GetDataResult(sSql));
                string tran_type = "0";
                if (chk_trantype.Checked == false)
                {
                    tran_type = "1";
                }
                string sSql0 = "insert into zy_transfer_dept(" +
                               "id,Inpatient_id,S_dept_id,D_dept_id,Transfer_date,Book_date,Operator,description,Baby_id,finish_bit,order_id,CANCEL_BIT,jgbm,Trans_type) " +
                               "values('" + PubStaticFun.NewGuid() + "','" + BinID.ToString() + "'," + (Dept_Br == 0 ? DeptID.ToString() : Dept_Br.ToString()) + "," + this.cmbDept.SelectedValue.ToString() + ",'" + this.dateTimePicker1.Value.ToString() + "'," +
                               "GetDate()," + this.YS_ID.ToString() + ",'转',0,0,'" + OrderID + "',0 ," + FrmMdiMain.Jgbm + "," + tran_type + ")";
                FrmMdiMain.Database.DoCommand(sSql0);

                //Modify By Tany 2011-03-07 婴儿和大人一起停医嘱
                if (babyTb != null && babyTb.Rows.Count > 0)
                {
                    for (int i = 0; i < babyTb.Rows.Count; i++)
                    {
                        string sSql1 = "";
                        if (chk_trantype.Checked)//正常转科
                        {
                            sSql1 = "insert into zy_transfer_dept(" +
                                    "id,Inpatient_id,S_dept_id,D_dept_id,Transfer_date,Book_date,Operator,description,Baby_id,finish_bit,order_id,CANCEL_BIT,jgbm,Trans_type) " +
                                    "values('" + PubStaticFun.NewGuid() + "','" + BinID.ToString() + "'," + (Dept_Br == 0 ? DeptID.ToString() : Dept_Br.ToString()) + "," + this.cmbDept.SelectedValue.ToString() + ",'" + this.dateTimePicker1.Value.ToString() + "'," +
                                    "GetDate()," + this.YS_ID.ToString() + ",'转'," + Convert.ToInt64(babyTb.Rows[i]["baby_id"]) + ",0,'" + OrderID + "',0 ," + FrmMdiMain.Jgbm + ",0)";
                        }
                        else
                        {
                            //非正常转科
                            sSql1 = "insert into zy_transfer_dept(" +
                                    "id,Inpatient_id,S_dept_id,D_dept_id,Transfer_date,Book_date,Operator,description,Baby_id,finish_bit,order_id,CANCEL_BIT,jgbm,Trans_type) " +
                                    "values('" + PubStaticFun.NewGuid() + "','" + BinID.ToString() + "'," + (Dept_Br == 0 ? DeptID.ToString() : Dept_Br.ToString()) + "," + this.cmbDept.SelectedValue.ToString() + ",'" + this.dateTimePicker1.Value.ToString() + "'," +
                                    "GetDate()," + this.YS_ID.ToString() + ",'转'," + Convert.ToInt64(babyTb.Rows[i]["baby_id"]) + ",0,'" + OrderID + "',0 ," + FrmMdiMain.Jgbm + ",1)";
                        }
                        FrmMdiMain.Database.DoCommand(sSql1);
                    }
                }

                if (this.radBt1.Checked == true)
                {
                    num = -1;
                }
                else
                {
                    num = Convert.ToInt16(this.numUD.Value);
                }

                if (this.lbStop.Text == "√")
                {
                    //停医嘱
                    myQuery.StopOrders(FrmMdiMain.Database, this.dateTimePicker1.Value.ToString(), this.YS_ID, this.BinID, 0, num);
                    //停账单
                    myQuery.StopOrders_ZD(FrmMdiMain.Database, this.dateTimePicker1.Value.ToString(), this.YS_ID, this.BinID, 0, num, 0);

                    //Modify By Tany 2011-03-07 婴儿和大人一起停医嘱
                    if (babyTb != null && babyTb.Rows.Count > 0)
                    {
                        for (int i = 0; i < babyTb.Rows.Count; i++)
                        {
                            //停医嘱
                            myQuery.StopOrders(FrmMdiMain.Database, this.dateTimePicker1.Value.ToString(), this.YS_ID, this.BinID, Convert.ToInt64(babyTb.Rows[i]["baby_id"]), num);
                            //停账单
                            myQuery.StopOrders_ZD(FrmMdiMain.Database, this.dateTimePicker1.Value.ToString(), this.YS_ID, this.BinID, Convert.ToInt64(babyTb.Rows[i]["baby_id"]), num, 0);
                        }
                    }
                }

                FrmMdiMain.Database.CommitTransaction();
                MessageBox.Show("转科申请成功!");
                outType = true;

                string msg_wardid = InstanceForm._currentDept.WardId;
                long   msg_deptid = 0;
                long   msg_empid  = 0;
                string msg_sender = FrmMdiMain.CurrentDept.DeptName + ":" + FrmMdiMain.CurrentUser.Name;
                string msg_msg    = lblBedNo.Text + " 床 " + lblName.Text + " 有转科医嘱,请处理!";
                TrasenFrame.Classes.WorkStaticFun.SendMessage(true, SystemModule.住院护士站, msg_wardid, msg_deptid, msg_empid, msg_sender, msg_msg);
            }
            catch (System.Exception err)
            {
                FrmMdiMain.Database.RollbackTransaction();
                MessageBox.Show("转科申请失败!请重试!\n" + err.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                er = err.ToString();
                this.Close();
            }
            finally
            {
                if (er.Trim() == "")
                {
                    myQuery.SaveLog(this.DeptID, this.YS_ID, "开转科医嘱", this.BinID.ToString() + ":从" + this.DeptID.ToString() + "转到" + this.cmbDept.SelectedValue.ToString() + ",末日次数:" + num.ToString(), 0, 41);
                }
                else
                {
                    myQuery.SaveLog(this.DeptID, this.YS_ID, "转科医嘱失败", this.BinID.ToString() + ":" + er.Trim() + " ⊙从" + this.DeptID.ToString() + "转到" + this.cmbDept.SelectedValue.ToString() + ",末日次数:" + num.ToString(), 1, 41);
                }
            }

            //发消息通知护士站
            if (this.chk_hsz.Checked)
            {
                long warddept = (this.DeptID);
                myQuery.InformHS(warddept, " 请为 " + this.lblBedNo.Text.Trim() + "床 " + this.lblName.Text.Trim() + " 办理转科手续");
            }
            Ts_zyys_main.frmMain.outflag = true;
            this.Close();
        }
Beispiel #3
0
        private void buttQD_Click(object sender, EventArgs e)
        {
            //DataTable pattb = (DataTable)this.myDataGrid2.DataSource;

            //#region//Add by Zouchihua 2011-10-12 判断病人的当前科室是不是属于本院区,主要是为了阻止临时跨院业务的病人操作
            string[] rtnSql = ts_zyhs_classes.BaseFunc.GetBrzt(_BinID);
            if (rtnSql[0] != "0")
            {
                MessageBox.Show("由于跨院转科或者特殊治疗,该病人记录已经冻结不允许操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            int BrJgbm = Convert.ToInt32(rtnSql[1]);

            //#endregion
            if (_rbIn)
            {
                #region    //Add by yaokx 2013-12-05 判断病人是不是当前科室,主要是为了阻止临时跨科室业务的病人操作
                string    sql_dept   = "select * from VI_ZY_VINPATIENT_INFO where inpatient_id ='" + _BinID + "'  and baby_id=" + _BabyID;
                DataTable table_dept = FrmMdiMain.Database.GetDataTable(sql_dept);
                if (table_dept.Rows.Count > 0)
                {
                    string    flag   = table_dept.Rows[0]["FLAG"].ToString();
                    string    sql    = "  select * from JC_WARDRDEPT where dept_id=" + InstanceForm.BCurrentDept.DeptId.ToString() + "";
                    DataTable tbtemp = InstanceForm.BDatabase.GetDataTable(sql);
                    if (tbtemp.Rows.Count <= 0)
                    {
                        MessageBox.Show("该病人已转科不属于本科室,不允许操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    else if (flag.Equals("2") || flag.Equals("5") || flag.Equals("6"))
                    {
                        MessageBox.Show("该病人已经出区,不允许操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
                #endregion
            }
            int       i, serial_no = 0, iYZH = 0;
            int       yztype = _yztype;//(this.tabControl1.SelectedTab.Text.Trim() == sTab0 ? 2 : 3);
            string    sSql   = "";
            DataTable myTbwz = (DataTable)this.dataGridView1.DataSource;

            //Modify by zouchihfua 2011-10-31
            Guid tsapply_id = Guid.Empty;
            int  Apply_type = 0;   //0=正常  包括 1=特殊治疗,2=手术申请,3=转科 4=会诊 ;
            //1 特殊治疗
            if (_rbTszl)
            {
                //获得特殊治疗id
                string    ssql    = "select id from ZY_TS_APPLY where TS_DEPT =" + FrmMdiMain.CurrentDept.DeptId.ToString() + " and inpatient_id='" + ClassStatic.Current_BinID + "' and STATUS_FLAG !=2 and DELETE_BIT=0";
                DataTable Tstable = FrmMdiMain.Database.GetDataTable(ssql);
                if (Tstable.Rows.Count > 0)
                {
                    tsapply_id = new Guid(Tstable.Rows[0]["id"].ToString());
                    Apply_type = 1;
                }
            }


            //3 转科
            if (Apply_type == 0)
            {
                string    zk     = "select id from ZY_TRANSFER_DEPT where INPATIENT_ID='" + _BinID + "' and  CANCEL_BIT=0 and FINISH_BIT=1 order by TRANSFER_DATE desc";//最近一次转科
                DataTable temptb = FrmMdiMain.Database.GetDataTable(zk);
                if (temptb.Rows.Count > 0)
                {
                    tsapply_id = new Guid(temptb.Rows[0]["id"].ToString());
                    Apply_type = 3;
                }
            }
            if (_isSSMZ)
            {
                //获得特殊治疗id
                string    ssql    = "select a.id from  ss_apprecord a inner join ss_arrrecord b on a.sno=b.sno and b.wcbj=0 and a.bdelete=0 where  a.inpatient_id='" + ClassStatic.Current_BinID + "' and a.BDELETE=0 and b.BDELETE=0 and a.apbj=1";
                DataTable Tstable = FrmMdiMain.Database.GetDataTable(ssql);
                if (Tstable.Rows.Count > 0)
                {
                    tsapply_id = new Guid(Tstable.Rows[0]["id"].ToString());
                    Apply_type = 2;
                }
            }

            //初始化医嘱
            sSql = @"select max(Group_Id) as YZH " +
                   "  from Zy_OrderRecord " +
                   " where inpatient_id='" + _BinID + "'" +
                   "       and baby_id=" + _BabyID; //+
            //				"       and mngtype=" + yztype.ToString();
            DataTable myTempTb = InstanceForm.BDatabase.GetDataTable(sSql);
            if (myTempTb.Rows[0]["YZH"].ToString().Trim() == "")
            {
                iYZH = 0;
            }
            else
            {
                iYZH = Convert.ToInt32(myTempTb.Rows[0]["YZH"]);
            }

            //			//生成数据访问对象
            //			RelationalDatabase database=RelationalDatabase.GetDatabase(DatabaseType.IbmDb2ZY);
            //			database.Initialize("");
            //			database.Open();
            //			//开始一个事物
            //			database.BeginTransaction();

            //是否开单科室领药,包含冲账权限
            int _iskdksly = 0;
            if (_rbTszl)
            {
                _iskdksly = Convert.ToInt32(Convertor.IsNull(InstanceForm.BDatabase.GetDataResult("select iskdksly from jc_dept_tszl where deptid=" + myTb.Rows[nrow]["dept_id"]), "0"));
            }
            InstanceForm.BDatabase.BeginTransaction();

            try
            {
                #region 循环保存数据
                for (i = 0; i <= myTbwz.Rows.Count - 1; i++)
                {
                    if (myTbwz.Rows[i]["SELECTED"].ToString().Trim() == "1")
                    {
                        //首次
                        int j = 1;
                        if (first_times != "")
                        {
                            j = Convert.ToInt32(first_times);
                        }

                        if (myTbwz.Rows[i]["ORDER_ID"] == null || myTbwz.Rows[i]["ORDER_ID"].ToString() == "")
                        {
                            InstanceForm.BDatabase.RollbackTransaction();
                            MessageBox.Show(this, "保存数据失败!找不到收费项目医嘱id", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        string hoitemid = myTbwz.Rows[i]["ORDER_ID"].ToString();
                        //取医嘱号
                        //if ((i == 0) || (i > 0 && myTb.Rows[nrow]["group_id"].ToString() != myTb.Rows[nrow - 1]["group_id"].ToString()))
                        //{
                        iYZH     += 1;
                        serial_no = 0;
                        //}
                        //else serial_no += 1;

                        decimal v_price = Convert.ToDecimal(myTbwz.Rows[i]["COST_PRICE"].ToString().Trim());
                        //构成SQL语句,并执行
                        //Modify By Tany 2004-10-23 加入price 主要针对单价为0的项目
                        sSql = @"INSERT INTO ZY_ORDERRECORD( " +
                               "ORDER_ID,INPATIENT_ID,Baby_ID,WARD_ID,DEPT_BR,DEPT_ID, " +
                               "MNGTYPE,ORDER_BDATE,GROUP_ID,NTYPE, " +
                               "HOITEM_ID,XMLY,ORDER_CONTEXT,NUM,DOSAGE,UNIT,ORDER_USAGE,FREQUENCY, " +
                               "EXEC_DEPT,FIRST_TIMES,STATUS_FLAG, " +
                               "AUDITING_USER,AUDITING_DATE,OPERATOR,BOOK_DATE,SERIAL_NO,jgbm,iskdksly,tsapply_id,Apply_type,MEMO2,ppcl_yzid) " +
                               "VALUES('" + PubStaticFun.NewGuid() + "' ,'" +
                               _BinID + "'," + _BabyID + ",'" + new Department(ClassStatic.Current_DeptID, InstanceForm.BDatabase).WardId + "'," + ClassStatic.Current_DeptID + "," + dept_id + "," +
                               _yztype + ",'" + DateManager.ServerDateTimeByDBType(InstanceForm.BDatabase) + "'," + iYZH.ToString() + ","
                               + myTb.Rows[nrow]["ntype"].ToString() + "," +
                               hoitemid + ",2,'"
                               + myTbwz.Rows[i]["ITEM_NAME"] + "',"
                               + myTbwz.Rows[i]["NUM"] + ","
                               + myTb.Rows[nrow]["DOSAGE"] + ",'"
                               + myTbwz.Rows[i]["ITEM_UNIT"] + "','"
                               + myTb.Rows[nrow]["ORDER_USAGE"] + "','"
                               + myTb.Rows[nrow]["FREQUENCY"] + "'," +
                               myTb.Rows[nrow]["Exec_Dept"] + "," + myTbwz.Rows[i]["NUM"] + ",2," +
                               InstanceForm.BCurrentUser.EmployeeId + ",getdate() ," + InstanceForm.BCurrentUser.EmployeeId + ",getdate()," + serial_no.ToString() +
                               "," + BrJgbm + "," + _iskdksly + ",'" + tsapply_id + "'," + Apply_type + ",'物资匹配','" + this.Order_id + "')";

                        InstanceForm.BDatabase.DoCommand(sSql);
                    }
                }
                #endregion

                InstanceForm.BDatabase.CommitTransaction();
                MessageBox.Show(this, "保存数据成功", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
                BingData();
                this.Close();
            }
            catch (System.Data.OleDb.OleDbException err)
            {
                InstanceForm.BDatabase.RollbackTransaction();
                MessageBox.Show(this, "保存数据失败!(" + err.ToString() + ")", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception err)
            {
                InstanceForm.BDatabase.RollbackTransaction();
                MessageBox.Show(this, "保存数据失败!(" + err.ToString() + ")", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #4
0
        private void btnOk_Click(object sender, System.EventArgs e)
        {
            if (this.BabyID == 0 && (txtXY.Text.Trim() == "" || Convertor.IsNull(txtXY.Tag, "") == ""))
            {
                MessageBox.Show("出院诊断不完整!");
                return;
            }
            #region//Add by Zouchihua 2011-11-18 判断病人的当前科室是不是属于本院区,获得病人所在科室机构编码
            string[] rtnSql = ts_zyhs_classes.BaseFunc.GetBrzt(BinID);


            //Modify by zouchihfua 2011-11-16  病人所在科室机构编码
            //string[] rtnSql = ts_zyhs_classes.BaseFunc.GetBrzt(BinID);
            int BrJgbm = Convert.ToInt32(rtnSql[1]);
            #endregion
            //Modify By Tany 2010-06-08 是否使用密码确认 0=使用 1=不使用
            if (new SystemCfg(6023).Config == "0")
            {
                string dlgvalue = DlgPW.Show();
                string pwStr    = dlgvalue; //YS.Password;
                bool   bOk      = InstanceForm._currentUser.CheckPassword(pwStr);
                if (!bOk)
                {
                    FrmMessageBox.Show("你没有通过权限确认,不能提交该医嘱!", new Font("宋体", 12f), Color.Red, "Sorry!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
            }

            if (this.BabyID == 0 && ybjklx == 40 && yblx >= 0)
            {
                //医保病人必须有医保诊断
                if (string.IsNullOrEmpty(Convertor.IsNull(lblYbjbbm.Tag, "")))
                {
                    MessageBox.Show("医保病人:未找到西医诊断的医保编码,请重新选择西医诊断!");
                    return;
                }
            }


            //出院医嘱提醒  modify by jchl   2015-09-30
            OutHosp.isZg(lblZyh.Text.Trim(), FrmMdiMain.Database);

            string er            = "";
            long   Order_Num     = myQuery.GetYzNum(this.BinID, this.DeptID);
            long   OrderNumCount = Order_Num + 1;
            int    num           = 0;//末日次数
            FrmMdiMain.Database.BeginTransaction();
            try
            {
                //构成SQL语句,并执行,默认婴儿ID为0,医嘱录入人为医生本人,默认病人科室为医生科室,中草药剂量默认为1,操作员为医生本人
                //武汉中心医院转科、出院、死亡医嘱存储到临时医嘱 Moidify by jchl
                string sSql = "INSERT INTO ZY_ORDERRECORD(" +
                              "order_id,Group_ID,Inpatient_ID,Dept_ID,Ward_ID,MNGTYPE,nType,Order_Doc," +
                              "HOItem_ID,xmly,Order_context,Num,Dosage,Unit,book_date," +
                              "Order_bDate,First_times,Order_Usage,frequency," +
                              "Operator,Delete_Bit,status_flag,baby_id,dept_br,exec_dept,serial_no,jgbm)" +
                              " VALUES('" + PubStaticFun.NewGuid() + "'," + OrderNumCount.ToString() + ",'" + BinID.ToString() + "'," + this.DeptID.ToString() + ",'" + this.WardID + "',1,0," + this.YS_ID.ToString() + "," +
                              "-1,2,'病人死亡',0,1,'',GetDate(),'" + this.dTimePicker1.Value.ToString() + "',1,'','1'," +
                              "" + this.YS_ID.ToString() + ",0,1," + "0" + "," + this.DeptID.ToString() + "," + this.DeptID.ToString() + ",0," + BrJgbm + ") ";

                FrmMdiMain.Database.DoCommand(sSql);

                string sSql0 = "update zy_inpatient set out_mode=4,out_date='" + this.dTimePicker1.Value.ToString() + "',out_diagnosis='" + Convertor.IsNull(txtXY.Tag, "") + "'," +
                               "flag=4 where inpatient_id='" + this.BinID.ToString() + "'";
                FrmMdiMain.Database.DoCommand(sSql0);

                if (this.BabyID == 0)
                {
                    //Modify by jchl 优先删除该病人的废的第1诊断
                    string sqlDelZd = string.Format(@"delete from ZY_DISEASE_MANY where INPATIENT_ID='{0}' and DISEASE_MARK='第1诊断'", this.BinID.ToString());
                    FrmMdiMain.Database.DoCommand(sqlDelZd);

                    //Modify by jchl 新增第一诊断
                    sSql = String.Format(@" INSERT INTO ZY_DISEASE_MANY (INPATIENT_ID ,INPATIENT_NO ,BABY_ID ,DISEASE_MARK ,DISEASE_CODE ,DISEASE_NAME ,JGBM,YBJBBM,YBJBMC) 
                VALUES ('{0}','{1}','{2}','{3}','{4}','{5}',{6},'{7}','{8}')",
                                         this.BinID.ToString(), lblZyh.Text.Trim(), "0", "第1诊断", Convertor.IsNull(txtXY.Tag, ""), txtXY.Text, BrJgbm, Convertor.IsNull(lblYbjbbm.Tag, ""), lblYbjbbm.Text);
                    FrmMdiMain.Database.DoCommand(sSql);
                }

                if (this.radBt1.Checked == true)
                {
                    num = -1;
                }
                else
                {
                    num = Convert.ToInt16(this.numUD.Value);
                }
                //
                //停医嘱
                myQuery.StopOrders(FrmMdiMain.Database, this.dTimePicker1.Value.ToString(), this.YS_ID, this.BinID, this.BabyID, num);
                //停账单
                myQuery.StopOrders_ZD(FrmMdiMain.Database, this.dTimePicker1.Value.ToString(), this.YS_ID, this.BinID, this.BabyID, num, 0);

                FrmMdiMain.Database.CommitTransaction();
                outType = true;

                string msg_wardid = InstanceForm._currentDept.WardId;
                long   msg_deptid = 0;
                long   msg_empid  = 0;
                string msg_sender = FrmMdiMain.CurrentDept.DeptName + ":" + FrmMdiMain.CurrentUser.Name;
                string msg_msg    = lblBedNo.Text + " 床 " + lblName.Text + " 有死亡医嘱,请处理!";
                TrasenFrame.Classes.WorkStaticFun.SendMessage(true, SystemModule.住院护士站, msg_wardid, msg_deptid, msg_empid, msg_sender, msg_msg);
            }
            catch (Exception err)
            {
                FrmMdiMain.Database.RollbackTransaction();
                MessageBox.Show("生成死亡医嘱错误!请重试!\n" + err.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                er = err.ToString();
                this.Close();
            }
            finally
            {
                //				_Database.Close();
                if (er.Trim() == "")
                {
                    myQuery.SaveLog(this.DeptID, this.YS_ID, "开死亡医嘱", this.BinID.ToString() + ": " + txtXY.Text.Trim() + ",死亡时间" + this.dTimePicker1.Value.ToString() + ",末日次数:" + num.ToString(), 0, 41);
                }
                else
                {
                    myQuery.SaveLog(this.DeptID, this.YS_ID, "死亡医嘱失败", this.BinID.ToString() + ":" + er.Trim() + " ⊙" + txtXY.Text.Trim() + ",死亡时间" + this.dTimePicker1.Value.ToString() + ",末日次数:" + num.ToString(), 1, 41);
                }
            }

            //FrmYZGL.outType=true;
            Ts_zyys_main.frmMain.outflag = true;
            this.Close();
        }
Beispiel #5
0
        private void btnSave_Click(object sender, System.EventArgs e)
        {
            if (MessageBox.Show("是否确定保存静脉采血相关费用?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            IsSave = true;

            string    sSql     = "";
            string    strSql   = "";
            DataTable myTempTb = new DataTable();
            bool      IsErr    = false;
            DataTable myTb     = (DataTable)myDataGrid1.DataSource;

            //取静脉采血费
            sSql = @"Select a.order_id,a.order_name,a.order_unit,a.order_type " +
                   "from jc_hoitemdiction a,jc_CONFIG b " +
                   "where a.order_id=convert(bigint,b.config) and b.id=7015 ";
            DataTable myJTb = InstanceForm.BDatabase.GetDataTable(sSql);

            //取静脉采血管费
            sSql = @"Select a.order_id,a.order_name,a.order_unit,a.order_type " +
                   "from jc_hoitemdiction a,jc_CONFIG b " +
                   "where a.order_id=convert(bigint,b.config) and b.id=7016";
            DataTable myGTb = InstanceForm.BDatabase.GetDataTable(sSql);

            //如果没有设置静脉采血费代码,将不插入煎药费
            if (myJTb.Rows.Count == 0 || myJTb == null)
            {
                MessageBox.Show("没有设置静脉采血费代码,请手工输入静脉采血费!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                IsErr = true;
            }
            else if (myGTb.Rows.Count == 0 || myGTb == null)
            {
                MessageBox.Show("没有设置静脉采血管代码,请手工输入静脉采血管费!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                IsErr = true;
            }
            else
            {
                decimal v_hoitem_id     = Convert.ToDecimal(myJTb.Rows[0]["order_id"].ToString());
                string  v_order_context = myJTb.Rows[0]["order_name"].ToString().Trim();
                string  v_unit          = myJTb.Rows[0]["order_unit"].ToString().Trim();
                int     v_order_type    = Convert.ToInt32(myJTb.Rows[0]["order_type"].ToString().Trim());

                decimal v_hoitem_id1     = Convert.ToDecimal(myGTb.Rows[0]["order_id"].ToString());
                string  v_order_context1 = myGTb.Rows[0]["order_name"].ToString().Trim();
                string  v_unit1          = myGTb.Rows[0]["order_unit"].ToString().Trim();
                int     v_order_type1    = Convert.ToInt32(myGTb.Rows[0]["order_type"].ToString().Trim());

                int i    = 0;
                int iYZH = 0;

//				//生成数据访问对象
//				RelationalDatabase database=RelationalDatabase.GetDatabase(DatabaseType.IbmDb2ZY);
//				database.Initialize("");
//				database.Open();
//				//开始一个事物
//				database.BeginTransaction();

                InstanceForm.BDatabase.BeginTransaction();

                try
                {
                    for (i = 0; i < myTb.Rows.Count; i++)
                    {
                        if (myTb.Rows[i]["采血费次数"].ToString().Trim() != "0" && myTb.Rows[i]["采血费次数"].ToString().Trim() != "")
                        {
                            //取组号
                            sSql = @"select max(Group_Id) as YZH " +
                                   "  from Zy_OrderRecord " +
                                   " where inpatient_id='" + myTb.Rows[i]["inpatient_id"].ToString().Trim() + "'" +
                                   "       and baby_id=" + myTb.Rows[i]["baby_id"].ToString().Trim();                              //+
//								"       and mngtype=3";
                            myTempTb.Clear();
                            myTempTb = InstanceForm.BDatabase.GetDataTable(sSql);
                            if (myTempTb.Rows[0]["YZH"].ToString().Trim() == "")
                            {
                                iYZH = 0;
                            }
                            else
                            {
                                iYZH = Convert.ToInt32(myTempTb.Rows[0]["YZH"]) + 1;
                            }

                            //插入医嘱记录表
                            strSql = @"INSERT INTO ZY_ORDERRECORD( " +
                                     "order_id,jgbm,xmly,INPATIENT_ID,Baby_ID,WARD_ID,DEPT_BR,DEPT_ID, " +
                                     "MNGTYPE,ORDER_BDATE,GROUP_ID,NTYPE, " +
                                     "HOITEM_ID,ORDER_CONTEXT,NUM,DOSAGE,UNIT,ORDER_USAGE,FREQUENCY, " +
                                     "EXEC_DEPT,FIRST_TIMES,STATUS_FLAG, " +
                                     "AUDITING_USER,AUDITING_DATE,OPERATOR,BOOK_DATE,SERIAL_NO ) " +
                                     "VALUES('" + PubStaticFun.NewGuid() + "'," + FrmMdiMain.Jgbm + ",2, '" +
                                     myTb.Rows[i]["inpatient_id"].ToString().Trim() + "'," + Convert.ToDecimal(myTb.Rows[i]["baby_id"].ToString().Trim()) +
                                     ",'" + InstanceForm.BCurrentDept.WardId + "'," + Convert.ToDecimal(myTb.Rows[i]["dept_br"].ToString().Trim()) + "," + Convert.ToDecimal(myTb.Rows[i]["dept_id"].ToString().Trim()) +
                                     ",3,getdate()," + iYZH.ToString() + "," + v_order_type + "," +
                                     v_hoitem_id + ",'" + v_order_context + "'," + myTb.Rows[i]["采血费次数"] + ",1,'" + v_unit + "','',''," +
                                     Convert.ToDecimal(myTb.Rows[i]["dept_br"].ToString().Trim()) + ", 1,2," +
                                     InstanceForm.BCurrentUser.EmployeeId + ",getdate() ," + InstanceForm.BCurrentUser.EmployeeId + ",getdate(),0)";

                            InstanceForm.BDatabase.DoCommand(strSql);
                        }
                        //Add By Tany 2004-11-13
                        if (myTb.Rows[i]["采血管次数"].ToString().Trim() != "0" && myTb.Rows[i]["采血管次数"].ToString().Trim() != "")
                        {
                            //取组号
                            sSql = @"select max(Group_Id) as YZH " +
                                   "  from Zy_OrderRecord " +
                                   " where inpatient_id='" + myTb.Rows[i]["inpatient_id"].ToString().Trim() + "'" +
                                   "       and baby_id=" + myTb.Rows[i]["baby_id"].ToString().Trim();                              //+
//								"       and mngtype=3";
                            myTempTb.Clear();
                            myTempTb = InstanceForm.BDatabase.GetDataTable(sSql);
                            if (myTempTb.Rows[0]["YZH"].ToString().Trim() == "")
                            {
                                iYZH = 0;
                            }
                            else
                            {
                                iYZH = Convert.ToInt32(myTempTb.Rows[0]["YZH"]) + 1;
                            }

                            //插入医嘱记录表
                            strSql = @"INSERT INTO ZY_ORDERRECORD( " +
                                     "order_id,jgbm,xmly,INPATIENT_ID,Baby_ID,WARD_ID,DEPT_BR,DEPT_ID, " +
                                     "MNGTYPE,ORDER_BDATE,GROUP_ID,NTYPE, " +
                                     "HOITEM_ID,ORDER_CONTEXT,NUM,DOSAGE,UNIT,ORDER_USAGE,FREQUENCY, " +
                                     "EXEC_DEPT,FIRST_TIMES,STATUS_FLAG, " +
                                     "AUDITING_USER,AUDITING_DATE,OPERATOR,BOOK_DATE,SERIAL_NO ) " +
                                     "VALUES( '" + PubStaticFun.NewGuid() + "'," + FrmMdiMain.Jgbm + ",2,'" +
                                     myTb.Rows[i]["inpatient_id"].ToString().Trim() + "'," + myTb.Rows[i]["baby_id"].ToString().Trim() +
                                     ",'" + InstanceForm.BCurrentDept.WardId + "'," + Convert.ToDecimal(myTb.Rows[i]["dept_br"].ToString().Trim()) + "," + Convert.ToDecimal(myTb.Rows[i]["dept_id"].ToString().Trim()) +
                                     ",3,getdate()," + iYZH.ToString() + "," + v_order_type1 + "," +
                                     v_hoitem_id1 + ",'" + v_order_context1 + "'," + myTb.Rows[i]["采血管次数"] + ",1,'" + v_unit1 + "','',''," +
                                     Convert.ToDecimal(myTb.Rows[i]["dept_br"].ToString().Trim()) + ", 1,2," +
                                     InstanceForm.BCurrentUser.EmployeeId + ",getdate() ," + InstanceForm.BCurrentUser.EmployeeId + ",getdate(),0)";

                            InstanceForm.BDatabase.DoCommand(strSql);
                        }
                    }

                    InstanceForm.BDatabase.CommitTransaction();
                }
                catch (Exception err)
                {
                    InstanceForm.BDatabase.RollbackTransaction();

                    //写错误日志 Add By Tany 2005-01-12
                    SystemLog _systemErrLog = new SystemLog(-1, InstanceForm.BCurrentDept.DeptId, InstanceForm.BCurrentUser.EmployeeId, "程序错误", "保存静脉采血费用错误:" + err.Message + "  Source:" + err.Source, DateManager.ServerDateTimeByDBType(InstanceForm.BDatabase), 1, "主机名:" + System.Environment.MachineName, 39);
                    _systemErrLog.Save();
                    _systemErrLog = null;

                    MessageBox.Show("错误:将静脉采血相关费用插入临时账单错误,请手工生成静脉采血相关费用!\n系统:" + err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    IsErr = true;
                }

//				database.Close();
            }

            if (IsErr == false)
            {
                MessageBox.Show("已经成功生成静脉采血相关费用临时账单!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            this.Close();
        }
Beispiel #6
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtYlzh.Text.Trim()))
            {
                MessageBox.Show("医疗证号不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtYlzh.Focus();
                txtYlzh.Select();
                return;
            }

            if (string.IsNullOrEmpty(txtLdh.Text.Trim()))
            {
                MessageBox.Show("联单号不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtLdh.Focus();
                txtLdh.Select();
                return;
            }

            if (string.IsNullOrEmpty(txtYfXe.Text.Trim()))
            {
                MessageBox.Show("药费限额 不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtYfXe.Focus();
                txtYfXe.Select();
                return;
            }

            if (string.IsNullOrEmpty(txtQtXe.Text.Trim()))
            {
                MessageBox.Show("其他限额 不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtQtXe.Focus();
                txtQtXe.Select();
                return;
            }

            decimal dOut = 0M;

            if (!decimal.TryParse(txtYfXe.Text.Trim(), out dOut))
            {
                MessageBox.Show("药费限额 必须为数值格式", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtYfXe.Focus();
                txtYfXe.Select();
                return;
            }

            if (!decimal.TryParse(txtQtXe.Text.Trim(), out dOut))
            {
                MessageBox.Show("其他限额 必须为数值格式", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtQtXe.Focus();
                txtQtXe.Select();
                return;
            }

            if (MessageBox.Show("是否确认操作?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Cancel)
            {
                return;
            }

            string yblx = cmbYblx.SelectedValue.ToString();
            string ylzh = txtYlzh.Text;
            string ldh  = txtLdh.Text;

            string ssql = "";

            try
            {
                ssql = string.Format(@"select count(1) as Num from  gf_ld_mzsh where yblx='{0}' and ylzh='{1}' and ldh='{2}' and del_bit=0", yblx, ylzh, ldh);

                int iNum = Convert.ToInt32(FrmMdiMain.Database.GetDataResult(ssql).ToString());

                if (_bAdd)
                {
                    if (iNum > 0)
                    {
                        throw new Exception("医疗证号:" + ylzh + " 联单号:" + ldh + " 已存在授权信息,请直接修改原授权记录!");
                    }

                    ssql = string.Format(@"insert into gf_ld_mzsh (id,yblx,ylzh,ldh,yf_xe,qt_xe,apply_date,memo)
                                            values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')",
                                         PubStaticFun.NewGuid(), yblx, ylzh, ldh, txtYfXe.Text.Trim(), txtQtXe.Text.Trim(), DateTime.Now, txtMemo.Text);

                    FrmMdiMain.Database.DoCommand(ssql);
                }
                else
                {
                    if (iNum <= 0)
                    {
                        throw new Exception("医疗证号:" + ylzh + " 联单号:" + ldh + " 不存在授权记录,请先新增授权记录!");
                    }

                    ssql = string.Format(@"update gf_ld_mzsh set 
                                            yf_xe='{3}',
                                            qt_xe='{4}',
                                            Mod_man='{5}',
                                            Mod_date='{6}'
                                            where yblx='{0}' and ylzh='{1}' and ldh='{2}' and del_bit=0   "
                                         , yblx, ylzh, ldh, txtYfXe.Text.Trim(), txtQtXe.Text.Trim(), FrmMdiMain.CurrentUser.EmployeeId, DateTime.Now);

                    FrmMdiMain.Database.DoCommand(ssql);
                }

                DoQueryLdChk();
                MessageBox.Show("操作成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("保存出错" + "\r\r" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
        }