示例#1
0
        /// <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();
        }
示例#3
0
        /// <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();
        }