コード例 #1
0
        private EntityNamePartQualifier GetQualifier(ParseContext context, XmlElement element, XmlToModelResult xmlToModelResult)
        {
            EntityNamePartQualifier result = null;

            if (element.HasAttribute(AbstractNameR2ElementParser <V> .QUALIFIER_ATTRIBUTE))
            {
                string qualifierString = GetAttributeValue(element, AbstractNameR2ElementParser <V> .QUALIFIER_ATTRIBUTE);
                if (StringUtils.IsNotBlank(qualifierString))
                {
                    EntityNamePartQualifier qualifier = CodeResolverRegistry.Lookup <EntityNamePartQualifier>(qualifierString);
                    if (qualifier == null)
                    {
                        RecordError("Invalid qualifier detected in name part: " + qualifierString, element, xmlToModelResult);
                    }
                    result = qualifier;
                    if (StringUtils.Equals("PN", context.Type) && StringUtils.Equals(Ca.Infoway.Messagebuilder.Domainvalue.Basic.EntityNamePartQualifier
                                                                                     .LEGALSTATUS.CodeValue, qualifierString))
                    {
                        RecordError("Invalid qualifier for PN name part: " + qualifierString, element, xmlToModelResult);
                    }
                }
                else
                {
                    RecordError("Qualifier may not be blank.", element, xmlToModelResult);
                }
            }
            return(result);
        }
コード例 #2
0
 private static void PopulateStandardValuesV01(ControlActEventBean controlActEvent)
 {
     controlActEvent.EventId       = new Identifier("2.16.840.1.113883.1.6", "8141234");
     controlActEvent.StatusCode    = CodeResolverRegistry.Lookup <ActStatus>("new");
     controlActEvent.EffectiveTime = EFFECTIVE_TIME;
     controlActEvent.Author        = CreateAuthorV01();
 }
コード例 #3
0
 /// <exception cref="Ca.Infoway.Messagebuilder.Marshalling.HL7.XmlToModelTransformationException"></exception>
 private void HandlePersonName(XmlToModelResult xmlToModelResult, PersonName result, XmlNodeList childNodes)
 {
     foreach (XmlNode childNode in new XmlNodeListIterable(childNodes))
     {
         if (childNode is XmlElement)
         {
             XmlElement element                = (XmlElement)childNode;
             string     name                   = NodeUtil.GetLocalOrTagName(element);
             string     value                  = GetTextValue(element, xmlToModelResult);
             string     qualifierString        = GetAttributeValue(element, NAME_PART_TYPE_QUALIFIER);
             EntityNamePartQualifier qualifier = CodeResolverRegistry.Lookup <EntityNamePartQualifier>(qualifierString);
             if (StringUtils.IsNotBlank(value))
             {
                 result.AddNamePart(new EntityNamePart(value, GetPersonalNamePartType(name), qualifier));
             }
         }
         else
         {
             //GN: Added in fix similar to what was done for AD.BASIC.  Issue with XML containing mixture of elements and untyped text nodes.
             if (IsNonBlankTextNode(childNode))
             {
                 // validation will catch if this type does not allow for a free-form name
                 result.AddNamePart(new EntityNamePart(childNode.Value.Trim(), null));
             }
         }
     }
 }
コード例 #4
0
        public virtual NullFlavor ParseNullNode()
        {
            string     attributeValue = GetAttributeValue(node, NULL_FLAVOR_ATTRIBUTE_NAME);
            NullFlavor nullFlavor     = CodeResolverRegistry.Lookup <NullFlavor>(attributeValue);

            if (ConformanceLevelUtil.IsMandatory(this.conformanceLevel, null))
            {
                xmlToModelResult.AddHl7Error(Hl7Error.CreateMandatoryAttributeIsNullError(NodeUtil.GetLocalOrTagName((XmlElement)node), GetAttributeValue
                                                                                              (node, NULL_FLAVOR_ATTRIBUTE_NAME), (XmlElement)node));
            }
            else
            {
                //      RM #15431 - strictly speaking, nullFlavors are not allowed for REQUIRED fields. However, jurisdictions often ignore this restriction.
                //      FIXME:  TM (see RM18424) - once MB has error levels implemented, this can be reinstated as a warning
                //		} else if (this.conformanceLevel != null && this.conformanceLevel == ConformanceLevel.REQUIRED) {
                //			xmlToModelResult.addHl7Error(Hl7Error.createRequiredAttributeIsNullError(
                //					NodeUtil.getLocalOrTagName((Element) node),
                //					getAttributeValue(node, NULL_FLAVOR_ATTRIBUTE_NAME),
                //					(Element) node));
                if (this.isAssociation && !StringUtils.Equals(GetAttributeValue(node, NULL_FLAVOR_XSI_NIL_ATTRIBUTE_NAME), "true"))
                {
                    if (!Ca.Infoway.Messagebuilder.BooleanUtils.ValueOf(Runtime.GetProperty(Ca.Infoway.Messagebuilder.Marshalling.HL7.Parser.NullFlavorHelper
                                                                                            .MB_SUPPRESS_XSI_NIL_ON_NULLFLAVOR)))
                    {
                        xmlToModelResult.AddHl7Error(Hl7Error.CreateNullFlavorMissingXsiNilError(NodeUtil.GetLocalOrTagName((XmlElement)node), (XmlElement
                                                                                                                                                )node));
                    }
                }
            }
            return(nullFlavor);
        }
コード例 #5
0
        private Code GetCode(Type returnType, string codeValue, string codeSystem)
        {
            CodeResolver resolver = CodeResolverRegistry.GetResolver(returnType);

            return(StringUtils.IsBlank(codeSystem) ? resolver.Lookup <Code>(returnType, codeValue) : resolver.Lookup <Code>(returnType,
                                                                                                                            codeValue, codeSystem));
        }
コード例 #6
0
 public virtual void SetUp()
 {
     MockMessageBeanRegistry.Initialize();
     CodeResolverRegistry.Register(new TrivialCodeResolver());
     this.transformer = new MessageBeanTransformerImpl(new MockTestCaseMessageDefinitionService(), RenderMode.PERMISSIVE);
     this.factory     = new DocumentFactory();
 }
コード例 #7
0
 public virtual void SetUp()
 {
     MockMessageBeanRegistry.Initialize();
     DefaultCodeResolutionConfigurator.ConfigureCodeResolversWithTrivialDefault();
     CodeResolverRegistry.Register(new TrivialCodeResolver());
     this.service = new MockTestCaseMessageDefinitionService();
 }
コード例 #8
0
        private ICollection <Ca.Infoway.Messagebuilder.Domainvalue.PostalAddressUse> GetNameUses(string nameUseAttribute, XmlNode
                                                                                                 node, XmlToModelResult xmlToModelResult)
        {
            ICollection <Ca.Infoway.Messagebuilder.Domainvalue.PostalAddressUse> uses = CollUtils.SynchronizedSet(new LinkedSet <Ca.Infoway.Messagebuilder.Domainvalue.PostalAddressUse
                                                                                                                                 >());

            if (nameUseAttribute != null)
            {
                StringTokenizer tokenizer = new StringTokenizer(nameUseAttribute);
                while (tokenizer.HasMoreElements())
                {
                    string token = tokenizer.NextToken();
                    x_BasicPostalAddressUse postalAddressUse = CodeResolverRegistry.Lookup <x_BasicPostalAddressUse>(token);
                    if (postalAddressUse == null)
                    {
                        // error if a use is not found
                        RecordError("PostalAddressUse '" + token + "' is not valid", (XmlElement)node, xmlToModelResult);
                    }
                    else
                    {
                        uses.Add(postalAddressUse);
                    }
                }
            }
            return(uses);
        }
コード例 #9
0
        private static SeverityObservationBean CreateSeverityObservation()
        {
            SeverityObservationBean severityObservation = new SeverityObservationBean();

            severityObservation.SetCode(CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.ActCode>("DX"));
            severityObservation.SetStatusCode(CodeResolverRegistry.Lookup <ActStatus>("NORMAL"));
            return(severityObservation);
        }
コード例 #10
0
 public static void PopulateDetectedIssue(DetectedIssueBean detectedIssue)
 {
     detectedIssue.SetCode(CodeResolverRegistry.Lookup <ActDetectedIssueCode>("VALIDAT"));
     detectedIssue.SetPriorityCode(CodeResolverRegistry.Lookup <ActIssuePriority>("I"));
     detectedIssue.SetStatusCode(CodeResolverRegistry.Lookup <ActStatus>("NORMAL"));
     detectedIssue.SetText("patient not found");
     detectedIssue.SetSeverityObservation(CreateSeverityObservation());
 }
コード例 #11
0
 public virtual void SetUp()
 {
     MockMessageBeanRegistry.Initialize();
     CodeResolverRegistry.Register(new TrivialCodeResolver());
     this.document      = GetSourceDocument();
     this.service       = new MockTestCaseMessageDefinitionService();
     this.messageSource = new Hl7MessageSource(MockVersionNumber.MOCK_NEWFOUNDLAND, this.document, null, null, service);
 }
コード例 #12
0
 public override void SetUp()
 {
     base.SetUp();
     this.result = new XmlToModelResult();
     this.parser = new IvlTsElementParser();
     CodeResolverRegistry.RegisterResolver(typeof(x_TimeUnitsOfMeasure), new EnumBasedCodeResolver(typeof(Ca.Infoway.Messagebuilder.Domainvalue.Basic.DefaultTimeUnit
                                                                                                          )));
 }
コード例 #13
0
        public virtual void ShouldCopyOriginalTextFromCVImplObjectToBean()
        {
            BeanD       beanD   = new BeanD();
            BeanWrapper wrapper = new BeanWrapper(beanD);
            CVImpl      cvImpl  = new CVImpl(CodeResolverRegistry.Lookup <IntoleranceValue>("CODE"));

            cvImpl.OriginalText = ORIGINAL_TEXT;
            wrapper.Write(new Relationship("value", "CV", Cardinality.Create("0-1")), cvImpl);
            Assert.AreEqual(ORIGINAL_TEXT, ((CV)beanD.GetField("someCode")).OriginalText, "originalText");
        }
コード例 #14
0
        internal static object GetFixedValue(Relationship relationship, VersionNumber version, bool isR2, Hl7Errors errors, string
                                             propertyPath)
        {
            string fixedValue = relationship.FixedValue;

            if (StringUtils.Equals("BL", relationship.Type))
            {
                return(true.ToString().EqualsIgnoreCase(fixedValue));
            }
            else
            {
                if (StringUtils.Equals("INT.POS", relationship.Type))
                {
                    return(System.Convert.ToInt32(fixedValue));
                }
                else
                {
                    if (StringUtils.Equals("ST", relationship.Type))
                    {
                        return(fixedValue);
                    }
                    else
                    {
                        if (relationship.CodedType)
                        {
                            Type codeType = DomainTypeHelper.GetReturnType(relationship, version, CodeTypeRegistry.GetInstance());
                            if (codeType == null)
                            {
                                codeType = typeof(Code);
                            }
                            Code code = CodeResolverRegistry.Lookup(codeType, fixedValue);
                            if (code == null)
                            {
                                string message = System.String.Format("Fixed code lookup could not find match for {0}.{1}", relationship.DomainType, fixedValue
                                                                      );
                                errors.AddHl7Error(new Hl7Error(Hl7ErrorCode.VALUE_NOT_IN_CODE_SYSTEM, ErrorLevel.WARNING, message, propertyPath));
                            }
                            //Fixup for .NET
                            if (isR2)
                            {
                                return(code == null ? null : new CodedTypeR2 <Code>(code));
                            }
                            else
                            {
                                return(code);
                            }
                        }
                        else
                        {
                            throw new MarshallingException("Cannot handle a fixed relationship of type: " + relationship.Type);
                        }
                    }
                }
            }
        }
コード例 #15
0
        public static void PopulateStandardValues(ControlActEventBean controlActEvent)
        {
            controlActEvent.EventId       = new Identifier("2.16.840.1.113883.1.6", "8141234");
            controlActEvent.StatusCode    = CodeResolverRegistry.Lookup <ActStatus>("new");
            controlActEvent.EffectiveTime = EFFECTIVE_TIME;
            controlActEvent.Author        = CreateAuthorV01();
            ServiceDeliveryLocationBean location = new ServiceDeliveryLocationBean();

            PopulateLocation(location);
            controlActEvent.Location = location;
        }
        private CodedTypeR2 <ConsultDocumentType> GetLoincCode()
        {
            ConsultDocumentType code = CodeResolverRegistry.Lookup <ConsultDocumentType>(typeof(ConsultDocumentType), "11488-4", "2.16.840.1.113883.6.1");

            CodedTypeR2 <ConsultDocumentType> loincCode = new CodedTypeR2 <ConsultDocumentType>();

            loincCode.Code           = code;
            loincCode.CodeSystemName = "LOINC";
            loincCode.DisplayName    = "ConsultationNote";

            return(loincCode);
        }
コード例 #17
0
        private object ResolveCodeValue(Relationship relationship, string attributeValue, VersionNumber version, bool isR2)
        {
            Type   returnType = (Type)DomainTypeHelper.GetReturnType(relationship, version, CodeTypeRegistry.GetInstance());
            Code   codeLookup = CodeResolverRegistry.Lookup(returnType, attributeValue);
            object result     = codeLookup;

            if (isR2)
            {
                result = CodedTypeR2Helper.ConvertCodedTypeR2(new CodedTypeR2 <Code>(codeLookup), returnType);
            }
            return(result);
        }
コード例 #18
0
 public virtual void TearDown()
 {
     if (ignoredAsNotAllowedOriginalValue == null)
     {
         Runtime.ClearProperty(ConformanceLevelUtil.IGNORED_AS_NOT_ALLOWED);
     }
     else
     {
         Runtime.SetProperty(ConformanceLevelUtil.IGNORED_AS_NOT_ALLOWED, ignoredAsNotAllowedOriginalValue);
     }
     CodeResolverRegistry.UnregisterAll();
 }
コード例 #19
0
        public virtual void SetUp()
        {
            MockMessageBeanRegistry.Initialize();
            CodeResolverRegistry.Register(new TrivialCodeResolver());
            this.service  = new MockTestCaseMessageDefinitionService();
            this.document = GetSourceDocument();
            Hl7MessageSource rootSource = new Hl7MessageSource(MockVersionNumber.MOCK_NEWFOUNDLAND, document, null, null, this.service
                                                               );

            this.element    = document.DocumentElement;
            this.partSource = rootSource.CreatePartSource(CreateRelationship("MFMI_MT700711CA.Author"), element);
        }
コード例 #20
0
        private void ParseAddressUses(XmlNode node, TelecommunicationAddress result)
        {
            string addressUses = GetAttributeValue(node, "use");

            if (addressUses != null)
            {
                StringTokenizer tokenizer = new StringTokenizer(addressUses);
                while (tokenizer.HasMoreElements())
                {
                    result.AddAddressUse(CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.TelecommunicationAddressUse>(tokenizer
                                                                                                                                         .NextToken()));
                }
            }
        }
コード例 #21
0
        public virtual void SetUp()
        {
            MockMessageBeanRegistry.Initialize();
            CodeResolverRegistry.Register(new EnumBasedCodeResolver(typeof(Ca.Infoway.Messagebuilder.Domainvalue.Controlact.ActStatus
                                                                           )));
            CodeResolverRegistry.Register(new TrivialCodeResolver());
            this.service  = new MockTestCaseMessageDefinitionService();
            this.document = GetSourceDocument(XML);
            this.element  = this.document.DocumentElement;
            Hl7MessageSource rootSource = new Hl7MessageSource(MockVersionNumber.MOCK_NEWFOUNDLAND, this.document, null, null, this.service
                                                               );

            this.partSource = rootSource.CreatePartSource(CreateRelationship("MCCI_MT002100CA.Sender"), element);
        }
コード例 #22
0
        private TelecommunicationAddress ParseTelecommunicationAddress(XmlNode node, XmlToModelResult xmlToModelResult)
        {
            string value = GetAttributeValue(node, "value");

            if (StringUtils.IsBlank(value) && this.allowReference)
            {
                value = GetAttributeValue(node, "reference");
            }
            // remove the // that appear after the colon if necessary
            // e.g. file://monkey
            value = value == null ? null : System.Text.RegularExpressions.Regex.Replace(value, "://", ":");
            // anything before the FIRST colon is the URL scheme. Anything after it is the address.
            int    colonIndex = value == null ? -1 : value.IndexOf(':');
            string address    = null;

            Ca.Infoway.Messagebuilder.Domainvalue.URLScheme urlScheme = null;
            if (colonIndex == -1)
            {
                address = value;
            }
            else
            {
                address = Ca.Infoway.Messagebuilder.StringUtils.Substring(value, colonIndex + 1);
                string urlSchemeString = Ca.Infoway.Messagebuilder.StringUtils.Substring(value, 0, colonIndex);
                urlScheme = CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.URLScheme>(urlSchemeString);
                if (urlScheme == null)
                {
                    string message = "Unrecognized URL scheme '" + urlSchemeString + "' in element " + XmlDescriber.DescribePath(node);
                    xmlToModelResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.DATA_TYPE_ERROR, message, (XmlElement)node));
                }
            }
            TelecommunicationAddress result = new TelecommunicationAddress();

            result.Address   = address;
            result.UrlScheme = urlScheme;
            // handle address uses
            string addressUses = GetAttributeValue(node, "use");

            if (addressUses != null)
            {
                StringTokenizer tokenizer = new StringTokenizer(addressUses);
                while (tokenizer.HasMoreElements())
                {
                    result.AddAddressUse(CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.TelecommunicationAddressUse>(tokenizer
                                                                                                                                         .NextToken()));
                }
            }
            return(result);
        }
コード例 #23
0
 private Ca.Infoway.Messagebuilder.Domainvalue.Basic.Currency ValidateCurrency(string currencyCode, XmlNode node, XmlToModelResult
                                                                               xmlToModelResult)
 {
     if (StringUtils.IsBlank(currencyCode))
     {
         return(null);
     }
     // TM - the MB enum for currency is very limited
     Ca.Infoway.Messagebuilder.Domainvalue.Basic.Currency currency = CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.Basic.Currency
                                                                                                  >(currencyCode);
     if (currency == null)
     {
         RecordUnknownCurrencyError(currencyCode, node, xmlToModelResult);
     }
     return(currency);
 }
コード例 #24
0
        public virtual XmlToModelResult TransformFromHl7(VersionNumber version, XmlDocument hl7Message, TimeZoneInfo dateTimeZone
                                                         , TimeZoneInfo dateTimeTimeZone, GenericCodeResolverRegistry codeResolverRegistryOverride)
        {
            CodeResolverRegistry.SetThreadLocalVersion(version);
            CodeResolverRegistry.SetThreadLocalCodeResolverRegistryOverride(codeResolverRegistryOverride);
            XmlToModelResult result = new Hl7SourceMapper().MapToTeal(new Hl7MessageSource(version, hl7Message, dateTimeZone, dateTimeTimeZone
                                                                                           , this.service));

            if (this.performAdditionalCdaValidationWhenUnmarshalling)
            {
                PerformAdditionalCdaValidation(version, hl7Message, result);
            }
            CodeResolverRegistry.ClearThreadLocalVersion();
            CodeResolverRegistry.ClearThreadLocalCodeResolverRegistryOverride();
            return(result);
        }
コード例 #25
0
        private Code GetCode(Type expectedReturnType, string codeValue, string codeSystem)
        {
            CodeResolver resolver   = null;
            Type         returnType = null;

            if (typeof(ANY <object>).Equals(expectedReturnType))
            {
                // if the underlying datatype is an ANY, then we don't have enough information to figure out the domaintype; have to assume generic Code
                returnType = typeof(Code);
                resolver   = new TrivialCodeResolver();
            }
            else
            {
                returnType = GetReturnTypeAsCodeType(expectedReturnType);
                resolver   = CodeResolverRegistry.GetResolver(returnType);
            }
            return(StringUtils.IsBlank(codeSystem) ? resolver.Lookup <Code>(returnType, codeValue) : resolver.Lookup <Code>(returnType
                                                                                                                            , codeValue, codeSystem));
        }
コード例 #26
0
        public virtual void SetUp()
        {
            ignoredAsNotAllowedOriginalValue = Runtime.GetProperty(ConformanceLevelUtil.IGNORED_AS_NOT_ALLOWED);

            CodeResolverRegistry.RegisterResolver(typeof(ActStatus), new EnumBasedCodeResolver(typeof(Ca.Infoway.Messagebuilder.Domainvalue.Controlact.ActStatus
                                                                                                      )));
            CodeResolverRegistry.RegisterResolver(typeof(Realm), new EnumBasedCodeResolver(typeof(Domainvalue.Transport.Realm)));
            this.visitor         = new XmlRenderingVisitor(MockVersionNumber.MOCK_MR2009);
            this.partBridge      = new MockPartBridge();
            this.attributeBridge = new MockAttributeBridge("aPropertyName");
            this.interation      = new Interaction();
            this.interation.Name = "ABCD_IN123456CA";
            Argument argument = new Argument();

            argument.Name = "ABCD_MT987654CA.Baby";
            argument.TemplateParameterName = "act";
            argument.TraversalName         = "bambino";
            this.interation.Arguments.Add(argument);
        }
コード例 #27
0
        private void Setup()
        {
            //Standard configuration with HL7v3 code resolution
            DefaultCodeResolutionConfigurator.ConfigureCodeResolversWithTrivialDefault();

            //Separate configuration for CDA code resolution
            GenericCodeResolverRegistry cdaCodeResolverRegistry = new GenericCodeResolverRegistryImpl();

            Assembly cdaAssembly = Assembly.Load("message-builder-release-cda-ab-shr");

            cdaCodeResolverRegistry.Register(new CdaCodeResolver(
                                                 new TypedCodeFactory(),
                                                 ResourceLoader.GetResource(cdaAssembly, "/voc.xml"),
                                                 ResourceLoader.GetResource(cdaAssembly, "/vocabNameMap.xml"),
                                                 CdaCodeResolver.MODE_LENIENT
                                                 ));

            CodeResolverRegistry.RegisterCodeResolverRegistryForVersion(SpecificationVersion.CDA_AB_SHR, cdaCodeResolverRegistry);
        }
コード例 #28
0
        public virtual bool HasValidNullFlavorAttribute()
        {
            string attributeValue = GetAttributeValue(node, NULL_FLAVOR_ATTRIBUTE_NAME);

            if (attributeValue == null)
            {
                return(false);
            }
            else
            {
                if (StringUtils.IsEmpty(attributeValue) || CodeResolverRegistry.Lookup <NullFlavor>(attributeValue) == null)
                {
                    xmlToModelResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.VALUE_NOT_IN_CODE_SYSTEM, System.String.Format("The nullFavor attribute value \"{0}\" is not valid ({1})"
                                                                                                                          , attributeValue, XmlDescriber.DescribeSingleElement((XmlElement)node)), (XmlElement)node));
                    return(false);
                }
            }
            return(true);
        }
コード例 #29
0
        private TelecommunicationAddress ParseValue(XmlNode node, XmlToModelResult xmlToModelResult)
        {
            string value = GetAttributeValue(node, "value");

            if (StringUtils.IsBlank(value))
            {
                xmlToModelResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.DATA_TYPE_ERROR, "TEL elements must have a value or a nullFlavor."
                                                          , (XmlElement)node));
            }
            // remove the // that appear after the colon if necessary
            // e.g. file://monkey
            value = value == null ? null : System.Text.RegularExpressions.Regex.Replace(value, "://", ":");
            // anything before the FIRST colon is the URL scheme. Anything after it is the address.
            int    colonIndex = value == null ? -1 : value.IndexOf(':');
            string address    = null;

            Ca.Infoway.Messagebuilder.Domainvalue.URLScheme urlScheme = null;
            if (colonIndex == -1)
            {
                address = value;
            }
            else
            {
                address = Ca.Infoway.Messagebuilder.StringUtils.Substring(value, colonIndex + 1);
                string urlSchemeString = Ca.Infoway.Messagebuilder.StringUtils.Substring(value, 0, colonIndex);
                urlScheme = CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.URLScheme>(urlSchemeString);
                if (urlScheme == null)
                {
                    urlScheme = CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.URLScheme>(urlSchemeString.ToLower());
                    if (urlScheme == null)
                    {
                        string message = "Unrecognized URL scheme '" + urlSchemeString + "' in element " + XmlDescriber.DescribePath(node);
                        xmlToModelResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.DATA_TYPE_ERROR, message, (XmlElement)node));
                    }
                }
            }
            TelecommunicationAddress result = new TelecommunicationAddress();

            result.Address   = address;
            result.UrlScheme = urlScheme;
            return(result);
        }
コード例 #30
0
 public static void PopulateStandardValuesV01(NewBaseMessageBean bean)
 {
     bean.MessageIdentifier         = new Identifier("2.16.124.113620.1.1.1.1.2", "293844");
     bean.MessageTimestamp          = DateUtil.GetDate(2008, 5, 25, 14, 16, 10, 0);
     bean.ProcessingCode            = Ca.Infoway.Messagebuilder.Domainvalue.Transport.ProcessingID.PRODUCTION;
     bean.ProcessingMode            = Ca.Infoway.Messagebuilder.Domainvalue.Transport.ProcessingMode.CURRENT_PROCESSING;
     bean.ResponseType              = Ca.Infoway.Messagebuilder.Domainvalue.Transport.ResponseMode.IMMEDIATE;
     bean.DesiredAcknowledgmentType = Ca.Infoway.Messagebuilder.Domainvalue.Transport.AcknowledgementCondition.ALWAYS;
     bean.Receiver          = new Receiver();
     bean.Receiver.DeviceId = new Identifier("1.2.3", "123");
     bean.Receiver.SetTelecommunicationAddress(new TelecommunicationAddress(CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.URLScheme
                                                                                                         >("http"), "123.456.789.10"));
     bean.Sender          = new Sender();
     bean.Sender.DeviceId = new Identifier("1.2.3", "123");
     bean.Sender.ManufacturerModelNumber            = "1.0";
     bean.Sender.SoftwareName                       = "Panacea Pharmacy";
     bean.Sender.TelecommunicationAddress           = new TelecommunicationAddress();
     bean.Sender.TelecommunicationAddress.Address   = "987.654.321.0";
     bean.Sender.TelecommunicationAddress.UrlScheme = CodeResolverRegistry.Lookup <Ca.Infoway.Messagebuilder.Domainvalue.URLScheme
                                                                                   >("http");
 }