O Management Portal não possui uma forma nativa de alternar para o modo escuro. Isso pode ser resolvido usando uma extensão do Chrome chamada Dark Reader. Veja o resultado:
Para instalar e usar o Dark Reader:
Pedaços da experiência tecnológica InterSystems que resolve algum problema específico de maneira elegante ou incomum.
O Management Portal não possui uma forma nativa de alternar para o modo escuro. Isso pode ser resolvido usando uma extensão do Chrome chamada Dark Reader. Veja o resultado:
Para instalar e usar o Dark Reader:
Olá a todos. Sou eu de novo!!😀😀
Recentemente, eu estava tentando organizar alguns materiais de aprendizado para o InterSystems IRIS😆 e percebi que os recursos estão, na verdade, bem dispersos.🤐
Por isso, montei uma lista aqui — agrupada por categorias — para qualquer pessoa que:
ou queira se aprofundar em áreas específicas
Também estou adicionando um pouco da minha própria experiência sobre o que funcionou (e o que não funcionou, talvez apenas não tenha funcionado para mim🤫🤐).
Aqui na InterSystems, frequentemente lidamos com conjuntos massivos de dados estruturados. Não é incomum ver clientes com tabelas contendo mais de 100 campos e mais de 1 bilhão de linhas, cada tabela totalizando centenas de GB de dados. Agora imagine fazer o join de duas ou três dessas tabelas, com um esquema que não foi otimizado para esse caso de uso específico. Só por diversão, vamos supor que você tenha 10 anos de dados de EMR de 20 hospitais diferentes em todo o seu estado, e você foi encarregado de encontrar….
Se você quiser gerar um erro personalizado arbitrário dentro de um bloco TRY, pode passar uma exceção com um throw, da seguinte forma. No exemplo abaixo, um erro personalizado é gerado se Stcount for menor que 1.
ClassClassMethodtryNo exemplo acima, se for menor que 1, um erro como o seguinte será exibido:
USER>Para mais informações, consulte a seguinte documentação:
ObjectScript command _THROW
Se você quiser criar um código de status arbitrário, faça o seguinte:
Olá, pessoal! Tendo me integrado recentemente à InterSystems, percebi que, apesar de ter uma Edição Comunitária totalmente gratuita e incrível, não é muito claro como obtê-la. Decidi escrever um guia destacando todas as diferentes maneiras de acessar a Edição Comunitária do InterSystems IRIS:
Trabalhar com uma instância em contêiner da Community Edition é a abordagem recomendada para quem está começando a desenvolver no InterSystems IRIS e, na minha opinião, é a mais simples. A Community Edition do InterSystems IRIS pode ser encontrada no DockerHub; se você tiver uma conta InterSystems SSO, também poderá encontrá-la no Registro de Contêineres da InterSystems.
Em ambos os casos, você vai querer extrair a imagem desejada usando o Docker CLI:
docker pull intersystems/iris-community:latest-em
// or
docker pull containers.intersystems.com/intersystems/iris-community:latest-emEm seguida, você precisará iniciar o contêiner: para interagir com o IRIS de fora do contêiner (por exemplo, para usar o portal de gerenciamento), você precisará publicar algumas portas. O comando a seguir executará o contêiner IRIS Community Edition com as portas do superservidor e do servidor web publicadas; observe que você não pode executar nada que dependa das portas 1972 ou 52773!
docker run --name iris -d --publish 1972:1972 --publish 52773:52773 intersystems/iris-community:latest-emOlá a todos,
Criei um método para calcular a idade de uma pessoa, ou a idade de um processo, contrato ou qualquer outra coisa que você quiser.
/// Calculate the age from date of birth and other date (by default shoud be today).
/// <b>dateOfBird</b> Date of birth in cache format. ie. $ZDH("1972-01-01",3)
/// <b>day</b> Date to calculate to. ie: $H
ClassMethod AgeAt(dateOfBirth, day) As %Integer{
quit:dateOfBirth=""
quit:day=""
set yeardob=$SYSTEM.SQL.DATEPART("year",dateOfBirth)
set yearday=$SYSTEM.SQL.DATEPART("year",day)
set years=yearday-yeardob
kill yeardob, yearday
set monthdob=$SYSTEM.SQL.DATEPART("month",dateOfBirth)
set monthday=$SYSTEM.SQL.DATEPART("month",day)
if (monthday-monthdob)<0 set years=years-1
if (monthdob-monthday)=0
{
if ($SYSTEM.SQL.DATEPART("day",day) - $SYSTEM.SQL.DATEPART("day",dateOfBirth)) < 0
{
set years=years-1
}
}
kill monthdob, monthday
quit years
}
Ao se conectar ao banco de dados usando uma arquitetura cliente-servidor, por exemplo, usando language binding, o nome da máquina do cliente pode ser obtido usando o seguinte código:
set client=##CLASS(%SYS.ProcessQuery).Open("P"_$j).ClientNodeNameAo trabalhar no prompt do terminal, a rotina %SS permite ver o que está sendo executado na instância:
USER>d ^%SS
Mas às vezes estou interessado apenas em saber o que está sendo executado no meu namespace. Nesse caso, é isso que eu uso:
USER>d THIS^%SS
Eu estava enfrentando o mesmo problema que o Jerry enfrentou ao conectar o IRIS ao SQL Server. Minha conexão ODBC está configurada para autenticar via autenticação do Windows.
Configure IRIS ODBC connection with Windows authentication using a
Como eu resolvi isso?
<ORGNAME>\<ASSETID>$Rubrica de FAQ da InterSystems
Se você tentar eliminar uma global que está mapeada no nível de subscrito a partir do nó raiz, você receberá um erro e ela não será excluída. Isso ocorre porque o comando kill para globais mapeadas no nível de subscrito não pode ser usado atravessando mapeamentos.
// Suppose subscript-mapped globals exist in different databases, as shown below:^TESTKPara excluir apenas a global no namespace (banco de dados) atual, use o seguinte:
NAMESPACE>Rubrica de FAQ do InterSystems
O utilitário ^%GCMP pode ser usado para comparar o conteúdo de dois globals.
Por exemplo, para comparar ^test e ^test nos namespaces USER e SAMPLES, ficaria assim:
No exemplo abaixo, 700 globais idênticas são criadas nos dois namespaces, e o conteúdo de uma delas é alterado para torná-lo o alvo de detecção.
Olhando para o meu banco de dados, vejo que tenho um ^rINDEXSQL muito grande! Por que isso? 😬
Na página de SQL do Management Portal, em "SQL Statements", vejo um botão 'Clean stale' – o que ele faz? 🤔
Na lista de Statements, alguns têm um valor em 'Location' e outros não. Como isso acontece? 🤨
Olá a todos.
Vou dar uma dica rápida sobre como implementar um agente de IA para realizar buscas na documentação da InterSystems integrado ao Teams.
Sim, eu sei que a página da documentação tem seu próprio buscador de IA e que ele é bastante eficaz, mas dessa forma teríamos um acesso mais rápido, especialmente se o Teams for a ferramenta corporativa da sua empresa.
Também é possível criar outro agente de IA para realizar buscas nos artigos publicados na comunidade de desenvolvedores (que também possui seu buscador de IA integrado).
Você envia uma requisição HTTP e recebe de volta um erro HTTP, mas com uma página de erro HTML que você não esperava... o que está acontecendo? 🤔
Especificamente, por exemplo: talvez você tenha tentado ler um recurso FHIR (ex: /Patient/123) e recebeu uma página de erro 404, embora com outros IDs de pacientes você receba o payload do recurso normalmente — então "a página" definitivamente existe... por que você estaria recebendo uma página de erro 404? 🙄
Ao exportar usando o método Export() da classe %Library.Global, se o formato de exportação (quarto argumento: OutputFormat) for definido como 7, "Block format/Caché block format (%GOF)", os globais mapeados não podem ser exportados (apenas os globais no banco de dados global padrão do namespace são exportados). Para exportar globais mapeados no formato "Block format/Caché block format (%GOF)", especifique o diretório do banco de dados para o qual você deseja mapeá-los no primeiro parâmetro de %Library.Global.Export().
Olá a todos,
Esta é uma dica rápida sobre como usar URLs em serviços REST API sem distinção entre maiúsculas e minúsculas.
Se você tem uma classe que estende de %CSP.REST e Ens.BusinessService para criar um serviço REST API, e você definiu seu WebApplication em minúsculas:
.png)
XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/user" Method="POST" Call="User"/>
<Route Url="/login" Method="POST" Call="Login"/>
</Routes>
}
.
Estou muito emocionado de continuar com a minha série de artigos "InterSystems para Dummies", e hoje queremos contar tudo sobre uma das funções mais potentes que temos para a interoperabilidade.
Mesmo que já as tenha utilizado, planejamos analisar a fundo como aproveitá-las ao máximo e melhorar ainda mais nossa produção.
Ao revisar os diversos artigos que publiquei, percebi a necessidade de explicar uma funcionalidade muito prática em nosso EMPI (Enterprise Master Patient Index) que é a notificação de registros e vínculos para sistemas externos ao EMPI.
Essa funcionalidade é extremamente útil em uma ferramenta como o EMPI e, especialmente, em ambientes como o de saúde, nos quais é muito comum que o mesmo paciente tenha seus dados duplicados em diferentes sistemas, e no final seja necessário identificá-lo de forma única.
Olá desenvolvedores!
Conhecem a IA da Comunidade? Se não, estão perdendo uma das melhores aplicações que nos trouxeram em 2024. E vocês devem se perguntar: o que é isso? É uma ferramenta muito intuitiva para obter respostas sobre a tecnologia InterSystems.
Onde a encontro?
Ao lado direito da página, logo acima da coluna de eventos, onde há "Fazer uma pergunta a IA". Vamos seguir o passo a passo e vocês verão como é simples.
Você pode verificar o espaço em disco a qualquer momento usando a classe utilitária do sistema: SYS.Database e a consulta: FreeSpace.
Aqui está como testar no terminal IRIS (vá para o namespace %SYS e então execute):
zn"%SYS"setO exemplo de resultado de saída é o seguinte:
Rubrica InterSystems FAQ
No InterSystems IRIS, você pode criar tabelas vinculadas usando comandos, ao invés de usar o caminho System Explorer > SQL > Wizard > Linked Tables do Portal de Administração:
.png)
Para criar uma tabela vinculada, use o método CreateLinkedTable da classe %SYSTEM.SQL.Schema. Veja a documentação da classe para detalhes.
Para executar, siga os passos:
set$SYSTEM"<dsn>"InterSystems FAQ rubric
Existem dados, como registros de log de execução, que você pode não querer que voltem ao estado anterior mesmo se ocorrer um rollback durante uma transação.
Esse requisito pode ser atendido colocando esses dados no banco de dados IRISTEMP, que não sofre rollback.
Temporary Globals and the IRISTEMP Database
Ao mapear para esse banco as entidades de tabela que você não deseja que sofram rollback, é possível manter as informações após a reversão.
No entanto, o conteúdo desse banco será apagado quando o IRIS for reiniciado
InterSystems FAQ rubric
Por padrão, a ordem das colunas em uma tabela é determinada automaticamente pelo sistema.
Para alterar a ordem, defina explicitamente a ordem de cada propriedade utilizando a palavra-chave SqlColumnNumber ao definir a classe.
Exemplo:
Property Name As %String [SqlColumnNumber = 2];
Consulte a documentação abaixo.
Se você deseja alterar o nome da tabela SQL, especifiqueSqlTableName. Se você deseja alterar o nome da coluna (nome do campo), especifiqueSqlFieldName.
Ambos se aplicam apenas a classes persistentes.
Talvez isso já seja bem conhecido, mas quis compartilhar para ajudar.
Considere que você tem as seguintes definições de classes persistentes:
Uma classe Invoice (Fatura) com uma propriedade de referência para Provider (Prestador de serviço):
ClassExtends%PersistentAsE a classe Provider
Se você chamar o método Build da , poderá consultar isso via SQL:
AsE verá algo como:
.png)
O que eu descobri que funciona bem é seguir esse padrão:
Para habilitar a funcionalidade de Interoperabilidade após criar um namespace, use o método EnableNamespace da classe %EnsembleMgr:
do ##class(%EnsembleMgr).EnableNamespace()
Como todos sabemos, a InterSystems é uma ótima empresa.
Seus produtos podem ser tão úteis quanto complexos.
No entanto, nosso orgulho às vezes nos impede de admitir que talvez não entendamos alguns conceitos ou produtos que a InterSystems nos oferece.
Hoje estamos começando uma série de artigos explicando como alguns dos intrincados produtos da InterSystems funcionam, obviamente de forma simples e clara.
Neste ensaio, irei esclarecer o que é Machine Learning e como tirar proveito dele... porque desta vez, VOCÊ VAI SABER com certeza do que estou falando.
Pode ser feito com o TRY-CATCH:
#dimAsSe você usar o ^%ETN, chame-o a partir do bloco BACK (BACK^%ETN).
Por favor, dê uma olhada também no artigo relacionado: Como buscar erros de aplicação (^ERRORS) usando um comando
Para executar SQL no Terminal, use $system.SQL.Shell().
Por favor, consulte o exemplo abaixo.
SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.
Para resolver o erro <PROTECT>, remova o atributo somente leitura do banco de dados da biblioteca de todo o sistema (IRISLIB para InterSystems IRIS, CACHELIB para Caché/Ensemble/HealthShare (baseado em Caché))
Quando terminar de importar a rotina, lembre-se de alterá-la novamente para somente leitura.
[Versão 2013.1 e acima]
[Portal de Gerenciamento] > [Administração do Sistema] > [Configuração] > [Configuração do Sistema] > [Banco de Dados Local] Desmarque "Mount read-only" (Montar somente leitura) no link do nome do banco de dados.
.png)
[Versão 2011.
A capacidade de reenviar mensagens sempre foi um dos destaques das nossas funcionalidades de interoperabilidade.
Com a versão 2024.3, que será lançada em breve (já disponível como prévia para desenvolvedores), tornamos esse processo ainda mais simples!