private static List<string> GetKeywordSynonyms(string keyword, BusinessCache cache)
        {
            var synonymString = string.Empty;

            if (!string.IsNullOrEmpty(keyword))
            {
                var cacheKey = _cacheKeyPrefix + keyword;

                if (cache.Contains(cacheKey))
                {
                    var cacheValue = cache.Get(cacheKey).ToString();
                    return StringToListOfStrings(cacheValue);
                }

                var synonyms = new StringBuilder();
                var jsonValues = GetWebServiceResponse(keyword);

                if (jsonValues.Length > 0)
                {
                    var jsonObject = JObject.Parse(jsonValues);

                    var icd9Property = jsonObject["Icd9"];

                    if (icd9Property != null)
                    {
                        var Icd9Value = icd9Property.First.Value<JProperty>();
                        var name = Icd9Value.Name;

                        var icd9Object = JObject.Parse(icd9Property.ToString());

                        if (icd9Object.First.HasValues)
                        {
                            foreach (var value in icd9Object.First.Values())
                            {
                                synonyms.Append(value + " ");
                            }
                        }

                        synonymString = StripPunctuation(synonyms.ToString()) + " " + name;
                    }

                    //cache keyword synonyms
                    cache.Put(cacheKey, synonymString, CacheSeconds.Larger);
                }
            }

            return StringToListOfStrings(synonymString);
        }