Ajuda para adequar o MER a modelagem do meu sistema
Olá alguém pode me ajudar, Não Estou Conseguindo relacionar a tabela dos exames tipo exame de sangue, urina, hemograma…!
Segue imagem Abaixo:
https://goo.gl/KWf2o3
Segue imagem Abaixo:
https://goo.gl/KWf2o3
Marcos
Curtidas 0
Respostas
Luiz Santos
30/01/2018
Boa tarde Marcos.
Cara, adorei o "IdFezes"...rs
Bom, falando sério.
Esse seu sistema é algo sério ou um estudo?
Se for sério, existe um código padrão para exames, definido pela ANS que serve para controlar esse tipo de coisa.
Mais informações no link http://www.ans.gov.br/images/stories/Legislacao/in/anexo_in44_dides.pdf.
Caso seja só um estudo, me baseando pelo seu modelo de dados:
- Você tem a tabela exame que teria o id da solicitação.
- Dentro de Tipo, seria o seu agrupamento.
- Quando você fala em fezes, urina, sangue, estamos falando em grupos de exame. Ou seja, fezes, sangue e urina são dados, não entidades separadas.
Consegui ser claro?
Grande abraço
Cara, adorei o "IdFezes"...rs
Bom, falando sério.
Esse seu sistema é algo sério ou um estudo?
Se for sério, existe um código padrão para exames, definido pela ANS que serve para controlar esse tipo de coisa.
Mais informações no link http://www.ans.gov.br/images/stories/Legislacao/in/anexo_in44_dides.pdf.
Caso seja só um estudo, me baseando pelo seu modelo de dados:
- Você tem a tabela exame que teria o id da solicitação.
- Dentro de Tipo, seria o seu agrupamento.
- Quando você fala em fezes, urina, sangue, estamos falando em grupos de exame. Ou seja, fezes, sangue e urina são dados, não entidades separadas.
Consegui ser claro?
Grande abraço
GOSTEI 0
Marcos
30/01/2018
Olá, Luiz Fernando
eu fiz a pergunta errada,
então é um sistema interno, pois o mesmo gera laudos de exames, mais esta sendo feito no word
ai eu queria desenvolver mais estou apanhando na relação das tabelas de exames.
Exemplo:
Tipo cadastrei paciente joão
- joão quer fazer exame de urina e hemograma
- vou colocar o resultado dos dois exame que joão solicitou que é urina e hemograma,
depois quero ver este dois resultado de exame armazenados no banco, e no cadastro do joão.
Mais até o momento amigo parece que consegui sanar meu problema.
Veja agora o diagrama do Banco de dados
https://goo.gl/qwWK2e
Não sei se compreendeu?
eu fiz a pergunta errada,
então é um sistema interno, pois o mesmo gera laudos de exames, mais esta sendo feito no word
ai eu queria desenvolver mais estou apanhando na relação das tabelas de exames.
Exemplo:
Tipo cadastrei paciente joão
- joão quer fazer exame de urina e hemograma
- vou colocar o resultado dos dois exame que joão solicitou que é urina e hemograma,
depois quero ver este dois resultado de exame armazenados no banco, e no cadastro do joão.
Mais até o momento amigo parece que consegui sanar meu problema.
Veja agora o diagrama do Banco de dados
https://goo.gl/qwWK2e
Não sei se compreendeu?
GOSTEI 0
Luiz Santos
30/01/2018
Oi Marcos.
Entendi o que você quer fazer.
E realmente é complicado.
Em uma base relacional você vai ter que fazer exatamente isso.
Uma tabela para cada exame.
Pq cada exame vai ter um tipo de resultado diferente.
O máimo que vc vai poder fazer é agrupar exames que tenham características em comum.
Por exemplo, foi pedido apenas um exame de colesterol.
Como tem colesterol no hemograma, você gravaria ele na tabela do hemograma, e assim com os exames.
Correto?
Entendi o que você quer fazer.
E realmente é complicado.
Em uma base relacional você vai ter que fazer exatamente isso.
Uma tabela para cada exame.
Pq cada exame vai ter um tipo de resultado diferente.
O máimo que vc vai poder fazer é agrupar exames que tenham características em comum.
Por exemplo, foi pedido apenas um exame de colesterol.
Como tem colesterol no hemograma, você gravaria ele na tabela do hemograma, e assim com os exames.
Correto?
GOSTEI 0
Marcos
30/01/2018
Opa Luiz Fernando, então no momento estou com dois tipo de exame
tipo titulo dos exames como se fosse uma ficha mais com resultado dos exames
estou com dois Titulo Exame hemograma e Urina
que nem esta na image abaixo o que contem na tabela hemograma e tudo que vai armazenar resultado deste hemograma e assim também na tabela urina tudo que tem na mesma é para armazenar resultado de urina já esta pronta creio eu
tipo o Rapaz que faz os exames armazena os valores do resultado em arquivo word
ai estou a desenvolver para agilizar
tipo estão trabalhando da forma antiga
sou Iniciante em programação.
mais já fiz os sistema e já está cadastrando e puxando os dados correto.
tipo titulo dos exames como se fosse uma ficha mais com resultado dos exames
estou com dois Titulo Exame hemograma e Urina
que nem esta na image abaixo o que contem na tabela hemograma e tudo que vai armazenar resultado deste hemograma e assim também na tabela urina tudo que tem na mesma é para armazenar resultado de urina já esta pronta creio eu
tipo o Rapaz que faz os exames armazena os valores do resultado em arquivo word
ai estou a desenvolver para agilizar
tipo estão trabalhando da forma antiga
sou Iniciante em programação.
mais já fiz os sistema e já está cadastrando e puxando os dados correto.
GOSTEI 0
Jerson Boer
30/01/2018
Olá Marcos,
Você não pode ter 1 tabela só com esses exames, relacionando com chaves e identificações, ao invés de ter 1 tabela pra cada tipo?
Pelo que entendi é 1 exame x N análises (sangue, urina, etc) x 1 resultado, certo?
Exemplo:
Exame
> ExameID
> LaboratorioID
> MedicoID
> PacienteID
> DataExame
TipoExame (Essa tabela só relaciona análise com exame)
> TipoExameID
> ExameID
> AnaliseID
> Resultado
Analise (Essa seria o seu banco de dados de análises possíveis)
> AnaliseID
> Analise
> Limites
Aí na análise você vai ter:
1 | Hemograma | a até b
2 | Urina | menor que x
3 | Sangue | vermelho
Você não pode ter 1 tabela só com esses exames, relacionando com chaves e identificações, ao invés de ter 1 tabela pra cada tipo?
Pelo que entendi é 1 exame x N análises (sangue, urina, etc) x 1 resultado, certo?
Exemplo:
Exame
> ExameID
> LaboratorioID
> MedicoID
> PacienteID
> DataExame
TipoExame (Essa tabela só relaciona análise com exame)
> TipoExameID
> ExameID
> AnaliseID
> Resultado
Analise (Essa seria o seu banco de dados de análises possíveis)
> AnaliseID
> Analise
> Limites
Aí na análise você vai ter:
1 | Hemograma | a até b
2 | Urina | menor que x
3 | Sangue | vermelho
GOSTEI 0
Marcos
30/01/2018
ola Jerson Boer, a Tabela de Hemograma é um Exame
a Tabela de Urina é outro exame entendeu?
Tipo amigo você pede para fazer um exame de urina
-ai coleta o material depois vai fazer analise
esta parte não entra no sistema da analise,
oque entra é somente o resultado do analise, tipo isso é somente a ficha de resultado.
a Tabela de Urina é outro exame entendeu?
Tipo amigo você pede para fazer um exame de urina
-ai coleta o material depois vai fazer analise
esta parte não entra no sistema da analise,
oque entra é somente o resultado do analise, tipo isso é somente a ficha de resultado.
GOSTEI 0
Jerson Boer
30/01/2018
Vamos lá, só pra entender a estrutura, a tabela EXAME é aberta toda a vez que o paciente vai ao "Médico", nesta visita pode ser solicitado em um mesmo EXAME várias coisas, tipo, hemograma, urina e sangue, 3 coisas em 1 mesmo exame, cada uma com seu resultado, certo?
GOSTEI 0
Marcos
30/01/2018
Sim Isso mesmo
Ai como fiz a procedure
https://goo.gl/5pfJng
não sei se vai ocorrer tudo certo mais parece que está
Ai como fiz a procedure
https://goo.gl/5pfJng
não sei se vai ocorrer tudo certo mais parece que está
GOSTEI 0
Jerson Boer
30/01/2018
Nesse exemplo de resultado que mandou, está buscando pelas 3 tabelas (Hemograma, Urina, Sangue) ? E se amanhã você começar a fazer outro tipo de exame, vai ter que criar 1 nova tabela, mudar novamente sua query, pra considerar esse novo exame?
GOSTEI 0
Jerson Boer
30/01/2018
Mostre novamente uma imagem com o relacionamento que ficou e a estrutura de suas tabelas.
GOSTEI 0
Marcos
30/01/2018
Ai amigo como estas
select a.NumFicha,a.NomePac,a.DataNasc,a.EmailPac,b.DataExame,c.NomeExame,l.NomeLab,m.NomeMed from paciente a
inner join exame b on a.PacienteID = b.PacienteID
inner join tipoexame c on b.TipoExameID = c.TipoExameID
inner join laboratorio l on b.LaboratorioID = l.LaboratorioID
inner join medico m on b.MedicoID = m.MedicoID;
select a.NumFicha,a.NomePac,a.DataNasc,a.EmailPac,b.DataExame,c.NomeExame,l.NomeLab,m.NomeMed from paciente a
inner join exame b on a.PacienteID = b.PacienteID
inner join tipoexame c on b.TipoExameID = c.TipoExameID
inner join laboratorio l on b.LaboratorioID = l.LaboratorioID
inner join medico m on b.MedicoID = m.MedicoID;
GOSTEI 0
Jerson Boer
30/01/2018
Aí sim, pelo que entendi da estrutura você desconsiderou a ideia de ter 1 tabela pra cada exame, finaliza na tabela TipoExame que trás todos, aí está correto.
GOSTEI 0
Marcos
30/01/2018
Ai meu Script amigo do Banco De Dados Sql
https://goo.gl/CyibfG
https://goo.gl/CyibfG
GOSTEI 0
Jerson Boer
30/01/2018
Criei a base com a sua estrutura e adicionei informações de exemplo, agora vejo que está correta, ou ainda tem alguma dúvida? O resultado vai colocar em qual tabela?
GOSTEI 0
Marcos
30/01/2018
Jerson Boer
na Verdade o que vai valer é eu imprimir o resultado do exame com informações
Nome do Paciente, data da coleta,nome medico,idade,numero da ficha e observações
Este ai exemplo que eu estava fazendo:
https://goo.gl/tZDUph
na Verdade o que vai valer é eu imprimir o resultado do exame com informações
Nome do Paciente, data da coleta,nome medico,idade,numero da ficha e observações
Este ai exemplo que eu estava fazendo:
https://goo.gl/tZDUph
GOSTEI 0
Marcos
30/01/2018
Não sendo menos importante as outras relações mais oque o paciente quer é o resultado do exame, e o Bioquímico quer os exames armazenados ele também queria se daria para colocar resultado de exames anteriores se um paciente tiver exames anteriores para comparar.
GOSTEI 0
Jerson Boer
30/01/2018
Vou tentar montar um exemplo de como eu faria a estrutura para esse sistema e envio a você assim que finalizar.
GOSTEI 0
Marcos
30/01/2018
Jerson Eder Boer
- beleza amigo obrigado.
- beleza amigo obrigado.
GOSTEI 0
Jerson Boer
30/01/2018
Realizei a configuração que encaminho abaixo os links:
Imagem com o diagrama de relacionamentos da base
https://drive.google.com/file/d/1rfb5PRAHn74zxk7R__c0963_qMRS6QYe/view?usp=sharing
Script para criação do banco de dados, com informações preenchidas para visualização da estrutura
https://drive.google.com/file/d/14S6Pi1ZL6TF1qCc3OLNNOSfjTRRzaQXz/view?usp=sharing
Qual a ideia dessa estrutura, note que as informações que estavam como campos na tabela Hemograma ou Urina, eu joguei para serem valores na tabela ExameParametros.
Quais os benefícios que imagino nessa estrutura:
1) Dinâmica na manutenção de parâmetros, você não tem limite de parâmetros a adicionar em um exame e não precisa sempre criar novos campos e novas tabelas
2) A criação de uma tabela de parâmetros, além da dinâmica, possibilita também que você adicione os valores de referência que devem ser seguidos para cada um deles.
3) O relacionamento das tabelas FichaExame, Exame e ExameParametros através da tabela FichaExameParametros te dá toda a informação e estrutura que precisa para não ter a necessidade de novas tabelas.
4) Você pode criar uma única tela para input de resultado que seja na forma de grid, não sendo necessário ter 1 tela para cada configuração de exame/parâmetro. Uma mesma tela, terá os parâmetros solicitados de acordo com o exame existente na ficha.
5) Outras informações como Cor, Sexo, Estado Civil, Cidade e Estado, que irão se repetir muito em todos os cadastros, também coloquei na forma de tabela, isso garante a padronização da informação, uma vez que o usuário irá buscar de uma lista e não ficar criando novos a cada novo paciente, criando muitas vezes "Casado, Cazado, Caasado", que futuramente não te possibilita busca de informações com base em determinado parâmetro.
6) Você pode ter nesta estrutura TODOS os exames que já foram realizados para este paciente, juntamente com todos os parâmetros que foram examinados e com seus respectivos resultados.
Bom, é isso, espero que isso ajude, avalie as informações e qualquer coisa retorna o post.
Imagem com o diagrama de relacionamentos da base
https://drive.google.com/file/d/1rfb5PRAHn74zxk7R__c0963_qMRS6QYe/view?usp=sharing
Script para criação do banco de dados, com informações preenchidas para visualização da estrutura
https://drive.google.com/file/d/14S6Pi1ZL6TF1qCc3OLNNOSfjTRRzaQXz/view?usp=sharing
Qual a ideia dessa estrutura, note que as informações que estavam como campos na tabela Hemograma ou Urina, eu joguei para serem valores na tabela ExameParametros.
Quais os benefícios que imagino nessa estrutura:
1) Dinâmica na manutenção de parâmetros, você não tem limite de parâmetros a adicionar em um exame e não precisa sempre criar novos campos e novas tabelas
2) A criação de uma tabela de parâmetros, além da dinâmica, possibilita também que você adicione os valores de referência que devem ser seguidos para cada um deles.
3) O relacionamento das tabelas FichaExame, Exame e ExameParametros através da tabela FichaExameParametros te dá toda a informação e estrutura que precisa para não ter a necessidade de novas tabelas.
4) Você pode criar uma única tela para input de resultado que seja na forma de grid, não sendo necessário ter 1 tela para cada configuração de exame/parâmetro. Uma mesma tela, terá os parâmetros solicitados de acordo com o exame existente na ficha.
5) Outras informações como Cor, Sexo, Estado Civil, Cidade e Estado, que irão se repetir muito em todos os cadastros, também coloquei na forma de tabela, isso garante a padronização da informação, uma vez que o usuário irá buscar de uma lista e não ficar criando novos a cada novo paciente, criando muitas vezes "Casado, Cazado, Caasado", que futuramente não te possibilita busca de informações com base em determinado parâmetro.
6) Você pode ter nesta estrutura TODOS os exames que já foram realizados para este paciente, juntamente com todos os parâmetros que foram examinados e com seus respectivos resultados.
Bom, é isso, espero que isso ajude, avalie as informações e qualquer coisa retorna o post.
GOSTEI 0
Marcos
30/01/2018
ola Jerson Eder Boer, obrigado amigo mais eu não sei mesmo como fazer isso
4) Você pode criar uma única tela para input de resultado que seja na forma de grid, não sendo necessário ter 1 tela para cada configuração de exame/parâmetro. Uma mesma tela, terá os parâmetros solicitados de acordo com o exame existente na ficha.
Criar uma tela de entrada de resultado na forma de grid eu sei
só não sei solicitar estes parâmetros para obter o exame de acordo com a ficha.
4) Você pode criar uma única tela para input de resultado que seja na forma de grid, não sendo necessário ter 1 tela para cada configuração de exame/parâmetro. Uma mesma tela, terá os parâmetros solicitados de acordo com o exame existente na ficha.
Criar uma tela de entrada de resultado na forma de grid eu sei
só não sei solicitar estes parâmetros para obter o exame de acordo com a ficha.
GOSTEI 0
Marcos
30/01/2018
Seria mais ou menos assim uma consulta de quantos exames um paciente tem?
select a.IDPaciente,a.NomePaciente,a.DataNascimento,a.Email,e.Exame,b.DataExame,l.Laboratorio,m.Medico from paciente a inner join FichaExame b on a.IDPaciente = b.IDPaciente inner join FichaExameParametros c on b.IDFichaExame = c.IDFichaExame inner join laboratorio l on b.IDLaboratorio = l.IDLaboratorio inner join medico m on b.IDMedico = m.IDMedico inner join exame e on b.IDFichaExame = c.IDFichaExame;
GOSTEI 0
Luiz Santos
30/01/2018
Marcos, boa tarde.
Não se preocupe.
Vc está indo bem.
Como vc mesmo disse, está começando e se virando como pode.
O que o Jerson comentou é verdade.
Se amanhã você começar a fazer outro tipo de exame, vai ter que incluir mais uma tabela no seu modelo, e incluir ela no seu relatório.
Mas acredito que vc tenha a intenção de melhorar seu sistema assim que concluir ele.
Acredite, tudo isso vai contribuir para o seu aprendizado.
Grande abraço
Não se preocupe.
Vc está indo bem.
Como vc mesmo disse, está começando e se virando como pode.
O que o Jerson comentou é verdade.
Se amanhã você começar a fazer outro tipo de exame, vai ter que incluir mais uma tabela no seu modelo, e incluir ela no seu relatório.
Mas acredito que vc tenha a intenção de melhorar seu sistema assim que concluir ele.
Acredite, tudo isso vai contribuir para o seu aprendizado.
Grande abraço
GOSTEI 0
Jerson Boer
30/01/2018
Marcos,
Pra você obter os parâmetros a serem adicionados ao cadastro da ficha sempre que você abrir um novo exame, você pode usar uma função tipo essa:
Você vai executar essa função após criar um novo cadastro da ficha, ela vai pegar o IDFichaExame, com isso, vai buscar na tabela de parâmetros do exame quais devem ser avaliados e vai incluir automaticamente todos na tabela FichaExameParametros, aí você mostra essa informação no seu cadastro da ficha de exame, na grid que comentei, usando uma função mais ou menos assim:
Se você quiser buscar todos os exames que determinado paciente fez, você poderia usar essa query:
Aí quando o médico escolhesse uma das fichas pra verificar o que foi avaliado no exame, ele traria uma tela usando aquela mesma query citada acima (a segunda).
Pra você obter os parâmetros a serem adicionados ao cadastro da ficha sempre que você abrir um novo exame, você pode usar uma função tipo essa:
INSERT INTO FichaExameParametros (IDFichaExame, IDExame, IDParametro) SELECT FichaExame.IDFichaExame, FichaExame.IDExame, ExameParametros.IDParametro FROM FichaExame INNER JOIN ExameParametros ON FichaExame.IDExame = ExameParametros.IDExame WHERE (FichaExame.IDFichaExame = 2)
Você vai executar essa função após criar um novo cadastro da ficha, ela vai pegar o IDFichaExame, com isso, vai buscar na tabela de parâmetros do exame quais devem ser avaliados e vai incluir automaticamente todos na tabela FichaExameParametros, aí você mostra essa informação no seu cadastro da ficha de exame, na grid que comentei, usando uma função mais ou menos assim:
SELECT FichaExameParametros.IDParametro, ExameParametros.Parametro, FichaExameParametros.Resultado, ExameParametros.ValorReferencia FROM FichaExameParametros INNER JOIN ExameParametros ON FichaExameParametros.IDParametro = ExameParametros.IDParametro WHERE (FichaExameParametros.IDFichaExame = 2)
Se você quiser buscar todos os exames que determinado paciente fez, você poderia usar essa query:
SELECT FichaExame.IDFichaExame, FichaExame.NumeroFicha, FichaExame.DataAbertura, FichaExame.DataExame, Paciente.NomePaciente, Medico.Medico, Laboratorio.Laboratorio, Exame.Exame FROM FichaExame INNER JOIN Paciente ON FichaExame.IDPaciente = Paciente.IDPaciente INNER JOIN Medico ON FichaExame.IDMedico = Medico.IDMedico INNER JOIN Laboratorio ON FichaExame.IDLaboratorio = Laboratorio.IDLaboratorio INNER JOIN Exame ON FichaExame.IDExame = Exame.IDExame
Aí quando o médico escolhesse uma das fichas pra verificar o que foi avaliado no exame, ele traria uma tela usando aquela mesma query citada acima (a segunda).
GOSTEI 0
Marcos
30/01/2018
Ola Jerson Boer e luiz fernando agradeço mesmo o tempo que tiraram para responder minha pergunta
muito obrigado mesmo.
muito obrigado mesmo.
GOSTEI 0
Jerson Boer
30/01/2018
Beleza Marcos, precisando, retorne o post... Sucesso..
GOSTEI 0