public async Task <Dictionary <string, string> > GetFormularyStatuses(Action <Dictionary <string, string> > onResultFetch = null)
        {
            string token = _httpContext.Session.GetString("access_token");

            var dataDictionary = _httpContext.Session.GetObject <Dictionary <string, string> >(SynapseSession.FormularyStatuses);

            if (!dataDictionary.IsCollectionValid())
            {
                var formularyStatusesLkp = await TerminologyAPIService.GetFormularyStatuses(token);

                if (formularyStatusesLkp.IsCollectionValid())
                {
                    dataDictionary = formularyStatusesLkp.Where(rec => rec.Recordstatus == 1).ToDictionary(k => k.Cd.ToString(), v => v.Desc);

                    _httpContext.Session.SetObject(SynapseSession.FormularyStatuses, dataDictionary);
                }
            }

            dataDictionary = dataDictionary ?? new Dictionary <string, string>();

            onResultFetch?.Invoke(dataDictionary);
            return(dataDictionary);
        }