public virtual void ShouldRenderASimpleMessageWithTemplates() { FindCandidatesQueryMessageBean tealBean = new FindCandidatesQueryMessageBean(); tealBean.ControlActEventBean = new QueryControlActEventBean <FindCandidatesCriteria>(); tealBean.ControlActEventBean.QueryByParameter.ParameterList = new FindCandidatesCriteria(); MessageBeanBuilderSupport.PopulateMoreBetterStandardValues(tealBean); tealBean.ControlActEventBean.Code = Ca.Infoway.Messagebuilder.Domainvalue.Transport.HL7TriggerEventCode.FIND_CANDIDATES_QUERY; this.walker = new TealBeanRenderWalker(tealBean, MockVersionNumber.MOCK_MR2009, null, null, new MockTestCaseMessageDefinitionService ()); AuthorBean author = new AuthorBean(); author.Time = new PlatformDate(); author.Id = new Identifier("1.2.3.4", "authorExtension"); tealBean.ControlActEventBean.Author = author; tealBean.ControlActEventBean.QueryId = new Identifier(UUID.RandomUUID().ToString()); tealBean.ControlActEventBean.EventId = new Identifier(UUID.RandomUUID().ToString()); tealBean.ControlActEventBean.GetCriteria().Gender = Ca.Infoway.Messagebuilder.Domainvalue.Payload.AdministrativeGender.MALE; XmlRenderingVisitor visitor = new XmlRenderingVisitor(MockVersionNumber.MOCK_MR2009); this.walker.Accept(visitor); string xml = visitor.ToXml().GetXmlMessage(); System.Console.Out.WriteLine(xml); AssertValidHl7Message(xml); }
public virtual void ShouldRenderCompleteSolution() { FindCandidatesQueryMessageBean message = new FindCandidatesQueryMessageBean(); message.ControlActEventBean = new QueryControlActEventBean <FindCandidatesCriteria>(new FindCandidatesCriteria()); message.ControlActEventBean.GetCriteria().BirthDate = DateUtil.GetDate(1966, 0, 5); XmlRenderingVisitor visitor = new XmlRenderingVisitor(MockVersionNumber.MOCK_NEWFOUNDLAND); new TealBeanRenderWalker(message, MockVersionNumber.MOCK_NEWFOUNDLAND, null, null, this.service).Accept(visitor); System.Console.Out.WriteLine(visitor.ToXml().GetXmlMessage()); }
public virtual void ShouldRenderASimpleHl7Message() { GenericResponseMessageBean tealBean = new GenericResponseMessageBean(); MessageBeanBuilderSupport.PopulateMoreBetterStandardValues(tealBean); tealBean.Acknowledgement.AcknowledgementDetails.Add(CreateDetail(Ca.Infoway.Messagebuilder.Domainvalue.Transport.AcknowledgementDetailCode .SYNTAX_ERROR, "I hate you", Ca.Infoway.Messagebuilder.Domainvalue.Transport.AcknowledgementDetailType.ERROR)); tealBean.Acknowledgement.AcknowledgementDetails.Add(CreateDetail(Ca.Infoway.Messagebuilder.Domainvalue.Transport.AcknowledgementDetailCode .UNKNOWN_SENDER, "Unauthorized user", Ca.Infoway.Messagebuilder.Domainvalue.Transport.AcknowledgementDetailType.ERROR)); XmlRenderingVisitor visitor = new XmlRenderingVisitor(MockVersionNumber.MOCK_MR2009); this.walker = new TealBeanRenderWalker(tealBean, MockVersionNumber.MOCK_MR2009, null, null, new MockTestCaseMessageDefinitionService ()); this.walker.Accept(visitor); string xml = visitor.ToXml().GetXmlMessage(); System.Console.Out.WriteLine(xml); AssertValidHl7Message(xml); }
public virtual ModelToXmlResult TransformToHl7(VersionNumber version, IInteraction messageBean, TimeZoneInfo dateTimeZone , TimeZoneInfo dateTimeTimeZone, GenericCodeResolverRegistry codeResolverRegistryOverride) { CodeResolverRegistry.SetThreadLocalVersion(version); CodeResolverRegistry.SetThreadLocalCodeResolverRegistryOverride(codeResolverRegistryOverride); XmlRenderingVisitor visitor = new XmlRenderingVisitor(this.service.IsR2(version), this.service.IsCda(version), version); // TODO: Since the two boolean flags are derived from the version, we chould simplify this interface new TealBeanRenderWalker(messageBean, version, dateTimeZone, dateTimeTimeZone, this.service).Accept(visitor); CodeResolverRegistry.ClearThreadLocalVersion(); CodeResolverRegistry.ClearThreadLocalCodeResolverRegistryOverride(); ModelToXmlResult result = visitor.ToXml(); if (this.service.IsCda(version)) { PerformAdditionalCdaValidation(version, result.GetXmlMessage(), result); } if (!result.IsValid() && IsStrict()) { throw new InvalidRenderInputException(result.GetHl7Errors()); } return(result); }