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