示例#1
0
        /// <summary>
        /// Add search parameters
        /// </summary>
        public static void AddSearchParam <TFhirResource>(String fhirQueryParameter, String hdsiQueryParmeter, QueryParameterRewriteType type)
        {
            var resourceType = typeof(TFhirResource).GetResourceType();
            var mapConfig    = s_map.Map.FirstOrDefault(o => resourceType.HasValue ? resourceType.Value == o.Resource : !o.ResourceSpecified);

            if (mapConfig == null)
            {
                mapConfig = new QueryParameterType()
                {
                    Resource = resourceType.Value, ResourceSpecified = resourceType.HasValue
                };
                s_map.Map.Add(mapConfig);
            }

            // parm config
            var parmConfig = mapConfig.Map.FirstOrDefault(o => o.FhirQuery == fhirQueryParameter);

            if (parmConfig == null)
            {
                parmConfig = new QueryParameterMapProperty()
                {
                    FhirQuery  = fhirQueryParameter,
                    ModelQuery = hdsiQueryParmeter,
                    FhirType   = type
                };
            }
            else
            {
                parmConfig.ModelQuery = hdsiQueryParmeter;
                parmConfig.FhirType   = type;
            }
            mapConfig.Map.Add(parmConfig);
        }
示例#2
0
        /// <summary>
        /// Open a query mapping
        /// </summary>
        private static void OpenMapping(Stream stream)
        {
            XmlSerializer xsz = XmlModelSerializerFactory.Current.CreateSerializer(typeof(QueryParameterMap));

            if (s_map == null)
            {
                s_map = xsz.Deserialize(stream) as QueryParameterMap;
            }
            else
            {
                // Merge
                var map = xsz.Deserialize(stream) as QueryParameterMap;
                s_map.Merge(map);
            }

            s_default = s_map.Map.FirstOrDefault(o => o.SourceType == typeof(ResourceBase));
        }