Exemplo n.º 1
0
        private void XingTaiItemsOperate(LisReport lr)
        {
            GSCommonItemsOperate(lr);
            List <ReportItemModel> results = this._gsItemDAL.SearchList(lr.SpecItemsTable);

            GSReportItemsOperate(lr.SpecItemsTable, results);
        }
Exemplo n.º 2
0
        //将report对象填充到dataset
        private void FillDataSet(LisReport lr, DataSet ds)
        {
            FillReportInfo(lr.ReportInfo, ds);
            //特殊检验项填充
            switch (lr.ReportInfo.SectionNo)
            {
            //血细胞
            case 2:
            case 27:
                //血常规
                if (lr.SpecItemsTable.Count > 4)
                {
                    //人工分类
                    FillManReportItem(lr.SpecItemsTable, ds);
                }
                break;

            //uf1000i
            case 28:
                //尿大张
                if (lr.ParItemList.Contains(90008562))
                {
                    FillGraphReportItem(lr.SpecItemsTable, ds, 1);
                }
                break;

            //遗传
            case 11:
                //染色体
                if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
                {
                    FillRanReportItem(lr.SpecItemsList, ds, lr.ReportInfo);
                    FillGraphReportItem(lr.SpecItemsTable, ds, 3);
                }
                //fish
                else
                {
                    FillGraphReportItem(lr.SpecItemsTable, ds, 2);
                }
                break;

            //Spife4000 血清蛋白电泳
            case 35:
                FillGraphReportItem(lr.SpecItemsTable, ds, 4);
                break;

            //细胞化学
            case 3:
                FillGraphReportItem(lr.SpecItemsTable, ds, 5);
                break;

            //细胞形态
            case 39:
                FillGSReportItems(ds, lr.SpecItemsTable);
                FillGSCommonItems(ds, lr.SpecItemsList, lr.ReportInfo);
                break;
            }
            //通用检验项填充
            FillReportItems(lr, ds);
        }
Exemplo n.º 3
0
 public void InitLisReport(LisReport lr, Hashtable equalFields)
 {
     lr.Clear();
     this._rfDAL.Search(equalFields, lr.ReportInfo);
     GenderItemEqualFields(lr.ReportInfo, lr.SpecItemsTable);
     this._riDAL.SearchList(lr.SpecItemsTable, lr.ReportItemList);
     ReportOperate(lr);
 }
Exemplo n.º 4
0
 public void InitLisReport(LisReport lr,Hashtable equalFields)
 {
     lr.Clear();
     this._rfDAL.Search(equalFields, lr.ReportInfo);
     GenderItemEqualFields(lr.ReportInfo, lr.SpecItemsTable);
     this._riDAL.SearchList(lr.SpecItemsTable, lr.ReportItemList);
     ReportOperate(lr);
 }
Exemplo n.º 5
0
 //获得lis报告
 public LisReport GetLisReport(Hashtable equalFields)
 {
     LisReport lr = new LisReport();
     ReportFormDAL rfdal = new ReportFormDAL();
     lr.ReportInfo = rfdal.Search(equalFields);
     GenderItemEqualFields(lr.ReportInfo,lr.SpecItemsTable);
     FillReportItemList(lr.SpecItemsTable, lr);
     ReportOperate(lr);
     return lr;
 }
Exemplo n.º 6
0
        //获得lis报告
        public LisReport GetLisReport(Hashtable equalFields)
        {
            LisReport     lr    = new LisReport();
            ReportFormDAL rfdal = new ReportFormDAL();

            lr.ReportInfo = rfdal.Search(equalFields);
            GenderItemEqualFields(lr.ReportInfo, lr.SpecItemsTable);
            FillReportItemList(lr.SpecItemsTable, lr);
            ReportOperate(lr);
            return(lr);
        }
Exemplo n.º 7
0
        public void PrintReport(LisReport lr)
        {
            DataSet ds = CreateDataSet("ReportTables.frd");

            FillDataSet(lr, ds);
            Report report    = new Report();
            string modelName = GetReportModelName(lr);

            report.Load(GetReprotModelPath(modelName));
            report.RegisterData(ds);
            report.Prepare();
            report.Print();
        }
Exemplo n.º 8
0
        //设置通用报告项
        private void FillReportItemList(Hashtable itemEqualFields, LisReport lr)
        {
            List <ReportItemModel> rimList = GetItemList(itemEqualFields);

            //此处可添加一些过滤
            foreach (ReportItemModel rim in rimList)
            {
                if (!lr.ParItemList.Contains(rim.ParItemNo))
                {
                    lr.ParItemList.Add(rim.ParItemNo);
                }
                lr.ReportItemList.Add(rim);
            }
        }
Exemplo n.º 9
0
        private void SetCommonOrder(LisReport lr)
        {
            int preOrder = CommonSection.GetDisplayOrder(lr.ReportInfo.SectionNo);

            if (preOrder != -1)
            {
                int sufOrder = MaxOrder(lr.ParItemList) % 10000;
                lr.OrderNo = preOrder * 10000 + sufOrder;
            }
            else
            {
                lr.OrderNo = 0;
            }
        }
Exemplo n.º 10
0
        public void GenderPDFReport(LisReport lr, string rootPath, DataSet ds)
        {
            //清空数据库
            ClearDataSet(ds);
            //填充数据
            FillDataSet(lr, ds);
            Report report = new Report();
            //获取模板
            string modelName = GetReportModelName(lr);
            //获取生成文件全路径
            string fileFullName = GenderFileFullName(lr.ReportInfo, rootPath, lr.OrderNo);

            report.Load(GetReprotModelPath(modelName));
            report.RegisterData(ds);
            report.Prepare();
            PDFExport export = new PDFExport();

            //这里针对像流式这种生成PDF之后还要处理的情况。
            if (AfterCreatPDF(lr.ReportInfo.SectionNo))
            {
                string linshi = rootPath + "\\liushi\\linshi.pdf";
                report.Export(export, linshi);
                report.Dispose();
                List <MyMergePdf> lm = new List <MyMergePdf>();
                lm.Add(new MyMergePdf {
                    Name = linshi
                });
                string liushiPDFname = getliushiname(lr.ReportInfo.SerialNo, lr.ReportInfo.SampleNo, rootPath);
                if (liushiPDFname != "")
                {
                    try
                    {
                        int page = Convert.ToInt32(liushiPDFname.Split('_')[2].Split('.')[0]);
                        lm.Add(new MyMergePdf {
                            Name = rootPath + "\\liushi\\" + liushiPDFname, PagCount = page
                        });
                    }
                    catch { }
                }
                mergePDFFiles(lm, fileFullName);
            }
            //一般情况。
            else
            {
                report.Export(export, fileFullName);
                report.Dispose();
            }
        }
Exemplo n.º 11
0
        private void FillReportItems(LisReport lr, DataSet ds)
        {
            DataTable dt = ds.Tables["ReportItem"];
            DataRow   dr;

            foreach (ReportItemModel rim in lr.ReportItemList)
            {
                //过滤不显示项
                if (rim.SecretGrade > 0 || rim.ItemResult.Equals(""))
                {
                    continue;
                }
                dr = dt.NewRow();
                FillReportItem(rim, dr, lr.ReportInfo);
                dt.Rows.Add(dr);
            }
        }
Exemplo n.º 12
0
 public void GenderPDFReport(LisReport lr, string rootPath)
 {
     //DataSet ds = CreateDataSet("ReportTables.frd");
     DataSet ds = GetPrintDataSet("ReportTables.frd");
     FillDataSet(lr, ds);
     Report report = new Report();
     //获取模板
     string modelName = GetReportModelName(lr);
     //获取生成文件全路径
     string fileFullName = GenderFileFullName(lr.ReportInfo, rootPath, lr.OrderNo);
     report.Load(GetReprotModelPath(modelName));
     report.RegisterData(ds);
     report.Prepare();
     PDFExport export = new PDFExport();
     report.Export(export, fileFullName);
     report.Dispose();
 }
Exemplo n.º 13
0
 public void GenderPDFReport(LisReport lr, string rootPath,DataSet ds)
 {
     //清空数据库
     ClearDataSet(ds);
     //填充数据
     FillDataSet(lr, ds);
     Report report = new Report();
     //获取模板
     string modelName = GetReportModelName(lr);
     //获取生成文件全路径
     string fileFullName = GenderFileFullName(lr.ReportInfo, rootPath, lr.OrderNo);
     report.Load(GetReprotModelPath(modelName));
     report.RegisterData(ds);
     report.Prepare();
     PDFExport export = new PDFExport();
     //这里针对像流式这种生成PDF之后还要处理的情况。
     if (AfterCreatPDF(lr.ReportInfo.SectionNo))
     {
         string linshi = rootPath + "\\liushi\\linshi.pdf";
         report.Export(export, linshi);
         report.Dispose();
         List<MyMergePdf> lm = new List<MyMergePdf>();
         lm.Add(new MyMergePdf { Name = linshi });
         string liushiPDFname = getliushiname(lr.ReportInfo.SerialNo, lr.ReportInfo.SampleNo, rootPath);
         if (liushiPDFname != "")
         {
             try
             {
                 int page = Convert.ToInt32(liushiPDFname.Split('_')[2].Split('.')[0]);
                 lm.Add(new MyMergePdf { Name = rootPath + "\\liushi\\" + liushiPDFname, PagCount = page });
             }
             catch { }
         }
         mergePDFFiles(lm, fileFullName);
     }
     //一般情况。
     else
     {
         report.Export(export, fileFullName);
         report.Dispose();
     }
 }
Exemplo n.º 14
0
        public void GenderPDFReport(LisReport lr, string rootPath)
        {
            //DataSet ds = CreateDataSet("ReportTables.frd");
            DataSet ds = GetPrintDataSet("ReportTables.frd");

            FillDataSet(lr, ds);
            Report report = new Report();
            //获取模板
            string modelName = GetReportModelName(lr);
            //获取生成文件全路径
            string fileFullName = GenderFileFullName(lr.ReportInfo, rootPath, lr.OrderNo);

            report.Load(GetReprotModelPath(modelName));
            report.RegisterData(ds);
            report.Prepare();
            PDFExport export = new PDFExport();

            report.Export(export, fileFullName);
            report.Dispose();
        }
Exemplo n.º 15
0
 //获取lis报告集合
 public List<LisReport> GetLisReportList(Hashtable equalFields)
 {
     List<LisReport> lrList = new List<LisReport>();
     ReportFormDAL rfdal = new ReportFormDAL();
     List<ReportFormModel> rfmList=rfdal.SearchList(equalFields);
     LisReport lr;
     Hashtable itemEqualFields;
     foreach(ReportFormModel rfm in rfmList)
     {
         lr = new LisReport();
         //报告信息
         lr.ReportInfo = rfm;
         //报告项
         itemEqualFields = GenderItemEqualFields(rfm);
         FillReportItemList(itemEqualFields,lr);
         //其他操作
         ReportOperate(lr);
         lrList.Add(lr);
     }
     return lrList;
 }
Exemplo n.º 16
0
        //获取lis报告集合
        public List <LisReport> GetLisReportList(Hashtable equalFields)
        {
            List <LisReport>       lrList  = new List <LisReport>();
            ReportFormDAL          rfdal   = new ReportFormDAL();
            List <ReportFormModel> rfmList = rfdal.SearchList(equalFields);
            LisReport lr;
            Hashtable itemEqualFields;

            foreach (ReportFormModel rfm in rfmList)
            {
                lr = new LisReport();
                //报告信息
                lr.ReportInfo = rfm;
                //报告项
                itemEqualFields = GenderItemEqualFields(rfm);
                FillReportItemList(itemEqualFields, lr);
                //其他操作
                ReportOperate(lr);
                lrList.Add(lr);
            }
            return(lrList);
        }
Exemplo n.º 17
0
 private void SetPrintOrder(LisReport lr)
 {
     switch (lr.ReportInfo.SectionNo)
     {
             //形态
         case 39:
             lr.OrderNo = 12000;
             break;
             //组化
         case 3:
             lr.OrderNo = 14000;
             break;
         case 11:
             //染色体
             if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
             {
                 lr.OrderNo =15000;
             }
             else
             {
                 lr.OrderNo = 15500;
             }
             break;
         //血常规
         case 2:
         case 27:
             lr.OrderNo = 19000;
             break;
         case 17:
         case 23:
         case 29:
         case 34:
             List<int> ll=GetAU2700List();
             if (HasIntersection(lr.ParItemList, ll))
             {
                 lr.OrderNo = 19500;
             }
             else
             {
                 SetCommonOrder(lr);
             }
             break;
         default:
             switch (lr.ReportInfo.SampleTypeNo)
             {
                 //尿(尿常规等)
                 case 108:
                     lr.OrderNo = 1100000;
                     break;
                 //便(便常规等)
                 case 117:
                     lr.OrderNo = 1200000;
                     break;
                 //脑脊液()---特殊与生化同属于一个序列
                 case 115:
                     lr.OrderNo = 1000000;
                     break;
                 //胸水
                 case 4:
                 case 5:
                     lr.OrderNo = 1300000;
                     break;
                 default:
                     SetCommonOrder(lr);
                     break;
             }
             break;
     }
 }
Exemplo n.º 18
0
 //设置通用报告项
 private void FillReportItemList(Hashtable itemEqualFields, LisReport lr)
 {
     List<ReportItemModel> rimList = GetItemList(itemEqualFields);
     //此处可添加一些过滤
     foreach (ReportItemModel rim in rimList)
     {
         if (!lr.ParItemList.Contains(rim.ParItemNo))
         {
             lr.ParItemList.Add(rim.ParItemNo);
         }
         lr.ReportItemList.Add(rim);
     }
 }
Exemplo n.º 19
0
 //将report对象填充到dataset
 private void FillDataSet(LisReport lr, DataSet ds)
 {
     FillReportInfo(lr.ReportInfo, ds);
     //特殊检验项填充
     switch (lr.ReportInfo.SectionNo)
     {
         //血细胞
         case 2:
         case 27:
             //血常规
             if (lr.SpecItemsTable.Count > 4)
             {
                 //人工分类
                 FillManReportItem(lr.SpecItemsTable, ds);
             }
             break;
         //uf1000i
         case 28:
             //尿大张
             if (lr.ParItemList.Contains(90008562))
             {
                 FillGraphReportItem(lr.SpecItemsTable, ds, 1);
             }
             break;
         //遗传
         case 11:
             //染色体
             if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
             {
                 FillRanReportItem(lr.SpecItemsList, ds, lr.ReportInfo);
                 FillGraphReportItem(lr.SpecItemsTable, ds, 3);
             }
             //fish
             else
             {
                 FillGraphReportItem(lr.SpecItemsTable, ds, 2);
             }
             break;
             //Spife4000 血清蛋白电泳
         case 35:
             FillGraphReportItem(lr.SpecItemsTable, ds, 4);
             break;
             //细胞化学
         case 3:
             FillGraphReportItem(lr.SpecItemsTable, ds, 5);
             break;
             //细胞形态
         case 39:
             FillGSReportItems(ds, lr.SpecItemsTable);
             FillGSCommonItems(ds, lr.SpecItemsList, lr.ReportInfo);
             break;
     }
     //通用检验项填充
     FillReportItems(lr, ds);
 }
Exemplo n.º 20
0
 public void PrintReport(LisReport lr)
 {
     DataSet ds = CreateDataSet("ReportTables.frd");
     FillDataSet(lr, ds);
     Report report = new Report();
     string modelName = GetReportModelName(lr);
     report.Load(GetReprotModelPath(modelName));
     report.RegisterData(ds);
     report.Prepare();
     report.Print();
 }
Exemplo n.º 21
0
 private void GSCommonItemsOperate(LisReport lr)
 {
     this._gsCommonDAL.SearchList(lr.SpecItemsTable, lr.SpecItemsList);
 }
Exemplo n.º 22
0
 private void GSCommonItemsOperate(LisReport lr)
 {
     this._gsCommonDAL.SearchList(lr.SpecItemsTable, lr.SpecItemsList);
 }
Exemplo n.º 23
0
 private void button3_Click(object sender, EventArgs e)
 {
     ReportManager rm = new ReportManager();
     PDFManager pm = new PDFManager();
     LisReport lr = new LisReport();
     Hashtable equalFields = new Hashtable();
     string sql = "select receivedate,sectionno,testtypeno,sampleno from ReportForm where receivedate='" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "' and Sectionno in(3,4,11,14,17,23,29,34,5,19,20,21,25,30,33,35,63,18,2,27,28,62)";
     DataTable dt = DbHelperSQL.Query(sql).Tables["dt"];
     DataSet ds = pm.GetPrintDataSet("ReportTables.frd");
     foreach (DataRow dr in dt.Rows)
     {
         equalFields.Clear();
         equalFields.Add("receivedate", (DateTime)dr["receivedate"]);
         equalFields.Add("sectionno", (int)dr["sectionno"]);
         equalFields.Add("testtypeno", (int)dr["testtypeno"]);
         equalFields.Add("sampleno", dr["sampleno"].ToString());
         rm.InitLisReport(lr, equalFields);
         pm.GenderPDFReport(lr, LisConfig.GetPdfRootPath(), ds);
     }
     //GenderRemoteFile(dateTimePicker1.Value);
 }
Exemplo n.º 24
0
 private void FillReportItems(LisReport lr, DataSet ds)
 {
     DataTable dt = ds.Tables["ReportItem"];
     DataRow dr;
     foreach (ReportItemModel rim in lr.ReportItemList)
     {
         //过滤不显示项
         if (rim.SecretGrade > 0 || rim.ItemResult.Equals(""))
         {
             continue;
         }
         dr = dt.NewRow();
         FillReportItem(rim, dr, lr.ReportInfo);
         dt.Rows.Add(dr);
     }
 }
Exemplo n.º 25
0
        //获取报告模板名
        private string GetReportModelName(LisReport lr)
        {
            string modelName;

            switch (lr.PrintModelNo)
            {
            //血常规
            case 100:
                modelName = "lj-xuechanggui.frx";
                break;

            //尿大张
            case 200:
                modelName = "lj-niaodazhang.frx";
                break;

            //尿小张
            case 300:
                modelName = "lj-niaoxiaozhang.frx";
                break;

            //生化大张
            case 400:
                modelName = "shenghua-Common-da.frx";
                break;

            //生化小张
            case 500:
                modelName = "shenghua-01-1.frx";
                break;

            //tecan150免疫小张
            case 600:
                modelName = "mianyi-TECAN150-xiao.frx";
                break;

            //dxi800 免疫大张
            case 610:
                modelName = "mianyi-DXI800-da-1.frx";
                break;

            //Spife 4000 大张
            case 620:
                modelName = "mianyi-SPIFE4000-da.frx";
                break;

            //免疫普通小张
            case 700:
                modelName = "mianyi-Common-xiao.frx";
                break;

            //免疫手工小张
            case 710:
                modelName = "mianyi-shougong-xiao-1.frx";
                break;

            //免疫SUNRISE 小张
            case 720:
                modelName = "mianyi-Sunrise-xiao.frx";
                break;

            //免疫细胞培养
            case 730:
                modelName = "mianyi-xibaopeiyang-xiao.frx";
                break;

            //出凝血大张
            case 800:
                modelName = "zhixue-Adaption-1.frx";
                break;

            //出凝血小张
            case 900:
                modelName = "zhixue-01-1.frx";
                break;

            //溶血大张
            case 1000:
                modelName = "rongxue-Common-da.frx";
                break;

            //溶血小张
            case 1100:
                modelName = "rongxue-Common-xiao.frx";
                break;

            //遗传FISH
            case 1200:
                modelName = "yichuan-FISH.frx";
                break;

            //遗传染色体
            case 1300:
                modelName = "yichuan-Ran.frx";
                break;

            //细胞化学 单图
            case 1400:
                modelName = "zuhua-1image-1.frx";
                break;

            //细胞化学 单图2
            case 1420:
                modelName = "zuhua-1image-2.frx";
                break;

            //细胞化学 多图
            case 1430:
                modelName = "zuhua-2image-1.frx";
                break;

            //细胞形态
            case 1450:
                modelName = "xingtai-01-1.frx";
                break;

            //ReportType.Rt分子生物I脱氧核糖核酸巨细胞病毒脱氧核糖核酸EB病毒=1500
            case 1500:
                modelName = "fs-06-175.frx";
                break;

            case 1510:
            case 1530:
            case 1540:
            case 1520:
                modelName = "fs-06-02.frx";
                break;

            //40种,特殊
            case 1550:
                modelName = "fs-40.frx";
                break;

            case 1560:
                modelName = "40";
                break;

            case 1570:
                modelName = "40";
                break;

            case 1600:
                modelName = "ls-1600.frx";
                break;

            case 1610:
                modelName = "ls-1610.frx";
                break;

            case 1620:
                modelName = "ls-1620.frx";
                break;

            case 1630:
                modelName = "ls-1630.frx";
                break;

            case 1640:
                modelName = "ls-1640.frx";
                break;

            case 1650:
                modelName = "ls-1650.frx";
                break;

            case 1660:
                modelName = "ls-1660.frx";
                break;

            default:
                modelName = "lj-03-1.frx";
                break;
            }
            return(modelName);
        }
Exemplo n.º 26
0
        //报告项处理
        //1.获取特殊检验项、图片项
        //2.设置报告的模板、排序号
        private void ReportOperate(LisReport lr)
        {
            CommonItemsOperate(lr);
            SetPrintOrder(lr);
            //设置显打印模板号,特殊项处理
            switch (lr.ReportInfo.SectionNo)
            {
                //临检组
                case 2:
                case 27:
                    //包含人工分类
                    if (lr.SpecItemsList.Count > 0)
                    {
                        ManItemsOperate(lr.SpecItemsList, lr.SpecItemsTable);
                    }
                    lr.PrintModelNo = 100;
                    break;
                case 28:
                case 62:
                    if (lr.ParItemList.Contains(90008562))
                    {
                        GraphItemsOperate(lr.SpecItemsTable);
                        //uf1000i尿大张
                        lr.PrintModelNo = 200;
                    }
                    //uf1000
                    else
                    {
                        lr.PrintModelNo = 300;
                    }
                    break;
                //生化组
                case 17:
                case 23:
                case 29:
                case 34:
                    lr.PrintModelNo = 400;
                    break;
                //免疫组
                //免疫Tecan150  特殊
                case 19:
                    if (lr.SpecItemFlag && lr.ReportInfo.SickTypeNo == 2)
                    {
                        lr.ReportInfo.Remark = "带*为天津市临床检测中心认定的相互认可检验项目";
                    }
                    //更正说明
                    lr.ReportInfo.Explanation = lr.ReportInfo.ZDY5;
                    lr.PrintModelNo = 600;
                    break;
                //免疫DXI800  大张
                case 20:
                    //若采用代码类型模板则必须在程序中排序
                    // lr.ReportItemList.Sort();
                    lr.PrintModelNo = 610;
                    break;
                //免疫spife4000  大张
                case 35:
                    GraphItemsOperate(lr.SpecItemsTable);
                    lr.PrintModelNo = 620;
                    break;
                //免疫SUNRISE
                case 21:
                    lr.PrintModelNo = 720;
                    break;
                //免疫手工
                case 30:
                    //若采用代码类型模板则必须在程序中排序
                    // lr.ReportItemList.Sort();
                    lr.PrintModelNo = 710;
                    break;
                //免疫细胞培养
                case 14:
                    lr.PrintModelNo = 730;
                    break;
                //免疫其他
                case 5:
                case 25:
                case 33:
                case 63:
                    //更正说明
                    lr.ReportInfo.Explanation = lr.ReportInfo.ZDY5;
                    lr.PrintModelNo = 700;
                    break;
                //出凝血组
                case 4:
                case 24:
                    //若采用代码类型模板则必须在程序中排序
                    //lr.ReportItemList.Sort();
                    lr.PrintModelNo = 800;
                    break;
                //溶血组
                case 18:
                    if (lr.ReportItemList.Count > 14)
                    {
                        //溶血大张
                        lr.PrintModelNo = 1000;
                    }
                    else
                    {
                        //溶血小张
                        lr.PrintModelNo = 1100;
                    }
                    break;
                //分子遗传小组
                case 11:
                    //染色体
                    if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
                    {
                        GraphItemsOperate(lr.SpecItemsTable);
                        lr.PrintModelNo = 1300;
                    }
                    //FISH
                    else
                    {
                        GraphItemsOperate(lr.SpecItemsTable);
                        //加载正常图片
                        FISHItemsOperate(lr.ParItemList[0], lr.SpecItemsTable);
                        lr.PrintModelNo = 1200;
                    }
                    break;
                //分子生物临床基因扩增
                case 6:
                    #region 死模板
                    List<int> cexu = new List<int>();
                    cexu.Add(50006853);
                    cexu.Add(50006854);
                    cexu.Add(90004767);
                    cexu.Add(90004768);
                    cexu.Add(90004769);
                    cexu.Add(90004770);
                    cexu.Add(90004771);
                    cexu.Add(90008445);
                    cexu.Add(90008447);
                    cexu.Add(90008449);
                    cexu.Add(90008451);
                    cexu.Add(90008453);
                    cexu.Add(90008681);
                    cexu.Add(90008682);
                    cexu.Add(90008870);
                    cexu.Add(90008883);
                    cexu.Add(90008884);
                    cexu.Add(90008885);
                    cexu.Add(90008886);
                    cexu.Add(90008935);
                    cexu.Add(90008938);
                    cexu.Add(90008968);
                    cexu.Add(90008972);
                    cexu.Add(90008978);
                    cexu.Add(90008979);
                    cexu.Add(90008983);
                    cexu.Add(90008986);
                    cexu.Add(90008989);
                    cexu.Add(90009196);
                    cexu.Add(90009212);
                    cexu.Add(90009216);
                    cexu.Add(90009219);
                    cexu.Add(50006855);
                    cexu.Add(50006856);
                    cexu.Add(50006857);
                    cexu.Add(50006858);
                    cexu.Add(50006859);
                    List<int> dingxing = new List<int>();
                    dingxing.Add(90004721);
                    dingxing.Add(90004723);
                    dingxing.Add(90004725);
                    dingxing.Add(90004727);
                    dingxing.Add(90004729);
                    dingxing.Add(90004731);
                    dingxing.Add(90004733);
                    dingxing.Add(90004735);
                    dingxing.Add(90004737);
                    dingxing.Add(90004739);
                    dingxing.Add(90004741);
                    dingxing.Add(90004743);
                    dingxing.Add(90004745);
                    dingxing.Add(90004747);
                    dingxing.Add(90004749);
                    dingxing.Add(90004751);
                    dingxing.Add(90004753);
                    dingxing.Add(90008439);
                    dingxing.Add(90008754);
                    dingxing.Add(90008876);
                    dingxing.Add(90008881);
                    dingxing.Add(90008882);
                    dingxing.Add(90008887);
                    dingxing.Add(90009304);
                    List<int> dingliang = new List<int>();
                    dingliang.Add(90004758);
                    dingliang.Add(90004760);
                    dingliang.Add(90004761);
                    dingliang.Add(90004762);
                    dingliang.Add(90004763);
                    dingliang.Add(90004764);
                    dingliang.Add(90004765);
                    dingliang.Add(90004766);
                    dingliang.Add(90008993);
                    dingliang.Add(90009005);
                    dingliang.Add(90009009);
                    List<int> bingdu = new List<int>();
                    bingdu.Add(90008441);
                    bingdu.Add(90008442);
                    bingdu.Add(90008897);
                    bingdu.Add(90008900);
                    List<int> sishi = new List<int>();
                    sishi.Add(90008959);
                    sishi.Add(90009106);
                    sishi.Add(90009109);
                    sishi.Add(90009112);
                    sishi.Add(90009115);
                    sishi.Add(90009118);
                    sishi.Add(90009121);
                    sishi.Add(90009124);
                    sishi.Add(90009127);
                    sishi.Add(90009130);
                    sishi.Add(90009133);
                    sishi.Add(90009136);
                    sishi.Add(90009139);
                    sishi.Add(90009142);
                    sishi.Add(90009145);
                    sishi.Add(90009148);
                    sishi.Add(90009151);
                    sishi.Add(90009154);
                    sishi.Add(90009157);
                    sishi.Add(90009160);
                    sishi.Add(90009163);
                    sishi.Add(90009166);
                    sishi.Add(90009169);
                    sishi.Add(90009172);
                    sishi.Add(90009175);
                    sishi.Add(90009178);
                    sishi.Add(90009181);
                    sishi.Add(90009184);
                    sishi.Add(90009187);
                    sishi.Add(90009190);
                    sishi.Add(90009193);
                    sishi.Add(90009225);
                    sishi.Add(90009285);
                    List<int> EVI1 = new List<int>();
                    EVI1.Add(90009208);
                    #endregion

                    if (myfenzishengwuliushi(lr.ParItemList, sishi))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt分子生物_临床基因扩增_四十种报告);
                        break;
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, EVI1))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt分子生物_临床基因扩增_EVI1报告);
                        lr.ReportInfo.Remark = @"1.提取送检标本中有核细胞总RNA并反转录为cDNA。
            2.应用TaqMan探针法定量检测送检标本目的基因和PBGD内参基因的表达量。
            3.定量检测结果用目的基因和内参基因相对定量法表示。";
                        break;
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, bingdu))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt分子生物_临床基因扩增_病毒报告);
                        lr.ReportInfo.Remark = @"1.提取送检血清或血浆中的DNA或RNA。
            2.使用AB7500型荧光定量PCR仪检测标本中的病毒表达量。";
                        break;
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, dingliang))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt分子生物_临床基因扩增_定量报告);
                        lr.ReportInfo.Remark = @"1.提取送检标本中有核细胞总RNA并反转录为cDNA。
            2.使用AB7500型荧光定量PCR仪和TaqMan探针法定量检测送检标本中目的基因和内参基因ABL的表达量。
            3.定量检测结果用目的基因和内参基因拷贝数的比值(百分比)表示。
            4.本项目对目的基因和内参基因ABL的检测灵敏度为5拷贝/反应体系。
            5.ABL拷贝数大于10E+04为合格。
            6.本实验室通过CML分子检测参比实验室的验证,获得有效的BCR/ABLP210(IS)转换系数CF值=0.9;
            国际标准BCR/ABLP210水平=本实验室检测结果*CF";
                        break;
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, dingxing))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt分子生物_临床基因扩增_定性报告);
                        lr.ReportInfo.Remark = @"1.提取送检标本中有核细胞的总RNA或DNA,总RNA反转录为cDNA。
            2.用PCR仪检测送检标本中的白血病相关基因,2%琼脂糖凝胶电泳检测扩增产物。
            3.采用多重PCR和基因片段分析法检测克隆性基因重排项目(TCRβ、TCRγ、IGH、IGK)。";
                        break;
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, cexu))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt分子生物_临床基因扩增_测序报告);
                        lr.ReportInfo.Remark = @"1.提取送检标本中基因组DNA/总RNA(总RNA反转录为cDNA),使用PCR仪进行基因扩增并电泳检测扩增产物,然后扩增产物直接测序。
            2.使用AB、BigDye、V3.1试剂盒和AB、3730XL或3130XL型测序仪进行基因序列测定。
            3.本测序方法对该项目的检测检出限为10%。";
                    }
                    break;
                //分子生物组织配型
                case 45:
                    break;
                //细胞化学
                case 3:
                    if (lr.ParItemList.Contains(90004154) || lr.ParItemList.Contains(90004169))
                    {
                        lr.PrintModelNo = 1400;
                    }
                    else if (lr.ParItemList.Contains(90004171))
                    {
                        lr.PrintModelNo = 1420;
                    }
                    else if (lr.ParItemList.Contains(90008551) || lr.ParItemList.Contains(90008552) || lr.ParItemList.Contains(90008553) || lr.ParItemList.Contains(50006842) || lr.ParItemList.Contains(50006846))
                    {
                        lr.PrintModelNo = 1430;
                    }
                    GraphItemsOperate(lr.SpecItemsTable);
                    break;
                //细胞形态
                case 39:
                    XingTaiItemsOperate(lr);
                    lr.PrintModelNo = 1450;
                    break;
                //流式小组
                case 10:
                    #region 模板
                    List<int> lsdz = new List<int>();
                    lsdz.Add(90008344);
                    lsdz.Add(90008345);
                    lsdz.Add(90008346);
                    lsdz.Add(90008347);
                    lsdz.Add(90008348);
                    lsdz.Add(90008349);
                    lsdz.Add(90008350);
                    lsdz.Add(90008351);
                    lsdz.Add(90009000);
                    List<int> lsxz = new List<int>();
                    lsxz.Add(90008352);
                    List<int> wzzsxz = new List<int>();
                    wzzsxz.Add(90008358);
                    wzzsxz.Add(90008354);
                    wzzsxz.Add(90008472);
                    wzzsxz.Add(90009200);
                    wzzsxz.Add(90008469);
                    List<int> lsdzcl = new List<int>();
                    lsdzcl.Add(90008890);
                    lsdzcl.Add(90008889);
                    lsdzcl.Add(90008477);
                    lsdzcl.Add(90008359);
                    lsdzcl.Add(90008360);
                    lsdzcl.Add(90008361);
                    lsdzcl.Add(90008362);
                    List<int> wzjl = new List<int>();
                    wzjl.Add(90008363);
                    wzjl.Add(90008365);
                    wzjl.Add(90008366);
                    wzjl.Add(90008367);
                    wzjl.Add(90008892);
                    wzjl.Add(90008468);
                    List<int> ema = new List<int>();
                    ema.Add(90008957);
                    List<int> vb = new List<int>();
                    vb.Add(90008356);
                    #endregion
                    if (myfenzishengwuliushi(lr.ParItemList, lsdz))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_流式大张);
                        lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, ema))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_EMA);
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, vb))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_VB);
                        lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, lsdzcl))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_大张残留);
                        lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, wzjl))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_文字结论);
                    }
                    if (myfenzishengwuliushi(lr.ParItemList, wzzsxz))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_文字数字小张);
                    }
                    //这个必须在最后,因为有可能先是文字数字小张,然后再包含流式小张
                    if (myfenzishengwuliushi(lr.ParItemList, lsxz))
                    {
                        lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_流式小张);
                    }
                    break;
                default:
                    lr.PrintModelNo = -1;
                    break;
            }
        }
Exemplo n.º 27
0
        //所有项同一处理
        private void CommonItemsOperate(LisReport lr)
        {
            for (int i = lr.ReportItemList.Count - 1; i >= 0; i--)
            {
                //设置组合编号集合
                if (!lr.ParItemList.Contains(lr.ReportItemList[i].ParItemNo))
                {
                    lr.ParItemList.Add(lr.ReportItemList[i].ParItemNo);
                }
                //特殊项处理
                switch (lr.ReportItemList[i].ItemNo)
                {
                //血常规项目
                case 90009288:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009289:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009290:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009291:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009292:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009293:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009294:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009300:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009295:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009296:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009297:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90009301:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                //免疫项目 Tecan150
                case 90008462:
                    lr.SpecItemFlag = true;
                    break;

                //DXI800
                case 50004360:
                    lr.ReportItemList[i].RefRange = lr.ReportItemList[i].RefRange.Replace(";", Environment.NewLine);
                    break;

                case 50004370:
                    lr.ReportItemList[i].RefRange = lr.ReportItemList[i].RefRange.Replace(";", Environment.NewLine);
                    break;

                //染色体
                case 90008528:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90008797:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90008798:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;

                case 90008799:
                    lr.SpecItemsList.Add(lr.ReportItemList[i]);
                    lr.ReportItemList.RemoveAt(i);
                    break;
                }
            }
        }
Exemplo n.º 28
0
 //获取报告模板名
 private string GetReportModelName(LisReport lr)
 {
     string modelName;
     switch (lr.PrintModelNo)
     {
         //血常规
         case 100:
             modelName = "lj-xuechanggui.frx";
             break;
         //尿大张
         case 200:
             modelName = "lj-niaodazhang.frx";
             break;
         //尿小张
         case 300:
             modelName = "lj-niaoxiaozhang.frx";
             break;
         //生化大张
         case 400:
             modelName = "shenghua-Common-da.frx";
             break;
         //生化小张
         case 500:
             modelName = "shenghua-01-1.frx";
             break;
         //tecan150免疫小张
         case 600:
             modelName = "mianyi-TECAN150-xiao.frx";
             break;
         //dxi800 免疫大张
         case 610:
             modelName = "mianyi-DXI800-da-1.frx";
             break;
         //Spife 4000 大张
         case 620:
             modelName = "mianyi-SPIFE4000-da.frx";
             break;
         //免疫普通小张
         case 700:
             modelName = "mianyi-Common-xiao.frx";
             break;
         //免疫手工小张
         case 710:
             modelName = "mianyi-shougong-xiao-1.frx";
             break;
         //免疫SUNRISE 小张
         case 720:
             modelName = "mianyi-Sunrise-xiao.frx";
             break;
             //免疫细胞培养
         case 730:
             modelName = "mianyi-xibaopeiyang-xiao.frx";
             break;
         //出凝血大张
         case 800:
             modelName = "zhixue-Adaption-1.frx";
             break;
         //出凝血小张
         case 900:
             modelName = "zhixue-01-1.frx";
             break;
         //溶血大张
         case 1000:
             modelName = "rongxue-Common-da.frx";
             break;
         //溶血小张
         case 1100:
             modelName = "rongxue-Common-xiao.frx";
             break;
         //遗传FISH
         case 1200:
             modelName = "yichuan-FISH.frx";
             break;
         //遗传染色体
         case 1300:
             modelName = "yichuan-Ran.frx";
             break;
         //细胞化学 单图
         case 1400:
             modelName = "zuhua-1image-1.frx";
             break;
         //细胞化学 单图2
         case 1420:
             modelName = "zuhua-1image-2.frx";
             break;
             //细胞化学 多图
         case 1430:
             modelName = "zuhua-2image-1.frx";
             break;
         //细胞形态
         case 1450:
             modelName = "xingtai-01-1.frx";
             break;
         //ReportType.Rt分子生物I脱氧核糖核酸巨细胞病毒脱氧核糖核酸EB病毒=1500
         case 1500:
             modelName = "fs-06-175.frx";
             break;
         case 1510:
         case 1530:
         case 1540:
         case 1520:
             modelName = "fs-06-02.frx";
             break;
         //40种,特殊
         case 1550:
             modelName = "fs-40.frx";
             break;
         case 1560:
             modelName = "40";
             break;
         case 1570:
             modelName = "40";
             break;
         case 1600:
             modelName = "ls-1600.frx";
             break;
         case 1610:
             modelName = "ls-1610.frx";
             break;
         case 1620:
             modelName = "ls-1620.frx";
             break;
         case 1630:
             modelName = "ls-1630.frx";
             break;
         case 1640:
             modelName = "ls-1640.frx";
             break;
         case 1650:
             modelName = "ls-1650.frx";
             break;
         case 1660:
             modelName = "ls-1660.frx";
             break;
         default:
             modelName = "lj-03-1.frx";
             break;
     }
     return modelName;
 }
Exemplo n.º 29
0
 private void SetPrintOrder(LisReport lr)
 {
     switch (lr.ReportInfo.SectionNo)
     {
         //形态
         case 39:
             lr.OrderNo = 12000;
             break;
         //组化
         case 3:
             lr.OrderNo = 14000;
             break;
         case 11:
             //染色体
             if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
             {
                 lr.OrderNo = 15000;
             }
             else
             {
                 lr.OrderNo = 15500;
             }
             break;
         case 10:
             lr.OrderNo = 16000;
             break;
         //血常规
         case 2:
         case 27:
             lr.OrderNo = 19000;
             break;
         case 17:
         case 23:
         case 29:
         case 34:
             List<int> ll = GetAU2700List();
             if (HasIntersection(lr.ParItemList, ll))
             {
                 lr.OrderNo = 19500;
             }
             else
             {
                 SetSampleTypeOrder(lr);
             }
             break;
         default:
             SetSampleTypeOrder(lr);
             break;
     }
 }
Exemplo n.º 30
0
 private void button1_Click(object sender, EventArgs e)
 {
     ReportManager rm = new ReportManager();
     PDFManager pm = new PDFManager();
     LisReport lr = new LisReport();
     Hashtable equalFields = new Hashtable();
     string sql = "select receivedate,sectionno,testtypeno,sampleno from ReportForm where SectionNo=" + textBox1.Text.Trim() + " and checkdate='"+dateTimePicker1.Value.ToString("yyyy-MM-dd")+"'";
     DataTable dt = DbHelperSQL.Query(sql).Tables["dt"];
     DataSet ds = pm.GetPrintDataSet("ReportTables.frd");
     foreach (DataRow dr in dt.Rows)
     {
         equalFields.Clear();
         equalFields.Add("receivedate", (DateTime)dr["receivedate"]);
         equalFields.Add("sectionno", (int)dr["sectionno"]);
         equalFields.Add("testtypeno", (int)dr["testtypeno"]);
         equalFields.Add("sampleno", dr["sampleno"].ToString());
         rm.InitLisReport(lr, equalFields);
         pm.GenderPDFReport(lr, "E:\\lis", ds);
     }
 }
Exemplo n.º 31
0
 //所有项同一处理
 private void CommonItemsOperate(LisReport lr)
 {
     for (int i = lr.ReportItemList.Count - 1; i >= 0; i--)
     {
         //设置组合编号集合
         if (!lr.ParItemList.Contains(lr.ReportItemList[i].ParItemNo))
         {
             lr.ParItemList.Add(lr.ReportItemList[i].ParItemNo);
         }
         //特殊项处理
         switch (lr.ReportItemList[i].ItemNo)
         {
             //血常规项目
             case 90009288:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009289:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009290:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009291:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009292:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009293:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009294:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009300:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009295:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009296:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009297:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90009301:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             //免疫项目 Tecan150
             case 90008462:
                 lr.SpecItemFlag = true;
                 break;
             //DXI800
             case 50004360:
                 lr.ReportItemList[i].RefRange = lr.ReportItemList[i].RefRange.Replace(";", Environment.NewLine);
                 break;
             case 50004370:
                 lr.ReportItemList[i].RefRange = lr.ReportItemList[i].RefRange.Replace(";", Environment.NewLine);
                 break;
             //染色体
             case 90008528:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90008797:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90008798:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
             case 90008799:
                 lr.SpecItemsList.Add(lr.ReportItemList[i]);
                 lr.ReportItemList.RemoveAt(i);
                 break;
         }
     }
 }
Exemplo n.º 32
0
        //报告项处理
        //1.获取特殊检验项、图片项
        //2.设置报告的模板、排序号
        private void ReportOperate(LisReport lr)
        {
            CommonItemsOperate(lr);
            SetPrintOrder(lr);
            //设置显打印模板号,特殊项处理
            switch (lr.ReportInfo.SectionNo)
            {
            //临检组
            case 2:
            case 27:
                //包含人工分类
                if (lr.SpecItemsList.Count > 0)
                {
                    ManItemsOperate(lr.SpecItemsList, lr.SpecItemsTable);
                }
                lr.PrintModelNo = 100;
                break;

            case 28:
            case 62:
                if (lr.ParItemList.Contains(90008562))
                {
                    GraphItemsOperate(lr.SpecItemsTable);
                    //uf1000i尿大张
                    lr.PrintModelNo = 200;
                }
                //uf1000
                else
                {
                    lr.PrintModelNo = 300;
                }
                break;

            //生化组
            case 17:
            case 23:
            case 29:
            case 34:
                lr.PrintModelNo = 400;
                break;

            //免疫组
            //免疫Tecan150  特殊
            case 19:
                if (lr.SpecItemFlag && lr.ReportInfo.SickTypeNo == 2)
                {
                    lr.ReportInfo.Remark = "带*为天津市临床检测中心认定的相互认可检验项目";
                }
                //更正说明
                lr.ReportInfo.Explanation = lr.ReportInfo.ZDY5;
                lr.PrintModelNo           = 600;
                break;

            //免疫DXI800  大张
            case 20:
                //若采用代码类型模板则必须在程序中排序
                // lr.ReportItemList.Sort();
                lr.PrintModelNo = 610;
                break;

            //免疫spife4000  大张
            case 35:
                GraphItemsOperate(lr.SpecItemsTable);
                lr.PrintModelNo = 620;
                break;

            //免疫SUNRISE
            case 21:
                lr.PrintModelNo = 720;
                break;

            //免疫手工
            case 30:
                //若采用代码类型模板则必须在程序中排序
                // lr.ReportItemList.Sort();
                lr.PrintModelNo = 710;
                break;

            //免疫细胞培养
            case 14:
                lr.PrintModelNo = 730;
                break;

            //免疫其他
            case 5:
            case 25:
            case 33:
            case 63:
                //更正说明
                lr.ReportInfo.Explanation = lr.ReportInfo.ZDY5;
                lr.PrintModelNo           = 700;
                break;

            //出凝血组
            case 4:
            case 24:
                //若采用代码类型模板则必须在程序中排序
                //lr.ReportItemList.Sort();
                lr.PrintModelNo = 800;
                break;

            //溶血组
            case 18:
                if (lr.ReportItemList.Count > 14)
                {
                    //溶血大张
                    lr.PrintModelNo = 1000;
                }
                else
                {
                    //溶血小张
                    lr.PrintModelNo = 1100;
                }
                break;

            //分子遗传小组
            case 11:
                //染色体
                if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
                {
                    GraphItemsOperate(lr.SpecItemsTable);
                    lr.PrintModelNo = 1300;
                }
                //FISH
                else
                {
                    GraphItemsOperate(lr.SpecItemsTable);
                    //加载正常图片
                    FISHItemsOperate(lr.ParItemList[0], lr.SpecItemsTable);
                    lr.PrintModelNo = 1200;
                }
                break;

            //分子生物
            case 6:
                break;

            //组织配型
            case 45:
                break;

            //细胞化学
            case 3:
                if (lr.ParItemList.Contains(90004154) || lr.ParItemList.Contains(90004169))
                {
                    lr.PrintModelNo = 1400;
                }
                else if (lr.ParItemList.Contains(90004171))
                {
                    lr.PrintModelNo = 1420;
                }
                else if (lr.ParItemList.Contains(90008551) || lr.ParItemList.Contains(90008552) || lr.ParItemList.Contains(90008553) || lr.ParItemList.Contains(50006842) || lr.ParItemList.Contains(50006846))
                {
                    lr.PrintModelNo = 1430;
                }
                GraphItemsOperate(lr.SpecItemsTable);
                break;

            //细胞形态
            case 39:
                XingTaiItemsOperate(lr);
                lr.PrintModelNo = 1450;
                break;

            //流式小组
            case 10:
                #region 模板
                List <int> lsdz = new List <int>();
                lsdz.Add(90008344);
                lsdz.Add(90008345);
                lsdz.Add(90008346);
                lsdz.Add(90008347);
                lsdz.Add(90008348);
                lsdz.Add(90008349);
                lsdz.Add(90008350);
                lsdz.Add(90008351);
                lsdz.Add(90009000);
                List <int> lsxz = new List <int>();
                lsxz.Add(90008352);
                List <int> wzzsxz = new List <int>();
                wzzsxz.Add(90008358);
                wzzsxz.Add(90008354);
                wzzsxz.Add(90008472);
                wzzsxz.Add(90009200);
                wzzsxz.Add(90008469);
                List <int> lsdzcl = new List <int>();
                lsdzcl.Add(90008890);
                lsdzcl.Add(90008889);
                lsdzcl.Add(90008477);
                lsdzcl.Add(90008359);
                lsdzcl.Add(90008360);
                lsdzcl.Add(90008361);
                lsdzcl.Add(90008362);
                List <int> wzjl = new List <int>();
                wzjl.Add(90008363);
                wzjl.Add(90008365);
                wzjl.Add(90008366);
                wzjl.Add(90008367);
                wzjl.Add(90008892);
                wzjl.Add(90008468);
                List <int> ema = new List <int>();
                ema.Add(90008957);
                List <int> vb = new List <int>();
                vb.Add(90008356);
                #endregion
                if (myfenzishengwuliushi(lr.ParItemList, lsdz))
                {
                    lr.PrintModelNo        = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_流式大张);
                    lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
                }
                if (myfenzishengwuliushi(lr.ParItemList, ema))
                {
                    lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_EMA);
                }
                if (myfenzishengwuliushi(lr.ParItemList, vb))
                {
                    lr.PrintModelNo        = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_VB);
                    lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
                }
                if (myfenzishengwuliushi(lr.ParItemList, lsdzcl))
                {
                    lr.PrintModelNo        = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_大张残留);
                    lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
                }
                if (myfenzishengwuliushi(lr.ParItemList, wzjl))
                {
                    lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_文字结论);
                }
                if (myfenzishengwuliushi(lr.ParItemList, wzzsxz))
                {
                    lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_文字数字小张);
                }
                //这个必须在最后,因为有可能先是文字数字小张,然后再包含流式小张
                if (myfenzishengwuliushi(lr.ParItemList, lsxz))
                {
                    lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_流式小张);
                }
                break;

            default:
                lr.PrintModelNo = -1;
                break;
            }
        }
Exemplo n.º 33
0
 private void SetSampleTypeOrder(LisReport lr)
 {
     switch (lr.ReportInfo.SampleTypeNo)
     {
         //尿(尿常规等)
         case 108:
             lr.OrderNo = 1100000;
             break;
         //便(便常规等)
         case 117:
             lr.OrderNo = 1200000;
             break;
         //脑脊液()---特殊与生化同属于一个序列
         case 115:
             lr.OrderNo = 1000000;
             break;
         //胸水
         case 4:
         case 5:
             lr.OrderNo = 1300000;
             break;
         default:
             SetCommonOrder(lr);
             break;
     }
 }
Exemplo n.º 34
0
 private void XingTaiItemsOperate(LisReport lr)
 {
     GSCommonItemsOperate(lr);
     List<ReportItemModel> results = this._gsItemDAL.SearchList(lr.SpecItemsTable);
     GSReportItemsOperate(lr.SpecItemsTable, results);
 }
Exemplo n.º 35
0
        private void SetPrintOrder(LisReport lr)
        {
            switch (lr.ReportInfo.SectionNo)
            {
            //形态
            case 39:
                lr.OrderNo = 12000;
                break;

            //组化
            case 3:
                lr.OrderNo = 14000;
                break;

            case 11:
                //染色体
                if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
                {
                    lr.OrderNo = 15000;
                }
                else
                {
                    lr.OrderNo = 15500;
                }
                break;

            //血常规
            case 2:
            case 27:
                lr.OrderNo = 19000;
                break;

            case 17:
            case 23:
            case 29:
            case 34:
                List <int> ll = GetAU2700List();
                if (HasIntersection(lr.ParItemList, ll))
                {
                    lr.OrderNo = 19500;
                }
                else
                {
                    SetCommonOrder(lr);
                }
                break;

            default:
                switch (lr.ReportInfo.SampleTypeNo)
                {
                //尿(尿常规等)
                case 108:
                    lr.OrderNo = 1100000;
                    break;

                //便(便常规等)
                case 117:
                    lr.OrderNo = 1200000;
                    break;

                //脑脊液()---特殊与生化同属于一个序列
                case 115:
                    lr.OrderNo = 1000000;
                    break;

                //胸水
                case 4:
                case 5:
                    lr.OrderNo = 1300000;
                    break;

                default:
                    SetCommonOrder(lr);
                    break;
                }
                break;
            }
        }
Exemplo n.º 36
0
 private void SetCommonOrder(LisReport lr)
 {
     int preOrder=CommonSection.GetDisplayOrder(lr.ReportInfo.SectionNo);
     if (preOrder != -1)
     {
         int sufOrder = MaxOrder(lr.ParItemList) % 10000;
         lr.OrderNo = preOrder * 10000 + sufOrder;
     }
     else
     {
         lr.OrderNo = 0;
     }
 }
Exemplo n.º 37
0
 //报告项处理
 //1.获取特殊检验项、图片项
 //2.设置报告的模板、排序号
 private void ReportOperate(LisReport lr)
 {
     CommonItemsOperate(lr);
     SetPrintOrder(lr);
     //设置显打印模板号,特殊项处理
     switch (lr.ReportInfo.SectionNo)
     {
         //临检组
         case 2:
         case 27:
             //包含人工分类
             if (lr.SpecItemsList.Count > 0)
             {
                 ManItemsOperate(lr.SpecItemsList, lr.SpecItemsTable);
             }
             lr.PrintModelNo = 100;
             break;
         case 28:
         case 62:
             if (lr.ParItemList.Contains(90008562))
             {
                 GraphItemsOperate(lr.SpecItemsTable);
                 //uf1000i尿大张
                 lr.PrintModelNo = 200;
             }
             //uf1000
             else
             {
                 lr.PrintModelNo = 300;
             }
             break;
         //生化组
         case 17:
         case 23:
         case 29:
         case 34:
             lr.PrintModelNo = 400;
             break;
         //免疫组
         //免疫Tecan150  特殊
         case 19:
             if (lr.SpecItemFlag && lr.ReportInfo.SickTypeNo == 2)
             {
                 lr.ReportInfo.Remark = "带*为天津市临床检测中心认定的相互认可检验项目";
             }
             //更正说明
             lr.ReportInfo.Explanation = lr.ReportInfo.ZDY5;
             lr.PrintModelNo = 600;
             break;
         //免疫DXI800  大张
         case 20:
             //若采用代码类型模板则必须在程序中排序
             // lr.ReportItemList.Sort();
             lr.PrintModelNo = 610;
             break;
         //免疫spife4000  大张
         case 35:
             GraphItemsOperate(lr.SpecItemsTable);
             lr.PrintModelNo = 620;
             break;
         //免疫SUNRISE
         case 21:
             lr.PrintModelNo = 720;
             break;
         //免疫手工
         case 30:
             //若采用代码类型模板则必须在程序中排序
             // lr.ReportItemList.Sort();
             lr.PrintModelNo = 710;
             break;
         //免疫细胞培养
         case 14:
             lr.PrintModelNo = 730;
             break;
         //免疫其他
         case 5:
         case 25:
         case 33:
         case 63:
             //更正说明
             lr.ReportInfo.Explanation = lr.ReportInfo.ZDY5;
             lr.PrintModelNo = 700;
             break;
         //出凝血组
         case 4:
         case 24:
             //若采用代码类型模板则必须在程序中排序
             //lr.ReportItemList.Sort();
             lr.PrintModelNo = 800;
             break;
         //溶血组
         case 18:
             if (lr.ReportItemList.Count > 14)
             {
                 //溶血大张
                 lr.PrintModelNo = 1000;
             }
             else
             {
                 //溶血小张
                 lr.PrintModelNo = 1100;
             }
             break;
         //分子遗传小组
         case 11:
             //染色体
             if (lr.ParItemList.Contains(90009044) || lr.ParItemList.Contains(90009045) || lr.ParItemList.Contains(90009046))
             {
                 GraphItemsOperate(lr.SpecItemsTable);
                 lr.PrintModelNo = 1300;
             }
             //FISH
             else
             {
                 GraphItemsOperate(lr.SpecItemsTable);
                 //加载正常图片
                 FISHItemsOperate(lr.ParItemList[0], lr.SpecItemsTable);
                 lr.PrintModelNo = 1200;
             }
             break;
         //分子生物
         case 6:
             break;
         //组织配型
         case 45:
             break;
         //细胞化学
         case 3:
             if (lr.ParItemList.Contains(90004154) || lr.ParItemList.Contains(90004169))
             {
                 lr.PrintModelNo = 1400;
             }
             else if (lr.ParItemList.Contains(90004171))
             {
                 lr.PrintModelNo = 1420;
             }
             else if (lr.ParItemList.Contains(90008551) || lr.ParItemList.Contains(90008552) || lr.ParItemList.Contains(90008553) || lr.ParItemList.Contains(50006842) || lr.ParItemList.Contains(50006846))
             {
                 lr.PrintModelNo = 1430;
             }
             GraphItemsOperate(lr.SpecItemsTable);
             break;
         //细胞形态
         case 39:
             XingTaiItemsOperate(lr);
             lr.PrintModelNo = 1450;
             break;
         //流式小组
         case 10:
             #region 模板
             List<int> lsdz = new List<int>();
             lsdz.Add(90008344);
             lsdz.Add(90008345);
             lsdz.Add(90008346);
             lsdz.Add(90008347);
             lsdz.Add(90008348);
             lsdz.Add(90008349);
             lsdz.Add(90008350);
             lsdz.Add(90008351);
             lsdz.Add(90009000);
             List<int> lsxz = new List<int>();
             lsxz.Add(90008352);
             List<int> wzzsxz = new List<int>();
             wzzsxz.Add(90008358);
             wzzsxz.Add(90008354);
             wzzsxz.Add(90008472);
             wzzsxz.Add(90009200);
             wzzsxz.Add(90008469);
             List<int> lsdzcl = new List<int>();
             lsdzcl.Add(90008890);
             lsdzcl.Add(90008889);
             lsdzcl.Add(90008477);
             lsdzcl.Add(90008359);
             lsdzcl.Add(90008360);
             lsdzcl.Add(90008361);
             lsdzcl.Add(90008362);
             List<int> wzjl = new List<int>();
             wzjl.Add(90008363);
             wzjl.Add(90008365);
             wzjl.Add(90008366);
             wzjl.Add(90008367);
             wzjl.Add(90008892);
             wzjl.Add(90008468);
             List<int> ema = new List<int>();
             ema.Add(90008957);
             List<int> vb = new List<int>();
             vb.Add(90008356);
             #endregion
             if (myfenzishengwuliushi(lr.ParItemList, lsdz))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_流式大张);
                 lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
             }
             if (myfenzishengwuliushi(lr.ParItemList, ema))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_EMA);
             }
             if (myfenzishengwuliushi(lr.ParItemList, vb))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_VB);
                 lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
             }
             if (myfenzishengwuliushi(lr.ParItemList, lsdzcl))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_大张残留);
                 lr.ReportInfo.FormMemo = lr.ReportInfo.FormMemo.Replace(";", "\r\n");
             }
             if (myfenzishengwuliushi(lr.ParItemList, wzjl))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_文字结论);
             }
             if (myfenzishengwuliushi(lr.ParItemList, wzzsxz))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_文字数字小张);
             }
             //这个必须在最后,因为有可能先是文字数字小张,然后再包含流式小张
             if (myfenzishengwuliushi(lr.ParItemList, lsxz))
             {
                 lr.PrintModelNo = Convert.ToInt32(Lis.Enum.ReportType.Rt流式_流式小张);
             }
             break;
         default:
             lr.PrintModelNo = -1;
             break;
     }
 }