Beispiel #1
0
        public static List <string> procuraSintomas(List <string> lista, String xmlPath)
        {
            List <String>      listaFinal        = new List <string>();
            String             xpath             = "";
            List <Diagnostico> listaDiagnosticos = new List <Diagnostico>();
            List <Sintoma>     listaSintomas;
            List <Int32>       bedjoras = new List <Int32>();
            Diagnostico        diagAux;

            foreach (String s in lista)
            {
                xpath = "//ListaSintomas/sintoma[text()=\"" + s + "\"]/../..";
                XmlDocument doc = new XmlDocument();
                doc.Load(xmlPath);
                XmlNodeList nodeList = doc.SelectNodes(xpath);
                foreach (XmlNode node in nodeList)
                {
                    listaSintomas = new List <Sintoma>();
                    foreach (XmlNode x in node.ChildNodes[3].ChildNodes)
                    {
                        listaSintomas.Add(new Sintoma(x.InnerText));
                    }
                    diagAux = new Diagnostico(node.ChildNodes[1].InnerText, node.ChildNodes[0].InnerText, node.ChildNodes[2].InnerText, listaSintomas);


                    //TESTE


                    if (exists(listaDiagnosticos, diagAux))
                    {
                        int indice = getIndice(listaDiagnosticos, diagAux);
                        bedjoras[indice] += 1;
                    }

                    else
                    {
                        listaDiagnosticos.Add(diagAux);
                        bedjoras.Add(1);
                    }
                }
            }

            foreach (Diagnostico d in listaDiagnosticos)
            {
                int     aux         = listaDiagnosticos.IndexOf(d);
                int     count       = bedjoras[aux];
                int     auxcontagem = d.ListSintomas.Count();
                decimal bla         = count / Convert.ToDecimal(auxcontagem);
                decimal resultado   = Math.Round(bla * 100, 1);
                listaFinal.Add(resultado + "|" + d.ToString());
            }

            listaFinal.Sort(new ComparacaoResultados());

            return(listaFinal);
        }
Beispiel #2
0
 public static Boolean exists(List <Diagnostico> lista, Diagnostico d)
 {
     if (lista.Count > 0)
     {
         foreach (Diagnostico diagnostico in lista)
         {
             if (diagnostico.Nome.Equals(d.Nome) && diagnostico.Orgao.Equals(d.Orgao))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Beispiel #3
0
 public static int getIndice(List <Diagnostico> lista, Diagnostico d)
 {
     if (lista.Count > 0)
     {
         foreach (Diagnostico diagnostico in lista)
         {
             if (diagnostico.Nome.Equals(d.Nome) && diagnostico.Orgao.Equals(d.Orgao))
             {
                 return(lista.IndexOf(diagnostico));
             }
         }
     }
     return(-1);
 }