if (from.scu == null)
{
MessageBox.Show("请先连接服务器", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
from.f2.Show();
CFindStudyQuery stud = new CFindStudyQuery();
getQyeryTxt(stud);
CFindStudyClient scu = new CFindStudyClient();
scu.CalledAE = from.scu.CalledAE;
scu.CallingAE = from.scu.CalledAE;
scu.ConnectTimeout = from.scu.ConnectTimeout;
scu.DimseTimeout = from.scu.DimseTimeout;
scu.SocketTimeout = from.scu.DimseTimeout;
scu.MaxPduSize = from.scu.MaxPduSize;
scu.AddQuery(stud);
DataTable dt = new DataTable();
for (int i = 0; i < 14; i++)
{
DataColumn col = new DataColumn(i + "");
dt.Columns.Add(col);
}
DataRow row = null;
scu.OnCFindResponse = delegate(CFindStudyQuery q,
CFindStudyResponse r)
{
try
{
if (r != null)
{
row = dt.NewRow();
row[0] = r.PatientID;
row[1] = r.PatientsName;
row[2] = r.PatientsBirthDate.ToLongDateString();
row[3] = r.PatientsSex;
row[4] = r.StudyID;
row[5] = r.AccessionNumber;
row[6] = r.StudyInstanceUID;
row[7] = r.Modality;
row[8] = r.ModalitiesInStudy;
row[9] = r.StudyDescription;
row[10] = r.StudyDate.ToLongDateString();
row[11] = r.StudyTime.ToLongTimeString();
row[12] = r.NumberOfStudyRelatedSeries;
row[13] = r.NumberOfStudyRelatedInstances;
dt.Rows.Add(row);
}
}
finally
{
}
};
System.Threading.ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(object obj)
{
scu.Connect(from.conf.RemoteHost, int.Parse(from.conf.RemotePort), from.conf.UseTls == "1" ? DcmSocketType.TLS : DcmSocketType.TCP);
if (scu.Wait())
{
tabPage1.BeginInvoke(new bddataview(bdQueryedData), new object[] { dt });
tabPage1.BeginInvoke(new updateData(from.f2.Hide), new object[] {});
}
}));
}
/// <summary>
/// 绑定查询后的数据
/// </summary>
private void bdQueryedData(DataTable dt)
{
if (dt != null)
{
dataResult.DataSource = dt.DefaultView;
dataResult.Columns[0].HeaderText = "病人id";
dataResult.Columns[1].HeaderText = "病人姓名";
dataResult.Columns[2].HeaderText = "出生日期";
dataResult.Columns[3].HeaderText = "性别";
dataResult.Columns[4].HeaderText = "研究id";
dataResult.Columns[5].HeaderText = "加入数字";
dataResult.Columns[6].HeaderText = "研究实例uid";
dataResult.Columns[7].HeaderText = "图像类别";
dataResult.Columns[8].HeaderText = "研究中的图像类别";
dataResult.Columns[9].HeaderText = "研究描述";
dataResult.Columns[10].HeaderText = "研究日期";
dataResult.Columns[11].HeaderText = "研究时间";
dataResult.Columns[12].HeaderText = "研究中序列数";
dataResult.Columns[13].HeaderText = "研究实例数";
dataResult.Columns[2].Visible = false;
}
}
private void getQyeryTxt(CFindStudyQuery stud)
{
if (txt_examine.Text != "")
{
stud.StudyID = txt_examine.Text.Trim();
}
if (checkBox2.Checked && txt_intervalDays.Text != "")
{
if (isshu(txt_intervalDays.Text.Trim()))
{
int day = int.Parse(txt_intervalDays.Text);
stud.StudyDate = new DcmDateRange(DateTime.Now.AddDays(-day), DateTime.Now);
}
}
if (checkBox1.Checked && dateTimePicker1.Text != "")
{
stud.StudyDate = new DcmDateRange(dateTimePicker1.Value, dateTimePicker1.Value);
}
if (txt_pationt.Text != "")
{
stud.PatientsName = txt_pationt.Text.Trim();
}
if (txt_patents_number.Text != null)
{
stud.PatientID = txt_patents_number.Text;
}
if (cnb_modality.SelectedItem != null && cnb_modality.SelectedItem.ToString() != "")
{
stud.ModalitiesInStudy = cnb_modality.SelectedItem.ToString();
}