发布新帖

查找

文章
· 一月 20 阅读大约需 3 分钟

将遗留代码迁移到新版本:技巧与窍门

不可避免的是,您最终需要将您的代码从一个版本的 IRIS 或 Cache 升级到最新版本的 IRIS。在这一过程中,您可以采取一些好的步骤来为自己的成功做好准备。

仔细阅读文档

 

在迁移任何代码之前,你应该先查看IRIS 文档页面,其中包含许多关于IRIS不同版本变更的有用资源。如果你需要跨多个版本升级,请查阅所有相关版本的文档,而不仅仅是目标升级版本。对于每个版本,点击“维护版本变更”(Maintenance Release Changes)链接,你将看到一份开发人员升级清单,对指导你需要进行的修改非常有帮助。你还应查看“发布说明”(Release Notes),其中列出了可能对你有用的新功能,以及已被弃用的功能。此外,建议访问“产品新闻与警报”(Product News and Alerts)页面,以获取最新的紧急事项。事实上,即使不进行升级,定期查看该页面或订阅警报通知也是个好主意,以便及时了解变更。

了解你的替代方案

根据你在文档中阅读到的内容,你可能会看到一堆问题。不过,在开始处理这些问题之前,您应该花些时间了解一下有哪些替代方案。如果您喜欢使用的特定 ObjectScript 类已被弃用或移除,那么如果您打算使用集成的 Python,就不要只寻找 ObjectScript 的替代品。如果您是 Zen 报表的用户,InterSystems Reports 就是该工具的替代品。$ZF -100 已经取代了 $ZF-1。许多其他被移除的组件都有了更新的替代品,在重新发明轮子之前,你应该先找找它们。

扫描、弃用、再扫描

熟悉 %SYSTEM.CodeScanner 类。该类包括类查询(或早期版本中的类方法),可检测已废弃项的使用和其他一些常见问题,如使用 $ZF -1 或 $ZF -2、使用 %this 引用当前对象、使用旧类关键字等。

扫描代码后,您将面临如何解决这些问题的选择。其中有些问题很容易解决,只需修改代码,使用新的工具和方法即可。而其他问题则需要付出更多的努力。在决策过程中,请记住您可以废弃自己的代码!弃用的关键词可以应用于参数、属性、方法,甚至整个类。这一点经常被程序员忽视。如果你决定弃用某些东西,那么你可以再次使用代码扫描类 ,找出所有这些东西的使用位置,然后解决 这些 问题,以此类推。根据你对这个兔子洞的深入程度,可能需要几次才能理清所有这些问题。现在可能要做很多工作,但以后可以省去很多麻烦。

重新调整表参数

表调整(Table Tuning) 已经存在了一段时间,并且经历了一些变化。即使是最近的 2025.2 版,也对该流程进行了重大改进 。如果您正在使用旧版本的代码,却没有重新调整表,那么您可能会错过该工具的一些重大改进。如果您利用了这一点,也许就能在不触及任何代码的情况下获得相当高的效率!

彻底测试

再多的准备工作或工具也无法完全取代老式的测试。无论您偏爱的测试机制是 单元测试、Postman,还是客户支持部门的 Teresa(她清楚地知道您的用户倾向于如何破坏东西),都要确保他们参与并积极地在新版本上彻底测试您的代码。不要想当然。

参与到社区中来

我们中的很多人都经历过几次失败。我不会指名道姓,也 绝对 不会列出年龄,但在这个过程中的任何时候,您现在所在的社区网站都是一个很好的资源。如果您需要替换旧代码,您可以询问是否有人有旧代码,以及他们是如何从一个代码跳转到另一个代码的。这里对任何情况都很有帮助。

如果您对将来如何改进升级流程有想法,请在 " Ideas Portal "上发布 。InterSystems 和社区用户会定期检查这个门户,了解如何改进工作,您可能会因此而省去很多工作。

如果您遇到自己无法解决或社区帮助无法解决的问题,也可以通过 全球响应中心 直接从 InterSystems 获得更深入的帮助。

现在让我们听听社区其他成员的意见。让大家知道你以前是如何管理此类升级的。哪些地方成功了,哪些地方失败了,下次会采取哪些不同的方法?

讨论 (0)1
登录或注册以继续
文章
· 一月 19 阅读大约需 13 分钟

もっと賢く使えるテーブル統計

この記事では、2025.2リリースで導入された、IRIS SQL処理の重要な要素、InterSystems IRISのテーブル統計処理の大きな改善について紹介します。 まず最初に、テーブル統計とは何か、どのように利用されるのか、そしてなぜ今回の改善が必要だったのかを簡単におさらいします。 その後、テーブル統計を収集・保存するための新しいインフラの詳細を掘り下げてから、この変更が実際にアプリケーションにどのような影響を与えるのかを詳しく見ていきます。 最後に、新しいモデルで可能になったパターンに関する追加の注意点をいくつか紹介し、今回の初期リリースに続く次のフェーズに期待をつなげます。

讨论 (0)1
登录或注册以继续
公告
· 一月 19

2025.3 实现互操作性用户体验现代化

互操作性用户界面项目从 2025.1 版继续 进行,并纳入了许多我们的客户和合作伙伴建议和观察到的项目。 我们将继续投资于反馈和更新这一重要的用户体验。在最新发布的 2025.3 版(适用于 IRISIRIS for HealthHealthConnect 和 Health Connect Cloud) DTL 编辑器生产配置 应用程序可选择
NOTE

  • 您可以在现代化和标准体验之间切换。
  • 所有其他互操作性屏幕仍保留在标准用户界面中。
  • 由于新的用户界面将提供新的工作流程,我们希望在这项工作继续进行的同时提供两种体验。

 

生产配置——配置任务介绍
  • 现在每个生产配置主机上都会显示池大小 数量。
  • 现在可以在主机的类别字段中直接输入命名约定来创建新类别
  • 生产配置中现在支持浏览器级控制查找
  • 生产配置主机项目现在具有测试主机功能
  • 在新的 "设置面板 "中,出现了 X 取消图标以取消操作。
  • 较长的类工具提示 说明根据类文档格式化。
      • 增强了配置项描述的显示,以尊重较长结构化描述的标记。
  • 如果不在主机项目或生产的上下文中,操作项目会显示为灰色
  • 创建主机时可自动创建路由器和角色。
  • 在支持的情况下,现在可以选择更新和恢复生产
  • 现在可以 通过新的用户界面创建产品
  • 编辑主机类别时,允许查看连接
  • 所有规则集上的视图图标 可打开规则编辑器分割面板中的特定规则集
  • 在主机的信息图标中添加了主机 状态图例
  • 现在可搜索"主机属性",并添加了 "展开全部 "部分
  • 现在可 在生产配置过滤栏中搜索 IP 地址和端口号
  • 还有更多
DTL 编辑器——DTL 工具介绍
  • 数据转换功能下拉菜单现在可搜索,并仅限于子类中定义的功能。
  • DTL 图形编辑器现在包含一个按钮,可在将鼠标悬停在段上时复制 HL7 字段路径
  • 在设置 DTL 语句目标字段和源字段时,设置序号或路径表达式或同时设置这两种表达式 输入相同的表达式设置
  • 用于复制或添加映射的 "悬停 "段图标更易于访问
  • 添加映射时,将鼠标悬停在段上现在会显示复制图标
  • 滚动时,DTL 编辑器分屏标题和工具栏都保持不变
  • 还有更多
规则编辑器——业务规则介绍
  • 不再可以重命名规则。以前,这种行为会导致活动规则的更改出现混乱。要创建新规则,请使用 "另存为(Save As)"
  • 规则编辑器现在支持浏览器级控制查找
📣 行动呼吁 📣

讨论 (0)1
登录或注册以继续
文章
· 一月 19 阅读大约需 1 分钟

Importando CSV no CACHÉ

Aqui está um exemplo prático de como importar dados de um arquivo CSV para o Intersystems CACHÉ usando ObjectScript. Supondo que seu arquivo CSV seja simples (por exemplo, separado por vírgulas e com cabeçalhos), você pode usar %Stream.FileCharacter para lê-lo linha por linha e analisar os dados.


 

ClassMethod ImportCSV(filePath As %String) As %Status {
    Set stream = ##class(%Stream.FileCharacter).%New()
    Set sc = stream.LinkToFile(filePath)
    If 'sc Quit sc

    While 'stream.AtEnd {
        Set line = stream.ReadLine()
        Set fields = $ListFromString(line, ",")
        // Example: Save to a persistent class
        Set obj = ##class(MyApp.Data).%New()
        Set obj.Name = $List(fields,1)
        Set obj.Age = $List(fields,2)
        Set obj.Email = $List(fields,3)
        Do obj.%Save()
    }
    Quit $$$OK
}

讨论 (0)1
登录或注册以继续
Job
· 一月 19

Now Hiring - Senior InterSystems Engineer | 100% W2 Contract

We are hiring!  100% Remote W2 Contract | 3-6+ Months (numerous extensions likely)

Two Roles:
🔹InterSystems Engineer
🔹Epic Bridges Certified/InterSystems Engineer  

Having solid experience with the below: 

  • Interface Development: Building and configuring message routes, business processes, and transformations using components like IRIS, Ensemble, or HealthShare.
  • Interoperability Standards: Implementing and supporting workflows for healthcare standards including HL7 (v2/v3), FHIR, etc.
  • System Integration: Connecting disparate health information systems to EMR like Epic Bridges, clinical applications, and HIE partners.
  • Data Transformation: Develop DTL (Data Transformation Language) and XSLTs to convert messages between various formats, such as converting HL7 to InterSystems FHIR or SDA.
  • Support & Monitoring: Troubleshoot message flows, perform performance tuning, and monitor system health using built-in dashboards and alerts.
  • Migration Projects: Leading or assisting in migrating interfaces from other engines, such as Cloverleaf or Mirth, to InterSystems Health Connect Cloud
讨论 (0)1
登录或注册以继续