Nova postagem

Pesquisar

Anúncio
· Out. 8, 2024

Lançamento do VS Code em setembro de 2024 (versão 1.94)

O Visual Studio Code lança novas atualizações todo mês com novos recursos e correções de bugs, e a versão de setembro de 2024 já está disponível.

A versão 1.94 agora inclui:

  • Localizar no Explorer - Encontre arquivos rapidamente na visualização do Explorer com o controle Localizar aprimorado. Como consequência disso, o widget Localizar do Explorer em pastas do lado do servidor requer a versão 2.12.9-beta.4 ou posterior com APIs propostas habilitadas. Leia mais nesta publicação da Comunidade de desenvolvedores.
  • Source Control Graph - Mais opções de filtragem e interatividade no Source Control Graph.
  • Cobertura de teste Python - Execute testes Python com cobertura e obtenha resultados avançados no editor.
  • ESM - Inicialização mais rápida do VS Code graças à migração para o ESM.
  • Preferência de conta - Especifique qual conta usar para uma extensão.
  • Copilot no Native REPL - Obtenha conclusões de código e bate-papo em linha no Native REPL.
  • Contexto de bate-papo aprimorado - Arraste e solte arquivos ou use o IntelliSense para um contexto de bate-papo mais relevante.
  • Configuração do ambiente de teste - Obtenha ajuda para configurar uma estrutura de teste para seu espaço de trabalho.

O lançamento também inclui contribuições do nosso próprio @John.Murray por meio de solicitações de pull que abordam problemas em aberto.

Saiba mais sobre esses recursos nas notas de lançamento aqui > https://code.visualstudio.com/updates/v1_9

Para aqueles com VS Code, seu ambiente deve ser atualizado automaticamente. Você pode verificar manualmente se há atualizações executando Help > Check for Updates no Linux e Windows ou executando Code > Check for Updates no macOS.

Se você está pensando em migrar do Studio para o VS Code, mas precisa de ajuda, dê uma olhada nos cursos de treinamento que a George James Software oferece > georgejames.com/vscode-training 

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· Out. 8, 2024

InterSystems Global Masters - Bem-vindo de volta (Beta)

Olá Comunidade, 

O Global Masters abre as portas!

Logging usando InterSystems SSO

Acesse a plataforma usando >> [este link] << e faça login com seu SSO da InterSystems.


Observação: durante os testes recentes, descobrimos que alguns usuários estão encontrando erros ao tentar fazer login dessa forma. No momento, estamos investigando o problema com o fornecedor. Se você tiver esse erro, basta me avisar por DM e eu lhe enviarei um convite manual!

Isenção de responsabilidade BETA

Observe que esta ainda é uma versão BETA, e estamos trabalhando ativamente nos bastidores para melhorar muitos aspectos do programa. Se você encontrar algum problema com acesso, seu perfil ou detectar algum erro, sinta-se à vontade para me enviar uma mensagem direta.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Out. 8, 2024 8min de leitura

eBPF - Cilium on FHIR® - Uma história Star Wars

 

Anakin Skywalker desafiou o alto terreno e foi terrivelmente ferido em Mustafar.  

 Ele é um funcionário relativamente novo do Império Galáctico, coberto por um Grande Plano de Grupo Planetário e agora tem um encontro ativo em andamento para serviços médicos emergentes na Grande Instalação Médica em Coruscant. O EMR implantado para o Sistema de Saúde Galáctico é alimentado pelo InterSystems FHIR Server rodando em Kubernetes protegido por Cilium.
 

Vamos recriar o cenário técnico, a ser executado no estilo de Isovalent Labs...

Kind Cluster

Vamos iniciar um cluster de 3 nós e desativar o CNI para que possamos substituí-lo pelo Cilium.

cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
  - role: worker
  - role: worker
networking:
  disableDefaultCNI: true
EOF

Isso provisionará o cluster kind, 3 nós de largura com um único plano de controle.


Cilium

Cilium é um projeto de código aberto que fornece rede, segurança e observabilidade para ambientes conteinerizados como clusters Kubernetes. Ele usa uma tecnologia do kernel Linux chamada eBPF (extended Berkeley Packet Filter) para injetar lógicas de segurança, rede e observabilidade no kernel.

Em outras palavras, empunha a força.

cilium install --version v1.16.0
cilium status --wait


Hubble

Hubble é um traje de palhaço para Cilium, fornecendo visibilidade ridícula sobre quais poderes do Cilium estão em jogo em tempo real.

cilium enable hubble

 

 

Carga de trabalho InterSystems FHIR

InterSystems é o GOAT da interoperabilidade e transforma dados de saúde como um droide de protocolo.

kubectl apply -f https://raw.githubusercontent.com/sween/basenube/main/scenarios/ciliumfhir/deploy/cilium-fhir-starwars.yaml

A carga de trabalho resultante tem 4 implantações:

GrandMedicalFacility

Rede Integrada de Assistência Médica com sede em Coruscant, com instalações até o Bordo Exterior, utiliza o Epic e emprega o InterSystems I4H como um servidor FHIR.

MedicalDroid FX-6

Este droide de 1,83 metro de altura forneceu a Vader uma transfusão de sangue e treinou em procedimentos de pernas cibernéticas.

MedicalDroid DD-13

Também conhecido como DD-13 tripedal medical droid, este droide possui três pernas para estabilidade e foi projetado para instalar implantes cibernéticos.

MedicalDroid 2-1B

Os droides 2-1B possuem injetores hipodérmicos e pinças de servogrip fabricadas com precisão, e podem ser atualizados para se especializar em áreas como substituição de membros cibernéticos, neurocirurgia e biologia alienígena.

Como precisaremos disso de qualquer forma para as próximas entrevistas, vamos contar a história na verdadeira metodologia STAR (Situação, Tarefa, Ação, Resultado).

Sith-uation

Palpatine acompanhou o jedi caído para a instalação e, ao chegar, ajudou o registro a admiti-lo como Darth Vader.

cat > vader.json << 'EOF'
{
  "name": [
    {
      "use": "official",
      "family": "Vader",
      "given": [
        "Darth"
      ]
    }
  ],
  "gender": "male",
  "id": "DarthVader",
  "birthDate": "1977-05-25",
  "resourceType": "Patient"
}
EOF
curl -v -X PUT \
  -H "Content-Type: application/fhir+json" \
  -d @vader.json \
  "http://coruscanthealth:52773/intersystems/fhir/r5/Patient/DarthVader"

Darth Vader está agora registrado e pode ser visto em todo o sistema de saúde...

Pane de TI Galáctica

No entanto, tem um problema!

Pouco após o registro, ocorreu uma interrupção de TI galáctica, deixando o provedor de identidade do sistema de saúde indisponível. O servidor de recursos FHIR do InterSystems está habilitado para SMART, e o IDP está configurado, tornando o lançamento do EMR impossível na ausência do token JWT com os escopos aplicáveis para proteger as rotas..


[Nota do tradutor: segue tradução da imagem]

Palpatine: Tem um minuto?

Sween: Eu não estou de plantão, estou na casa dos 50, pelo amor dos Siths!

Palpatine: Todo mundo está me ignorando, e eu tenho um Jedi caído precisando desesperadamente de ajuda, e a equipe de cuidados está tendo problemas para acessar o Repositório FHIR do InterSystems devido a uma interrupção no provedor de identidade.

Sween: Você tem um JIRA para esse problema?

Palpatine: Não, mas eu posso atirar raios das minhas mãos.

Sween: Relaxa boomer, eu vou dar uma olhada.

 

Com certeza, temos um problema... a equipe de cuidados não consegue acessar o prontuário do paciente, só recebem códigos 401 e 403, e não estamos falando sobre seu Plano de Aposentadoria Galáctico.

Embora a interface do Hubble só forneça uma pista do que está acontecendo, inspecionar os fluxos do Hubble com informações da Camada 7 revela a situação.




...e após adicionar alguns debugs bunny ao endpoint FHIR do InterSystems, confirma isso.

 
FHIR Debug
zw^FSLOG
...
^FSLOG(379555)="DispatchRequest^HS.FHIRServer.Service^944|Msg|Dispatch interaction read for Patient/DarthVader|09/19/2024 10:48:20.833339AM"
^FSLOG(379556)="DispatchRequest^HS.FHIRServer.Service^944|Msg|Request Completed in .000186 secs: Patient/DarthVader|09/19/2024 10:48:20.833450AM"
^FSLOG(379557)="processRequest^HS.FHIRServer.RestHandler^944|Msg|Response Status: 401, Json: Patient|09/19/2024 10:48:20.833454AM"
...


Tarefa

What's a great line from Star Wars that doesn't get quoted enough? :  r/StarWarsCantina

[Nota do tradutor: tradução da imagem abaixo]

"Algumas vezes devemos deixar de lado o orgulho e fazer o que nos é requisitado." - Anakin Skywalker em Ataque dos Clones

Ação

Como a aplicação da política de rotas do SMART não é aplicável, vamos fazer do nosso jeito e usar o Cilium para proteger os endpoints enquanto Vader recebe a atenção imediata que o Imperador exige. Vamos agir como os Rebeldes aqui no cluster e transferir a proteção de endpoint/rota para o Cilium enquanto a Galáxia se recupera da interrupção.

Vamos implementar uma política de 'negar tudo' de qualquer lugar, usando uma CiliumClusterwideNetworkPolicy, e trabalhar de trás para frente no estilo de 'confiança zero'.

cat <<EOF | kubectl apply -n galactic-fhir -f- 
apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
metadata:
  name: "denyall-coruscanthealth"
spec:
  description: "Block all the traffic (except DNS) by default"
  egress:
  - toEndpoints:
    - matchLabels:
        io.kubernetes.pod.namespace: kube-system
        k8s-app: kube-dns
    toPorts:
    - ports:
      - port: '53'
        protocol: UDP
      rules:
        dns:
        - matchPattern: '*'
  endpointSelector:
    matchExpressions:
    - key: io.kubernetes.pod.namespace
      operator: NotIn
      values:
      - kube-system
EOF

Está ótimo, Cilium lançando como se fosse quente!

Agora, vamos abrir o endpoint FHIR no pod do InterSystems, desativando o cliente oauth2.

set app = "/intersystems/fhir/r5"
Set strategy = ##class(HS.FHIRServer.API.InteractionsStrategy).GetStrategyForEndpoint(app)
// 7 = Mass Openness
Set configData.DebugMode = 7
Set configData = strategy.GetServiceConfigData()
Do strategy.SaveServiceConfigData(configData)

Por último, vamos criar uma CiliumNetworkPolicy para permitir que qualquer pessoa da organização:império acesse a rota para o registro de Darth Vader no namespace galactic-fhir.

apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "l7-visibility"
spec:
  endpointSelector:
    matchLabels:
      org: empire
  egress:
  - toPorts:
    - ports:
      - port: "53"
        protocol: ANY
      rules:
        dns:
        - matchPattern: "*"
  - toEndpoints:
    - matchLabels:
        "k8s:io.kubernetes.pod.namespace": galactic-fhir
    toPorts:
    - ports:
      - port: "52773"
        protocol: TCP
      rules:
        http:
          - method: "GET"
            path: "/intersystems/fhir/r5/Patient/DarthVader"
          - method: "HEAD"
            path: "/intersystems/fhir/r5/Patient/DarthVader"
EOF

Parece que podemos voltar ao iRacing, acho que estamos bem.



...exceto

 [Nota do tradutor: tradução da imagem abaixo]

Palpatine: Desculpe te acordar, parece que temos outro problema.

Sween: Por que a liderança sempre diz isso para apoiar as pessoas e assume que todos apenas trabalham e dormem?

Palpatine: Desculpe, achei que o pessoal da geração X não ligasse para nada e só dormisse o tempo todo.

Sween: justo

Palpatine: Então, os droids médicos estão dizendo que o Vader precisa de pernas, mas o plano de saúde precisa aprovar, mas não consegue acessar o registro para pré autorizar o procedimento.

Sween: surreal

Palpatine: Eu sei, não é? Eu tenho o maior de todos os planos de grupo largos em toda a galáxia e ainda tenho que navegar o sistema de saúde galáctico assim.

Sim, parece que o pagador está sendo descartado...

Veredicto da política = REJEITADO



Vamos adicionar outra política, permitindo que a organização:pagador acesse a rota de Vader:

cat <<EOF | kubectl apply -n galactic-fhir -f- 
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "l7-visibility-payer"
spec:
  endpointSelector:
    matchLabels:
      org: payer
  egress:
  - toPorts:
    - ports:
      - port: "53"
        protocol: ANY
      rules:
        dns:
        - matchPattern: "*"
  - toEndpoints:
    - matchLabels:
        "k8s:io.kubernetes.pod.namespace": galactic-fhir
    toPorts:
    - ports:
      - port: "52773"
        protocol: TCP
      rules:
        http:
          - method: "GET"
            path: "/intersystems/fhir/r5/Patient/DarthVader"
          - method: "HEAD"
            path: "/intersystems/fhir/r5/Patient/DarthVader"
EOF

Bem, isso não foi suficiente, e podemos ver por quê.


 [Nota do tradutor: tradução da imagem abaixo]

Sween: Quem é Anakin?

Palpatine: Ah, o Anakin agora é Darth Vader

Sween: Desde quando?

Palpatine: Era Anakin, então virou Vader

Sween: Quando o "então virou" será agora?

Então ligamos para o pagador e pedimos que eles acessassem o registro do paciente "correto", e Anakin Skywalker recebe suas pernas.

Hora de desabafar...

[Nota do tradutor: tradução da imagem abaixo]

Sween: Você sabe que eles têm um problema sério de identidade Galáctica naquele sistema de saúde.

Sween: Me parece que o EMR que registrou o Darth fez um POST com um conjunto de nomes.


Resultado

[Nota do tradutor: tradução da imagem abaixo]

Está funcionando! Está funcionando!!!

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· Out. 8, 2024

[Video] Using AI to Automate and Improve Resident Funding in Nursing Homes

Hey Community,

Watch this video to learn how InterSystems partner Mirus uses InterSystems IRIS to deliver clean data from multiple systems and feed a robust AI model that ensures that providers receive full funding for each resident while reducing administrative burden:

⏯ Using AI to Automate and Improve Resident Funding in Nursing Homes @ Global Summit 2024

Presenters:
🗣 Robert Covino, Founder and Partner, Mirus Australia
🗣 Alejandro Moran, Head of AI Development, Mirus Australia  

Subscribe to our YouTube channel InterSystems Developers to get notifications about new videos!

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Out. 8, 2024

Docker build with merge results in error

Hello,

I'm trying to create a custom IRIS4Health docker container utilizing CPF Merge but getting an error below. The merge file has been copied to the container within the docker file. Anybody know what would cause this error?

ERROR: failed to solve: process "/bin/sh -c iris start IRIS && iris merge IRIS mergefile.cpf" did not complete successfully: exit code: 133

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