示例#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;
        //}

        public static int getIndice(List <DiagnosticoWEB> lista, DiagnosticoWEB d)
        {
            if (lista.Count > 0)
            {
                foreach (DiagnosticoWEB diagnostico in lista)
                {
                    if (diagnostico.nome.Equals(d.nome) && diagnostico.orgao.Equals(d.orgao))
                    {
                        return(lista.IndexOf(diagnostico));
                    }
                }
            }
            return(-1);
        }
示例#2
0
 public static Boolean exists(List <DiagnosticoWEB> lista, DiagnosticoWEB d)
 {
     if (lista.Count > 0)
     {
         foreach (DiagnosticoWEB diagnostico in lista)
         {
             if (diagnostico.nome.Equals(d.nome) && diagnostico.orgao.Equals(d.orgao))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
示例#3
0
        public static List <SistemaPericialWEB> getListaSistemaPericial(List <SintomaWEB> lista, String xmlPath)
        {
            List <SistemaPericialWEB> listaFinal = new List <SistemaPericialWEB>();


            String xpath = "";
            List <DiagnosticoWEB> listaDiagnosticos = new List <DiagnosticoWEB>();
            List <SintomaWEB>     listaSintomas;
            List <Int32>          bedjoras = new List <Int32>();
            DiagnosticoWEB        diagAux;

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


                    //TESTE


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

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

            foreach (DiagnosticoWEB d in listaDiagnosticos)
            {
                int                aux         = listaDiagnosticos.IndexOf(d);
                int                count       = bedjoras[aux];
                int                auxcontagem = d.listaSintomas.Count();
                decimal            bla         = count / Convert.ToDecimal(auxcontagem);
                decimal            resultado   = Math.Round(bla * 100, 1);
                SistemaPericialWEB sis         = new SistemaPericialWEB();
                sis.diagnostico = d.nome + " - " + d.orgao;
                sis.tratamento  = d.tratamento;
                sis.score       = resultado;
                listaFinal.Add(sis);
            }

            listaFinal.Sort(new ComparacaoResultados());



            return(listaFinal);
        }