public static bool?GetBoolExtension(this IExtendable extendable, string uri) { var ext = extendable.GetExtension(uri); if (ext != null && ext.Value != null && ext.Value is FhirBoolean) { return(((FhirBoolean)ext.Value).Value); } return(null); }
public static T GetExtensionValue <T>(this IExtendable extendable, string uri) where T : Element { var ext = extendable.GetExtension(uri); if (ext != null && ext.Value != null && ext.Value is T) { return((T)ext.Value); } return(null); }
/// <summary> /// Return the first extension with the given uri as a string, or null if none was found /// </summary> /// <param name="extendable"></param> /// <param name="uri"></param> /// <returns>The first uri, or null if no extension with the given uri was found.</returns> public static string GetStringExtension(this IExtendable extendable, string uri) { var ext = extendable.GetExtension(uri); if (ext != null && ext.Value != null && ext.Value is FhirString) { return(((FhirString)ext.Value).Value); } return(null); }
/// <summary> /// Set namespace. /// </summary> public static String GetNamespace(this IExtendable resource) { switch (resource) { case StructureDefinition sDef: break; case ValueSet vsDef: break; default: throw new Exception($"Can only set namespace on a structure or valueset definition"); } Extension ns = resource.GetExtension(NamespaceExtensionUri); return(((FhirUri)ns?.Value)?.Value); }
/// <summary> /// Set Composable. /// </summary> public static Composable GetComposable(this IExtendable resource) { switch (resource) { case StructureDefinition sDef: break; case ElementDefinition eDef: break; default: throw new Exception($"Can only set Composable on an element definition"); } Extension ns = resource.GetExtension(ComposableExtensionUri); String value = ((FhirString)ns?.Value)?.Value; if (value == null) { return(Composable.None); } return((Composable)Enum.Parse(typeof(Composable), value)); }