public async Task <IActionResult> SearchDiluentByName(string q)
        {
            string token = HttpContext.Session.GetString("access_token");

            var response = await TerminologyAPIService.GetFormulariesAsDiluents(token);

            if (response.StatusCode != DataService.APIModel.StatusCode.Success)
            {
                _toastNotification.AddErrorToastMessage(string.Join('\n', response.ErrorMessages));

                return(Json(null));
            }

            var formularies = response.Data;

            if (!formularies.IsCollectionValid())
            {
                return(Json(null));
            }

            var matchingStartsWith = formularies
                                     .Where(rec => rec.Name.StartsWith(q, StringComparison.OrdinalIgnoreCase))
                                     .Select(rec =>
            {
                return(new CodeNameSelectorModel {
                    Id = rec.Code, Name = $"({rec.Code})-{rec.Name}", Source = TerminologyConstants.MANUAL_DATA_SOURCE, IsReadonly = false
                });
            }).ToList();

            var matchingContains = formularies
                                   .Where(rec => rec.Name.Contains(q, StringComparison.OrdinalIgnoreCase))
                                   .Select(rec =>
            {
                return(new CodeNameSelectorModel {
                    Id = rec.Code, Name = $"({rec.Code})-{rec.Name}", Source = TerminologyConstants.MANUAL_DATA_SOURCE, IsReadonly = false
                });
            }).ToList();

            if (!matchingStartsWith.IsCollectionValid())
            {
                return(Json(matchingContains));
            }
            if (!matchingContains.IsCollectionValid())
            {
                return(Json(matchingStartsWith));
            }

            matchingStartsWith.AddRange(matchingContains);
            matchingStartsWith = matchingStartsWith.Distinct(rec => rec.Id).ToList();

            return(Json(matchingStartsWith));
        }