예제 #1
0
        public void WhenHealthvaultThingIsTransformedtoFhirDomainResource_ThenStateIsStoredInExtension()
        {
            var       activeState = ThingState.Active;
            ThingBase thing       = new Height(34.5); //By default thingstate is active. Use xml deserializer to create deleted thing

            IExtendable extendable = thing.ToFhir() as IExtendable;

            Assert.IsTrue(extendable.HasExtensions());
            Assert.AreEqual(activeState.ToString(), extendable.GetStringExtension(HealthVaultExtensions.StateFhirExtensionName));
        }
예제 #2
0
        public void WhenHealthvaultThingIsTransformedtoFhirDomainResource_ThenFlagsAreStoredInExtension()
        {
            var       readOnlyFlag = ThingFlags.ReadOnly;
            ThingBase thing        = new Height(34.5)
            {
                Flags = readOnlyFlag
            };

            IExtendable extendable = thing.ToFhir() as IExtendable;

            Assert.IsTrue(extendable.HasExtensions());
            Assert.AreEqual(readOnlyFlag.ToString(), extendable.GetStringExtension(HealthVaultExtensions.FlagsFhirExtensionName));
        }
예제 #3
0
        private OperationOutcome ValidateExtension(IExtendable elementDef, IElementNavigator instance, string uri)
        {
            var outcome = new OperationOutcome();

            var pattern = elementDef.GetStringExtension(uri);

            if (pattern != null)
            {
                var regex   = new Regex(pattern);
                var value   = toStringRepresentation(instance);
                var success = Regex.Match(value, "^" + regex + "$").Success;

                if (!success)
                {
                    Trace(outcome, $"Value '{value}' does not match regex '{regex}'", Issue.CONTENT_ELEMENT_INVALID_PRIMITIVE_VALUE, instance);
                }
            }

            return(outcome);
        }