/// <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 { } } } } }
/// <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 } }