/// <summary> /// 确定上传选择样本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void button_upload_Click(object sender, RoutedEventArgs e) { if (!GlobalVariable.DSNum) { //如果没连接生化仪,会不进行此操作 await mainwin.ShowMessageAsync("警告", "未连接生化仪"); return; } foreach (var single in UploadList) { if (single.IsSelected) { chooseList.Add(single); } } if (chooseList.Count == 0) { await mainwin.ShowMessageAsync("提醒", "请选择样本"); log.Info("无选择上传样本"); return; } foreach (var single in chooseList) { //所有项目都可以上传,不局限于正在连接的设备 log.Info("选择上传样本" + single.Sample_ID); ReadAccessDS.ReadData(single.Sample_ID, single.Test_Time); GlobalVariable.NoDisplaySampleID.Add(single.Sample_ID); } ProgressDialogController controller = await mainwin.ShowProgressAsync("Please wait...", "Progress message"); for (int i = 0; i < (chooseList.Count * 5); i++) { System.Windows.Forms.Application.DoEvents(); Thread.Sleep(100); } Thread.Sleep(500); GetNoSendData(); //重新获取数据 ReadAccessDS.CheckUnDoneSampleNum(false); //重新获取未发送样本 await controller.CloseAsync(); }
/// <summary> /// 确定选择样本下发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void button_download_Click(object sender, RoutedEventArgs e) { if (!GlobalVariable.DSNum) { //如果没连接生化仪,会不进行此操作 await mainwin.ShowMessageAsync("警告", "未连接生化仪"); return; } foreach (var single in DownloadList) { if (single.IsSelected) { chooseList.Add(single); } } if (chooseList.Count == 0) { await mainwin.ShowMessageAsync("提醒", "请选择样本"); return; } ProgressDialogController controller = await mainwin.ShowProgressAsync("Please wait...", "Progress message"); foreach (var single in chooseList) { if (single.Device != GlobalVariable.DSDeviceID) { continue; } DI800Manager.DsInput sampleInput = new DI800Manager.DsInput(); List <DI800Manager.DsTask> taskList = new List <DI800Manager.DsTask>(); sampleInput.SAMPLE_ID = single.Sample_ID; sampleInput.PATIENT_ID = single.Patient_ID; sampleInput.FIRST_NAME = single.Patient_Name; sampleInput.SEX = single.Patient_Sex; sampleInput.AGE = single.Patient_Age.ToString(); sampleInput.SEND_TIME = single.Send_Time; sampleInput.EMERGENCY = single.Emergency; sampleInput.SAMPLE_KIND = single.Kind; sampleInput.Device = single.Device; sampleInput.IsSend = false; string[] item = single.Item.Split(','); foreach (string singleItem in item) { DI800Manager.DsTask singleTask = new DI800Manager.DsTask(); singleTask.Device = single.Device; singleTask.ITEM = singleItem; singleTask.SAMPLE_ID = single.Sample_ID; singleTask.SEND_TIME = single.Send_Time; singleTask.Type = taskType[singleItem].ToString();//从哈希表里获取相应类型 taskList.Add(singleTask); } log.Info("选择下发项目" + sampleInput.SAMPLE_ID); WriteEquipAccess.WriteApplySampleDS(sampleInput, taskList);//去写入到设备数据库 System.Windows.Forms.Application.DoEvents(); Thread.Sleep(500); } Thread.Sleep(500); GetNoIssueData(true); //重新获取数据 ReadAccessDS.CheckUnDoneSampleNum(true); //重新获取未发送样本 Thread.Sleep(500); chooseList.Clear(); await controller.CloseAsync(); }
/// <summary> /// 一键上传所有未发送样本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void button_onekeyupload_Click(object sender, RoutedEventArgs e) { if (!GlobalVariable.DSNum) { //如果没连接生化仪,会不进行此操作 await mainwin.ShowMessageAsync("警告", "未连接生化仪"); return; } AccessManagerDS.mutex.WaitOne(); HashSet <Hashtable> hID = new HashSet <Hashtable>(); if (conn.State == ConnectionState.Closed) { conn.Open(); } num = 0; ds = new DataSet(); string strSelect = "select * from lisoutput where [ISSEND]= false"; using (OleDbDataAdapter oa = new OleDbDataAdapter(strSelect, conn)) { if (oa.Fill(ds, "Up") == 0) { //已经全部上传了 UploadList.Clear(); ds.Clear(); conn.Close(); AccessManagerDS.mutex.ReleaseMutex(); return; } else { //有一些样本没有上传 //先往哈希表里写入样本号 foreach (DataRow dr in ds.Tables["Up"].Rows) { //所有项目都可以上传,不局限于正在连接的设备 Hashtable single = new Hashtable(); single.Add("SAMPLE_ID", dr["SAMPLE_ID"].ToString()); single.Add("SEND_TIME", dr["SEND_TIME"].ToString()); hID.Add(single); /* * 只能上传当前连接仪器的信息 * if (dr["Device"].ToString() == GlobalVariable.DSDeviceID) * { * hID.Add(dr["SAMPLE_ID"].ToString()); * } */ } } } AccessManagerDS.mutex.ReleaseMutex(); conn.Close(); Thread.Sleep(500); if (hID.Count == 0) { await mainwin.ShowMessageAsync("提醒", "无样本数据可处理"); log.Info("无一键上传样本"); return; } ProgressDialogController controller = await mainwin.ShowProgressAsync("Please wait...", "Progress message"); foreach (Hashtable singleID in hID) { log.Info("一键上传样本" + singleID); ReadAccessDS.ReadData(singleID["SAMPLE_ID"].ToString(), singleID["SEND_TIME"].ToString()); GlobalVariable.NoDisplaySampleID.Add(singleID["SAMPLE_ID"].ToString()); System.Windows.Forms.Application.DoEvents(); Thread.Sleep(1000); } Thread.Sleep(1000); GetNoSendData(); //重新获取数据 ReadAccessDS.CheckUnDoneSampleNum(false); //重新获取未发送样本 await controller.CloseAsync(); }