jeremy 8 months ago
parent
commit
f7404fc4bf

+ 50 - 0
src/VitalMixtureService/Factury/BaseApiHelper.cs

@@ -0,0 +1,50 @@
+using WingServerCommon.Log;
+
+namespace VitalService.Factury
+{
+    public class BaseApiHelper : IDisposable
+    {
+        protected readonly HttpClient _httpClient;
+
+        public BaseApiHelper(double seconds)
+        {
+            _httpClient = new HttpClient();
+            _httpClient.Timeout = TimeSpan.FromSeconds(seconds);
+        }
+
+        public async Task<string> GetResult(string url, string request, Dictionary<string, string> headers)
+        {
+            try
+            {
+                var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url);
+
+                if (headers != null && headers.Any())
+                {
+                    foreach (var header in headers)
+                    {
+                        httpRequestMessage.Headers.Add(header.Key, header.Value);
+                    }
+                }
+
+                httpRequestMessage.Content = new StringContent(request);
+
+                using (var response = await _httpClient.SendAsync(httpRequestMessage))
+                {
+                    response.EnsureSuccessStatusCode();
+                    var resString = await response.Content.ReadAsStringAsync();
+                    return resString;
+                }
+            }
+            catch (Exception ex)
+            {
+                Logger.WriteLineWarn($"VitalMixtureService BaseApiHelper GetResult error, ex:{ex}");
+            }
+            return string.Empty;
+        }
+
+        public void Dispose()
+        {
+            _httpClient?.Dispose();
+        }
+    }
+}

+ 117 - 0
src/VitalMixtureService/Factury/JingQiApiHelper.cs

@@ -0,0 +1,117 @@
+using Newtonsoft.Json;
+using WingServerCommon.Log;
+
+namespace VitalService.Factury
+{
+    public class JingQiApiHelper : BaseApiHelper
+    {
+        private string _serverUrl;
+
+        public JingQiApiHelper(string serverUrl, double seconds = 30) : base(seconds)
+        {
+            _serverUrl = serverUrl;
+            Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper init, serverUrl:{serverUrl}, seconds:{seconds}");
+        }
+
+        /// <summary>
+        /// 体检登记
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="headers"></param>
+        /// <returns></returns>
+        public async Task<JingQiResult<JingQiExamRegisterResult>> ExamRegisterAsync(JingQiExamRegisterRequest request, Dictionary<string, string> headers)
+        {
+            Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper ExamRegisterAsync start, request:{request}");
+            return await GetJingQiResult<JingQiExamRegisterResult>(JsonConvert.SerializeObject(request), headers);
+        }
+
+        /// <summary>
+        /// 删除登记记录
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="headers"></param>
+        /// <returns></returns>
+        public async Task<JingQiResult<JingQiExamDeleteResult>> ExamDeleteAsync(JingQiExamDeleteRequest request, Dictionary<string, string> headers)
+        {
+            Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper ExamDeleteAsync start, request:{request}");
+            return await GetJingQiResult<JingQiExamDeleteResult>(JsonConvert.SerializeObject(request), headers);
+        }
+
+        private async Task<JingQiResult<TResult>> GetJingQiResult<TResult>(string request, Dictionary<string, string> headers)
+        {
+            try
+            {
+                var res = await GetResult(_serverUrl, request, headers);
+                Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper GetJingQiResult success, res:{res}");
+                if (!string.IsNullOrWhiteSpace(res))
+                {
+                    var jingQiResult = JsonConvert.DeserializeObject<JingQiResult<TResult>>(res);
+                    if (jingQiResult.status == "0")
+                    {
+                        Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper GetJingQiResult success, ErroMsg:{jingQiResult.ErroMsg}");
+                    }
+                    else
+                    {
+                        Logger.WriteLineError($"VitalMixtureService JingQiApiHelper GetJingQiResult failed, status:{jingQiResult.status}, ErroMsg:{jingQiResult.ErroMsg}");
+                    }
+                    return jingQiResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                Logger.WriteLineWarn($"VitalMixtureService JingQiApiHelper GetJingQiResult error, ex:{ex}");
+            }
+            return default;
+        }
+
+
+    }
+
+    public class JingQiResult<TResult>
+    {
+        public string status { get; set; }
+        public string ErroMsg { get; set; }
+        public TResult data { get; set; }
+    }
+
+    #region 体检登记
+
+    public class JingQiExamRegisterRequest
+    {
+        public string identity { get; set; }
+        public string orgcode { get; set; }
+        public string usrcode { get; set; }
+        public string phydatetime { get; set; }
+    }
+
+    public class JingQiExamRegisterResult
+    {
+        public string phyid { get; set; }
+        public string PATNAME { get; set; }
+        public string GRENDER { get; set; }
+        public string PATAGE { get; set; }
+        public string PHONE { get; set; }
+        public string ORGNAME { get; set; }
+        public string adress { get; set; }
+        public string lisclu { get; set; }
+        public string PHYDATE { get; set; }
+        public string PatientID { get; set; }
+        public string NO { get; set; }
+    }
+
+    #endregion
+
+    #region 取消登记
+
+    public class JingQiExamDeleteRequest
+    {
+        public string phyid { get; set; }
+        public string modstatus { get; set; } = "1";
+    }
+
+    public class JingQiExamDeleteResult
+    {
+    }
+
+    #endregion
+}

+ 7 - 0
src/VitalMixtureService/FrontService/Service/BaseService.cs

@@ -17,6 +17,7 @@ using VitalService.Controllers;
 using System.Threading;
 using WingInterfaceLibrary.Interface.DBInterface;
 using WingInterfaceLibrary.Enum;
+using VitalService.Factury;
 
 namespace VitalService.Service
 {
@@ -76,6 +77,7 @@ namespace VitalService.Service
         private IVitalFacturyUserDBService _vitalFacturyUserDBService;
         private PigeonUpload _pigeonUpload;
         private List<string> _appsettingCrowdLabels = new List<string>();
+        private JingQiApiHelper _jingQiApiHelper;
         /// <summary>
         /// Init service
         /// </summary>
@@ -132,6 +134,11 @@ namespace VitalService.Service
             AnalyzeStrategy.StorageHandler = UploadData;
             StartApi();
             LoadResourceInfos();
+            var jingQiServerUrl = EnvironmentConfigManager.GetParammeter<StringParameter>("Vital", "JingQiServerUrl").Value;
+            if (!string.IsNullOrWhiteSpace(jingQiServerUrl))
+            {
+                _jingQiApiHelper = new JingQiApiHelper(jingQiServerUrl);
+            }
         }
 
         /// <summary>

+ 0 - 3
src/VitalMixtureService/FrontService/Service/FacturyUserService.cs

@@ -1,12 +1,9 @@
 using WingServerCommon.Service;
-using WingServerCommon.Mapper;
 using WingInterfaceLibrary.Interface.VitalInterface;
 using WingInterfaceLibrary.Request.Vital;
 using WingInterfaceLibrary.Request.DBVitalRequest;
 using WingInterfaceLibrary.DTO.Vital;
 using WingInterfaceLibrary.Request;
-using WingInterfaceLibrary.Enum.VitalEnum;
-using WingInterfaceLibrary.Enum;
 
 namespace VitalService.Service
 {

+ 2 - 1
src/appsettings.json

@@ -215,7 +215,8 @@
     "CommitInvervalSeconds": 60,
     "DoctorStatisticsSetting":"230382",
     "DoctorStatisticsSeconds" : 600,
-    "IsNeedImageReport": true
+    "IsNeedImageReport": true,
+    "JingQiServerUrl": ""
   },
   "HealthExamBooking":{
     "GroupExamWebUrl": "http://127.0.0.1:8408/#/groupExam?code={0}",