Durante a pandemia de Covid-19 tornou-se evidente a necessidade de transformação digital na área da saúde e muito foi questionado sobre como aperfeiçoar processos, melhorar gestão de recursos, modernizar e humanizar os atendimentos ao paciente.
Agora em 2023 eu completo 20 anos trabalhando com tecnologia, desenvolvendo sistemas, implementando, criando novas soluções e posso afirmar que trabalhar com tecnologia InterSystems fez e faz parte da minha vida. Afinal, foram 18 anos trabalhando todos os dias com essa tecnologia.
Comecei a trabalhar com o Caché 4, lá atrás em 2003, vivenciei as mudanças para o Caché 5, Caché e Ensemble 2008, 2010, 2012, 2014, 2017, 2018 e até finalmente chegarmos no InterSystems IRIS.
Recentemente eu recebi o desafio de criar um método de autenticação segura para autorizar acesso a alguns dados, mas infelizmente eu não tinha nenhuma experiência com essas configurações de segurança e senti que me faltava, alguns conceitos básicos para compreender melhor a documentação oficial.
Depois de estudar e conseguir entregar as classes que me pediram para desenvolver, eu gostaria de compartilhar um pouco do meu novo conhecimento, que me ajudou seguir os tópicos da documentação.
Projeto 1 - Integração utilizando SOAP Inbound Adapter
A idéia deste novo conjunto de postagens é apresentar uma série de integrações utilizando o InterSystems IRIS. Vamos ver integrações REST, SOAP, utilizando adaptadores ODBC, Arquivos e outros.
O FHIR (Fast Healthcare Interoperability Resources) é o padrão mais utilizado pelo mercado para interoperar e armazenar dados em saúde. Trata-se de um padrão que mapeia dezenas de recursos de dados (Pacientes, Observações, Medicações, Diagnósticos, Alergias, Vacinas, Faturamento, Provedores de Saúde, Atendimentos, dentre outros) e seus relacionamentos (Medicações do Paciente, por exemplo). O acesso a todas estas estruturas de dados se dá pelo uso de APIs REST em formato JSON ou XML. A princípio, a maioria dos fornecedores de soluções FHIR, não disponibiliza acesso aos dados no formato SQL.
De acordo com o relatório Global Fraud and Identity Report 2020 da Experian, as fraudes no setor financeiro globalmente ultrapassaram a marca de US$ 42 bilhões em 2020, com destaque para fraudes de identidade, bancárias, em cartões de crédito e débito, em empréstimos e em aplicativos móveis bancários. A pandemia do COVID-19 impulsionou o crescimento de fraudes relacionadas à saúde, como fraudes em benefícios de seguro-saúde e em programas de ajuda financeira do governo.
Temos o seguinte cenário, você trabalha em um laboratório, que até então atendia apenas exames realizados em uma região geográfica especifica, porém dentro de um curto espaço de tempo, percebe que seu negócio está expandindo para outras regiões, a demanda pela entrega dos resultados dos exames passa a não ser mais suportada pelo servidor principal, quedas e lentidões devido a alta repentina de solicitações, passam a ser mais frequentes e seus clientes passam a reclamar da indisponibilidade do sistema, como lidar com essa situação ?
O anonimização de dados é um tipo de higienização de informações cujo objetivo é a proteção da privacidade. É o processo de remoção de informações de identificação pessoal dos conjuntos de dados, para que as pessoas que os dados descrevem permaneçam anônimas.
Em alguns dos últimos artigos, eu falei sobre tipos entre IRIS e Python, e ficou claro que não é tão fácil acessar objetos de um lado pelo outro.
Por sorte, o trabalho já foi feito para criar o SQLAlchemy-iris (clique no link para ver na Open Exchange), o que faz tudo muito mais fácil para o Python acessar os objetos do IRIS, e eu vou mostrar como começar.
Estamos na era da economia multi-plataforma, e as API's são a "liga" deste cenário digital. Sendo tão importantes, elas são encaradas por desenvolvedores como um serviço ou produto a ser consumido. Assim sendo, a experiência na sua utilização é um fator crucial de sucesso.
No meu último artigo, falei sobre devolver valores com Python. Mas a devolução é muito simples, o que pode complicá-la é o que vou falar hoje: onde é tratado o valor.
Objeto Python em IRIS
Seguindo o exemplo do último artigo, temos o método:
A pandemia que atacou o mundo em 2020 fez com que todos passassem a acompanhar as notícias e números que envolvem a COVID-19.
Então, por que não usar essa oportunidade e criar algo simple e agradável de se acompanhar os números das vacinações mundo afora?
Para participar deste desafio, utilizo os dados providos pelo Our World in Data - Research and data to make progress against the world’s largest problems.
Recentemente eu precisei gerar uma especificação Swagger a partir de classes persistentes e seriais, então estou publicando meu código (ainda incompleto - você ainda precisa resolver detalhes específicos do aplicativo mas é um começo). Ele está disponível aqui.
Em meus artigos anteriores, descrevi minha Extensão de Linha de Comando para NativeAPI. É claro que isso também está disponível para qualquer outro pacote NativeAPI. Portanto, criei este exemplo em Python como uma demonstração.
Todas as instituições de saúde hoje, sejam públicas ou privadas, enfrentam os mesmos desafios:
Como fazer com que todas as informações de cada paciente sejam facilmente transmitidas dos seus sistemas de origem para as pessoas que precisam delas e vice-versa?
E como utilizar todas estas informações para melhorar a tomada de decisões, a qualidade do atendimento e os resultados?
O InterSystems HealthShare é uma plataforma integrada de serviços digitais capaz de conectar dados, serviços e processos de negócio em saúde para entregar uma operação harmoniosa baseada em Repositório Eletrônico de Saúde centralizado, HL7, FHIR e outros conhecidos padrões de mercado. Estes serviços digitais permitem:
Como observado no artigo anterior, a Native API possui algumas limitações. Portanto, fiz algumas pesquisas sobre uma interface mais semelhante a um terminal que me forneça acesso como um console ou o terminal IRIS para permitir meu $QUERY em um global e outros comandos úteis que não são suportados/mapeados na NativeAPI para ObjectScript.
As ferramentas básicas estão bem preparadas e disponíveis.
Chegou a hora de iniciarmos o desenvolvimento dos relatórios utilizando o InterSystems IRIS Reports, powered by Logi Analytcs.
Lembrando que na primeira parte do artigo falamos o que é o InterSystems IRIS Reports, e como ele vem facilitar a vida dos desenvolvedores na entrega de relatórios, e na segunda parte executamos o procedimento de instalação dos ambientes server e designer e o procedimento para fazer o download dos binários de instalação!
Alguns conceitos importantes antes de iniciarmos o desenvolvimento sobre os tipos de relatórios que podemos desenvolver:
Estáticos: Os relatórios e seus resultados não podem ser modificados pelo usuário final. O layout e os dados inclusos são definidos pelo desenvolvedor.
Dinâmicos: Os relatórios podem ser modificados pelos usuários finais, como no estático o layout e dos dados são inclusos pelo desenvolvedor, porém o usuário final consegue modificá-los em tempo de execução.
Ad Hoc – Relatórios e dados são construídos e modificados em tempo de execução pelo usuário final.
Quantas vezes nos deparamos em reconstruir, copiar, colar adpatar, Businesss Operations que fazem chamadas para serviços REST, e apenas adaptamos uma ou outra parte do código final. Isso incomada e muito. Para resolver esse nosso incoveniente apresento para vocês Interopway REST, um conjunto de classes (um micro framework) que nos permite apenas adicionar o Business Operation à Production e utilizar.
Este projeto é um experimento em usar as APIs da OpenAI para responder prompts de usuários no domínio de saúde usando recursos FHIR e codificação em Python.
Exporte um Global no formato JSON e importe também este formato. Académico refere-se à estrutura criada. Cada nó lógico do Global é apresentado separadamente com todos os seus descendentes. Mesmo que não contenham dados armazenados.
DNA Similarity and Classification é uma API REST utilizando a tecnologia InterSystems Vector Search para investigar semelhanças genéticas e classificar eficientemente sequências de DNA. Este é um aplicativo que utiliza técnicas de inteligência artificial, como aprendizado de máquina, aprimorado por recursos de pesquisa vetorial, para classificar famílias genéticas e identificar DNAs semelhantes conhecidos a partir de um DNA de entrada desconhecido.