Пример #1
0
 public HL7V2Controller(IBusinessEngine IBusinessEngine,
                        IBusinessEngineInput IBusinessEngineInput,
                        IOptions <IcimsSiteContext> IcimsSiteContext,
                        IBusinessEngineOutcome IBusinessOutcomeError,
                        ILogger <HL7V2Controller> ILogger)
 {
     this.IBusinessEngine       = IBusinessEngine;
     this.IBusinessEngineInput  = IBusinessEngineInput;
     this.IcimsSiteContext      = IcimsSiteContext;
     this.IBusinessOutcomeError = IBusinessOutcomeError;
     this.ILogger = ILogger;
 }
Пример #2
0
 public BusinessEngine(IOptions <IcimsSiteContext> IcimsSiteContext,
                       IBusinessEngineOutcome IBusinessOutcome,
                       IIcimsInterfaceModelMapper IIcimsInterfaceModelMapper,
                       IIcimsHttpClient IIcimsHttpClient,
                       ILogger <BusinessEngine> ILogger)
 {
     this.IcimsSiteContext           = IcimsSiteContext;
     this.IBusinessOutcome           = IBusinessOutcome;
     this.IIcimsInterfaceModelMapper = IIcimsInterfaceModelMapper;
     this.IIcimsHttpClient           = IIcimsHttpClient;
     this.ILogger = ILogger;
 }
Пример #3
0
        public ActionResult <IBusinessEngineOutcome> Post(MirthMessage MirthMessage)
        {
            //ILogger.LogTrace("Angus Did it work! Trace YES");
            //ILogger.LogDebug("Angus Did it work! Debug YES");
            //ILogger.LogError("Angus Did it work! Error YES");
            //ILogger.LogCritical("Angus Did it work! Critical YES");
            //ILogger.LogInformation("Angus Did it work! Info YES");
            //ILogger.LogWarning("Angus Did it work! Warning YES");
            IBusinessEngineOutcome IBusinessOutcome = null;

            try
            {
                IBusinessEngineInput.HL7V2Message = MirthMessage.HL7V2Message;
                IBusinessOutcome = IBusinessEngine.Process(IBusinessEngineInput);
                switch (IBusinessOutcome.StatusCode)
                {
                case Common.Models.BusinessModel.StatusCode.ok:
                    return(Ok(IBusinessOutcome));

                case Common.Models.BusinessModel.StatusCode.queue:
                    return(BadRequest(IBusinessOutcome));

                case Common.Models.BusinessModel.StatusCode.error:
                    return(BadRequest(IBusinessOutcome));

                default:
                    throw new System.ComponentModel.InvalidEnumArgumentException(IBusinessOutcome.StatusCode.GetLiteral(), (int)IBusinessOutcome.StatusCode, typeof(Common.Models.BusinessModel.StatusCode));
                }
            }
            catch (Exception Exec)
            {
                IBusinessOutcomeError.StatusCode    = Common.Models.BusinessModel.StatusCode.error;
                IBusinessOutcomeError.Message       = $"{IcimsSiteContext.Value.NameOfThisService}: Uncaught Exception: {Exec.Message}";
                IBusinessOutcomeError.IcimsResponse = null;
                ILogger.LogCritical(Exec, $"HL7 Msg: {MirthMessage.HL7V2Message}, Uncaught Exception: { Exec.Message}");
                return(BadRequest(IBusinessOutcomeError));
            }
        }