搜索​​​​

清除过滤器
文章
Lucy Ma · 六月 9, 2022

InterSystems 最佳实践系列之 - 在DeepSee中设计有效的层级

当使用DeepSee工具来设计层级的时候,一个子级必须有且仅有一个父级。当出现一个子级对应两个父级的情况时,数据结果就有可能会不可靠。另一种情况是当两个相似的级别存在,它们的主键必须要做相应的变更以确保唯一性。我们接下来将通过两个案例来解释这两种情况是如何发生的以及如何避免。 案例1 在多个州里都会有一个城市叫做Boston。在我的样本数据里,我已经记录的与Boston对应的州有MA和Boston.NY。我的维度定义如下: 城市和州在这里都是简单的字符串格式。当构建到我的Cube中时,我会需要两个州级别成员:“MA”和“NY”,以及两个城市级别成员:“Boston”和“Boston”。为什么我需要两个Boston的城市级别成员而不是一个呢?因为一个级别成员不能有两个父级。所以我们需要创建两个分别的子级成员来对应各自的父级。遗憾的是,我们现在处于“糟糕的层级”场景,因为我们只有一个键值来对应两个不同的级别成员。 为了解决这个问题,我们需要使这个键值唯一。为了替代直接使用“城市”这个属性来作为这个级别的来源属性,我们可以使用来源表达式来将这个级别成员转化成唯一的。 这样就解决了唯一性的问题,但是会产程其他我们不想要的副作用。通过添加这样的表达式,我们可以在透视表中看到下面的结果: 这样的结果有可能是或者不是我们能够接受的显示方式。到这里,我们的键值和级别成员名称都是一样的,当然我们可以多做一点来让结果展示只显示“Boston”,并且背后只对应一个唯一键值。请阅读文档来获取更多信息。 总结一下,不同的级别成员需要唯一的键值。当子级成员拥有一个特殊键值对应了不同的父级成员,同时另一个已有的子级成员已经使用了同样的键值,那么这个键值将会被新的成员重新引用。这样等同于创建了无效层级。 案例2 Date Hierarchies are common places to see invalid hierarchies. Naturally people tend to create the following hierarchy: 日期层级经常会出现无效层级的情况。通常人们会倾向于创建下面这样的层级: 年 月 周 日 ***我这里讨论的是在DeepSee中的“年,月/年,周/年,和日/月/年”的提取功能。 众所周知,一周可以存在于两个不同的月份,或者甚至不同的年份。这里所有其他的级别(年,月,和日)都可以适用在它们的父级并且不会被拆分成两部分。当需要创建一个周次的级别成员也使用同样的模式的话,你将会看到意外的结果,归因于DeepSee引擎会横切数据树(从2020年1月3日开始追溯到到2019年第52周,即2019年12月。2020年1月3日不属于2019年12月的子数据,因此引擎会将这些数据移除)。 常见的解决方法是创建一个新的层级,只有周次级别在里面。这将保持原始层级的完整性,但是也同样支持按照周次来查询数据 。 DeepSeeButtons on Open Exchange 中生成的报告中有一个部分将会检查类似的状态,会在层级无效的时候通知你。 ***在InterSystems IRIS 2020.3和更新的版本中,DeepSeeButtons将会被包含。更多的信息可以再这里找到。***
文章
Michael Lei · 五月 15, 2022

InterSystems IRIS最佳实践---在TLS/SSL中使用操作系统的证书库

有一个简单的新方法可以在Windows和Mac上的InterSystems IRIS 2019.1(和2018.1.2)的SSL/TLS配置中添加证书授权(CA)证书。 你可以通过输入以下内容要求IRIS使用操作系统的证书存储。 %OSCertificateStore 在 "包含受信任证书颁发机构X.509证书的文件 "栏中输入:%OSCertificateStore。 这里有一张如何在门户中这样做的图片: 这里有一个描述这个问题的文档链接。 它在 "包含受信任的证书颁发机构证书的文件 "的选项列表中。 这就是你需要做的所有事情! 现在,这个配置将接受由操作系统证书库中列出的任何CA颁发的证书。
文章
Frank Ma · 五月 24, 2022

如何轻松开始在Adaptive Analytics + InterSystems Reports中工作

让我们假设我们已经将一个数据源连接到Adaptive Analytics,创建了一个项目并在那里添加了表。 现在我们来准备Adaptive Analytics的工作。首先,我们需要从表中选择数据,使其可用于未来的报告。要做到这一点,我们需要从表的列中创建维度。创建维度通常是为了将我们的数据分解成不同的类别,例如用户住在哪个城市,或者购买是在哪个月进行的。然而,没有什么可以阻止我们从数字数据中创建维度,这样我们就可以在Intersystems Reports Designer中对它们应用函数。 创建维度的工具位于界面的右侧,如下图所示。要创建一个新的维度,右击位于 "过滤器 "(Filter)行右侧的汉堡包按钮,选择 "创建维度 "(Create Dimension),如图所示。 将出现以下窗口: 在创建了一个维度后,你可以使其具有层次性。要做到这一点,在左边表格的尺寸上双击鼠标左键,进入层次结构编辑器。 通过点击层次结构旁边的三个点,我们可以在层次结构中创建一个新的维度。在菜单中,维度可以在层次结构中向上/向下移动。由于层次结构的存在,我们可以制作不同层次的数据细节。例如,我们可以指定有多少人从国家、地区、城市访问过该网站。 你可以使用维度来创建表之间的关系。要做到这一点,你需要使用鼠标左键拖动表的所需字段,并将其放到所需的高亮维度中。链接创建窗口将出现。点击保存,我们的连接就准备好了。 除了表中的实际数据外,在Adaptive Analytics中,我们可以根据应用于特定列的各种操作创建测量值(measure)。测量值是数据的数字显示--用户数量、购买金额、观看视频的平均时间,等等。 要创建一个测量值(Measure),我们采用与维度相同的原则,但使用 "测量值 "(Measures)标签。 通过点击汉堡包按钮并选择 "添加测量值"(Add measure),我们调出以下窗口: '测量值名称'(Measure name)是将要显示在Adaptive Analytics界面的名称。 “查询名称 "(Query name)是将在Intersystems报告设计器中显示的名称。它是根据列名自动生成的,但你也可以自己设置。 '描述'(Description)是指Adaptive Analytics中可见的描述。 ”来源 "(Sources)定义了从哪张表和哪一列中获取数据用于测量。"聚合处理 "(Aggregation Handling)显示了我们对数据所使用的函数。函数的列表见下文。默认选择是"汇总"(Sum)。 “数据处理和格式化 "(Data Handling and Formatting)决定了如果测量值与未定义测量值的维度一起使用,将会发生什么。你应该把它留在默认状态。 ”在已发布的数据源中的可见性 "(Visibility in Published Data Sources)指定该测量值是否在Intersystems Reports Designer (报告设计器) 中可用。 你可以按维度分割测量值。例如,我们有一个显示平均数的测量值,我们用一年内每天的数据来计算一列的数据。如果我们把这个测量值分布在一个包含月份的维度上,我们将得到每个月的平均值。 要了解连接到Adaptive Analytics的数据中的内容,你可以使用立方体数据预览(Cube Data Preview)工具。你可以通过点击工作区左上角的标签进入它。 通过在一个轴上指定一个维度,在另一个轴上指定一个测量值,我们可以得到每个维度值的测量值。在这种情况下,下面你可以看到表格中每个日期的记录数。 在创建了所有我们需要的测量值、维度和关系之后,现在我们来发布我们的项目。要做到这一点,请到项目主页面左上角的标签上,点击 "发布 "(Publish)按钮,然后在出现的所有窗口上点击 "下一步 "(Next)按钮。 现在我们可以开始注意左边的窗口,这里有两个部分。"草稿"(Draft),我们可以在这里编辑我们的项目,"发布"(Publish),显示项目的发布版本。通过点击 "发布的项目"(Published project),选择立方体(cube),并进入其 "连接 "(Connect)标签。在这里我们可以看到所有必要的数据,以便将Intersystems Reports Designer连接到我们的项目。 我们已经学会了使用Adaptive Analytics所需要的一切。现在我们可以继续在InterSystems Reports Designer中工作了。 我需要提到的是,Intersystems Reports Designer 17.1版需要JDK 16版才能工作,它不能在以后的版本上运行。 首先,你需要安装JDBC连接到Adaptive Analytics的驱动程序。 下面是所需JAR文件的链接。JDBC驱动本身必须与服务器上使用的驱动兼容。我们使用足够老的版本,这样我们就不会因为服务器上的Hive版本比我们的老而导致错误。 为了方便起见,我们将所有必要的库收集在一个档案中,你可以从链接中下载。 https://github.com/teccod/Logi-JDBC-drivers 这些文件必须放在lib文件夹中,路径是LogiReport/Designer/lib。 启动Intersystems Reports Designer并关闭 "开始 "(Start)页面。现在你可以发现自己处于Intersystems Reports Designer的工作区。默认情况下,它会打开用户正在使用的最后一个目录或与Intersystems Reports Designer一起安装的预装目录。 进入 "文件 "(File)部分,点击 "新目录"(New Catalog);填写目录的名称、数据源的名称和文件应保存的位置。 Intersystems Reports Designer为我们创建了一个空的数据源。右键单击它并选择 "新建JDBC连接"(New JDBC connection)。 在 "Driver "一行,我们写上我们的驱动程序--org.apache.hive.jdbc.HiveDriver。 我们从Adaptive Analytics的 "连接 "(Connect)标签的JDBC字段中获取URL,并填写用户名和密码。 连接已经建立,但是项目中还没有立方体被加载到其中。右键单击 "表"(Tables),然后单击 "添加表"(Add tables),选择所需的立方体;用 "添加按钮 "(Add button)添加它们,然后按 "完成 "(Done)来完成这一过程。如果当你选择的数据方案与默认打开的方案不同时,没有显示这些表,请使用 "刷新 "(Refresh)按钮。 在添加了我们所需要的一切之后,我们在项目中拥有了可用的维度和测量值,我们几乎可以开始创建一个报告了。 为了使用可用的数据,我们必须提出一个请求。在这个请求中,我们可以对数据进行必要的限制(不显示取消的订单,不显示当前月份的数据,等等),只取我们需要的那部分数据。 要在 "主页 "(Home)或 "文件 "(File)标签上创建一个查询,选择 "新建 "(New)并选择 "查询"(Query)。我们挑选数据源,填写查询名称,打开我们的源,"表 "(Tables)并使用箭头将必要的表添加到查询中。 我们进入查询编辑器窗口(Query Editor): 在那里,通过设置必要的复选框或勾选*字段旁边的方框,选择必要的或表格中的所有字段。在 "菜单 "(Menu)项中,我们看到了几个功能,其中最有趣的是数据过滤。 在这里我们可以添加条件,这些条件将用SQL语言写在 "SELECT "语句的 "WHERE "部分(或者简单地说,就是切断指定表达式的数据的条件)。在我们的案例中,我们可以写上日期小于某个值,处于某个值的范围内,等等。 在 "查询编辑器 "(Query Editor)中,我们还可以添加计算列来丰富我们的数据。创建时可以使用的函数取决于数据源提供了哪些函数。Adaptive Analytics不提供任何函数,所以我们只能使用内置的Logi函数(这是最简单的数学和逻辑运算符)。 如果查询中有多个表,那么你可以通过用鼠标左键从一个字段拖动链接到另一个字段来设置它们之间的链接。在SQL查询代码中,这些关系将显示为WHERE table_name1.field_name = table_name2.field_name。 当你完成编辑请求后,点击 "确定 "(OK)按钮。如果有必要,你可以再创建几个带有不同过滤器或字段的查询。 现在你已经准备好创建报告了。我们将在下一篇文章中讨论其创建过程。
公告
Michael Lei · 五月 16, 2022

DBeaver 官方支持 InterSystems IRIS

我们很高兴地宣布,从7.2.4版本开始,DBeaver已经支持开箱即用InterSystems IRIS的。 你不需要再手动配置它,只要在连接列表中找到IRIS的图标即可。 所有必要的字段都已填写。但是,请不要忘记输入你的用户名和密码。 默认情况下,InterSystems的IRIS驱动程序不包括在DBeaver中。对于第一次连接,DBeaver建议从InterSystems的官方GitHub仓库下载驱动程序。这个驱动程序将被用于所有进一步的连接。 目前的版本不包含IRIS的具体功能,但所有主要的DBeaver功能都将适用于你的数据库。 如果你认为可以添加其他重要的东西,请让我们知道。
文章
Michael Lei · 九月 15, 2022

InterSystems IRIS 10大功能特性

InterSystems IRIS是一个伟大的数据平台,它满足了当前市场所需的功能。在这篇文章中,你可以看到我心目中的前10大功能: 排名 特性 原因 了解更多 1 互操作性, FHIR 和物联网 商业机构之间需要持续互联和交换数据。各个业务部门之间也需要加强协作来将本增效。实现协作的最佳技术是IRIS的互操作工具包,尤其是 服务总线ESB, 集成适配器,业务流程自动化引擎,数据转化工具以及例如FHIR和MQTT等。 Link 1 Link 2 Link 3 2 API 管理器 大家通过API来消费数字资产。API需要在一个中心点管理其重用、安全、消费、资产目录、开发者生态系统和其他方面。API管理器是实现这一目标的正确工具。因此,所有的公司都有或希望有一个API管理器。 Link 3 数据分片 据预测,全球创造、捕获、复制和消费的数据总量将迅速增加,在2020年达到64.2 zettabytes。在接下来的五年里,直到2025年,全球数据创建量预计将增长到180兆字节以上。在2020年,创造和复制的数据量达到了新高(来源:https://www.statista.com/ statistics/871513/worldwide-data-created/)。在这种情况下,能够以分布式的方式处理数据(进入数据分片,如hadoop或mongodb),以提高和保持性能,对企业至关重要。另一件重要的事情是IRIS比Cache快3倍,比在AWS云上比AWS数据库更快。 Link 1 Link2 4 Python 支持 Python 是实现AI的最流行的语言,AI现在是大部分企业战略的核心,帮助企业获得更多洞见、更多生产力和降低成本. Link 1 Link 2 Link 3 5 原生APIs (Java, .NET, Node.js, Python) 和自定义扩展 PEX 美国有将近100万开放的IT职位 (source: https://www.cnbc.com/2019/11/06/ how-switching-careers-to-tech-could-solve-the-us-talent-shortage.html). 也很难找到 Object Script 开发者. 因此, 能够支持各种主流语言(Python, Java, .NET, 等.)来使用IRIS特性非常重要. Link 1 Link 2 Link 3 Link 4 Link 5 Link 6 6 自适应分析 实时分析当前的业务数据,减少建模工作,提高运行速度,支持主要的分析查看器(包括Excel)是企业战略的一个关键因素。 Link 7 云, Docker 和微服务 每个人都想要微服务架构。他们希望打破传统单体应用来创建更小、更简单、解耦的、可扩展、可复用和独立的应用项目。 IRIS 支持用户部署数据、应用和分析的微服务。 IRIS 支持数据分片, docker, kubernetes, 分布式计算, DevOps 工具和更低的 CPU/内存消耗 (IRIS 甚至支持 ARM 处理器!). 使用 IRIS API管理器,可以帮助企业实现配合业务的微服务架构。 Link 1 Link 2 Link 3 Link 4 Link 5 8 嵌入式报表 报表对企业是十分重要的。运营者和决策者要用到大量的报表,有很多报表也要提交给客户。移动端和微服务APP需要支持嵌入式报表,IRIS也支持所有这些需求。 Link 1 9 VSCode 支持 VSCode 是最流行的开发工具,InterSystems IRIS 有一套非常棒的工具来支持它。 Link 1 Link 2 Link 3 10 数据科学 使用Python, R 和一体化机器学习(自动机器学习)可以支持企业及时得到AI提供的洞见。InterSystems IRIS 包括所有这些功能。 Link 1 Link 2 Link 3
公告
Claire Zheng · 九月 19, 2022

欢迎来了解一下 InterSystems Ideas ——我们的官方反馈门户

开发者社区的同学们,大家好! 我们一直以来都有一个想法——改进收集、分析和回应开发者社区成员们的产品改进请求的过程。我们知道,我们需要一个良好的用户体验,甚至更好的内部流程,来确保收集、听取和响应最好的想法。现在,这个想法终于实现了! 我们在此向您介绍 InterSystems官方反馈门户 💡 >> InterSystems Ideas << 💡 InterSystems Ideas InterSystems Ideas是一个全新的、推动改进的渠道,您可以通过它向我们提交与InterSystems服务(文档、开发社区、全球大师等)相关的产品改进请求和想法,看看其他人提交了什么,为你喜欢的想法投票,投票给你最喜欢的,并从InterSystems获得反馈。 我们开始积极开发和推广创意门户网站InterSystems Ideas和您的创意。我们希望这可以为您提供一个公开的方式来获得我们的产品经理和社区成员的反馈。 ✅ 获得投票最多的想法会得到产品管理部门的评审。 来社区分享你的想法吧!通过投票和评论为其他想法提供贡献——投票越多,影响力越大! 点击看看创意网站 InterSystems Ideas portal!
文章
姚 鑫 · 九月 27, 2022

第四十五章 配置第三方软件以与 InterSystems 产品结合使用

# 第四十五章 配置第三方软件以与 InterSystems 产品结合使用 产品通常在与非 工具一起运行的环境中运行,我们的产品与此类工具之间的交互可能会产生有害影响。 关于最佳、可靠部署配置的指导假定我们的产品可以在不受第三方工具干扰的情况下进行部署。例如, 发现用于安全、系统监控或病毒扫描的软件可能会影响我们产品的安装、性能和功能。对于直接与属于 产品的一部分或被 产品使用的文件进行交互的工具(例如病毒扫描程序)尤其如此。 了解客户面临的业务、合规性和其他要求会影响有关在给定环境中运行哪些软件以及如何配置此类软件的决策。一般来说, 建议我们产品的服务器端安装通过物理安全和隔离来保护。这种保护应该减少对其他工具的需求,或者至少减少它们运行的频率。 病毒扫描仪观察: 1. 为了交付经过病毒检查的软件, 产品在经过消毒的环境中交付给我们的客户,并通过提供校验和进行验证。 2. 性能影响。 [对策] 出于扫描目的,排除以下文件和目录: - `WIJ` 文件和包含 `WIJ` 文件的目录`*`。 - 本指南“配置 `IRIS`”一章中的所有数据库文件 (`.DAT`) 和包含数据库文件的目录*(请参阅配置数据库)。 - 存储或处理日志文件的任何目录`*`。 - `IRIS®` 数据平台运行所需的任何其他文件`/`目录`*`。例如备用日志目录*(请参阅数据完整性指南中的“日志”),或业务服务或生产使用的任何目录*。 3. 可执行文件的误报。 [对策] 出于扫描目的,排除所有 `irisdb.exe` 文件和包含 `irisdb.exe` 文件的目录。 警告:从恶意软件扫描中排除项目可能会将漏洞引入受保护的设备和应用程序。客户承担配置恶意软件保护的所有责任。 最后,当 发现第三方软件与我们的产品之间的交互对我们的产品行为产生负面影响时,我们会将这些问题报告给第三方供应商。
公告
Claire Zheng · 十一月 17, 2022

创意社区新闻摘要 | InterSystems Ideas News!

Hi 开发者社区的成员们,大家好! 欢迎关注我们第一期 InterSystems Ideas News! 最重要的消息是我们第一次非常成功的 创意马拉松。我们收到了75个有趣的新想法。 以下是创意社区(Ideas Portal)一些数据: ✓ 上月,我们收到了42条新创意✓ 上月,我们迎来了147位新用户✓ 迄今为止,我们共收到142 条新创意✓ 迄今为止,共有 273 位用户加入我们 以下是评选出来的当月最佳创意的前5名: IRIS and ZPM(Open Exchange) integration Move users, roles, resources, user tasks, Mappings (etc) to a seperate Database, other than %SYS, so these items can be mirrored RPMShare - Database solution for remote patient monitoring (RPM) datasets of high density vitals Create front-end package based on CSS and JS to be used in NodeJS and Angular projects PM platform 这里是上个月发布的所有想法的列表 目前就这些啦! 访问我们的 InterSystems Ideas portal(创意社区),提出你的观点,为你认同的创意投票! 下期见!
公告
Michael Lei · 一月 23, 2023

InterSystems 开发者竞赛:Tool(工具)

嘿开发者, 我们想邀请您参加我们的下一场比赛,该比赛致力于创造有用的工具,让您的开发伙伴们的生活更轻松: 🏆 InterSystems 开发者竞赛:Tool(工具)🏆 提交有助于加快开发速度、贡献更多定性代码并有助于使用 InterSystems IRIS 测试、部署、支持或监控您的解决方案的应用程序。 时间: 2023 年 1 月 23 日至 2 月 12 日(美国东部时间) 奖金池: 13,500 美元 话题 💡 InterSystems IRIS 开发者竞赛:Tool(工具)💡 在本次竞赛中,我们期待应用程序能够改善开发人员使用 IRIS 的体验,帮助更快地开发,贡献更多定性代码,帮助测试、部署、支持或监控您使用 InterSystems IRIS 的解决方案。 一般要求: 已接受的应用程序:Open Exchange 应用程序或现有应用程序的新应用程序,但有显着改进。我们的团队将审核所有申请,然后再批准他们参加比赛。 该应用程序应该可以在InterSystems IRIS Community Edition上运行。 匹配的应用程序类型:UI 框架、IDE、数据库管理、监控、部署工具等。 该应用程序应该是开源应用程序并发布在 GitHub 上。 应用程序的自述文件应为英文,包含安装步骤,并包含视频演示或/和应用程序工作原理的描述。 一位开发者最多可以携带 3 个应用程序参加比赛。 奖品 1. 专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出:: 🥇第一名 - 5,000 美元 🥈第二名 - 3,000 美元 🥉第三名 - 1,500 美元 🏅第四名 - $750 🏅第五名 - $500 🌟第 6-10 名 - $100 2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用: 🥇第一名 - $750 🥈第二名 - $500 🥉第三名 - $250 如果几个参与者获得相同数量的选票,他们都被认为是赢家,奖金由赢家分享。 重要截止日期: 🛠 应用开发和注册阶段: 2023 年 1 月 23 日(美国东部时间 00:00):比赛开始。 2023 年 2 月 5 日(美国东部时间 23:59):提交截止日期。 ✅ 投票时间: 2023 年 2 月 6 日(美国东部时间 00:00):投票开始。 2023 年 2 月 12 日(美国东部时间 23:59):投票结束。 注意:开发者可以在整个注册和投票期间改进他们的应用程序。 谁可以参加? 任何开发人员社区成员,InterSystems 员工除外。 创建一个帐户! 👥开发人员可以组队创建协作应用程序。一个团队允许 2 到 5 名开发人员。 不要忘记在应用程序的自述文件中突出显示您的团队成员——DC 用户配置文件。 有用的资源 ✓ 示例应用程序: iris-rad-studio - 用于 UI 的 RAD cmPurgeBackup - 备份工具 errors-global-analytics - 错误可视化 objectscript-openapi-definition - 开放 API 生成器 测试覆盖率工具- 测试覆盖率助手 还有更多。 ✓ 我们建议从以下模板开始: IRIS开发模板 rest-api-竞赛模板 本机 API 竞赛模板 IRIS FHIR模板 IRIS全栈模板 IRIS互操作性模板 IRIS分析模板 ✓ 对于 IRIS 初学者: 使用 InterSystems IRIS 构建服务器端应用程序 新手学习路径 ✓ 对于ObjectScript 包管理器 (ZPM)的初学者: 如何使用 InterSystems IRIS 的 REST 应用程序构建、测试和发布 ZPM 包 使用 InterSystems IRIS 和 ZPM 的封装优先开发方法 ✓ 如何提交您的应用程序参加比赛: 如何在 Open Exchange 上发布应用程序 如何提交比赛申请 需要帮忙? 加入 InterSystems 的Discord 服务器上的竞赛频道或在本文的评论中与我们交谈。 我们迫不及待地想看到您的项目!祝你好运👍 参加本次比赛,即表示您同意此处列出的比赛条款。请在继续之前仔细阅读它们。
公告
Claire Zheng · 一月 30, 2023

InterSystems 开发者社区2022年度调查

亲爱的开发者们, 非常感谢您又在 InterSystems 开发者社区度过了一年! 我们的团队日复一日地努力让它变得更好,这对我们12000+ 每一位成员都很重要! 我们想知道目前开发者社区对您有多大用处。请花点时间让我们了解您的想法,以及可以改进的地方: 👉🏼 InterSystems 开发者社区2022年度调查 👈🏼 请知悉:调查可在 5 分钟内完成。 也欢迎您在本文的评论部分提供反馈。 我们期待了解您的意见! 😉
公告
Jingwei Wang · 一月 26, 2023

2023 年 InterSystems 开发者工具大赛的技术奖励

以下是 2023 年 InterSystems 开发者工具大赛的技术红利,您可以在投票中获得额外加分: 嵌入式 Python的使用 Docker容器的使用 ZPM 包部署 在线演示 代码质量通过 开发者社区文章 开发者社区第二篇文章 上传 YouTube 视频 第一次贡献 请参阅下面的额外加分项详细信息: 嵌入式 Python的使用 - 3 分 在您的应用程序中使用嵌入式 Python,可以获得 3 分加分。您至少需要 InterSystems IRIS 2021.2及以上版本。 Docker 容器的使用 - 2 分 如果应用程序使用在 docker 容器中运行的 InterSystems IRIS,则该应用程序将获得“Docker 容器”奖励。这是最简单的模板。 ZPM 包部署 - 2 分 如果您为您的全栈应用程序构建和发布 ZPM(ObjectScript 包管理器)包,您可以获得2分加分,以便它可以使用如下方式部署: zpm "install your-multi-model-solution" 已安装的ZPM 客户端命令,请参考: ZPM客户端。文档。 项目的在线演示 - 2 分如果您将项目作为在线演示提供给云,则可额外获得 3 个奖励积分。您可以自己完成,也可以使用此模板- 这是一个 示例。这是有关如何使用它的视频。 代码质量通过且零错误 - 1 分 包括用于代码静态控制的代码质量 Github 操作,并使其显示 0 个 ObjectScript 错误。 关于开发者社区的文章 - 2 分 在 Developer Community 上发表一篇文章,描述您的项目的功能。每篇文章获得2分。不同语言的翻译也有效。 开发者社区第二篇文章 - 1分 您的第二篇文章或其应用的翻译文章可以获得额外的奖励积分。第 3 篇及以上不会带来更多积分,但文章和应用程序的关注度将全部归您所有。 上传 YouTube 视频 - 3 分 制作演示您的产品的 Youtube 视频,每个视频可获得 3 分奖励积分。例子。 首次贡献 - 3 分 如果您是第一次参加 InterSystems Open Exchange 竞赛,可获得 3 个奖励积分! 奖励积分清单可能会发生变化。敬请关注! 祝比赛好运!
文章
Lilian Huang · 二月 28, 2023

用一个命令设置您的 InterSystems FHIR 服务器

嗨,InterSystems 开发人员! 最近我更新了FHIR 开发模板,它发布了一个 IPM 包fhir-server ,使 InterSystems FHIR 服务器的设置成为一个微不足道的手动或自动或编程的程序,只需一条命令。 请参阅下文,了解如何从中受益。 TLDR USER>zpm "install fhir-server" 以下所有详细信息。 在没有 IPM 的情况下设置 InterSystems FHIR 服务器 当然,你可以不使用IPM软件包管理器来设置InterSystems FHIR服务器。下面是一些选项。 1. 您可以按照这些说明设置云 FHIR 服务器并试用几天,这是 AWS 云中的一个 InterSystems FHIR 服务器。 2. 您可以按照以下步骤将 InterSystems FHIR 服务器设置,运行 InterSystems IRIS for Health。 3. 你也可以 git 克隆这个模板的仓库并在目录中运行: $ docker-compose up -d 在您的笔记本电脑上启动并运行 InterSystems FHIR 服务器。 我在文章中建议的是第2点,你可以跳过所有的手动步骤,让FHIR服务器在笔记本电脑IRIS上运行,无论是docker还是主机操作系统。 用 IPM 设置 FHIR 服务器 免责声明!! 下面描述的步骤是指新安装的IRIS for Health实例或与docker图像一起使用。该软件包创建了一个新的命名空间和一个新的网络应用程序,因此它可能会损害你之前设置的设置 IPM 代表InterSystems Package manager ,以前称为 ZPM。确保你已经安装了 IPM 客户端。如果你在IRIS终端运行zpm命令并看到以下内容,你可以检查这一点: IRISAPP>zpm ============================================================================= || Welcome to the Package Manager Shell (ZPM). || || Enter q/quit to exit the shell. Enter ?/help to view available commands || ============================================================================= zpm:IRISAPP> 对于 2022.x 及更新版本,您将需要 IRIS for Health。 如何在笔记本电脑上运行 iris for health? 在主机操作上运行 从适合您的平台(Windows、Mac、Linux)的InterSystems 评估网站下载最新的 IRIS for Health 并安装。安装 ZPM。这是一个单行: USER>zn "%SYS" d ##class(Security.SSLConfigs).Create("z") s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="z" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c") 运行一个Docker版本。 在您的终端中调用以启动: --name iris4h -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community 然后启动终端: docker exec -it iris4h iris session IRIS 安装FHIR服务器 一旦IRIS在主机上运行,或只是在IRIS终端运行: USER>zpm "install fhir-server" 这将在FHIRSERVER命名空间中安装FHIR服务器,并提供参数: Set appKey = "/fhir/r4" Set strategyClass = "HS.FHIRServer.Storage.Json.InteractionsStrategy" set metadataPackages = $lb("hl7.fhir.r4.core@4.0.1") Set metadataConfigKey = "HL7v40" FHIR REST API 将在 http://yourserver/fhir/r4 上可用。 它还将添加一些合成数据。 如何理解服务器正在工作? 要在主机版本上测试: http://localhost:52773/fhir/r4/metadata 在 docker 版本上测试: http://localhost:9092/fhir/r4/metadata zpm 还安装了简单的 UI,它位于:yourserver/fhirUI/FHIRAppDemo.html 您会看到类似这样的内容(输入患者 id=1): 怎么运行的? 事实上,您可以在以下 module.xml场景中观察正在使用此 ZPM 模块安装的内容。如您所见,它导入代码,安装演示前端应用程序 fhir UI,运行安装后脚本,该脚本调用以下方法。该方法中的脚本执行 FHIR 服务器设置。 以编程方式安装 FHIR 服务器 您还可以通过以下命令以编程方式安装它: set sc= $zpm ( "install fhir-server" ) FHIR 编码快乐!
文章
Lilian Huang · 四月 28, 2023

InterSystems 嵌入式 Python 概览

嗨社区,在本文中,我将演示 InterSystems Embedded Python 的用法,我们将涵盖以下主题: 1-嵌入式Python概述 2-嵌入式Python的使用 2.1- 从 ObjectScript 使用 Python 库 2.2- 从 Python 调用 InterSystems API 2.3- 一起使用 ObjectScript 和 Python 3-使用python内置函数 4-Python 模块/库 5 个嵌入式 Python 用例 5.1- 使用 python Reportlab 库打印 PDF 5.2-使用Python二维码库生成二维码 5.3- 使用 Python Folium 库获取 GEO 位置 5.4- 通过使用在交互式地图上生成和标记位置 Python Folium 库 5.5- 使用 Python Pandas 库进行数据分析 6-总结 我们从概述开始 1-嵌入式Python概述 嵌入式 Python 是 InterSystems IRIS 数据平台的一项功能,它允许 Python 开发人员完全直接地访问 InterSystems IRIS 中的数据和功能。 InterSystems IRIS 带有一种名为 ObjectScript 的强大内置编程语言,可在数据平台内部进行解释、编译和运行。 因为 ObjectScript 在 InterSystems IRIS 的上下文中执行,所以它可以直接访问数据平台的内存和过程调用。 嵌入式 Python 是 Python 编程语言的扩展,允许在 InterSystems IRIS 进程上下文中执行 Python 代码。 因为 ObjectScript 和 Python 都在同一个对象内存上操作,可以说 Python 对象不只是模拟 ObjectScript 对象,它们本身就是 ObjectScript 对象。 这些语言的这种共同平等意味着您可以选择最适合工作的语言,或者您最习惯用来编写应用程序的语言。 2-嵌入式Python的使用 使用嵌入式 Python 时,您可以用三种不同的方式编写代码。 2.1 - 从 ObjectScript 使用 Python 库 首先,您可以编写一个普通的 .py 文件并从 InterSystems IRIS 上下文中调用它。在这种情况下,数据平台将启动 Python 进程并允许您导入一个名为 IRIS 的模块,该模块会自动将 Python 进程附加到 IRIS 内核,并让您可以从 Python 代码的上下文中访问 ObjectScript 的所有功能。 2.2 - 从 Python 调用 InterSystems API 其次,您可以编写普通的 ObjectScript 代码并使用 %SYS.Python 包实例化 Python 对象。这个 ObjectScript 包允许您导入 Python 模块和库,然后使用 ObjectScript 语法处理该代码库。%SYS.Python 包使不了解 Python 的 ObjectScript 开发人员能够在其 ObjectScript 代码中使用丰富的 Python 库生态系统。 2.3 - 一起使用 ObjectScript 和 Python 第三,您可以创建一个 InterSystems 类定义并用 Python 编写方法。对该方法的任何调用都会启动 Python 解释器。此方法的好处是使用对包含类实例的引用填充该 Python 代码块的 self 关键字。此外,通过使用 Python 在 InterSystems 类中编写类方法,您可以轻松实现处理 SQL 中不同数据输入事件的方法,例如将新行添加到表中。它还允许在 Python 中快速开发自定义存储过程。 如您所见,嵌入式 Python 允许您在不牺牲性能的情况下选择最适合工作的编程语言。 3-使用Python内置函数 Python 解释器有许多内置的函数和类型,它们总是可用的。它们按字母顺序列在此处。 内置函数 A -----100----- -----101----- -----102----- -----103----- -----104----- -----105----- 乙 -----106----- -----107----- -----108----- -----109----- -----110----- C -----111----- -----112----- -----113----- -----114----- -----115----- 丁 -----116----- -----117----- -----118----- -----119----- 乙 -----120----- -----121----- -----122----- F -----123----- -----124----- -----125----- -----126----- G -----127----- -----128----- H -----129----- -----130----- -----131----- -----132----- 我 -----133----- -----134----- -----135----- -----136----- -----137----- -----138----- 大号 -----139----- -----140----- -----141----- 米 -----142----- -----143----- -----144----- -----145----- 否 -----146----- 欧 -----147----- -----148----- -----149----- -----150----- P -----151----- -----152----- -----153----- R -----154----- -----155----- -----156----- -----157----- 小号 -----158----- -----159----- -----160----- -----161----- -----162----- -----163----- -----164----- -----165----- 吨 -----166----- -----167----- V -----168----- Z -----169----- _ -----170----- 使用 python内置函数为了使用 python 内置函数,我们必须导入“builtins”,然后我们才能调用该函数 -----171----- Python print() 函数实际上是内置模块的一个方法,因此您现在可以从 ObjectScript 使用此函数: -----172----- -----173----- 同样,您可以使用 help() 方法获取有关列表对象的帮助。 -----174----- 4-Python 模块或库 一些 python 模块或库是默认安装的,并且已经可以使用。通过使用 help("module" 函数我们可以查看这些模块: 安装 python 模块或库 除了这些模块之外,python 还有数百个模块或库,可以在pypi.org查看( Python 包索引 (PyPI) 是 Python 编程语言的软件存储库) 如果我们需要一些其他的库,那么我们需要使用 intersystems irispip 命令安装这些库 比如 Pandas 就是 python 数据分析库。以下命令使用包安装程序 irispip 在 Windows 系统上安装 pandas: -----175----- 请注意 C:\InterSystems 将替换为 Intersystems 安装目录 5 个嵌入式 Python 用例 5.1-使用python Reportlab库打印PDF 我们需要使用 irispip 命令安装 Reportlab 库,然后创建 objectscript 函数。 给定一个文件位置,以下 ObjectScript 方法 CreateSamplePDF() 创建一个示例 PDF 文件并将其保存到该位置。 Class Demo.PDF { ClassMethod CreateSamplePDF(fileloc As %String ) As %Status { set canvaslib = ##class ( %SYS.Python ).Import( "reportlab.pdfgen.canvas" ) set canvas = canvaslib.Canvas(fileloc) do canvas.drawImage( "C:\Sample\isc.png" , 150 , 600 ) do canvas.drawImage( "C:\Sample\python.png" , 150 , 200 ) do canvas.setFont( "Helvetica-Bold" , 24 ) do canvas.drawString( 25 , 450 , "InterSystems IRIS & Python. Perfect Together." ) do canvas.save() } } 该方法的第一行从 ReportLab 的 pdfgen 子包中导入 canvas.py 文件。第二行代码实例化一个 Canvas 对象,然后继续调用它的方法,这与调用任何 InterSystems IRIS 对象的方法的方式非常相似。 然后您可以按照通常的方式调用该方法: do ##class(Demo.PDF).CreateSamplePDF("C:\Sample\hello.pdf") 生成以下PDF并保存在指定位置: 5.2-使用Python二维码库生成二维码 为了生成二维码,我们需要使用irispip命令安装Qrcode库,然后使用下面的代码我们可以生成二维码: 5.3-使用Python Folium库获取GEO位置 为了获取地理数据,我们需要使用 irispip 命令安装脚本库 Folium ,然后创建以下对象脚本函数: Class dc.IrisGeoMap.Folium Extends %SwizzleObject { // Function to print Latitude, Longitude and address details ClassMethod GetGeoDetails(addr As %String ) [ Language = python ] { from geopy.geocoders import Nominatim geolocator = Nominatim(user_agent= "IrisGeoApp" ) try : location = geolocator.geocode(addr) print ( "Location:" ,location.point) print ( "Address:" ,location.address) point = location.point print ( "Latitude:" , point.latitude) print ( "Longitude:" , point.longitude) except: print ( "Not able to find location" ) } } 连接到 IRIS 终端并运行以下代码 do ##class(dc.IrisGeoMap.Folium).GetGeoDetails("Cambridge MA 02142") 下面将是输出: 5.4-通过使用Python Folium库在交互式地图上生成并标记位置 我们将使用同样的 Python Folium 库在交互式地图上生成和标记位置,下面的对象脚本函数将完成所需的操作: ClassMethod MarkGeoDetails(addr As %String , filepath As %String ) As %Status [ Language = python ] { import folium from geopy.geocoders import Nominatim geolocator = Nominatim(user_agent= "IrisGeoMap" ) #split address in order to mark on the map locs = addr.split( "," ) if len(locs) == 0 : print ( "Please enter address" ) elif len(locs) == 1 : location = geolocator.geocode(locs[ 0 ]) point = location.point m = folium.Map(location=[point.latitude,point.longitude], tiles= "OpenStreetMap" , zoom_start= 10 ) else : m = folium.Map(location=[ 20 , 0 ], tiles= "OpenStreetMap" , zoom_start= 3 ) for loc in locs: try : location = geolocator.geocode(loc) point = location.point folium.Marker( location=[point.latitude,point.longitude], popup=addr, ).add_to(m) except: print ( "Not able to find location : " ,loc) map_html = m._repr_html_() iframe = m.get_root()._repr_html_() fullHtml = """ <!DOCTYPE html> <html> <head></head> <body> """ fullHtml = fullHtml + iframe fullHtml = fullHtml + """ </body> </html> """ try : f = open (filepath, "w" ) f. write (fullHtml) f. close () except: print ( "Not able to write to a file" ) } 连接到 IRIS 终端并调用 MarkGeoDetails 函数 我们将调用 dc.IrisGeoMap.Folium 类的 MarkGeoDetails() 函数。该函数需要两个参数: location/locations(我们可以通过在中间添加“,”来传递多个位置) HTML文件路径 让我们运行以下命令在地图上标记 Cambridge MA 02142、NY、London、UAE、Jeddah、Lahore 和 Glasgow,并将其保存为“irisgeomap_locations.html”文件 do ##class(dc.IrisGeoMap.Folium).MarkGeoDetails("Cambridge MA 02142,NY,London,UAE,Jeddah,Lahore,Glasgow","d:\irisgeomap_locations.html") 上面的代码将生成以下交互式 HTML 文件: 5.5-使用 Python Pandas 库进行数据分析 我们需要使用irispip命令安装Pandas库,然后我们可以使用下面的代码查看数据 6-总结 InterSystems嵌入式Python(IEP)是一个强大的功能,它允许你将Python代码与你的InterSystems应用程序无缝集成。有了IEP,你可以利用Python中的大量库和框架来增强你的InterSystems应用程序的功能。在这篇文章中,我们将探讨IEP的主要特点和好处。 IEP是作为一组库实现的,它使你能够在InterSystems应用程序中与Python对象交互并执行Python代码。这为将Python代码集成到你的InterSystems应用程序中提供了一个简单有效的方法,使你能够执行数据分析、机器学习、自然语言处理和其他在InterSystems ObjectScript中可能难以实现的任务。 使用IEP的主要优势之一是它提供了一种弥合Python和InterSystems世界之间差距的方法。这使得我们可以很容易地利用两种语言的优势来创建强大的应用程序,将两个世界的优点结合起来。 IEP还提供了一种方法,通过利用Python的功能来扩展你的InterSystems应用程序的功能。这意味着你可以利用Python中大量的库和框架来完成那些在InterSystems ObjectScript中可能难以实现的任务。 InterSystems Embedded Python提供了一个强大的方法,通过利用Python的能力来扩展你的InterSystems应用程序的功能。通过将Python代码集成到你的InterSystems应用程序中,你可以利用Python中大量的库和框架来执行在InterSystems ObjectScript中可能难以实现的复杂任务。 谢谢。
文章
Shanshan Yu · 四月 18, 2023

基于 InterSystems 一体化机器学习IntegratedML的儿童身高和体重预测

随着生活水平的提高,人们越来越注重身体健康。 而孩子的健康成长也越来越成为家长关心的话题。 孩子的身体发育可以从孩子的身高和体重反映出来。 因此,及时预测身高和体重具有重要意义。 通过科学的预测和比较,关注孩子的发育状态。 该项目使用InterSystems IRIS Cloud SQL通过输入大量体重和身高相关数据来支持,并建立基于IntegratedML的AutoML进行预测分析。 根据输入的父母身高,可以快速预测孩子未来的身高,并根据当前的身高和体重状况判断孩子的体重指数。 在正常范围内。 功能: 通过应用该程序,可以快速预测处于正常发育状态的儿童的身高。 通过结果,家长可以判断孩子发育是否正常,是否需要临床干预,有助于了解孩子未来的身高; 通过当前体重状态判断当前孩子的BMI是否正常,了解孩子当前的健康状况 应用场景 1.儿童身高预测 2. 监测儿童发育
公告
Nicky Zhu · 一月 8, 2021

InterSystems 系统警报和监视 (SAM) 预览版本已发布

现在,InterSystems **系统警报和监视**(简称 InterSystems _SAM_)第 1 版 (v1.0) 发布了预览版本。    InterSystems SAM v1.0 为基于 InterSystems IRIS 的产品提供现代化的监视解决方案。 其可对集群进行高级别查看,并且能够以单节点方式可视化深入探视指标,同时提供警报通知。 该第 1 个版本提供对一百多个 InterSystems IRIS 内核指标的可视化,并且用户可以根据自己的喜好扩展默认提供的 Grafana 模板。 V1.0 旨在成为简单直观的基准。 请进行尝试并向我们发送反馈,帮助我们使其变得更棒! 从版本 2019.4 开始,SAM 可以显示来自基于 InterSystems 的实例中的信息 SAM 仅以容器格式提供。 您将需要 SAM 管理器容器,以及一小组额外的开源_组件_(Prometheus 和 Grafana),它们由组合文件自动添加。 可从以下位置获取 SAM 组件和 SAM 管理器社区版 * [WRC 预览页面](https://wrc.intersystems.com/wrc/coDistPreview.csp):分别为“SAM 组件”和“SAM 管理器” * 如果您要在 docker-compose 运行之前下载,可通过外部源[SAM 组件 Github repo](https://github.com/intersystems-community/sam) & [Docker Hub 上的 SAM 管理器](https://hub.docker.com/_/intersystems-system-alerting-and-monitoring)(后一个链接可能在几个小时内不可用,但容器是可获取的)   如果您正在旅行,或偏爱通过语音收听有关什么是 SAM 方面的提问与回答,我们为您准备了以下播客: 可在[此处](https://docs.intersystems.com/sam/csp/docbook/Doc.View.cls?KEY=ASAM)找到 SAM 文档