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)); }
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)); }
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); }