/// <summary> /// Run DSS /// </summary> /// <param name="patientId">Patient Id</param> /// <param name="configJson">DSS Config as Json String file</param> /// <returns></returns> public async Task <IEnumerable <DSSValue> > Run(string patientId, string configJson) { Dictionary <string, int> valueMapping = new Dictionary <string, int>(); var config = DSSConfig.FromString(configJson); //TODO: Handle Exceptions var model = LoadModel(config.DexiFile); // Set initial values foreach (var c in config.Input) { model.SetInputValue(c.Name, c.DefaultValue); } //Get DSS input values var values = await GetInputValues(patientId, configJson); Dictionary <string, string> dict = new Dictionary <string, string>(); foreach (var c in values) { if (!dict.ContainsKey(c.Name)) { dict.Add(c.Name, c.Value); } } return(Evaluate(model, config, dict)); }