Example #1
0
        //提交条码获取数据——此处要去院系统获取数据
        /// <summary>
        /// 根据条码获取医院数据
        /// </summary>
        /// <param name="barcode">条码号</param>
        /// <returns>datagrid需要的数据</returns>
        public string GetOPListForSpecimenByBarcode(string barcode)
        {
            StringBuilder result = new StringBuilder();
            //01.根据条码号调用webservice获取数据
            RuRo.BLL.WebService.ForCenterLabService centerLabServiceSoapClient = new RuRo.BLL.WebService.ForCenterLabService();
            try
            {
                string getDataFromHospitalStr = centerLabServiceSoapClient.GetPatientInfoSpecimen(barcode);//(调用webservice时取消注释)
                #region 有数据并且不为null
                if (getDataFromHospitalStr != "" && getDataFromHospitalStr != null)//有数据并且不为null
                {
                    //02.将数据转换成xml数据
                    XmlDocument getDataFromHospitalXml = HospitalXmlStrHelper.HospitalXmlStrToXmlDoc(getDataFromHospitalStr);
                    if (getDataFromHospitalXml != null)//有数据并且能转换成xml文档
                    {
                        if (getDataFromHospitalXml.HasChildNodes)
                        {
                            //创建前台页面Grid的字段数据
                            string sampleSourceName = "", sampleSourceType = "", sampleSourceDescription = "", patientId = "", patientName = "", scheduledDateTime = "", importStatus = "待导入", diagBeforeOperation = "", hiddenXml = getDataFromHospitalStr;
                            XmlNodeList xmlnodelist = getDataFromHospitalXml.SelectNodes("/OPListForSpecimen/*");//获取OPListForSpecimen下的所有子节点
                            #region 有子节点返回节点数据
                            if (xmlnodelist.Count > 0)//有子节点返回节点数据
                            {
                                foreach (XmlNode item in xmlnodelist)
                                {
                                    switch (item.Name)
                                    {
                                        case "PatientId":
                                            patientId = item.InnerText;//标识号
                                            sampleSourceName = item.InnerText;
                                            break;
                                        case "DeptCode":
                                            sampleSourceType = item.InnerText == "" ? "" : (item.InnerText.Split('-'))[1];
                                            sampleSourceDescription = sampleSourceType == "" ? "" : sampleSourceType + "病区";//此处是后台生成前台页面的Grid,当前台改变时需要子前台页面再次绑定。
                                            break;
                                        case "Name":
                                            patientName = item.InnerText == "" ? "" : item.InnerText;
                                            break;
                                        //case "Sex":
                                        //    patientSex = item.InnerText == "" ? "" : item.InnerText;
                                        //    break;
                                        case "ScheduledDateTime":
                                            scheduledDateTime = item.InnerText == "" ? "" : item.InnerText;
                                            break;
                                        case "DiagBeforeOperation":
                                            diagBeforeOperation = item.InnerText;
                                            break;
                                        default:
                                            break;
                                    }

                                }
                                result.Append("{");
                                result.AppendFormat("\"sampleSourceName\":\"{0}\",\"sampleSourceTypeName\":\"{1}\",\"sampleSourceDescription\":\"{2}\",\"scheduledDateTime\":\"{3}\",\"patientName\":\"{4}\",\"diagBeforeOperation\":\"{5}\",\"importStatus\":\"{6}\",\"patientId\":\"{7}\"", sampleSourceName, sampleSourceType, sampleSourceDescription, scheduledDateTime, patientName, diagBeforeOperation, importStatus, patientId);
                                result.Append("}");

                            }
                            //\"hiddenXml\":\"{7}\" , hiddenXml
                            #endregion
                            //OPListForSpecimen无子节点并且OPListForSpecimen下有数据,
                            else if (xmlnodelist.Count == 0 && getDataFromHospitalXml.SelectSingleNode("/OPListForSpecimen").InnerText != "")
                            {
                                result.Append(getDataFromHospitalXml.SelectSingleNode("/OPListForSpecimen").InnerText);

                            }
                        }
                        else//有数据并且能转换成xml,但是数据下面无OPListForSpecimen节点
                        {
                            result.Append(string.Empty);
                        }
                        #region 直接返回的测试数据
                        //if (barcode == "1")
                        //{
                        //    return "{\"sampleSourceName\":\"0000217014\",\"sampleSourceType\":\"感染科\",\"sampleSourceDescription\":\"蔡XX\",\"patientId\":\"0000217014\",\"patientName\":\"蔡XX\",\"patientSex\":\"女\",\"importStatus\":\"待导入\",\"hiddenXml\":\"隐藏的数据\"}";
                        //}
                        //if (barcode == "2")
                        //{
                        //    return "{\"sampleSourceName\":\"0001815970\",\"sampleSourceDescription\":\"李XX\",\"patientId\":\"0001815970\",\"patientName\":\"李XX\",\"patientSex\":\"女\",\"importStatus\":\"待导入\",\"hiddenXml\":\"隐藏的数据\",\"sampleSourceType\":\"风湿科\",\"selected\":true,}";
                        #endregion
                    }
                    else//不能转化成XML
                    {
                        result.Append(string.Empty);
                    }
                }
                #endregion
                else //没数据返回
                {
                    result.Append(string.Empty);
                }
            }
            catch (Exception ex)
            {
                result.Append(string.Empty);
            }
            return result.ToString();
        }
Example #2
0
        //根据日期和调用webservice查询数据
        /// <summary>
        /// 根据日期和调用webservice查询数据
        /// </summary>
        /// <param name="dateBegin">开始时间</param>
        /// <param name="dateEnd">结束时间</param>
        /// <returns>OPInfoListForSpecimen数据字典集合</returns>
        private List<Dictionary<string, string>> GetOPInfoListForSpecimenByTimeRangeAndToDicList(string dateBegin, string dateEnd)
        {
            //创建病人字典集合。
            List<Dictionary<string, string>> oPListForSpecimensDicList = new List<Dictionary<string, string>>();

            RuRo.BLL.WebService.ForCenterLabService centerLabServiceSoapClient = new RuRo.BLL.WebService.ForCenterLabService();

            try
            {
                string oPInfoListForSpecimenStr = centerLabServiceSoapClient.GetOPInfoListForSpecimen(dateBegin, dateEnd);
                if (oPInfoListForSpecimenStr != null && oPInfoListForSpecimenStr != "")//有数据并且不为null
                {
                    //02.将数据转换成xml数据
                    XmlDocument getDataFromHospitalXml = HospitalXmlStrHelper.HospitalXmlStrToXmlDoc(oPInfoListForSpecimenStr);
                    if (getDataFromHospitalXml != null)//有数据并且能转换成xml文档
                    {
                        if (getDataFromHospitalXml.HasChildNodes)
                        {
                            XmlNode xmlNode = getDataFromHospitalXml.SelectSingleNode("/OPListForSpecimenRt/ResultCode");
                            //创建临时集合保存多个人的数据
                            Dictionary<string, string> oPListForSpecimenTempDic = new Dictionary<string, string>();
                            if (xmlNode.InnerText == "0") //获取数据成功
                            {
                                //OPListForSpecimens/OPListForSpecimen
                                XmlNodeList xmlNodeList = getDataFromHospitalXml.SelectNodes("//OPListForSpecimens/*");
                                foreach (XmlNode item in xmlNodeList)
                                {
                                    string tempOPListForSpecimenXml = item.OuterXml;
                                    oPListForSpecimenTempDic = ConvertOPListForSpecimenStrToDic(tempOPListForSpecimenXml);
                                    oPListForSpecimensDicList.Add(oPListForSpecimenTempDic);
                                }
                            }
                            else if (xmlNode.InnerText == "-1")
                            //获取数据失败
                            {
                                oPListForSpecimenTempDic.Clear();
                                oPListForSpecimenTempDic.Add("OPListForSpecimenRt", FpJsonHelper.SerializationStr(getDataFromHospitalXml.SelectSingleNode("/OPListForSpecimenRt/ResultContent").InnerText));
                                oPListForSpecimensDicList.Add(oPListForSpecimenTempDic);
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                oPListForSpecimensDicList.Clear();
            }
            return oPListForSpecimensDicList;
        }
Example #3
0
 /// <summary>
 /// 根据条码号获取医院数据并将数据转换成字典
 /// </summary>
 /// <param name="barcode">条码</param>
 /// <returns>数据字典</returns>
 private Dictionary<string, string> GetOPListForSpecimenByBarcodeAndToDic(string barcode)
 {
     //01.创建字典
     Dictionary<string, string> hospitalDic = new Dictionary<string, string>();
     //02.创建webservice获取数据
     RuRo.BLL.WebService.ForCenterLabService centerLabServiceSoapClient = new RuRo.BLL.WebService.ForCenterLabService();
     try
     {
         //02.1 根据条码号调用GetPatientInfoSpecimen方法获取单个人的数据
         string getDataFromHospitalStr = centerLabServiceSoapClient.GetPatientInfoSpecimen(barcode);
         // string getDataFromHospitalStr = GetOPListForSpecimenByLocalBracodeFileToJsonStr();//调用本地数据
         if (getDataFromHospitalStr != null && getDataFromHospitalStr != "")//有数据并且不为null
         {
             //03.将数据转换成xml数据有数据并且能转换成xml文档
             XmlDocument getDataFromHospitalXml = new XmlDocument();
             //转换失败时返回null
             getDataFromHospitalXml = HospitalXmlStrHelper.HospitalXmlStrToXmlDoc(getDataFromHospitalStr);
             //转换成功
             if (getDataFromHospitalXml != null)
             {
                 //有子元素
                 if (getDataFromHospitalXml.HasChildNodes)
                 {
                     ////获取OPListForSpecimen下的所有子节点
                     //XmlNodeList xmlnodelist = getDataFromHospitalXml.SelectNodes("/OPListForSpecimen/*");
                     ////有子节点返回节点数据
                     //if (xmlnodelist.Count > 0)
                     //{
                     hospitalDic = ConvertOPListForSpecimenStrToDic(getDataFromHospitalStr);
                     //}
                 }
             }
         }
         else //没数据返回
         {
             hospitalDic.Clear();
         }
     }
     catch (Exception ex)
     {
         hospitalDic.Clear();
     }
     return hospitalDic;
 }
Example #4
0
        public void HF(RuRo.BLL.WebService.SpecimenRt specimenRt)
        {
            #region 正式代码
            Thread.Sleep(100);//休眠1秒钟
            //检查当前数据是否需要回发——数据库中不存在当前样本id的数据或者数据库中的数据和当前样本id的样本数据不一样
            //a、数据库中存在数据——更新
            //b、数据库中不存在数据——添加
            bool exist = false;
            //检查数据是否存在 true存在
            bool checkSpecimenRtResult = CheckSpecimenRt(specimenRt, ref exist);

            if (!checkSpecimenRtResult)
            {
                string result = "";
                //数据库中不存在当前样本Id的数据
                try
                {
                    RuRo.BLL.WebService.ForCenterLabService CenterLab = new RuRo.BLL.WebService.ForCenterLabService();
                    result = CenterLab.StoreSpecimenInfo(specimenRt);
                }
                catch (Exception ex)
                {
                    result = ex.Message;
                }
                //保存日志:a、直接保存SpecimenRtLog;b、成功之后保存详细的SpecimenRt
                bool SaveSpecimenRtLogResult = AddToSpecimenRtLog(specimenRt, result);
                if (result == "0^成功")//此处需要判断回发数据之后保存是否成功——判断回发之后返回的状态。
                {
                    //保存当前记录到数据库
                    bool SaveSpecimenRtResult = AddToSpecimenRt(specimenRt);
                }
                //检查当前的数据是否和数据库中的数据一直
            }
            else//数据库中存在当前样本id的数据
            {
                if (exist)//数据不一样
                {
                    string result = "";
                    try
                    {
                        RuRo.BLL.WebService.ForCenterLabService CenterLab = new RuRo.BLL.WebService.ForCenterLabService();
                        result = CenterLab.StoreSpecimenInfo(specimenRt);//回发数据
                    }
                    catch (Exception ex)
                    {
                        result = ex.Message;
                    }
                    //保存日志:a、直接保存SpecimenRtLog;b、成功之后保存详细的SpecimenRt
                    bool SaveSpecimenRtLogResult = AddToSpecimenRtLog(specimenRt, result);
                    if (result == "0^成功")//此处需要判断回发数据之后保存是否成功——判断回发之后返回的状态。
                    {
                        //更新当前记录到数据库
                        bool SaveSpecimenRtResult = UpdateSpecimenRt(specimenRt);
                    }
                }
            }
            #endregion
        }