Explorar el Código

一张纸新增标准服务 调有过程处理

zackhua hace 9 meses
padre
commit
b4ce379af3

+ 1 - 1
LisPacsDataUpload/Form1.cs

@@ -358,7 +358,7 @@ namespace LisPacsDataUpload
                                 success_count++;
                             }
                         }
-                        LogHelper.Info("本次上传:" + success_count);
+                        LogHelper.Info("本次清单上传:" + success_count);
                     }
                 }
             }

+ 54 - 0
ZLPlugin_LisPacs_MR/Domain/Units/HttpUtils.cs

@@ -0,0 +1,54 @@
+using System;
+using System.IO;
+using System.Net;
+using System.Text;
+
+namespace ZLPlugin_LisPacs_MR.Domain.Units
+{
+    public class HttpUtils
+    {
+
+        public static string WSCenterData(string url, string data)
+        {
+            string srcString = string.Empty;
+            try
+            {
+                Encoding myEncoding = Encoding.GetEncoding("UTF-8");
+                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; //将提交的字符串数据转换成字节数组 //注意提交的编码,这里默认的是Default:系统当前编码
+                byte[] postData = myEncoding.GetBytes(data); //设置提交的相关参数
+                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
+                request.Method = "POST";
+                request.KeepAlive = false;
+                request.ProtocolVersion = HttpVersion.Version10;
+                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
+                //request.ContentType = "text/xml;charset=utf-8";
+                request.ContentType = "application/json;charset=utf-8";
+                request.Headers.Add("code", "ZHONGLIAN");
+
+                request.ContentLength = postData.Length;
+
+                using (System.IO.Stream writer = request.GetRequestStream())
+                {
+                    writer.Write(postData, 0, postData.Length);
+                }
+
+                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
+                using (System.IO.Stream sr = response.GetResponseStream())
+                {
+                    using (StreamReader reader = new StreamReader(sr, myEncoding))
+                    {
+                        srcString = reader.ReadToEnd();
+                    }
+                }
+                //result = JSON.JsonToObject<Result>(Tools.FormatStr(srcString), Encoding.UTF8);
+            }
+            catch (Exception ex)
+            {
+                Log.Info("请求入参:" + data);
+                Log.Info("请求出参:" + srcString);
+                Log.Info(ex.Message);
+            }
+            return srcString;
+        }
+    }
+}

+ 53 - 4
ZLPlugin_LisPacs_MR/LisPacs_MR_Bll.cs

@@ -1,6 +1,7 @@
 using ADODB;
 using System;
 using System.Collections.Generic;
+using System.Reflection;
 using ZLPlugin_LisPacs_MR.Domain.Units;
 using ZLPlugin_LisPacs_MR.Model;
 
@@ -47,7 +48,7 @@ namespace ZLPlugin_LisPacs_MR
                                   and a.类别 = 'D' And b.编码  = '{0}'
                                   group by b.代码";
             sql = string.Format(sql, zlid);
-            //Log.Info("sql2:" + sql);
+            Log.Info("sql2:" + sql);
             Recordset rd = new Recordset();
             Tools.QueryTable(sql, out rd);
             if (!rd.EOF)
@@ -381,13 +382,14 @@ namespace ZLPlugin_LisPacs_MR
         /// 是否互认
         /// </summary>
         /// <returns></returns>
-        public static void IsAgree(out int res,out int date)
+        public static void IsAgree(out int res,out int date,out int yzzState)
         {
             res = 1;
             date = 20000;
+            yzzState = 0;
             try
             {
-                string sql = @"Select 互认 As AGREE,WAITINGDATE From zllpmr.互认配置表";
+                string sql = @"Select 互认 As AGREE,WAITINGDATE,一张纸 From zllpmr.互认配置表";
                 Recordset rd = new Recordset();
                 Tools.QueryTable(sql, out rd);
                 if (!rd.EOF)
@@ -395,6 +397,28 @@ namespace ZLPlugin_LisPacs_MR
                     rd.MoveFirst();
                     res = int.Parse(rd.Fields["AGREE"].Value.ToString());
                     date = int.Parse(rd.Fields["WAITINGDATE"].Value.ToString());
+                    yzzState = int.Parse(rd.Fields["一张纸"].Value.ToString());
+                }
+            }
+            catch (Exception ex)
+            {
+                Log.Info(ex.Message);
+                Log.Info(ex.StackTrace);
+            }
+        }
+
+        public static void getUrlYzzCancelMedical(out string url)
+        {
+            url = "";
+            try
+            {
+                string sql = @"Select 一张纸URL  From zllpmr.互认配置表";
+                Recordset rd = new Recordset();
+                Tools.QueryTable(sql, out rd);
+                if (!rd.EOF)
+                {
+                    rd.MoveFirst();
+                    url = int.Parse(rd.Fields["一张纸URL"].Value.ToString());
                 }
             }
             catch (Exception ex)
@@ -546,7 +570,32 @@ namespace ZLPlugin_LisPacs_MR
             }
             json = json.Substring(0,json.Length - 1);
             json += "]}}";
-            Tools.ExecuteStoredProc(病人id, 主医嘱id, json, lis, pacs);
+            //原始调用过程没有作用 改用数据处理平台中转
+            //Tools.ExecuteStoredProc(病人id, 主医嘱id, json, lis, pacs);
+            int lisMessage = 0;
+            int pacsMessage = 0;
+            //调有 http 
+            Dictionary<string, string> body = new Dictionary<string, string>();
+            body.Add("patientId", 病人id.ToString());
+            body.Add("medicalOrderId", 主医嘱id.ToString());
+            body.Add("jsonIn", json);
+            if (lis>0)
+            {
+                lisMessage = 1;
+            }
+            if (pacs>0)
+            {
+                pacsMessage = 1;
+            }
+            body.Add("lisMessage", lisMessage.ToString());
+            body.Add("pacsMessage", pacsMessage.ToString());
+
+            string url = "http://172.30.0.66:7000/cancelMedicalForYzz";
+            getUrlYzzCancelMedical(out url);
+            Log.Info("url="+ url);
+           string resultString = HttpUtils.WSCenterData(url, body.ToString());
+           Log.Info("resultString==" + resultString);
+
         }
     }
 }

+ 14 - 8
ZLPlugin_LisPacs_MR/clsPlugin.cs

@@ -108,7 +108,8 @@ namespace ZLPlugin_LisPacs_MR
             {
                 int res = 1;
                 int waittingdate = 0;
-                LisPacs_MR_Bll.IsAgree(out res, out waittingdate);
+                int yzzState = 0;
+                LisPacs_MR_Bll.IsAgree(out res, out waittingdate,out yzzState);
                 if (res == 0)//互认关闭
                 {
                     return true;
@@ -180,12 +181,7 @@ namespace ZLPlugin_LisPacs_MR
             //'      int场合=0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS)
             Log.Info("AdviceSave  lngModual=="+ lngModual);
             rsAdvice.Filter = "";
-            #region 仅印江人民医院使用,仅支持住院,因为一张纸发送医嘱后也会触发此方法
-            /* if (lngModual == 1252)
-              {
-                  return true;
-              }*/
-            #endregion
+            
             string str = Tools.GetAdviceSaveData(rsAdvice);
             Log.Info("保存前医嘱:" + str);
             if (str == "")
@@ -199,11 +195,21 @@ namespace ZLPlugin_LisPacs_MR
             {
                 int res = 1;
                 int waittingdate = 0;
-                LisPacs_MR_Bll.IsAgree(out res, out waittingdate);
+                int yzzState = 0;
+                LisPacs_MR_Bll.IsAgree(out res, out waittingdate, out yzzState);
                 if (res == 0)//互认关闭
                 {
                     return true;
                 }
+                if (yzzState==1)
+                {
+                    #region 仅印江人民医院使用,仅支持住院,因为一张纸发送医嘱后也会触发此方法
+                     if (lngModual == 1252)
+                      {
+                          return true;
+                      }
+                    #endregion
+                }
                 string code = "";
                 List<Codes> listlis;
                 List<Codes> listpacs;