Ejemplo n.º 1
0
        /// <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));
        }