Exemplo n.º 1
0
        ///门诊结算修改his标记
        /// </summary>
        public static void modifyMZJSBJ(Dictionary <string, string> sqlParam)
        {
            if (sqlParam == null || sqlParam.Count == 0)
            {
                XnhLogger.log("modifyMZCZBJ sqlParam参数为空");
                return;
            }
            string sql = "UPDATE cl_recipe SET yb_up = '1',"
                         + "yb_caseno = '+此处结算返回的门诊登记流水号(不知道参数在哪里取)+' "
                         + "where rec_no in ('$REC_NO$') and reg_no in ('$REG_NO$') ";

            try
            {
                sql = sql.Replace("0", (sqlParam.ContainsKey("yb_up") == true ? sqlParam["yb_up"] : ""));
                sql = sql.Replace("$REC_NO$", (sqlParam.ContainsKey("rec_no") == true ? sqlParam["rec_no"] : ""));
                sql = sql.Replace("$REG_NO$", (sqlParam.ContainsKey("reg_no") == true ? sqlParam["reg_no"] : ""));
                DBUtil.updateExecute(sql);
            }
            catch (Exception ex)
            {
                XnhLogger.log(ex.ToString() + " SQL:" + sql);
            }
        }
Exemplo n.º 2
0
        ///住院发票打印
        /// </summary>
        public static DataTable printZYFP(string fpdy)
        {
            string sql = "";

            try
            {
                sql = "select a.name, "   //--姓名
                      + "a.ip_no, "       //--住院号
                      + "a.D505_02, "     //-- 住院登记流水号
                      + "a.TOTAL_COSTS, " // --住院总费用
                      + "a.TOTAL_CHAGE, " //--住院可补偿金额
                      + "a.ZF_COSTS,  "   // --住院自费费用
                      + "b.area_code "    //--地区编码
                      + "from ZYJS a left join ZYBC b on a.ip_no = b.D504_01 where ip_no = '" + fpdy + "'";
                DataTable dt = DBUtil.queryExecute(sql);
                return(dt);
            }
            catch (Exception ex)
            {
                XnhLogger.log("发票信息提取:sql=" + sql + " 异常:" + ex.StackTrace);
            }
            return(null);
        }
Exemplo n.º 3
0
        ///入院登记修改对应his标记
        /// </summary>
        public static void modifyRYDJ(Dictionary <string, string> sqlParam)
        {
            if (sqlParam == null || sqlParam.Count == 0)
            {
                XnhLogger.log("modifyRYDJ sqlParam参数为空");
                return;
            }
            string sql = "UPDATE ip_register SET up_flag = '$up_flag$' "  //入院登记成功改成‘1’
                         + "where REG_NO ='$reg_no$' ";

            try
            {
                sql = sql.Replace("$up_flag$", (sqlParam.ContainsKey("up_flag") == true ? sqlParam["up_flag"] : ""));

                sql = sql.Replace("$reg_no$", (sqlParam.ContainsKey("reg_no") == true ? sqlParam["reg_no"] : ""));

                DBUtil.updateExecute(sql);
            }
            catch (Exception ex)
            {
                XnhLogger.log(ex.ToString() + " SQL:" + sql);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 修改入院登记更新入院诊断
        /// </summary>
        /// <param name="sqlParam"></param>
        public static void xgZYBC(Dictionary <string, string> sqlParam)
        {
            if (sqlParam == null || sqlParam.Count == 0)
            {
                XnhLogger.log("xgZYBC sqlParam参数为空");
                return;
            }
            //update zybc set D504_21 = D504_21 WHERE D401_10 = D401_10 AND D401_21 = D401_21;
            string sql = "UPDATE zybc t SET t.D504_21='$D504_21$' WHERE t.D401_10 = '$D401_10$' AND t.D401_21 = '$D401_21$'";

            try
            {
                sql = sql.Replace("$D401_10$", (sqlParam.ContainsKey("D401_10") == true ? sqlParam["D401_10"] : ""));
                sql = sql.Replace("$D401_21$", (sqlParam.ContainsKey("D401_21") == true ? sqlParam["D401_21"] : ""));
                sql = sql.Replace("$D504_21$", (sqlParam.ContainsKey("D504_21") == true ? sqlParam["D504_21"] : ""));

                DBUtil.updateExecute(sql);
            }
            catch (Exception ex)
            {
                XnhLogger.log(ex.ToString() + " SQL:" + sql);
            }
        }
Exemplo n.º 5
0
        public static void updateMZBC(Dictionary <string, string> sqlParam)
        {
            if (sqlParam == null || sqlParam.Count == 0)
            {
                XnhLogger.log("updateMZBC sqlParam参数为空");
                return;
            }

            string sql = "UPDATE mzbc t SET t.T_D502_01='$T_D502_01$' WHERE t.D401_10 = '$D401_10$' AND t.D401_21 = '$D401_21$'";

            try
            {
                sql = sql.Replace("$D401_10$", (sqlParam.ContainsKey("D401_10") == true ? sqlParam["D401_10"] : ""));
                sql = sql.Replace("$D401_21$", (sqlParam.ContainsKey("D401_21") == true ? sqlParam["D401_21"] : ""));
                sql = sql.Replace("$T_D502_01$", (sqlParam.ContainsKey("T_D502_01") == true ? sqlParam["T_D502_01"] : ""));

                DBUtil.updateExecute(sql);
            }
            catch (Exception ex)
            {
                XnhLogger.log(ex.ToString() + " SQL:" + sql);
            }
        }
Exemplo n.º 6
0
        public static DataTable cxzymx(string reg_no)
        {
            string sql = "";

            try
            {
                sql = "select "
                      + "b.ip_no, "                                                                                           //--住院号
                      + "a.item_code, "                                                                                       //--HIS项目编码
                      + "price, "                                                                                             //--HIS项目单价
                      + "(select wydm from xnh_dm where xnh_dm.item_code = a.item_code) as nh_bm, "                           //农合编码
                      + "(select bxbl from xnh_ypzl  where xnh_ypzl.wydm = d.wydm and d.item_code = a.item_code) as nh_bnw, " //--报销比例
                      + "qty, "                                                                                               //--HIS项目数量
                      + "total, "                                                                                             //--HIS项目总价格
                      + "bill_time, "                                                                                         //--记账时间
                      + "a.basic_cls, "                                                                                       //多条同批次缺库存,其他批次收费标志
                      + "pre_no, "                                                                                            //--医嘱编号
                      + "a.up_flag, "                                                                                         //--上传标志
                      + "standard, "                                                                                          //--规格
                      + "small_unit, "                                                                                        //--单位
                      + "(select item_cls from code_item where item_code=a.item_code ) as item_cls, "                         //--项目类型(1,2,3:药品 4,5,6,7,8,9:其他)
                      + "(select item_name from code_item where item_code=a.item_code ) as item_name "                        //--项目名称
                      + "from "
                      + "IP_BILL a left join IP_REGISTER b on a.reg_no=b.reg_no ,plus_item c left join xnh_dm d on c.item_code = d.item_code "
                      + "where "
                      + "c.item_code=a.item_code and c.type=3 and a.reg_no='" + reg_no + "' and a.up_flag is null "
                      + "order by bill_time,a.item_code ";

                DataTable dt = DBUtil.queryExecute(sql);
                return(dt);
            }
            catch (Exception ex)
            {
                XnhLogger.log("查询住院明细:sql=" + sql + " 异常:" + ex.StackTrace);
            }
            return(null);
        }
Exemplo n.º 7
0
        ///住院作废单个项目修改对应his标记
        /// </summary>
        public static void modifyZYZFBJ(Dictionary <string, string> sqlParam)
        {
            if (sqlParam == null || sqlParam.Count == 0)
            {
                XnhLogger.log("modifyZYCZBJ sqlParam参数为空");
                return;
            }
            string sql = "UPDATE ip_bill SET up_flag = '$up_flag$'"
                         + "where REG_NO ='$reg_no$' and pre_no = '$pre_no$' and bill_time = '$bill_time$' and basic_cls = '$basic_cls$'";

            try
            {
                sql = sql.Replace("$up_flag$", (sqlParam.ContainsKey("up_flag") == true ? sqlParam["up_flag"] : ""));
                sql = sql.Replace("$pre_no$", (sqlParam.ContainsKey("pre_no") == true ? sqlParam["pre_no"] : ""));
                sql = sql.Replace("$reg_no$", (sqlParam.ContainsKey("reg_no") == true ? sqlParam["reg_no"] : ""));
                sql = sql.Replace("$bill_time$", (sqlParam.ContainsKey("bill_time") == true ? sqlParam["bill_time"] : ""));
                sql = sql.Replace("$basic_cls$", (sqlParam.ContainsKey("basic_cls") == true ? sqlParam["basic_cls"] : ""));
                DBUtil.updateExecute(sql);
            }
            catch (Exception ex)
            {
                XnhLogger.log(ex.ToString() + " SQL:" + sql);
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// 存储门诊结算返回结果,后期做报表
        /// create table MZJS
        ///  (D401_02        VARCHAR2(18),     -- 成员姓名
        ///   T_D502_01      CHAR(30),       -- 门诊登记流水号
        ///   O_TOTAL_COSTS      NUMBER(8,2),      --总费用
        ///   O_ZF_COSTS         NUMBER(8,2),      --自费费用
        ///   O_TOTAL_CHAGE      NUMBER(8,2),     --合理费用
        ///   O_OUTP_FACC        NUMBER(8,2),     --帐户补偿
        ///   O_OUT_JJ	         NUMBER(8,2),	  --基金补偿
        ///   O_D503_09           NUMBER(8,2),    --核算补偿金额[实际补偿合计额)
        ///   D601_17_OUT	      NUMBER(8,2),	  --家庭账户支出
        ///   XY_OUT	         NUMBER(8,2),	 --西药补偿金额
        ///   ZCAOY_OUT	         NUMBER(8,2),	 --中草药补偿金额
        ///   ZCHENGY_OUT	     NUMBER(8,2),	 --中成药补偿金额
        ///   MZ_BILL_TIME       CHAR(30),        --门诊结算日期
        ///   AREA_NO            VARCHAR2(18)      --地区编码
        ///   )
        /// </summary>
        /// <param name="sqlParam"></param>
        public static void CCMZJS(Dictionary <string, string> sqlParam)
        {
            if (sqlParam == null || sqlParam.Count == 0)
            {
                XnhLogger.log("MZJS sqlParam参数为空");
                return;
            }
            string sql = "insert into MZJS(D401_02,T_D502_01,O_TOTAL_COSTS ,O_ZF_COSTS,O_TOTAL_CHAGE,O_OUTP_FACC,O_OUT_JJ,O_D503_09,D601_17_OUT,XY_OUT,ZCAOY_OUT,ZCHENGY_OUT,MZ_BILL_TIME,AREA_NO) "
                         + "values ('$D401_02$','$T_D502_01$','$O_TOTAL_COSTS$','$O_ZF_COSTS$','$O_TOTAL_CHAGE$','$O_OUTP_FACC$','$O_OUT_JJ$','$O_D503_09$','$D601_17_OUT$','$XY_OUT$','$ZCAOY_OUT$','$ZCHENGY_OUT$','$MZ_BILL_TIME$','$AREA_NO$')";

            ///依次是:成员姓名,门诊登记流水号,总费用,自费费用,合理费用,实际补偿金额,核算补偿金额[实际补偿合计额),本次起伏线,报销比例,大病支付额,单次补偿合计
            try
            {
                sql = sql.Replace("$D401_02$", (sqlParam.ContainsKey("D401_02") == true ? sqlParam["D401_02"] : ""));
                sql = sql.Replace("$T_D502_01$", (sqlParam.ContainsKey("T_D502_01") == true ? sqlParam["T_D502_01"] : ""));
                sql = sql.Replace("$O_TOTAL_COSTS$", (sqlParam.ContainsKey("O_TOTAL_COSTS") == true ? sqlParam["O_TOTAL_COSTS"] : ""));
                sql = sql.Replace("$O_ZF_COSTS$", (sqlParam.ContainsKey("O_ZF_COSTS") == true ? sqlParam["O_ZF_COSTS"] : ""));
                sql = sql.Replace("$O_TOTAL_CHAGE$", (sqlParam.ContainsKey("O_TOTAL_CHAGE") == true ? sqlParam["O_TOTAL_CHAGE"] : ""));
                sql = sql.Replace("$O_OUTP_FACC$", (sqlParam.ContainsKey("O_OUTP_FACC") == true ? sqlParam["O_OUTP_FACC"] : ""));
                sql = sql.Replace("$O_OUT_JJ$", (sqlParam.ContainsKey("O_OUT_JJ") == true ? sqlParam["O_OUT_JJ"] : ""));
                sql = sql.Replace("$O_D503_09$", (sqlParam.ContainsKey("O_D503_09") == true ? sqlParam["O_D503_09"] : ""));
                sql = sql.Replace("$D601_17_OUT$", (sqlParam.ContainsKey("D601_17_OUT") == true ? sqlParam["D601_17_OUT"] : ""));
                sql = sql.Replace("$XY_OUT$", (sqlParam.ContainsKey("XY_OUT") == true ? sqlParam["XY_OUT"] : ""));
                sql = sql.Replace("$ZCAOY_OUT$", (sqlParam.ContainsKey("ZCAOY_OUT") == true ? sqlParam["ZCAOY_OUT"] : ""));
                sql = sql.Replace("$ZCHENGY_OUT$", (sqlParam.ContainsKey("ZCHENGY_OUT") == true ? sqlParam["ZCHENGY_OUT"] : ""));
                sql = sql.Replace("$MZ_BILL_TIME$", (sqlParam.ContainsKey("MZ_BILL_TIME") == true ? sqlParam["MZ_BILL_TIME"] : ""));
                sql = sql.Replace("$AREA_NO$", (sqlParam.ContainsKey("AREA_NO") == true ? sqlParam["AREA_NO"] : ""));
                //sql = sql.Replace("$TOTAL_COSTS$", (sqlParam.ContainsKey("TOTAL_COSTS") == true ? sqlParam["TOTAL_COSTS"] : ""));
                DBUtil.updateExecute(sql);
                XnhLogger.log("存储门诊结算返回结果 SQL:" + sql);
            }
            catch (Exception ex)
            {
                XnhLogger.log(ex.ToString() + " SQL:" + sql);
            }
        }
Exemplo n.º 9
0
        public string zhyChaxun(string zyh)
        {
            string retStr = "";

            try
            {
                //todo:查询HIS
                string sql = "select a.name,(select fee_name from CODE_FEE where CODE_FEE.fee_code = a.FEE_CODE) as fee_name, " +
                             "a.ip_no, a.reg_no,(select name from CODE_SEX where CODE_SEX.code = a.sex) as sex, " +
                             "a.birth,a.age,a.cont_tel,a.cont_addr,a.op_time, " +
                             "(select oper_name from code_operator where oper_code = a.ip_dr) as ip_dr, " +
                             "a.ip_time,(select dept_name from code_department where dept_code = a.ip_dept) as dept " +
                             "from ip_register a " +
                             "where a.ip_no ='" + zyh + "'";

                DataTable dt = new DataTable();
                dt = DBUtil.queryExecute(sql);

                if ((dt == null) || (dt.Rows.Count == 0))
                {
                    retStr = DataConvert.getReturnJson("-1", "住院号不存在!");
                    return(retStr);
                }

                //todo:返回的DataTable数据,可以通过调用DataTable2Json转为JSON格式,方便前台JavaScript处理和绑定
                string msg = DataConvert.DataTable2Json(dt);
                retStr = DataConvert.getReturnJson("0", msg);
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " " + ex.StackTrace);
                retStr = DataConvert.getReturnJson("-1", ex.ToString());
            }
            XnhLogger.log(retStr);
            return(retStr);
        }
Exemplo n.º 10
0
        public string qxrydj(string AREA_NO, string D504_01)
        {
            string retStr = "";

            try
            {
                ZYBC_PROC_DELETE_NOTICE deleteNotice = new ZYBC_PROC_DELETE_NOTICE();
                deleteNotice.executeSql(new Dictionary <string, string>()
                {
                    { "AREA_NO", AREA_NO }, { "D504_01", D504_01 }
                });
                //0	成功
                //1	失败
                //删除成功: S_Returns= 0
                //删除失败:S_Returns= 1;错误信息   (分号分隔)
                if (deleteNotice.getExecuteStatus() == true)
                {
                    //删除HIS的登记信息
                    HIS.scZYBC(new Dictionary <string, string>()
                    {
                        { "D504_01", D504_01 }
                    });
                    retStr = DataConvert.getReturnJson("0", "删除入院登记成功");
                }
                else
                {
                    retStr = DataConvert.getReturnJson("-1", deleteNotice.getExecuteResultPlainString());
                }
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " " + ex.StackTrace);
                retStr = DataConvert.getReturnJson("-1", ex.ToString());
            }
            return(retStr);
        }
Exemplo n.º 11
0
        public string hzxmcx(string date, string query)
        {
            string retStr = "";

            try
            {
                string sql = " SELECT cl_CHARGE_RECIPE.REC_NO as REC_NO,CODE_OPERATOR.oper_name,PATIENTINFO.NAME ,CL_RECIPE.REC_TIME, " +
                             "CL_RECIPE.UP_FLAG,CL_RECIPE.REG_NO,CL_RECIPE.REG_NO as mzh, CL_CHARGE.CHRG_NO ,CL_CHARGE.CHRG_TIME, " +
                             "CL_CHARGE.OPER_CODE ,CL_CHARGE.TYPE ,CL_CHARGE.REC_FLAG ,CL_CHARGE.FEE_CODE ,CL_CHARGE.STATUS, " +
                             "WMSYS.WM_CONCAT(CL_CHARGE_INVOICE.INVO_NO) as INVO_NO, " +
                             "(select sum(total_sum) from CL_CHRGENTRY where chrg_no = CL_CHARGE.CHRG_NO) as total, " +
                             "max((select sum(total) from CL_RECENTRY where CL_RECENTRY.rec_no = CL_RECIPE.rec_no)) as total_rec,d.dept_name " +
                             "FROM CL_CHARGE , CL_CHARGE_INVOICE ,CL_CHARGE_RECIPE,CL_RECIPE , PATIENTINFO,CODE_OPERATOR , CODE_DEPARTMENT d " +
                             "WHERE ( CL_CHARGE.CHRG_NO = CL_CHARGE_INVOICE.CHRG_NO(+)) and (CL_CHARGE.CHRG_NO = CL_CHARGE_RECIPE.CHRG_NO) AND " +
                             "(CL_CHARGE_RECIPE.REC_NO = CL_RECIPE.REC_NO) AND (CL_RECIPE.PID = PATIENTINFO.PID) AND (CL_CHARGE_RECIPE.FLAG = '1') AND " +
                             "(CL_CHARGE.CLASS = '2' ) AND ((PATIENTINFO.NAME LIKE '%" + query + "%') or (INVO_NO like '%" + query + "%') ) AND " +
                             "(CL_CHARGE.CHRG_DATE >= '2016.01.01') AND (cl_CHARGE_RECIPE.TYPE = '2') and " +
                             "d.dept_code=CL_RECIPE.dept_code and CODE_OPERATOR.OPER_CODE=CL_RECIPE.dr_code " +
                             "group by cl_CHARGE_RECIPE.REC_NO,CODE_OPERATOR.oper_name,PATIENTINFO.NAME ,CL_RECIPE.REC_TIME, " +
                             "CL_RECIPE.UP_FLAG,CL_RECIPE.REG_NO,CL_CHARGE.CHRG_NO ,CL_CHARGE.CHRG_TIME ,CL_CHARGE.OPER_CODE ,CL_CHARGE.TYPE , " +
                             "CL_CHARGE.REC_FLAG ,CL_CHARGE.FEE_CODE ,CL_CHARGE.STATUS,d.dept_name " +
                             "order by cl_CHARGE_RECIPE.REC_NO ";
                DataTable dt = DBUtil.queryExecute(sql);
                // XnhLogger.log(dt.ReadXml);

                if ((dt == null) || (dt.Rows.Count == 0))
                {
                    retStr = DataConvert.getReturnJson("-1", "信息有误,请核实信息!");
                    return(retStr);
                }

                /*
                 * string sql = "select a.name,(select fee_name from CODE_FEE where CODE_FEE.fee_code = a.FEE_CODE) as fee_name, " +
                 *          "a.ip_no, a.reg_no,(select name from CODE_SEX where CODE_SEX.code = a.sex) as sex, " +
                 *          "a.birth,a.age,a.cont_tel,a.cont_addr,a.op_time, " +
                 *          "(select oper_name from code_operator where oper_code = a.ip_dr) as ip_dr, " +
                 *          "a.ip_time,(select dept_name from code_department where dept_code = a.ip_dept) as dept " +
                 *          "from ip_register a " +
                 *          "where a.ip_no ='" + zyh + "'";
                 *
                 * DataTable dt = new DataTable();
                 * dt = DBUtil.queryExecute(sql);
                 *
                 * if ((dt == null) || (dt.Rows.Count == 0))
                 * {
                 *  retStr = DataConvert.getReturnJson("-1", "住院号不存在!");
                 *  return retStr;
                 * }
                 *
                 * //todo:返回的DataTable数据,可以通过调用DataTable2Json转为JSON格式,方便前台JavaScript处理和绑定
                 * string msg = DataConvert.DataTable2Json(dt);
                 * retStr = DataConvert.getReturnJson("0", msg);*/
                //todo:由HIS提供视图或查询字段绑定
                string msg = DataConvert.DataTable2Json(dt);
                retStr = DataConvert.getReturnJson("0", msg);
                //retStr = DataConvert.DataTable2Json(dt);
                //retStr = DataConvert.getReturnJson("-1","date=" + date +  " query=" + query + " 患者姓名查询待由HIS提供视图或查询字段完成数据绑定");
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " " + ex.StackTrace);
                retStr = DataConvert.getReturnJson("-1", ex.ToString());
            }
            Console.WriteLine(retStr);
            //日志  log里面是字符串
            XnhLogger.log(retStr);
            //MessageBox.Show(retStr);
            return(retStr);
        }
Exemplo n.º 12
0
        public string tryCalculate(string user_id, string DIAGNOSIS_CODE)
        {
            try
            {
                //(1)根据用户选择的疾病编码调用 验证输入疾病是否在疾病库中存在交易,判断是否存在,不存在提示报错,中断试算;存在进行试算业务交易。
                MZBC_PROC_DIAGNOSIS_CHECK dCheck = new MZBC_PROC_DIAGNOSIS_CHECK();
                string retStr = dCheck.executeSql(
                    new Dictionary <string, string>()
                {
                    { "DIAGNOSIS_CODE", DIAGNOSIS_CODE }
                }
                    );
                if (retStr == "0")
                {
                    //(2)疾病存在,进行试算交易
                    RJZ_getShisuanResult        shisuan = new RJZ_getShisuanResult();
                    Dictionary <string, string> param   = new Dictionary <string, string>();
                    param.Add("D505_02", "");   //登记流水号
                    param.Add("COME_AREA", ""); //地区代码(支付单位)
                    param.Add("AREA_CODE", ""); //病人地区编码(取前台选择的地区编码)
                    param.Add("D504_07", "");   //家庭编号
                    param.Add("D504_02", "");   //成员序号
                    param.Add("D504_14", "");   //就医机构
                    param.Add("D504_21", "");   //入院诊断(疾病代码)
                    param.Add("D504_11", "");   //就诊日期(入院时间) (格式为YYYY-MM-DD)
                    param.Add("D506_15", "");   //补偿类别代码
                    param.Add("D504_15", "");   //就医机构级别(相关数据代码标准:S201-06)
                    param.Add("D504_06", "");   //年龄
                    param.Add("D504_10", "");   //就诊类型(相关数据代码标准:S301-05)
                    param.Add("D504_12", "");   //出院时间(格式为YYYY-MM-DD)
                    param.Add("D504_29", "");   //出院诊断(疾病代码)
                    param.Add("D504_16_D", ""); //入院科室(相关数据代码标准:S201-03)
                    param.Add("D504_16_T", ""); //出院科室(相关数据代码标准:S201-03)
                    param.Add("S701_01", "");   //是否是中途结算(相关数据代码标准:S701-01)

                    shisuan.executeSql(param);
                    if (shisuan.getExecuteStatus() == true) //试算成功
                    {
                        //需要存储试算结果,进行收费交易
                        Dictionary <string, string> retDict = shisuan.getResponseResultWrapperMap();
                        //retDict["TOTAL_COSTS"];//总费用
                        //retDict["ZF_COSTS"];//自费费用
                        //retDict["TOTAL_CHAGE"];//合理费用
                        //retDict["D506_23"];//实际补偿金额
                        //retDict["D506_18"];//核算补偿金额[实际补偿合计额)
                        //retDict["BEGINPAY"];//本次起伏线
                        //retDict["SCALE"];//报销比例
                        //retDict["HEAV_REDEEM_SUM"];//大病支付额
                        //retDict["REDEEM_TOTAL"];//单次补偿合计
                    }
                }
                else if (retStr == "1")
                {
                    //疾病不存在
                }
                else
                {
                    //出错,记录日志
                    XnhLogger.log(this.GetType().ToString() + " tryCalculate " + DIAGNOSIS_CODE + "疾病代码不存在,接口返回结果:" + retStr);
                }
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " tryCalculate " + ex.StackTrace);
            }
            return("fail");
        }
Exemplo n.º 13
0
        public string login(string name, string pwd)
        {
            string retVal = "";

            try
            {
                //todo:HIS系统先验证用户名和密码

                /*
                 * string str_sql;
                 * str_sql = "select oper_name,pwd from code_operator where oper_code='" + name + "'";
                 * DataTable dt1 = DBUtil.queryExecute(str_sql);
                 *
                 * long ll_c;
                 * ll_c = dt1.Rows.Count;
                 * if (ll_c > 0)
                 * {
                 *  //p===pass
                 *  if (dt1.Rows[0]["pwd"].ToString() != pwd)
                 *  {
                 *      return "";//==
                 *  }
                 *  else
                 *  {
                 *      return "0;10011;admin;admin;刘德华;8881122;18012345678;天泰医院;DEP_AREA;USER_JG;DEP_LEVEL;AREA_CODE;T_IS_FLASH_AUTHORIZED;T_YEARS;T_IS_SK;T_IS_SK_HOSP;T_IS_XJ;T_RJZ_DATE;T_CH_START_DATE;T_CH_END_DATE;T_DY_MX_IS_HZ;T_IS_BLUSH_DAY;T_BLUSH_DAY;";
                 *  }
                 * }
                 * else
                 * {
                 *  return "";
                 * }
                 */
                // return "0;10011;admin;admin;刘德华;8881122;18012345678;天泰医院;DEP_AREA;USER_JG;DEP_LEVEL;AREA_CODE;T_IS_FLASH_AUTHORIZED;T_YEARS;T_IS_SK;T_IS_SK_HOSP;T_IS_XJ;T_RJZ_DATE;T_CH_START_DATE;T_CH_END_DATE;T_DY_MX_IS_HZ;T_IS_BLUSH_DAY;T_BLUSH_DAY;";

                //调用接口认证
                LoginAuth service = new LoginAuth();

                //直接塞参数进入Dictionary,由框架自动组装顺序
                Dictionary <string, string> requestParam = new Dictionary <string, string>();
                requestParam.Add("USER_CODE", name);
                requestParam.Add("USER_PASS", pwd);

                //使用executeSql重载的Dictionary参数方法
                string response = service.executeSql("", requestParam, "&");
                Dictionary <string, string> responseDict = service.getResponseResultWrapperMap();
                //登录失败
                if (service.getExecuteStatus() == false)
                {
                    retVal = "";
                    //记日志
                    XnhLogger.log(this.GetType().ToString() + service.getExecuteResultPlainString());
                }
                else
                {
                    //登录成功,缓存用户信息,服务器缓存以每个用户的user_id作为区分的cookie
                    string user_id = responseDict["USER_ID"];
                    foreach (KeyValuePair <string, string> item in responseDict)
                    {
                        BufferUtil.setBuffer(user_id, item.Key, item.Value);
                    }

                    retVal = DataConvert.Dict2Json(responseDict);
                }
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " " + ex.StackTrace);
                retVal = "";
            }

            return(retVal);
        }
Exemplo n.º 14
0
        public string rydj(string USER_ID, string PARAM)
        {
            string retStr = "";

            try
            {
                //根据USER_ID获取缓存的新医疗卡号信息
                string D401_10 = BufferUtil.getBufferByKey(USER_ID, "D401_10");
                //(1)验证输入疾病是否在疾病库中存在,存在可以继续登记
                MZBC_PROC_DIAGNOSIS_CHECK check = new MZBC_PROC_DIAGNOSIS_CHECK();
                string DIAGNOSIS_CODE           = ""; //疾病代码
                check.executeSql(
                    new Dictionary <string, string>()
                {
                    { "DIAGNOSIS_CODE", DIAGNOSIS_CODE }
                }
                    );

                //0	成功
                //1	此疾病在疾病库中不存在
                //2	程序异常
                if (check.getExecuteResultPlainString() != null && check.getExecuteResultPlainString().Length >= 1 &&
                    check.getExecuteResultPlainString().Substring(0, 1) != "0")
                {
                    if (check.getExecuteResultPlainString().Substring(0, 1) == "1")
                    {
                        retStr = DataConvert.getReturnJson("-1", "此疾病在疾病库中不存在");
                    }
                    if (check.getExecuteResultPlainString().Substring(0, 1) == "2")
                    {
                        retStr = DataConvert.getReturnJson("-1", check.getExecuteResultPlainString());
                    }
                    return(retStr);
                }

                //疾病代码存在,可以继续登记
                //(2)检查是否可以做入院登记
                //调用验证住院号是否重复交易,如果重复说明已经登记,此时调用修改住院登记交易;
                //如果不重复调用保存入院登记交易进行入院登记,入院登记成功修改HIS端标志并保存农合信息。
                MZBC_PROC_ZYBZ_NOTICE_CHECK zydjCheck = new MZBC_PROC_ZYBZ_NOTICE_CHECK();
                string AREA_NO = "";
                string D401_21 = "";
                string DEP_ID  = "";
                zydjCheck.executeSql(
                    new Dictionary <string, string>()
                {
                    { "AREA_NO", AREA_NO }, { "D401_10", D401_10 }, { "D401_21", D401_21 }, { "DEP_ID", DEP_ID }
                }
                    );
                //0	成功
                //1	此病人在本院已经做过入院登记
                //2	此病人在其他医院已经做过入院登记
                //3	程序异常
                //此病人在其他医院已经做过入院登记:  2;医院名称(分号分隔)
                //程序异常:                           3;错误信息(分号分隔)
                string flag = zydjCheck.getExecuteResultPlainString().Substring(0, 1);
                if (flag == "2")
                {
                    return(retStr = DataConvert.getReturnJson("-1", "此病人在其他医院已经做过入院登记:" + zydjCheck.getExecuteResultPlainString()));
                }
                if (flag == "3")
                {
                    return(retStr = DataConvert.getReturnJson("-1", "程序异常:" + zydjCheck.getExecuteResultPlainString()));
                }

                string decodeParam = DataConvert.Base64Decode(PARAM); //解码
                Dictionary <string, string> jsonDict = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(decodeParam);

                if (flag == "0")
                {
                    Dictionary <string, string> param = new Dictionary <string, string>();
                    param.Add("COME_AREA", jsonDict["COME_AREA"]); //医疗机构所在地区编码(取用户所在机构地区编码AREA_CODE)
                    param.Add("AREA_CODE", jsonDict["AREA_CODE"]); //地区代码(病人所在地区编码)取前台选择的地区编码
                    param.Add("D401_10", jsonDict["D401_10"]);     //医疗证号
                    param.Add("D504_02", jsonDict["D504_02"]);     //个人编号
                    param.Add("D504_03", jsonDict["D504_03"]);     //姓名
                    param.Add("D504_04", jsonDict["D504_04"]);     //性别(1:男 2:女)传代码
                    param.Add("D504_05", jsonDict["D504_05"]);     //身份证号
                    param.Add("D504_06", jsonDict["D504_06"]);     //年龄
                    param.Add("D504_21", jsonDict["D504_21"]);     //疾病代码
                    param.Add("D504_09", jsonDict["D504_09"]);     //住院号
                    param.Add("D504_10", jsonDict["D504_10"]);     //就诊类型代码(对应s301_05.xls)
                    param.Add("D504_11", jsonDict["D504_11"]);     //入院时间(格式为YYYY-MM-DD)
                    param.Add("D504_14", jsonDict["D504_14"]);     //就医机构代码=DEP_ID
                    param.Add("D504_19", jsonDict["D504_19"]);     //入院状态代码 (对应S301-02.xls)
                    param.Add("D504_16", jsonDict["D504_16"]);     //入院科室代码(对应S201-03.xls)
                    param.Add("D504_28", jsonDict["D504_28"]);     //病人联系电话

                    //保存入院登记
                    ZYBC_PROC_NEW_NOTICE newNotice = new ZYBC_PROC_NEW_NOTICE();
                    newNotice.executeSql(param);

                    //0	成功
                    //1	失败
                    //保存成功:S_Returns= 0;D504_01
                    //D504_01:VARCHAR2(24)  住院登记流水号
                    //保存失败: S_Returns= 1;错误信息  (分号分隔)
                    if (newNotice.getExecuteStatus() == true)
                    {
                        //保存住院登记流水号到HIS
                        string D504_01 = newNotice.getResponseResultWrapperMap()["D504_01"];
                        Dictionary <string, string> record = new Dictionary <string, string>()
                        {
                            { "D401_10", D401_10 },
                            { "D401_21", D401_21 },
                            { "D504_21", jsonDict["D504_21"] },
                            { "D504_01", D504_01 },
                        };
                        HIS.bcZYBC(record);

                        retStr = DataConvert.getReturnJson("0", "保存住院登记成功");
                    }
                    else
                    {
                        retStr = DataConvert.getReturnJson("-1", newNotice.getExecuteResultPlainString());
                    }
                }

                if (flag == "1")
                {
                    //修改住院登记
                    ZYBC_PROC_UPDATE_NOTICE     updateNotice = new ZYBC_PROC_UPDATE_NOTICE();
                    Dictionary <string, string> param        = new Dictionary <string, string>();
                    param.Add("AREA_CODE", jsonDict["AREA_CODE"]); //病人地区编码(取前台选择的地区编码)
                    param.Add("D504_01", jsonDict["D504_01"]);     //住院登记流水号
                    param.Add("D504_21", jsonDict["D504_21"]);     //疾病代码
                    param.Add("D504_09", jsonDict["D504_09"]);     //住院号
                    param.Add("D504_10", jsonDict["D504_10"]);     //就诊类型
                    param.Add("D504_19", jsonDict["D504_19"]);     //入院状态代码(对应S301-02.xls)
                    param.Add("D504_16", jsonDict["D504_16"]);     //入院科室代码(对应S201-03.xls)
                    param.Add("D504_11", jsonDict["D504_11"]);     //入院时间(格式为YYYY-MM-DD)
                    param.Add("D504_28", jsonDict["D504_28"]);     //联系电话

                    updateNotice.executeSql(param);
                    if (updateNotice.getExecuteStatus() == true)
                    {
                        //保存修改到HIS
                        Dictionary <string, string> record = new Dictionary <string, string>()
                        {
                            { "D401_10", D401_10 },
                            { "D401_21", D401_21 },
                            { "D504_21", jsonDict["D504_21"] }
                        };
                        HIS.xgZYBC(record);
                        retStr = DataConvert.getReturnJson("0", "修改住院登记成功");
                    }
                    else
                    {
                        retStr = DataConvert.getReturnJson("-1", updateNotice.getExecuteResultPlainString());
                    }
                }
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " " + ex.StackTrace);
                retStr = DataConvert.getReturnJson("-1", ex.ToString());
            }
            return(retStr);
        }
Exemplo n.º 15
0
        public string readCard(string USER_ID, string M_MM, string AREA_NO)
        {
            string retVal = "";

            //todo:M_MM 读卡的加密串 此值的获取需要接口
            //string M_MM = ""; //由前台的ActiveX控件获取提供

            try
            {
                //(1)调用验证此卡号是否存在交易
                MZBC_Check_Ylzh_Bulsh check = new MZBC_Check_Ylzh_Bulsh();
                string retStr = check.executeSql(
                    new Dictionary <string, string>()
                {
                    { "AREA_NO", AREA_NO }, { "M_MM", M_MM }
                }
                    );

                if (check.getExecuteStatus() == false)
                {
                    retStr = DataConvert.getReturnJson("-1", "不存在此卡号交易");
                    XnhLogger.log("卡号:" + M_MM + " " + "不存在此卡号交易");
                }

                //卡号存在交易
                if (check.getExecuteStatus() == true)
                {
                    Dictionary <string, string> retDic = check.getResponseResultWrapperMap();
                    //返回的医疗证号
                    string D401_10 = retDic["D401_10"];
                    //缓存医疗号
                    BufferUtil.setBuffer(USER_ID, "D401_10", D401_10);

                    //(2)调用获取家庭成员交易
                    MZBC_Get_Member getMember       = new MZBC_Get_Member();
                    string          getMemberRetStr = getMember.executeSql(
                        new Dictionary <string, string>()
                    {
                        { "AREA_NO", AREA_NO }, { "D401_10", D401_10 }
                    }
                        );
                    if (getMember.getExecuteStatus() == true)
                    {
                        //返回的家庭成员信息D401_21/D401_02;D401_21/D401_02
                        //成员序号:D401_21  CHAR(2)
                        //成员姓名:D401_02  VARCHAR2(24)
                        string retMember = (string)getMember.getResponseResultOtherWrapper();
                        retVal = DataConvert.Dict2Json(new Dictionary <string, string>()
                        {
                            { "lyzh", D401_10 }, { "data", retMember }
                        });
                        //家庭成员信息存储到HIS
                        string[] memberArray = retMember.Split(new string[] { ";" }, StringSplitOptions.None);
                        foreach (string one in memberArray)
                        {
                            string D401_21 = one.Split(new string[] { "/" }, StringSplitOptions.None)[0]; //成员序号
                            Dictionary <string, string> record = new Dictionary <string, string>()
                            {
                                { "D401_10", D401_10 }, { "D401_21", D401_21 }
                            };
                            HIS.insertMZBC(record);
                            HIS.insertZYBC(record);
                        }

                        //(3)根据医疗证号和序号调用查询基础人员信息交易,将信息显示到用户画面。
                        //string[] memberArray = retMember.Split(new string[]{";"},StringSplitOptions.None);
                        //foreach (string one in memberArray)
                        //{
                        //    string D401_21 = one.Split(new string[] { "/" }, StringSplitOptions.None)[0]; //成员序号
                        //    //查询成员基本信息
                        //    MZBC_Get_Member_Information getMemberInfo = new MZBC_Get_Member_Information();
                        //    getMemberInfo.executeSql(
                        //        new Dictionary<string, string>() { { "AREA_NO", AREA_NO }, { "D401_10", D401_10 }, { "D401_21", D401_21 } }
                        //        );
                        //    Dictionary<string,string> memberBaseInfo = getMemberInfo.getResponseResultWrapperMap(); //成员基本信息
                        //    //(4)成员基本信息显示在用户界面 todo

                        //    //(5)验证本人是否已经住院(注:应该是住院状态不允许门诊报销)
                        //    //AREA_NO&D401_10&D401_21&DEP_ID
                        //    MZBC_PROC_ZYBZ_NOTICE_CHECK zy = new MZBC_PROC_ZYBZ_NOTICE_CHECK();
                        //     //从缓存获取信息
                        //    string DEP_ID = BufferUtil.getBufferByKey(USER_ID, "DEP_ID");
                        //    zy.executeSql(
                        //        new Dictionary<string, string>() { { "AREA_NO", AREA_NO }, { "D401_10", D401_10 }, { "D401_21", D401_21 }, { "DEP_ID", DEP_ID } }
                        //        );
                        //}
                    }
                }
            }
            catch (Exception ex)
            {
                XnhLogger.log(this.GetType().ToString() + " " + ex.StackTrace);
            }

            return(retVal);
        }