Ir para conteúdo

POWERED BY:

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 daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
×

Informação importante

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