Example #1
0
File: yjsq.cs Project: Wooyme/HIS-1
        /// <summary>
        /// 保存申请
        /// </summary>
        /// <param name="hjmx">要保存的申请</param>
        /// <param name="oldcfmx">原始处方明细,如果是新增,则为null</param>
        public void SaveSQ(hjcf cf, hjcfmx hjmx, DataTable oldcfmx)
        {
            yjxm yjxm = NewYJXM(hjmx.yzid);

            if (yjxm == null)
            {
                //不是医技类医嘱,不保存到医技申请表,但需要考虑如果是将原来的医技医嘱改为普通医嘱的情况,需要将原医技申请删除
                if (cf.hjid != Guid.Empty && hjmx.hjmxid != Guid.Empty)
                {
                    DataRow rowSQ = mzys_yjsq.GetYjsqInfo(cf.hjid, hjmx.hjmxid, hjmx.yzid, hjmx.tcid, database);
                    if (rowSQ != null)
                    {
                        Guid YjsqId = new Guid(rowSQ["YJSQID"].ToString());
                        mzys_yjsq.DeleteDj(YjsqId, Guid.Empty, Guid.Empty, string.Empty, string.Empty, database);
                    }
                }
                return;
            }
            yjxm._lczd = cf.zdmc;
            yjxm._sqnr = hjmx.yzmc;
            yjxm._sqrq = cf.cfrq;
            yjxm._sqr  = cf.ysdm;
            yjxm._sqks = cf.ksdm;

            Guid   _NewYjsqID = Guid.Empty;
            int    _err_code  = 0;
            string _err_text  = "";

            if (cf.hjid == Guid.Empty && hjmx.hjmxid == Guid.Empty)
            {
                //新开立的医技类医嘱
                mzys_yjsq.Save(Guid.Empty, TrasenFrame.Forms.FrmMdiMain.Jgbm, cf.brxxid, cf.ghxxid, cf.jzid, cf.blh, yjxm._Djlx, yjxm._sqrq, yjxm._sqr, yjxm._sqks,
                               yjxm._sqnr, hjmx.dj, hjmx.sl, hjmx.yldw.Trim(), hjmx.je, hjmx.pcmc, yjxm._bsjc, yjxm._lczd, cf.zxks, yjxm._bbmc, yjxm._zysx, yjxm._jjbz, cf.NewHjid,
                               hjmx.yzid, hjmx.NewHjmxid, out _NewYjsqID, out _err_code, out _err_text, database);
                if (_NewYjsqID == Guid.Empty || _err_code != 0)
                {
                    throw new Exception(_err_text);
                }
            }
            else if (cf.hjid != Guid.Empty)
            {
                //获取医技申请信息
                DataRow rowSQ = mzys_yjsq.GetYjsqInfo(cf.hjid, hjmx.hjmxid, hjmx.yzid, hjmx.tcid, database);
                if (rowSQ != null)
                {
                    Guid YjsqId  = new Guid(rowSQ["YJSQID"].ToString());
                    long yyzxmid = Convert.ToInt64(rowSQ["YZXMID"]);  //原医嘱项目ID
                    if (hjmx.hjmxid == Guid.Empty)
                    {
                        mzys_yjsq.Save(Guid.Empty, TrasenFrame.Forms.FrmMdiMain.Jgbm, cf.brxxid, cf.ghxxid, cf.jzid, cf.blh, yjxm._Djlx, yjxm._sqrq, yjxm._sqr, yjxm._sqks,
                                       yjxm._sqnr, hjmx.dj, hjmx.sl, hjmx.yldw.Trim(), hjmx.je, hjmx.pcmc, yjxm._bsjc, yjxm._lczd, cf.zxks, yjxm._bbmc, yjxm._zysx, yjxm._jjbz, cf.NewHjid,
                                       hjmx.yzid, hjmx.NewHjmxid, out _NewYjsqID, out _err_code, out _err_text, database);
                        if (_NewYjsqID == Guid.Empty || _err_code != 0)
                        {
                            throw new Exception(_err_text);
                        }
                    }
                    else
                    {
                        //修改申请
                        if (hjmx.tcid == 0)
                        {
                            if (hjmx.yzid != yyzxmid)
                            {
                                //与原医嘱不同,则需要删除原申请
                                mzys_yjsq.DeleteDj(YjsqId, Guid.Empty, Guid.Empty, string.Empty, string.Empty, database);
                                YjsqId = Guid.Empty;
                            }
                            mzys_yjsq.Save(YjsqId, TrasenFrame.Forms.FrmMdiMain.Jgbm, cf.brxxid, cf.ghxxid, cf.jzid, cf.blh, yjxm._Djlx, yjxm._sqrq, yjxm._sqr, yjxm._sqks,
                                           yjxm._sqnr, hjmx.dj, hjmx.sl, hjmx.yldw.Trim(), hjmx.je, hjmx.pcmc, yjxm._bsjc, yjxm._lczd, cf.zxks, yjxm._bbmc, yjxm._zysx, yjxm._jjbz, cf.NewHjid,
                                           hjmx.yzid, hjmx.NewHjmxid, out _NewYjsqID, out _err_code, out _err_text, database);
                            if (_NewYjsqID == Guid.Empty || _err_code != 0)
                            {
                                throw new Exception(_err_text);
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// 保存划价处方头表
        /// </summary>
        /// <param name="cf">处方头对象</param>
        /// <param name="_DataBase">数据库访问类</param>
        /// <remarks>add by wangzhi 2014-08-20,存储过程的方法放弃不用</remarks>
        public static void SaveCf(classes.hjcf cf, RelationalDatabase _DataBase)
        {
            cf.err_code = -1;
            #region 关键数据有效性检查
            if (string.IsNullOrEmpty(cf.blh))
            {
                cf.err_text = "门诊号为空,请检查";
                return;
            }

            if (cf.ksdm <= 0)
            {
                cf.err_text = "存在没有开单科室的处方,请检查";
                return;
            }
            #endregion

            if (cf.hjid == Guid.Empty)
            {
                #region 新增划价处方记录
                Guid   newHjid = Fun.GetGuidFromDB(_DataBase);
                string strSql  = "insert into mz_hjb(hjid,BRXXID,GHXXID,BLH,CFRQ,HJY,HJCK,YSDM,KSDM,ZYKSDM,CFJE,ZXKS,XMLY,CFJS,jgbm,byscf,jzid,wkdz,zdmc,FLAG,mbid)";
                strSql = strSql + " values(@Newhjid,@BRXXID,@GHXXID,@BLH,@CFRQ,@HJY,@HJCK,@YSDM,@KSDM,@ZYKSDM,@CFJE,@ZXKS,@XMLY,@CFJS,@jgbm,@byscf,@jzid,@wkdz,@zdmc,@flag,@mbid)";

                IDbCommand command = _DataBase.GetCommand();
                command.CommandText = strSql;
                command.CommandType = CommandType.Text;
                #region 参数
                command.Parameters.Add(Fun.NewCommandParameter(command, "@Newhjid", newHjid));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@BRXXID", cf.brxxid));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@GHXXID", cf.ghxxid));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@BLH", cf.blh));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@CFRQ", cf.cfrq));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@HJY", cf.hjy));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@HJCK", cf.hjck));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@YSDM", cf.ysdm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@KSDM", cf.ksdm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@ZYKSDM", cf.zyksdm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@CFJE", cf.cfje));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@ZXKS", cf.zxks));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@XMLY", cf.xmly));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@CFJS", cf.cfjs));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@jgbm", cf.jgbm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@byscf", cf.byscf));
                if (cf.jzid == Guid.Empty)
                {
                    command.Parameters.Add(Fun.NewCommandParameter(command, "@jzid", null));
                }
                else
                {
                    command.Parameters.Add(Fun.NewCommandParameter(command, "@jzid", cf.jzid));
                }
                command.Parameters.Add(Fun.NewCommandParameter(command, "@wkdz", PubStaticFun.GetMacAddress()));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@zdmc", cf.zdmc));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@flag", cf.flag));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@mbid", cf.mbid));
                #endregion
                if (_DataBase.IsInTransaction)
                {
                    command.Transaction = _DataBase.GetTransaction();
                }
                int ret = command.ExecuteNonQuery();
                if (ret == 0)
                {
                    cf.err_text = "新增处方失败,受影响行数0";
                    return;
                }
                cf.NewHjid  = newHjid;
                cf.err_code = 0;
                cf.err_text = "新增成功";
                return;

                #endregion
            }
            else
            {
                #region 修改划价处方记录
                //--如果修改套餐,则先删除他下面的所有明细
                if (cf.tcid > 0)
                {
                    _DataBase.DoCommand(string.Format("delete from mz_hjb_mx where hjid='{0}'", cf.hjid));
                }

                IDbCommand command = _DataBase.GetCommand();
                command.CommandType = CommandType.Text;
                command.CommandText = "UPDATE MZ_HJB SET YSDM=@YSDM,KSDM=@KSDM,ZYKSDM=@ZYKSDM,CFJE=@CFJE,ZXKS=@ZXKS,XMLY=@XMLY,CFJS=@CFJS,wkdz=@wkdz,zdmc=@zdmc ,FLAG =@flag where bsfbz=0 and bfybz=0 and hjid=@Hjid and xmly=@xmly";
                #region 参数
                command.Parameters.Add(Fun.NewCommandParameter(command, "@YSDM", cf.ysdm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@KSDM", cf.ksdm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@ZYKSDM", cf.zyksdm));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@CFJE", cf.cfje));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@ZXKS", cf.zxks));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@XMLY", cf.xmly));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@CFJS", cf.cfjs));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@wkdz", PubStaticFun.GetMacAddress()));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@zdmc", cf.zdmc));
                command.Parameters.Add(Fun.NewCommandParameter(command, "@flag", cf.flag));
                //command.Parameters.Add( Fun.NewCommandParameter( command , "@cfcylyy" , cf.cfcylyy ) );
                command.Parameters.Add(Fun.NewCommandParameter(command, "@Hjid", cf.hjid));
                #endregion
                if (_DataBase.IsInTransaction)
                {
                    command.Transaction = _DataBase.GetTransaction();
                }
                int ret = command.ExecuteNonQuery();
                if (ret == 0)
                {
                    cf.err_text = "保存处方失败,受影响行数0,可能该处方已收费或已发药,请刷新后重试'";
                    return;
                }
                cf.NewHjid  = cf.hjid;
                cf.err_code = 0;
                cf.err_text = "保存成功";
                #endregion
            }
        }