Esempio n. 1
0
 /// <summary>
 /// 直接发送
 /// </summary>
 /// <param name="dmSCRClient"></param>
 /// <param name="dMSCRProtocol"></param>
 public void SendReplyToSCRClient(DMClient dmSCRClient, DMSCRProtocol dMSCRProtocol)
 {
     if (dmSCRClient != null && dMSCRProtocol != null)
     {
         dmSCRClient.Send(dMSCRProtocol.makeMessage());
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 获取一个时间段的预约情况
        /// </summary>
        /// <param name="deviceId"></param>
        /// <returns></returns>
        public string getCalendarBookingJSON(string deviceId, DMSCRProtocol dMSCRProtocol)
        {
            string month = dMSCRProtocol.getMonth();

            string[] fl   = DateArrayHandle.GetMMFirstAndLast(month);
            string   json = GetURLWebAPI(_LIMSBookURL, "/getPeriod/" + deviceId + "/" + fl[0] + "/" + fl[1]);

            //
            //string json = TestData.;
            return(json);
        }
Esempio n. 3
0
        public DMSCRProtocol getHelpDataRep(string deviceId, DMSCRProtocol dMSCRProtocol, DMClient dmSCRClient)
        {
            //string com = dMSCRProtocol.otherInfo[0];
            DMSCRProtocol repProtocol;

            repProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)COMMAND.REP_SCR_HELP, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));
            //返回卡:设备所属单位,设备和仪器编号,联系人姓名和电话
            string[] info = new string[4];
            info[0] = _dMServerMainThread.DMEnterprise;
            info[1] = _dMServerMainThread.DMSystemName;
            info[2] = _dMServerMainThread.DMContact;
            info[3] = _dMServerMainThread.DMContactPhone;
            info    = repProtocol.replaceComma(info);
            repProtocol.OtherInfo = info;
            return(repProtocol);
        }
Esempio n. 4
0
        /// <summary>
        /// 获取一天的预约数据
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="dMSCRProtocol"></param>
        /// <returns></returns>
        public string getBookingByDateJSON(string deviceId, DMSCRProtocol dMSCRProtocol)
        {
            string day = dMSCRProtocol.getDay();

            try
            {
                var    dayTime = DateTime.ParseExact(day, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
                string json    = GetURLWebAPI(_LIMSBookURL, "/getDayByStart/" + deviceId + "/" + dayTime.ToString("yyyy-MM-dd"));
                return(json);
            }
            catch (Exception ex)
            {
                writeLog(deviceId, ex.Message, " URL:" + _LIMSBookURL + "/getDayByStart/" + deviceId + "  day:" + day);
                return("[]");
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 返回以卡查人
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="dMSCRProtocol"></param>
        /// <param name="dmSCRClient"></param>
        /// <returns></returns>
        public DMSCRProtocol getUserDataRep(string deviceId, DMSCRProtocol dMSCRProtocol, DMClient dmSCRClient)
        {
            string      json;
            SCRUserinfo userinfo;

            try
            {
                json     = GetURLWebAPI(_LIMSBookURL, "/selectUserByCard/" + dMSCRProtocol.Card);
                userinfo = JsonSerializer.Deserialize <SCRUserinfo>(json);
            }
            catch (Exception ex)
            {
                writeLog(ex.Message, "人员信息获取端口失败");
                userinfo                = new SCRUserinfo();
                userinfo.userName       = "******";
                userinfo.phonenumber    = "";
                userinfo.instrumentName = "";
                userinfo.bookingStart   = "";
            }
            if (string.IsNullOrEmpty(userinfo.userName))
            {
                userinfo.userName       = "******";
                userinfo.phonenumber    = "";
                userinfo.instrumentName = "";
                userinfo.bookingStart   = "";
            }
            else if (userinfo.userName.Equals("null"))
            {
                userinfo.userName       = "******";
                userinfo.phonenumber    = "";
                userinfo.instrumentName = "";
                userinfo.bookingStart   = "";
            }
            //string com = dMSCRProtocol.otherInfo[0];
            DMSCRProtocol repProtocol;

            repProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)COMMAND.REP_SCR_USERINFO, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));
            //返回卡:设备所属单位,设备和仪器编号,联系人姓名和电话
            string[] info = new string[4];
            info[0] = userinfo.userName;               // "王鑫";
            info[1] = "电话:" + userinfo.phonenumber;    // "13810010112";
            info[2] = "预约:" + userinfo.instrumentName; // "测试预约设备";
            info[3] = "时间:" + userinfo.bookingStart;   // "2021-12-30 11:30";
            info    = repProtocol.replaceComma(info);
            repProtocol.OtherInfo = info;
            return(repProtocol);
        }
Esempio n. 6
0
        /// <summary>
        /// 提交预约数据 向 LIMS
        /// </summary>
        /// <param name="protocol"></param>
        /// <returns></returns>
        public string submitBooking(DMSCRProtocol protocol)
        {
            SCRSubmitBooking booking = new SCRSubmitBooking()
            {
                deviceId      = protocol.DeviceID,
                serviceWay    = protocol.OtherInfo[0],
                subjectIncome = protocol.OtherInfo[1],
                subjectArea   = protocol.OtherInfo[2],
                serviceType   = protocol.OtherInfo[3],
                cardId        = protocol.OtherInfo[4],
                bookingStart  = protocol.OtherInfo[5],
                bookingEnd    = protocol.OtherInfo[6]
            };

            foreach (string s in protocol.OtherInfo)
            {
                Console.WriteLine(s); if (s == null)
                {
                    break;
                }
            }

            return(submitBooking(booking));
        }
Esempio n. 7
0
        /// <summary>
        /// 获取基础数据
        /// </summary>
        /// <returns></returns>
        public DMSCRProtocol getBasicDataRep(string deviceId, DMSCRProtocol dMSCRProtocol, DMClient dmSCRClient)
        {
            string        com = dMSCRProtocol.OtherInfo[0];
            string        dataJson0;
            int           i = 1;
            DMSCRProtocol repProtocol;

            repProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)COMMAND.REP_SCR_BOOK_INFO, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));



            switch (com)
            {
            case "01":

                List <SCRServiceType> types;
                try
                {
                    dataJson0 = GetURLWebAPI(_LIMSBookURL, "/getServiceType/" + deviceId);
                    types     = JsonSerializer.Deserialize <List <SCRServiceType> >(dataJson0);
                }
                catch (Exception ex)
                {
                    writeLog(ex.Message, "GetURLWebAPI getServiceType");
                    dataJson0 = TestData.ServiceTypes;
                    types     = JsonSerializer.Deserialize <List <SCRServiceType> >(dataJson0);
                }

                repProtocol.OtherInfo    = new string[types.Count + 1];
                repProtocol.OtherInfo[0] = com;
                foreach (var t in types)
                {
                    repProtocol.OtherInfo[i] = t.serviceType;
                    i++;
                }
                //repProtocol.makeMessage();
                return(repProtocol);

                break;

            case "02":
                List <SCRSubjectIncome> incomes;
                try
                {
                    dataJson0 = GetURLWebAPI(_LIMSBookURL, "/getSubjectIncome/" + deviceId);
                    incomes   = JsonSerializer.Deserialize <List <SCRSubjectIncome> >(dataJson0);
                }
                catch (Exception ex)
                {
                    writeLog(ex.Message, "GetURLWebAPI getSubjectIncome");
                    dataJson0 = TestData.SubjectIncomes;
                    incomes   = JsonSerializer.Deserialize <List <SCRSubjectIncome> >(dataJson0);
                }

                repProtocol.OtherInfo    = new string[incomes.Count + 1];
                repProtocol.OtherInfo[0] = com;
                foreach (var income in incomes)
                {
                    repProtocol.OtherInfo[i] = income.subjectIncome;
                    i++;
                }
                //repProtocol.makeMessage();
                return(repProtocol);

                break;

            case "03":
                List <SCRServiceDirection> directions;
                try
                {
                    dataJson0  = GetURLWebAPI(_LIMSBookURL, "/getServiceWay/" + deviceId);
                    directions = JsonSerializer.Deserialize <List <SCRServiceDirection> >(dataJson0);
                }
                catch (Exception ex)
                {
                    writeLog(ex.Message, "GetURLWebAPI getServiceWay");
                    dataJson0  = TestData.ServiceDirections;
                    directions = JsonSerializer.Deserialize <List <SCRServiceDirection> >(dataJson0);
                }

                repProtocol.OtherInfo    = new string[directions.Count + 1];
                repProtocol.OtherInfo[0] = com;
                foreach (var direction in directions)
                {
                    repProtocol.OtherInfo[i] = direction.serviceDirection;
                    i++;
                }
                //repProtocol.makeMessage();
                return(repProtocol);

                break;
            }
            return(null);
        }
Esempio n. 8
0
        /// <summary>
        /// 处理SCR数据 暂时越过
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="command"></param>
        /// <returns></returns>
        public string HandleServerMessage(string deviceId, COMMAND command, DMClient dmSCRClient, DMSCRProtocol dMSCRProtocol)
        {
            string jsonResult0 = "";
            string jsonResult1 = "";

            switch (command)
            {
            case COMMAND.SCR_DEV_INFO:    //11
                //响应获取仪器信息
                jsonResult0 = getInstrumentInformationJSON(deviceId);
                SendReplyToSCRClient(COMMAND.REP_SCR_DEV_INFO, dmSCRClient, jsonResult0);
                break;

            case COMMAND.SCR_STATE_BOOK:    //12
                //响应获取仪器状态和未来的预约情况 test
                //jsonResult0 = TestData.InstrumentStatus;
                //jsonResult1 = TestData.InstrumentFutureStatus;

                try
                {
                    jsonResult0 = GetURLWebAPI(_LIMSBookURL, "/getInstrumentStatus/" + deviceId);
                    jsonResult1 = GetURLWebAPI(_LIMSBookURL, "/getInstrumentFutureStatus/" + deviceId);     //12月没返回数据 webapi要改
                    if (string.IsNullOrEmpty(dmSCRClient.InstrumentName))
                    {
                        SCRInstrumentInformation dataIn = getInstrumentInformation(dmSCRClient.DeviceID);
                        dmSCRClient.InstrumentName    = dataIn.cname;
                        dmSCRClient.InstrumentVersion = dataIn.instrVersion;
                    }
                    SendReplyToSCRClient(COMMAND.REP_SCR_STATE_BOOK, dmSCRClient, jsonResult0, jsonResult1);
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "SCR_STATE_BOOK");
                }
                break;

            case COMMAND.SCR_BOOK_CALENDAR:    //15
                //响应仪器日历情况
                //jsonResult0 = TestData.InstrumentCalendar;
                jsonResult0 = getCalendarBookingJSON(deviceId, dMSCRProtocol);

                SendReplyToSCRClient(COMMAND.REP_SCR_BOOK_CALENDAR, dmSCRClient, jsonResult0);

                break;

            case COMMAND.SCR_BOOK_DATE:    //16
                //当天预约查询
                //jsonResult0 = TestData.InstrumentDayBooking;
                jsonResult0 = getBookingByDateJSON(deviceId, dMSCRProtocol);
                SendReplyToSCRClient(COMMAND.REP_SCR_BOOK_DATE, dmSCRClient, jsonResult0);
                break;

            case COMMAND.SCR_BOOK_INFO:
                //响应获取预约基础数据
                try
                {
                    DMSCRProtocol rep = getBasicDataRep(deviceId, dMSCRProtocol, dmSCRClient);
                    SendReplyToSCRClient(dmSCRClient, rep);
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "SCR_BOOK_INFO");
                }
                break;

            case COMMAND.SCR_BOOKING:
                //提交预约
                //string json = GetURLWebAPI(_LIMSBookURL, "agreed/getInstrumentInformation/" + deviceId);
                jsonResult0 = submitBooking(dMSCRProtocol);
                SendReplyToSCRClient(COMMAND.REP_SCR_BOOKING, dmSCRClient, jsonResult0);
                break;

            case COMMAND.SCR_HELP:
                //获取帮助
                try
                {
                    DMSCRProtocol rep = getHelpDataRep(deviceId, dMSCRProtocol, dmSCRClient);
                    SendReplyToSCRClient(dmSCRClient, rep);
                }
                catch (Exception ex) {
                    writeLog(dmSCRClient, ex.Message, "SCR_HELP");
                }
                break;

            case COMMAND.SCR_USERINFO:    //19
                //获取用户数据
                try
                {
                    DMSCRProtocol rep = getUserDataRep(deviceId, dMSCRProtocol, dmSCRClient);
                    SendReplyToSCRClient(dmSCRClient, rep);
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "SCR_USERINFO");
                }
                break;
            }
            return("");
        }
Esempio n. 9
0
        /// <summary>
        /// 提交预约数据等 后回复设备
        /// </summary>
        /// <param name="command"></param>
        /// <param name="dmSCRClient"></param>
        /// <param name="jsonResult0"></param>
        /// <param name="jsonResult1"></param>
        public void SendReplyToSCRClient(COMMAND command, DMClient dmSCRClient, string jsonResult0, string jsonResult1 = null)
        {
            DMSCRProtocol dMSCRProtocol;

            switch (command)
            {
            //仪器信息
            case COMMAND.REP_SCR_DEV_INFO:    //51
                dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                try
                {
                    SCRInstrumentInformation data = JsonSerializer.Deserialize <SCRInstrumentInformation>(jsonResult0);
                    dMSCRProtocol.setSCRInstrumentInformation(data);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_DEV_INFO故障");
                }
                break;

            //回复屏幕首页信息
            case COMMAND.REP_SCR_STATE_BOOK:    //52
                try
                {
                    dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));
                    SCRInstrumentStatus       status       = JsonSerializer.Deserialize <SCRInstrumentStatus>(jsonResult0);
                    SCRInstrumentFutureStatus futureStatus = new SCRInstrumentFutureStatus()
                    {
                        bookingStart = "",
                        phonenumber  = "",
                        userName     = ""
                    };
                    if (!string.IsNullOrEmpty(jsonResult1))
                    {
                        futureStatus = JsonSerializer.Deserialize <SCRInstrumentFutureStatus>(jsonResult1);
                    }
                    dMSCRProtocol.setSCRInstrumentStatusAndFutureStatus(dmSCRClient.InstrumentName, status, futureStatus);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_STATE_BOOK");
                }
                break;

            case COMMAND.REP_SCR_BOOK_CALENDAR:
                try
                {
                    List <SCRBookingPeriod> periodList = JsonSerializer.Deserialize <List <SCRBookingPeriod> >(jsonResult0);
                    dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                    dMSCRProtocol.setSCRCalendar(periodList);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_BOOK_CALENDAR");
                }
                break;

            case COMMAND.REP_SCR_BOOK_DATE:    //56
                try
                {
                    List <SCRBookingByDayInformation> bookingList = JsonSerializer.Deserialize <List <SCRBookingByDayInformation> >(jsonResult0);
                    dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                    dMSCRProtocol.setSCRBookings(bookingList);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_BOOK_DATE");
                }
                break;

            case COMMAND.REP_SCR_BOOKING:
                dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                try
                {
                    SCRBookingREP scrBookingREP = JsonSerializer.Deserialize <SCRBookingREP>(jsonResult0);
                    if (scrBookingREP.code == 500)
                    {
                        if (scrBookingREP.msg.Length > 16)
                        {
                            dMSCRProtocol.setSCRBookingResult(scrBookingREP.msg.Substring(0, 15));
                        }
                        else
                        {
                            dMSCRProtocol.setSCRBookingResult(scrBookingREP.msg);
                        }
                    }
                    else
                    {
                        dMSCRProtocol.setSCRBookingResult(scrBookingREP.msg);
                    }
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_BOOKING");
                    if (jsonResult0.Length > 16)
                    {
                        dMSCRProtocol.setSCRBookingResult(jsonResult0.Substring(0, 15));
                    }
                    else
                    {
                        dMSCRProtocol.setSCRBookingResult(jsonResult0);
                    }
                }
                dmSCRClient.Send(dMSCRProtocol.makeMessage());
                break;
            }
        }