查找

讨论 (0)1
登录或注册以继续
文章
· 一月 11 阅读大约需 2 分钟

O que é iris-hl7?

Um aplicativo que converte mensagens HL7 em objetos JSON. Há cerca de um ano, comecei um repositório no GitHub para coletar materiais relacionados a HL7. Recentemente, minha equipe adicionou uma interface HL7 à nossa Produção de Interoperabilidade e fomos solicitados a persistir as mensagens HL7. Criamos um tópico Kafka para receber as mensagens HL7. Usamos Kafka Bridges para enviar mensagens para os tópicos Kafka. As mensagens Kafka são enviadas para o Kafka Bridge em formato JSON.

Pensei em como transformar mensagens HL7 em JSON. A propriedade Raw Content da mensagem HL7 fornece a mensagem HL7 em formato de string. Sei que a propriedade Raw Content pode fornecer conteúdo truncado da mensagem em determinadas circunstâncias.

Quando nossa equipe de dados recuperou mensagens do tópico Kafka, eles concluíram que preferiam analisar dados em JSON em vez de receber as mensagens HL7 em Raw Content.

Já tinha visto exemplos em que pessoas usavam DTL para transformar uma mensagem HL7 específica em objeto JSON. O problema disso é que você precisa criar um DTL para cada tipo de mensagem HL7 que deseja processar. E se precisar processar um novo tipo, será necessário atualizar o código ou criar uma nova imagem.

Em vez de criar um DTL separado para cada tipo de mensagem, quis criar um método que transformasse qualquer mensagem HL7 em um objeto JSON. Esse método está na classe otw.parseHL7 no iris-hl7.

Configurei o repositório GitHub para disponibilizar uma demonstração online.

O HL7 File Service processa um arquivo de teste incluído no repositório GitHub.

Quando vi que existe uma classe de serviço HTTP HL7, tive a ideia de adicioná-la à produção no iris-hl7. Adicionei uma Operação Genérica HTTP na minha Produção Feeder e a configurei para enviar mensagens ao servidor de demonstração online do iris-hl7.

Os detalhes estão descritos no README do iris-hl7.

O que ainda quero melhorar no iris-hl7? Configurar a produção de Interoperabilidade para Auto-Start. Também estou avaliando se devo retornar a representação JSON da mensagem HL7 quando a Produção iris-hl7 receber a mensagem HL7 via HTTP.

讨论 (0)1
登录或注册以继续
讨论 (0)1
登录或注册以继续
文章
· 一月 11 阅读大约需 1 分钟

Exemplo de Interface: HL7 para banco de dados SQL externo

Esta é uma produção de exemplo do Ensemble/Health Connect que demonstra como receber um pedido HL7 (ORM) de entrada a partir de um arquivo, extrair campos (neste caso, informações demográficas básicas) e inseri-los em uma tabela de um banco de dados SQL externo via ODBC.

Incluído no arquivo zip:

  • Código exportado
  • Mensagem ORM de exemplo
  • Documento "Como configurar"

 demo_hl7tosqlproduction.zip

讨论 (0)1
登录或注册以继续
文章
· 一月 11 阅读大约需 3 分钟

Criando Tabelas Estrangeiras usando SQL via JDBC

Olá, pessoal. Quanto tempo! Mais uma vez, gostaria de compartilhar o que tenho estudado recentemente, criar tabelas estrangeiras usando SQL via JDBC.

Como estou aprendendo sobre o IRIS BI ao mesmo tempo, comecei utilizando este ambiente Docker de exemplo do Sample-BI.

https://github.com/intersystems/Samples-BI

 

Após iniciar o ambiente, faça login no portal de gerenciamento http://localhost:52773/csp/sys/UtilHome.csp  como Superuser.

Troque para o namespace IRISAPP.

 

 

😀 Vamos descobrir que todos os dados de exemplo estão armazenados no namespace IRISAPP. Vamos encontrar uma tabela simples para testar o recurso de Tabela Estrangeira 🤣

System Explorer > SQL

 

Vamos testar a tabela HoleFoods.Outlet  executando o seguinte SQL na aba Execute Query.

 

SELECT
ID, City, Country, Latitude, Longitude, Population, Type
FROM HoleFoods.Outlet

 

Perfeito!!😉 há 35 registros na tabela. Vamos usa-los.

 


Passo 1-  Configurando a conexão JDBC

Ao estudar o documento abaixo, podemos ver que o banco de dados InterSystems IRIS pode ser conectado via JDBC da seguinte forma.

Using the SQL Gateway as a JDBC Data Source

Então, vamos usar o namespace IRISAPP como o banco de dados de origem JDBC para teste e configurar uma conexão para ele.

Adicione uma nova conexão em System  > Configuration  > SQL Gateway Connections 

 

Use os seguintes dados para parametrizar

Connection name  testjdbc
User superuser
Password {you own password}
Driver name com.intersystems.jdbc.IRISDriver
URL  jdbc:IRIS://127.0.0.1:1972/IRISAPP

Deixe o campo Class path em branco neste caso, pois a conexão é com o banco de dados InterSystems IRIS. Se estiver conectando a um banco de dados de terceiros, lembre-se de baixar o arquivo do driver JDBC (.jar) e especificar o caminho do driver no campo Class path.

 

Salve e teste a conexão. O resultado esperado é que a conexão seja bem-sucedida. 😁

Yeah!!! we finished the 1st step.

 


Passo 2 - Criando uma tabela estrangeira

Agora, mude para outro namespace, USER, que não contém a tabela HoleFoods.Outlet. 😉

Aqui, queremos consultar essa tabela externa HoleFoods.Outlet utilizando o recurso de Tabela Estrangeira. (No InterSystems IRIS, namespaces diferentes podem ser configurados para apontar para bancos de dados diferentes. Neste exemplo, o namespace IRISAPP e o namespace USER estão apontando para bancos de dados diferentes. Como resultado, não podemos consultar a tabela do namespace IRISAPP diretamente a partir do namespace USER.)

 

Ao estudar o documento abaixo, podemos criar diretamente uma tabela estrangeira usando SQL.😁👍

Foreign Tables

Então, vamos novamente para a página de execução SQL. System Explorer > SQL

 

1. Criando um Foreign Server

Agora vamos definir um Foreign Server chamado Sample.testDB usando o seguinte SQL. testjdbc é o nome que definimos na conexão JDBC do SQL Gateway na etapa anterior.

CREATE FOREIGN SERVER Sample.testDB FOREIGN DATA WRAPPER JDBC CONNECTION 'testjdbc'

 

 

2.Criando uma Foreign Table

Agora vamos definir uma Foreign Table chamada demo.outlet, que aponta para a tabela HoleFoods.Outlet através do gateway JDBC

 

CREATE FOREIGN TABLE demo.outlet SERVER Sample.testDB TABLE 'HoleFoods.Outlet'

Vamos verificar o resultado na lista de tabelas.

Isso!!!! Uma Foreign Table demo.outlet foi criada. O esquema foi lido e criado automaticamente aliás. 😂 Que felicidade!

 


Por fim, teste a Foreign Table executando o seguinte SQL.

SELECT * FROM demo.outlet

 

 

35 registros da tabela Outlets foram retornados!!! Isso!! Conseguimos 🎉🤣

 


Apenas para referência

Removendo a Foreign Table demo.outlet 

DROP FOREIGN TABLE demo.outlet

 

 

Removendo o Foreign Server Sample.testDB 

DROP FOREIGN SERVER Sample.testDB CASCADE

 

É isso que eu queria compartilhar!!! Obrigado por ler😘

讨论 (0)1
登录或注册以继续