亲爱的社区开发者们,大家好!

欢迎积极参与新一轮InterSystems开发者竞赛!

🏆 InterSystems 编程大赛:FHIR 加速器 🏆

提交在AWS上使用InterSystems的IRIS FHIR-as-a-service的应用程序,或帮助使用InterSystems IRIS FHIR加速器开发的解决方案。点击这篇文章,了解如何在AWS上申请应用InterSystems IRIS FHIR 加速器服务 (FHIRaaS) 。

    时间:2021年5月10日-6月6日

    奖金总额: $8,750

    👉 点击登录活动页面 👈

    0 0
    0 124
    文章
    · 七月 7, 2023 阅读大约需 2 分钟
    FAQ常见问题系列 - Production基础问题
    1. 主机和备机为什么总是切换,会不会是与仲裁机连接的心跳检测出问题了
      • 查看镜像状态 打开管理门户 - ‘系统操作’ - ‘镜像监视器’
      • 如遇到主备切换,可以通过消息日志查看切换原因 打开管理门户 - ‘系统操作’ - ‘系统日志’ - ‘消息日志’
    2. 基础问题怎么查询
      • 通过管理门户查看日志 打开管理门户 - ‘系统操作’ - ‘系统日志’ - ‘消息日志’
      • 通过监控告警日志 告警日志文件:<intall-dir>/mgr/alerts.log文件
    1 0
    0 124
    文章
    · 四月 20, 2021 阅读大约需 13 分钟
    第四章 缓存查询(一)

    第四章 缓存查询(一)

    系统自动维护已准备好的SQL语句(“查询”)的缓存。这允许重新执行SQL查询,而无需重复优化查询和开发查询计划的开销。缓存查询是在准备某些SQL语句时创建的。准备查询发生在运行时,而不是在编译包含SQL查询代码的例程时。通常,PREPARE紧跟在SQL语句的第一次执行之后,但在动态SQL中,可以准备查询而不执行它。后续执行会忽略PREPARE语句,转而访问缓存的查询。要强制对现有查询进行新的准备,必须清除缓存的查询。

    所有SQL调用都会创建缓存查询,无论是在ObjectScript例程中调用还是在类方法中调用。
    - 动态SQL、ODBC、JDBC和$SYSTEM.SQL.DDLImport()方法在准备查询时创建缓存查询。管理门户执行SQL接口、InterSystems SQL Shell和%SYSTEM.SQL.Execute()方法使用动态SQL,因此使用准备操作来创建缓存查询。

    0 0
    1 123
    文章
    · 二月 26, 2021 阅读大约需 1 分钟
    为什么从Cache迁移到IRIS?

    不少客户问我关于从Cache迁移到IRIS的问题。为什么要迁移到IRIS?Cache是优秀的,稳定的,有很好的性能,为什么要迁移到IRIS呢?这些客户是对的,但在过去几年,数字化转型提出了不少新问题、新需求和新挑战,客户需要更灵活、更完整、更前瞻的解决方案,InterSystems公司很有远见地洞察到了这一点,推出了IRIS。
    一句话,IRIS是一套数据平台解决方案,它帮助客户和合作伙伴为迎接数字化转型的挑战提供了充足的弹药。

    0 0
    0 123
    文章
    · 十一月 9, 2021 阅读大约需 1 分钟
    翻译文章--通过ODBC用Appeon PowerBuilder连接IRIS

    https://www.appeon.com/products/powerbuilder

    Appeon PowerBuilder 是一个企业级开发工具,可以用来建立数据驱动的商业应用程序和组件。它是Appeon产品套件之一,同时提供了开发C/S、Web、移动和分布式应用程序的工具。

    在这篇文章中,我将展示通过使用ODBC用Appeon PowerBuilder连接Caché的步骤。

    步骤1 :
    确保在安装IRIS时选择ODBC驱动程序选项。

    0 0
    0 123
    文章
    · 四月 14, 2021 阅读大约需 8 分钟
    第二章 定义和构建索引(二)

    第二章 定义和构建索引(一)

    定义索引

    使用带有索引的Unique、PrimaryKey和IdKey关键字

    与典型的SQL一样,InterSystems IRIS支持惟一键和主键的概念。
    InterSystems IRIS还能够定义IdKey,它是类实例(表中的行)的唯一记录ID。
    这些特性是通过UniquePrimaryKeyIdKey关键字实现的:
    - Unique -在索引的属性列表中列出的属性上定义一个唯一的约束。
    也就是说,只有这个属性(字段)的唯一数据值可以被索引。
    唯一性是根据属性的排序来确定的。
    例如,如果属性排序是精确的,则字母大小写不同的值是唯一的;
    如果属性排序是SQLUPPER,则字母大小写不同的值不是唯一的。

    但是,请注意,对于未定义的属性,不会检查索引的惟一性。
    根据SQL标准,未定义的属性总是被视为唯一的。

    0 0
    0 122
    文章
    · 六月 12, 2023 阅读大约需 2 分钟
    使用 Synthea 生成 FHIR 测试数据

    文章相关视频参见Synthea生成FHIR测试数据,以及FHIR服务器加载FHIR资源文件

    1. 什么是Synthea

    Synthea是一个开源软件包,可以模拟生成患者就诊数据。他的github地址在这里

    生成的就诊模版从最初的模拟美国前十种常见病、前十种慢性病到现今超过90种不同的模型。详细模型参见这里

    基于当前版本,Synthea的特性包括:

    2 0
    1 122

    这是“IRIS数据库在医疗行业发展”系列课程的第一讲,InterSystems中国技术总监乔鹏为您介绍InterSystems IRIS架构。InterSystems IRIS数据平台是全球首款且唯一一款专门设计用于从医疗数据中提取价值的数据平台。

    //player.bilibili.com/player.html?aid=203682263&bvid=BV1mh4112784&cid=284392132&page=1
    [这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

    0 0
    0 120
    文章
    · 三月 23, 2023 阅读大约需 24 分钟
    中高级开发者教程:通用查询解决方案

    简介

    什么是Query

    Query是一种查询方法,用于查找满足条件的数据,将结果以数据集的形式展现出来。

    Query类别

    • SQL Query,使用类 %SQLQuerySQL SELECT 语句。
    • 自定义Query,使用类 %Query 和自定义逻辑生成查询数据。

    说明:在讲通用Query解决方案之前,我们先了解一下Query的基础和基础使用,有助于理解实现原理。如果读者了解Query基本使用,可跳过此章节,直接阅读“现状”。

    2 0
    0 120
    文章
    · 四月 30, 2021 阅读大约需 12 分钟
    第八章 解释SQL查询计划(二)

    第八章 解释SQL查询计划(二)

    SQL语句的详细信息

    有两种方式显示SQL语句的详细信息:

    • 在SQL Statements选项卡中,通过单击左侧列中的Table/View/Procedure Name链接选择一个SQL Statement。
      这将在单独的选项卡中显示SQL语句详细信息。
      该界面允许打开多个选项卡进行比较。
      它还提供了一个Query Test按钮,用于显示SQL Runtime Statistics页面。
    • 从表的Catalog Details选项卡(或SQL Statements选项卡)中,通过单击右边列中的Statement Text链接选择一个SQL语句。
      这将在弹出窗口中显示SQL语句详细信息。

    可以使用“SQL语句详细信息”显示来查看查询计划,并冻结或解冻查询计划。

    0 0
    0 118

    由于这是一个预览版,我们渴望在下个月的通用版发布之前了解您对这个新版本的经验。请通过开发者社区分享您的反馈,以便我们能够共同打造一个更好的产品。

    InterSystems IRIS数据平台2021.1是一个扩展维护(EM)版本。自2020.1(上一个EM版本)以来,在持续交付(CD)版本中增加了许多重要的新功能和改进。请参考2020.22020.32020.4的发布说明,了解这些内容的概况。

    0 0
    0 118
    文章
    · 六月 26, 2022 阅读大约需 5 分钟
    跟踪数据更改 - 审计日志 - 下篇

    前一篇文章中,我已经演示了一种简单的方法来记录数据的变化。在这个时候,我改变了负责记录审计数据的 "审计抽象类 "和记录审计日志的数据结构。

    我已经将数据结构改为父子结构,其中将有两个表来记录 "交易 "和在该交易中改变的 "字段的值"。

    看一下新的数据模型:

    看看从 "审计类 "改变的代码吧:

    0 0
    0 118
    文章
    · 三月 28, 2021 阅读大约需 7 分钟
    第十三章 使用动态SQL(六)

    第十三章 使用动态SQL(六)

    %ObjectSelectMode = 1 Swizzling字段名称属性

    下面的示例使用%ObjectSelectMode = 1进行准备,当使用字段名称属性返回值时,其类型类别为可Swizzle类型的字段(持久性类,序列类或流类)将自动发生Swizzle。转换字段值的结果是相应的对象参考(oref)。使用%Get()%GetData()方法访问字段时,InterSystems IRIS不会执行此筛选操作。在此示例中,rset.Home处于Swizzle状态,而引用同一字段的rset.%GetData(2)处于not swizzled状态:

    0 0
    0 117
    文章
    · 十一月 21, 2021 阅读大约需 3 分钟
    适合工作的工具:我们聆听了医疗行业开发人员的声音

    在医疗领域,开发创新可以挽救更多的生命。

    这也是为什么我们更需要去倾听负责构建未来的人:开发人员。 他们需要什么工具才能更有效地使应用程序更加高效? 他们面对着什么样的障碍?

    InterSystems 不想去做无用的猜测,因此我们推动进行了一项研究,该研究综合了 200 名医疗行业开发者的反馈,深入了解了他们的最大需求。我们认为,这些研究结果为医疗单位和医疗技术公司提供了一个机会,可以帮助他们的开发团队为业务带来新机遇,同样也为临床医生和患者带来更光明的未来。

    以下是三个关键要点:

    1. 开发人员想要一个统一的医疗平台。

    0 0
    0 117

    2022年8月22日,中国 北京 —— 致力于帮助客户解决最关键的可扩展性、互操作性和速度问题的创新数据技术提供商InterSystems今日宣布在中国推出InterSystems IRIS医疗版互联互通套件2.0版,更好地满足用户对数据利用的需求。

    0 0
    0 117
    文章
    · 四月 19, 2022 阅读大约需 13 分钟
    用Caché ObjectScript 生成EXCEL

    有很多方法可以使用Intersystems生成excel文件,其中一些是ZEN报告、IRIS报告(Logi报告或正式称为JReports),或者我们可以使用第三方Java库,可能性几乎是无限的。

    但是,如果你想只用Caché ObjectScript创建一个简单的电子表格呢?(没有第三方应用程序)

    在我的案例中,我需要生成包含大量原始数据的报告(财务人员喜欢这些数据),但是我的ZEN/IRIS失败了,给了我一个我想称之为 "零字节的文件",基本上说java的内存用完了,并导致报告服务器上的重载。

    这可以用Office Open XML(OOXML)来完成。Office Open XML格式是由一个ZIP包内的一些XML文件组成的。因此,基本上我们需要生成这些XML文件,并将其压缩重命名为.xslx。就这么简单。

    这些文件遵循一套简单的惯例,称为开放包装惯例。你需要声明各部分的内容类型,以及告诉消费应用程序应该从哪里开始。

    为了创建一个简单的电子表格,我们至少需要5个文件。

    0 0
    0 116

    将 FHIR 文档(例如患者信息表、出院摘要)发布到 FHIR 存储库时:

    EndPoint端点/Bundle捆绑

    您可以使用上述 URL 进行 POST。 (以下示例使用 IRIS for Health 提供的 FHIR 存储库。)

    我将检查 GET 请求。

    我能够确认我能够注册。

    对于在FHIR repository注册的FHIR文档,如果能通过指定文档编号来GET会很方便,由于支持,无法对指定Composition.identifier的Bundle资源进行GET请求。

    1 0
    1 116
    文章
    · 三月 16, 2021 阅读大约需 5 分钟
    第十一章 SQL隐式联接(箭头语法)

    第十一章 SQL隐式联接(箭头语法)

    InterSystems SQL提供了一个特殊的–>运算符,作为从相关表中获取值的快捷方式,而在某些常见情况下无需指定显式的JOIN即可。可以使用此箭头语法代替显式联接语法,也可以将其与显式联接语法结合使用。箭头语法执行左外部联接。

    箭头语法可用于类的属性或父表的关系属性的引用。其他类型的关系和外键不支持箭头语法。不能在ON子句中使用箭头语法(–>)。

    属性引用

    可以使用- >操作符作为从“引用表”获取值的简写。
    例如,假设定义了两个类:Company:

    0 0
    0 115
    文章
    · 三月 8, 2021 阅读大约需 9 分钟
    第五章 SQL定义表(三)

    第五章 SQL定义表(三)

    使用DDL定义表

    可以使用标准DDL命令在InterSystems SQL中定义表:

    InterSystems SQL中可用的DDL命令

    • ALTER命令 ALTER TABLEALTER VIEW
    • CREATE 命令 CREATE TABLECREATE VIEWCREATE INDEXCREATE TRIGGER
    • DROP 命令 DROP TABLEDROP VIEWDROP INDEXDROP TRIGGER

    可以通过多种方式执行DDL命令,包括:

    0 0
    0 115
    文章
    · 三月 21, 2021 阅读大约需 9 分钟
    第十二章 使用嵌入式SQL(五)

    第十二章 使用嵌入式SQL(五)

    嵌入式SQL变量

    以下局部变量在嵌入式SQL中具有特殊用途。这些局部变量名称区分大小写。在过程启动时,这些变量是不确定的。它们由嵌入式SQL操作设置。也可以使用SET命令直接设置它们,或使用NEW命令将其重置为未定义。像任何局部变量一样,值将在过程持续期间或直到设置为另一个值或使用NEW进行定义之前一直存在。例如,某些成功的嵌入式SQL操作未设置%ROWID。执行这些操作后,%ROWID是未定义的或保持设置为其先前值。

    • %msg
    • %ROWCOUNT
    • %ROWID
    • SQLCODE

    这些局部变量不是由Dynamic SQL设置的。 (请注意,SQL Shell和Management Portal SQL接口执行Dynamic SQL。)相反,Dynamic SQL设置相应的对象属性。

    0 0
    0 115
    文章
    · 十一月 16, 2023 阅读大约需 17 分钟
    浅谈一下个人基于IRIS后端业务开发框架的理解

    浅谈一下个人基于IRIS后端业务开发框架的理解

    现状

    由于国内使用基于M语言IRIS平台几乎都在医疗行业。医疗系统又非常的庞大和复杂。前期由于快速占领市场,系统数量越来越多,到了临界点后就产生了质变,所以前期基于功能的线性开发注重效率,所以导致大量的产品业务代码有如下集中情况:
    - 系统交互乱如麻,各系统的交互关系变成了网状。
    - 系统规模庞大,内部耦合严重,牵一发而动全身,后续修改和扩展困难,开发效率低。
    - 关键功能逻辑复杂,容易出现问题,出现问题后很难排查和修复,开发成本高。
    - 功能越来越多,导致系统复杂度指数级上升。

    - 重复造轮子,相似的功能不断重复开发。

    image

    如上图所示,这仅仅是展示了五个模块之前的交互,在此基础上继续增加模块则复杂度成指数级上升,并且如果每个模块之间如果没有做好接口管理,维护起来也是地狱级别。

    8 1
    0 115