Hi 社区成员们,
我们希望你正在经历一个激情而又鼓舞人心的夏天(你所在的地方也有可能是冬天:D)!

今天我们在开发者社区启动“探索之夏”活动,详情如下:
Hi 社区成员们,
我们希望你正在经历一个激情而又鼓舞人心的夏天(你所在的地方也有可能是冬天:D)!

今天我们在开发者社区启动“探索之夏”活动,详情如下:
此 REST API 提供对源代码文件的访问。我们开发此 API 是为了允许 Atelier(我们基于 Eclipse 的 IDE)访问 IRIS 服务器上的 IRIS 代码文件。可以使用 API 执行访问 IRIS 代码文件所需的操作。这些行动包括:
IRIS 实例上可用的命名空间IRIS 类或例程SQL 查询来发现 IRIS 环境的属性这些操作提供了访问 IRIS 源代码文件的机制。为了创建 IRIS 开发环境,应该了解此 API 并全面了解 IRIS 源代码文件如何在 IRIS 中使用。
这是一个特殊用途的 API。如果正在创建开发环境或处理类似的应用程序,例如类浏览器,可能会发现此 API 很有用。但是,它不是用于访问 IRIS 对象的通用 REST API。
本文档描述了 IRIS 源代码文件 REST API 的版本 1 和 2。 IRIS 的未来版本可能支持此 REST API 的更高版本,提供额外的调用,但将始终能够调用早期版本。版本 1 的 API 在 URL 中包含 /v1/,版本 2的 API 包含 /v2/。
可以定义 REST 服务以处理不同格式的数据,例如 JSON、XML、文本或 CSV。 REST 调用可以通过在 HTTP 请求中指定 ContentType 元素来指定它期望发送的数据的形式,并且可以通过在 HTTP 请求中指定 Accept 元素来请求返回数据格式。
在 DocServer 示例中,GetNamespaces() 方法检查 REST 调用是否使用以下内容请求 JSON 数据:
If $Get(%request.CgiEnvs("HTTP_ACCEPT"))="application/json"
REST 服务REST 服务返回的任何字符串值都可以本地化,以便服务器以不同语言存储多个版本的字符串。然后,当服务接收到包含 HTTP Accept-Language 标头的 HTTP 请求时,服务会使用相应版本的字符串进行响应。
如何在Ensemble中对字段类型为GlobalCharacterStream进行字符串搜索?String的可以搜索,但是Stream类型的就不行。
本附录描述了如何通过继承 %CSP.REST 类来手动创建 REST 服务;此过程创建了一个手动编码的 REST 服务,它不能与所有 API 管理工具一起使用。
REST 服务的基础知识要手动定义 REST 服务,请执行以下操作:
REST 服务类 — %CSP.REST 的子类。在子类中:
URL 映射,该映射指定为 REST URL 和 HTTP 方法执行的 IRIS 方法。UseSession 参数。此参数控制每个 REST 调用是在其自己的 Web 会话下执行还是与其他 REST 调用共享一个会话。如果想将实现代码与调度代码分开,可以在单独的类中定义实现 REST 服务的方法,并从 URL 映射中调用这些方法。
REST 服务类作为其调度类的 Web 应用程序。要定义 Web 应用程序及其安全性,请转至 Web 应用程序页面(单击System Administration > Security > Applications > Web Applications)。
定义 Web 应用程序时,将 Dispatch Class 设置为 REST 服务类的名称。
此外,将应用程序的名称指定为 REST 调用的 URL 的第一部分。
近日遇到客户反映在Business Operation中使用SQL Outbound Adapter调用Oracle存储过程时,无法获取CLOB完整的返回内容。借此在这里介绍下该如何调用,话不多说,直接上代码。
注意,以下代码片段直接应用于Business Operation中,
set pIn = 4
set pIn(1) = "aaaa"
set pIn(1,"IOType") = 1 // 1:input , 4:output
set pIn(1,"SqlType") = 12 // 12: varchar
set pIn(2,"IOType") = 4
set pIn(2,"SqlType") = 4 // 4: integer
set pIn(3,"IOType") = 4
set pIn(3,"SqlType") = 12
set pIn(4,"IOType") = 4
set pIn(4,"SqlType") = 2005 // CLOB
set pIn(4,"LOB") = 1
set tQuery = "{ call test_hc(?,?,?,?本附录列出了 API 管理工具在生成 REST 服务类时使用的 OpenAPI 2.0 规范的属性。此处未列出的属性将被忽略。有几个扩展属性;它们的名称以 x-ISC 开头。
SwaggerbasePath
consumes
host
produces
definitions (请注意,API 管理工具在生成代码时不使用 Schema 对象的任何属性)
parameters (for details, see “Parameter Object”)
paths (for details, see “Path Item Object”)
info (for details, see “Info Object”)
swagger (must be "2.0")
有关这些属性的详细信息,请参阅 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#swagger-object。
在这篇文章中,我试图找出多个领域来开发我们能够使用python和机器学习的功能。
每家医院都在努力利用技术和服务来提高其服务质量和效率。
医疗保健部门是一个非常大的、可供选择的服务领域,而python是做机器学习的最好技术之一。
在每个医院里,人们都会有一些感觉,如果这种感觉能够被计算机理解,使用技术就有机会提供更好的服务。
在这里,我们可以把这两者结合起来,在医疗部门,我正试图理解/识别各种选择,以提供更好的服务。
首先,我们可以尝试使用python的机器学习来识别人并了解他们目前的感受。比如,在医院信息系统中,每个病人至少有一张照片,使用该照片我们可以识别病人,然后一旦病人到达医院,使用视频监控和机器学习技术需要识别这个人的感觉。
在医院设施中会看到多种类型的感觉。
1)紧张
2)平静和冷静
3) 哭泣
4) 暴力的病人/亲属
5) 生病的病人
6) 高烧鉴定
像上面的情况,我们可以看到多种不同的类型。
如果一个已经登记的病人发高烧,那么使用闭路电视识别这个病人的情况,并捕捉温度热像仪,护理人员可以给予更好的支持,这在接待服务领域是非常大的区别。
如果这个发高烧的人已经是一个登记的病人,如果利用现有的照片识别这个病人,那么我们可以做多件事情。
1)如果该病人今天有预约,我们可以自动到达该病人处。
此参考列出了 /api/mgmnt/ 服务中的端点,所有这些端点都适用于较新的 REST 服务。下表总结了端点并指出它们是否也适用于手动编码的 REST 服务。
| Endpoint | Summary | Applies to NEWER REST Services? | Applies to Manually-Coded REST Services? |
|---|---|---|---|
| DELETE /api/mgmnt/v2/:ns/:app | 删除 REST 服务 |
YES | no |
| GET /api/mgmnt/ | 列出此服务器上启用 REST 的 Web 应用程序 |
YES | YES |
| GET /api/mgmnt/v1/:ns/restapps | 列出命名空间中启用 REST 的 Web 应用程序 |
YES | YES |
| GET /api/mgmnt/v1/:ns/spec/:app | 返回 REST 服务的 OpenAPI 2. |
索引提供了一种机制,通过维护常用数据的分类子集来优化查询。确定哪些字段应该被编入索引需要一些思考:太少或错误的索引,关键查询会运行得太慢;太多的索引会减慢INSERT和UPDATE的性能(因为索引值必须被设置或更新)。
为了确定添加索引是否能提高查询性能,从管理门户的SQL界面运行查询,并在Performance中注意 global引用的数量。添加索引,然后重新运行查询,注意 global引用的数量。一个有用的索引应该减少 global引用的数量。你可以通过使用%NOINDEX关键字作为WHERE子句或ON子句条件的前言来阻止索引的使用。
你应该对JOIN中指定的字段(属性)进行索引。例如,LEFT OUTER JOIN从左表开始,然后查看右表,因此,你应该对右表的字段进行索引。在下面的例子中,你应该为T2.f2编制索引。一个INNER JOIN应该在两个ON子句字段上都有索引。
FROM Table1 AS T1 LEFT OUTER JOIN Table2 AS T2 ON T1.f1 = T2.f2如果查询计划中的第一个项目是 "read master map",或者查询计划调用的模块的第一个项目是 "read master map",那么查询的第一个map就是master map而不是索引map。
本章讨论如何发现实例上可用的 REST 服务以及如何为 REST 服务生成文档。
/api/mgmnt 服务发现 REST 服务/api/mgmnt 服务包括可用于发现 REST 服务类和启用 REST 的 Web 应用程序的调用。
REST 服务要使用 /api/mgmnt 服务来发现实例上可用的 REST 服务,请使用以下 REST 调用:
HTTP 操作,选择或指定 GET。URL,请指定以下形式的 URL:http://localhost:52773/api/mgmnt/v2/
或者,如果只想检查一个命名空间:
http://localhost:52773/api/mgmnt/v2/:namespace
其中 localhost 是服务器的名称,52773 是运行 IRIS 的 Web 服务器端口,命名空间是要检查的命名空间。
(请注意,这些调用会忽略手动编码的 REST 服务。要发现手动编码的 REST 应用程序,请使用调用 GET /api/mgmnt/ 和 GET /api/mgmnt/:v1/:namespace/restapps。)
如果调用成功,IRIS 以 JSON 格式返回一个列出 REST 服务的数组。例如:
[
{
"name": "%Api.Mgmnt.应用集成平台市场上产品众多,商家专家观点纷纭,莫衷一是。Gartner公司从用户角度出发,搭建了Peer Insight “大众点评”平台,让用户能够为自己使用的产品发声,对各个产品打分。以下是来自用户的声音,供参考。
第一款产品是微软的BizTalk,综合得分3.9。
第二款产品是InterSystems的Ensemble,综合得分4.6。
第三款产品是IBM的WebSphere Enterprise Service Bus,综合得分3.8。
BizTalkby MicroSoft |
Ensembleby InterSystems |
WebSphereEnterprise Services Bus by IBM |
|
总体评价:57%的用户愿意推荐该产品 |
总体评价:88%的用户愿意推荐该产品 |
总体评价:55%的用户愿意推荐该产品 |
![]() |
![]() |
|
|
分项评分 |
分项评分 | 分项评分 |
综合能力得分![]() |
综合能力得分![]() |
综合能力得分![]() |
评估与签约 3.3 定价灵活性
4.0 理解需求的能力 |
评估与签约 4.2 定价灵活性
4.6 理解需求的能力 |
评估与签约 3.5 定价灵活性
4.0 理解需求的能力 |
集成与部署 3.4 部署便利性3. |
InterSystems SQL支持在InterSystems IRIS数据平台数据库中将流数据存储为BLOB(Binary Large Objects 二进制大对象)或CLOB(Character Large Objects字符大对象)的能力。
InterSystems SQL支持两种流字段:
BLOBs和CLOBs可以存储多达4GB的数据(JDBC和ODBC规范规定的限制)。除了在通过ODBC或JDBC客户端访问时如何处理字符编码转换(如Unicode到多字节)外,BLOB和CLOB的操作在各方面都是相同的:BLOB中的数据被视为二进制数据,决不转换为其他编码,而CLOB中的数据被视为字符数据,在必要时进行转换。
如果一个二进制流文件(BLOB)包含单一的非打印字符$CHAR(0),它被认为是一个空的二进制流。它相当于""空二进制流值:它存在(不是空的),但长度为0。
从对象的角度来看,BLOB和CLOBs被表示为流对象。更多信息请参见定义和使用类中的 "与流合作 "一章。
InterSystems SQL支持流字段的各种数据类型名称。这些InterSystems的数据类型名称是对应于以下的同义词。
可以使用以下方式定义stored procedures
CREATE PROCEDURE 可以创建一个查询,它总是作为一个存储过程被预测。一个查询可以返回一个单一的结果集。
CREATE PROCEDURE AgeQuerySP(IN topnum INT 10, IN minage INT 20)
BEGIN
SELECT TOP :topnum Name, Age FROM Sample.Person
WHERE Age > :minage;
END列表中的每个参数声明包括(按顺序)。指定参数模式是IN(输入值),OUT(输出值),还是INOUT(修改值)。如果省略,默认的参数模式是IN,参数名称是区分大小写的。
CREATE QUERY 可以创建一个可以选择作为存储过程投射的查询。一个查询可以返回一个单一的结果集,这个查询可能是也可能不是作为存储过程公开的。要创建一个作为存储过程公开的查询,你必须指定PROCEDURE关键字作为其特征之一。你也可以使用CREATE PROCEDURE语句来创建一个作为存储过程公开的查询。
为了创建一个查询,你必须拥有%CREATE_QUERY管理权限,正如GRANT命令所指定的那样。
如果 REST 服务正在访问机密数据,应该对服务使用身份验证。如果需要为不同的用户提供不同级别的访问权限,还要指定端点所需的权限。
REST 服务设置身份验证可以对 IRIS REST 服务使用以下任何形式的身份验证:
HTTP 身份验证标头 — 这是 REST 服务的推荐身份验证形式。Web 会话身份验证 — 其中用户名和密码在 URL 中的问号后面指定。OAuth 2.0 身份验证 - 请参阅以下小节。REST 应用程序和 OAuth 2.0要通过 OAuth 2.0 对 REST 应用程序进行身份验证,请执行以下所有操作:
REST 应用程序的资源服务器配置为 OAuth 2.0 资源服务器。%Service.CSP 进行委派身份验证。Web 应用程序(用于 REST 应用程序)配置为使用委托身份验证。%SYS 命名空间中创建一个名为 ZAUTHENTICATE 的例程。 提供了一个示例例程 REST.ZAUTHENTICATE.mac,可以复制和修改它。此例程是 GitHub (https://github.com/intersystems/Samples-Security) 上 Samples-Security 示例的一部分。本节提供 CORS 的概述以及如何在 IRIS REST 服务中启用 CORS 的概述。
跨域资源共享 (CORS) 允许在另一个域中运行的脚本访问服务。
通常,当浏览器从一个域运行脚本时,它允许对同一个域进行 XMLHttpRequest 调用,但在对另一个域进行调用时不允许它们。此浏览器行为限制某人创建可滥用机密数据的恶意脚本。恶意脚本可能允许用户使用授予用户的权限访问另一个域中的信息,但随后在用户不知道的情况下,将机密信息用于其他用途。为了避免这种安全问题,浏览器一般不允许这种跨域调用。
在不使用跨域资源共享 (CORS) 的情况下,具有访问 REST 服务的脚本的网页通常必须与提供 REST 服务的服务器位于同一域中。在某些环境中,将带有脚本的网页与提供 REST 服务的服务器放在不同的域中是很有用的。 CORS 支持这种安排。
下面提供了浏览器如何使用 CORS 处理 XMLHttpRequest 的简化描述:
DomOne 中的网页中的脚本包含对 DomTwo 域中的IRIS REST 服务的 XMLHttpRequest。 XMLHttpRequest 具有 CORS 的自定义标头。XMLHttpRequest。本章介绍了使用InterSystems IRIS作为企业服务总线,描述了InterSystems IRIS ESB架构,并提供了部署ESB的概述。
企业服务总线(ESB)提供了一个单点来访问和管理具有SOAP、REST或其他网络API的应用程序。ESB提供了以下功能。
InterSystems IRIS ESB架构有以下组成部分。
Hi 大家好!
我们很荣幸地宣布InterSystems 将在剑桥总部举办 推动女性健康-FemTech不止是利基市场 高层论坛,论坛将在线上线下同步举行!
⏱ 时间: 7月 29日, 5:30 AM – 7:30 AM ,北京时间(July 28,5:30 PM – 7:30 PM ,EDT/美国东部时间)
📍 地点: InterSystems 总部,1 Memorial Drive, Cambridge, MA
下表列出了修改规范类的原因并简要总结了所需的更改:
| 原因 | 改变 |
|---|---|
| 更新或替换规范 | 手动修改 OpenAPI XData 块或通过重新生成规范类。 |
启用 REST 服务以支持 CORS |
手动修改 OpenAPI XData 块;还添加一个类参数并创建一个自定义调度超类。 |
启用 REST 服务以支持 Web 会话 |
添加类参数。 |
| 指定使用端点所需的权限 | 手动修改 OpenAPI XData 块。 |
| 覆盖默认内容类型、响应字符集或输入流处理 | 添加类参数。 |
| 为服务方法指定一个非默认名称 | 手动修改 OpenAPI XData 块。 |
无论何时编译规范类,编译器都会在同一个包中重新生成调度类并更新实现类。
只需将类参数添加到规范类并重新编译,就可以覆盖 REST 服务的几个关键方面。
REST 服务需要 application/json 内容类型。要覆盖它,请将以下内容添加到规范类:Parameter CONTENTTYPE = "some-content-type";
其中 some-content-type 是 MIME 内容类型。
REST 服务的响应消息采用 UTF-8 格式。本章讨论如何修改 REST 服务的实现类。
实现类最初包含存根方法,如下例所示:
/// Returns all pets from the system that the user has access to<br/>
/// The method arguments hold values for:<br/>
/// tags, tags to filter by<br/>
/// limit, maximum number of results to return<br/>
ClassMethod findPets(tags As %ListOfDataTypes(ELEMENTTYPE="%String"), limit As %Integer) As %Stream.Object
{
//(Place business logic here)
//Do .本章介绍如何使用 %REST.API 类来创建、更新和删除 REST 服务。
创建 REST 服务的推荐方法是从 REST 服务的 OpenAPI 2.0 规范开始,并使用它来生成 REST 服务类。要使用 %REST.API 类执行此操作:
REST 服务的 OpenAPI 2.0 规范,采用 JSON 格式,并将规范保存为文件。该文件必须是 UTF-8 编码的。REST 服务的命名空间中,使用该文件创建 %DynamicObject 的实例。%REST.API 类的 CreateApplication() 方法。这是一个帖子合集,方便你快速了解关于开发者社区的各种积分福利和玩儿法!
亲爱的社区开发者们,大家好!
现在参与Gartner Peer Insight同业评审对我们的产品做出评价,可获得价值 $25 美元的礼品卡。评论观点需中立客观(InterSystems员工不允许参加)并被Gartner审核通过。点击此处开始: https://gtnr.it/3ulVX4K 。
对流程不熟悉的同学,可以参考一下我们此前发布的一篇旧贴。
在创建一个或多个立方体后,你通常会创建并打包一组透视表和仪表盘,而用户通常会根据需要创建新的透视表和仪表盘。
本章简要地引导你了解创建透视表和仪表盘的过程。它包括以下几个步骤。
在本教程的前面,我们创建了一个使用Patients cube的透视表。现在让我们创建使用你的新立方体Tutorial的透视表。
一个主题区是一个子立方体,可以选择覆盖项目的名称。你定义一个主题区是为了使用户能够关注较小的数据集,出于安全原因或其他原因。本章讨论了以下主题。
在本教程中,我们创建了两个主题区域,按邮政编码划分患者:
要创建主题区域,请做以下工作。
SELECT FROM [PPatients]
%FILTER %OR({[HOMED].[H1].[ZIP CODE].到目前为止,我们所创建的每个维度都包含一个具有一个level的层级结构。在这一节中,我们将在HomeD维度的层级结构中添加一个level。
在现实中,邮政编码和城市之间存在着多对多的关系,所以两者都不是对方的父级。
当我们添加邮政编码级别时,我们把它放在城市级别之后,这意味着城市是邮政编码的父级。这影响了系统为ZIP Code生成成员的方式。
点击主页,Analytics - > 模型。
系统会创建cube类,你也可以在Studio中查看和修改。
类浏览器提供了你的基类的类属性(除了关系属性)的有用视图,这使得基于这些属性创建DeepSee元素非常容易。然而,重要的是要知道,尽管这个视图提供了一个访问某些属性的方便方法,你也可以使用源表达式来访问任何数据。这些源表达式是在构建cube时进行评估的,因此不会影响你的运行时性能。
注意:基表是Patients,这意味着所有的度量都是关于病人的数据总结。
select count(*) as "count" ,avg(age) as avgage from BI_Study.Patient
在InterSystems IRIS数据平台管理门户中,有一些工具用于导入和导出数据。这些工具使用动态SQL,这意味着查询是在运行时准备和执行的。可以导入或导出的行的最大尺寸是3,641,144个字符。
你也可以使用%SQL.Import.Mgr类或LOAD DATA SQL命令导入数据,并使用%SQL.Export.Mgr类导出数据。
你可以从一个文本文件中导入数据到一个合适的InterSystems IRIS类。当你这样做时,系统会在该类的表中创建并保存新的行。该类必须已经存在并且必须被编译。
步骤如下:
.png)
本章介绍了如何将SQL code从文本文件导入InterSystems SQL。当你导入SQL code时,InterSystems IRIS 数据平台使用动态SQL准备并执行每一行的SQL。如果遇到无法解析的SQL code行,SQL导入会跳过该行code,继续准备和执行后续的code行,直到到达文件的末端。所有的SQL code导入操作都会导入到当前的命名空间。
SQL导入主要用于导入数据定义语言(DDL)命令,如CREATE TABLE,并使用INSERT、UPDATE和DELETE命令来填充表。SQL导入可以准备和执行SELECT查询,但不创建结果集。
SQL导入可以用来导入InterSystems的SQL code。它也可以用于code迁移,从其他供应商(FDBMS、Informix、InterBase、MSSQLServer、MySQL、Oracle、Sybase)导入SQL。来自其他供应商的code被转换为InterSystems的SQL并执行。SQL导入不能将所有的SQL命令导入到InterSystems SQL中。它导入的是那些与InterSystems IRIS实现的SQL标准兼容的命令和条款。不兼容的特征通常会被解析,但会被忽略。
SQL导入可以成功地准备一个SQL查询--在适当的时候创建一个相应的缓存查询--但它不会执行查询。
你通过调用%SYSTEM.SQL.