通过MQ机制上传报告至平台

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace 医惠平台
{
    public class QueueMsg
    {
        #region MyRegion

        #endregion

        public static bool 上传平台(SFYXXKSB sfy, string guid, int v)
        {
            try
            {
                if(!上传报告(sfy, guid, 0)) //!false
                {
                    return false;
                }
                if (!更新报告状态(sfy))//!false
                {
                    return false;
                }
                return true;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 根据住院号获取基本信息 
        /// </summary>
        /// <param name="inPatientNO"></param>
        /// <returns></returns>
        public static OraRecordsViewModel GetInPatient(string inPatientNO)
        {
            //创建 QueueTools 类的新实例:
            MQDLL.QueueTools mqSdk = new MQDLL.QueueTools();
            //连接到指定配置节点的队列管理器
            int ret = mqSdk.connect("QMGR.S20_1");
            if (ret == 1)
            {
                string message = File.ReadAllText("BS10003.txt")
                    .Replace("{{DateTimeNow}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                    .Replace("{{HOSP_NO}}", inPatientNO)
                    .Replace("{{HOSP_TYPE}}", "INHOSP_NO");
                string messageId = string.Empty;
                ret = mqSdk.putMsg("BS10003", "0", message, ref messageId);
                message = string.Empty;
                messageId = string.Empty;
                ret = mqSdk.getMsg("BS10003", "1", 10000, ref messageId, ref message);
                mqSdk.disconnect();

                dynamic as1 = message.AsSimpleXml();
                string msg = as1.MsgInfo.Msg;
                //dynamic msgBody = msg.AsSimpleXml().body;
                OraRecordsViewModel oraRecordsViewModel = new OraRecordsViewModel();
                try
                {
                    oraRecordsViewModel.MedicalNo = msg.AsSimpleXml().body.row.VISIT_CARD_NO;                      //就诊卡号
                    oraRecordsViewModel.IDCard = msg.AsSimpleXml().body.row.ID_NUMBER;                             //身份证号
                    oraRecordsViewModel.Name = msg.AsSimpleXml().body.row.PAT_NAME;                                //姓名
                    oraRecordsViewModel.Age = AgeUtil.Pare_2(msg.AsSimpleXml().body.row.DATE_BIRTH);                //年龄
                    oraRecordsViewModel.Sex = msg.AsSimpleXml().body.row.PHYSI_SEX_NAME;                           //性别
                    oraRecordsViewModel.Information = msg.AsSimpleXml().body.row.PHONE_NO;                         //联系信息
                    oraRecordsViewModel.SendDept = msg.AsSimpleXml().body.row.CURR_DEPT_NAME;                      //送检科室
                    oraRecordsViewModel.InPatientId2 = msg.AsSimpleXml().body.row.INHOSP_NO;                       //住院号
                    //oraRecordsViewModel.OutPatientId = msg.AsSimpleXml().body.row.CURR_DEPT_NAME;                //门诊号
                    oraRecordsViewModel.BedId = msg.AsSimpleXml().body.row.ADMIT_BED_NAME;                         //床号
                    oraRecordsViewModel.MainDoc = msg.AsSimpleXml().body.row.ATTEND_DR_NAME;                       //送检医生、主治医生
                    oraRecordsViewModel.Disease = msg.AsSimpleXml().body.row.CURR_WARD_NAME;                       //病区
                    oraRecordsViewModel.YbkNo = msg.AsSimpleXml().body.row.MEDICARE_CARD_NO;                       //医保卡号
                    oraRecordsViewModel.Marry = msg.AsSimpleXml().body.row.MARITAL_STATUS_NAME;                    //婚姻状况
                }
                catch
                {

                }
                return oraRecordsViewModel;
            }
            return null;
        }

        /// <summary>
        /// 根据门诊号获取基本信息
        /// </summary>
        /// <param name="inPatientNO"></param>
        /// <returns></returns>
        public static OraRecordsViewModel GetOutPatient(string outPatientNO)
        {
            //创建 QueueTools 类的新实例:
            MQDLL.QueueTools mqSdk = new MQDLL.QueueTools();
            //连接到指定配置节点的队列管理器
            int ret = mqSdk.connect("QMGR.S20_1");
            if (ret == 1)
            {
                string message = File.ReadAllText("BS10002.txt")
                    .Replace("{{DateTimeNow}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                    .Replace("{{HOSP_NO}}", outPatientNO)
                    .Replace("{{HOSP_TYPE}}", "VISIT_CARD_NO");
                string messageId = string.Empty;
                ret = mqSdk.putMsg("BS10002", "0", message, ref messageId);
                //MessageBox.Show(message);
                message = string.Empty;
                messageId = string.Empty;
                ret = mqSdk.getMsg("BS10002", "1", 10000, ref messageId, ref message);
                mqSdk.disconnect();
                //MessageBox.Show(message);
                dynamic as1 = message.AsSimpleXml();
                string msg = as1.MsgInfo.Msg;

                OraRecordsViewModel oraRecordsViewModel = new OraRecordsViewModel();
                try
                {
                    oraRecordsViewModel.MedicalNo = msg.AsSimpleXml().body.row.VISIT_CARD_NO;                      //就诊卡号
                    oraRecordsViewModel.IDCard = msg.AsSimpleXml().body.row.ID_NUMBER;                             //身份证号
                    oraRecordsViewModel.Name = msg.AsSimpleXml().body.row.PAT_NAME;                                //姓名
                    oraRecordsViewModel.Age = AgeUtil.Pare_2(msg.AsSimpleXml().body.row.DATE_BIRTH);                //年龄
                    oraRecordsViewModel.Sex = msg.AsSimpleXml().body.row.PHYSI_SEX_NAME;                           //性别
                    oraRecordsViewModel.Information = msg.AsSimpleXml().body.row.PHONE_NO;                         //联系信息
                    oraRecordsViewModel.SendDept = msg.AsSimpleXml().body.row.CURR_DEPT_NAME;                      //送检科室
                    oraRecordsViewModel.InPatientId2 = msg.AsSimpleXml().body.row.INHOSP_NO;                       //住院号
                    //oraRecordsViewModel.OutPatientId = msg.AsSimpleXml().body.row.CURR_DEPT_NAME;                //门诊号
                    oraRecordsViewModel.BedId = msg.AsSimpleXml().body.row.ADMIT_BED_NAME;                         //床号
                    oraRecordsViewModel.MainDoc = msg.AsSimpleXml().body.row.ATTEND_DR_NAME;                       //送检医生、主治医生
                    oraRecordsViewModel.Disease = msg.AsSimpleXml().body.row.CURR_WARD_NAME;                       //病区
                    oraRecordsViewModel.YbkNo = msg.AsSimpleXml().body.row.MEDICARE_CARD_NO;                       //医保卡号
                    oraRecordsViewModel.Marry = msg.AsSimpleXml().body.row.MARITAL_STATUS_NAME;                    //婚姻状况
                }
                catch
                {

                }
                return oraRecordsViewModel;
            }
            return null;
        }
       
        /// <param name="sFYXXKSB"></param>
        /// <param name="reportPath">报告路径</param>
        /// <param name="type">类型:0常规/TCT/HPV;1冰冻;2补充</param>
        public static bool 上传报告(SFYXXKSB sFYXXKSB, string reportPath = null, int type = 0)
        {
            //开始上传日志
            //ILog log = LogManager.GetLogger(typeof(QueueMsg));
            //log.Info(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "上传报告,病理号【" + sFYXXKSB.CurrentCaseViewModel.CaseNO + "】");
            #region Photograph图像/报告网络地址
            SampleService sampleService = IOContainer.GetContainer().Resolve<SampleService>();
            List<PhotographViewModel> photos = sampleService.GetPhotos(sFYXXKSB.CurrentCaseViewModel.Id);
            string emagepath = "";
            if (photos != null && photos.Count > 0)
            {
                for (int i = 0; i < photos.Count; i++)
                {
                    if (i != 0)
                    {
                        emagepath += "<EXAM_IMAGE_PATH>";
                    }
                    emagepath += "ftp://192.168.100.114:21/" + photos[i].PhotoUrl;
                    if (i != photos.Count - 1)
                    {
                        emagepath += "</EXAM_IMAGE_PATH>";
                    }
                }
            }
            #endregion

            //创建 QueueTools 类的新实例:
            MQDLL.QueueTools mqSdk = new MQDLL.QueueTools();
            //连接到指定配置节点的队列管理器
            int ret = mqSdk.connect("QMGR.P20_1");
            if (ret == 1)
            {
                //连接上传平台成功进行构造、发送消息

                #region 构造消息
                //报告路径
                string ReportPath = "";
                //原报告路径
                string OldReportPath = "";
                //检查结果
                string EXAM_RESULT = "";
                //报告名称
                string REPORT_NAME = "";
                //诊断医生编码
                string DIAG_DR_CODE = "";
                //诊断医生名称
                string DIAG_DR_NAME = "";
                //报告医生编号
                string REPORT_DR_CODE = "";
                //报告医生名称
                string REPORT_DR_NAME = "";
                //申请单号
                string ELECTR_REQUISITION_NO = "";
                //报告时间
                string ReportDate = DateTime.Now.ToString("yyyyMMddHHmmss");
                switch (type)
                {
                    case 0:
                        ReportDate = sFYXXKSB.CurrentCaseViewModel.ReportDate.HasValue ? sFYXXKSB.CurrentCaseViewModel.ReportDate.Value.ToString("yyyyMMddHHmmss") : DateTime.Now.ToString("yyyyMMddHHmmss");
                        ReportPath = reportPath;
                        OldReportPath = sFYXXKSB.CurrentCaseViewModel.ReportPath;
                        DIAG_DR_CODE = sFYXXKSB.CurrentCaseViewModel.Doctor1Id == null ? "" : sFYXXKSB.CurrentCaseViewModel.Doctor1Id.ToString();
                        DIAG_DR_NAME = sFYXXKSB.CurrentCaseViewModel.Doctor1Name;
                        REPORT_NAME = "病理诊断报告";
                        REPORT_DR_CODE = sFYXXKSB.CurrentCaseViewModel.Doctor2Id == null ? DIAG_DR_CODE : sFYXXKSB.CurrentCaseViewModel.Doctor2Id.ToString();
                        REPORT_DR_NAME = string.IsNullOrEmpty(sFYXXKSB.CurrentCaseViewModel.Doctor2Name) ? DIAG_DR_NAME : sFYXXKSB.CurrentCaseViewModel.Doctor2Name;
                        EXAM_RESULT = sFYXXKSB.CurrentCaseViewModel.Diagnosis;
                        break;
                    case 1:
                        ReportDate = sFYXXKSB.IceReportViewModel.ReportDateTime.ToString("yyyyMMddHHmmss");
                        ReportPath = reportPath;
                        OldReportPath = sFYXXKSB.IceReportViewModel.ReportPath;
                        DIAG_DR_CODE = sFYXXKSB.IceReportViewModel.ReportUser_Id == null ? "" : sFYXXKSB.IceReportViewModel.ReportUser_Id.ToString();
                        DIAG_DR_NAME = sFYXXKSB.IceReportViewModel.ReportUserName;
                        REPORT_NAME = "快速冰冻病理诊断报告";
                        REPORT_DR_CODE = sFYXXKSB.IceReportViewModel.CheckUser_Id == null ? DIAG_DR_CODE : sFYXXKSB.IceReportViewModel.CheckUser_Id.ToString();
                        REPORT_DR_NAME = string.IsNullOrEmpty(sFYXXKSB.IceReportViewModel.CheckUserName) ? DIAG_DR_NAME : sFYXXKSB.IceReportViewModel.CheckUserName;
                        EXAM_RESULT = sFYXXKSB.IceReportViewModel.DiagnosticResult;
                        break;
                    case 2:
                        ReportDate = sFYXXKSB.ReviseReportViewModel.ReportTime.ToString("yyyyMMddHHmmss");
                        ReportPath = reportPath;
                        OldReportPath = sFYXXKSB.ReviseReportViewModel.ReportPath;
                        DIAG_DR_CODE = sFYXXKSB.ReviseReportViewModel.ReportDoc.ToString();
                        DIAG_DR_NAME = sFYXXKSB.ReviseReportViewModel.ReportDocUserName;
                        REPORT_NAME = "病理诊断补充报告";
                        REPORT_DR_CODE = sFYXXKSB.ReviseReportViewModel.AuditDoc == 0 ? DIAG_DR_CODE : sFYXXKSB.ReviseReportViewModel.AuditDoc.ToString();
                        REPORT_DR_NAME = string.IsNullOrEmpty(sFYXXKSB.ReviseReportViewModel.AuditDocUserName) ? DIAG_DR_NAME : sFYXXKSB.ReviseReportViewModel.AuditDocUserName;
                        EXAM_RESULT = sFYXXKSB.ReviseReportViewModel.Content;
                        break;
                }
                if (sFYXXKSB.CurrentCaseViewModel.PatientCategory != ApplyType.HPV && sFYXXKSB.CurrentCaseViewModel.PatientCategory != ApplyType.TCT)
                {
                    ELECTR_REQUISITION_NO = sFYXXKSB.ELECTR_REQUISITION_NO + "_" + type;
                }
                else
                {
                    ELECTR_REQUISITION_NO = sFYXXKSB.ELECTR_REQUISITION_NO;
                }
                // XML字符串消息
                string message = "";
                //判断是新增还是更新
                if (OldReportPath == ReportPath || string.IsNullOrEmpty(OldReportPath))
                {
                    message = File.ReadAllText("PS25109.txt");
                }
                else
                {
                    message = File.ReadAllText("PS25110.txt");
                }
                #region message变量赋值
                message = string.Format(message
                    , sFYXXKSB.PAT_INDEX_NO             //1
                    , sFYXXKSB.PAT_NAME                 //2
                    , sFYXXKSB.PATIENT_ID               //3
                    , sFYXXKSB.PHYSI_SEX_CODE           //4
                    , sFYXXKSB.PHYSI_SEX_NAME           //5
                    , sFYXXKSB.DATE_BIRTH               //6
                    , sFYXXKSB.AGE                      //7
                    , sFYXXKSB.ETHNIC_CODE              //8      
                    , sFYXXKSB.ETHNIC_NAME              //9
                    , sFYXXKSB.MARITAL_STATUS_CODE      //10
                    , sFYXXKSB.MARITAL_STATUS_NAME      //11
                    , sFYXXKSB.INHOSP_NO
                    , sFYXXKSB.OUTHOSP_NO
                    , sFYXXKSB.INHOSP_NUM
                    , sFYXXKSB.MR_NO
                    , sFYXXKSB.CurrentCaseViewModel.CaseNO                                  //sFYXXKSB.ANAMNESIS_NO  //病理号
                    , sFYXXKSB.VISIT_CARD_NO
                    , ELECTR_REQUISITION_NO
                    , sFYXXKSB.ORDER_NO
                    , sFYXXKSB.ORDER_GROUP_NO
                    , sFYXXKSB.CurrentCaseViewModel.CaseNO                                 //sFYXXKSB.REPORT_NO    报告单编号
                    , REPORT_NAME                         //sFYXXKSB.REPORT_NAME  报告名称
                    , ""                                 //sFYXXKSB.SAMPLE_NO    样本编号
                    , sFYXXKSB.PAT_TYPE_CODE
                    , sFYXXKSB.PAT_TYPE_NAME
                    , sFYXXKSB.ID_NUMBER
                    , sFYXXKSB.EXAM_PAT_RESOURCE_CODE
                    , sFYXXKSB.EXAM_PAT_RESOURCE_NAME
                    , sFYXXKSB.APPLY_DATE
                    , sFYXXKSB.EXECUT_DATE
                    , sFYXXKSB.SAMPLING_DATE
                    , ""                                       //sFYXXKSB.SAMPLING_STAFF   取材记录者
                    , sFYXXKSB.CLINIC_SYMPTOM                  //sFYXXKSB.CLINIC_DIAG_CODE  临床诊断代码
                    , sFYXXKSB.CLINIC_SYMPTOM                  // sFYXXKSB.CLINIC_DIAG_NAME 临床诊断名称
                    , sFYXXKSB.DIAG_DATE
                    , DIAG_DR_CODE // sFYXXKSB.DIAG_DR_CODE  //诊断医生工号
                    , DIAG_DR_NAME // sFYXXKSB.DIAG_DR_NAME  //诊断医生姓名
                    , sFYXXKSB.PROOF_DR_CODE
                    , sFYXXKSB.PROOF_DR_NAME
                    , ""                                       // sFYXXKSB.FROZEN_DIAG     //冰冻诊断
                    , ""                                       // sFYXXKSB.FROZEN_DIAG_DR  //冰冻诊断医生
                    , ""                                       // sFYXXKSB.SEND_TEST_DEPT  //送检科室
                    , sFYXXKSB.SEND_TEST_UNIT
                    , sFYXXKSB.SEND_TEST_DR_NAME
                    , sFYXXKSB.PHONE_NO
                    , ""                                       // sFYXXKSB.SUPPLEMENTARY_OPINION  补充意见
                    , ReportDate                  // sFYXXKSB.EXAM_REPORT_DATE  检查报告日期
                    , ""                                       // sFYXXKSB.EXAM_TECHNICIAN_SIGN 检查技师姓名
                    , ""                                       // sFYXXKSB.EXAM_DR_SIGN         检查医师姓名
                    , ""                                       // sFYXXKSB.SYMPTOM_DESCR   症状描述
                    , ""                                       // sFYXXKSB.OPER_CODE     操作编码
                    , ""                                       // sFYXXKSB.OPER_NAME     操作名称
                    , ""                                       // sFYXXKSB.OPER_DATE     操作日期
                    , sFYXXKSB.OPER_PART_CODE
                    , sFYXXKSB.OPER_PART_NAME
                    , ""                                       // sFYXXKSB.INTERVENTION_OBJ_NAME 介入物名称
                    , ""                                       // sFYXXKSB.ANES_METHOD_CODE 麻醉方式代码
                    , ""                                       // sFYXXKSB.ANES_DR_SIGN 麻醉医师签名
                    , ""                                       // sFYXXKSB.ANES_OBSERVE_RESULT 麻醉观察结果
                    , ""                                       // sFYXXKSB.ANES_CWM_IND_CODE 麻醉中西医标识代码
                    , ""                                       // sFYXXKSB.SPECIAL_EXAM_FLAG 特殊检查标志
                    , sFYXXKSB.EXAM_METHOD_CODE
                    , sFYXXKSB.EXAM_METHOD_NAME
                    , sFYXXKSB.EXAM_CATEG_CODE
                    , sFYXXKSB.EXAM_CATEG_NAME
                    , ReportDate       // sFYXXKSB.EXAM_DATE  检查日期
                    , sFYXXKSB.EXAM_APPLY_ITEM_CODE            // sFYXXKSB.EXAM_ITEM_CODE  检查项目代码
                    , sFYXXKSB.EXAM_APPLY_ITEM_NAME            // sFYXXKSB.EXAM_ITEM_NAME  检查项目名称
                    , ""                                       // sFYXXKSB.SPECIMEN_SAMPLING_DATE_TIME  标本采样日期时间
                    , ""                                       // sFYXXKSB.RECEIVE_DATE                 标本接收日期
                    , sFYXXKSB.SAMPLE_TYPE_CODE
                    , ""                                       // sFYXXKSB.SAMPLE_TYPE_NAME        样本类型名称
                    , ""                                       // sFYXXKSB.SPECIMEN_FIXATIVE_NAME  标本固定液名称
                    , ""                                       // sFYXXKSB.EXAM_RESULT_CODE        检查结果代码
                    , EXAM_RESULT  // sFYXXKSB.EXAM_RESULT             检查结果
                    , sFYXXKSB.CurrentCaseViewModel.OrganizationDescription
                    , ""                                       // sFYXXKSB.EXAM_RESULT_TATION         检查定量结果
                    , ""                                       // sFYXXKSB.EXAM_RESULT_VALUE_UNIT     检查定量结果计量单位
                    , EXAM_RESULT  // sFYXXKSB.EXAM_REPORT_RESULT         检查报告结果-主观提示
                    , sFYXXKSB.CurrentCaseViewModel.OrganizationDescription  // sFYXXKSB.EXAM_RESULT_PROMPT         检查报告结果-客观所见
                    , "病理科"                                 // sFYXXKSB.EXAM_REPORT_DEPT           检查报告科室
                    , "山东第一医科大学附属济南妇幼保健院"     // sFYXXKSB.EXAM_REPORT_MI_NAME        检查报告机构名称
                    , ""                                       // sFYXXKSB.EXAM_REPORT_NOTE           检查报告备注
                    , sFYXXKSB.APPLY_DEPT_CODE
                    , sFYXXKSB.APPLY_DEPT_NAME
                    , sFYXXKSB.EXECUT_DEPT_CODE
                    , sFYXXKSB.EXECUT_DEPT_NAME
                    , sFYXXKSB.APPLY_DR_CODE
                    , sFYXXKSB.APPLY_DR_NAME
                    , sFYXXKSB.EXECUT_DR_CODE
                    , sFYXXKSB.EXECUT_DR_NAME
                    , REPORT_DR_CODE                          // sFYXXKSB.REPORT_DR_CODE 报告医生工号
                    , REPORT_DR_NAME                          // sFYXXKSB.REPORT_DR_NAME 报告医生姓名
                    , sFYXXKSB.RECORD_DATE
                    , sFYXXKSB.UPDATE_DATE
                    , ""                                       // sFYXXKSB.EQUIPMENT_CODE 设备代码
                    , ""                                       // sFYXXKSB.EQUIPMENT_NAME 设备名称
                    , sFYXXKSB.NOTE
                    , ""                                       // sFYXXKSB.CRITICAL_VALUE_FLAG 危急值标志
                                                               //, ""
                    , "http://192.168.200.114:8018/Report/AllReport?menzhen=" + sFYXXKSB.CurrentCaseViewModel.OutpatientNumber + "&amp;zhuyuan=" + sFYXXKSB.CurrentCaseViewModel.InpatientNumber
                    , DateTime.Now.ToString("yyyyMMddHHmmss")
                    , "ftp://192.168.100.114:21/" + reportPath.Replace(@"\", "/") + ".jpg"
                    , emagepath.Replace(@"\", "/")
                    , "192.168.100.114"
                    , "xf"
                    , "@Aef115116"
                //, sFYXXKSB.CurrentCaseViewModel.ReportPath
                );
                #endregion
                #endregion

                #region 发送消息
                string messageId = string.Empty;
                if (OldReportPath == ReportPath || string.IsNullOrEmpty(OldReportPath))
                {
                    ret = mqSdk.putMsg("PS25109", "0", message, ref messageId);
                }
                else
                {
                    ret = mqSdk.putMsg("PS25110", "0", message, ref messageId);
                }
                if (ret == 1)
                {
                    上传成功日志记录
                   // log.Info(
                   //     DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") +
                   //     "上传报告结束,病理号【" + sFYXXKSB.CurrentCaseViewModel.CaseNO +
                   //     "】,类型【" + (string.IsNullOrEmpty(sFYXXKSB.CurrentCaseViewModel.ReportPath) ? "25109" : "25110") +
                   //     "】,结果【" + ret +
                   //     "】,messageId【" + messageId +
                   //     "】,type【" + type + "】\r\n");
                    #region 日志记录--
                    string LogPath = "D:\\报告推送记录";
                    string fileName = sFYXXKSB.CurrentCaseViewModel.CaseNO + "_" + messageId;
                    SaveLog(LogPath, fileName, message);
                    #endregion
                    return true;
                }
                else
                {
                    //上传失败
                }
                mqSdk.disconnect();//断开队列
                #endregion
            }
            else
            {
                //连接上传平台失败
            }
            return false;
        }

        public static bool 更新报告状态(SFYXXKSB sFYXXKSB)
        {
            //创建 QueueTools 类的新实例:
            MQDLL.QueueTools mqSdk = new MQDLL.QueueTools();
            //连接到指定配置节点的队列管理器
            int ret = mqSdk.connect("QMGR.P20_1");
            if (ret == 1)
            { 
                //连接上传平台成功进行构造、发送消息

                #region 构造消息
                string message = File.ReadAllText("PS25120.txt");
                message = string.Format(message,
                    sFYXXKSB.ELECTR_REQUISITION_NO,              //电子申请单编号                       
                    sFYXXKSB.REQUISITION_NAME,                   //申请单名称
                    "",  //sFYXXKSB.BAR_CODE_NO,                //样本条码号                           BAR_CODE_NO
                           sFYXXKSB.SAMPLE_TYPE_CODE,                                         //样本类型代码  
                    "",   //sFYXXKSB.SAMPLE_TYPE_NAME,                                         //样本类型名称  
                          "报告已出",                                       //申请单状态    
                    DateTime.Now.ToString("yyyyMMddHHmmss"), //sFYXXKSB.OPER_DATE,                                         //操作日期      
                      "", //  sFYXXKSB.OPER_STAFF_CODE,                                        //操作职工工号  
                      "", //  sFYXXKSB.OPER_STAFF_NAME,                                         //操作职工姓名  
                          sFYXXKSB.EXECUT_DEPT_CODE,                                 //执行科室代码  
                          sFYXXKSB.EXECUT_DEPT_NAME,                                 //执行科室名称  
                      "J", //  sFYXXKSB.OPER_STATUS_CODE,                                  //操作状态代码  
                      "报告审核", //   sFYXXKSB.OPER_STATUS_NAME,                          //操作状态名称  
                      sFYXXKSB.VISIT_NO,                                          //就诊流水号    
                      sFYXXKSB.INHOSP_NUM,                                         //住院次数      
                      sFYXXKSB.PAT_TYPE_CODE,                                      //患者类型代码  
                      sFYXXKSB.PAT_TYPE_NAME,                                        //患者类型名称  
                      sFYXXKSB.PATIENT_ID,                                           //患者ID        
                      sFYXXKSB.OUTHOSP_NO,                                           //门诊流水号    
                      sFYXXKSB.INHOSP_NO,                                            //住院流水号    
                      sFYXXKSB.MR_NO,                                                //病案号        
                      sFYXXKSB.PAT_NAME,                                             //患者姓名      
                      sFYXXKSB.ID_NUMBER,                                            //身份证号码    
                      sFYXXKSB.MEDICARE_CARD_NO,                                     //医疗保险卡号  
                      sFYXXKSB.PHYSI_SEX_CODE,                                       //生理性别代码  
                      sFYXXKSB.PHYSI_SEX_NAME,                                       //生理性别名称  
                      sFYXXKSB.DATE_BIRTH,                                           //出生日期      
                      sFYXXKSB.BED_CODE,                                             //床位代码      
                      sFYXXKSB.BED_NAME,                                             //床位名称      
                      sFYXXKSB.CURR_SICKROOM_CODE,                                   //当前病房代码  
                      sFYXXKSB.CURR_SICKROOM_NAME,                                   //当前病房名称  
                      sFYXXKSB.DEPT_ALIAS,                                           //科室别名      
                      sFYXXKSB.DEPT_CODE,                                            //科室代码      
                      "", //  sFYXXKSB.WARD_ALIAS,                                   //病区别名      
                      sFYXXKSB.WARD_CODE,                                            //病区代码      
                      sFYXXKSB.WARD_NAME,                                             //病区名称
                      DateTime.Now.ToString("yyyyMMddHHmmss")
                    );
                #endregion

                #region 发送消息
                string messageId = string.Empty;
                ret = mqSdk.putMsg("PS25120", "0", message, ref messageId);
                if (ret == 1)
                {
                    return true;
                }
                else
                {
                    //上传失败
                }
                #endregion
                mqSdk.disconnect();
            }
            else
            {
                //连接上传平台失败
            }
            return false;
        }

        private static void SaveLog(string logPath, string fileName, string message)
        {
            try
            {
                StringBuilder logNameSb = new StringBuilder();
                string date = System.DateTime.Today.ToString("yyyy-MM-dd" + "-");
                logNameSb.Append(date);
                logNameSb.Append(fileName);
                logNameSb.Append(".log");
                if (!Directory.Exists(logPath))
                {
                    Directory.CreateDirectory(logPath);
                }
                string filePath = logPath + "\\" + logNameSb.ToString();
                FileStream fs;
                if (!File.Exists(filePath))
                {
                    fs = File.Create(filePath);
                }
                else
                {
                    fs = File.Open(filePath, FileMode.Append);
                }
                string strToWrite = System.DateTime.Now.ToString() + ":" + message + "\r\n";
                byte[] b = System.Text.Encoding.Default.GetBytes(strToWrite);
                fs.Write(b, 0, b.Length);
                fs.Close();
            }
            catch (Exception)
            {

                throw;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值