清除过滤器
文章
Michael Lei · 四月 24, 2021
欢迎大家将相关的经验在这个讨论区分享。
板块
文章列表
征文大赛作品集锦
2022年首届InterSystems 技术征文大赛集锦
官方文档
我司即将推出中文官方文档门户,欢迎大家把需要的官方文档发在评论区,我们会优先发布。谢谢!
IRIS 2021 最新技术文档 First Look 1 技术概要
IRIS 2021 中文文档PDF下载
基础知识与概念
InterSystems-常用术语
多语言字符集系列文章--第一篇 多语言字符集和相关标准简史
基础系列--第一章 SQL中使用的符号
基础系列--Object Script 基础知识(一)
基础系列--InterSystems SQL 的使用 - 第一部分 - 架构及特性介绍
基础系列--WebGateway系列(1): Web Gateway介绍
基础系列 DeepSee 的开发 - 第一部分 - Cube
基础系列--访问IRIS数据平台的四种方式
在集成产品中压缩解压文件
无代码实现SQL业务服务和业务操作
运维与常见问题
InterSystems 最佳实践系列文章
IRIS/Healthconnect-高可用机制-mirror-的配置
系统运维、管理常见问题FAQ系列
运维好文--InterSystems 数据平台互操作功能运行维护管理基础
运维好文--集成平台实例中有哪些文件在占用磁盘?
安全、等保、审计相关系列
虚拟化大型数据库 - VMware CPU 容量规划
InterSystems 数据平台的容量规划和性能系列文章
已经解决的问题清单
使用Prometheus监控Cache集群
医院信息化建设实战教程:如何在不允许使用Git的情况下自动备份代码/自动执行代码?
开发与创新
CDC系列:使用Dejournal Filter在InterSystems IRIS/Caché上通过Mirroring实现CDC功能实操--HealthConnect中创建HTTP服务创新--基于Docker的一体化集成AI环境中部署机器学习/深度学习模型
创新--面向 Google Cloud Platform (GCP) 的 InterSystems IRIS 示例参考架构
创新--在 Windows 主机上运行的 Hyper-V Ubuntu 虚拟机中配置 Docker 使用环境
创新-- 新一代医疗数据互操作标准FHIR系列文章
科研--用IRIS IntegratedML(一体化机器学习)来预测肾病的Web应用
IRIS如何进行CRUD操作
如何调用Ensemble/IRIS内置的HL7 V2 webservice - Java,PB9,Delphi7样例
IRIS与Caché的23种设计模式
10分钟快速开发一个连接到InterSystems IRIS数据库的C#应用
SQLAlchemy - 将 Python 和 SQL 与 IRIS 数据库一起使用的最简单方法
物联网 (IOT) 在 InterSystems IRIS 平台上的应用
本地化
Caché实现SM3密码杂凑算法
在国产系统上安装Healthconnect2021
HEALTHSHARE2018版如何实现AES(CBC)的HEX输出,并可以实现加密和解密
行业观察与洞见
精华文章--《数据二十条》的号角声
论集成标准的选择对医院信息集成平台建设的影响
医疗行业的生态创新:如何实现数据利用和应用创新
精华文章--从软件架构发展谈业务集成技术演进与展望
精华文章--漫谈应用集成的现在与未来
翻译文章:什么是智慧医院数字孪生?
医疗行业数字化转型 —谈谈微服务架构
医院数字化转型之数智底座建设思路(在陕西省数字医学数字化转型论坛上的分享)
行业前沿系列翻译文章--EPIC 电子病历系统: FHIR, API, 互操作性和资源
行业前沿--利用数据编织应对挑战,创造数据价值
医疗行业的生态创新:如何实现数据利用和应用创新
转载:Epic的Cosmos如何用去识别化的数据支持临床研究
前沿探讨--大模型GPT 对医疗行业互操作性协议的影响?
其他
社区文章汇总--跟着社区学习InterSystems 技术
产品对比——Gartner DBMS 魔力象限中的主要领先数据库产品功能对比
产品对比--企业软件的“大众点评”之最新Gartner 云数据管理系统对比,国内医疗信息行业主流的Hadoop(Cloudera)vs Oracle vs Sql Server vs InterSystems Cache
产品对比--Gartner Peer Insight 华山论剑之应用集成平台--InterSystems vs MS vs IBM
学习系列
IRIS/Healthconnect-高可用机制-mirror-的配置
跟版主学caché——大型史诗级免费技术培训caché百讲
git-github入门学习系列
IRIS 快速入门系列讲座
WebGateWay 学习系列
Intersystems IRIS for Health 数据平台医疗版最新在线培训课程
CDC系列
ISC 中国在B站培训视频
如何在社区学习?
初学者资源库
调研—— InterSystems 客户服务满意度调研(长期有效) 互操作系列
消息统一管理
孤立消息管理
HTTP服务
开发系统接口
IRIS 系列
2021版最新官方系列文档
权限管理
容量和性能规划
超融合规划
Web Gateway
数据同步和容灾系列
SOAP 服务
开发
ObjectScript 系列
Object & SQL
运维
系统运维常见问题
B站视频
其他Ensemble相关
文章
Tete Zhang · 七月 4, 2023
本文讨论了在使用或维护InterSystems产品中遇到问题时,试图确定问题时可能用到的思路和工具。
一般故障排除
确定问题发生的地点和时间
问题是什么时候开始的?多久发生一次?
问题首先出现在哪里?
问题在什么条件下会被触发?
审查日志中的警告、错误和警报
以下日志可能包含有关该问题的有用信息。可以尝试在以下日志中寻找问题开始前后的警告或报错。
检查 messages.log(IRIS)或者 cconsole.log(Caché and Ensemble)
通过文件系统(<install-dir>/mgr/messages.log)访问messages.log文件,或者
通过管理门户(系统操作>系统日志>Messages Log)访问文件内容
检查production事件日志 (详细信息请参见文档)
查看应用程序错误日志 (详细信息请参见文档)
查看Web Gateway/CSP Gateway日志
查看网络服务器(IIS/Apache)日志
检查实例是否可以访问足够的存储空间
检查文件系统剩余空间(推荐设置操作系统层级的存储空间低告警)
检查数据库剩余空间
通过管理门户(系统操作>数据库>Freespace View)查看数据库文件内剩余空间百分比
检查Journal日志空间
检查CPU活动
服务器的负载是否在正常范围内?
监控CPU利用率
CPU使用率是稳定的,还是有尖峰?这些尖峰是活动的增加还是减少?
CPU是否经常在I/O上等待?
在安装了sysstat的系统上,可以通过iostat监控此项。
审查开放的事务和锁
是否存在开放事务的问题?
评估锁表大小。
查看messages log中是否有锁表满 LOCK TABLE FULL 的警告
检查所有进程是否按预期运行
监控总进程。
进程数是否有显著增加?
是否有任何进程被卡住,或在循环?
进程使用的内存量是否正常?
进入管理门户 > 系统操作 > 进程 > 进程ID的详细信息,以获得关于具体进程的信息。
检查镜像监视器和镜像状态监视器
监控镜像的状态。同步日志工作是否已经完成?
进入管理门户>系统操作>镜像监视器,查看镜像状态。
记录镜像成员之间的差异。
不是所有在主机上的更改都会通过镜像机制同步到备机。系统管理员需要对主备机上无法自动同步的更改进行手动更改,以及对主备机上不同步的部分做完整的记录。
确保InterSystems IRIS的许可证是有效的
监控许可证使用情况。
进入管理门户>系统操作>软件许可使用情况查看。
监控许可证的过期时间。
联系WRC
你所掌握的关于问题的任何信息都可以帮助WRC确定导致该问题的原因。以下是你可以执行的步骤,以向WRC提供尽可能多的信息。
总结问题
这个问题可以重现吗?它是否持续发生?
最近系统上是否有任何变化,可能导致了这个问题?
记录InterSystems IRIS和其操作系统的版本信息
进入管理门户>关于页面,获取完整的版本信息。
运行监控工具
运行系统诊断报告
IRIS: do ^SystemCheck
Caché/Ensemble: do ^Buttons
如果系统处于挂起状态,运行IRISHung
IRISHung脚本是一个操作系统工具,用于在InterSystems IRIS实例挂起时收集系统的数据。
该脚本位于install-dir\bin目录下,在Microsoft Windows 系统上名称为IRISHung.cmd,在UNIX®/Linux 系统上名称为 IRISHung.sh。
IRISHung脚本应以管理员权限运行。
如果有性能问题,运行系统性能报告
IRIS: do ^SystemPerformance
Caché/Ensemble: do ^pButtons
与WRC取得联系
访问InterSystems全球响应中心(WRC)网站 (wrc.intersystems.com),或
邮件发送问题描述至support@intersystems.com,或
拨打中国区技术支持中心热线电话 400-601-9890
文章
Qiao Peng · 四月 25, 2022
InterSystems流程自动化与工作流引擎
InterSystems工作流程引擎的主要功能 2
使用InterSystems工作流程引擎 3
场景描述 3
环境配置与测试 5
任务管理 15
任务API和自定义任务用户界面 16
展望 17
15
集成平台除了集成业务系统,打通数据与业务流程外,另一个核心的功能就是流程自动化(BPA)。
流程自动化涉及几个重要的特性:
流程建模
流程协同
决策自动化
低代码工作流程自动化
任务协同与任务管理
其中第4和5点都是和工作流程相关的。
什么是工作流程(Workflow)?它和业务流程(Business Process)有何区别?为何集成平台要涉及对工作流程的管理?
工作流程是对人工工作任务的流程及其各操作步骤之间业务规则的抽象、概括描述。所以它针对的是人工工作任务,而非业务系统的接口。业务流程与工作流不同,业务流程描述的是特定的业务在各个IT系统间和人工任务间的流程过程和业务抽象。也就是说业务流程范围比工作流程大,是包括工作流程的。
为何要在集成平台里提供工作流程建模和管理的能力?其实医院的所有业务系统都是执行人工任务的,例如医生在HIS中给患者录入诊断、下达医嘱。但并非所有的人工任务和流程在现有的业务系统中都有,例如越来越多的辅助决策系统会提供给医护人员决策建议,这些建议需要医护人员确认才能被采纳。这些辅助决策系统需要被集成平台持续集成:拿到辅助决策的上下文数据,并实时反馈决策建议给业务系统。但它的决策建议缺很难集成进业务系统的工作流程中,这涉及对业务系统的改造 – 改造现有业务系统的流程和用户界面,时间和费用成本高昂。随着辅助决策使用的范围与深度的扩大,通过改造业务系统以纳入对不断涌现的辅助决策支持内容变得越发难以为继。
工作流程引擎可以帮助解决这样的需求,快速满足业务流程优化和再造的需要,创造持续集成的价值。
InterSystems工作流程引擎的主要功能
InterSystems IRIS数据平台、Health Connect医疗集成平台和Ensemble集成平台都内建有工作流引擎。工作流程引擎具有以下功能:
任务角色和用户管理 – 对工作任务的角色定义和角色用户的管理
任务抽象与建模 – 对工作任务的上下文数据模型和任务动作的建模
任务列表 – 对任务进行管理的
任务分配 – 对工作任务进行分配与管理,例如按什么顺序分配任务?任务退回后如何重分配?
任务流程建模和自动化 – 通常工作流程是业务流程的一部分,按业务流程图建立工作流程模型,并自动化执行
任务门户 – 提供给用户的任务界面,用以查看、接受、执行或退回任务
任务API – 提供给第三方系统用以集成的任务查询、接受、执行、退回的API
InterSystems数据平台提供了一个针对工作任务的标准业务操作类 -EnsLib.Workflow.Operation,将这个业务操作加入到业务流程即可。它有对应的任务请求消息 –EnsLib.Workflow.TaskRequest 任务响应消息 - EnsLib.Workflow.TaskResponse。这些类都无需修改,直接使用。
使用InterSystems工作流程引擎
场景描述
我们以一个简化的示例为例,说明如何使用工作流。这个示例不需要写代码,完全通过图形化工具和配置工具完成。场景如下:
医生通过医生站下达药嘱后,药嘱发送给药房系统。现在医院上了一套基于机器学习的药品知识库,通过患者的年龄信息、诊断和药嘱,判断药嘱是否有风险。但药房系统尚无法与药品知识库做流程集成,因此我们用InterSystems工作流来做对药剂师的药嘱风险进行提示。整体业务流程图如下:
医生站会发出HL7 V2的药嘱消息OMG_O19,药房系统也接受HL7 V2的药嘱消息OMG_O19。而药品知识库提供服务,需要的请求消息,包含患者诊断、药嘱,并返回警告级别和警告内容。
我们的用例中,医生为控制患者血压开了美托洛尔,但患者有糖尿病,美托洛尔是β受体阻滞剂药物,会影响血糖和血脂的代谢。因此药品知识库会给出药品风险提示。
环境配置
演示环境安装和配置
初始的演示环境在这里下载。
将它导入您的IRIS或HealthConnect平台,如果还没有IRIS,可以下载免费的社区版。
导入后,会看到有Demo.BP.Workflow这个非常简单的业务流程:
Production中只有一个业务服务,用来通过文件接收HL7 V2消息,默认的接收文件目录是 C:\Temp\hl7v2\,处理过的HL7文件会保存在C:\Temp\hl7v2\Archive。请配置这2个目录到你本地的可用且有权限的目录。
下载包中提供了样例HL7 V2消息文件,测试时,将其拷贝到接收文件目录即可。
现在我们增加“药剂师复核”的工作任务
向Production中增加操作,弹出页面中:
类名称 选择 EnsLib.Workflow.Operation
操作名称 可以填写“药剂师”
自动创建角色 选择 是 。这样系统会自动检查任务角色名称,如果没有“药剂师”任务角色,会自动帮我们创建
修改业务流程,增加对药剂师角色的任务流程调度
将“待实现药剂师任务”的<empty>流程节点删除,并在原节点上增加“调用(<call>)”流程节点。选择目标为“药剂师”业务操作;取消选中“异步”;给它的名称设置为“提示药剂师药品风险”。
配置药剂师任务
4.1配置任务请求消息 – 应选择EnsLib.Workflow.TaskRequest。这个消息中有这些属性:
%Actions:字符串类型,用来让用户执行的操作,如果有多个操作,用逗号分隔。这里我们给药剂师二个操作选项:"取消药嘱,忽略提示"。
%Subject: 字符串类型,任务的主题。今后可用于任务的分析、分配。这里我们设置为"药嘱风险处理"。
%Message:字符串类型,任务的描述。这里我们不赋值。
%Priority: 整数型,任务优先级,1为最高,默认值为3。我们将任务优先级设置为药品风险级别: context.DrugAlertLevel。
%UserName:字符串类型,用于指定任务分配到的具体用户。这里我们计划分配给角色,而不是具体的用户(药剂师),因此不用赋值。
%Title:字符串类型,任务的名称。它和主题不同,是任务的具体名称。这里我们不赋值。
%TaskHandler:字符串类型,任务句柄,设置为响应消息的类名。不用设置。
%Command: 字符串类型,用于向任务句柄传递参数。不用设置。
%FormTemplate: 字符串类型,用于设置用户自定义任务界面的CSP网页名。不用设置。
%FormFields: 字符串类型,用于设置任务用户界面的显示项目名称,多个显示项目名称间用逗号分隔。我们需要显示患者姓名、药品名称、患者诊断、药品风险级别和药品风险信息,设置为"患者姓名,药品名称,患者诊断,药品风险级别,药品风险"。
%FormValues:字符串数组类型,对应%FormFields每个显示项目的值。%FormValues的下标(Key)就是对应的%FormFields的每个显示项目的名称。
其中Key为"患者姓名"的数据从请求HL7消息的PID段的PatientName字节获取,因此值设置为request.{PIDgrp.PID:PatientName};
Key为"药品名称"的数据从上下文变量context的Msg4DrugDB属性的Drug属性中获取,因此值拖拽为context.Msg4DrugDB.Drug;
Key为"患者诊断"的数据从上下文变量context的Msg4DrugDB属性的Diagnoses属性中获取,因此值拖拽为context.Msg4DrugDB.Diagnoses;
Key为"药品风险级别"的数据从上下文变量context的DrugAlertLevel属性中获取,因此值拖拽为context.DrugAlertLevel;
Key为"药品风险"的数据从上下文变量context的DrugAlert属性中获取,因此值拖拽为context.DrugAlert。
4.2配置任务响应消息 – 应配置为EnsLib.Workflow.TaskResponse。这个消息中有这些属性:
%Action: 记录了药剂师完成任务时选择了哪个操作。我们需要将它保存到上下文中。直接拖拽callresponse的%Action到context的PharmacistDecision:
%Priority:任务优先级,是从任务请求消息拷贝来的。我们无需处理它。
%UserName: 记录哪个用户执行了该任务。我们需要将它保存到上下文中。
%UserTitle:记录执行该任务的用户头衔。我们无需处理它。
%UserRanking: 记录执行该任务的用户在该角色组中的排序。我们无需处理它。
%RoleName:记录执行该任务的角色名称。我们无需处理它。
%Subject:任务的主题,是从任务请求消息拷贝来的。我们无需处理它。
%Message:任务的描述,是从任务请求消息拷贝来的。我们无需处理它。
%Actions:用来让用户执行的操作,是从任务请求消息拷贝来的。我们无需处理它。
%FormTemplate: 用户自定义任务界面的CSP网页名,是从任务请求消息拷贝来的。我们无需处理它。
%FormFields: 任务用户界面的显示项目名称,是从任务请求消息拷贝来的。我们无需处理它。
%FormValues:任务用户界面的项目值。我们无需处理它。
%Status:任务状态,用于查询任务状态。我们无需处理它。
%TaskStatus: 任务状态,用于工作流引擎分配和管理任务。我们无需处理它。
添加业务流程分支,以响应药剂师不同的任务执行结果
在“提示药剂师药品风险”流程节点后面增加对任务执行结果判断,这里需要用“分支<branch>”,而不是“if” - “分支<branch>”可以返回到任何的“标签<label>”节点。
对“分支<branch>”节点,需要设置其条件和标签,在满足条件时转到标签继续执行。因此条件设置为药剂师没有选择“取消医嘱”: context.PharmacistDecision'="取消医嘱";标签选择“药房”。
编译并启动Production
祝贺大家看到这里了,主要工作已经完成,我们没有写任何一行代码、完全通过配置,已经有了如下完整的业务流程图,保存并编译它。
启动Production。
配置工作流角色与工作流用户
启动Production后,系统会自动帮助我们创建“药剂师”工作流角色。可以到管理门户>Interoperability>管理>工作流>工作流角色 确认。
现在要增加一个工作流用户。可以使用你正在使用的IRIS账户作为药剂师用户账户。在管理门户>Interoperability>管理>工作流>工作流用户 页面中选择你的IRIS账户,我这里选择的是SuperUser;并给他一个全名,然后保存。
然后将这个工作流用户加入“药剂师”工作流角色:在工作流角色管理界面点击添加,在用户名中选中刚才创建的工作流用户,其它不用选中,点击确定。现在我们有了可用于测试的工作流用户。
测试
现在我们开始测试:
8.1 检查一下Production是否处于启动状态;然后将示例HL7 V2文件拷贝到接收HL7目录,应该看到这个文件很快就消(处)失(理)了。
8.2登录到任务门户:以药剂师用户帐号登录到管理门户>Analytics>用户门户>工作流收件箱。
可以看到有一个新的“药嘱风险处理”任务,“已分配给”字段时空的,也就是说这个给药剂师角色的人物还没有分配给任何用户。
8.3 这时,我们是看不到任务详情的,但有一个“接受”按钮。点击它就会接受该任务。当任务被接受,其他用户就看不到该任务了。
现在,就可以看到任务详情了:我们设置的任务上下文信息,例如患者姓名、药品名称、药品风险提示都可以看到了。同时,页面上面有4个按钮,其中2个“取消药嘱”、“忽略提示”是我们设置给药剂师的操作。
另外2个按钮是什么?
用户接受了、或被分配了任务,但可以点击“放弃”以退回任务,这样任务又称为“未分配”状态,其他用户就可以看到它并点击“接受”以接受任务。
“保存”是用于未完成任务,但中途需要保存信息时使用。例如任务需要用户书写记录,记录书写到一半离开去忙别的事情,可以点击“保存”以保存已经书写的内容。注意,这时任务并没有完成。
8.4 现在我们让药剂师忽略药嘱风险提示,点击“忽略提示”继续发药流程。
8.5 现在让我们回顾一下完整的业务流程:
在可视化追踪中查看刚才的业务,我们可以看到业务流程按照设计,在药品知识库有提示的情况下,启动了药剂师药嘱风险决策支持任务,并在药剂师忽略提示后,将药嘱发送给药房系统。
大家可以更改一下药剂师的决策,看看流程有什么变化。
任务管理
平台管理员可以查看、分配、重分配、修改优先级和取消任务。
以管理员身份登录到管理门户>Interoperability>管理>工作流>工作流任务,可以查看包括完成的任务在内的所有任务,并可按不同的条件排序。
如果要分配任务,在“用户名”中选择要分配给的用户;
如果要调整任务优先级,选择“优先级”;
如果要取消任务,选中“是否取消”选择框,即可取消。
另外,任务管理员可以将已取消或已完成的任务重新激活。
任务API和自定义任务用户界面
前面介绍了工作流建模、使用工作流门户管理工作任务。如何使用自己的应用或界面管理工作流任务?
有几种方法:
管理门户是网页,它可以被嵌入到其它应用中。即其它应用可以直接通过单点登录,登录到管理门户进行操作。
使用InterSystems平台的任务管理API,然后自己开发任务用户界面或直接在自己的应用中调用。
我个人推荐方法2:
社区里有一篇非常棒的文章,介绍任务管理API和如何使用这些API和Angular进行自定义的任务用户界面开发。
其中任务管理API可以在此下载
自定义任务管理界面可以在此下载
展望
现在的IT应用都是“复合应用”:当今所有应用系统建设即不是原来的纯单体应用开发项目、也不是仅与其它系统整合的集成项目,而是一个复合应用项目 – 每个新业务都需要快速开发并和别的应用集成。
InterSystems工作流引擎为人工工作流程建模提供了低代码/免代码开发的支持。同时,它也赋能复合应用开发:
使用InterSystems工作流和业务流程建模、自动化机器学习引擎或第三方机器学习引擎,可以将基于机器学习的辅助决策支持整合到业务流程中,形成决策过程闭环和机器学习优化闭环。
基于InterSystems工作流,可以将传统编码开发实现的人工工作流程开发通过低代码的业务流程建模方式实现,赋能业务团队高度参与到业务流程梳理、建模与优化中;它将业务流程逻辑与用户界面分离,从而提高业务团队参与度、降低开发成本、快速满足业务进化需求、提高架构灵活性。
文章
Nicky Zhu · 一月 10, 2021
当您首次使用InterSystems IRIS时,通常只需安装最低安全级别的系统。您输入密码的次数会比较少,这样有利于快速了解和操作开发服务和Web应用程序。而且,最低的安全性有时更便于部署开发项目或解决方案。
然而,有时需要将项目移出开发环境,迁移到一个可能很不友好的互联网环境中。在部署到生产环境之前,需要使用最大的安全设置(即,完全锁定)对其进行测试。这就是我们在本文中将要讨论的内容。
如果想更全面地了解InterSystems Caché、Ensemble和IRIS中的DBMS安全性问题,请阅读我的另一篇文章《[在生产环境中安装InterSystems Caché DBMS的相关建议](https://community.intersystems.com/post/recommendations-installing-intersystems-cach%C3%A9-dbms-production-environment)》。
InterSystems IRIS中安全系统的设计概念是针对不同的类别(用户、角色、服务、资源、特权和应用程序)应用不同的安全设置。

可以为用户分配角色。用户和角色可以对资源(数据库、服务和应用程序)拥有不同的读、写和使用权限。用户和角色还可以对数据库中的SQL表拥有SQL权限。
# 安全级别的差异
用户在安装InterSystems IRIS时,可以为其选择安全级别:最小、正常或锁定。这些级别在用户参与程度、可用角色和服务,以及服务和应用程序的身份验证方法的配置方面存在差异。如需了解更多信息,请阅读《InterSystems IRIS安装准备》指南中的《InterSystems安全性准备》章节。
在文档中,您可以找到下面这些表格,其中显示了每个级别的安全设置。这些安全设置可以在系统管理门户界面进行更改。
## 初始用户安全设置
|Security Setting | Minimal | Normal | Locked Down |
|--------------------------------------------|--------------|--------------|----------------------|
|Password Pattern |3.32ANP |3.32ANP |8.32ANP |
|Inactive Limit |0 |90 days |90 days |
|Enable _SYSTEM User |Yes |Yes |No |
|Roles assigned to UnknownUser |%All |None |None |
## 初始服务属性设置
|Service Property |Minimal|Normal|Locked Down|
|-----------------------------------|-----------|----------|------------------|
|Use Permission is Public |Yes |Yes |No |
|Requires Authentication |No |Yes |Yes |
|Enabled Services |Most |Some |Fewest |
## 初始服务启用设置
|Service | Minimal | Normal | Locked Down |
|-----------------------------------|--------------|-------------|---------------------|
|%Service_Bindings | Enabled | Enabled | Disabled |
|*%Service_CSP | Enabled | Enabled | Enabled |
|%Service_CacheDirect | Enabled | Disabled | Disabled |
|%Service_CallIn | Enabled | Disabled | Disabled |
|%Service_ComPort | Disabled | Disabled | Disabled |
|%Service_Console | Enabled | Enabled | Enabled |
|%Service_ECP | Disabled | Disabled | Disabled |
|%Service_MSMActivate | Disabled | Disabled | Disabled |
|%Service_Monitor | Disabled | Disabled | Disabled |
|%Service_Shadow | Disabled | Disabled | Disabled |
|%Service_Telnet | Disabled | Disabled | Disabled |
|%Service_Terminal | Enabled | Enabled | Enabled |
|%Service_WebLink | Disabled | Disabled | Disabled |
*InterSystems IRIS环境下,%Service_CSP应用%Service_WebGateway。
不同的操作系统所使用的服务略有不同。
# 如何提高安全性
您需要为每个启用的服务选择合适的身份验证方法,包括:无认证(unauthenticated)、密码、Kerberos或授权。
您还需要禁用系统中未使用的web应用程序。对已启用的web应用程序选择正确的身份验证方法:认证、密码、Kerberos、授权、登录或cookie。
当然,管理员可以为每一个项目和解决方案选择安全设置,以满足客户的项目要求。整个过程应始终保持一种平衡,即,一方面要保证系统足够方便以支持用户完成实际工作,另一方面又要保证系统足够安全能够阻止入侵者。不过众所周知,被禁用的系统才是最安全的系统。
如果遇到需要多次手动提高系统安全级别的情况,这就是一个明确的迹象,表明需要编写一个软件模块来解决这些问题。
实际上,InterSystems Open Exchange提供了一个锁定(LockDown)程序,可以帮助您提高安全性。该程序的源代码可以在InterSystems isc-apptools-lockdown页面的存储库中找到。
LockDown程序有以下几种作用:
## 首先,更改以下预安装用户的密码:
- Admin,
- CSPSystem,
- IAM,
- SuperUser,
- UnknownUser,
- _Ensemble,
- _SYSTEM.
## 其次,禁用除以下服务之外的所有服务:
- %%service_web gateway
- %service_console
- %service_login
- %service_terminal
## 再次,为所有web应用程序设置密码保护,包括:
- /csp/ensdemo
- /csp/samples
- /csp/user
- /isc/studio/usertemplates
- /csp/docbook
- /csp/documatic
- /isc/studio/rules
- /isc/studio/templates
## 最后,设置系统范围内的安全参数,包括:
- 密码复杂度为 "8.32 ANP"
- 限制90天内不活跃的用户
- 开启审计和其他所有安全相关的事件
您可以从GitHub下载LockDown.cls,在系统上安装好LockDown程序。然后在终端输入以下内容:
```
USER>zn “%SYS”
%SYS>do $system.OBJ.Load("/home/irisusr/LockDown.cls","ck")
```
或者可以使用以下命令从公共注册中心通过ZPM批处理管理器进行安装:
```
USER>zn “%SYS”
%SYS> zpm “install isc-apptools-lockdown”
```
# 执行LockDown程序
强烈建议在执行LockDown程序之前先进行备份。
必须从%SYS命名空间执行LockDown程序。如果您不想更改所有预安装用户的密码,请将第一个参数保留为空。
如果希望保留使用IRIS Studio、Atelier或VSCode编辑程序和类的能力,请不要禁用%Service_Bindings服务,只需将bindings参数设置为1即可。下面是一个示例:
`do ##class(App.Security.LockDown).Apply("New Password 123",.msg,1)`
此模块还包含一个功能,该功能在系统密码被盗用、需要替换所有预装帐户但无需执行锁定的情况下很有用。可以参考下面的运行:
`do ##class(App.Security.LockDown).Change Password("New Password 123", "Admin,CSPSystem,IAM,SuperUser,Unknown User, _Ensemble,_SYSTEM")`
在执行锁定之后,应用程序或项目极有可能会停止工作。为了解决这个问题,需要将一些安全设置恢复到原始状态。这个操作可以通过管理门户界面(安全性部分)实现或以编程方式完成。
# 锁定后更改安全设置
锁定之后,如果您的web应用程序使用了密码以外的身份验证方法,就需要进行启用。
建议运行软件模块zpm-registry-test-deployment,它有一个在ZPM-registry项目中使用LockDown的示例。
在IRIS上以最低的安全级别安装该项目,安装结束时将开始运行其中的代码。代码可以用来:
- 更改所有预安装用户的密码。
- 禁用此项目中未使用的所有服务。
- 为系统上的所有应用程序启用密码保护,但Web应用程序/注册表(允许未经授权的用户获取注册表中的软件包列表)除外。
- 创建一个拥有在注册表中发布新包特权的新用户。该用户必须对IRISAPP数据库中的项目表具有写权限。
创建一个新用户:
```
set tSC= ##class(App.Security.LockDown).CreateUser(pUsername, "%DB_"_Namespace, pPassword, "ZMP registry user",Namespace)
If $$$ISERR(tSC) quit tSC
write !,"Create user "_pUsername
```
为新的未授权用户添加权限:
```
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", "UnknownUser")
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package_dependencies", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM_Analytics.Event", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM.Package_Extent", "e", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM_Analytics.Event_Extent", "e", pUsername)
If $$$ISERR(tSC) quit tSC
write !,"Add privileges "
```
运行LockDown项目:
```
set tSC= ##class(App.Security.LockDown).Apply(NewPassSys)
If $$$ISERR(tSC) quit tSC
Change the settings for the web app so that an unknown user can log in:
set prop("AutheEnabled")=96
set tSC=##class(Security.Applications).Modify("/registry",.prop)
If $$$ISERR(tSC) quit tSC
write !,"Modify /registry "
Change the settings for the %service_terminal service, changing the authorization method to Operating System, Password:
set name="%service_terminal"
set prop("Enabled")=1
set prop("AutheEnabled")=48 ; Operating System,Password
set tSC=##class(Security.Services).Modify(name,.prop)
If $$$ISERR(tSC) quit tSC
write !,"Modify service terminal"
```
# 总结
在本文中,我讨论了为何要提高系统安全性级别的原因,并且通过一个InterSystems LockDown程序运行示例,演示了如何通过编程的方式提升安全性。
在本文所介绍的方法中,我们首先关闭了系统中的所有内容(即,设置最大安全级别)。然后通过开放项目运行所需的服务和应用程序(但仅限于这些)来控制安全性。我相信还有许多其他的方法和最佳实践,欢迎大家在文章评论区留言告诉我们。
公告
Claire Zheng · 二月 19, 2021
大家好!
以下是 InterSystems编程大奖赛 的技术奖励,这些奖励会让您在投票中获得加分。
Groups
奖励
得分
常规
Docker
2
ZPM
2
Unit Testing
2
API and languages
REST API
2
ODBC/JDBC
2
使用嵌入式Python
4
Native API in Java, Python, .NET, node.js
3
多模型
Globals (key-value)
2
SQL
2
Object
2
New model
3
Analytics
IRIS BI
2
IRIS NLP
2
InterSystems Reports
3
AI/ML
Integrated ML
4
Python or Julia网关
3
互操作性
使用业务流程 BPL 或业务规则
3
使用自定义互操作性适配器
2
使用产品扩展 (PEX)
4
使用工作流程引擎
2
FHIR
使用 FHIR Server REST API
3
使用 FHIR SQL 架构
2
医疗保健标准转换
3
总计
58
以下是有关所有技术奖励的详细信息和有用链接。
常规奖励
ZPM包部署- 2分
如果您为您的全栈应用程序构建并发布 ZPM(ObjectScript 包管理器)包,以便在安装了 ZPM 客户端的 IRIS 上使用命令:
zpm "install your-multi-model-solution"
进行部署,则您可以获得该奖励。
ZPM 客户端.
Documentation.
使用Docker容器- 2分
如果应用程序使用在 docker 容器中运行的 InterSystems IRIS,它将获得“Docker容器”奖励。
Unit Testing - 2分
对 InterSystems IRIS 代码进行单元测试的应用程序将获得该奖励。
请在 Documentation 和 Developer Community. 了解有关 ObjectScript 单元测试的更多信息。
InterSystems IRIS API
使用InterSystems IRIS REST API- 2 分
如果您在您的全栈应用程序中通过 REST API 访问 InterSystems IRIS,您将获得该奖励。 您可以自己构建 REST API,也可以使用任何内置 REST API 或通过 ZPM 安装。 Learn more on InterSystems REST API.
使用嵌入式Python - 4分
嵌入式Python需要一个特定的docker image,例如:
intersystemsdc/iris-ml-community:2020.3.0.302.0-zpm
了解相关 视频.
点此模板 ,了解嵌入式Python如何工作,以及如何制作ZPM包进行部署。
使用InterSystems Native API - 3分
如果您在您的全栈应用程序中使用以下任一 InterSystems Native API 选项访问数据,则可以获得该奖励: .NET, Java, Python, Node.js. 点击 此处 了解更多。
使用InterSystems JDBC- 2分
InterSystems IRIS 提供了用于访问数据的 JDBC 驱动程序。 如果您在您的全栈应用程序中使用 SQL 和 InterSystems JDBC 引用数据,您将获得该奖励。
多模型奖励
InterSystems Global(键-值)- 2 分
InterSystems Global 是 InterSystems IRIS 中用于存储任何数据的多维稀疏数组。 每个 Global 节点都可以被视为一个键,您可以为其设置一个值。InterSystems IRIS 提供一组 API(包括 ObjectScript 命令和Native API)来管理 Global。
工具:
在管理门户中管理globals
文档:
使用多维存储 (Globals)
使用Globals
帖子:
Globals are Magic Swords for managing data
The art of mapping Globals to Classes
视频:
Globals 快速入门
如果您在应用程序中通过 ObjectScript 或Native API使用 Global,则可以获得 2 分奖励。
InterSystems SQL - 2 分
InterSystems IRIS 提供了通过 ObjectScript、REST API、JDBC 对数据进行 SQL 访问的能力。
工具:
VSCode SQL Tools
DBeaver
SQL in Management Portal
Other SQL tools
文档:
SQL Access
InterSystems SQL Reference
帖子:
Class Queries in ObjectScript
视频:
SQL Things you should know
如果您的应用程序使用了 InterSystems SQL,则可以获取 2 分奖励。
InterSystems Objects - 2分
InterSystems IRIS 提供了通过 ObjectScript/REST API、Java/.NET/Node.js/Python 的Native API 和 Java/.NET 的 XEP 在 global 中存储和更改对象实例的方法。
文档:
Object Access
如果您的应用程序中使用了对象访问,则可以获得 2 分奖励。
您的数据模型- 2 分
InterSystems IRIS 可以用作公开您自己的数据模型 API 的数据平台。您可以使用 ObjectScript、REST API 或Native API 来公开您自己的 API,以提供任何特殊数据模型,例如时序、空间、图表、RDF/三元组、列存储、文档存储。
引入任意新数据模型 API,可获得 2 分奖励。
IRIS Analytics奖励
InterSystems IRIS BI - 2分
InterSystems IRIS 业务智能是 IRIS 的一项功能,通过它可以针对 IRIS 中的持久数据创建 BI 多维数据集和数据透视,然后使用交互式仪表板将此信息传递给用户。 Learn more.
基本的 iris-analytics模板 包含 IRIS BI 多维数据集、数据透视和仪表板的示例。
InterSystems IRIS NLP (iKnow) - 2分
InterSystems NLP(又名 iKnow)是一项 InterSystems IRIS 功能,并且是一个自然语言处理库,可以识别英语、德语、荷兰语、法语、西班牙语、葡萄牙语、瑞典语、俄语、乌克兰语、捷克语和日语等自然语言文本中的实体(短语)及其语义上下文。
Learn more about iKnow on Open Exchange.
示例:
Covid iKnow Text Navigator
Samples Aviation
and more
使用 iKnow 管理您的分析解决方案中的非结构化数据,可以获得 1 分奖励。
InterSystems Reports - 3 分
InterSystems Reports 是 InterSystems IRIS 的一项功能,通过它可以设计打印报告,按计划通过电子邮件发送报告,以及为客户提供交互式报告。 InterSystems Reports 是 Logi Analytics® 的产品 Logi Report(以前名为 JReport®)的重新打包。 Learn more in Documentation.
查看InterSystems Reports的 Github示例仓库.
另请观看InterSystems Reports 演示视频 ,并在 Learning Lab 亲自尝试。
您可以在WRC 的下载部分中下载 InterSystems Reports 设计器和服务器。
InterSystems Reports 设计器和服务器的许可证密钥将在Discord中提供。
AI/ML
IntegratedML - 3
IntegratedML 是 InterSystems IRIS 的一项功能,它通过一组 ML 指令扩展了 SQL,可以使解决方案中的 AI 和机器学习计算简化和自动化。了解有关 IntegratedML.
您需要专门的 IRIS 映像才能使用 IntegratedML,请点击查看 here.
示例:
一个基本的integratedML模板
Open Exchange上的几个示例
在您的 IRIS Analytics 解决方案中使用 IntegratedML 可让您获得 1 分奖励。
2. 使用Python网关 - 2 分
Python网关 InterSystems IRIS 的一个加载项,它提供了在 InterSystems IRIS 环境中使用 Python 的方法:
执行任意 Python 代码
将数据从 InterSystems IRIS 无缝传输到 Python 中
使用 Python 互操作性适配器构建智能互操作性业务流程
从 InterSystems IRIS 保存、检查、修改和恢复 Python 上下文。
了解更多 关于Python网关.
您可以使用 Python 网关模板 其中也包括了 IntegratedML。
互操作性奖励
使用业务流程 BPL 或业务规则 - 2 分
IRIS 互操作性产品 的主要功能之一是业务流程,它可以通过 BPL(业务流程语言)进行描述。
在文档中了解有关业务流程的更多信息.
业务规则是一种无代码/低代码方法,用于管理互操作性产品的处理逻辑。 在 InterSystems IRIS 中,可以直接或通过 ObjectScript 表示形式来创建业务规则。
如果您在互操作性产品中创建并使用业务流程或业务规则,则可以获得业务流程/业务规则奖励。
业务规则示例
在文档中了解有关业务规则的更多信息
使用自定义互操作性适配器- 2分
InterSystems 互操作性产品可以包含入站或出站适配器,这些适配器被业务服务和产品操作用来与外部系统进行通信。 您可以使用现有适配器(例如文件或电子邮件),也可以开发您自己的适配器。
如果您开发自己的自定义入站或出站适配器,并在您的产品中使用它,您会获得该奖励。
适配器示例
了解有关适配器的更多信息
使用产品扩展 (PEX) - 4 分
PEX 是互操作性产品的 Java 或 .NET 扩展。
如果您在您的互操作性产品中使用 JAVA 或 .NET 的 PEX,则会获得此奖励。
PEX演示
在文档中了解更多PEX相关信息
使用工作流程引擎 - 2分
工作流程引擎是 IRIS 互操作性的一部分,可用于自动在用户之间分配任务。
如果您在您的互操作性产品中使用工作流程引擎,则会获得此奖励。
在文档中了解有关工作流程的更多信息
社区模块 WorkflowAPI 和 WorkflowUI-ngx 在 Angular 上为工作流程引擎提供了一个漂亮的 UI 层。
FHIR奖
使用 FHIR Server REST API - 3 分
如果您在 InterSystems IRIS for Health 中使用 FHIR Server 的 REST API 端点,则会获得此奖励。 您可以采用IRIS-FHIR-Template,它会在 docker 映像构建期间准备 FHIR Server。 FHIR API 4.0.1 的文档可以在 此处找到.点击InterSystems IRIS医疗版文档了解更多。
使用 FHIR SQL 架构 - 2分
如果您在应用程序的 SQL 查询中使用 FHIR SQL 架构,则可以获得此技术奖励。 例如,您可以使用此架构来构建 FHIR Analytics 解决方案。 使用 HSFHIR\_I0001\_R 表示完整资源的资源架构,使用 HSFHIR\_I0001\_S 架构通过 SQL 搜索资源。 请查看 模板.
医疗保健标准转换- 3 分
InterSystems IRIS for Health 包含医疗保健互操作性模块,这些模块有助于执行从不同的医疗保健标准到 FHIR 的数据转换,反之亦然。 在您的应用程序中执行 CDA 到 FHIR、HL7v2 到 FHIR 或任何其他转换可获得此奖励。 请参见 HL7v2 to FHIR 和 CDA to FHIR 的转换示例. 点击文档了解更多信息。
奖励列表可能会有变化。 敬请关注!
文章
Claire Zheng · 三月 23, 2021
2021年3月19日,在InterSystems极客俱乐部首次进行的直播课中,InterSystems中国技术支持专家杨乐乐( @Ida.Yang )介绍了“InterSystems全球响应中心服务”,InterSystems全球响应中心(Worldwide Response Center)提供的全面服务以及独特之处,更重要的是,作为InterSystems用户,您将如何获取快速响应、并高效得到您想要的技术支持服务。
公告
Claire Zheng · 三月 25, 2021
亲爱的社区开发者们,大家好!
欢迎了解InterSystems编程大赛的最新投票规则!
详情如下:
您可以根据自己的判断选择三个项目进行投票,选出您心目中的一、二、三名。您对每个项目的提名会为该项目提供相应分数,根据您的级别和资格,分数会有所不同。以下是社区排行榜说明:
社区(Community)提名投票计分方式
如果您满足以下条件
提名
第一名
第二名
第三名
如果您在DC上发布过帖子,且在Open Exchange上传过App
9
6
3
如果您在社区发布过至少一篇帖子,或者在Open Exchange上传过至少一个App
6
4
2
如果您在社区进行过有效贡献(包括发表评论/提问等等)
3
2
1
专家(Experts)提名投票计分会有更复杂的数学计算,不同级别的专家有更多的“点数”权力:
专家(Experts)提名投票计分方式:
级别
提名
第一名
第二名
第三名
Global Maters VIP级 & InterSystems产品经理
15
10
5
Global Master 大使级(Ambassador)
12
8
4
Global Master专家级(Expert)& 社区管理员/版主
9
6
3
Global Master专业级(Specialist)
6
4
2
Global Master初级倡导员(Advocate)& InterSystems员工
3
2
1
系统会根据您的级别,对社区(Community)提名和专家(Experts)提名分别自动计票。
请看投票演示(请注意您提名项目的分数变化):
为了顺利参加投票,您需要:
登录 Open Exchange – 利用开发者社区账号即可
确保您在开发者社区进行过有效贡献——回答问题、提问、发帖、在Open Exchange上传应用程序——然后您就可以进行投票了。 点击了解如何成为社区“活跃”用户 。
我们希望新的投票规则能带来更公平的竞赛环境,您可以为您心仪的项目大胆投票!
欢迎跟帖评论,告诉我们您的建议!
公告
jieliang liu · 七月 12, 2021
嗨,开发者们,
你准备好迎接新的挑战了吗? 我们很高兴地宣布第一届InterSystems技术文章写作比赛:
🏆 InterSystems技术文章写作大赛 🏆
从2021年7月15日至8月15日,写一篇与InterSystems技术有关的任何主题的文章!
每个人都有奖品: 在此期间,每个在DC上发表文章的人都将获得一个特别的奖品包!
大奖: Apple iPad
参加我们的新比赛,你的内容将被超过55K的月度读者看到! 详情如下。
奖品:
1. 每个人都是InterSystems技术文章竞赛的赢家! 任何在比赛期间写文章的用户都会得到特别的奖励:
🎁 独特的开发者社区连帽衫
🎁 InterSystems 贴纸
2. 专家选择奖 – 文章将由InterSystems的专家进行评判:
🥇 一等奖: Apple iPad 128GB
🥈 二等奖: Amazon Kindle 8G Paperwhite
🥉 三等奖: Nike Utility Speed Backpack
或者另选: Raspberry Pi 4 8GB + InterSystems IRIS社区版安装包镜像
3. 开发社区奖 – 点赞最多的文章。 获胜者将有机会从以下奖品中选择一个。
🎁 Nike Utility Speed Backpack
🎁 Amazon Kindle 8G Paperwhite
谁可以参加?
任何开发者社区成员,除了InterSystems的员工。 创建一个账户!
比赛时间
📝 七月 15日 - 八月 15日: 发表关于社区和投票时间的文章。.
在这段时间内发表一篇文章。 DC成员可以用 "赞 "为发表的文章投票--在社区奖中投票。
注意:你越早发表文章,你就越有时间收集赞。
🎉 八月 16日: 获奖者名单公布。
有什么要求?
❗️ 任何在比赛期间写的文章,只要满足以下要求,就能自动参加比赛:
文章必须与InterSystems技术有关
文章必须是英文的
文章必须是100%的新文章(可以是现有文章的延续)。
文章不应抄袭或翻译。
文章大小。>超过1,000个字符
团队规模:个人(允许同一作者的多个作品)。
要写什么?
❗️ 你可以选择任何与InterSystems技术相关的技术主题。
这里有一些选择文章主题的可能领域。这些只是例子,你可以自由选择任何你想要的东西。
#
主题
细节
1
嵌入式Python简介
嵌入式Python是InterSystems IRIS的一个令人兴奋的新功能,允许开发人员用Python编写方法、SQL存储过程等。
2
来自互操作性的嵌入式Python
探索如何从互操作性中利用嵌入式Python。
3
嵌入式Python。通过语言结构进行翻译
虽然我们的目标是实现嵌入式Python的无缝集成,但还是有一些技巧和窍门可以让事情变得顺利。下划线方法、字典、列表和其他。从ObjectScript中调用Python功能的最佳方式是什么?
4
InterSystems报告设计器介绍
续写 这篇文章. 续篇应该包括:
创建目录
创建基本的报告类型,即
图表(柱状图、饼状图、线状图、仪表图、热图...)。
表(摘要和详细)。
串联表
发布报表到报表服务器
创建一个时间表
教程参考: Getting Started with InterSystems Reports
5
从互操作性/IRIS调用报告
一篇描述如何从IRIS上执行(和获得)InterSystems Reports Report的文章,该报告来自Interoperability Production。
6
使用InterSystems的地图报告
一篇描述如何用地理空间数据建立InterSystems报告的文章。HoleFoods数据集包含了交易的地点,你可以使用。
7
如何用InterSystems IRIS做CI/CD
–
8
使用Kafka连接的变更数据采集
一个例子显示了如何设置Kafka Connect并通过Kafal Connect JDBC连接器导出&导入SQL数据。
9
将分析/ML应用于SQL语句索引
–
10
我最喜欢的维护任务,自动化
–
11
利用审计数据库
–
12
设置GitHub动作的三个步骤,让你的应用程序立于不败之地
–
13
IRIS实例中的OAuth2授权
–
14
在K8s上设置镜像
–
15
在IRIS分析中使用%MDX和%KPI而不是主题区域
–
16
尝试外部语言网关/与以前的编程语言网关相比
Example
17
从IAM向Kafka流式传输事件
–
18
IntegratedML演练
–
19
使用Python将请求导出到Excel
–
20
将云服务与production结合起来
例如,MS Azure Cognitive Services或Amazon Rekognition。
21
Working with IKO
–
22
IKO IRIS on AWS Kubernetes with Hugepages
–
23
纳入IKO的备份
–
24
IKO - 创建一个有计算节点、SAM、无分片的集群
包括CPF文件来设置我们的最佳实践。
25
与ECP建立的数据科学共享工作组
有一个数据服务器,每个数据科学家的桌面上都有一个计算节点。显示数据在断开连接时可以使用,重新连接时可以同步。
26
讨论云部署的存储选项的文章(本地存储、块存储等的性能差异)和权衡(如果使用块存储,你可能不需要镜像,等等)。
–
注意:允许不同作者的同一主题的文章。
欢迎在本帖的评论中提交你的主题想法。
所以。
我们等待着你的精彩文章!
祝你们好运,让普利策的力量与你们同在! ✨
公告
Claire Zheng · 九月 27, 2022
社区成员们,大家好!
我们开心地宣布一种全新类型的比赛——寻找最聪明的创意比赛!欢迎了解:
💡 InterSystems Idea 创意马拉松 💡
在9月26日至10月16日期间提出一个与InterSystems产品和服务相关的想法,即可获得达成奖。
最重要的是,此次赛事InterSystems的员工和社区成员都可以参与!
>> 点击提交你的想法吧! <<
规则
InterSystems Idea创意马拉松是由InterSystems Ideas反馈门户组织的,在InterSystems Ideas反馈门户,您可以提交与我们的服务(文档、开发社区、全球大师等)相关的产品增强请求和想法,并投票选出您喜欢的。
在本次比赛中,我们邀请大家在这个门户网站上分享自己的想法,并为他人投票。
只需在 InterSystems Ideas网站 提交想法即可参赛。
合格的参赛创意应符合:
用户在Idea-A-Thon创意马拉松期间提交,由通过InterSystems Ideas网站注册的用户创建(您可以通过InterSystems SSO登录);
不要成为其他已经存在的想法的一部分——只允许新的想法;
不描述InterSystems产品或服务的现有功能;
除了标题之外,还要对观点的本质进行详细而清晰的解释;
以英文发帖;
被专家认为是有意义的。
所有符合条件的想法将在InterSystems ideas门户网站上拥有一个特殊的“Idea-A-Thon”状态,可以很容易地在Idea创意马拉松上找到。
谁可以参加?
我们邀请所有人加入我们的创意马拉松。欢迎InterSystems员工和社区成员参与并提交创意想法。
奖项
1. 参与奖 :每个发布合格想法的人都会将获得奖励:
🎁 InterSystems Branded T-Shirt
2. 专家奖:获胜者将由InterSystems专家团队选出,并将获得:
🎁 LEGO Star Wars™ R2-D2™ / BOSE Sleepbuds™ II / BOSE SoundLink Flex Bluetooth® speaker bundle
3. 社区奖:获得最多投票的创意,获奖者将获得:
🎁 LEGO Star Wars™ R2-D2™ / BOSE Sleepbuds™ II / BOSE SoundLink Flex Bluetooth® speaker bundle
重要提示:InterSystems的员工只能获得参与奖。专家奖和社区奖只能由非intersystems社区成员获得。
参赛时间
📝 9月26日 - 10月16日:创意发布、投票阶段
在此期间发布一个或几个创意。InterSystems Ideas网站的注册会员可以为发表的创意投票,这些投票将计入社区奖。
注意:越早发表你的创意,你就越有更多的时间去收集投票。
来参加吧!
来 InterSystems Ideas 发布你的创意拿大奖!时刻关注你的创意!
祝大家好运 👍
Important note: All prizes are subject to availability and shipping options. Some items may not be available to ship internationally to specific countries. Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US-embargoed countries. We will let you know if a prize is not available and offer a possible replacement.
重要提示:所有奖品均受可用性和运输选择。有些项目可能无法国际运输到特定国家。奖品不能发放给克里米亚、俄罗斯、白俄罗斯、伊朗、朝鲜、叙利亚或其他美国禁运国家的居民。如果没有奖品,我们将告知您,并提供可替代品。
文章
Jingwei Wang · 八月 30, 2022
InterSystems IRIS 允许从任何符合DB-API的Python应用程序对InterSystems IRIS 进行快速、无缝地访问。Python DB-API驱动是对PEP 249 v2.0(Python数据库API规范 v2.0)的完整兼容。
步骤
前提是要有一个Python的开发环境。
本示例使用vs code 如下所示创建一个dbapi.py文件。
dbapi.py :
# Embedded Python examples from summer 2022
import iris as dbapi
mytable = "mypydbapi.test_things"
conn = dbapi.connect(hostname='localhost', port=1972, namespace='IRISAPP', username='superuser', password='iris')
# Create table
cursor = conn.cursor()
try:
cursor.execute(f"CREATE TABLE {mytable} (myvarchar VARCHAR(255), myint INTEGER, myfloat FLOAT)")
except Exception as inst:
pass
cursor.close()
conn.commit()
# Create some data to fill in
chunks = []
paramSequence = []
for row in range(10):
paramSequence.append(["This is a non-selective string every row is the same data", row%10, row * 4.57292])
if (row>0 and ((row % 10) == 0)):
chunks.append(paramSequence)
paramSequence = []
chunks.append(paramSequence)
query = f"INSERT INTO {mytable} (myvarchar, myint, myfloat) VALUES (?, ?, ?)"
for chunk in chunks:
cursor = conn.cursor()
cursor.executemany(query, chunk)
cursor.close()
conn.commit()
# conn.close()
sql = f"select * from {mytable}"
rowsRead = 0
cursor = conn.cursor()
cursor.arraysize = 20
cursor.execute(sql)
rc = cursor.rowcount
rows = cursor.fetchall()
for row in rows:
print(row)
rowsRead += len(rows)
cursor.close()
conn.close()
安装 DB-API驱动,点击此链接下载DB-API驱动
pip install intersystems_irispython-version-py3-none-any.whl
配置Connection String - 按照Intersystems IRIS的服务器,在dbapi.py文件中配置
hostname
port
namespace
username
password
在InterSystems IRIS管理门户中创建IRISAPP命名空间。
在VS code中运行dbapi.py文件,运行结果如下,说明数据成功导入。
['This is a non-selective string every row is the same data', 0, 0.0]
['This is a non-selective string every row is the same data', 1, 4.57292]
['This is a non-selective string every row is the same data', 2, 9.14584]
['This is a non-selective string every row is the same data', 3, 13.71876]
['This is a non-selective string every row is the same data', 4, 18.29168]
['This is a non-selective string every row is the same data', 5, 22.8646]
['This is a non-selective string every row is the same data', 6, 27.43752]
['This is a non-selective string every row is the same data', 7, 32.01044]
['This is a non-selective string every row is the same data', 8, 36.58336]
['This is a non-selective string every row is the same data', 9, 41.156279999999995]
在IRISAPP命名空间下,查看InterSystems IRIS 数据库,可以看到数据,说明数据导入成功InterSystems IRIS。
SELECT myvarchar, myint, myfloat FROM mypydbapi.test_things
公告
Tingting Jiang · 六月 21, 2022
我们正在招聘Support Facilitator,欢迎您的自荐、推荐。
请将简历投递至Belinda.Glasson@intersystems.com,愿您的加入给我们带来新的活力,我们也将为您提供广阔的发展空间!(由于岗位职能要求,职位说明以英文形式发布。)
Location:Beijing
Job Title:Support Facilitator
Department:Product Support
Reporting to:China Support Supervisor
What We Do Matters
Why are we here? To ensure that our customers have reliable access to the right information at the right time—information they can share and use to draw insights, leading to better decisions.
Job Summary
Ensure customer satisfaction by triaging support requests, facilitating rapid responses, managing the support queue, Service Level Agreements and backlog and assisting the China Support Supervisor with the coordination of projects.
Key Responsibilities of the Role
Provide immediate response to customer support inquiries via phone or iService (the TrakCare ticketing system)
Ensure iService tickets contain sufficient information and detail for second line support to work with, according to the minimum datasets laid out
Where possible, provide immediate resolution to support inquiries. Alternatively, triage the inquiry and determine the best person to pass it to
Assist level 2 support staff and the Support Manager with the monitoring, maintenance, administration and processing of support queues and tickets
Develop and maintain a set of Standard Operating Procedures for responding to common and/or repeatable inquiries
Assist the Support Manager with adherence to Service Level Agreements
Assist the Support Manager with the coordination and management of projects to deliver new functionality to existing customers
Identify opportunities to act as a “multiplier” in order to drive efficiency
Provide regular reports to management and customers as requested
Acquire new skills by assuming additional responsibilities as requested.
Additional responsibilities as determined by management.
Experience and Qualifications
Friendly and professional verbal and written communication skills demonstrated by prior customer service experience
Good organizational skills with demonstrable attention to detail
1-2 years’ experience in a support or Project Management Office role or an administrative role in a similar organization
Must be fluent in English
Personal Specifications
IT or health-based degree or 2 years’ related experience
公告
Tingting Jiang · 六月 21, 2022
InterSystems正在招聘Market Development Representative欢迎您的自荐、推荐。请将简历投递至:Belinda.Glasson@intersystems.com,愿您的加入给我们带来新的活力,我们也将为您提供广阔的发展空间!
(由于岗位职能要求,招聘职位说明以英文形式发布。)
Location:Beijing
Job Title:Market Development Representative
Department:Marketing
Reporting to:Marketing Manager
What We Do Matters
Why are we here? To ensure that our customers have reliable access to the right information at the right time—information they can share and use to draw insights, leading to better decisions.
Job Summary
This role will suit someone who is energised by the opportunity to develop and grow enterprise software sales pipelines in Healthcare IT markets. As a Market Development Representative, you’ll be working with a smart, entrepreneurial team to shape and grow our local business. Your primary focus will be development of a high quality and growing pipeline of data platform prospects and accounts that you will nurture. You will play a pivotal role in helping the team to identify, break into, and grow named accounts. In many instances you will represent the front line of InterSystems technology engagement with significantly sized enterprise accounts and healthcare providers.
Key Responsibilities of the Role
Make first contact and nurture a prospect relationship into a marketing qualified lead
Partner with sales and marketing to develop and conduct prospecting strategies and build and execute on named account strategies
Build and execute outbound prospecting plans for targeted accounts including but not limited to emails, phone calls and industry focused event attendance
Develop brand and technology champions externally across target contacts
Follow up inbound enquiries and marketing-generated leads
Represent and promote InterSystems at industry events
Manage and be accountable for growing your pipeline using technology to engage with your prospects and to track and report on progress
Provide feedback and recommendations on marketing efforts based on real front-line interactions
Conduct industry research to uncover pain points, find potential sales opportunities, build account profiles
Handle a variety of communication including, but not limited to, inbound calls, warm follow-ups, social media, and email campaigns
Work with 3rd party outbound call partners to support the success of new campaigns and other lead generation programs if needed.
Experience and Qualifications
BA or BSc in business/economics, marketing or technical
Five or more years' experience of business development/inside sales in B2B field
Experience qualifying and selling software or other technology products over the phone
Strong listening and solution selling skills
Proven ability to collaborate with field sales representatives and marketing team to plan and achieve goals
Excellent oral and written communication skills in Chinese and English
Knowledge of standard computer application skills, such as Word, Excel, PowerPoint, and Automation/CRM.
Goal oriented and self-motivated; approaches work with a passion and enthusiasm
Experience requirement
Development and execution of a territory plan and mutually agreed strategic account plans.
Proven success and experience in leading complex enterprise sales with large implementation projects.
Demonstrable experience with tender responses and bid management.
Proven experience in managing senior client relationships.
Ability to develop relationships with customers at all levels across the business.
Able to develop and maintain internal stakeholder relationships.
Discover, qualify and develop new Data Platform business opportunities.
Define and execute market plans and campaigns – together with marketing.
Build a pipeline of new activity for Data Platform within and outside the customer base.
Maintain an in-depth understanding of the political and organisational structure of a targeted prospect.
Act as the principal liaison between InterSystems and partner/ customer accounts.
Personal Specifications
COMMUNICATION AND INFLUENCE - Is articulate and asks good questions; gives clear, concise, and focused answers to questions; explains opinions and positions; uses empathy to persuade others; keeps key people informed; ability to communicate with diverse audiences.
TEAMWORK - Ability to collaborate effectively with people of comparable talents and different strengths; handles conflict constructively; avoids being argumentative; willing to pitch in and do the mundane things that need to be done; treats people at all levels and all roles with respect.
PASSION for technology and must be technically and Social Media Savvy.
公告
Claire Zheng · 二月 23, 2022
投票时间到!
来为你最欣赏的应用投上一票吧! 【投票时间】InterSystems 开发者竞赛:Python
🔥 为你的最爱投票 🔥
如何投票?请看以下细节。
Experts nomination(专家提名)
InterSystems experts:InterSystems经验丰富的专家评审团将选出最好的应用程序,在Experts nomination(专家提名)中提名奖项。 有请InterSystems专家:
⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Raj.Singh5479, Product Manager ⭐️ @Robert.Kuszewski, Product Manager⭐️ @Stefan.Wittmann, Product Manager⭐️ @Thomas.Dyar, Product Specialist⭐️ @Aleksandar.Kovacevic, Sales Engineer⭐️ @Eduard.Lebedyuk, Sales Engineer⭐️ @Sergey.Lukyanchikov, Sales Engineer⭐️ @Guillaume.Rongier7183, Sales Engineer⭐️ @Alexander.Woodhead, Technical Specialist ⭐️ @Jon.Willeke, Distinguished Quality Development Engineer⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager
Community nomination(社区提名)
每一个用户来说,你投出的每一票的分数,是根据下面两类中最高的分数来计:
满足条件
奖项排名
第一名
第二名
第三名
在社区发布一篇帖子,并在Open Exchange中上传一个App
9
6
3
在社区发布了至少一篇帖子 或 在Open Exchange上传了一个App
6
4
2
在社区进行了任何有效贡献,如回帖、提问、发帖等
3
2
1
等级
奖项排名
第一名
第二名
第三名
Global Masters 的 VIP 级别 或 InterSystems 产品经理
15
10
5
Global Masters 的 Ambassador级别
12
8
4
Global Masters的Expert 级别或开发者社区版主
9
6
3
Global Masters的Specialist级别
6
4
2
Global Masters的Advocate级别,或 InterSystems员工
3
2
1
Blind vote!
每个应用获得的投票数将对所有人不可见。我们会每天在这个帖子(英文原帖)的评论区发布一次排行榜。
在 竞赛页面 ,各项目将按以下进行排名:发布得越早,排名越靠前。
P.S. 不要忘记订阅本文(请订阅英文原帖),点击铃铛图标,即可收到最新评论。
在参与投票前,您需要:
登录 Open Exchange – 使用开发者社区账号即可。
在社区内进行有效贡献 ——回答问题、发帖、在Open Exchange发布新应用等等都可以,然后你的账号才可以参与投票。点击查看本帖 ,了解如何更好地成为有效的社区贡献者!
投票期间,如果你改了主意,可以随时将票改投给其他项目。
来支持你喜欢的项目吧!
注意:在投票期间,参赛者可以继续修复bug,提升应用,所以投票者不要错过最新发布的版本哦~ 排名第一了,请同学们继续努力!
Voting for the InterSystems Python Contest goes ahead!
And here're the results at the moment:
Expert Nomination, Top 3
django-iris by @Dmitry Maslennikov
appmsw-sql2xlsx by @Sergey Mikhailenko
blockchain - [ IRIS python ] by @davi massaru teixeira muta
➡️ Voting is here.
Community Nomination, Top 3
IRIS-Database-and-Machine-Learning-Based-Approaches-for-Prediction-of-Spontaneous-Intracerebral-Hemo by @Fatian Wu
appmsw-sql2xlsx by @Sergey Mikhailenko
django-iris by @Dmitry Maslennikov
➡️ Voting is here.
公告
Claire Zheng · 四月 6, 2022
Hey 开发者们,
投票周开始了!
来为你最欣赏的应用投上一票吧!InterSystems开发者竞赛:Globals!
🔥 为你最欣赏的应用投票: 点此投票 🔥
如何投票?请看以下细节。
Experts nomination(专家提名)
InterSystems experts:InterSystems经验丰富的专家评审团将选出最好的应用程序,在Experts nomination(专家提名)中提名奖项。 有请InterSystems专家:
⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Alexander.Koblov, Support Specialist⭐️ @Robert.Kuszewski, Product Manager⭐️ @Daniel.Kutac, Senior Sales Engineer⭐️ @Stefan.Wittmann, Product Manager⭐️ @Joel.Solon, Senior Technical Trainer⭐️ @Eduard.Lebedyuk, Sales Engineer⭐️ @Timothy.Leavitt, Development Manager ⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager
Community nomination(社区提名)
每一个用户来说,你投出的每一票的分数,是根据下面两类中最高的分数来计:
条件
奖项排名
第一名
第二名
第三名
在社区发布一篇帖子,并在Open Exchange中上传一个App
9
6
3
在社区发布了至少一篇帖子 或 在Open Exchange上传了一个App
6
4
2
在社区进行了任何有效贡献,如回帖、提问、发帖等
3
2
1
等级
奖项排名
第一名
第二名
第三名
Global Masters 的 VIP 级别 或 InterSystems 产品经理
15
10
5
Global Masters 的 Ambassador级别
12
8
4
Global Masters的Expert 级别或开发者社区版主
9
6
3
Global Masters的Specialist级别
6
4
2
Global Masters的Advocate级别,或 InterSystems员工
3
2
1
Blind vote!
每个应用获得的投票数将对所有人不可见。我们会每天在这个帖子(英文原帖)的评论区发布一次排行榜。
在 竞赛页面 ,各项目将按以下进行排名:发布得越早,排名越靠前。
P.S. 不要忘记订阅本文(请订阅英文原帖),点击铃铛图标,即可收到最新评论。
在参与投票前,您需要:
登录 Open Exchange – 使用开发者社区账号即可。
在社区内进行有效贡献 ——回答问题、发帖、在Open Exchange发布新应用等等都可以,然后你的账号才可以参与投票。点击查看本帖 ,了解如何更好地成为有效的社区贡献者!
投票期间,如果你改了主意,可以随时将票改投给其他项目。
来支持你喜欢的项目吧!
注意:在投票期间,参赛者可以继续修复bug,提升应用,所以投票者不要错过最新发布的版本哦~