Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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));
        }