示例#1
0
 public XIMWrapper(string xim)
 {
     XIMDocument = xim;
     GUIDList    = new List <string>();
     if (XIMDocument == null)
     {
         return;
     }
     XIMDocument = XIMDocument.Replace(XIMTransformHelper.TransactionID, XIMTransformHelper.GetTransactionID());
 }
示例#2
0
        private bool SaveSetting()
        {
            _message.MappingList.Clear();
            List <XIMMappingItem> list = _listViewCtrl.GetCurrentList();

            foreach (XIMMappingItem i in list)
            {
                _message.MappingList.Add(i);
            }

            _message.GWEventType  = _gwEventCtrl.Value;
            _message.HL7EventType = _hl7EventCtrl.Value;
            XIMTransformHelper.RefreshXSLFileName(_message);
            return(true);
        }
示例#3
0
        internal static void PreLoading()
        {
            Log = new Logging(Application.StartupPath + "\\XIMOutbound.log");
            LoggingHelper.EnableApplicationLogging(Log);
            LoggingHelper.EnableXmlLogging(Log);
            Log.WriteAppStart(AppName);

            ConfigMgt          = new XIMOutboundConfigMgt();
            ConfigMgt.FileName = Application.StartupPath + "\\" + ConfigMgt.FileName;
            if (ConfigMgt.Load())
            {
                Log.Write("Load config succeeded. " + ConfigMgt.FileName);
            }
            else
            {
                Log.Write(LogType.Error, "Load config failed. " + ConfigMgt.FileName);
                ConfigMgt.Config = new XIMOutboundConfig();
                ConfigMgt.Save();
            }

            XIMTransformHelper.EnableXSLTLogging(Log);
            SocketHelper.EnableSocketLogging(Log, ConfigMgt.Config.DumpSocketData);
        }
示例#4
0
        private bool _entity_OnRequest(string receiveData, ref string sendData)
        {
            //receiveData = SocketHelper.DeleteEOF(receiveData, _entity.Config.ReceiveEndSign);
            //sendData = receiveData.Replace('#', '$');
            //return;

            //using (StreamWriter sw = File.CreateText("d:\\msg.txt"))
            //{
            //    sw.Write(receiveData);
            //}

            string msgContent = XIMServerHelper.GetMessageContent(receiveData);

            if (msgContent == null || msgContent.Length < 1)
            {
                string strErrMsg = "Request message does not exist in request data";
                Program.Log.Write(LogType.Warning, strErrMsg, XIMServerHelper.ModuleName);
                sendData = XIMServerHelper.GetResponseFailed(XIMTransformHelper.GetTransactionID(), strErrMsg, Program.ConfigMgt.Config.SocketConfig);
                return(false);
            }

            string            strName          = "";
            string            strQualifier     = "";
            string            strTransactionID = "";
            XIMInboundMessage msgConfig        = XIMServerHelper.GetMessageConfiguration(msgContent, ref strName, ref strQualifier, ref strTransactionID);

            if (msgConfig == null)
            {
                string strErrMsg = "Cannot find mapping rule configuration for current message (Name:" + strName + ", Qualifier:" + strQualifier + ").";
                Program.Log.Write(LogType.Warning, strErrMsg, XIMServerHelper.ModuleName);
                sendData = XIMServerHelper.GetResponseFailed(strTransactionID, strErrMsg, Program.ConfigMgt.Config.SocketConfig);
                return(false);
            }

            XMLTransformer transformer = XMLTransformer.CreateFromMessage(msgConfig);

            if (msgConfig == null)
            {
                string strErrMsg = "Cannot find mapping XSL file for current message (XSL File:" + msgConfig.XSLFileName + ").";
                Program.Log.Write(LogType.Warning, strErrMsg, XIMServerHelper.ModuleName);
                sendData = XIMServerHelper.GetResponseFailed(strTransactionID, strErrMsg, Program.ConfigMgt.Config.SocketConfig);
                return(false);
            }

            List <XmlNode> nodeList = new List <XmlNode>();

            XIMServerHelper.SplitItem(nodeList, msgContent);
            Program.Log.Write(nodeList.Count.ToString() + " XIM Item(s) are found in request message", XIMServerHelper.ModuleName);
            XIMServerHelper.SplitProcedureStep(nodeList);
            Program.Log.Write(nodeList.Count.ToString() + " XIM Item(s) splited by SPS are found in request message", XIMServerHelper.ModuleName);

            if (nodeList.Count > 0)
            {
                string[] dataSetXmlList = XIMServerHelper.Transform(transformer, nodeList);
                DataSet  dataSet        = XIMServerHelper.CreateDataSet(dataSetXmlList);
                if (dataSet == null)
                {
                    string strErrMsg = "Failed to transform to Data Set for current message.";
                    Program.Log.Write(LogType.Warning, strErrMsg, XIMServerHelper.ModuleName);
                    sendData = XIMServerHelper.GetResponseFailed(strTransactionID, strErrMsg, Program.ConfigMgt.Config.SocketConfig);
                    return(false);
                }

                if (_service.SaveData(msgConfig.Rule, dataSet))
                {
                    Program.Log.Write("Save to GC Gateway database succeeded.");
                    sendData = XIMServerHelper.GetResponseSuccess(strTransactionID, Program.ConfigMgt.Config.SocketConfig);
                    return(true);
                }
                else
                {
                    string strErrMsg = "Save to GC Gateway database failed.";
                    Program.Log.Write(LogType.Error, strErrMsg, XIMServerHelper.ModuleName);
                    sendData = XIMServerHelper.GetResponseFailed(strTransactionID, strErrMsg, Program.ConfigMgt.Config.SocketConfig);
                    return(false);
                }
            }

            return(false);
        }