Sebia电泳绘图

2023-05-16

Sebia这仪器真是个奇葩的存在。自己仪器有图不存文件,LIS要的话还得自己按数据绘制。还有蛋白电泳、固定电泳、画不画参考线等不同要求(奇葩的很)。按理这种事不属于lis范围,无奈国内lis太卷,各种舔狗厂商才让这种仪器大行其道。

蛋白电泳机器原图
在这里插入图片描述

蛋白电泳绘制图
在这里插入图片描述

按文档位置取数据绘图
在这里插入图片描述

在这里插入图片描述

绘图逻辑片段(数据以J开头)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PreDeal.Interface;
using LIS.Model.Bussiness;
using LIS.DAL.DataAccess;
using PreDeal.Ftp;
using PreDeal.Attributes;
using System.Text.RegularExpressions;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.IO;
using System.Collections;

namespace PreDeal
{
    ///<summary  NoteObject="Class">
    /// [功能描述:Sebia电泳仪的数据和图像处理 蛋白电泳] <para/>
    /// [创建者:zlz] <para/>
    /// [创建时间:] <para/>
    ///<说明>
    ///  [说明:Sebia电泳仪的数据和图像处理处理,处理数据格式
    ///  J00012022012401                                            000                            00000g/dl                                                                                                                                                          ADM2712202106Albumin   Alpha 1   Alpha 2   Beta 1    Beta 2    Gamma                                             051.2005.3008.2003.9002.6028.800000000000000000000000000000000000000000000000000000000000000000000001         2                             026.4002.8000000000000000000000000000000001.0501.00                                                                                                                                                                                                                                      000300A0100006400440111010000000000000000008000000000000000000000000000000000000000000000010001000100010002000200020004000400040005000500050006000700080009000B000B000B000C000D000E001100120013001400150015001500140012000F000D000C0009000900090009000B000B000C000D000E0011001300150019001B00210027002F003900450051006000710085009E00BA00D900FC0123014D017F01BC0203025A02C103450402052206CA090B0BAF0E180FA40FFF0F060CED0A3D078B053D037F026701B0012D00CD0088005D00410033002A0024001F001C001B801A001B001C00200025002B003200390042004D0059006700740086009A00B200D100F80124014D01690168014D011F00E500AD008100650059005480530053005300530053005300540058005E0065006E00780081008B0093009E00AC00BE00D400EB01000111011C011F011D0116010D010100F600E700D700C500B1009E008D007F0074006B0065005F005900550051004E804E005000530058005F00670075008B00A500C400E000F60104010600F800DD00BD009B007D00640054004E804D004E005100520052005200520053005A00650071007A00830087008A0086007F0074006B0064005F805E0061006A00720078007B00810088009400A600BE00DE01070140018E01FD0295035F045E058A06C207DB08A008D60853073F05D5045702FB01E5012600B800800060004D00400037002E0026001E00170012000E000B0008000700050004000200010001000000000000000000000001000100020002000200020002000200040004000400040004000400040004000400028002|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///  ]<para/>
    ///</说明>
    ///<修改记录>
    ///    [修改时间:]<para/>
    ///    [修改内容:]<para/>
    ///</修改记录>
    ///<修改记录>
    ///    [修改时间:本次修改时间]<para/>
    ///    [修改内容:本次修改内容]<para/>
    ///</修改记录>
    ///</summary>
    [Remark(Remark = "Sebia血清蛋白电泳仪的数据和图像处理\n")]
    public class DealSebiaELPJ : BaseDeal, IPreDeal, ITimer
    {

        /// <summary>
        /// 流水号
        /// </summary>
        private static string epis = "";

        /// <summary>
        /// 前处理
        /// </summary>
        /// <param name="result">结果</param>
        /// <param name="machID">仪器ID</param>
        /// <param name="dealProcess">处理程序</param>
        /// <param name="index">当前文件的第几行</param>
        /// <param name="fileName">当前读取的文件全名</param>
        /// <returns></returns>
        public bool PreDeal(string result, string machID, string dealProcess, int index, string fileName)
        {
            try
            {
                string head = result.Split(' ')[0];
                string sampleNo = head.Substring(5, head.Length - 5);
                string episAll = result.Split(' ')[0];
                epis = sampleNo.Split('-')[0];

                string value1Name = result.Substring(266, 10);
                string value1 = result.Substring(367, 5);
                string value2Name = result.Substring(276, 10);
                string value2 = result.Substring(372, 5);
                string value3Name = result.Substring(286, 10);
                string value3 = result.Substring(377, 5);
                string value4Name = result.Substring(296, 10);
                string value4 = result.Substring(382, 5);
                string value5Name = result.Substring(306, 10);
                string value5 = result.Substring(387, 5);
                string value6Name = result.Substring(316, 10);
                string value6 = result.Substring(392, 5);
                string value7Name = result.Substring(326, 10);
                string value7 = result.Substring(397, 5);
                string value8Name = result.Substring(336, 10);
                string value8 = result.Substring(402, 5);
                string value9Name = result.Substring(346, 10);
                string value9 = result.Substring(407, 5);
                string value10Name = result.Substring(356, 10);
                string value10 = result.Substring(412, 5);
                string value11 = result.Substring(557, 170).Trim();

                //分割坐标
                List<string> TroughsArr = new List<string>();
                string val = result.Substring(798, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(802, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(806, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(810, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(814, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(818, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(822, 4);
                TroughsArr.Add(val.TrimStart('0'));
                val = result.Substring(826, 4);
                TroughsArr.Add(val.TrimStart('0'));
                List<int> flagList = new List<int>();
                for (int zi = TroughsArr.Count - 1; zi >= 0; zi -= 2)
                {
                    string start = TroughsArr[zi - 1];
                    string end = TroughsArr[zi];
                    if (start != "")
                    {
                        flagList.Add(300 - Convert.ToInt32(start));
                    }
                    if (end != "")
                    {
                        flagList.Add(300 - Convert.ToInt32(end));
                    }
                }

                //处理数据
                DealData(value1Name + "\\" + value1 + "," + value2Name + "\\" + value2 + "," + value3Name + "\\" + value3 + "," + value4Name + "\\" + value4 + "," + value5Name + "\\" + value5 + "," + value6Name + "\\" + value6 + "," + value7Name + "\\" + value7 + "," + value8Name + "\\" + value8 + "," + value9Name + "\\" + value9 + "," + value10Name + "\\" + value10 + ",Remark" + "\\" + value11 + ",episall\\" + episAll + ",resall\\" + result, machID, sampleNo, dealProcess);
                //取出图形串
                string imgStr = result.Substring(830, 1200);
                List<Dto> dataList = new List<Dto>();
                int maxY = 0;
                int max1Index = 0;
                int max1Data = 0;

                int max2Index = 0;
                int max2Data = 0;

                int max3Index = 0;
                int max3Data = 0;

                for (int i = 0; i < imgStr.Length && i < 1200; i += 4)
                {
                    int startIndex = i;
                    int endIndex = i + 4;
                    if (endIndex > imgStr.Length)
                    {
                        endIndex = imgStr.Length;
                    }
                    Dto dto = new Dto();
                    dto.Type = imgStr.Substring(startIndex, 1);
                    if (dto.Type == "4" || dto.Type == "C" || dto.Type == "1" || dto.Type == "5")
                    {
                        continue;
                    }
                    else
                    {
                        dto.Y = Convert.ToInt32(imgStr.Substring(startIndex + 1, endIndex - startIndex - 1), 16);
                    }
                    if (dto.Y > maxY)
                    {
                        maxY = dto.Y;
                    }
                    if (i / 4 > 135 && i / 4 < 165)
                    {
                        if (max1Data < dto.Y)
                        {
                            max1Data = dto.Y;
                            max1Index = i / 4;
                        }
                    }
                    if (i / 4 > 170 && i / 4 < 195)
                    {
                        if (max2Data < dto.Y)
                        {
                            max2Data = dto.Y;
                            max2Index = i / 4;
                        }
                    }
                    if (i / 4 > 230 && i / 4 < 245)
                    {
                        if (max3Data < dto.Y)
                        {
                            max3Data = dto.Y;
                            max3Index = i / 4;
                        }
                    }
                    dataList.Add(dto);
                }
                int imgY = 580;
                //创建空位图
                Image img = new Bitmap(680, imgY);
                //获得画图句柄
                Graphics g = Graphics.FromImage(img);
                g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                g.Clear(Color.White);
                int x = 40;
                int y = 40;
                //画坐标
                Pen pen = new Pen(Color.Black);
                pen.Width = 2;
                g.DrawLine(pen, 40, imgY - y, 640, imgY - y);
                for (int i = 0; i < 300; i += 15)
                {
                    g.DrawLine(pen, 40 + i * 2, imgY - y, 40 + i * 2, imgY - y - 4);
                    Point p = new Point(40 + i * 2, imgY - y + 3);
                    Font myFont = new Font("宋体", 8, FontStyle.Regular);
                    Brush bush = new SolidBrush(Color.Black);
                    g.DrawString(i.ToString(), myFont, bush, p);
                }

                int preY = -1;
                int curindex = 0;
                List<string> colorStr = new List<string>();
                colorStr.Add("#F80000");
                colorStr.Add("#1E90FF");
                colorStr.Add("#FFA500");
                colorStr.Add("#800080");
                colorStr.Add("#FFC0CB");
                colorStr.Add("#008000");
                colorStr.Add("#FFFF00");
                colorStr.Add("#DEB887");
                int indexColor = 0;
                int drawX = -1;
                Pen pen1 = new Pen(Color.Black);
                pen1.Color = ColorTranslator.FromHtml(colorStr[indexColor]);
                //遍历点画图
                foreach (var d in dataList)
                {
                    drawX++;
                    if (indexColor < flagList.Count() && drawX == flagList[indexColor])
                    {
                        indexColor++;
                        pen1.Color = ColorTranslator.FromHtml(colorStr[indexColor]);
                    }
                    if (preY == -1)
                    {
                        pen = new Pen(Color.Black);
                        pen.Width = 1;
                        g.DrawLine(pen, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 25.0) / maxY) - y);
                    }
                    else
                    {
                        pen = new Pen(Color.Black);
                        pen.Width = 1;
                        g.DrawLine(pen, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y, x - 1, preY - y);
                    }
                    //画竖线填充
                    g.DrawLine(pen1, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y, x, imgY - y);
                    if (curindex == max1Index)
                    {
                        if (value1Name != "          ")
                        {
                            Point p = new Point(x - 8, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y - 20);
                            Font myFont = new Font("宋体", 12, FontStyle.Regular);
                            Brush bush = new SolidBrush(Color.Black);
                        }
                    }
                    if (curindex == max2Index)
                    {
                        if (value2Name != "          ")
                        {
                            Point p = new Point(x - 8, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y - 20);
                            Font myFont = new Font("宋体", 12, FontStyle.Regular);
                            Brush bush = new SolidBrush(Color.Black);
                        }
                    }
                    if (curindex == max3Index)
                    {
                        if (value3Name != "          ")
                        {
                            Point p = new Point(x - 8, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y - 20);
                            Font myFont = new Font("宋体", 12, FontStyle.Regular);
                            Brush bush = new SolidBrush(Color.Black);
                        }
                    }
                    preY = imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY);
                    x += 2;
                    curindex++;
                }
                img.Save(Application.StartupPath + "\\temp\\" + epis + ".bmp");
                string ftpPath = "";
                //得到ftp
                FtpService ftp = GetFtpHelper(machID, dealProcess, out ftpPath);
                //上传图片
                ftp.Upload(Application.StartupPath + "\\temp\\" + epis + ".bmp");
                System.IO.FileInfo fInfo = new System.IO.FileInfo(Application.StartupPath + "\\temp\\" + epis + ".bmp");
                System.IO.File.Delete(Application.StartupPath + "\\temp\\" + epis + ".bmp");
                //保存图片
                SaveImg(machID, epis, epis, ftpPath.Split('^')[3] + fInfo.Name, dealProcess, episAll);
                return false;
            }
            catch (Exception ex)
            {
                LIS.Core.Util.LogUtils.WriteExceptionLog("绘制Sebia电泳图发生错误", ex);
                return false;
            }
        }


        /// <summary>
        /// 内部数据实体
        /// </summary>
        private class Dto
        {
            /// <summary>
            /// 类型
            /// </summary>
            public string Type
            {
                get;
                set;
            }

            /// <summary>
            /// Y坐标
            /// </summary>
            public int Y
            {
                get;
                set;
            }
        }
    }
}

固定电泳,有参考线,出多个图
在这里插入图片描述

在这里插入图片描述

绘图逻辑片段(数据以F开头)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PreDeal.Interface;
using LIS.Model.Bussiness;
using LIS.DAL.DataAccess;
using PreDeal.Ftp;
using PreDeal.Attributes;
using System.Text.RegularExpressions;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.IO;
using System.Collections;

namespace PreDeal
{
    ///<summary  NoteObject="Class">
    /// [功能描述:Sebia电泳仪的数据和图像处理 固定电泳] <para/>
    /// [创建者:zlz] <para/>
    /// [创建时间:] <para/>
    ///<说明>
    ///  [说明:Sebia电泳仪的数据和图像处理处理,处理数据格式
    ///F00011907171832-ELP                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A01000000000000000000000000000000000080060006000600060006000600060006000600060006000600060007000800080008000900090009000A000C000E00110015001B0023002C0039004700560067007C009800C50106015901B301FF022B022901F701A5014500ED00A600740055003F002F00220017000F000B0009000800060006000600060005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000600060006000600060006000600060006000600060006000600060007000800080009000A000B000C000E000F001100140017001B0020002500280029002800260022001D00180015001400120012001300130014001400140014001500150017001A001C001F002100240027002A002E003100340035003500340031002D0029002600230020001D001B0018001500130011000F000D000C000B000A0009000900090009000A000B000B000E001100180021002A00310032002F0028001F00170011000E000B000900080007000600060006000600080009000C0011001400170018001700150013001200120015001B002600390057008800D6014E020303150487060A073207A1071F05C604090263012C007A002B000E00060003000300030003000300040004000500050005000400040003000300030003000200020002000200020001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///F00021907171832-IgG                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A01000000000000000000000000000000000080720074007500770079007C007E00800082008500870089008B008E0090009200950097009A009D00A100A600AB00B200B900C200CD00DA00EB00FE0114012E0150017E01BF0211026E02C40301031202F202A9024B01ED019E01670144012F012201190112010D010B010B010C010D010E010F010F010F010E010D010C010A01070104010000FB00F600F000EA00E400DD00D600CE00C700C000B900B100AA00A3009D00960090008B00860081007D007A007600730071006E006C006A00690068006700670067006600670067006700680069006A006C006F00720076007B007F0084008700880087008500830081007F007F007F0080008200830084008300820081007E007C007900760073006F006B006800650063006200610060005E005C005900550050004B00460042003E003B0038003600330030002E002C002A002800270027002700270027002700280029002B002D002F003300390042004A005200550054005000490042003D003A00380038003800380039003B003E00410046004D0056005F00690072007A008100890091009C00AA00BB00CF00E6010201220146016E019C01CE02010229023C022B01F10194012600BD0068002F00130006000200010000000000000000000000000001000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///F00031907171832-IgA                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A01000000000000000000000000000000000080080008000800080008000800080008000800080008000800080008000900090009000A000A000A000B000D001000140018001E00260031003E004F00610079009600C10100014F01A901F9022B0231020701B7015600FB00B0007C0059004300330025001A0012000C00090008000700070006000600060005000500050006000600060005000500050005000500050005000500050005000500050005000500050005000500050005000500050006000600070007000700070007000700070007000700070008000800080009000A000C000D000F001100140017001B001F002400270029002A002800250020001B00170014001300120012001300130013001300140014001500170019001B001E002000230026002A002D0031003400360037003700340031002E002A002600230020001E001C00190016001400120010000E000D000D000C000B000B000B000C000C000D000E00110014001B0023002B00310032002F0028002000180013000F000C000A0009000800080008000800080009000B000F0012001600180018001700140011001000110015001C0029003D005E009200E601660226034204AF0620072B077906E1058803D80245011F0077002B000E00060004000400040003000300030004000400040004000400040003000200020002000100010001000100010001000100010001000100000000000000010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///F00041907171832-IgM                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A010000000000000000000000000000000000800700070006000600060005000500050006000600060006000700070007000700070007000700080009000C000E00120016001B0021002900360046005A0073009000BD00FB014C01A801FE023A024B022901DB0177011000B9007C0054003B002B001F0015000F000A000700060006000500050005000500050005000500050004000400040004000400040004000400040004000400040004000400040004000400040005000500050005000500060006000600060006000600060006000600060006000700070008000800080009000A000C000D000F00120016001A001E002300260027002700250021001D0019001500110010001000100010001000100010001000100011001400160019001C001F002200260029002D0030003300360036003500330030002C0028002600230020001D001A001700140011000F000D000C000B000A000A000900090009000A000A000B000E00110016001E0027002F00330031002C0024001B00140010000D000A00080007000700070007000700080009000B000F00120015001600150012000F000D000E00100015001F002E0047006F00AE011301AB028F03D1054606980769076C068F0512036601F000ED005F0020000A00030002000200020002000200030003000300030002000200010001000100000000000000000000000000000000000000000000000000000000000000000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///F00051907171832-K                                          000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A0100000000000000000000000000000000008010000F000E000D000D000D000D000D000D000D000D000D000D000D000D000D000D000D000E000F0010001300160019001D0022002A00330040004F0064007D009E00CB0108015601AD01FF02380248022901E00180011C00C50085005B004000300024001A00140010000D000C000C000B000B000B000B000B000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000D000D000E000F000F00100011001200140016001A001F00230027002A002B002B002900250021001C0018001500130013001300140014001400140015001600170019001C001E002100240027002A002E003200350038003A0039003800360033002F002C002800250022001F001C001A00170015001300110010000F000E000D000D000D000D000D000E000F001100140018001F0026002D003200340031002B0023001B00150011000E000C000B000A000900090009000A000C000E001200150019001A0019001700140012001100130018002100310049007100B0011401AA028A03C505370687075E076F069F052A0383020900FB00650022000900030002000200020002000200020002000300030003000300030002000200020002000200020002000200020001000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///F00061907171832-L                                          000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A010000000000000000000000000000000000802C002B002B002B002B002A002A002A002A002B002B002B002B002C002C002C002D002D002E0030003100330036003A003F0044004C005600620072008700A000C000ED012B017C01DB0238027D0297027C023301D0016B011800DD00BB00A8009D0096009300910092009400960098009A009C009E009F00A0009F009E009C009A009600930090008B00860081007D00780073006D00680063005E005A00560052004E004A004700440041003F003D003B003A003800370035003400330032003100310031003100310031003200320033003400360037003A003C004000450049004D00500051004F004D004A004700440044004400460048004B004E0050005200540055005700580059005900590059005800580057005700570057005600540051004D004900440040003D003A003700340031002E002C0029002700260025002500240024002400240024002500260028002A002C00310037003F0048004E00510050004B0043003C00380035003400330033003400350037003A003C00400047004F00590064006E00780081008B009600A400B500CC00E8010B0136016A01A801F0024302A10306036203A203B0037B0302025901A501020087003C0018000900040003000300030003000400040004000400040004000400040003000300020002000200020002000200020001000100010001000000000000000000010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    ///F00071907171832-Ref                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A010000000000000000000000000000000000800C000B000B000B000B000B000B000B000B000B000B000B000B000C000C000D000E000E000F000F0011001200140017001B001F002400290031003A0048005D007E00AC00E9012D016E01A601CD01DF01D901BC018A014700FD00B7007D0054003A002A002000190013000F000D000B000900090008000800070007000700060006000500050005000500050005000500050005000500050005000400040003000300040004000500050005000500050004000400030003000200020002000100010000000000000000000000000000000000010002000400060009000C000F001200160018001900190018001600130012000E000D000C000B000B000B000C000C000D000E000E0010001200140017001A001D002100250029002D003000320034003400330032002F002C00290027002400210020001D001B0019001800160014001300120012001100100010001000110012001200140017001A001E002100250029002B002B002800240020001B001600130011000F000E000E000E000E000E0011001200160018001B001B001B001B001A00190019001C002400300046006A00A300FD01840251035D047D05800634066305F4050303D20299018900C7005600240011000B000900090009000900090009000900090009000900090009000900080007000600050005000500050004000300030002000200020002000200020001000100010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    ///  ]<para/>
    ///</说明>
    ///<修改记录>
    ///    [修改时间:]<para/>
    ///    [修改内容:]<para/>
    ///</修改记录>
    ///<修改记录>
    ///    [修改时间:本次修改时间]<para/>
    ///    [修改内容:本次修改内容]<para/>
    ///</修改记录>
    ///</summary>
    [Remark(Remark = "Sebia血清蛋白电泳仪的数据和图像处理处理带有ELP参照线。F00011907171832-ELP                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A01000000000000000000000000000000000080060006000600060006000600060006000600060006000600060007000800080008000900090009000A000C000E00110015001B0023002C0039004700560067007C009800C50106015901B301FF022B022901F701A5014500ED00A600740055003F002F00220017000F000B0009000800060006000600060005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000600060006000600060006000600060006000600060006000600060007000800080009000A000B000C000E000F001100140017001B0020002500280029002800260022001D00180015001400120012001300130014001400140014001500150017001A001C001F002100240027002A002E003100340035003500340031002D0029002600230020001D001B0018001500130011000F000D000C000B000A0009000900090009000A000B000B000E001100180021002A00310032002F0028001F00170011000E000B000900080007000600060006000600080009000C0011001400170018001700150013001200120015001B002600390057008800D6014E020303150487060A073207A1071F05C604090263012C007A002B000E00060003000300030003000300040004000500050005000400040003000300030003000200020002000200020001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \nF00021907171832-IgG                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A01000000000000000000000000000000000080720074007500770079007C007E00800082008500870089008B008E0090009200950097009A009D00A100A600AB00B200B900C200CD00DA00EB00FE0114012E0150017E01BF0211026E02C40301031202F202A9024B01ED019E01670144012F012201190112010D010B010B010C010D010E010F010F010F010E010D010C010A01070104010000FB00F600F000EA00E400DD00D600CE00C700C000B900B100AA00A3009D00960090008B00860081007D007A007600730071006E006C006A00690068006700670067006600670067006700680069006A006C006F00720076007B007F0084008700880087008500830081007F007F007F0080008200830084008300820081007E007C007900760073006F006B006800650063006200610060005E005C005900550050004B00460042003E003B0038003600330030002E002C002A002800270027002700270027002700280029002B002D002F003300390042004A005200550054005000490042003D003A00380038003800380039003B003E00410046004D0056005F00690072007A008100890091009C00AA00BB00CF00E6010201220146016E019C01CE02010229023C022B01F10194012600BD0068002F00130006000200010000000000000000000000000001000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \nF00031907171832-IgA                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A01000000000000000000000000000000000080080008000800080008000800080008000800080008000800080008000900090009000A000A000A000B000D001000140018001E00260031003E004F00610079009600C10100014F01A901F9022B0231020701B7015600FB00B0007C0059004300330025001A0012000C00090008000700070006000600060005000500050006000600060005000500050005000500050005000500050005000500050005000500050005000500050005000500050006000600070007000700070007000700070007000700070008000800080009000A000C000D000F001100140017001B001F002400270029002A002800250020001B00170014001300120012001300130013001300140014001500170019001B001E002000230026002A002D0031003400360037003700340031002E002A002600230020001E001C00190016001400120010000E000D000D000C000B000B000B000C000C000D000E00110014001B0023002B00310032002F0028002000180013000F000C000A0009000800080008000800080009000B000F0012001600180018001700140011001000110015001C0029003D005E009200E601660226034204AF0620072B077906E1058803D80245011F0077002B000E00060004000400040003000300030004000400040004000400040003000200020002000100010001000100010001000100010001000100000000000000010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \nF00041907171832-IgM                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A010000000000000000000000000000000000800700070006000600060005000500050006000600060006000700070007000700070007000700080009000C000E00120016001B0021002900360046005A0073009000BD00FB014C01A801FE023A024B022901DB0177011000B9007C0054003B002B001F0015000F000A000700060006000500050005000500050005000500050004000400040004000400040004000400040004000400040004000400040004000400040005000500050005000500060006000600060006000600060006000600060006000700070008000800080009000A000C000D000F00120016001A001E002300260027002700250021001D0019001500110010001000100010001000100010001000100011001400160019001C001F002200260029002D0030003300360036003500330030002C0028002600230020001D001A001700140011000F000D000C000B000A000A000900090009000A000A000B000E00110016001E0027002F00330031002C0024001B00140010000D000A00080007000700070007000700080009000B000F00120015001600150012000F000D000E00100015001F002E0047006F00AE011301AB028F03D1054606980769076C068F0512036601F000ED005F0020000A00030002000200020002000200030003000300030002000200010001000100000000000000000000000000000000000000000000000000000000000000000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \nF00051907171832-K                                          000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A0100000000000000000000000000000000008010000F000E000D000D000D000D000D000D000D000D000D000D000D000D000D000D000D000E000F0010001300160019001D0022002A00330040004F0064007D009E00CB0108015601AD01FF02380248022901E00180011C00C50085005B004000300024001A00140010000D000C000C000B000B000B000B000B000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000D000D000E000F000F00100011001200140016001A001F00230027002A002B002B002900250021001C0018001500130013001300140014001400140015001600170019001C001E002100240027002A002E003200350038003A0039003800360033002F002C002800250022001F001C001A00170015001300110010000F000E000D000D000D000D000D000E000F001100140018001F0026002D003200340031002B0023001B00150011000E000C000B000A000900090009000A000C000E001200150019001A0019001700140012001100130018002100310049007100B0011401AA028A03C505370687075E076F069F052A0383020900FB00650022000900030002000200020002000200020002000300030003000300030002000200020002000200020002000200020001000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \nF00061907171832-L                                          000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A010000000000000000000000000000000000802C002B002B002B002B002A002A002A002A002B002B002B002B002C002C002C002D002D002E0030003100330036003A003F0044004C005600620072008700A000C000ED012B017C01DB0238027D0297027C023301D0016B011800DD00BB00A8009D0096009300910092009400960098009A009C009E009F00A0009F009E009C009A009600930090008B00860081007D00780073006D00680063005E005A00560052004E004A004700440041003F003D003B003A003800370035003400330032003100310031003100310031003200320033003400360037003A003C004000450049004D00500051004F004D004A004700440044004400460048004B004E0050005200540055005700580059005900590059005800580057005700570057005600540051004D004900440040003D003A003700340031002E002C0029002700260025002500240024002400240024002500260028002A002C00310037003F0048004E00510050004B0043003C00380035003400330033003400350037003A003C00400047004F00590064006E00780081008B009600A400B500CC00E8010B0136016A01A801F0024302A10306036203A203B0037B0302025901A501020087003C0018000900040003000300030003000400040004000400040004000400040003000300020002000200020002000200020001000100010001000000000000000000010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100018001|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \nF00071907171832-Ref                                        000                            00000g/dl                                                                                                                                                          TS 2207201901?                                                                                                   100.0000.0000.0000.0000.0000.0000.0000.0000.0000.000000000000000000000000000000000000000000000000000                                        000.0000.0000.0000.000000000000000000000001.0001.00                                                                                                                                                                                                                                      000300A010000000000000000000000000000000000800C000B000B000B000B000B000B000B000B000B000B000B000B000C000C000D000E000E000F000F0011001200140017001B001F002400290031003A0048005D007E00AC00E9012D016E01A601CD01DF01D901BC018A014700FD00B7007D0054003A002A002000190013000F000D000B000900090008000800070007000700060006000500050005000500050005000500050005000500050005000400040003000300040004000500050005000500050004000400030003000200020002000100010000000000000000000000000000000000010002000400060009000C000F001200160018001900190018001600130012000E000D000C000B000B000B000C000C000D000E000E0010001200140017001A001D002100250029002D003000320034003400330032002F002C00290027002400210020001D001B0019001800160014001300120012001100100010001000110012001200140017001A001E002100250029002B002B002800240020001B001600130011000F000E000E000E000E000E0011001200160018001B001B001B001B001A00190019001C002400300046006A00A300FD01840251035D047D05800634066305F4050303D20299018900C7005600240011000B000900090009000900090009000900090009000900090009000900080007000600050005000500050004000300030002000200020002000200020001000100010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000|**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ")]
    public class DealSebiaELP : BaseDeal, IPreDeal, ITimer
    {
        /// <summary>
        /// 图片数据
        /// </summary>
        private static Dictionary<string, string> imgdata = new Dictionary<string, string>();

        /// <summary>
        /// 前一个文件名称
        /// </summary>
        private static string preFileName = "";

        /// <summary>
        /// 前一个流水
        /// </summary>
        private static string preEpis = "";

        /// <summary>
        /// 参照数据索引
        /// </summary>
        private static string  refIndex = "";

        /// <summary>
        /// 流水号
        /// </summary>
        private static string epis = "";

        /// <summary>
        /// 前处理
        /// </summary>
        /// <param name="result">结果</param>
        /// <param name="machID">仪器ID</param>
        /// <param name="dealProcess">处理程序</param>
        /// <param name="index">当前文件的第几行</param>
        /// <param name="fileName">当前读取的文件全名</param>
        /// <returns></returns>
        public bool PreDeal(string result, string machID, string dealProcess, int index, string fileName)
        {
            string head=result.Split(' ')[0];
            string sampleNo = head.Substring(5, head.Length-5);
            string episAll = result.Split(' ')[0];
            epis =sampleNo.Split('-')[0];
            //记录参照数据位置
            if(sampleNo.Contains("-ELP"))
            {
                refIndex = sampleNo;
            }
            if ((preFileName != fileName)||(epis != preEpis))
            {
                imgdata.Clear();
            }
            if(!imgdata.ContainsKey(sampleNo))
            {
                imgdata.Add(sampleNo, result);
            }
            preFileName = fileName;
            preEpis = epis;
            //累计到七个数据才画图
            if (imgdata.Keys.Count == 6||index==-1)
            {
                if(imgdata.Keys.Count == 1)
                {
                    refIndex = sampleNo;
                    string fenStart = result.Substring(824, 4);
                    string fenEnd = result.Substring(828, 4);
                }
                foreach (var key in imgdata.Keys)
                {
                    result = imgdata[key];
                    string value1Name = result.Substring(266, 10);
                    string value1 = result.Substring(367, 5);
                    string value2Name = result.Substring(276, 10);
                    string value2 = result.Substring(372, 5);
                    string value3Name = result.Substring(286, 10);
                    string value3 = result.Substring(377, 5);
                    string value4Name = result.Substring(296, 10);
                    string value4 = result.Substring(382, 5);
                    string value5Name = result.Substring(306, 10);
                    string value5 = result.Substring(387, 5);
                    string value6Name = result.Substring(316, 10);
                    string value6 = result.Substring(392, 5);
                    string value7Name = result.Substring(326, 10);
                    string value7 = result.Substring(397, 5);
                    string value8Name = result.Substring(336, 10);
                    string value8 = result.Substring(402, 5);
                    string value9Name = result.Substring(346, 10);
                    string value9 = result.Substring(407, 5);
                    string value10Name = result.Substring(356, 10);
                    string value10 = result.Substring(412, 5);
                    string value11 = result.Substring(557, 170).Trim();


                    //处理数据
                    DealData(value1Name + "\\" + value1 + "," + value2Name + "\\" + value2 + "," + value3Name + "\\" + value3 + "," + value4Name + "\\" + value4 + "," + value5Name + "\\" + value5 + "," + value6Name + "\\" + value6 + "," + value7Name + "\\" + value7 + "," + value8Name + "\\" + value8 + "," + value9Name + "\\" + value9 + "," + value10Name + "\\" + value10 + ",Remark" + "\\" + value11 + ",episall\\" + episAll + ",resall\\" + result, machID, sampleNo, dealProcess);
                    //取出图形串
                    string imgStr = result.Substring(830, 1200);
                    string imgStrRef = imgdata[refIndex].Substring(830, 1200);
                    List<Dto> dataListRef = new List<Dto>();
                    List<Dto> dataList = new List<Dto>();
                    int maxY = 0;
                    int max1Index = 0;
                    int max1Data = 0;

                    int max2Index = 0;
                    int max2Data = 0;

                    int max3Index = 0;
                    int max3Data = 0;
                    //分割点数据
                    for (int i = 0; i < imgStrRef.Length && i < 1200; i += 4)
                    {
                        int startIndex = i;
                        int endIndex = i + 4;
                        if (endIndex > imgStrRef.Length)
                        {
                            endIndex = imgStrRef.Length;
                        }
                        Dto dto = new Dto();
                        dto.Type = imgStrRef.Substring(startIndex, 1);
                        if (dto.Type == "4" || dto.Type == "C" || dto.Type == "1" || dto.Type == "5")
                        {
                            continue;
                        }
                        else
                        {
                            dto.Y = Convert.ToInt32(imgStrRef.Substring(startIndex + 1, endIndex - startIndex - 1), 16);
                        }
                        if (dto.Y > maxY)
                        {
                            maxY = dto.Y;
                        }
                        dataListRef.Add(dto);
                    }
                    for (int i = 0; i < imgStr.Length && i < 1200; i += 4)
                    {
                        int startIndex = i;
                        int endIndex = i + 4;
                        if (endIndex > imgStr.Length)
                        {
                            endIndex = imgStr.Length;
                        }
                        Dto dto = new Dto();
                        dto.Type = imgStr.Substring(startIndex, 1);
                        if (dto.Type == "4" || dto.Type == "C" || dto.Type == "1" || dto.Type == "5")
                        {
                            continue;
                        }
                        else
                        {
                            dto.Y = Convert.ToInt32(imgStr.Substring(startIndex + 1, endIndex - startIndex - 1), 16);
                        }
                        if (dto.Y > maxY)
                        {
                            maxY = dto.Y;
                        }
                        if (i / 4 > 135 && i / 4 < 165)
                        {
                            if (max1Data < dto.Y)
                            {
                                max1Data = dto.Y;
                                max1Index = i / 4;
                            }
                        }
                        if (i / 4 > 170 && i / 4 < 195)
                        {
                            if (max2Data < dto.Y)
                            {
                                max2Data = dto.Y;
                                max2Index = i / 4;
                            }
                        }
                        if (i / 4 > 230 && i / 4 < 245)
                        {
                            if (max3Data < dto.Y)
                            {
                                max3Data = dto.Y;
                                max3Index = i / 4;
                            }
                        }
                        dataList.Add(dto);
                    }
                    int imgY = 580;
                    //创建空位图
                    Image img = new Bitmap(680, imgY);
                    //获得画图句柄
                    Graphics g = Graphics.FromImage(img);
                    g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                    g.Clear(Color.White);
                    int x = 40;
                    int y = 40;
                    //画坐标
                    Pen pen = new Pen(Color.Black);
                    Pen penRef = new Pen(Color.Black);
                    if (imgdata.Keys.Count == 6)
                    {
                        penRef = new Pen(Color.Blue);
                    }
                    penRef.Width = 2;
                    pen.Width = 2;
                    g.DrawLine(pen, 40, imgY - y, 640, imgY - y);
                    for (int i = 0; i < 300; i += 15)
                    {
                        g.DrawLine(pen, 40 + i * 2, imgY - y, 40 + i * 2, imgY - y - 4);
                        Point p = new Point(40 + i * 2, imgY - y + 3);
                        Font myFont = new Font("宋体", 8, FontStyle.Regular);
                        Brush bush = new SolidBrush(Color.Black);
                        g.DrawString(i.ToString(), myFont, bush, p);
                    }

                    int preYRef = -1;
                    int preY = -1;
                    int curindex = 0;
                    //遍历点画图
                    foreach (var d in dataList)
                    {
                        if (preY == -1)
                        {
                            pen = new Pen(Color.Black);
                            pen.Width = 2;
                            g.DrawLine(pen, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 25.0) / maxY) - y);
                            g.DrawLine(penRef, x, imgY - Convert.ToInt32(dataListRef[curindex].Y * (imgY - y - 65.0) / maxY) - y, x, imgY - Convert.ToInt32(dataListRef[curindex].Y * (imgY - y - 25.0) / maxY) - y);
                        }
                        else
                        {
                            pen = new Pen(Color.Black);
                            pen.Width = 2;
                            g.DrawLine(pen, x, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y, x - 2, preY - y);
                            g.DrawLine(penRef, x, imgY - Convert.ToInt32(dataListRef[curindex].Y * (imgY - y - 65.0) / maxY) - y, x - 2, preYRef - y);
                        }
                        if (curindex == max1Index)
                        {
                            if (value1Name != "          ")
                            {
                                Point p = new Point(x - 8, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y - 20);
                                Font myFont = new Font("宋体", 12, FontStyle.Regular);
                                Brush bush = new SolidBrush(Color.Black);
                            }
                        }
                        if (curindex == max2Index)
                        {
                            if (value2Name != "          ")
                            {
                                Point p = new Point(x - 8, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y - 20);
                                Font myFont = new Font("宋体", 12, FontStyle.Regular);
                                Brush bush = new SolidBrush(Color.Black);
                            }
                        }
                        if (curindex == max3Index)
                        {
                            if (value3Name != "          ")
                            {
                                Point p = new Point(x - 8, imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY) - y - 20);
                                Font myFont = new Font("宋体", 12, FontStyle.Regular);
                                Brush bush = new SolidBrush(Color.Black);
                            }
                        }
                        preY = imgY - Convert.ToInt32(d.Y * (imgY - y - 65.0) / maxY);
                        preYRef = imgY - Convert.ToInt32(dataListRef[curindex].Y * (imgY - y - 65.0) / maxY);
                        x += 2;
                        curindex++;
                    }
                    img.Save(Application.StartupPath + "\\temp\\" + key + ".bmp");
                    
                }
            }
            return false;
        }


        /// <summary>
        /// 内部数据实体
        /// </summary>
        private class Dto
        {
            /// <summary>
            /// 类型
            /// </summary>
            public string Type
            {
                get;
                set;
            }

            /// <summary>
            /// Y坐标
            /// </summary>
            public int Y
            {
                get;
                set;
            }
        }
    }
}


国内lis还是该反思一下无底线越界改最后自己也反受其害,像酶标仪厂商的控制软件要收费不想买要每个lis开发,有人开先例做了别的人都被迫只能做了。抵制下舔狗行为

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sebia电泳绘图 的相关文章

  • 关于ATSHA204a的使用流程

    ATSHA204含有一个EEPROM 和 一个 SRAM EEPROM 包含 1个 Data Zone 512Bytes xff1a 一般用来存储密钥的 1个 configration Zone 88Bytes xff1a 用来设置Data
  • stm32L476RG,通过串口打印信息

    调试STM32L476RG时 xff0c 想要通过串口打印信息方法 xff1a 1 通过官方的历程 xff0c 移植USART的程序 xff0c 位置STM32Cube FW L4 V1 13 0 Projects NUCLEO L476R
  • k8s 1.18.20版本部署

    身为k8s初学者 xff0c 在掌握k8s理论知识的同时 xff0c 也需要掌握一下实际部署k8s的过程 xff0c 对于理论的学习起到一定的帮助作用 罗列了一下相关步骤 xff0c 请各位参考 xff1a 一 环境准备 三台虚机 xff1
  • java后端对接外部系统(HttpClient HttpPost)

    前言 最近遇到一个需求对接外部系统 xff0c 我们自己的系统发送请求 xff0c 根据请求内容的不同调用不同的外部系统 举例 xff1a 我们是做互联网医院的 xff0c 根据医生开处方选择药店的不同 xff0c 调用各药店自己的系统 x
  • “轻松搞定CMake”系列之find_package用法详解

    本文是 轻松搞定CMake 系列博客中的一篇 xff0c 该篇文章的主要目的是详细讲解一下CMake中搜包命令find package的使用和原理 其他更多文章请参考 xff1a 轻松搞定CMake 系列博客概述 文章目录 1 find p
  • 一遍成功的ROS主从机详细配置

    ROS支持多机互通 xff0c 可以设置一台主机 xff0c 多台从机 xff0c 主机中运行roscore xff0c 启动master节点 xff0c 从机直接运行其他节点 xff0c 在配置好的机器之间就可以互相通信了 xff0c 就
  • pip install列出待安装包的所有版本

    问题描述 一般我们在使用pip Install命令安装Python软件包的时候 xff0c 会想知道能安装的包版本的是多少 xff0c 这样方便自己选择可能的兼容版本进行安装 xff0c 在pip某个版本之前获取待安装包的所有版本命令比较简
  • ImportError with scipy.misc cannot import toimage错误解决

    问题描述 在使用如下代码时出现错误 xff1a span class token keyword import span scipy span class token punctuation span misc scipy span cla
  • AttributeError: module ‘requests‘ has no attribute ‘get‘

    问题描述 执行python程序时报错 xff1a AttributeError module span class token string 39 requests 39 span has no attribute span class t
  • Ubuntu下dpkg -i 安装deb报错 trying to overwrite shared

    问题表述 Ubuntu 22 04下 xff0c 执行下述命令时报错 xff1a 命令 xff1a span class token function sudo span dpkg i libglapi mesa 22 0 5 0ubunt
  • 4k高分屏Windows10下软件字体过小解决办法

    在Windows10下使用Matlab xff0c 由于是4k显示屏 xff0c 本来以为Matlab会出现字体过小的情况 xff0c 结果并没有出现什么问题 字体显示一切正常 xff0c 然而在打开Simulink时 xff0c Matl
  • Eigen矩阵运算开源库使用完全指南

    Eigen库是一个开源的矩阵运算库 xff0c 其利用C 43 43 模板编程的思想 xff0c 构造所有矩阵通过传递模板参数形式完成 由于模板类不支持库链接方式编译 xff0c 而且模板类要求全部写在头文件中 xff0c 从而导致导致Ei
  • “轻松搞定CMake”系列之CMakeLists文件编写语法规则详解

    文章目录 基本语法规则常见CMakeLists txt中指令剖析从VS项目配置过程理解CMakeLists内容CMake中常用变量汇总常用CMakeLists文件模板基础模板使用OpenCV库CMakeLists文件模板使用PCL库CMak
  • Centos7 XFS(dm-0):Internal error XFS_WANT_CORRUPTED_GOTO

    在k8s的道路上我们都是小白 xff0c 每天启动虚机都会遇到各种各样的问题 xff0c 这不 部署的k8s虚机启动发现操作系统启动异常 xff0c 提示如下报错信息 XFS xff08 dm 0 xff09 Internal error
  • 招聘笔试行测题之图形推理题解题思路汇总

    在一些公司的招聘过程中 xff0c 多少都会在笔试过程中遇到行测题 xff0c 这些行测题如果没有事先做过一些针对性的训练 xff0c 还是会感觉挺费劲的 xff0c 本博客主要汇总行测题中的图形推理题的一些解题思路 xff0c 供大家参考
  • ROS之tf空间坐标变换完全详解

    本博文主要汇总了自己在使用ROS中tf坐标变换包时查找的一些参考资料和博客 xff0c 包括了tf和部分tf2的使用 xff0c 在此感谢本博文中出现的所有的博客链接 xff01 参考资源 xff1a ROS官网详细介绍 xff1a htt
  • Word2016写论文之尾注功能——参考文献自动编号与引用(包括方括号去除方法)

    本系列文章主要详细介绍本人在使用Word2016写论文过程所用到的各种操作 xff0c 这些操作都非常的实用 xff0c 能够大为减少论文排版的工作量 其中很多方法也都是参考网上一些优秀博客的 xff0c 经过本人的实践成功之后才记录在此
  • vnc 设置不同用户登录

    a 在root用户下切换到其他用户 xff0c 以wolf用户为例 xff1a su wolf b 设置vnc连接密码 xff1a vncpasswd c 启动vnc服务 xff1a vncserver
  • 推荐几款常用的性能测试工具

    对内容不感兴趣拉到最后领取今天的外卖红包 常用的性能测试工具 对于开发人员来说 xff0c 首选是一些开源免费的性能 xff08 压力 xff09 测试软件 xff0c 例如 ab xff08 ApacheBench xff09 JMete
  • kubeadmin 快速部署k8s集群

    安装要求 在开始之前 xff0c 部署Kubernetes集群机器需要满足以下几个条件 xff1a 一台或多台机器 xff0c 操作系统 CentOS7 x 86 x64硬件配置 xff1a 2GB或更多RAM xff0c 2个CPU或更多

随机推荐

  • GetCurrentDirectory、SetCurrentDirectory和GetModuleFileName

    一 学习 GetModuleFileName xff1a 方法一 xff1a 想要访问执行程序 exe 路径下的文件 xff0c 有以下几个步骤 xff1a 1 先通过函数GetModuleFileName获取执行程序的绝对路径 TCHAR
  • C++定义全局类对象

    可能我这个全局类的说法不是很准确 xff0c 不过其实就是变量的扩展延伸 比如你想把一个类让全部的CPP都能用 xff0c 而不是一个变量 xff0c 那么需要这样定义 xff1a 假设有一个预编译头stdafx h 在stdafx h中加
  • Linux服务器VG扩容、LV扩容

    测试环境中K8s集群部署过程中发现磁盘大小太小 xff0c 需要对现有虚机的磁盘进行扩容 xff0c 计划 步骤1 虚机增加一块磁盘 步骤2 将磁盘添加到原有vg组中 步骤3 通过vg中资源给原有磁盘挂载目录进行lv扩容 实施步骤 xff1
  • Openstack云平台脚本部署之Neutron网络服务配置(九)

    目录 一 简介 二 部署脚本 2 1 网络节点独立部署 2 2 控制节点与网络节点融合部署 2 3 脚本详细介绍 三 参考文档 四 源码 五 系列文章 一 简介 Openstack网络服务Neutron主要负责网络连接任务 xff0c 包括
  • Android开发java调用C简单示例

    目录 下载NDK和CMake新建NDK项目写入C 43 43 代码 xff0c 并运行 本文使用的Android Studio版本是windows版Android Studio Bumblebee 2021 1 1 Patch 2 先看下最
  • 互联网单点登录集成方案

    为了迎合公司互联网化经营 xff0c 业务部门均纷纷上马了互联网的项目 xff0c 部门应用之间各自为政 xff0c 无法形成公司整体品牌效应 xff0c 以及影响用户体验 xff0c 故 xff0c 有了以下的单点登录集成方案 概述 整合
  • 【软件教程】如何让vscode连接ssh时记住密码

    准备软件 客户机安装vscode xff08 vscode官网https code visualstudio com xff09 客户机和服务器配置ssh xff0c 确保能够连接 VSCode ssh记住密码教程 一 在Client客户机
  • 车辆检测--DAVE: A Unified Framework for Fast Vehicle Detection and Annotation

    DAVE A Unified Framework for Fast Vehicle Detection and Annotation ECCV2016 本文使用深度学习进行车辆检测和属性学习 提出的系统为 Detection and Ann
  • 对抗学习用于目标检测--A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection

    A Fast RCNN Hard Positive Generation via Adversary for Object Detection CVPR 2017 Caffe code https github com xiaolonw a
  • 人脸识别--SphereFace: Deep Hypersphere Embedding for Face Recognition

    SphereFace Deep Hypersphere Embedding for Face Recognition CVPR2017 https github com wy1iu sphereface pytorch https gith
  • 运动相机检测无人机-- Detecting Flying Objects using a Single Moving Camera

    Detecting Flying Objects using a Single Moving Camera PAMI 2017 http cvlab epfl ch research unmanned detection https dri
  • [转载]Python SMTP发送邮件-smtplib模块

    在进入正题之前 xff0c 我们需要对一些基本内容有所了解 xff1a 常用的电子邮件协议有SMTP POP3 IMAP4 xff0c 它们都隶属于TCP IP协议簇 xff0c 默认状态下 xff0c 分别通过TCP端口25 110和14
  • c语言和c++有什么区别

    差不多是win98跟winXP的关系 C 43 43 是在C的基础上增加了新的理论 xff0c 玩出了新的花样 所以叫C加加 C是一个结构化语言 xff0c 它的重点在于算法和数据结构 C程序的设计首要考虑的是如何通过一个过程 xff0c
  • 梳理LVM逻辑卷管理,

    在Linux操作系统会时不时碰到卷有关的操作 xff0c 以下也是罗列了相关操作内容 xff0c 仅供参考 创建PV VG LV的方法 将各物理磁盘或分区的系统类型设为Linux LVM xff0c 其system ID为8e xff0c
  • 使用sqlyog连接 Mysql 出现1251错误

    使用sqlyog连接 Mysql 出现1251错误 简述 xff1a 1251 client does not support authentication protocol requested by server consider upg
  • 准备给ubuntu18.04安装杀毒软件

    如题 xff0c 电脑最近总出现些奇奇怪怪的小问题 xff0c 还是得装个杀毒软件 xff0c 看是不是中病毒了 输入sudo apt get install clamtk 安装完成后 xff0c 输入clamtk 即可 xff0e 卸载方
  • 使用Nginx代理地址

    DotNetCore在Linux发布时候 xff0c 由于不止一个产品组发布网站 xff0c 不像以前大家都用IIS的80发布网站 那么就存在大家抢80端口的情况 xff0c 为了让大家不比加上端口为此用Nginx代理URL实现网站地址代理
  • CentOS安装Cache数据库

    适用CentOS7 6 CentOS8上安装Intersystem公司的Cache数据库 xff0c 资料基本是空白 xff0c 分享一下 首先安装解压软件unzip和libicu xff0c 最小化安装的缺 xff0c 全安装的不缺 yu
  • Cache数据库之ECP搭建

    Cache作为非关系数据库 xff0c 其强大毋庸置疑 首先其Globle结构 xff0c 直接暴露的表Globel数据 xff0c 以及提供的M语言操作Globle达到的最优查询速度 ECP xff08 企业缓存协议 xff09 更是提供
  • Sebia电泳绘图

    Sebia这仪器真是个奇葩的存在 自己仪器有图不存文件 xff0c LIS要的话还得自己按数据绘制 还有蛋白电泳 固定电泳 画不画参考线等不同要求 xff08 奇葩的很 xff09 按理这种事不属于lis范围 xff0c 无奈国内lis太卷