public static List <SintomaWEB> getListaSintomas(String xmlPath) { List <SintomaWEB> lista = new List <SintomaWEB>(); String xpath = "//ListaDeSintomas/Sintoma/nome"; XmlDocument doc = new XmlDocument(); doc.Load(xmlPath); XmlNodeList nodeList = doc.SelectNodes(xpath); foreach (XmlNode node in nodeList) { SintomaWEB s = new SintomaWEB(); s.nome = node.InnerText.ToString(); lista.Add(s); } return(lista); }
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); }