tijian_jichuang/Code/KeFu/frmShowBaoGao.cs
2025-02-20 11:54:48 +08:00

2318 lines
96 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SOH.Kernel;
using EAS.Services;
using SOH.BLL;
using SOH.Entities;
using SOH.Data;
using SOH.Common;
using System.Text.RegularExpressions;
using FastReport;
using FastReport.Data;
using FastReport.Design;
using EAS;
using SOH.Entities.DTO;
using System.Collections;
using FastReport.Export.Pdf;
using System.IO;
using System.Drawing.Imaging;
namespace SOH.KeFu
{
public partial class frmShowBaoGao : Form
{
string tm = "";
int mb = 0;
DataTable dtnew = new DataTable();
DataTable dtnew2 = new DataTable();
public bool showview = false;
public frmShowBaoGao()
{
InitializeComponent();
}
public frmShowBaoGao(string tmh)
{
tm = tmh;
InitializeComponent();
}
public frmShowBaoGao(string tmh, int mbh)
{
tm = tmh;
mb = mbh;
InitializeComponent();
}
string bj = "";
string title = "";
string sjh = "";
string sfzh = "";
short cjfw = 0;
string bmbm = "";
string xm = "";
string hfbz = "";
DataTable dt = new DataTable();
public FastReport.Report re = new FastReport.Report();
private void frmShowBaoGao_Load(object sender, EventArgs e)
{
}
public void init(string tms, int mbhs)
{
int fddm = Convert.ToInt32(LoginUser.yydm);
int xb = 0;
string pahzbj = "0";
//var gr = db.t_grgzbs.FirstOrDefault(t => t.tm == itm);
//var tt = db.t_ttgzbs.FirstOrDefault(t => t.tm == itm);
this.FormBorderStyle = FormBorderStyle.SizableToolWindow;
this.WindowState = FormWindowState.Maximized;
switch (mbhs)
{
case 0:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg.frx");
break;
case 1:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg1.frx");
break;
case 2:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg2.frx");
break;
case 3:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg3.frx");
break;
case 4:
var vser = ServiceContainer.GetService<IZongJian>();
var gzb = vser.getGzbByTms(int.Parse(tms));
if (gzb == null)
{
MessageBox.Show(tms + "当前条码无效!");
return;
}
DataTable jydDt = vser.GetJydDtByTmFromKSbm(gzb.tm);
if (jydDt.Rows.Count != 0)
{
foreach (DataRow dr in jydDt.Rows)
{
//DataTable jgDt = vser.GetJyjgByTm(dr["jytm"].ToString());
//DataTable jgDt = vser.GetJyjgByTmFromZhxm(gzb.tm, dr["zhbm"].ToString());
DataTable jgDt = vser.GetJyjgByTmFromKSbm2(gzb.tm, dr["ksbm"].ToString(), gzb.xb);
if (jgDt.Rows.Count == 0)
{
MessageBox.Show(tms + "当前条码号检验结果为空!");
return;
}
foreach (DataRow dr1 in jgDt.Rows)
{
double jg = 0;
double cksx = 0;
double ckxx = 0;
if (double.TryParse(dr1["jg"].ToString(), out jg) && double.TryParse(dr1["cksx"].ToString(), out cksx) && double.TryParse(dr1["ckxx"].ToString(), out ckxx))
{
if (jg < ckxx)
dr1["bz"] = "↓";
else if (jg > cksx)
dr1["bz"] = "↑";
}
}
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\hyxmzyd3.frx");
//re.RegisterData(jgDt, "jy_sqd_jg");
re.RegisterData(jgDt, "Table");
re.SetParameterValue("tmh", gzb.tm);
re.SetParameterValue("xm", gzb.xm);
re.SetParameterValue("xb", gzb.xb);
re.SetParameterValue("nl", gzb.nl);
re.SetParameterValue("hyh", gzb.hyh);
re.SetParameterValue("dwmc", gzb.dwmc);
re.SetParameterValue("tjrq", gzb.tjrq);
if (LoginUser.yydm.Equals("1"))
{
re.SetParameterValue("name", "德州");
re.SetParameterValue("dh", "三八东路鑫星国际大厦三楼");
re.SetParameterValue("dz", "0534-7052967");
}
else if (LoginUser.yydm.Equals("2"))
{
re.SetParameterValue("name", "淄博");
re.SetParameterValue("dh", "0533-7997555");
re.SetParameterValue("dz", "鲁泰大道99号汇金大厦西裙楼三楼");
string lsdt = vser.GetZjysXm2(jgDt.Rows[0][0].ToString());
dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable;
if (dtnew.Rows.Count == 0)
{
lsdt = vser.GetZjysXm(jgDt.Rows[0][0].ToString());
dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable;
}
dtnew.Columns.Add(new DataColumn("image", typeof(byte[])));
foreach (DataRow drnew in dtnew.Rows)
{
if (drnew["image1"].ToString() == "")
{
string zdys = drnew["xm"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
drnew["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(drnew["image1"].ToString());
drnew["image"] = bs;
}
}
string lsdt2 = vser.GetZjysXm3("trdwj");
dtnew2 = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt2, typeof(DataTable)) as DataTable;
dtnew2.Columns.Add(new DataColumn("image", typeof(byte[])));
foreach (DataRow drnew2 in dtnew2.Rows)
{
if (drnew2["image1"].ToString() == "")
{
string zdys = drnew2["xm"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
drnew2["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(drnew2["image1"].ToString());
drnew2["image"] = bs;
}
}
re.RegisterData(dtnew, "hzfxImage");
re.RegisterData(dtnew2, "hzfxImage2");
}
else
{
re.SetParameterValue("name", "");
re.SetParameterValue("dh", "");
re.SetParameterValue("dz", "");
}
re.SetParameterValue("dyry", LoginUser.xm);
re.Preview = previewControl1;
print();
}
}
break;
case 5:
var vser1 = ServiceContainer.GetService<IZongJian>();
var gzb1 = vser1.getGzbByTms(int.Parse(tms));
if (gzb1 == null)
{
MessageBox.Show(tms + "当前条码无效!");
return;
}
DataTable jydDt1 = vser1.GetJydDtByTmFromKSbm(gzb1.tm);
if (jydDt1.Rows.Count != 0)
{
foreach (DataRow dr in jydDt1.Rows)
{
//DataTable jgDt = vser.GetJyjgByTm(dr["jytm"].ToString());
//DataTable jgDt = vser.GetJyjgByTmFromZhxm(gzb.tm, dr["zhbm"].ToString());
DataTable jgDt1 = vser1.GetJyjgByTmFromKSbm2(gzb1.tm, dr["ksbm"].ToString(),gzb1.xb);
if (jgDt1.Rows.Count == 0)
{
MessageBox.Show(tms + "当前条码号检验结果为空!");
return;
}
foreach (DataRow dr1 in jgDt1.Rows)
{
double jg = 0;
double cksx = 0;
double ckxx = 0;
if (double.TryParse(dr1["jg"].ToString(), out jg) && double.TryParse(dr1["cksx"].ToString(), out cksx) && double.TryParse(dr1["ckxx"].ToString(), out ckxx))
{
if (jg < ckxx)
dr1["bz"] = "↓";
else if (jg > cksx)
dr1["bz"] = "↑";
}
}
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\hyxmzyd3.frx");
//re.RegisterData(jgDt, "jy_sqd_jg");
re.RegisterData(jgDt1, "Table");
re.SetParameterValue("tmh", gzb1.tm);
re.SetParameterValue("xm", gzb1.xm);
re.SetParameterValue("xb", gzb1.xb);
re.SetParameterValue("nl", gzb1.nl);
re.SetParameterValue("hyh", gzb1.hyh);
re.SetParameterValue("dwmc", gzb1.dwmc);
re.SetParameterValue("tjrq", gzb1.tjrq);
if (LoginUser.yydm.Equals("1"))
{
re.SetParameterValue("name", "德州");
re.SetParameterValue("dh", "三八东路鑫星国际大厦三楼");
re.SetParameterValue("dz", "0534-7052967");
}
else if (LoginUser.yydm.Equals("2"))
{
re.SetParameterValue("name", "淄博");
re.SetParameterValue("dh", "0533-7997555");
re.SetParameterValue("dz", "鲁泰大道99号汇金大厦西裙楼三楼");
string lsdt = vser1.GetZjysXm2(jgDt1.Rows[0][0].ToString());
dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable;
if (dtnew.Rows.Count == 0)
{
lsdt = vser1.GetZjysXm(jgDt1.Rows[0][0].ToString());
dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable;
}
dtnew.Columns.Add(new DataColumn("image", typeof(byte[])));
foreach (DataRow drnew in dtnew.Rows)
{
if (drnew["image1"].ToString() == "")
{
string zdys = drnew["xm"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
drnew["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(drnew["image1"].ToString());
drnew["image"] = bs;
}
}
string lsdt2 = vser1.GetZjysXm3("trdwj");
dtnew2 = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt2, typeof(DataTable)) as DataTable;
dtnew2.Columns.Add(new DataColumn("image", typeof(byte[])));
foreach (DataRow drnew2 in dtnew2.Rows)
{
if (drnew2["image1"].ToString() == "")
{
string zdys = drnew2["xm"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
drnew2["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(drnew2["image1"].ToString());
drnew2["image"] = bs;
}
}
re.RegisterData(dtnew, "hzfxImage");
re.RegisterData(dtnew2, "hzfxImage2");
}
else
{
re.SetParameterValue("name", "");
re.SetParameterValue("dh", "");
re.SetParameterValue("dz", "");
}
re.SetParameterValue("dyry", LoginUser.xm);
re.Preview = previewControl1;
//print();
}
}
break;
case 6:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\zbcc_tjbg.frx");
break;
case 7:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg.frx");
pahzbj = "1";
break;
default:
re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg.frx");
break;
}
DataTable ccdt = new DataTable();
ccdt.Columns.Add("bt", typeof(string));
ccdt.Columns.Add("sj", typeof(string));
ccdt.Columns.Add("jg", typeof(string));
ccdt.Columns.Add("img", typeof(byte[]));
ccdt.Columns.Add("ksbm", typeof(string));
var ccbg = ServiceContainer.GetService<It_tempdjxm>();
List<t_ccbg> ccbgs = ccbg.getCCBG(0, tms);
var vkssver = ServiceContainer.GetService<It_ks>();
List<keshi> ccks = vkssver.getccks();
string grgzbString = ServiceContainer.GetService<It_grgzb>().GetGrgzbListByTm(int.Parse(tms.Trim()));
string ttgzbString = ServiceContainer.GetService<It_ttgzb>().GetTtgzbListByTm(int.Parse(tms.Trim()));
int hyh = 0;
//创建个人report或者团体report
if (grgzbString.Length > 2)
{
bj = "个人体检";
title = "个检";
DataTable grgzbDt = Newtonsoft.Json.JsonConvert.DeserializeObject(grgzbString, typeof(DataTable)) as DataTable;
sjh = grgzbDt.Rows[0]["dh"].ToString();
sfzh = grgzbDt.Rows[0]["sfzh"].ToString();
xm = grgzbDt.Rows[0]["xm"].ToString();
bmbm = "";
hfbz= grgzbDt.Rows[0]["hfbz"].ToString();
xb = Convert.ToInt32(grgzbDt.Rows[0]["xb"].ToString());
re.RegisterData(grgzbDt, "xxTable");
hyh = Convert.ToInt32(grgzbDt.Rows[0]["hyh"]);
}
else
{
DataTable ttgzbDt = Newtonsoft.Json.JsonConvert.DeserializeObject(ttgzbString, typeof(DataTable)) as DataTable;
try
{
title = ServiceContainer.GetService<IZongJian>().GetKhmcByHtbm(Convert.ToInt32(ttgzbDt.Rows[0]["htbm"]));
bj = ServiceContainer.GetService<IZongJian>().GetHtbjByHtbm(Convert.ToInt32(ttgzbDt.Rows[0]["htbm"]));
cjfw = ServiceContainer.GetService<IZongJian>().GetcjfwByHtbm(Convert.ToInt32(ttgzbDt.Rows[0]["htbm"]));
if (cjfw != 0)
{
bj = "";
title = "";
}
sjh = ttgzbDt.Rows[0]["tel"].ToString();
sfzh = ttgzbDt.Rows[0]["sfzh"].ToString();
xm = ttgzbDt.Rows[0]["xm"].ToString();
hfbz = pahzbj;
bmbm = ttgzbDt.Rows[0]["ssbm"].ToString();
xb = Convert.ToInt32(ttgzbDt.Rows[0]["xb"].ToString());
re.RegisterData(ttgzbDt, "xxTable");
hyh = Convert.ToInt32(ttgzbDt.Rows[0]["hyh"]);
}
catch (Exception ex)
{
throw ex;
}
}
re.SetParameterValue("bj", bj);
re.SetParameterValue("title", title);
re.SetParameterValue("sjh", sjh);
re.SetParameterValue("sfzh", sfzh);
re.SetParameterValue("bmbm", bmbm);
re.SetParameterValue("sfzhOn", hfbz);
//创建第一页体检套餐 参数
string getTcStr = ServiceContainer.GetService<It_ttgzb>().GetTtTcByTm(int.Parse(tms.Trim()));
DataTable tcDt = Newtonsoft.Json.JsonConvert.DeserializeObject(getTcStr, typeof(DataTable)) as DataTable;
if (tcDt.Rows.Count != 0)
{
re.SetParameterValue("tcmc", tcDt.Rows[0]["tcmc"].ToString().Trim());
}
else
{
re.SetParameterValue("tcmc", "");
}
if (fddm == 2)
{
//创建心电图报告
DataTable tjjdImageDt = ServiceContainer.GetService<It_tjjd>().getTjjdImage(Convert.ToInt32(tms.Trim()), 21);
if (tjjdImageDt.Rows.Count != 0&& tjjdImageDt.Rows[0]["image"].ToString().Length > 10)
{
re.RegisterData(tjjdImageDt, "xdtbgDt");
re.SetParameterValue("xdtImageOn", "yes");
}
else
{
re.SetParameterValue("xdtImageOn", "no");
}
}
//创建汇总分析表datatable
string hzfxString = ServiceContainer.GetService<IZongJian>().GetHzfxByTm(int.Parse(tms.Trim()));
DataTable hzfxDt = Newtonsoft.Json.JsonConvert.DeserializeObject(hzfxString, typeof(DataTable)) as DataTable;
var vserver = ServiceContainer.GetService<IZongJian>();
if (hzfxDt.Rows.Count != 0)
{
string lsdt = vserver.GetZjysXm(hzfxDt.Rows[0][4].ToString());
dt = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable;
if(dt.Rows.Count == 0)
{
DataTable hzfxImage = new DataTable();
hzfxImage.Columns.Add("xm");
hzfxImage.Columns.Add("czym");
hzfxImage.Columns.Add("image");
re.RegisterData(hzfxImage, "hzfxImage");
}else
{
dt.Columns.Add(new DataColumn("image", typeof(byte[])));
foreach (DataRow dr in dt.Rows)
{
if (dr["image1"].ToString() == "")
{
string zdys = dr["xm"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
dr["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(dr["image1"].ToString());
dr["image"] = bs;
}
}
//byte[] bs = Convert.FromBase64String(tjdr["image1"].ToString());
re.RegisterData(dt, "hzfxImage");
re.RegisterData(hzfxDt, "hzfxTable");
re.SetParameterValue("hzfxOn", "yes");
//查询总检医生中文名称,插入到参数里
re.SetParameterValue("zjys", dt.Rows[0][0].ToString());
re.SetParameterValue("zjysImage", dt.Rows[0][2].ToString());
}
}
else
{
/*re.RegisterData("", "hzfxImage");
re.RegisterData("", "hzfxTable");*/
DataTable hzfxImage = new DataTable();
hzfxImage.Columns.Add("xm");
hzfxImage.Columns.Add("czym");
hzfxImage.Columns.Add("image");
re.RegisterData(hzfxImage, "hzfxImage");
re.SetParameterValue("hzfxOn", "no");
re.SetParameterValue("zjys", "");
}
//创建体检汇总datatable
string tjhzString = ServiceContainer.GetService<IZongJian>().GetTjhzByTm(int.Parse(tms.Trim()), fddm);
DataTable tjhzDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjhzString, typeof(DataTable)) as DataTable;
int a = 1;
if (tjhzDt.Rows.Count != 0)
{
for (int i = 0; i < tjhzDt.Rows.Count; i++)
{
tjhzDt.Rows[i]["ksmc"] = a.ToString() + "、" + tjhzDt.Rows[i]["ksmc"].ToString() + ":";
a++;
}
re.RegisterData(tjhzDt, "tjhzTable");
re.SetParameterValue("tjhzOn", "yes");
string explainStr = ServiceContainer.GetService<IZongJian>().GetExplain(int.Parse(tms.Trim()), fddm);
if (explainStr.Length > 0)
{
re.SetParameterValue("explain", explainStr);
re.SetParameterValue("explainOn", "yes");
}
else
{
re.SetParameterValue("explainOn", "no");
}
}
else
{
DataTable tjhzDt2 = new DataTable();
tjhzDt2.Columns.Add("ksmc");
tjhzDt2.Columns.Add("zdjg");
re.RegisterData(tjhzDt2, "tjhzTable");
re.SetParameterValue("tjhzOn", "no");
}
//查询健康指导
List<int> jbtjlist = vserver.GetJbtjListByTm(int.Parse(tms.Trim()));
if (jbtjlist.Count != 0)
{
DataTable jbkDt = new DataTable();
string jbks = vserver.GetJbkByJbbmToStr(jbtjlist.ToArray());
jbkDt = Newtonsoft.Json.JsonConvert.DeserializeObject(jbks, typeof(DataTable)) as DataTable;
//for (int i = 0; i < jbkDt.Rows.Count; i++)
//{
// if (jbkDt.Rows[i]["txnr"].ToString().Trim() == "")
// {
// jbkDt.Rows[i].Delete();
// }
//}
//jbkDt.AcceptChanges();
if (jbkDt.Rows.Count != 0)
{
re.RegisterData(jbkDt, "jbkDt");
re.SetParameterValue("notjbk", "yes");
}
else
{
re.SetParameterValue("notjbk", "no");
}
}
else
{
re.SetParameterValue("notjbk", "no");
}
//创建非化验项目的体检诊断datatable
string tjjdString = ServiceContainer.GetService<IZongJian>().GetTjjdStringByTm(int.Parse(tms.Trim()));
DataTable tjjdDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjjdString, typeof(DataTable)) as DataTable;
tjjdDt.Columns.Add(new DataColumn("image", typeof(byte[])));
//tjjdDt.Columns.Add(new DataColumn("image1", typeof(byte[])));
foreach (DataRow tjdr in tjjdDt.Rows)
{
//if (tjdr["image2"].ToString() == "")
//{
// tjdr["image1"] = "";
//}
//else
//{
// byte[] bs = Convert.FromBase64String(tjdr["image2"].ToString());
// tjdr["image1"] = bs;
//}
#region CT二次审核
if("王元玺".Equals(tjdr["czy"].ToString()))
{
if (tjdr["image2"].ToString() == "")
{
string zdys = "王德成/王元玺";
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
tjdr["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(tjdr["image2"].ToString());
tjdr["image"] = bs;
}
continue;
}
#endregion
if (tjdr["image1"].ToString() == "")
{
string zdys = tjdr["zdys"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
tjdr["image"] = stream.ToArray();
}
else
{
byte[] bs = Convert.FromBase64String(tjdr["image1"].ToString());
tjdr["image"] = bs;
}
}
//DataTable tjjdDt = ServiceContainer.GetService<IZongJian>().GetTjjdStringByTm2(int.Parse(tms.Trim()));
if (tjjdDt.Rows.Count != 0)
{
DataView dv = tjjdDt.DefaultView;
dv.Sort = "fxsx Asc";
DataTable tjjdDts = dv.ToTable();
#region
foreach (DataRow dr in tjjdDts.Rows)
{
int ks = int.Parse(dr["ksbm"].ToString());
if (ccbgs.Where(t => t.ksbm == ks).Any())
{
DataRow ccdr = ccdt.NewRow();
ccdr["jg"] = dr["zdjg"];
ccdr["ksbm"] = ks.ToString();
var k = ccks.Where(t => t.ksbm == ks).FirstOrDefault();
if (k != null)
{
ccdr["bt"] = k.bgbt;
}
Bitmap bm = new Bitmap(718, 425);
Graphics g = Graphics.FromImage(bm);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
int w = 718;
int h = 425;
g.FillRectangle(Brushes.White, 0, 0, w, h);
var ccksbg = ccbgs.Where(t => t.ksbm == ks).ToList();
if (ccksbg.Count == 1)
{
MemoryStream ms = new MemoryStream(ccksbg[0].image);
Image img = Image.FromStream(ms);
float wb = 1.0f * img.Width / w;
float hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(0, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2, (h - img.Height) / 2);
}
}
}
else if (ccksbg.Count == 2)
{
MemoryStream ms = new MemoryStream(ccksbg[0].image);
Image img = Image.FromStream(ms);
w = w / 2 - 10;
float wb = 1.0f * img.Width / w;
float hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[1].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5 + w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2);
}
}
}
else if (ccksbg.Count == 3)
{
MemoryStream ms = new MemoryStream(ccksbg[0].image);
Image img = Image.FromStream(ms);
w = w / 2 - 10;
h = h / 2 - 10;
float wb = 1.0f * img.Width / w;
float hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[1].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5 + w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[2].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5 + w / 2, (h - vh) / 2 + h, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2 + h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w / 2, 0 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2 + h);
}
}
}
else if (ccksbg.Count == 4)
{
MemoryStream ms = new MemoryStream(ccksbg[0].image);
Image img = Image.FromStream(ms);
w = w / 2 - 10;
h = h / 2 - 10;
float wb = 1.0f * img.Width / w;
float hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[1].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[2].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2 + h + 5, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + h + 5);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0 + h + 5, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + h + 5);
}
}
ms = new MemoryStream(ccksbg[3].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2 + h, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2 + h);
}
}
}
else if (ccksbg.Count == 5)
{
MemoryStream ms = new MemoryStream(ccksbg[0].image);
Image img = Image.FromStream(ms);
w = w / 3 - 10;
h = h / 2 - 10;
float wb = 1.0f * img.Width / w;
float hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[1].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[2].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(15 + 2 * w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 15 + 2 * w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[3].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5 + w / 2, (h - vh) / 2 + 5 + h, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2 + 5 + h, w, h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w / 2, 5 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2, w, h);
}
}
ms = new MemoryStream(ccksbg[4].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(10 + w + w / 2, (h - vh) / 2 + h + 5, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w + w / 2, (h - img.Height) / 2 + h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w + w / 2, 5 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w + w / 2, (h - img.Height) / 2);
}
}
}
else if (ccksbg.Count == 6)
{
MemoryStream ms = new MemoryStream(ccksbg[0].image);
Image img = Image.FromStream(ms);
w = w / 3 - 10;
h = h / 2 - 10;
float wb = 1.0f * img.Width / w;
float hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[1].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[2].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(15 + 2 * w, (h - vh) / 2, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 15 + 2 * w, 0, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[3].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(5, (h - vh) / 2 + 5 + h, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + 5 + h, w, h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 5 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2, w, h);
}
}
ms = new MemoryStream(ccksbg[4].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2 + h + 5, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2 + h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 5 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2);
}
}
ms = new MemoryStream(ccksbg[5].image);
img = Image.FromStream(ms);
//w = w / 2 - 10;
wb = 1.0f * img.Width / w;
hb = 1.0f * img.Height / h;
if (wb > hb)
{
if (wb > 1)
{
float vh = img.Height / wb;
g.DrawImage(img, new RectangleF(15 + w + w, (h - vh) / 2 + h + 5, w, vh));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 15 + w + w, (h - img.Height) / 2 + h);
}
}
else
{
if (hb > 1)
{
float vw = img.Width / hb;
g.DrawImage(img, new RectangleF((w - vw) / 2 + 15 + w + w, 5 + h, vw, h));
}
else
{
g.DrawImage(img, (w - img.Width) / 2 + 15 + w + w, (h - img.Height) / 2);
}
}
}
MemoryStream mso = new MemoryStream();
ImageCodecInfo myImageCodecInfo;
//获得JPEG格式的编码器
myImageCodecInfo = GetEncoderInfo("image/jpeg");
System.Drawing.Imaging.Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// for the Quality parameter category.
myEncoder = System.Drawing.Imaging.Encoder.Quality;
// EncoderParameter object in the array.
myEncoderParameters = new EncoderParameters(1);
//设置质量 数字越大质量越好但是到了一定程度质量就不会增加了MSDN上没有给范围只说是32为非负整数
myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;
bm.Save(mso, myImageCodecInfo, myEncoderParameters);
ccdr["img"] = mso.ToArray();
ccdt.Rows.Add(ccdr);
}
if (dr["djsj"].ToString().Length > 10)
{
dr["djsj"] = dr["djsj"].ToString().Substring(0, 10);
}
}
#endregion
re.RegisterData(tjjdDts, "tjjg");
}
else
{
//select '' as tm,'' as ksbm,'' as zdjg,'' as zdys,'' as czy,'' as czys,'' as ksmc,'' as bglk,'' as zdmc,'' as shsj,'' as djsj
DataTable tjjdDt2 = new DataTable();
tjjdDt2.Columns.Add("tm");
tjjdDt2.Columns.Add("ksbm");
tjjdDt2.Columns.Add("zdjg");
tjjdDt2.Columns.Add("zdys");
tjjdDt2.Columns.Add("czy");
tjjdDt2.Columns.Add("czys");
tjjdDt2.Columns.Add("ksmc");
tjjdDt2.Columns.Add("bglk");
tjjdDt2.Columns.Add("zdmc");
tjjdDt2.Columns.Add("shsj");
tjjdDt2.Columns.Add("djsj");
tjjdDt2.Columns.Add("fxsx");
tjjdDt2.Columns.Add("image");
re.RegisterData(tjjdDt2, "tjjg");
re.SetParameterValue("nothyxmOn", "no");
}
//创建化验项目的体检诊断datatable
string HytjjdString = ServiceContainer.GetService<IZongJian>().GetHyTjjdStringByTm(int.Parse(tms.Trim()), fddm);
DataTable HytjjdDt = Newtonsoft.Json.JsonConvert.DeserializeObject(HytjjdString, typeof(DataTable)) as DataTable;
HytjjdDt.Columns.Add(new DataColumn("image", typeof(byte[])));
HytjjdDt.Columns.Add(new DataColumn("imageZdys", typeof(byte[])));
foreach (DataRow hytjdr in HytjjdDt.Rows)
{
string imagezdys = ServiceContainer.GetService<IZongJian>().GetTjjdZdysStringByXm(hytjdr["zdys"].ToString()).ToString();
DataTable HytjjdZdysDt = Newtonsoft.Json.JsonConvert.DeserializeObject(imagezdys, typeof(DataTable)) as DataTable;
if (hytjdr["image1"].ToString() == "")
{
string zdys = hytjdr["zdys"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
hytjdr["image"] = stream.ToArray();
//byte[] bs2 = Convert.FromBase64String(ServiceContainer.GetService<IZongJian>().GetTjjdZdysStringByXm(hytjdr["zdys"].ToString()).ToString());
//hytjdr["image"] = bs2;
}
else
{
byte[] bs = Convert.FromBase64String(hytjdr["image1"].ToString());
hytjdr["image"] = bs;
}
if (HytjjdZdysDt.Rows.Count > 0)
{
if (!string.IsNullOrEmpty(HytjjdZdysDt.Rows[0]["imageZdys"].ToString()))
{
byte[] bs1 = Convert.FromBase64String(HytjjdZdysDt.Rows[0]["imageZdys"].ToString());
hytjdr["imageZdys"] = bs1;
}
else
{
string zdys = hytjdr["zdys"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
hytjdr["imageZdys"] = stream.ToArray();
}
}
else
{
string zdys = hytjdr["zdys"].ToString();
Bitmap b = new Bitmap(80, 20);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2));
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
//输出图片流
//return File(stream.ToArray(), "image/jpeg");
hytjdr["imageZdys"] = stream.ToArray();
}
}
if (HytjjdDt.Rows.Count != 0)
{
DataView dv1 = HytjjdDt.DefaultView;
dv1.Sort = "fxsx Asc";
DataTable HytjjdDts = dv1.ToTable();
foreach (DataRow dr in HytjjdDts.Rows)
{
if (dr["djsj"].ToString().Length > 10)
{
dr["djsj"] = dr["djsj"].ToString().Substring(0, 10);
}
}
re.RegisterData(HytjjdDts, "hytjjg");
re.SetParameterValue("hyxmOn", "yes");
}
else
{
//select '' as tm,'' as ksbm,'' as zdjg,'' as zdys,'' as czy,'' as czys,'' as ksmc,'' as bglk,'' as zdmc,'' as djsj
DataTable HytjjdDt2 = new DataTable();
HytjjdDt2.Columns.Add("tm");
HytjjdDt2.Columns.Add("ksbm");
HytjjdDt2.Columns.Add("zdjg");
HytjjdDt2.Columns.Add("zdys");
HytjjdDt2.Columns.Add("czy");
HytjjdDt2.Columns.Add("czys");
HytjjdDt2.Columns.Add("ksmc");
HytjjdDt2.Columns.Add("bglk");
HytjjdDt2.Columns.Add("zdmc");
HytjjdDt2.Columns.Add("djsj");
HytjjdDt2.Columns.Add("fxsx");
HytjjdDt2.Columns.Add("image");
HytjjdDt2.Columns.Add("imageZdys");
re.RegisterData(HytjjdDt2, "hytjjg");
re.SetParameterValue("hyxmOn", "no");
}
//创建非化验项目的体检结果datatable
string tjjgString = ServiceContainer.GetService<IZongJian>().GetTjjgStringByTm(int.Parse(tms.Trim()),xb);
DataTable tjjgDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjjgString, typeof(DataTable)) as DataTable;
if (ccdt.Rows.Count > 0)
{
re.SetParameterValue("ccImageOn", "yes");
}
else
{
re.SetParameterValue("ccImageOn", "no");
}
if (tjjgDt.Rows.Count != 0)
{
DataView dv2 = tjjgDt.DefaultView;
if (mbhs == 1 || mbhs == 3)
{
dv2.RowFilter = "ksbm='10'";
}
dv2.Sort = "fxsx,xssx Asc";
DataTable tjjgDts = dv2.ToTable();
foreach (DataRow dr in tjjgDts.Rows)
{
#region
if (!string.IsNullOrEmpty(dr["jg"].ToString()))
{
if (!dr["cksx"].ToString().Trim().Equals("-1") && !dr["cksx"].ToString().Trim().Equals("-2"))
{
if (double.TryParse(dr["jg"].ToString().Trim(), out double result))
{
if (double.Parse(dr["ckxx"].ToString().Trim()) < double.Parse(dr["jg"].ToString().Trim()) &&
double.Parse(dr["cksx"].ToString().Trim()) > double.Parse(dr["jg"].ToString().Trim()))
{
}
else
{
dr["jg"] = dr["jg"].ToString() + "@";
}
}
else
{
if (!dr["zcjg"].ToString().Trim().Equals(dr["jg"].ToString().Trim()))
{
dr["jg"] = dr["jg"].ToString() + "@";
}
}
}
else
{
if (!dr["cksx"].ToString().Trim().Equals("-2"))
{
if (!dr["zcjg"].ToString().Trim().Equals(dr["jg"].ToString().Trim()))
{
dr["jg"] = dr["jg"].ToString() + "@";
}
}
}
}
#endregion
DataRow[] drs = ccdt.Select("ksbm='" + dr["ksbm"].ToString() + "'");
if (drs.Count() > 0)
{
drs[0]["sj"] = drs[0]["sj"] + "\r\n" + dr["jg"].ToString();
}
}
re.RegisterData(tjjgDts, "tjjgmx");
if (mbhs != 2)
{
if (tjjgDts.Rows.Count != 0)
{
re.SetParameterValue("nothyxmOn", "yes");
}
else
{
re.SetParameterValue("nothyxmOn", "no");
}
}
else
{
re.SetParameterValue("nothyxmOn", "no");
}
}
else
{
//select '' as jcxmmc,'' as ksbm,'' as cksx,'' as ckxx,'' as dw,'' as jc,'' as dyckfw,'' as jg
DataTable tjjgDt2 = new DataTable();
tjjgDt2.Columns.Add("jcxmmc");
tjjgDt2.Columns.Add("ksbm");
tjjgDt2.Columns.Add("cksx");
tjjgDt2.Columns.Add("ckxx");
tjjgDt2.Columns.Add("dw");
tjjgDt2.Columns.Add("jc");
tjjgDt2.Columns.Add("dyckfw");
tjjgDt2.Columns.Add("jg");
tjjgDt2.Columns.Add("fxsx");
tjjgDt2.Columns.Add("xssx");
re.RegisterData(tjjgDt2, "tjjgmx");
re.SetParameterValue("nothyxmOn", "no");
}
re.RegisterData(ccdt, "ccbg");
//创建外送金域的体检结果datatable
string tjjgWSString = ServiceContainer.GetService<IZongJian>().GetTjjgWSStringByTm(int.Parse(tms.Trim()),xb);
DataTable tjjgWSDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjjgWSString, typeof(DataTable)) as DataTable;
if (tjjgWSDt.Rows.Count != 0)
{
DataView dvWS = tjjgWSDt.DefaultView;
if (mbhs == 1 || mbhs == 3)
{
dvWS.RowFilter = "ksbm='10'";
}
dvWS.Sort = "fxsx,xssx Asc";
DataTable tjjgWSDts = dvWS.ToTable();
//foreach (DataRow dr in tjjgWSDts.Rows)
//{
// DataRow[] drs = ccdt.Select("ksbm='" + dr["ksbm"].ToString() + "'");
// if (drs.Count() > 0)
// {
// drs[0]["sj"] = drs[0]["sj"] + "\r\n" + dr["jg"].ToString();
// }
//}
re.RegisterData(tjjgWSDts, "tjjgWSmx");
if (mbhs != 2)
{
if (tjjgWSDts.Rows.Count != 0)
{
re.SetParameterValue("notwsxmOn", "yes");
}
else
{
re.SetParameterValue("notwsxmOn", "no");
}
}
else
{
re.SetParameterValue("notwsxmOn", "no");
}
}
else
{
//select '' as jcxmmc,'' as ksbm,'' as cksx,'' as ckxx,'' as dw,'' as jc,'' as dyckfw,'' as jg
DataTable tjjgWSDt2 = new DataTable();
tjjgWSDt2.Columns.Add("jcxmmc");
tjjgWSDt2.Columns.Add("ksbm");
tjjgWSDt2.Columns.Add("cksx");
tjjgWSDt2.Columns.Add("ckxx");
tjjgWSDt2.Columns.Add("dw");
tjjgWSDt2.Columns.Add("jc");
tjjgWSDt2.Columns.Add("dyckfw");
tjjgWSDt2.Columns.Add("jg");
tjjgWSDt2.Columns.Add("fxsx");
tjjgWSDt2.Columns.Add("xssx");
re.RegisterData(tjjgWSDt2, "tjjgWSmx");
re.SetParameterValue("notwsxmOn", "no");
}
//re.RegisterData(ccdt, "ccbg");
//创建化验项目的体检结果datatable
string HytjjgString = ServiceContainer.GetService<IZongJian>().GetHyTjjgStringByTm(int.Parse(tms.Trim()), fddm,xb);
DataTable HytjjgDt = Newtonsoft.Json.JsonConvert.DeserializeObject(HytjjgString, typeof(DataTable)) as DataTable;
if (HytjjgDt.Rows.Count != 0)
{
DataView dv3 = HytjjgDt.DefaultView;
dv3.Sort = "fxsx,xssx Asc";
DataTable HytjjgDts = dv3.ToTable();
foreach (DataRow dr in HytjjgDts.Rows)
{
double jg = 0;
double cksx = 0;
double ckxx = 0;
if (double.TryParse(dr["jg"].ToString(), out jg) && double.TryParse(dr["cksx"].ToString(), out cksx) && double.TryParse(dr["ckxx"].ToString(), out ckxx))
{
if (jg < ckxx)
dr["bz"] = "↓";
else if (jg > cksx)
dr["bz"] = "↑";
}
}
re.RegisterData(HytjjgDts, "hytjjgmx");
}
else
{
HytjjgDt = new DataTable();
//select '' as jcxmmc,'' as ksbm,'' as cksx,'' as ckxx,'' as dw,'' as jc,'' as dyckfw,'' as jg
HytjjgDt.Columns.Add("jcxmmc");
HytjjgDt.Columns.Add("ksbm");
HytjjgDt.Columns.Add("cksx");
HytjjgDt.Columns.Add("ckxx");
HytjjgDt.Columns.Add("dw");
HytjjgDt.Columns.Add("jc");
HytjjgDt.Columns.Add("dyckfw");
HytjjgDt.Columns.Add("jg");
HytjjgDt.Columns.Add("bz");
HytjjgDt.Columns.Add("fxsx");
HytjjgDt.Columns.Add("xssx");
re.RegisterData(HytjjgDt, "hytjjgmx");
re.SetParameterValue("hyxmOn", "no");
}
//创建放弃表的datatable
string fqString = ServiceContainer.GetService<IZongJian>().GetFqStringByTm(int.Parse(tms.Trim()));
if (fqString.Length > 2)
{
DataTable fqDt = Newtonsoft.Json.JsonConvert.DeserializeObject(fqString, typeof(DataTable)) as DataTable;
re.RegisterData(fqDt, "fqTable");
re.SetParameterValue("fqOn", "yes");
}
else
{
//re.RegisterData(fqDt, "fqTable");
re.SetParameterValue("fqOn", "no");
}
//创建历史结果对比
DataTable hisDt;
int[] array = (int[])ServiceContainer.GetService<IZongJian>().GetHisTmList(hyh);
if (array.Length > 1)
{
hisDt = Newtonsoft.Json.JsonConvert.DeserializeObject(ServiceContainer.GetService<IZongJian>().GetHisTable(array), typeof(DataTable)) as DataTable;
if (hisDt.Rows.Count == 0)
{
hisDt = new DataTable();
hisDt.Columns.Add("ksmc");
hisDt.Columns.Add("kszd");
hisDt.Columns.Add("tjrq");
}
re.RegisterData(hisDt, "t_lndb");
if (fddm == 1)
{
re.SetParameterValue("hisfxOn", "no");
}
else
{
re.SetParameterValue("hisfxOn", "yes");
}
}
else
{
if (sfzh != "")
{
int[] array1 = (int[])ServiceContainer.GetService<IZongJian>().GetHisTmListBySfz(sfzh, xm);
if (array1.Length > 1)
{
hisDt = Newtonsoft.Json.JsonConvert.DeserializeObject(ServiceContainer.GetService<IZongJian>().GetHisTable(array1), typeof(DataTable)) as DataTable;
re.RegisterData(hisDt, "t_lndb");
if (fddm == 1)
{
re.SetParameterValue("hisfxOn", "no");
}
else
{
re.SetParameterValue("hisfxOn", "yes");
}
}
else
{
hisDt = new DataTable();
hisDt.Columns.Add("ksmc");
hisDt.Columns.Add("kszd");
hisDt.Columns.Add("tjrq");
re.RegisterData(hisDt, "t_lndb");
re.SetParameterValue("hisfxOn", "no");
}
}
else
{
hisDt = new DataTable();
hisDt.Columns.Add("ksmc");
hisDt.Columns.Add("kszd");
hisDt.Columns.Add("tjrq");
re.RegisterData(hisDt, "t_lndb");
re.SetParameterValue("hisfxOn", "no");
}
}
re.Preview = previewControl1;
//re.Show();
}
ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
public void daochu(string name)
{
if (previewControl1.Report == null)
{
//MessageBox.Show("请先初始化数据!");
return;
}
if (showview)
{
if (!this.Visible)
{
//this.Show();
//printpreview.Report.Show();
}
return;
}
previewControl1.Report.PrintSettings.ShowDialog = false;
//previewControl1.Report.Print();
previewControl1.Report.Prepare();
PDFExport pdf = new PDFExport();
//pdf.EmbeddingFonts = true;
if (Directory.Exists("d:\\pdf"))
{
previewControl1.Report.Export(pdf, @"d:\\pdf\" + name + ".pdf");
}
else
{
Directory.CreateDirectory(@"d:\\pdf");
previewControl1.Report.Export(pdf, @"d:\\pdf\" + name + ".pdf");
}
}
public string daochu2(string name)
{
if (previewControl1.Report == null)
{
//MessageBox.Show("请先初始化数据!");
return "";
}
if (showview)
{
if (!this.Visible)
{
//this.Show();
//printpreview.Report.Show();
}
return "";
}
previewControl1.Report.PrintSettings.ShowDialog = false;
//previewControl1.Report.Print();
var pfile = @"d:\\pdf\" + name + ".pdf";
previewControl1.Report.Prepare();
PDFExport pdf = new PDFExport();
//pdf.EmbeddingFonts = true;
if (Directory.Exists("d:\\pdf"))
{
previewControl1.Report.Export(pdf, pfile);
}
else
{
Directory.CreateDirectory(@"d:\\pdf");
previewControl1.Report.Export(pdf, @"d:\\pdf\" + name + ".pdf");
}
return pfile;
}
public void daochuImagePdf(string name)
{
if (previewControl1.Report == null)
{
//MessageBox.Show("请先初始化数据!");
return;
}
if (showview)
{
if (!this.Visible)
{
//this.Show();
//printpreview.Report.Show();
}
return;
}
previewControl1.Report.PrintSettings.ShowDialog = false;
//previewControl1.Report.Print();
int i = 1;
FastReport.Export.Image.ImageExport imgreport = new FastReport.Export.Image.ImageExport();
//FastReport.Export.Pdf.PDFExport pdfe = new FastReport.Export.Pdf.PDFExport();
//pdfe.PageRange = FastReport.PageRange.All;
imgreport.PageRange = FastReport.PageRange.All;
imgreport.ImageFormat = FastReport.Export.Image.ImageExportFormat.Jpeg;
imgreport.MultiFrameTiff = true;
imgreport.Resolution = 96;
imgreport.JpegQuality = 100;
string path = System.IO.Path.GetTempPath();
path += i + "\\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string dir = path;
previewControl1.Report.Prepare();
previewControl1.Report.Export(imgreport, path + "lsb.jpg");
i++;
var mylist = new List<string>();
int z = 0;
while (true)
{
++z;
if (z == 1)
{
path = dir + "lsb.jpg";
}
else
{
path = string.Format(dir + "lsb.{0}.jpg", z);
}
if (System.IO.File.Exists(path))
{
int h = 0;
while (true)
{
if (h > 10)
break;
h++;
try
{
mylist.Add(path);
//File.Delete(path);
break;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
EAS.Loggers.ILogger log1 = new EAS.Loggers.TextLogger();
log1.Info(ex.Message);
log1.Info(ex.StackTrace);
}
}
}
else
{
path = string.Format(dir + "lsb.{0}.jpg", z.ToString("00"));
if (System.IO.File.Exists(path))
{
int h = 0;
while (true)
{
if (h > 10)
break;
h++;
try
{
mylist.Add(path);
//File.Delete(path);
break;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
EAS.Loggers.ILogger log2 = new EAS.Loggers.TextLogger();
log2.Info(ex.Message);
log2.Info(ex.StackTrace);
}
}
}
else
{
break;
}
}
}
iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4);
var pfile = @"d:\\pdf\" + name + ".pdf";
var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pfile, FileMode.Create));
#region PDF的头信息Document.Open
doc.AddAuthor("天瑞体检");
doc.AddCreationDate();
doc.AddCreator("天瑞体检");
doc.AddSubject(name);
doc.AddTitle(name);
//自定义头
#endregion
doc.Open();
foreach (var j in mylist)
{
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(j);
image.ScalePercent(72 / 96f * 100);
image.SetAbsolutePosition(0, 0);
doc.Add(image);
doc.NewPage();
File.Delete(j);
}
doc.Close();
//File(pfile, "application/pdf", bg.TaoCanMingCheng + ".pdf");
}
public string daochuImagePdf2(string name)
{
if (previewControl1.Report == null)
{
//MessageBox.Show("请先初始化数据!");
return "";
}
if (showview)
{
if (!this.Visible)
{
//this.Show();
//printpreview.Report.Show();
}
return "";
}
previewControl1.Report.PrintSettings.ShowDialog = false;
//previewControl1.Report.Print();
int i = 1;
FastReport.Export.Image.ImageExport imgreport = new FastReport.Export.Image.ImageExport();
//FastReport.Export.Pdf.PDFExport pdfe = new FastReport.Export.Pdf.PDFExport();
//pdfe.PageRange = FastReport.PageRange.All;
imgreport.PageRange = FastReport.PageRange.All;
imgreport.ImageFormat = FastReport.Export.Image.ImageExportFormat.Jpeg;
imgreport.MultiFrameTiff = true;
imgreport.Resolution = 96;
imgreport.JpegQuality = 100;
string path = System.IO.Path.GetTempPath();
path += i + "\\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string dir = path;
previewControl1.Report.Prepare();
previewControl1.Report.Export(imgreport, path + "lsb.jpg");
i++;
var mylist = new List<string>();
int z = 0;
while (true)
{
++z;
if (z == 1)
{
path = dir + "lsb.jpg";
}
else
{
path = string.Format(dir + "lsb.{0}.jpg", z);
}
if (System.IO.File.Exists(path))
{
int h = 0;
while (true)
{
if (h > 10)
break;
h++;
try
{
mylist.Add(path);
//File.Delete(path);
break;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
EAS.Loggers.ILogger log1 = new EAS.Loggers.TextLogger();
log1.Info(ex.Message);
log1.Info(ex.StackTrace);
}
}
}
else
{
path = string.Format(dir + "lsb.{0}.jpg", z.ToString("00"));
if (System.IO.File.Exists(path))
{
int h = 0;
while (true)
{
if (h > 10)
break;
h++;
try
{
mylist.Add(path);
//File.Delete(path);
break;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
EAS.Loggers.ILogger log2 = new EAS.Loggers.TextLogger();
log2.Info(ex.Message);
log2.Info(ex.StackTrace);
}
}
}
else
{
break;
}
}
}
iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4);
var pfile = @"d:\pdf\" + name + ".pdf";
var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pfile, FileMode.Create));
#region PDF的头信息Document.Open
doc.AddAuthor("天瑞体检");
doc.AddCreationDate();
doc.AddCreator("天瑞体检");
doc.AddSubject(name);
doc.AddTitle(name);
//自定义头
#endregion
doc.Open();
foreach (var j in mylist)
{
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(j);
image.ScalePercent(72 / 96f * 100);
image.SetAbsolutePosition(0, 0);
doc.Add(image);
doc.NewPage();
File.Delete(j);
}
doc.Close();
return pfile;
//File(pfile, "application/pdf", bg.TaoCanMingCheng + ".pdf");
}
public void print()
{
if (previewControl1.Report == null)
{
MessageBox.Show("请先初始化数据!");
return;
}
if (showview)
{
if (!this.Visible)
{
this.Show();
//printpreview.Report.Show();
}
return;
}
//string printname = "";
//System.Configuration.Configuration cm = System.Configuration.ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.BaseDirectory + "\\local.ext");
//printname = cm.AppSettings.Settings["bgdyjmc"].Value;
//if (!string.IsNullOrEmpty(printname))
//{
// previewControl1.Report.PrintSettings.Printer = printname;
// }
previewControl1.Report.PrintSettings.ShowDialog = false;
previewControl1.Report.Print();
}
}
}