検索

ダイジェスト
· 2025年11月24日

Final Call for Your Ideas! Last Chance to Join the Sweepstakes

Dear Developer Community Member,

This is a final call to share your ideas on improving the Initial Developer Experience in the InterSystems Ideas Portal!

If you haven’t submitted your suggestion yet, now’s the time. Whether it’s about onboarding, setup, documentation, or tutorials, your input can help shape a smoother and more inspiring start for new developers.

We’ll be selecting a random winner at the end of November, so don’t miss out on your chance to contribute and win a special prize!

Check out the details here.

We can’t wait to see your ideas!

記事
· 2025年11月24日 19m read

ObjectScriptで列挙体Likeなデータ型クラスを作ろう

はじめに

コミュニティの皆さま、初投稿になりますが、何か少しでも興味深い知見を共有できると幸いです。

今回の内容は、筆者が%Persistentを中心に据えたデータ構造管理の検討の過程で必要性を感じ行った、「列挙体」Likeな「データ型クラス」(%DataTypeのサブクラス)構築に関するレポートです。

内容面では、筆者が「データ型クラス」の特性に不勉強だったことに由来しての躓きに関するものも多くなりますが、ご容赦願います。
また、内容の中には、筆者が思い当たらなかった手段の活用により、よりシンプルに回避できた部分もある可能性が大いにございます。
そういった内容にお気づきの場合、ご指摘いただけますと大変ありがたいです。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
ダイジェスト
· 2025年11月24日

InterSystems Developers Publications, Week November 17 - 23, 2025, Digest

Articles
#InterSystems IRIS
#InterSystems Kubernetes Operator (IKO)
#InterSystems IRIS for Health
Announcements
#InterSystems IRIS
#InterSystems IRIS for Health
#IRIS contest
#HealthShare
#Summit
#Other
#Global Masters
#InterSystems Ideas Portal
#InterSystems Official
Questions
Discussions
#Open Exchange
November 17 - 23, 2025Week at a GlanceInterSystems Developer Community
ダイジェスト
· 2025年11月24日
記事
· 2025年11月24日 4m read

O que Aprendi com Múltiplas Migrações de Dados

Olá!

A migração de dados costuma parecer uma simples "tarefa de mover dados de A para B" até você realmente fazê-lo. Na realidade, é um processo complexo que combina planejamento, validação, testes e precisão técnica.

Em vários projetos nos quais lidei com a migração de dados para um HIS (Sistema de Informação Hospitalar) que roda em IRIS (TrakCare), percebi que o sucesso é resultado de uma combinação de disciplina e automação.

Aqui estão alguns pontos que desejo destacar:

1. Comece com um Formato de Dados Definido.

Antes mesmo de abrir seu primeiro arquivo, certifique-se de que todos, especialmente os fornecedores de dados, entendam claramente o formato de dados exato que você espera. Definir modelos (templates) logo no início evita idas e vindas desnecessárias e retrabalho mais tarde.

Embora os formatos Excel ou CSV sejam comuns, eu pessoalmente sinto que usar um arquivo de texto delimitado por tabulação (.txt) para upload de dados é a melhor opção. É leve, consistente e evita problemas com vírgulas dentro de campos de texto.

PatID   DOB Gender  AdmDate
10001   2000-01-02  M   2025-10-01
10002   1998-01-05  F   2025-10-05
10005   1980-08-23  M   2025-10-15

Certifique-se de que os formatos de data fornecidos no arquivo estejam corretos e constantes em todo o arquivo, pois todos esses arquivos geralmente são convertidos de um arquivo Excel e um usuário básico de Excel pode cometer erros ao fornecer formatos de data incorretos. Formatos de data errados podem ser irritantes ao tentar converter para o formato $Horolog.

2. Valide os dados antes de carregá-los.

Nunca – jamais – pule a validação de dados. Pelo menos uma olhada básica no arquivo já ajuda. Embora o IRIS nos ofereça desempenho e flexibilidade para lidar com grandes volumes, isso só é útil se seus dados estiverem limpos.

SEMPRE mantenha um flag (0 ou 1) no parâmetro da sua função de upload. Onde 0 pode significar que você deseja apenas validar os dados e não processá-los, e 1 para processar os dados.

Se as validações falharem para qualquer dado, mantenha um registro de erro (error log) que informará exatamente qual dado está causando o erro. Se o seu código não lhe der a capacidade de descobrir qual dado tem um registro com erro, será muito difícil identificar os registros incorretos.

3. Mantenha Logs Detalhados e Pesquisáveis.

Você pode usar Global ou tabelas para capturar logs. Certifique-se de capturar o timestamp (registro de data/hora), o nome do arquivo, o registro (que pode ser facilmente rastreado) e o status.

Se o volume de dados for pequeno, você pode ignorar os logs de sucesso e capturar apenas os logs de erro. Abaixo está um exemplo de como eu costumo armazenar logs de erro:

Set ^LOG("xUpload",+$Horolog,patId)=status_"^"_SQLCODE_"^"_$Get(%msg)

Para cada inserção, teremos um SQLCODE. Se houver um erro durante a inserção, sempre obteremos uma mensagem de erro de %msg. Isso também pode ser usado durante a validação de dados.

4. Insira os dados de forma Eficiente e Controlada.

A eficiência na inserção não se trata apenas de velocidade, mas de consistência de dados, auditabilidade e controle. Antes de inserir, certifique-se de que cada registro tenha passado na validação e que nenhum campo obrigatório tenha sido ignorado. A falta de campos obrigatórios pode silenciosamente quebrar relacionamentos ou levar a registros rejeitados mais tarde no fluxo de trabalho.

Ao realizar a inserção:

  • Sempre inclua os campos InsertDateTime e UpdateDateTime para rastreamento. Isso ajuda na reconciliação, em atualizações incrementais e na depuração.
  • Mantenha um usuário backend dedicado para todas as atividades automatizadas ou relacionadas à migração. Isso facilita o rastreamento de alterações em logs de auditoria e separa claramente as ações do sistema das entradas humanas.

5. Reconciliação após Migração/Upload.

Assim que a atividade for concluída, realize uma reconciliação entre a origem e o destino:

  • Comparação da contagem de registros.
  • Validação de checksum campo a campo.
  • Verificações de integridade referencial.

Mesmo um simples script de comparação baseado em hash pode ajudar a confirmar que nada foi perdido ou alterado.

Estas são algumas das práticas básicas, mas essenciais, para uma migração de dados tranquila e confiável. Validações, logging adequado, inserções consistentes e atenção aos dados mestre fazem uma enorme diferença na qualidade e rastreabilidade.

Mantenha-o limpo, automatizado e bem documentado. O resto se encaixará.

Sinta-se à vontade para entrar em contato comigo para quaisquer dúvidas ou discussões sobre migração de dados no IRIS!

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください