Ir para conteúdo
alysson122010

Recuperar dados xml

Recommended Posts

Gostaria de saber como eu consigo recuperar dados do xml da seguinte forma. Tenho esse meu codigo php

 

foreach($xml -> cadastros->exame as $item_3){  
            $codigo = $item_3['codigo']; 
}

 

Que recuperar os exames desse xml:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<resultados versao="20101018" origem="aol" datahora="2021-07-22 08:25:45">
    <cadastros>
        <pacientes>
            <paciente codigo="250058718" codigo_lis="" codigo_aol="250058718" datanasc="" nome=" " sexo="M"/>
        </pacientes>
        <materiais>
            <material codigo="856" descricao="plasma citratado"/>
            <material codigo="879" descricao="sangue total EDTA"/>
            <material codigo="543" descricao="soro"/>
        </materiais>
        <exame codigo="TSH" descricao="TSH - HORMÔNIO TIREOESTIMULANTE - Ultrassensivel" dataalteracao="21/11/2019 17:37:15">
            <linhasresultado>
                <linha codigo="1240" descricao="TSH - HORMÔNIO TIREOESTIMULANTE Ultrasensivel" unidade="µUI/mL"/>
            </linhasresultado>
            <valorreferencia><![CDATA[0 a 3 dias: 1,100 a 15,700 µUI/mL
3 dias a 2 meses e 14 dias: 0,600 a 9,200 µUI/mL
2meses 14dias a 1ano 3meses:0,400 a 6,000 µUI/mL
1 ano e 3 meses a 6 anos: 0,400 a 5,200 µUI/mL
6 a 15 anos: 0,300 a 4,200 µUI/mL
15 a 60 anos: 0,400 a 4,300 µUI/mL
60 a 80 anos: 0,400 a 5,800 µUI/mL
Superior a 80 anos: 0,400 a 6,700 µUI/mL

Gestantes:
Primeiro Trimestre: 0,100 a 3,600 µUI/mL
Segundo Trimestre: 0,400 a 4,300 µUI/mL
Terceiro Trimestre: 0,400 a 4,300 µUI/mL ]]></valorreferencia>
        </exame>
        <exame codigo="LIPAS" descricao="LIPASE" dataalteracao="28/03/2019 09:23:47">
            <linhasresultado>
                <linha codigo="883" descricao="LIPASE" unidade="U/L"/>
            </linhasresultado>
            <valorreferencia><![CDATA[Inferior a 60,0 U/L]]></valorreferencia>
        </exame>
        <exame codigo="T4L" descricao="T4 - TIROXINA LIVRE" dataalteracao="16/04/2019 14:43:34">
            <linhasresultado>
                <linha codigo="1174" descricao="T4 - TIROXINA LIVRE" unidade="ng/dL"/>
            </linhasresultado>
            <valorreferencia><![CDATA[0,70 a 1,80  ng/dL]]></valorreferencia>
        </exame>
        <exame codigo="AMILA" descricao="AMILASE TOTAL" dataalteracao="16/04/2019 12:02:51">
            <linhasresultado>
                <linha codigo="83" descricao="AMILASE TOTAL" unidade="U/L"/>
            </linhasresultado>
            <valorreferencia><![CDATA[Até  115,0 U/L]]></valorreferencia>
        </exame>
        <exame codigo="FA" descricao="FOSFATASE ALCALINA" dataalteracao="15/04/2019 11:51:01">
            <linhasresultado>
                <linha codigo="542" descricao="FOSFATASE ALCALINA" unidade="U/L"/>
            </linhasresultado>
            <valorreferencia><![CDATA[0 a 14 dias: 82 a 249 U/L
15 dias a 1 ano: 122 a 473 U/L

Sexo Feminino:
Feminino 1 a 9 anos: 149 a 301 U/L
Feminino 10 a 12 anos: 127 a 326 U/L
Feminino 13 a 14 anos: 62 a 212 U/L
Feminino 15 a 16 anos: 52 a 120 U/L
Feminino 17 a 18 anos: 45 a 97 U/L
Adultos: 25 a 100 U/L

Sexo Masculino:
Masculino 1 a 9 anos: 149 a 301 U/L
Masculino 10 a 12 anos: 127 a 326 U/L
Masculino 13 a 14 anos: 129 a 437 U/L
Masculino 15 a 16 anos: 78 a 268 U/L
Masculino 17 a 18 anos: 40 a 129 U/L
Adultos: 25 a 100 U/L

Referência: Fontes R, Cavalari E, Vieira Neto L,
et al. Alkaline phosphatase: reference interval
transference from CALIPER to a pediatric Brazilian
population. J Bras Patol Med Lab. 2018; 54(4):
227-31.]]></valorreferencia>
        </exame>
        <exame codigo="HBGLI3" descricao="HEMOGLOBINA GLICADA" dataalteracao="28/06/2021 09:26:18">
            <linhasresultado>
                <linha codigo="12976" descricao="Hb SA1c - Forma estável" unidade="%"/>
                <linha codigo="16572" descricao="Glicose Média Estimada (GME)" unidade="mg/dL"/>
            </linhasresultado>
            <valorreferencia><![CDATA[
Hemoglobina Glicada - Hb SA1c
Normal: Inferior a 5.7%
Risco aumentado para Diabetes Mellitus: 5,7 a 6,4%
Diabete Mellitus: Igual ou superior a 6,5%

Para o diagnóstico de Diabetes Mellitus a dosagem 
de HbA1c deve ser confirmada com novo exame em dia
diferente,exceto se houver hiperglicemia inequívo-
ca com descompensação metabólica aguda ou sintomas
clássicos da doença.

A Associação Americana de Diabetes recomenda como 
meta para o tratamento de pacientes diabéticos re-
sultados de HbA1c iguais ou inferiores a 7%. 

Conforme recomendado pela American Diabetes Asso-
ciation(ADA) e European Association for the Study 
of Diabetes (EASD), estamos liberando cálculo da 
glicose média estimada(GME). Este cálculo é obtido
a partir do valor de HbA1c através de uma fórmula 
matemática baseada em uma relação linear entre os 
níveis de HbA1c e a glicose média sanguínea. 


Ref.
Diabetes Care, 2014; 37 (suppl 1): 81-90/Diretri-
zes da Sociedade Brasileira de Diabestes/2013-2014
:9-11.]]></valorreferencia>
        </exame>
        <exame codigo="COAG4" descricao="COAGULOGRAMA IV" dataalteracao="06/09/2019 14:27:19">
            <linhasresultado>
                <linha codigo="14811" descricao="PLAQUETAS - Contagem" unidade="/uL"/>
            </linhasresultado>
            <valorreferencia><![CDATA[Atividade de Protrombina: 70 a 100%
RNI: 0,80 a 1,20
Ratio: Inferior a 1,25
Plaquetas: 150.000 a 450.000/uL

RNI - Intervalo de Refêrencias(Alvos Terapeuticos)
Recomendações do American College of Physicians,
National Heart Lung and Blood Institute for
Haematology.]]></valorreferencia>
        </exame>
    </cadastros>
    <solicitacao codigo="238228701" codigo_aol="238228701" paciente="250058718">
        <amostras>
            <amostra codigo="0" descricao="Basal" material="856"/>
            <amostra codigo="1" descricao="Basal" material="879"/>
            <amostra codigo="2" descricao="Basal" material="543"/>
        </amostras>
        <exame codigo="FA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico" observacao="" normal="S">
            <resultado amostra="2" linharesultado="542" resultado="51,0"/>
        </exame>
        <exame codigo="HBGLI3" dataresultado="20/07/2021 05:48:28" metodo="Imunoensaio Turbidimétrico de Inibição " observacao="" normal="S">
            <resultado amostra="1" linharesultado="12976" resultado="5,1"/>
            <resultado amostra="1" linharesultado="16572" resultado="100"/>
        </exame>
        <exame codigo="TSH" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">
            <resultado amostra="2" linharesultado="1240" resultado="2,000"/>
        </exame>
        <exame codigo="AMILA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">
            <resultado amostra="2" linharesultado="83" resultado="83,0"/>
        </exame>
        <exame codigo="COAG4" dataresultado="21/07/2021 13:29:20" metodo="Coagulométrico/Sistema Automatizado" observacao="" normal="S">
            <resultado amostra="0" linharesultado="14811" resultado="305000"/>
        </exame>
        <exame codigo="LIPAS" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="" normal="S">
            <resultado amostra="2" linharesultado="883" resultado="47,0"/>
        </exame>
        <exame codigo="T4L" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">
            <resultado amostra="2" linharesultado="1174" resultado="1,16"/>
        </exame>
    </solicitacao>
</resultados>

 

Até ai consegui e conseguir mostrar o valor de codigo="codigo do exame". Porém preciso fazer uma segunda consulta da parte :

 

 

 <solicitacao codigo="238228701" codigo_aol="238228701" paciente="250058718">
        <amostras>
            <amostra codigo="0" descricao="Basal" material="856"/>
            <amostra codigo="1" descricao="Basal" material="879"/>
            <amostra codigo="2" descricao="Basal" material="543"/>
        </amostras>
        <exame codigo="FA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico" observacao="" normal="S">
            <resultado amostra="2" linharesultado="542" resultado="51,0"/>
        </exame>
        <exame codigo="HBGLI3" dataresultado="20/07/2021 05:48:28" metodo="Imunoensaio Turbidimétrico de Inibição " observacao="" normal="S">
            <resultado amostra="1" linharesultado="12976" resultado="5,1"/>
            <resultado amostra="1" linharesultado="16572" resultado="100"/>
        </exame>
        <exame codigo="TSH" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">
            <resultado amostra="2" linharesultado="1240" resultado="2,000"/>
        </exame>
        <exame codigo="AMILA" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">
            <resultado amostra="2" linharesultado="83" resultado="83,0"/>
        </exame>
        <exame codigo="COAG4" dataresultado="21/07/2021 13:29:20" metodo="Coagulométrico/Sistema Automatizado" observacao="" normal="S">
            <resultado amostra="0" linharesultado="14811" resultado="305000"/>
        </exame>
        <exame codigo="LIPAS" dataresultado="20/07/2021 04:27:20" metodo="Colorimétrico Enzimático" observacao="" normal="S">
            <resultado amostra="2" linharesultado="883" resultado="47,0"/>
        </exame>
        <exame codigo="T4L" dataresultado="20/07/2021 04:27:20" metodo="Eletroquimioluminescência" observacao="Considerar a metodologia Quimioluminescência para a análise deste teste." normal="S">
            <resultado amostra="2" linharesultado="1174" resultado="1,16"/>
        </exame>
    </solicitacao>

 

Onde eu consiga pegar o codigo que recuperei acima e liste os resultados da parte de solicitacao referente ao codigo="codigo do exame que eu listei a cima" mas nao to conseguindo fazer. Como eu posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.