1、分检总检加入打印报告功能,2、团体可以复制人员项目

mzzyy
zlysdm 8 months ago
parent 3e5d9ee1aa
commit 69e0c84288
  1. 33
      PEIS/Model/Enrollment/EnrollmentOrgModel.cs
  2. 6
      PEIS/Presenter/EnrollmentOrgPresenter.cs
  3. 6404
      PEIS/View/Enrollment/EnrollmentOrgForm.Designer.cs
  4. 168
      PEIS/View/Enrollment/EnrollmentOrgForm.cs
  5. 4
      PEIS/View/Enrollment/IEnrollmentOrgView.cs
  6. 21
      PEIS/View/Exam/PartForm.Designer.cs
  7. 58
      PEIS/View/Exam/PartForm.cs
  8. 20
      PEIS/View/Exam/PartForm.resx
  9. 21
      PEIS/View/Exam/TotalForm.Designer.cs
  10. 58
      PEIS/View/Exam/TotalForm.cs
  11. 29
      PEIS/View/Exam/TotalForm.resx

@ -121,5 +121,38 @@ namespace PEIS.Model.Enrollment
a.OEID = {oeID} AND d.DeleteTime IS NULL
ORDER BY a.SignTime");
}
public List<EnrollmentPatient> GetCopyList(String name, Int64 oeID)
{
if(string.IsNullOrEmpty(name)) return new List<EnrollmentPatient>();
return DAOHelp.GetDataBySQL<EnrollmentPatient>($@"SELECT
ID,
Sex,
Age,
Name,
Tel1,
AgeClass,
SignTime,
Address1,
Contactor1,
CreateTime,
CASE
WHEN FinishTime IS NOT NULL THEN '3'
WHEN SignTime IS NOT NULL THEN '2'
WHEN SignTime IS NULL THEN '1'
END AS Signer,
FinishTime,
SpellCode
FROM
Enrollment_Patient
WHERE
( Name like '%{name}%' or id like '%{name}%' or SpellCode like '{name}%')
AND OEID = {oeID}
AND PID IS NOT NULL
AND WeChatStatus IN ( 0, 1 )
ORDER BY
CreateTime DESC");
}
}
}

@ -79,7 +79,7 @@ namespace PEIS.Presenter
};
View.GetEnrollmentFeeItem += (send, args) =>
{
View.ShowEnrollmentFeeItem(new EnrollmentFeeItemModel().GetItemsByEnrollmentID(args.EnrollmentID));
View.ShowEnrollmentFeeItem(new EnrollmentFeeItemModel().GetItemsByEnrollmentID(args.EnrollmentID), args.Code);
};
View.GetCheckCost += (send, args) =>
{
@ -163,6 +163,10 @@ namespace PEIS.Presenter
{
View.ShowExcelList(new EnrollmentOrgModel().GetExcelList(args.EnrollmentOID));
};
View.GetCopyRegItems += (send, args) =>
{
View.ShowCopyRegItems(new EnrollmentOrgModel().GetCopyList(args.Name, args.EnrollmentOID));
};
}
}
}

File diff suppressed because it is too large Load Diff

@ -44,6 +44,8 @@ namespace PEIS.View.Enrollment
private List<EnrollmentCheckCost> _lstCheckCost2 = new List<EnrollmentCheckCost>();
private List<EnrollmentPatient> _lstEnrollmentPatient = new List<EnrollmentPatient>();
private List<EnrollmentPatient> _lstExcelEPatient = new List<EnrollmentPatient>();
private List<EnrollmentPatient> _lstRegItems2 = new List<EnrollmentPatient>();
private List<EnrollmentFeeItem> _lstCopyFeeItem = new List<EnrollmentFeeItem>();
private List<EnrollmentFeeItem> _lstEnrollmentFeeItem = new List<EnrollmentFeeItem>();
private List<EnrollmentOrgFeeItem> _lstGroupFeeItem = new List<EnrollmentOrgFeeItem>();
private List<EnrollmentOrgPatient> _lstGroupPatient = new List<EnrollmentOrgPatient>();
@ -169,6 +171,10 @@ namespace PEIS.View.Enrollment
// 撤回发送科室
FastRecall.Click += FastRecall_Click;
NameSearch2.KeyDown += NameSearch2_KeyDown;
DgvRegItem2.SelectionChanged += DgvRegItem2_SelectionChanged;
// 复制项目
TsmiCopyFeeItem.Click += TsmiCopyFeeItem_Click;
#region 团体订单
TFastCharge.Click += TFastCharge_Click;
@ -503,7 +509,7 @@ namespace PEIS.View.Enrollment
_chooseRegItem = DgvEnrollment.GetRow(DgvEnrollment.GetSelectedRows()[0]) as EnrollmentPatient;
topRowIndex = _chooseRegItem.ID;
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
DgcPack2.DataSource = _lstPack.Where(w => w.Sex.Equals("所有") || w.Sex.Equals(DgvEnrollment.GetRowCellValue(DgvEnrollment.GetSelectedRows()[0], "Sex").ToString()));
@ -532,12 +538,12 @@ namespace PEIS.View.Enrollment
{
if (Global.Msg("warn", "确定移除当前套餐吗?") == DialogResult.No) return;
OnDelItemByPackId(1, Convert.ToInt64(item?.EID), Convert.ToInt64(item?.PackId));
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
return;
}
item?.Delete();
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
}
@ -575,7 +581,7 @@ namespace PEIS.View.Enrollment
KeyNo = DgvFeeItem2.GetRowCellValue(DgvFeeItem2.GetSelectedRows()[0], "KeyNo")?.ToString()
};
item.Save();
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
private void DgvPack2_DoubleClick(object sender, EventArgs e) // 双击添加个人套餐
@ -592,7 +598,7 @@ namespace PEIS.View.Enrollment
}
OnAddEnrollmentFeeItemByPack(_chooseRegItem.ID, Convert.ToInt64(DgvPack2.GetRowCellValue(DgvPack2.GetSelectedRows()[0], "ID").ToString()), DgvPack2.GetRowCellValue(DgvPack2.GetSelectedRows()[0], "Name").ToString());
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
private void TsmiPrintCost_Click(object sender, EventArgs e) // 打印收费单
@ -688,16 +694,16 @@ namespace PEIS.View.Enrollment
try
{
var items = new List<EnrollmentFeeItem>();
_lstEnrollmentFeeItem.Where(w => w.OrderNo != null && !w.IsHide ).GroupBy(g => g.DeptCode).ForEach(dept =>
{
var item = new EnrollmentFeeItem()
{
DeptName = dept.FirstOrDefault()?.DeptName,
FeeItemName = string.Join(@"、", dept.Select(s => s.FeeItemName).ToList()),
Address = dept.FirstOrDefault()?.Address
};
items.Add(item);
});
_lstEnrollmentFeeItem.Where(w => w.OrderNo != null && !w.IsHide).GroupBy(g => g.DeptCode).ForEach(dept =>
{
var item = new EnrollmentFeeItem()
{
DeptName = dept.FirstOrDefault()?.DeptName,
FeeItemName = string.Join(@"、", dept.Select(s => s.FeeItemName).ToList()),
Address = dept.FirstOrDefault()?.Address
};
items.Add(item);
});
_pReport = ReportHelper.PrintGuide(items, _regInfo);
_pReport.Show();
@ -749,7 +755,7 @@ namespace PEIS.View.Enrollment
return;
}
if(_lstGroupPatient.Where(w => w.PID == item?.ID).ToList().Count != 0)
if (_lstGroupPatient.Where(w => w.PID == item?.ID).ToList().Count != 0)
{
Global.Msg("info", "该成员已应用到分组!");
return;
@ -809,17 +815,17 @@ namespace PEIS.View.Enrollment
private void NameSearch_KeyDown(object sender, KeyEventArgs e) // 模糊检索
{
if (e.KeyCode == Keys.Enter)
OnGetEnrollmentOrg(DtpBegDate.Value, DtpEndDate.Value, NameSearch.Text);
OnGetEnrollmentOrg(DtpBegDate.Value, DtpEndDate.Value, NameSearch.Text);
}
private void FeeItemSearch_TextChanged(object sender, EventArgs e) // 收费项目检索
{
DgcFeeItem.DataSource = _lstFeeItem.Where(a => a?.FeeItemName.Contains(FeeItemSearch.Text) == true);
DgcFeeItem.DataSource = _lstFeeItem.Where(a => a?.FeeItemName.Contains(FeeItemSearch.Text.Trim()) == true || a?.SpellCode?.Contains(FeeItemSearch.Text.Trim()) == true);
}
private void FeeItemSearch2_TextChanged(object sender, EventArgs e) // 收费项目检索
{
DgcFeeItem2.DataSource = _lstFeeItem2.Where(a => a?.FeeItemName.Contains(FeeItemSearch2.Text) == true);
DgcFeeItem2.DataSource = _lstFeeItem2.Where(a => a?.FeeItemName.Contains(FeeItemSearch2.Text.Trim()) == true || a?.SpellCode?.Contains(FeeItemSearch2.Text.Trim()) == true);
}
private void PatientSearch_TextChanged(object sender, EventArgs e) // 团体成员检索
@ -1105,6 +1111,68 @@ namespace PEIS.View.Enrollment
OnRecallDept(item.ID);
} // 撤回发送
private void NameSearch2_KeyDown(object sender, KeyEventArgs e) // 复制人员检索
{
if (e.KeyCode == Keys.Enter) OnGetCopyRegItems();
}
private void DgvRegItem2_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
{
Invoke(new Action(() =>
{
OnGetEnrollmentFeeItem(Convert.ToInt64(DgvRegItem2.GetRowCellValue(DgvRegItem2.GetSelectedRows()[0], "ID").ToString()), "1");
}));
}
private void TsmiCopyFeeItem_Click(object sender, EventArgs e)
{
if (_lstCopyFeeItem == null || _lstCopyFeeItem.Count == 0) return;
if (_chooseRegItem == null)
{
Global.Msg("info", "请先选中体检人员!");
return;
}
if (_lstEnrollmentFeeItem?.Count != 0)
{
Global.Msg("info", "该登记已有收费项目,不能复制,请核对后重试!");
return;
}
EnrollmentFeeItem item = new EnrollmentFeeItem();
Int32 index = 0;
_lstCopyFeeItem.ForEach(a =>
{
index++;
item.EID = _chooseRegItem.ID;
item.OEID = a.OEID;
item.GroupID = a.GroupID;
item.PackId = a.PackId;
item.PackName = a.PackName;
item.FID = a.FID;
item.FeeItemCode = a.FeeItemCode;
item.FeeItemName = a.FeeItemName;
item.Quantity = 1;
item.Unit = a.Unit;
item.Price = a.Price;
item.SettlePrice = a.SettlePrice;
item.ItemClass = a.ItemClass;
item.CreateTime = DateTime.Now;
item.CreatorCode = Global.currentUser.Code;
item.Creator = Global.currentUser.Name;
item.DeptCode = a.DeptCode;
item.DeptName = a.DeptName;
item.Seq = index;
item.KeyNo = a.KeyNo;
item.Save();
});
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
#region 团体订单
private void TFastCancelCharge_Click(object sender, EventArgs e) // 取消记账
@ -1139,7 +1207,7 @@ namespace PEIS.View.Enrollment
{
if (item != null) OnDeleteOrder(item.ID);
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
return;
}
@ -1149,7 +1217,7 @@ namespace PEIS.View.Enrollment
return;
}
if(item?.CancelTime != null)
if (item?.CancelTime != null)
{
Global.Msg("info", "该订单为退费订单留存记录,不能删除!");
return;
@ -1158,7 +1226,7 @@ namespace PEIS.View.Enrollment
if (item == null) return;
OnDeleteOrder(item.ID);
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
private void TFastAllCharge_Click(object sender, EventArgs e) // 全部记账
@ -1205,7 +1273,7 @@ namespace PEIS.View.Enrollment
}
OnChangeCost(item.ID, 0);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
}
@ -1220,7 +1288,7 @@ namespace PEIS.View.Enrollment
EnrollmentCheckCost item = DgvCheckCost2.GetRow(DgvCheckCost2.GetSelectedRows()[0]) as EnrollmentCheckCost;
OnChangeCost(item.ID, Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()));
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
}
@ -1257,7 +1325,7 @@ namespace PEIS.View.Enrollment
if (item != null)
OnDeleteOrder(item.ID);
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
return;
}
@ -1276,7 +1344,7 @@ namespace PEIS.View.Enrollment
if (item == null) return;
OnDeleteOrder(item.ID);
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
private void PFastAllCharge_Click(object sender, EventArgs e) // 全部记账
@ -1406,7 +1474,7 @@ namespace PEIS.View.Enrollment
CheckCostForm checkCostForm = new CheckCostForm(0, _chooseRegItem.ID);
checkCostForm.ShowDialog();
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
private void TsmiCheck4Org_Click(object sender, EventArgs e)
@ -1430,7 +1498,7 @@ namespace PEIS.View.Enrollment
CheckCostForm checkCostForm = new CheckCostForm(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), 0);
checkCostForm.ShowDialog();
OnGetCheckCost(Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()), _chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID);
OnGetEnrollmentFeeItem(_chooseRegItem.ID, "0");
}
private void TsmiOpenFeeItem_Click(object sender, EventArgs e)
@ -1588,6 +1656,17 @@ namespace PEIS.View.Enrollment
public event EventHandler<Args<EnrollmentPatient>> GetExcelList;
public event EventHandler<Args<EnrollmentPatient>> GetCopyRegItems;
protected virtual void OnGetCopyRegItems()
{
GetCopyRegItems?.Invoke(this, new Args<EnrollmentPatient>()
{
Name = NameSearch2.Text.Trim(),
EnrollmentOID = Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString())
});
}
protected virtual void OnCancelGroupTag(Int64 oeID, List<Int64> idList)
{
CancelGroupTag?.Invoke(this, new Args<EnrollmentCheckCost> { EnrollmentOID = oeID, IdList = idList });
@ -1652,9 +1731,9 @@ namespace PEIS.View.Enrollment
GetCheckCost?.Invoke(this, new Args<EnrollmentCheckCost> { EnrollmentOID = oeID, EnrollmentID = enrollmentID });
}
protected virtual void OnGetEnrollmentFeeItem(Int64 enrollmentID)
protected virtual void OnGetEnrollmentFeeItem(Int64 enrollmentID, String code)
{
GetEnrollmentFeeItem?.Invoke(this, new Args<EnrollmentFeeItem> { EnrollmentID = enrollmentID });
GetEnrollmentFeeItem?.Invoke(this, new Args<EnrollmentFeeItem> { EnrollmentID = enrollmentID, Code = code });
}
protected virtual void OnGetEnrollmentPatient(Int64 oeID)
@ -1854,13 +1933,22 @@ namespace PEIS.View.Enrollment
DgvEnrollment.BestFitColumns();
}
public void ShowEnrollmentFeeItem(List<EnrollmentFeeItem> items)
public void ShowEnrollmentFeeItem(List<EnrollmentFeeItem> items, String code)
{
_lstEnrollmentFeeItem = items;
DgcEnrollmentFeeItem.DataSource = _lstEnrollmentFeeItem;
DgvEnrollmentFeeItem.BestFitColumns();
DgvEnrollmentFeeItem.ExpandAllGroups();
if (code == "0")
{
_lstEnrollmentFeeItem = items;
DgcEnrollmentFeeItem.DataSource = _lstEnrollmentFeeItem;
DgvEnrollmentFeeItem.BestFitColumns();
DgvEnrollmentFeeItem.ExpandAllGroups();
}
else
{
Invoke(new Action(() => _lstCopyFeeItem = items));
Invoke(new Action(() => DgcCopyItem.DataSource = null));
Invoke(new Action(() => DgcCopyItem.DataSource = _lstCopyFeeItem));
Invoke(new Action(() => DgvCopyItem.BestFitColumns()));
}
}
public void ShowCheckCost(List<EnrollmentCheckCost> items)
@ -1920,6 +2008,14 @@ namespace PEIS.View.Enrollment
}
}
public void ShowCopyRegItems(List<EnrollmentPatient> items)
{
Invoke(new Action(() => _lstRegItems2 = items));
Invoke(new Action(() => DgcRegItem2.DataSource = null));
Invoke(new Action(() => { DgcRegItem2.DataSource = _lstRegItems2.Where(a => a?.Name.Contains(NameSearch2.Text) == true || a?.ID.ToString().Contains(NameSearch2.Text) == true || a?.SpellCode?.Contains(NameSearch2.Text) == true); }));
if (_lstRegItems2.Where(a => a?.Name.Contains(NameSearch2.Text) == true || a?.ID.ToString().Contains(NameSearch2.Text) == true).Count() == 0) DgcCopyItem.DataSource = _lstCopyFeeItem = null;
}
//void RefreshData()
//{
// _lstPatient = _lstPatient.Where(a => !_lstGroupPatientTotal.Select(b => b.PID).ToList().Contains(a.PID)).ToList();

@ -59,7 +59,9 @@ namespace PEIS.View.Enrollment
event EventHandler<Args<EnrollmentCheckCost>> GroupTag;
event EventHandler<Args<EnrollmentCheckCost>> CancelGroupTag;
event EventHandler<Args<EnrollmentPatient>> GetExcelList;
event EventHandler<Args<EnrollmentPatient>> GetCopyRegItems;
void ShowCopyRegItems(List<EnrollmentPatient> items);
void ShowEnrollmentOrg(List<EnrollmentOrg> items);
void ShowEnrollmentOrgGroup(List<EnrollmentOrgGroup> items);
void ShowOrgPatient(List<BaseOrgPatient> items);
@ -71,7 +73,7 @@ namespace PEIS.View.Enrollment
void ShowEnrollmentOrgFeeItem(List<EnrollmentOrgFeeItem> items);
void ShowEnrollmentPatient(List<EnrollmentPatient> items);
void ShowEnrollmentFeeItem(List<EnrollmentFeeItem> items);
void ShowEnrollmentFeeItem(List<EnrollmentFeeItem> items, String code);
void ShowCheckCost(List<EnrollmentCheckCost> items);
void ShowSendToDept(bool status);
void ShowFeeCheckCost(bool status);

@ -239,6 +239,8 @@
this.colRptExtTime = new DevExpress.XtraGrid.Columns.GridColumn();
this.colRptExtDesc = new DevExpress.XtraGrid.Columns.GridColumn();
this.superTabControl1 = new FastReport.DevComponents.DotNetBar.SuperTabControl();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.PrintPacs = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.splitContainerBase)).BeginInit();
this.splitContainerBase.Panel1.SuspendLayout();
this.splitContainerBase.Panel2.SuspendLayout();
@ -323,6 +325,7 @@
this.panel2.SuspendLayout();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.superTabControl1)).BeginInit();
this.contextMenuStrip2.SuspendLayout();
this.SuspendLayout();
//
// splitContainerBase
@ -1900,6 +1903,7 @@
//
// dgcRptPacs
//
this.dgcRptPacs.ContextMenuStrip = this.contextMenuStrip2;
this.dgcRptPacs.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgcRptPacs.Location = new System.Drawing.Point(0, 0);
this.dgcRptPacs.MainView = this.DgvRptPacs;
@ -3001,6 +3005,20 @@
this.superTabControl1.SelectedTabIndex = -1;
this.superTabControl1.TabIndex = 0;
//
// contextMenuStrip2
//
this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.PrintPacs});
this.contextMenuStrip2.Name = "contextMenuStrip2";
this.contextMenuStrip2.Size = new System.Drawing.Size(125, 26);
//
// PrintPacs
//
this.PrintPacs.Image = ((System.Drawing.Image)(resources.GetObject("PrintPacs.Image")));
this.PrintPacs.Name = "PrintPacs";
this.PrintPacs.Size = new System.Drawing.Size(124, 22);
this.PrintPacs.Text = "打印报告";
//
// PartForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
@ -3104,6 +3122,7 @@
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.superTabControl1)).EndInit();
this.contextMenuStrip2.ResumeLayout(false);
this.ResumeLayout(false);
}
@ -3319,5 +3338,7 @@
private UControl.OpMenuSimple opsConclusion;
private System.Windows.Forms.Label label19;
private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip2;
private System.Windows.Forms.ToolStripMenuItem PrintPacs;
}
}

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Printing;
using System.Globalization;
using System.IO;
using System.Linq;
@ -191,6 +192,8 @@ namespace PEIS.View.Exam
{
if (e.KeyCode == Keys.Enter) OnGetPatients();
};
// pacs报告打印
PrintPacs.Click += PrintPacs_Click;
}
#region 【part01】.体检者列表
@ -2085,6 +2088,61 @@ namespace PEIS.View.Exam
{
}
/// <summary>
/// pacs报告打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PrintPacs_Click(object sender, EventArgs e)
{
if (!(DgvRptPacs.GetFocusedRow() is Report selected)) return;
var rpt = DAOHelp.Query<Report>($@"SELECT TOP 1 ReportImage FROM [dbo].[Report] WHERE ID={selected.ID}")?.FirstOrDefault();
if (rpt?.ReportImage != null)
{
try
{
using (var ms = new MemoryStream(rpt.ReportImage))
{
Image img = Image.FromStream(ms);
System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
printDialog.Document = new PrintDocument();
printDialog.Document.PrintPage += (a, b) =>
{
// 计算图像的宽度和高度
int imageWidth = img.Width;
int imageHeight = img.Height;
// 获取打印区域的宽度和高度(考虑到页边距)
float marginBoundsWidth = b.MarginBounds.Width;
float marginBoundsHeight = b.MarginBounds.Height;
// 计算绘制起点的坐标,使图像居中
float left = (marginBoundsWidth - imageWidth) / 2;
float top = (marginBoundsHeight - imageHeight) / 2;
// 确保坐标值不为负数
left = left < 0 ? 0 : left;
top = top < 0 ? 0 : top;
b.Graphics.DrawImage(img, left, top, imageWidth, imageHeight);
};
printDialog.UseEXDialog = true; // 显示增强的打印对话框
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDialog.Document.Print(); // 执行打印操作
}
}
}
catch (Exception ex)
{
Global.MsgWarn(ex.Message);
Debug.Write(ex.Message);
}
}
}
#endregion PACS
#region 数据关联获取

@ -123,10 +123,25 @@
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>175, 17</value>
</metadata>
<metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>580, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PrintPacs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAAAV1JREFUWEft
l09OAyEUxucI3RjTK7hqY8tsXbk2FRa9glsP0F7C83iELhjqwsPoUN/nUAojMGC64Jd8SXnte3yh/G0q
lf9ixeXDmndvvd7jJF/XQi2oTB4WT4cZ492h11eKWt59LMXnDZWbDnvutijuHgW/jLwXKjcdxuUehSkU
DPJ0DQrFw7gSPyZMDYX9UrvLmDtPz0nqbhxzmEtL90XdulkJxVyJJdVy+UjdX2IOsR7SkhpMjcwt0xCF
ipFkqN3KW7TvN8f56UeZQN04Q0LdoZ17t0XdKEMa/OfUzEayIaBN9cs021k2yVCJs2z4PsFQibMM8TRD
nngIyLM79sXPqIYc8TNCDdGKc84ZCFsF8tIMOSbvKe4whLZPPkOoi3j/2X9xs5f3mCEU9mnMEGJBV1vq
7HcD1DHbUAzIs0do0uU/p6EsVEN/cXXPoKt7KGrs1ReuAk/pSsVL03wDEqTl6G2XZ9cAAAAASUVORK5C
YII=
</value>
</data>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>340, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tsmiCancel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAZRJREFUWEdj
@ -171,9 +186,6 @@
fOB5L+flMi1KC1D4AAAAAElFTkSuQmCC
</value>
</data>
<metadata name="superTabControl1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>70</value>
</metadata>

@ -233,6 +233,8 @@
this.gridView6 = new DevExpress.XtraGrid.Views.Grid.GridView();
this.gridView7 = new DevExpress.XtraGrid.Views.Grid.GridView();
this.gridView8 = new DevExpress.XtraGrid.Views.Grid.GridView();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.PrintPacs = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.splitContainerBase)).BeginInit();
this.splitContainerBase.Panel1.SuspendLayout();
this.splitContainerBase.Panel2.SuspendLayout();
@ -327,6 +329,7 @@
((System.ComponentModel.ISupportInitialize)(this.gridView6)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.gridView7)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.gridView8)).BeginInit();
this.contextMenuStrip1.SuspendLayout();
this.SuspendLayout();
//
// splitContainerBase
@ -1998,6 +2001,7 @@
//
// DgcRptPacs
//
this.DgcRptPacs.ContextMenuStrip = this.contextMenuStrip1;
this.DgcRptPacs.Dock = System.Windows.Forms.DockStyle.Fill;
this.DgcRptPacs.Location = new System.Drawing.Point(0, 0);
this.DgcRptPacs.MainView = this.DgvRptPacs;
@ -2848,6 +2852,20 @@
//
this.gridView8.Name = "gridView8";
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.PrintPacs});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(125, 26);
//
// PrintPacs
//
this.PrintPacs.Image = ((System.Drawing.Image)(resources.GetObject("PrintPacs.Image")));
this.PrintPacs.Name = "PrintPacs";
this.PrintPacs.Size = new System.Drawing.Size(124, 22);
this.PrintPacs.Text = "打印报告";
//
// TotalForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
@ -2960,6 +2978,7 @@
((System.ComponentModel.ISupportInitialize)(this.gridView6)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.gridView7)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.gridView8)).EndInit();
this.contextMenuStrip1.ResumeLayout(false);
this.ResumeLayout(false);
}
@ -3169,5 +3188,7 @@
private DevExpress.XtraGrid.Columns.GridColumn gridColumn31;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn32;
private DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit repositoryItemMemoEdit4;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem PrintPacs;
}
}

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Printing;
using System.Globalization;
using System.IO;
using System.Linq;
@ -239,6 +240,8 @@ namespace PEIS.View.Exam
DgvExamConclusion.OptionsBehavior.Editable = true;
// 设置行头自动调整高度以显示勾选框
DgvExamConclusion.OptionsView.RowAutoHeight = true;
// pacs报告打印
PrintPacs.Click += PrintPacs_Click;
}
private void ConclusionSort(int i)
@ -940,6 +943,61 @@ namespace PEIS.View.Exam
GetExamPacsImage(selected.EID, selected.ReportNo);
}
/// <summary>
/// pacs报告打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PrintPacs_Click(object sender, EventArgs e)
{
if (!(DgvRptPacs.GetFocusedRow() is Report selected)) return;
var rpt = DAOHelp.Query<Report>($@"SELECT TOP 1 ReportImage FROM [dbo].[Report] WHERE ID={selected.ID}")?.FirstOrDefault();
if (rpt?.ReportImage != null)
{
try
{
using (var ms = new MemoryStream(rpt.ReportImage))
{
Image img = Image.FromStream(ms);
PrintDialog printDialog = new PrintDialog();
printDialog.Document = new PrintDocument();
printDialog.Document.PrintPage += (a, b) =>
{
// 计算图像的宽度和高度
int imageWidth = img.Width;
int imageHeight = img.Height;
// 获取打印区域的宽度和高度(考虑到页边距)
float marginBoundsWidth = b.MarginBounds.Width;
float marginBoundsHeight = b.MarginBounds.Height;
// 计算绘制起点的坐标,使图像居中
float left = (marginBoundsWidth - imageWidth) / 2;
float top = (marginBoundsHeight - imageHeight) / 2;
// 确保坐标值不为负数
left = left < 0 ? 0 : left;
top = top < 0 ? 0 : top;
b.Graphics.DrawImage(img, left, top, imageWidth, imageHeight);
};
printDialog.UseEXDialog = true; // 显示增强的打印对话框
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDialog.Document.Print(); // 执行打印操作
}
}
}
catch (Exception ex)
{
Global.MsgWarn(ex.Message);
Debug.Write(ex.Message);
}
}
}
#endregion PACS
private void SetPictureBoxReportExt(ReportExt item)

@ -118,18 +118,27 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>497, 55</value>
<value>676, 17</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>497, 55</value>
</metadata>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>377, 55</value>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PrintPacs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAAAV1JREFUWEft
l09OAyEUxucI3RjTK7hqY8tsXbk2FRa9glsP0F7C83iELhjqwsPoUN/nUAojMGC64Jd8SXnte3yh/G0q
lf9ixeXDmndvvd7jJF/XQi2oTB4WT4cZ492h11eKWt59LMXnDZWbDnvutijuHgW/jLwXKjcdxuUehSkU
DPJ0DQrFw7gSPyZMDYX9UrvLmDtPz0nqbhxzmEtL90XdulkJxVyJJdVy+UjdX2IOsR7SkhpMjcwt0xCF
ipFkqN3KW7TvN8f56UeZQN04Q0LdoZ17t0XdKEMa/OfUzEayIaBN9cs021k2yVCJs2z4PsFQibMM8TRD
nngIyLM79sXPqIYc8TNCDdGKc84ZCFsF8tIMOSbvKe4whLZPPkOoi3j/2X9xs5f3mCEU9mnMEGJBV1vq
7HcD1DHbUAzIs0do0uU/p6EsVEN/cXXPoKt7KGrs1ReuAk/pSsVL03wDEqTl6G2XZ9cAAAAASUVORK5C
YII=
</value>
</data>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>377, 55</value>
<value>563, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TsmiAbandoned.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAbNJREFUWEft
@ -169,10 +178,10 @@
</value>
</data>
<metadata name="behaviorManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1216, 17</value>
<value>182, 17</value>
</metadata>
<metadata name="linqInstantFeedbackSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1379, 17</value>
<value>345, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>46</value>

Loading…
Cancel
Save