Ejemplo n.º 1
0
        public static void DSRequestSampleData(string sample_id, int device)//处理生化仪申请消息
        {
            ASTMManager.ASTMRequestStruct astmrequest = new ASTMManager.ASTMRequestStruct();

            ASTM_HeaderRecordPack h = new ASTM_HeaderRecordPack();

            h.DelimiterDefinition = "\\^&";
            h.SenderNameorID      = GlobalVariable.DSDeviceID;
            h.ProcessingID        = "PR";
            h.VersionNumber       = "1394-97";
            h.DateandTime         = DateTime.Now.ToString("yyyyMMddhhmmss");

            ASTM_RequestRecordPack q = new ASTM_RequestRecordPack();

            q.SequenceNumber = "1";
            q.SpecimenID     = sample_id;          //样本ID
            q.RequestInformationstatusCodes = "O"; //请求样本查询

            ASTM_Encode message = new ASTM_Encode(h, q);

            astmrequest.ASTMRequestMessage = message.Encode();
            astmrequest.RequestSample_ID   = sample_id;
            astmrequest.RequestDevice      = GlobalVariable.DSDeviceID;
            astmManager.AddASTMRequestSampleData(astmrequest);//压入队列
        }
Ejemplo n.º 2
0
        public static void PLdataReceived(object receivedata, string name)//PL数据ASTM化
        {
            PLManager.PL12         data = (PLManager.PL12)receivedata;
            ASTMManager.ASTMStruct astm = new ASTMManager.ASTMStruct();
            astm.Item = new List <string>();

            ASTM_HeaderRecordPack h = new ASTM_HeaderRecordPack();

            h.DelimiterDefinition = "\\^&";
            h.SenderNameorID      = data.DEVEICE;
            h.ProcessingID        = "PR";
            h.VersionNumber       = "1394-97";
            h.DateandTime         = DateTime.Now.ToString("yyyyMMddhhmmss");

            ASTM_PatientRecordPack p = new ASTM_PatientRecordPack();//这个必须有

            p.SequenceNumber = "1";
            p.PatientID      = data.SAMPLE_ID;

            ASTM_TestOrderRecordPack o = new ASTM_TestOrderRecordPack();

            o.SequenceNumber = "1";
            o.SampleID       = data.SAMPLE_ID;
            o.SpecimenCollectionDateandTime = data.TEST_TIME.ToString("yyyyMMddhhmmss"); //检测时间
            o.ReportType = "F";                                                          //最终的结果

            ASTM_TestOrderRecordPack.Assay item = new ASTM_TestOrderRecordPack.Assay();
            int num = 1;
            List <ASTM_ResultRecordPack> listR = new List <ASTM_ResultRecordPack>();
            ASTM_ResultRecordPack        rAPP  = new ASTM_ResultRecordPack();

            item.AssayNo   = num.ToString();
            item.AssayName = "AAP";
            item.RepeatNum = "1";
            o.AssayList.Add(item);
            rAPP.SequenceNumber           = num.ToString();
            rAPP.AssayNo                  = num.ToString();
            rAPP.AssayName                = "诱聚剂项目";
            rAPP.Replicatenumber          = "1";
            rAPP.ResultType               = "F"; //定量结果
            rAPP.MeasurementValue         = data.AAP;
            rAPP.ResultStatus             = "F"; //最终结果
            rAPP.InstrumentIdentification = data.DEVEICE;
            listR.Add(rAPP);
            foreach (PLManager.PL12Result temp in data.Result)
            {
                ++num;
                item.AssayNo   = num.ToString();
                item.AssayName = temp.ITEM;
                item.RepeatNum = "1";
                o.AssayList.Add(item);

                ASTM_ResultRecordPack r = new ASTM_ResultRecordPack();
                r.SequenceNumber             = num.ToString();
                r.AssayNo                    = num.ToString();
                r.AssayName                  = temp.FULL_NAME;
                r.Replicatenumber            = "1";
                r.ResultType                 = "F";//定量结果
                r.MeasurementValue           = temp.RESULT;
                r.Units                      = temp.UNIT;
                r.MeasurementRangeLowerLimit = temp.NORMAL_LOW.ToString();
                r.MeasurementRangeUpperLimit = temp.NORMAL_HIGH.ToString();
                r.ResultAbnormalflag         = temp.INDICATE;
                r.ResultStatus               = "F";//最终结果
                r.InstrumentIdentification   = data.DEVEICE;
                listR.Add(r);
                astm.Item.Add(temp.ITEM);
            }
            ASTM_Encode message = new ASTM_Encode(h, p, o, listR);

            astm.ASTMMessage = message.Encode();
            astm.Device      = data.DEVEICE;
            astm.Sample_ID   = data.SAMPLE_ID;
            astmManager.AddASTM(astm);
        }
Ejemplo n.º 3
0
        public static void DSdataReceived(object receivedata, string name)//DS数据ASTM化
        {
            DI800Manager.DI800     data = (DI800Manager.DI800)receivedata;
            ASTMManager.ASTMStruct astm = new ASTMManager.ASTMStruct();
            astm.Item = new List <string>();

            ASTM_HeaderRecordPack h = new ASTM_HeaderRecordPack();

            h.DelimiterDefinition = "\\^&";
            h.SenderNameorID      = data.Device;
            h.ProcessingID        = "PR";
            h.VersionNumber       = "1394-97";
            h.DateandTime         = DateTime.Now.ToString("yyyyMMddhhmmss");

            ASTM_PatientRecordPack p = new ASTM_PatientRecordPack();

            p.SequenceNumber              = "1";
            p.PatientID                   = data.PATIENT_ID;
            p.PatientLastName             = data.FIRST_NAME;
            p.Age                         = data.AGE;
            p.PatientSex                  = data.SEX;
            p.DocterLastName              = data.DOCTOR;
            p.Location                    = data.AREA;
            p.NatureofaltDiagCodeandClass = data.BED;

            ASTM_TestOrderRecordPack o = new ASTM_TestOrderRecordPack();

            o.SequenceNumber = "1";
            o.SampleID       = data.SAMPLE_ID;
            o.Priority       = (data.Type.IndexOf("急诊") > 0) ? "S" : "R";
            o.SpecimenCollectionDateandTime    = data.TIME.ToString("yyyyMMddhhmmss");      //检测时间
            o.DateTimeSpecimenReceivedintheLab = data.SEND_TIME.ToString("yyyyMMddhhmmss"); //送检时间
            o.ReportType = "F";                                                             //最终的结果

            ASTM_TestOrderRecordPack.Assay item = new ASTM_TestOrderRecordPack.Assay();
            int num = 0;
            List <ASTM_ResultRecordPack> listR = new List <ASTM_ResultRecordPack>();

            foreach (DI800Manager.DI800Result temp in data.Result)
            {
                ++num;
                item.AssayNo   = num.ToString();
                item.AssayName = temp.ITEM;
                item.RepeatNum = "1";
                o.AssayList.Add(item);

                ASTM_ResultRecordPack r = new ASTM_ResultRecordPack();
                r.SequenceNumber             = num.ToString();
                r.AssayNo                    = num.ToString();
                r.AssayName                  = temp.FULL_NAME;
                r.Replicatenumber            = "1";
                r.ResultType                 = "F";//定量结果
                r.MeasurementValue           = temp.RESULT.ToString();
                r.Units                      = temp.UNIT;
                r.MeasurementRangeLowerLimit = temp.NORMAL_LOW.ToString();
                r.MeasurementRangeUpperLimit = temp.NORMAL_HIGH.ToString();
                r.ResultAbnormalflag         = temp.INDICATE;
                r.ResultStatus               = "F";//最终结果
                r.InstrumentIdentification   = data.Device;
                listR.Add(r);
                astm.Item.Add(temp.ITEM);
            }
            ASTM_Encode message = new ASTM_Encode(h, p, o, listR);

            astm.ASTMMessage = message.Encode();
            astm.Device      = data.Device;
            astm.Sample_ID   = data.SAMPLE_ID;
            astm.SendTime    = data.SEND_TIME.ToString();
            astmManager.AddASTM(astm);
        }