Esempio n. 1
0
        private LgXml GetHisReqXml(string Ssbz, string sslbx)
        {
            LgXml lgXml = new LgXml();

            TCusTable dtResult  = new TCusTable();
            TCusTable dtPatient = new TCusTable();

            TRequestWhereType queryType = TRequestWhereType.rwtInHospital;

            var success = false;

            //查询所有类型的号码
            foreach (TRequestWhereType ev in Enum.GetValues(typeof(TRequestWhereType)))
            {
                if (ev != TRequestWhereType.rwtInHospital && ev != TRequestWhereType.rwtOutPatient &&
                    ev != TRequestWhereType.rwtPatientId)
                {
                    continue;
                }

                success = zlInterface.GetRequestInfo(Ssbz, ev);

                //如果success但是返回的数据集为空,也算失败\
                if (zlInterface.Tables.strDatas == null || zlInterface.Tables.strDatas.Length == 0)
                {
                    success = false;
                }

                if (success)
                {
                    log.WriteMyLog("获取病人成功,病人类型:" + ev);
                    break;
                }
            }
//            var success = zlInterface.GetRequestInfo(Ssbz, queryType);
//            if (!success)
//                success = zlInterface.GetRequestInfo(Ssbz, TRequestWhereType.rwtOutPatient);

            if (!success)
            {
                var err = zlInterface.GetLastError();
                throw new Exception("中联接口提取失败,因为:" + err);
            }
            dtResult = zlInterface.Tables;
            if (dtResult.strColumns.Length == 0 || dtResult.strDatas.Length == 0)
            {
                throw new Exception("未找到HIS申请单信息");
            }

            var patientId = GetValue(dtResult, "病人ID");

            log.WriteMyLog("通过申请单得到的病人ID为:" + patientId);
            success = zlInterface.GetPatientInfo(patientId, TPatientWhereType.pwtPatientId);
            if (!success)
            {
                var err = zlInterface.GetLastError();
                throw new Exception("中联接口提取失败,因为:" + err);
            }
            dtPatient = zlInterface.Tables;
            if (dtPatient.strColumns.Length == 0 || dtPatient.strDatas.Length == 0)
            {
                throw new Exception("未找到HIS病人信息");
            }

            var yzid = GetValue(dtResult, "医嘱ID");
            var yznr = GetValue(dtResult, "医嘱内容");

            //一个申请单包含多个医嘱时,弹出窗口让用户选择医嘱
            if (dtResult.strDatas.Length > 1)
            {
                ApplicationSelector f    = new ApplicationSelector();
                DataTable           dtYz = new DataTable();
                dtYz.Columns.Add("医嘱ID");
                dtYz.Columns.Add("医嘱内容");

                for (int i = 0; i < dtResult.strDatas.Length; i++)
                {
                    var dr = dtYz.NewRow();
                    dtYz.Rows.Add(dr);
                    dr["医嘱ID"] = GetValue(dtResult, "医嘱ID", i);
                    dr["医嘱内容"] = GetValue(dtResult, "医嘱内容", i);
                }
                f.Table         = dtYz;
                f.ItemSelected += row =>
                {
                    if (row != null)
                    {
                        yzid = row["医嘱ID"].ToString();
                        yznr = row["医嘱内容"].ToString();
                    }
                };
                var r = f.ShowDialog();
            }


            lgXml.病人编号 = GetValue(dtResult, "病人ID");
            lgXml.就诊ID = yzid;
            //申请序号取ssbz
            //lgXml.申请序号 = GetValue(dtResult, "医嘱ID");
            lgXml.门诊号 = GetValue(dtResult, "门诊号");
            lgXml.住院号 = GetValue(dtResult, "住院号");
            lgXml.姓名  = GetValue(dtResult, "姓名");
            lgXml.年龄  = GetValue(dtResult, "年龄");
            lgXml.性别  = GetValue(dtResult, "性别");
            lgXml.婚姻  = GetValue(dtPatient, "婚姻状况");
            lgXml.地址  = GetValue(dtPatient, "联系人地址");
            lgXml.电话  = GetValue(dtPatient, "联系人电话");
            // lgXml.病区 = GetValue(dtResult, "病人id");
            // lgXml.床号 = GetValue(dtResult, "病人id");
            lgXml.身份证号 = GetValue(dtPatient, "身份证号");
            // lgXml.民族 = GetValue(dtResult, "病人id");
            // lgXml.职业 = GetValue(dtResult, "病人id");
            lgXml.送检科室 = GetValue(dtResult, "申请科室");
            lgXml.送检医生 = GetValue(dtResult, "申请人");
            //lgXml.收费 = GetValue(dtResult, "病人id");
            //todo:标本名称可能要取 2.4.7.	GetAdviceItems
            //lgXml.标本名称 = GetValue(dtResult, "病人id");
            //lgXml.送检医院 = GetValue(dtResult, "病人id");
            lgXml.医嘱项目 = yznr;
            //lgXml.备用1 = GetValue(dtResult, "病人id");
            //lgXml.备用2 = GetValue(dtResult, "病人id");
            //lgXml.费别 = GetValue(dtResult, "病人id");
            lgXml.病人类别 = GetValue(dtResult, "病人来源");
            lgXml.临床病史 = GetValue(dtResult, "病历摘要");
            lgXml.临床诊断 = GetValue(dtResult, "临床诊断");

            return(lgXml);
        }