200 lines
6.7 KiB
C#
200 lines
6.7 KiB
C#
|
using Newtonsoft.Json;
|
|||
|
using System;
|
|||
|
using System.IO;
|
|||
|
using System.Net;
|
|||
|
using System.Security.Cryptography;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace HL_FristAidPlatform_Public
|
|||
|
{
|
|||
|
public class Util
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
///
|
|||
|
/// </summary>
|
|||
|
/// <param name="summaryValue">MD5计算值</param>
|
|||
|
/// <param name="serviceCode">业务代码</param>
|
|||
|
/// <param name="parameter">参数</param>
|
|||
|
/// <returns></returns>
|
|||
|
public static string GetECG(string summaryValue, string serviceCode, string parameter)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string guid = Guid.NewGuid().ToString();
|
|||
|
string authorKey = Information.Hospital.Ecg_AuthorKey;
|
|||
|
string appId = Information.Hospital.Ecg_AppId;
|
|||
|
string token = Information.Hospital.Ecg_Token;
|
|||
|
string Url = Information.Hospital.Ecg_URL;
|
|||
|
|
|||
|
string postText = "header[authorKey]=" + authorKey + "&header[appId]=" + appId + "&header[token]=" + token + "&header[ssid]" +
|
|||
|
"=" + guid + "&header[service]=" + serviceCode + "&header[summary]=" + summaryValue;
|
|||
|
postText += parameter;
|
|||
|
string responseString = Util.ECGPost(Url, postText);
|
|||
|
return responseString;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
PublicClass.WriteErrorLog("Util", "GetECG:\r\n" + ex);
|
|||
|
return "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// MD5加密
|
|||
|
/// </summary>
|
|||
|
/// <param name="text"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public static string Encryption(string text)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//初始化MD5对象
|
|||
|
MD5 md5 = MD5.Create();
|
|||
|
//将源字符串转化为byte数组
|
|||
|
byte[] soucebyte = Encoding.UTF8.GetBytes(text);
|
|||
|
//soucebyte转化为mf5的byte数组
|
|||
|
byte[] md5bytes = md5.ComputeHash(soucebyte);
|
|||
|
//将md5的byte数组再转化为MD5数组
|
|||
|
StringBuilder sb = new StringBuilder();
|
|||
|
foreach (Byte b in md5bytes)
|
|||
|
{
|
|||
|
//x表示16进制,2表示2位
|
|||
|
sb.Append(b.ToString("x2"));
|
|||
|
}
|
|||
|
return sb.ToString();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
PublicClass.WriteErrorLog("Util", "Encryption:\r\n" + ex);
|
|||
|
return "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Post
|
|||
|
/// </summary>
|
|||
|
/// <param name="url"></param>
|
|||
|
/// <param name="t"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public static string ECGPost(string url, string postText)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var request = (HttpWebRequest)WebRequest.Create(url);
|
|||
|
request.Method = "POST";
|
|||
|
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
|
|||
|
//在转换字节时指定编码格式
|
|||
|
byte[] byteData = Encoding.UTF8.GetBytes(postText);
|
|||
|
var length = byteData.Length;
|
|||
|
request.ContentLength = length;
|
|||
|
var writer = request.GetRequestStream();
|
|||
|
writer.Write(byteData, 0, length);
|
|||
|
writer.Close();
|
|||
|
//接收数据
|
|||
|
var response = (HttpWebResponse)request.GetResponse();
|
|||
|
var responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")).ReadToEnd();
|
|||
|
return responseString;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
PublicClass.WriteErrorLog("Util", "ECGPost:\r\n" + ex);
|
|||
|
return "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static string ECGPostEncoding(string url, string postText)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var request = (HttpWebRequest)WebRequest.Create(url);
|
|||
|
request.Method = "POST";
|
|||
|
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
|
|||
|
//在转换字节时指定编码格式
|
|||
|
byte[] byteData = Encoding.UTF8.GetBytes(postText);
|
|||
|
var length = byteData.Length;
|
|||
|
request.ContentLength = length;
|
|||
|
var writer = request.GetRequestStream();
|
|||
|
writer.Write(byteData, 0, length);
|
|||
|
writer.Close();
|
|||
|
//接收数据
|
|||
|
var response = (HttpWebResponse)request.GetResponse();
|
|||
|
string responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")).ReadToEnd();
|
|||
|
responseString = JsonConvert.DeserializeObject(responseString).ToString();
|
|||
|
return responseString;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
PublicClass.WriteErrorLog("Util", "ECGPost:\r\n" + ex);
|
|||
|
return "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public enum ServiceCode
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 表示上传静态心电数据
|
|||
|
/// </summary>
|
|||
|
UPLOADEDATA,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 表示获取心电图的判读和报告
|
|||
|
/// </summary>
|
|||
|
GETEREPORT,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 提交心电医疗订单
|
|||
|
/// </summary>
|
|||
|
POSTMEDICALFORM,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询心电片段截图(代理模式)
|
|||
|
/// </summary>
|
|||
|
QUERYHEARTPICBYPROXY,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询心电图报告(代理模式)
|
|||
|
/// </summary>
|
|||
|
QUERYHEARTREPORTBYPROXY,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取动态密钥
|
|||
|
/// </summary>
|
|||
|
GETTOKEN,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取设备列表
|
|||
|
/// </summary>
|
|||
|
GETEQMTLIST,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 通过代理商获取服务机构
|
|||
|
/// </summary>
|
|||
|
GETSERVICEORGLIST,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 通过代理商获取动态报告
|
|||
|
/// </summary>
|
|||
|
GETDYNAMICREPORT,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 通过代理商获取动态合同
|
|||
|
/// </summary>
|
|||
|
GETDYNAMICWARDSHIP,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 通过代理商获取动态业务统计信息
|
|||
|
/// </summary>
|
|||
|
GETDYNAMICBSSTATIS,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 上传存储报告记录
|
|||
|
/// </summary>
|
|||
|
UPLOADSTOREREPORT,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询存储报告记录
|
|||
|
/// </summary>
|
|||
|
QUERYSTOREREPORT
|
|||
|
}
|
|||
|
}
|
|||
|
}
|