216 lines
7.6 KiB
C#
216 lines
7.6 KiB
C#
using JJMediSys.cs;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Xml;
|
|
using static JJMediSys.AlertForm;
|
|
|
|
namespace JJMediSys
|
|
{
|
|
public partial class STATSRules : Form
|
|
{
|
|
|
|
[DllImport("user32.dll")]//*********************拖动无窗体的控件
|
|
public static extern bool ReleaseCapture();
|
|
[DllImport("user32.dll")]
|
|
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
|
|
public const int WM_SYSCOMMAND = 0x0112;
|
|
public const int SC_MOVE = 0xF010;
|
|
public const int HTCAPTION = 0x0002;
|
|
public STATSRules()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
|
|
|
|
public struct Rule
|
|
{
|
|
public string Type { get; set; } //类型XM项目 SG试管
|
|
public string Name { get; set; }
|
|
public string Details { get; set; }
|
|
public string SendKS { get; set; }
|
|
public List<string> DetailItem { get; set; }
|
|
public string INUSE { get; set; } //1启用
|
|
}
|
|
public List<Rule> rules;
|
|
private void STATSRules_Load(object sender, EventArgs e)
|
|
{
|
|
int x = (Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2;
|
|
int y = (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2;
|
|
this.Location = new Point(x, y);
|
|
BDel.Visible = false;
|
|
RadXM.Checked = true;
|
|
RadJYK.Checked = true;
|
|
listView1.Columns.Add("规则类型", 100);
|
|
listView1.Columns.Add("规则名称", 100);
|
|
listView1.Columns.Add("规则明细", 300);
|
|
listView1.Columns.Add("送检科室", 100);
|
|
listView1.Columns.Add("启用标志", 100);
|
|
rules = LoadRule();
|
|
foreach (Rule rule in rules)
|
|
{
|
|
listView1.Items.Add(new ListViewItem(new string[] { (rule.Type == "XM" ? "项目" : "试管"), rule.Name, rule.Details,rule.SendKS, (rule.INUSE == "1" ? "启用" : "未启用") }));
|
|
}
|
|
|
|
}
|
|
|
|
public static List<Rule> LoadRule()
|
|
{
|
|
List<Rule> rules = new List<Rule>();
|
|
string Rulestr = ConfigFileReader.GetValue("/configuration/appSettings/add[@key='STATSRules']");
|
|
string[] Rules = Rulestr.Split('|');
|
|
foreach (string temp in Rules)
|
|
{
|
|
if(temp!="")
|
|
{
|
|
string[] Details = temp.Split('^');
|
|
if(Details.Length==5)
|
|
{
|
|
Rule rule = new Rule();
|
|
rule.Type = Details[0];
|
|
rule.Name = Details[1];
|
|
rule.Details = Details[2];
|
|
rule.SendKS = Details[3];
|
|
rule.INUSE = Details[4];
|
|
rule.DetailItem = Details[2].Split(';').ToList().Where(item => !string.IsNullOrWhiteSpace(item)).ToList();
|
|
rules.Add(rule);
|
|
}
|
|
}
|
|
}
|
|
return rules;
|
|
}
|
|
|
|
private void STATSRules_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
ReleaseCapture();
|
|
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
|
|
}
|
|
|
|
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.listView1.SelectedItems.Count > 0)
|
|
{
|
|
BDel.Visible = true;
|
|
string Type = this.listView1.SelectedItems[0].SubItems[0].Text;
|
|
if(Type.Equals("项目"))
|
|
{
|
|
RadXM.Checked = true;
|
|
}
|
|
else
|
|
{
|
|
RadSG.Checked = true;
|
|
}
|
|
RuleName.Text = this.listView1.SelectedItems[0].SubItems[1].Text;
|
|
RuleDetail.Text = this.listView1.SelectedItems[0].SubItems[2].Text;
|
|
string SendKS = this.listView1.SelectedItems[0].SubItems[3].Text;
|
|
if (SendKS.Equals("检验科"))
|
|
{
|
|
RadJYK.Checked = true;
|
|
}
|
|
else
|
|
{
|
|
RadQT.Checked = true;
|
|
}
|
|
|
|
if (this.listView1.SelectedItems[0].SubItems[4].Text.Equals("启用"))
|
|
{
|
|
InUse.Checked = true;
|
|
}
|
|
else
|
|
{
|
|
InUse.Checked = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
BDel.Visible = false;
|
|
}
|
|
}
|
|
|
|
private void BDel_Click(object sender, EventArgs e)
|
|
{
|
|
string TagRuleName = RuleName.Text;//this.listView1.SelectedItems[0].SubItems[0].Text;
|
|
bool isfinded = false;
|
|
foreach (Rule rule in rules)
|
|
{
|
|
if(rule.Name.Equals(TagRuleName))
|
|
{
|
|
rules.Remove(rule);
|
|
isfinded = true;
|
|
break;
|
|
}
|
|
}
|
|
if(isfinded)
|
|
{
|
|
MessageBox.Show("没有找到原始规则");
|
|
return;
|
|
}
|
|
string Rulestr = "";
|
|
listView1.Items.Clear();
|
|
foreach (Rule rule in rules)
|
|
{
|
|
listView1.Items.Add(new ListViewItem(new string[] { (rule.Type == "XM" ? "项目" : "试管"),rule.Name, rule.Details,rule.SendKS, (rule.INUSE == "1" ? "启用" : "未启用") }));
|
|
Rulestr = Rulestr + rule.Type + "^" + rule.Name + "^" + rule.Details + "^" + rule.SendKS + "^" + rule.INUSE + "|";
|
|
}
|
|
ConfigFileReader.SetValue("/configuration/appSettings/add[@key='STATSRules']", Rulestr);
|
|
AlertForm.ShowAlert("删除成功", AlertType.Success, 3);
|
|
|
|
}
|
|
|
|
private void BSave_Click(object sender, EventArgs e)
|
|
{
|
|
if(RuleName.Text==""|| RuleDetail.Text=="")
|
|
{
|
|
MessageBox.Show("请先设置规则参数");
|
|
return;
|
|
}
|
|
foreach (Rule rule in rules)
|
|
{
|
|
if (rule.Name.Equals(RuleName.Text))
|
|
{
|
|
rules.Remove(rule);
|
|
break;
|
|
}
|
|
}
|
|
Rule rule1 = new Rule();
|
|
if(RadXM.Checked)
|
|
{
|
|
rule1.Type = "XM";
|
|
}
|
|
else
|
|
{
|
|
rule1.Type = "SG";
|
|
}
|
|
if (RadJYK.Checked)
|
|
{
|
|
rule1.SendKS = "检验科";
|
|
}
|
|
else
|
|
{
|
|
rule1.SendKS = "其他";
|
|
}
|
|
rule1.Name = RuleName.Text;
|
|
rule1.Details = RuleDetail.Text;
|
|
rule1.INUSE = InUse.Checked?"1":"0";
|
|
rules.Add(rule1);
|
|
string Rulestr = "";
|
|
listView1.Items.Clear();
|
|
foreach (Rule rule in rules)
|
|
{
|
|
listView1.Items.Add(new ListViewItem(new string[] { (rule.Type == "XM" ? "项目" : "试管"),rule.Name, rule.Details,rule.SendKS, (rule.INUSE == "1" ? "启用" : "未启用") }));
|
|
Rulestr = Rulestr + rule.Type+"^"+rule.Name + "^" + rule.Details + "^" + rule.SendKS + "^" + rule.INUSE + "|";
|
|
}
|
|
ConfigFileReader.SetValue("/configuration/appSettings/add[@key='STATSRules']", Rulestr);
|
|
AlertForm.ShowAlert("保存成功", AlertType.Success, 3);
|
|
}
|
|
}
|
|
}
|