You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
395 lines
16 KiB
395 lines
16 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Newtonsoft.Json;
|
|
namespace PeisStart.Tests
|
|
{
|
|
class Program
|
|
{
|
|
public static T DeserializeObject<T>(string data) where T : class
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<T>(data);
|
|
return obj;
|
|
}
|
|
public static string SerializeObject(object data)
|
|
{
|
|
string str = JsonConvert.SerializeObject(data);
|
|
return str;
|
|
}
|
|
static void Main(string[] args)
|
|
{
|
|
/*
|
|
string strJson = @"{
|
|
'patientinfo':{
|
|
'patientRegisterId': '3a0c7f6e-3ff1-fef6-c568-6f541aabe87a',
|
|
'patientRegisterNo': '202307190001',
|
|
'patientName': '李晓阳 7',
|
|
'sexName': '未知',
|
|
'age': 46,
|
|
'idNo': '',
|
|
'mobileTelephone': '13800138000',
|
|
'patientNo': '6',
|
|
'medicalTimes': 1,
|
|
'jobCardNo': '',
|
|
'medicalCardNo': '',
|
|
'customerOrgName': '个人体检',
|
|
'departmentName': '个人体检',
|
|
'customerOrgGroupName': '',
|
|
'medicalPackageName': '',
|
|
'personnelTypeName': '',
|
|
'medicalCenterAddress': '',
|
|
'medicalCenterTelphone': '',
|
|
'medicalCenterFax': ''
|
|
},
|
|
'asbitemlist': [
|
|
{
|
|
'guideName': '检验项目',
|
|
'displayOrder0': 1,
|
|
'asbitemName': '血常规',
|
|
'asbitemGuide': '1号楼2层采血窗口',
|
|
'displayOrder': 30
|
|
},
|
|
{
|
|
'guideName': '一般检查',
|
|
'displayOrder0': 2,
|
|
'asbitemName': '血压',
|
|
'asbitemGuide': '1号楼2-202',
|
|
'displayOrder': 6
|
|
},
|
|
{
|
|
'guideName': '一般检查',
|
|
'displayOrder0': 2,
|
|
'asbitemName': '身高体重',
|
|
'asbitemGuide': '1号楼2-201',
|
|
'displayOrder': 22
|
|
}
|
|
]
|
|
}";
|
|
|
|
patientinfo patinfo = new patientinfo()
|
|
{
|
|
patientRegisterId = "3a0c7f6e-3ff1-fef6-c568-6f541aabe87a",
|
|
patientRegisterNo = "202307190001",
|
|
patientName = "李晓阳 7",
|
|
sexName = "未知",
|
|
age = 46,
|
|
idNo = "",
|
|
mobileTelephone = "13800138000",
|
|
patientNo = "6",
|
|
medicalTimes = 1,
|
|
jobCardNo = "",
|
|
medicalCardNo = "",
|
|
customerOrgName = "个人体检",
|
|
departmentName = "个人体检",
|
|
customerOrgGroupName = null,
|
|
medicalPackageName = null,
|
|
personnelTypeName = null,
|
|
medicalCenterAddress = "",
|
|
medicalCenterTelphone = "",
|
|
medicalCenterFax = ""
|
|
};
|
|
|
|
List<asbitem> alist = new List<asbitem>();
|
|
asbitem a1 = new asbitem()
|
|
{
|
|
guideName = "检验项目",
|
|
displayOrder0 = 1,
|
|
asbitemName = "血常规",
|
|
asbitemGuide = "1号楼2层采血窗口",
|
|
displayOrder = 30
|
|
};
|
|
alist.Add(a1);
|
|
|
|
asbitem a2 = new asbitem()
|
|
{
|
|
guideName = "一般检查",
|
|
displayOrder0 = 2,
|
|
asbitemName = "血压",
|
|
asbitemGuide = "1号楼2-202",
|
|
displayOrder = 6
|
|
};
|
|
alist.Add(a2);
|
|
|
|
asbitem a3 = new asbitem()
|
|
{
|
|
guideName = "一般检查",
|
|
displayOrder0 = 2,
|
|
asbitemName = "身高体重",
|
|
asbitemGuide = "1号楼2-201",
|
|
displayOrder = 22
|
|
};
|
|
alist.Add(a3);
|
|
|
|
List<para> listp = new List<para>();
|
|
para p1 = new para()
|
|
{
|
|
Name = "hospName",
|
|
Value = "XX第一人民医院"
|
|
};
|
|
listp.Add(p1);
|
|
|
|
para p2 = new para()
|
|
{
|
|
Name = "printer",
|
|
Value = "张打印人"
|
|
};
|
|
listp.Add(p2);
|
|
|
|
JsonCls cls = new JsonCls()
|
|
{
|
|
patientinfo = patinfo,
|
|
asbitemlist = alist
|
|
};
|
|
|
|
JsonClsEx ex = new JsonClsEx()
|
|
{
|
|
ReportCode = "001",
|
|
token = "1223423423",
|
|
ReportTable = cls,
|
|
Parameters=listp
|
|
};
|
|
|
|
// JsonCls js = DeserializeObject<JsonCls>(strJson);
|
|
|
|
// string aa=js.patientinfo.ToString();
|
|
// string a1 = SerializeObject(js.patientinfo);
|
|
|
|
|
|
string a6 = SerializeObject(ex);
|
|
|
|
List<patientinfo> plist = new List<patientinfo>();
|
|
plist.Add(cls.patientinfo);
|
|
|
|
string a7 = SerializeObject(plist);
|
|
|
|
DataTable dt = DeserializeObject<DataTable>(a7);
|
|
*/
|
|
//zydjsontest();
|
|
|
|
dynamicType dType = new dynamicType();
|
|
dType.asMessage = @"{'ReportCode':'0001','token':'eyJhbGciOiJSUzI1NiIsImtpZCI6IkJDQUMwNkNFQjJFMDIwMDQwRTZGQzI5N0FDNUM4RUZBQzU1NTMzN0YiLCJ4NXQiOiJ2S3dHenJMZ0lBUU9iOEtYckZ5Ty1zVlZNMzgiLCJ0eXAiOiJhdCtqd3QifQ.eyJzdWIiOiIzYTBjNDE4MC0xMDdjLTBjODktYjI1Yi0wYmQzNDY2NmRjZWMiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsImVtYWlsIjoiYWRtaW5AYWJwLmlvIiwicm9sZSI6ImFkbWluIiwiZ2l2ZW5fbmFtZSI6ImFkbWluIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjoiRmFsc2UiLCJlbWFpbF92ZXJpZmllZCI6IkZhbHNlIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsIm9pX3Byc3QiOiJQZWlzX0FwcCIsIm9pX2F1X2lkIjoiM2EwZDI3Y2EtNjYzOC1lMmMzLTllMDItMDc4MjRkMjgyMTg0IiwiY2xpZW50X2lkIjoiUGVpc19BcHAiLCJvaV90a25faWQiOiIzYTBkMjdjYS02NjNjLTY5YTYtYjI2ZS00ZmUyM2FhNGZjNWEiLCJhdWQiOiJQZWlzIiwic2NvcGUiOiJQZWlzIG9mZmxpbmVfYWNjZXNzIiwiZXhwIjoxNjkyNTg2OTYxLCJpc3MiOiJodHRwOi8vMTQwLjE0My4xNjIuMzk6OTUyOS8iLCJpYXQiOjE2OTI1Nzk3NjF9.OP7WKVGBn0WlFZcgRoTe6lVDfRFTp3P35dEDlGsMLBqiCnxaBckWtKmWUOboyINbac14YdPgqtSC_cETUy_kYhLTvc6h7WnFGgD70Wql7NtXVIFWBicn4SjIKCKyzO-0QYz08XODqMcw5mgPNPakUcFiUQtFdGkd8VoYkmFWkAVBUAyjIWC0IVnQM8KNPnZnzwLv4O8HwVnWkiiNkYtioDzdo8SN00TM8oJHcArJjPQnNsnRu-xBSAldhTWKQhekLT6-g206dl1Ufq1Ms4pts6fWKFvECVEgrq1hgUi8NPZJLqKq2h6EWEHSU2Z5bv_WoTtF0uIfQTqJIz6xEdNbMA','Parameters':[{'Name':'printer','Value':'admin'},{'Name':'hisLog','Value':'UpLoad/3a0c7f6e-3ff1-fef6-c568-6f541aabe87a.png'}],'ReportTable':{'patientRegisterId':'3a0c7f6e-3ff1-fef6-c568-6f541aabe87a','patientRegisterNo':'202307190001','customerOrgShortName':'XXXXdanwei','patientName':'李晓阳 7','photo':'http://140.143.162.39:9529/UpLoad/3a0c7f6e-3ff1-fef6-c568-6f541aabe87a.png','sexName':'未知','age':46,'medicalStartDate':'2023-07-25','idNo':'','mobileTelephone':'13800138000','patientNo':'6','medicalTimes':1,'jobCardNo':'','medicalCardNo':'','customerOrgName':'个人体检','departmentName':'个人体检','customerOrgGroupName':null,'medicalPackageName':null,'personnelTypeName':null,'medicalCenterAddress':'','medicalCenterTelphone':'','medicalCenterFax':'','detail':[{'guideName':'检验项目','asbitemCount':1,'displayOrder':1,'detail_Name':[{'asbitemName':'血常规','asbitemGuide':'1号楼2层采血窗口','displayOrder':30}]},{'guideName':'一般检查','asbitemCount':2,'displayOrder':2,'detail_Name':[{'asbitemName':'血压','asbitemGuide':'1号楼2-202','displayOrder':6},{'asbitemName':'身高体重','asbitemGuide':'1号楼2-201','displayOrder':22}]},{'guideName':'功能检查','asbitemCount':2,'displayOrder':3,'detail_Name':[{'asbitemName':'腰椎正位片','asbitemGuide':'1号楼3层放射科','displayOrder':15},{'asbitemName':'胸部正位片','asbitemGuide':'1号楼3层放射科','displayOrder':17}]}]}}";
|
|
dType.asApiUrl = "http://140.143.162.39:9529";
|
|
dType.asWebUrl = "http://140.143.162.39:8081/";
|
|
|
|
ReportMethods met = new ReportMethods();
|
|
|
|
dynamic msg = dType;
|
|
met.PrintPre(msg);
|
|
}
|
|
|
|
|
|
|
|
|
|
static void zydjsontest()
|
|
{
|
|
string str=@"{
|
|
'patientRegisterId': '3a0c7f6e-3ff1-fef6-c568-6f541aabe87a',
|
|
'patientRegisterNo': '202307190001',
|
|
'patientName': '李晓阳 7',
|
|
'sexName': '未知',
|
|
'age': 46,
|
|
'idNo': '',
|
|
'mobileTelephone': '13800138000',
|
|
'patientNo': '6',
|
|
'medicalTimes': 1,
|
|
'jobCardNo': '',
|
|
'medicalCardNo': '',
|
|
'customerOrgName': '个人体检',
|
|
'departmentName': '个人体检',
|
|
'customerOrgGroupName': null,
|
|
'medicalPackageName': null,
|
|
'personnelTypeName': null,
|
|
'medicalCenterAddress': '',
|
|
'medicalCenterTelphone': '',
|
|
'medicalCenterFax': '',
|
|
'detail': [
|
|
{
|
|
'guideName': '检验项目',
|
|
'displayOrder': 1,
|
|
'detail_Name': [
|
|
{
|
|
'asbitemName': '血常规',
|
|
'asbitemGuide': '1号楼2层采血窗口',
|
|
'displayOrder': 30
|
|
}
|
|
]
|
|
},
|
|
{
|
|
'guideName': '一般检查',
|
|
'displayOrder': 2,
|
|
'detail_Name': [
|
|
{
|
|
'asbitemName': '血压',
|
|
'asbitemGuide': '1号楼2-202',
|
|
'displayOrder': 6
|
|
},
|
|
{
|
|
'asbitemName': '身高体重',
|
|
'asbitemGuide': '1号楼2-201',
|
|
'displayOrder': 22
|
|
}
|
|
]
|
|
},
|
|
{
|
|
'guideName': '功能检查',
|
|
'displayOrder': 3,
|
|
'detail_Name': [
|
|
{
|
|
'asbitemName': '腰椎正位片',
|
|
'asbitemGuide': '1号楼3层放射科',
|
|
'displayOrder': 15
|
|
},
|
|
{
|
|
'asbitemName': '胸部正位片',
|
|
'asbitemGuide': '1号楼3层放射科',
|
|
'displayOrder': 17
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}";
|
|
zyd dj = DeserializeObject<zyd>(str);
|
|
|
|
patientinfo pat = new patientinfo()
|
|
{
|
|
patientRegisterId = dj.patientRegisterId,
|
|
patientRegisterNo = dj.patientRegisterNo,
|
|
patientName = dj.patientName,
|
|
sexName = dj.sexName,
|
|
age = dj.age,
|
|
idNo = dj.idNo,
|
|
mobileTelephone = dj.mobileTelephone,
|
|
patientNo = dj.patientNo,
|
|
medicalTimes = dj.medicalTimes,
|
|
jobCardNo = dj.jobCardNo,
|
|
medicalCardNo = dj.medicalCardNo,
|
|
customerOrgName = dj.customerOrgName,
|
|
departmentName = dj.departmentName,
|
|
customerOrgGroupName = dj.customerOrgGroupName,
|
|
medicalPackageName = dj.medicalPackageName,
|
|
personnelTypeName = dj.personnelTypeName,
|
|
medicalCenterAddress = dj.medicalCenterAddress,
|
|
medicalCenterTelphone = dj.medicalCenterTelphone,
|
|
medicalCenterFax = dj.medicalCenterFax
|
|
};
|
|
List<patientinfo> plist = new List<patientinfo>();
|
|
plist.Add(pat);
|
|
|
|
List<guide> glist = new List<guide>();
|
|
List<asbitem> alist = new List<asbitem>();
|
|
foreach(var item in dj.detail)
|
|
{
|
|
guide ig = new guide()
|
|
{
|
|
guideName = item.guideName,
|
|
displayOrder = item.displayOrder
|
|
};
|
|
foreach(var d1 in item.detail_Name)
|
|
{
|
|
asbitem asb = new asbitem()
|
|
{
|
|
guideName=ig.guideName,
|
|
asbitemGuide = d1.asbitemGuide,
|
|
asbitemName = d1.asbitemName,
|
|
displayOrder = d1.displayOrder
|
|
};
|
|
alist.Add(asb);
|
|
}
|
|
glist.Add(ig);
|
|
}
|
|
|
|
List<dtBase> dlist = new List<dtBase>();
|
|
foreach (var item in plist)
|
|
dlist.Add(item);
|
|
|
|
foreach (var item in glist)
|
|
dlist.Add(item);
|
|
|
|
foreach (var item in alist)
|
|
dlist.Add(item);
|
|
|
|
JsonClsEx ex = new JsonClsEx()
|
|
{
|
|
ReportCode = "001",
|
|
token = "1223423423",
|
|
ReportTable = dlist
|
|
};
|
|
|
|
//string a6 = SerializeObject(ex);
|
|
|
|
//JsonClsEx ee = DeserializeObject<JsonClsEx>(a6);
|
|
//DataSet ds = ConvertToDataSet(ee.ReportTable);
|
|
|
|
//FastReport.Report report = new FastReport.Report();
|
|
//report.RegisterData(ds);
|
|
//report.Design();
|
|
}
|
|
|
|
//List转DataSet
|
|
public static DataSet ConvertToDataSet<T>(IList<T> list)
|
|
{
|
|
if (list == null || list.Count <= 0)
|
|
{
|
|
return null;
|
|
}
|
|
DataSet ds = new DataSet();
|
|
DataTable dt = new DataTable(typeof(T).Name);
|
|
DataColumn column;
|
|
DataRow row;
|
|
System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
|
|
foreach (T t in list)
|
|
{
|
|
if (t == null)
|
|
{
|
|
continue;
|
|
}
|
|
row = dt.NewRow();
|
|
for (int i = 0, j = myPropertyInfo.Length; i < j; i++)
|
|
{
|
|
System.Reflection.PropertyInfo pi = myPropertyInfo[i];
|
|
string name = pi.Name;
|
|
if (dt.Columns[name] == null)
|
|
{
|
|
column = new DataColumn(name, pi.PropertyType);
|
|
dt.Columns.Add(column);
|
|
}
|
|
row[name] = pi.GetValue(t, null);
|
|
}
|
|
dt.Rows.Add(row);
|
|
}
|
|
ds.Tables.Add(dt);
|
|
return ds;
|
|
}
|
|
|
|
//DataTable转List
|
|
public static List<T> GetList<T>(DataTable table)
|
|
{
|
|
List<T> list = new List<T>();
|
|
//T t = default(T);
|
|
//PropertyInfo[] propertypes = null;
|
|
//string tempName = string.Empty;
|
|
//foreach (DataRow row in table.Rows)
|
|
//{
|
|
// t = Activator.CreateInstance<T>();
|
|
// propertypes = t.GetType().GetProperties();
|
|
// foreach (PropertyInfo pro in propertypes)
|
|
// {
|
|
// tempName = pro.Name;
|
|
// if (table.Columns.Contains(tempName))
|
|
// {
|
|
// object value = row[tempName];
|
|
// if (!value.ToString().Equals(""))
|
|
// {
|
|
// pro.SetValue(t, value, null);
|
|
// }
|
|
// }
|
|
// }
|
|
// list.Add(t);
|
|
//}
|
|
return list.Count == 0 ? null : list;
|
|
}
|
|
}
|
|
}
|