Nova postagem

Pesquisar

Pergunta
· jan 28

VSCode GIT No Change Possible?

Hi,

We are currently switching from Studio to VSCode and central GIT with Serverside Development and have a few start problems.
I have set up a system with Git.

The baseline commit including remote push works. 

But now I have a problem with the VSCode. When I create and compile a new class, it saves it correctly. But if I want to make further changes to the class, it saves the class and loads it again with the previous status.  So the changes I made are gone again.   

I have deactivated CompileOnSave without success.
The log shows the following

exporting new version of Utils.HL7Documentation.CLS to E:\HealthConnect\Git\Sources\Sources\cls\Utils\HL7Documentation.cls
Laden gestartet am 01/28/2025 16:31:26
Lade Datei E:\HealthConnect\Git\Sources\Sources\cls\Utils\HL7Documentation.cls als udl
Laden erfolgreich abgeschlossen.

It is probably just a small thing again. Does anyone have any advice for me? 

Kind regards

Armin

4 Comments
Discussão (4)4
Entre ou crie uma conta para continuar
Artigo
· jan 28 2min de leitura

VSCode Extension for Visual Parsing of ISCLOGs

ISCLOGs are a useful debugging tool provided with IRIS that can help you troubleshoot many different issues. For more information about creating these logs, please see the following IRIS documentation: "Logging".

This log is written to the ^ISCLOG global stored in the %SYS namespace. Each global node is a separate event, with additional information sometimes logged to the subnode.

Each entry consists of a list containing the following fields: ID, Category, LogLevel, Message, Namespace, Process ID, Routine, SessionID, Tag, and, TimeAdded. For more details about the different fields, please refer to the "Fields in the Log" section in the IRIS documentation.

While this tool provides valuable information, it also generates many entries and can be difficult to interpret. To help with that, I created a VSCode extension that improves readability in two ways:

1) By exporting an ISLOG to VSCode, you can use built-in VSCode features like file compare.

2) The utility includes syntactic highlighting to make it easier to identify different fields.

Installation:

  1. In VSCode, search for the extension "Pretty ISCLOGs" or use the following link: https://marketplace.visualstudio.com/items?itemName=tchismar.pretty-isclogs
  2. Select the install button to load the extension
  3. Follow the steps below to export and view an ISLOG

Usage:

  1. In the ObjectScript Shell, navigate to the "%SYS" namespace.
  2. Run the following command to specify a filename – you can use any filename as long as it has the ".isclog" extension

set file = <filepath>/filename.isclog

ie: set file="C:/ISCLOGs/myISCLOG.isclog"

  1. Run the following command to export your ISCLOG global to the file:

Open file: "wns" use file zw ^ISCLOG close file

  1. Open the file with VSCode to view the log

Here is an example screenshot using InterSystems Default Dark Modern color theme:

Limitations:

Due to changes in ISCLOGs' storage, this utility will only work with more recent releases (Generally, IRIS releases from 2018 and later).

I've tested this using the themes provided in the InterSystems ObjectScript Extension. The utility uses VSCode's token colors. The exact colors used are set by whichever theme you've applied, so readability may vary depending on your theme.

7 Comments
Discussão (7)6
Entre ou crie uma conta para continuar
Artigo
· jan 28 4min de leitura

Conectando JDBC ao MS Azure SQL pelo Microsoft Entra e Active Directory Password Authentication

Não tenho certeza se muitos se conectam ao MS SQL para executar consultas, procedimentos armazenados, etc., mas nosso Sistema de Saúde possui muitos bancos de dados baseados em MS SQL que utilizamos no ambiente de Interoperabilidade por vários motivos.

Com a migração do ambiente local para a nuvem, enfrentamos algumas dificuldades com as conexões do SQL Gateway e como configurá-las para usar o Microsoft Entra para autenticação do Active Directory.

Existem muitos artigos na web, mas nenhum deles forneceu a resposta completa para o que precisávamos fazer, e a Microsoft não foi de grande ajuda. Resolvi escrever isso, para que possa ajudar outros que possam estar enfrentando o mesmo problema.


Contexto
Estamos atualmente executando o RedHat 8.10 e o openjdk versão "1.8.0_432".Utilizamos o SQL Gateway para conectar ao MS SQL usando o driver mssql-jdbc-12.2.0.jre8.jar com uma conta de usuário do Serviço de Domínio do Active Directory
jdbc:sqlserver://<server>:<port>;database=<database>;trustServerCertificate=true;integratedSecurity=true;authenticationScheme=NTLM;domain=<domain>;authentication=NotSpecified

 

Quando o banco de dados foi movido para o Azure SQL, recebi uma nova URL que incluía jdbc:sqlserver://<server>:<port>;databaseName=<database>;domain=<domain>;encrypt=true;trustServerCertificate=true;hostNameInCertificate=<server name>;Authentication=ActiveDirectoryPassword

 

Quando cliquei em 'Testar Conexão', recebi ...Remote JDBC error: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to load MSAL4J Java library for performing ActiveDirectoryPassword authentication..

Tentei atualizar o driver MS SQL JDBC para mssql-jdbc-12.8.1.jre8.jar mas recebi o mesmo erro, indicando que ainda faltava algo.

Em seguida, tentei conectar usando o DBeaver e, após algumas ajustes na conta, consegui estabelecer a conexão com sucesso. Então, baixei o arquivo de classe utilizado pelo DBeaver e carreguei os arquivos JAR no meu servidor.

Trabalhando com o WRC, atualizei meu %JDBC Server para usar o caminho dos arquivos JAR adicionais e mantive meu driver como o Caminho da Classe na string de conexão do SQL Gateway.

No entanto, o 'Testar Conexão' ainda gerava um erro.


Instalando o Maven

A Microsoft me recomendou atualizar o Maven, mas eu não tinha ideia do que se tratava nem como usá-lo. Tentei baixar manualmente o msal4j.jar, mas encontrei vários erros. O Repositório Maven listou as dependências, então tentei baixar manualmente todos os arquivos JAR das dependências, mas ainda não consegui fazer funcionar.Existem várias maneiras de instalar o Maven, mas utilizei o guia 'How to Install Maven on Windows, Linux, and Mac | Baeldung' para descobrir como baixá-lo para meu servidor, já que o comando 'yum install maven' não encontrou o repositório para download.

Após o download e a instalação, foi necessário adicionar$JAVA_HOME, $M2_HOME, e $MAVEN_HOME ao meu arquivo .profile.


Baixando e instalando o arquivo JAR necessário e suas dependências

Durante a resolução de problemas na tentativa de conexão com o Azure SQL, continuei recebendo uma mensagem de erro relacionada ao msal4j.jar.
Usando o Maven na linha de comando... executei

:>mvn dependency:get -Dartifact=com.microsoft.azure:msal4j:1.18.0

O comando baixou o msal4j.jar e todas as suas dependências para o repositório .m2 no servidor local.
A partir daí, eu queria pegar os arquivos JAR e copiá-los para a estrutura de diretórios que havia configurado para o IRIS. Portanto, executei:
:>mvn dependency:copy-dependencies -f /archive/.m2/repository/com/microsoft/azure/msal4j/ -DoutputDirectory=/nfs/data/drivers/java/

Mas, mesmo usando o Maven, ainda era necessário copiar o msal4j.jar manualmente. Portanto, copiei esse arquivo JAR da estrutura do repositório .m2 para o diretório/nfs/data/drivers/java/

Atualizando %JDBC Server e Conexão SQL Gateway"Para estabelecer uma conexão bem-sucedida, precisei garantir que todos os arquivos JAR necessários estivessem definidos nos Caminhos de Classe.

Portanto, no %JDBC Server, defini o Caminho de Classe para /nfs/data/drivers/java/* que contém o msal4j.jar e todas as suas dependências.Na Conexão SQL Gateway, precisei verificar se o Usuário tinha o domínio definido corretamente, redigitei a senha, cliquei em 'Testar Conexão' e consegui obter uma 'Conexão Bem-Sucedida'.


No final, a parte mais difícil foi saber como baixar o msal4j.jar e suas dependências para garantir a autenticação correta por meio do Microsoft Entra.

Portanto, espero que isso ajude alguém no futuro quando tentar se conectar ao Azure SQL Server usando a Autenticação de Senha do Active Directory por meio do Microsoft Entra.

Discussão (0)1
Entre ou crie uma conta para continuar
InterSystems Oficial
· jan 28

Novos e Futuros Recursos Incorporados no Git

Já faz um tempo que não posto sobre o Embedded Git na Comunidade de Desenvolvedores, e gostaria de fornecer uma atualização sobre a enorme quantidade de trabalho que fizemos este ano e para onde estamos indo a seguir.

Contexto

Se você estiver construindo soluções no IRIS e quiser usar o Git, isso é ótimo! Basta usar o VSCode com um repositório git local e enviar suas alterações para o servidor - é muito fácil.

Mas e se:

  • Você está colaborando com outros desenvolvedores em um ambiente de desenvolvimento remoto e compartilhado e quer evitar pisar nos pés uns dos outros editando o mesmo arquivo ao mesmo tempo
  • Você está usando editores baseados no portal de gerenciamento para interoperabilidade ou inteligência de negócios e deseja controle de origem direto para seu trabalho - mesmo em um contêiner local 
  • Você ainda está usando o Studio para algumas coisas e/ou ocasionalmente volta do VSCode; ou sua equipe ainda não adotou totalmente o VSCode, e alguns membros da equipe ainda querem usar o Studio enquanto outros usam o VSCode
  • Você está trabalhando em vários projetos separados ao mesmo tempo no mesmo namespace - digamos, vários pacotes definidos usando o InterSystems Package Manager - e quer trabalhar com todos eles a partir de uma visualização de edição do isfs (em vez de vários projetos distintos) com alterações rastreadas no repositório git local apropriado automaticamente

Em qualquer um desses casos, você realmente precisa de controle de origem incorporado. Você pode ter ouvido isso chamado de "controle de origem do lado do servidor" ou "ganchos de controle de origem" - é tudo a mesma coisa e significa que há um comportamento de controle de origem consistente em todos os editores, tanto IDE quanto editores gráficos, em uma instância IRIS. Tudo isso funciona em um repositório de controle de origem colocalizado com sua instância IRIS, que pode estar em um servidor remoto, sua própria máquina ou até mesmo em um contêiner.

Se você quiser começar com o controle de origem incorporado usando o Git, o Embedded Git (https://github.com/intersystems/git-source-control) é o lugar para começar. Este não é um produto com suporte da InterSystems, mas tem um apoio significativo da minha equipe (Serviços de Aplicativos) dentro da InterSystems e uma ampla comunidade de usuários. PRs e problemas do GitHub são sempre bem-vindos, e monitoramos a atividade da Comunidade de Desenvolvedores (especialmente usando a tag relativamente nova "Embedded Git").

"Embedded Git" em 2024

No começo do ano, eu recomendaria o Embedded Git para usuários mais técnicos, já familiarizados com o Git e dispostos a se aprofundar quando necessário. Agora, eu o recomendaria de todo o coração para qualquer um. Como uma representação do esforço que colocamos na ferramenta e do avanço louco que vemos em 2024, aqui está um gráfico do nosso volume de commits nos últimos anos:

Se quiser ver o que temos feito, você pode conferir os Lançamentos ou nosso Registro de Alterações, mas aqui está um resumo dos pontos altos:

  • Em julho, adicionamos um "Modo Básico" descrito aqui com uma operação "Sincronizar" que simplifica um fluxo de trabalho de pull/commit/rebase/push que recomendamos em geral, mas especialmente para pessoas menos familiarizadas com o Git.
  • Em vários lançamentos, tornamos perfeito ter operações de pull e checkout do git - na verdade, qualquer coisa que modifique o estado do repositório Git - sincronizadas perfeitamente de volta ao IRIS para que tudo seja mantido atualizado sem precisar recarregar à força toda a base de código.
  • Nosso lançamento de setembro tornou super fácil configurar uma conexão isfs baixando um arquivo de espaço de trabalho do VSCode do portal de gerenciamento.
  • Nosso lançamento de novembro tornou possível configurar muito mais por meio da página de configurações da extensão em vez de precisar executar comandos no Terminal e adicionou resolução inteligente de conflitos de mesclagem para os dois casos de uso mais comuns (quase garantidos) em uma configuração de interoperabilidade.
  • Junto com tudo isso, resolvemos dezenas de pequenos bugs e problemas de usabilidade, simplificamos a navegação pelo Portal de Gerenciamento e adicionamos muitos recursos menores para simplificar os casos de uso de interoperabilidade e a colaboração entre vários namespaces específicos do desenvolvedor em uma instância remota compartilhada (o que vemos e recomendamos como uma abordagem comum).

Em Breve

Nosso próximo lançamento (2.8.0), esperado para as próximas duas semanas, incluirá um recurso no qual estamos trabalhando há meses - "Decomposição de Produção". A produção de interoperabilidade é tipicamente controlada pela fonte como um único arquivo, o que leva a problemas de simultaneidade porque apenas uma pessoa pode editar a produção por vez. Também há conflitos de mesclagem quase garantidos em ambientes de desenvolvimento compartilhados e, embora possamos resolvê-los de forma inteligente, eles provavelmente continuarão a surgir em certos fluxos de trabalho de ramificação. Com a Decomposição de Produção, cada host de negócios (serviço, processo ou operação) é representado no controle de origem como um único arquivo. Se você estiver interessado em experimentar isso, avise-nos!

Manteremos o ritmo no Embedded Git em 2025, com foco em métodos de autenticação adicionais e suporte para outros padrões comuns de implantação. Você pode ver o plano aproximado em nosso Milestone H1 de 2025 (que abrangerá alguns lançamentos; geralmente lançamos versões menores mensalmente e versões de patch conforme necessário para correções de bugs importantes).

Se você estiver interessado em aprender mais / acompanhar o desenvolvimento conforme ele acontece, temos uma reunião semanal de stakeholders às sextas-feiras, da qual você seria bem-vindo para participar. Isso também acaba servindo como uma espécie de "horário de expediente" para o Embedded Git em geral. Sinta-se à vontade para me enviar uma mensagem com seu endereço de e-mail e eu o convidarei. 

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· jan 28

FHIR server: logical reference that makes <HSFHIRErr>MalformedRelativeReference

"basedOn" : [{
    "reference" : "CarePlan?identifier=urn:ietf:rfc:3986|urn:uuid:3aae92e6-9c51-46ab-83bb-bc3a5a66d429"
  }],

Hello,

I am new to InterSystems FHIR server implementation and in process of evaluating it. (R5)

I try to create a Task referencing a CarePlan resource as above.

I got the following error message and I wonder what could be the mistake as it used to work against another FHIR server implementation. (the referenced CarePlan resource does not exist but I guess that in this case the error code would be different?)

 

{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "invalid",
      "diagnostics": "<HSFHIRErr>MalformedRelativeReference",
      "details": {
        "text": "The reference value 'CarePlan?identifier=urn:ietf:rfc:3986|urn:uuid:3aae92e6-9c51-46ab-83bb-bc3a5a66d429' in property (basedOn) of Type 'Task' is malformed"
      },
      "expression": [
        "Task.basedOn[0]"
      ]
    }
  ]
}

Regards.

1 Comment
Discussão (1)1
Entre ou crie uma conta para continuar