清除过滤器
公告
Claire Zheng · 十一月 2, 2022
各位开发者社区的同学们,大家好!
在各位社区同学的大力支持下,我们的“首届技术征文大赛”圆满完赛!在过去一周多的时间里,我们整理了各类奖项及礼品,目前已经全部寄出!
最新寄出的是开发者征文大赛获奖者的奖品,请以下同学留意查收,如未收到快递信息,请及时与我们联系:
@Zhe Wang
@姚.鑫
@聆严 周
@John Pan
@he hf
@sun yao
@Meng Cao
@lizw lizw
@shaosheng shengshao
@Guangliang Zhang
@zhanglianzhu zhanglianzhu
@water huang
@yaoguai wan
@bai hongtao
@Liu Tangh
@li wang
@Yuxiang Niu
目前我们仍未收到以下几位获奖者的信息,请于11月30日前尽快与我们沟通奖品领取事宜哦:D
@Chang Liu
@li dong
@Vincent Wu
让我们一起期待下一次InterSystems开发者社区的精彩活动吧!如果大家有什么好点子,欢迎跟帖!✿✿ヽ(°▽°)ノ✿ 恭喜获奖的小伙伴 感谢 赞赞赞
公告
Michael Lei · 二月 13, 2023
Hi 开发者们,
我们非常高兴地向大家宣布此次InterSystems 开发者竞赛(Tool)的获奖者!
首先,我们要感谢提交了21 份申请的 优秀参与者们 🔥
我们很高兴知道您认为这个主题很重要!
事不宜迟,我们在此公布此次竞赛的获胜者是……
专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出:
🥇第一名,奖金5,000 美元,获奖项目irissqlcli ,开发者 @Dmitry.Maslennikov
🥈第二名,奖金3,000 美元,获奖项目DX Jetpack for VS Code,开发者 @John.Murray
🥉第三名,奖金1,500 美元,获奖项目OpenAPI-Suite,开发者 @Lorenzo.Scalese
🏅第四名,奖金750 美元,获奖项目iris-geo-map, 开发者 @Muhammad.Waseem
🏅第五名,奖金500 美元, 获奖项目iris-tripleslash,开发者 @José Roberto Pereira, @Henrique Dias, @Henry Pereira
更多获奖者:
🏅 奖金100 美元,获奖项目iris-log-viewer,开发者 @Oliver.Wilms
🏅 奖金100 美元,获奖项目iris-persistent-class-audit,开发者 @Stefan.Cronje1399
🏅 奖金100 美元,获奖项目iris-connections,开发者 @Yuri.Gomes
🏅 奖金100 美元,获奖项目cos-url-shortener,开发者 @Daniel.Aguilar
🏅 奖金100 美元,获奖项目iris-deploy-tools,开发者 @Francisco.López1549
社区提名奖(Community Nomination)- 获得总投票数最多的应用:
🥇第一名,奖金1,000 美元,获奖项目iris-tripleslash,开发者@José Roberto Pereira, @Henrique Dias, @Henry Pereira
🥈第二名,奖金750 美元,获奖项目Intersystems IRIS 平台队列趋势监控组件,开发者 @yubo.mao
🥉第三名,奖金500 美元,获奖项目irissqlcli,开发者 @Dmitry.Maslennikov
我们向所有参赛者和获奖者表示最诚挚的祝贺!所有参赛作品和投票情况可以到我们的参赛作品展示查看。
下次一起来参赛吧😎 恭喜 @Yubo Mao 同学,也感谢@王喆 和 @银行 郝 同学的参与,感谢所有参与投票的同学,期待大家更精彩的作品!
公告
Claire Zheng · 十一月 9, 2023
大家好!
2023年9月19日-11月24日(北京时间),🏆InterSystems开发者社区中文版第二届技术征文大赛🏆正在进行中(←点击链接进入参赛页面,浏览所有参赛文章)!作为此次大赛重要奖项“专家提名奖”评比的重要部分,我们的专家评审团已组建成团!
以下为我们的专家团成员,来自我们的销售工程师团队与WRC支持团队。
@Yunfei.Lei
@Peng.Qiao
@Lin.Zhu @Jieliang.Liu @Ida.Yang @Louis.Lu @Hao.Ma
@Jingwei.Wang
@Tete.Zhang
@Tengzhou.Zhuang
我们期待专家评审团对参赛作品的公平审阅与打分。
作为社区成员,您的个人贡献也会对每一篇参赛文章产生影响,每一次浏览和点赞都将助力您喜欢的文章赢得“开发者社区奖”。
欢迎大家积极投稿、点赞、分享、学习!
欢迎积极参加InterSystems开发者社区中文版第二届技术征文大赛
公告
Claire Zheng · 六月 3
Hi 开发者们!
我们来宣布 InterSystems 2025开发者竞赛:FHIR和数字医疗健康互操作性的优胜者!
感谢我们的参赛者,我们收到了 11份应用! 🔥
我们来宣布这些优胜者吧!
专家提名奖(Experts Nomination)
🥇第一名 - 5,000 美元 获奖项目 FHIRInsight app,开发者 @José.Pereira, @henry, @Henrique
🥈 第二名 - 2,500 美元 获奖项目 iris-fhir-bridge app,开发者@Muhammad.Waseem
🥉 第三名 - 1,000 美元 获奖项目 health-gforms app,开发者@Yuri.Gomes
🏅 第四名 - 500 美元 获奖项目 fhir-craft app,开发者@Laura.BlázquezGarcía
🏅 第五名 - 300 美元 获奖项目 CCD Data Profiler app,开发者@Landon.Minor
🌟 $100 获奖项目 IRIS Interop DevTools app,开发者@Chi.Nguyen-Rettig
🌟 $100 获奖项目 hc-export-editor app,开发者@Eric.Fortenberry
🌟 $100 获奖项目 iris-medbot-guide app,开发者 @shan.yue
🌟 $100 获奖项目 Langchain4jFhir app,开发者@ErickKamii
🌟 $100 获奖项目 ollama-ai-iris app,开发者@Oliver.Wilms
社区提名奖(Community Nomination)
🥇 第一名 - 1,000 美元 获奖项目 iris-medbot-guide app,开发者@shan.yue
🥈第二名 - 600 美元 获奖项目 FHIRInsight app,开发者@José.Pereira, @henry, @Henrique
🥉第三名 - 300 美元 获奖项目 FhirReportGeneration app,开发者@XININGMA
🏅 第四名-200 美元 获奖项目 iris-fhir-bridge app,开发者@Muhammad.Waseem
🏅 第五名-100美元 获奖项目 fhir-craft app,开发者@Laura.BlázquezGarcía
向获奖者表示最诚挚的祝贺!
一起来期待下次竞赛吧!
公告
Claire Zheng · 九月 23, 2022
亲爱的社区同学们!
2022年9月5日-10月24日,我们正在举办InterSystems开发者社区中文版首届技术征文大赛!
🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)!
2022年9月27日(下周二)11:00-11:30,我们将进行一次针对此次征文大赛的线上宣讲,欢迎您通过腾讯会议参加,了解关于此次征文大赛的信息,针对感兴趣的问题提问。
#腾讯会议信息
会议主题:InterSystems 社区技术征文大赛宣讲&解读会议时间:2022/09/27 11:00-11:30 (GMT+08:00) 中国标准时间 - 北京
点击链接入会,或添加至会议列表:https://meeting.tencent.com/dm/4UEzyh467wae
#腾讯会议:493-643-076
公告
Johnny Wang · 九月 2, 2021
2021 年 8 月的学习资料现在可以在learning.intersystems.com上独家获取!您可以:
先睹为快:2021 年虚拟峰会体验实验室
使用自适应分析(Adaptive Analytics)解决方案来组建你的第一个数据模型
免费试用 InterSystems IRIS 社区版
查看 InterSystems 文档中的分析
申请即将举行的线上技术课程
立刻报名!
注意:老是错过最新消息?别担心,我们会在9月恢复正常的邮件发送。
文章
Jeff Liu · 四月 17, 2024
各位开发者好
欢迎观看InterSystems Bilibili官方频道的最新视频 InterSystems Developers Bilibili:
⏯ Understanding the Structure of HL7 FHIR Resources
了解 HL7 FHIR 资源的结构。了解如何在 HL7 FHIR 网站上查看和阅读资源的树形表示法,从而了解资源中包含的不同数据元素。此外,还可了解如何查看 XML、JSON 或 Turtle 格式的资源,以及在哪里可以找到 FHIR 资源的通用建模语言 (UML) 图。
观看新视频!
文章
Jingwei Wang · 六月 8, 2023
在InterSystems IRIS中重新加载更新后的Python模块的方式和直接使用Python 重新加载模块的方式是一样的。
在Python3.4 之后到版本中,直接使用Python 重新加载模块的方式如下:
import importlib
importlib.reload(module)
同样,在在InterSystems IRIS中重新加载Python模块的方式与其没有区别,示例如下:
ClassMethod Hello() As %Status
{
Set sc = $$$OK
Set sm = ##class(%SYS.Python).Import("sample")
Set importlib = ##class(%SYS.Python).Import("importlib")
do importlib.reload(sm)
write sm.hello()
Return sc
}
文章
Claire Zheng · 五月 9, 2023
2023年4月,InterSystems亚太区总经理老卢(Luciano Brustia)回到了阔别三年多的北京,针对一些热门问题分享了自己的观点:北京在疫情前后有什么不同?InterSystems是如何进行本土化创新服务中国市场的?与其他亚太国家相比,中国医疗信息化发展有什么特色?医疗信息化未来的发展方向和趋势是什么?
公告
Jeff Liu · 十月 18, 2023
你好社区,
观看此视频,了解如何将 FHIR、CDS Hooks 和低代码医疗保健规则编辑器组合成一个易于使用、功能强大的平台,以帮助确保以最佳方式传递信息:
⏯ FHIR 临床警报和通知:将医疗保健行动引擎纳入 2023 年全球峰会工作流程
🗣演讲者:@Frank.Pandolfe,InterSystems 临床产品经理
订阅我们的Bilibili 频道InterSystems Developers以获取最新更新!
文章
Claire Zheng · 二月 21, 2023
InterSystems IRIS数据平台支持列存储,提供更优存储方案,保障系统稳定运行。
文章
姚 鑫 · 五月 10, 2022
# 第138章 SQL函数 TIMESTAMPADD
一个标量日期/时间函数,它返回一个新的时间戳,该时间戳是通过将指定日期部分的多个间隔添加到时间戳来计算的。
# 大纲
```java
{fn TIMESTAMPADD(interval-type,integer-exp,timestamp-exp)}
```
# 参数
- `interval-type` - `integer-exp` 表示的时间/日期间隔类型,指定为关键字。
- `integer-exp` - 要添加到 `timestamp-exp` 的整数值表达式。
- `timestamp-exp` - 时间戳值表达式,将增加 `integer-exp` 的值。
# 描述
`TIMESTAMPADD` 函数通过将指定的日期部分增加指定的单位数来修改日期/时间表达式。例如,如果 `interval-type` 是 `SQL_TSI_MONTH` 并且 `integer-exp` 是 `5`,则 `TIMESTAMPADD` 将 `timestamp-exp` 增加五个月。还可以通过为 `integer-exp` 指定负整数来减少日期部分。
`TIMESTAMPADD` 返回与输入`timestamp-exp` 数据类型相同的时间戳。此时间戳可以是 `%Library.TimeStamp` 数据类型格式 (`yyyy-mm-dd hh:mm:ss.ffff`) 或 `%Library.PosixTime` 数据类型格式(编码的 `64` 位有符号整数)。
请注意,`TIMESTAMPADD` 只能用作 `ODBC` 标量函数(使用大括号语法)。
可以使用 `DATEADD` 通用函数对时间戳执行类似的时间/日期修改操作。
# Interval Types
间隔类型参数可以是以下时间戳间隔之一:
- `SQL_TSI_FRAC_SECOND`
- `SQL_TSI_SECOND`
- `SQL_TSI_MINUTE`
- `SQL_TSI_HOUR`
- `SQL_TSI_DAY`
- `SQL_TSI_WEEK`
- `SQL_TSI_MONTH`
- `SQL_TSI_QUARTER`
- `SQL_TSI_YEAR`
这些时间戳间隔可以使用单引号或双引号来指定,带或不带引号。它们不区分大小写。
增加或减少时间戳间隔会导致其他间隔被适当地修改。例如,增加午夜过后的小时数会自动增加天数,而这又会增加月数,依此类推。 `TIMESTAMPADD` 总是返回一个有效的日期,考虑到一个月的天数,并计算闰年。例如,将 1 月 31 日增加一个月会返回 2 月 28 日(该月中的最高有效日期),除非指定的年份是闰年,在这种情况下它会返回 2 月 29 日。
可以按三位精度的小数秒递增或递减。将小数秒指定为千分之一秒的整数计数(001 到 999)。
`DATEADD` 和 `TIMESTAMPADD` 处理季度(3 个月间隔); `DATEDIFF` 和 `TIMESTAMPDIFF` 不处理宿舍。
# %TimeStamp 格式化
如果 `timestamp-exp` 参数采用 `%Library.TimeStamp` 数据类型格式 (`yyyy-mm-dd hh:mm:ss.ffff`),则适用以下规则:
- 如果 `timestamp-exp` 仅指定时间值,则在计算生成的时间戳之前,`timestamp-exp` 的日期部分设置为`“1900-01-01”`。
- 如果 `timestamp-exp` 仅指定一个日期值,则在计算结果时间戳之前,`timestamp-exp` 的时间部分会设置为`“00:00:00”`。
- `timestamp-exp` 可以包括或省略小数秒。 `timestamp-exp` 可以包含任意位数的精度,但间隔类型 `SQL_TSI_FRAC_SECOND` 指定精确的三位精度。尝试指定小于或大于三位数的 `SQL_TSI_FRAC_SECOND` 可能会产生不可预知的结果。
# 范围和值检查
`TIMESTAMPADD` 对 `%Library.TimeStamp` 输入值执行以下检查:
- 在执行任何 `TIMESTAMPADD` 操作之前,`timestamp-exp` 的所有指定部分都必须有效。
- 日期字符串必须完整且格式正确,其中包含适当数量的元素和每个元素的数字,以及适当的分隔符。年份必须指定为四位数。无效的日期值会导致 `SQLCODE -400` 错误。
- 日期值必须在有效范围内。年:`0001` 到 `9999`。月:1 到 12。日:1 到 31。小时:00 到 23。分:0 到 59。秒:0 到 59。一个月中的天数必须与月和年相匹配。例如,日期`“02–29”`仅在指定年份是闰年时有效。无效的日期值会导致 `SQLCODE -400` 错误。
- 返回的递增(或递减)年份值必须在 `0001` 到 `9999` 范围内。超出此范围递增或递减返回 。
- 小于 `10` 的日期值可以包括或省略前导零。不允许使用其他非规范整数值。因此,`Day` 值`“07”`或`“7”`有效,但`“007”`、`“7.0”`或`“7a”`无效。小于 `10` 的日期值始终以前导零返回。
- 时间值可以全部或部分省略。如果 `timestamp-exp` 指定了不完整的时间,则为未指定的部分提供零。
- 小于 `10` 的小时值必须包含前导零。省略此前导零会导致 `SQLCODE -400` 错误。
# 示例
以下示例将 `1` 周添加到原始时间戳:
```sql
SELECT {fn TIMESTAMPADD(SQL_TSI_WEEK,1,'2017-12-20 12:00:00')}
```
以下示例将 `5` 个月添加到原始时间戳:
```sql
SELECT {fn TIMESTAMPADD(SQL_TSI_MONTH,5,'2022-12-20 12:00:00')}
```
以下示例将原始时间戳增加 `45` 分钟:
```sql
SELECT {fn TIMESTAMPADD(SQL_TSI_MINUTE,45,'2017-12-20 00:00:00')}
```
以下示例将原始时间戳减少 `45` 分钟:
```sql
SELECT {fn TIMESTAMPADD(SQL_TSI_MINUTE,-45,'2017-12-20 00:00:00')}
```
文章
Jingwei Wang · 八月 25, 2021
Object Script(一)
概况
ObjectScript是一种用于在InterSystems IRIS数据平台上快速开发编程语言,它是面向对象的弱类型脚本语言,非常适用于各种应用,包括业务逻辑、应用集成和数据处理。
在这里,我将主要介绍ObjectScript的命令脚本,类,方法和Routine等使用方式和语法规范。如有任何疑问,可在InterSystems开发者社区进行深入讨论。
IDE选择
可以使用InterSystems IRIS内置的Studio或Visual Studio Code(需要安装Object Script扩展)来查看和编辑代码。这里我们使用InterSystems IRIS内置Studio来做示例。
如果你已安装InterSystems IRIS或者InterSystems HS 等任何InterSystems产品,找到右下角的图标 ,单击鼠标右键,点击Studio,如下图所示:
输入用户名和密码(用户名:superuser 密码:安装时自己设置的密码),即可进入到Studio开发环境,如下图所示:
Terminal
可以直接打开InterSystems IRIS的终端尝试执行ObjectScript的简单指令。通过右下角的图标 ,单击鼠标右键,点击Terminal,如下图所示:
命名空间
启动一个终端会话后,输入用户名和密码(用户名可以使用superuser,密码是安装时自己设置的密码),之后就会显示你在哪个命名空间下,如下图所示,我的就在USRE这个命名空间下。
命名空间切换
do ^%CD
set $namespace = "Namespace"
Terminal指令语法
在终端中,可以输入各种ObjectScript命令语句。但是不支持多行模式,所以整个命令必须在单行输入。
常用执行指令
指令
缩写
操作
语法/示例
write
w
打印变量
write "Hello World!"
write !
W !
新行打印变量
write !, "This", !, "Is", !, "A", !, "Multi-line", !, "Message!", !
write ?
w ?
列定位打印变量
write !, "This", ?9, "Is", ?18, "A", ?27, "Columnar", ?36, "Message!", !
write #
w #
清除屏幕
write #
zwrite
zw
打印变量的名称和它们的值
zwrite
read
r
读入字段
read x
set
s
赋值
set x = "Hello World!"
kill
k
清除变量,慎用(不加参数调用时将清除内存中的所有变量!)
kill x
quit
q
终止一个例程的执行
后面加返回值(类似return)
do
d
调用函数,routine
do ##class(myclass).[method](…)
if
评估条件,并根据条件来决定运行哪些代码
if condition { code } elseif condition {code} else {code}
for
重复代码的部分
FOR variable=start:increment:end {…}
while
作用与无参数的For类似,都是重复代码的部分.
2. 与for的区别在于条件是在整个代码块之前(While)还是之后(Do/While)被评估
do {code} while condition
或者
while condition {code}
异常错误解读
输入 quit 退出错误
数据类型
%String, %Status, %Integer, %Double, %DateTime等
运算符
关系运算符:= , < ,> ,<= ,>=
算术运算符:+ ,- , * , / 等
逻辑运算符:&& , || , '
连字符:_
运算优先级:严格按照从左到右执行,数学运算没有优先级,但先计算括号内表达式。
文章
姚 鑫 · 五月 20, 2022
# 第148章 SQL函数 $TRANSLATE
执行逐字符替换的字符串函数。
# 大纲
```java
$TRANSLATE(string,identifier[,associator])
```
# 参数
- `string` - 目标字符串。它可以是字段名称、文字、主机变量或 SQL 表达式。
- `identifier` - 要在字符串中搜索的字符。它可以是字符串或数字文字、主变量或 SQL 表达式。
- `associator` - 可选 — 与标识符中的每个字符对应的替换字符。它可以是字符串或数字文字、主变量或 SQL 表达式。
# 描述
`$TRANSLATE` 函数在返回值字符串中执行逐字符替换。它一次处理一个字符的字符串参数。它将字符串中的每个字符与标识符参数中的每个字符进行比较。如果 `$TRANSLATE` 找到匹配项,它会记下该字符的位置。
- `$TRANSLATE` 的双参数形式从输出字符串中删除标识符参数中的所有字符实例。
- `$TRANSLATE` 的三参数形式将在字符串中找到的每个标识符字符的所有实例都替换为位置对应的关联字符。替换是基于字符而不是字符串执行的。如果标识符参数包含的字符多于关联参数,则从输出字符串中删除标识符参数中多余的字符。如果标识符参数包含的字符少于关联参数,则忽略关联参数中多余的字符。
`$TRANSLATE` 区分大小写。
`$TRANSLATE` 不能用于将 `NULL` 替换为字符。
如果指定的参数太少,则会发出 `SQLCODE -380`。如果指定的参数过多,则会发出 `SQLCODE -381`。
# $TRANSLATE and REPLACE
`$TRANSLATE` 执行逐字符匹配和替换。 `REPLACE` 执行字符串对字符串的匹配和替换。 `REPLACE` 可以用另一个子字符串替换一个或多个字符的单个指定子字符串,或删除指定子字符串的多个实例。 `$TRANSLATE` 可以用相应的指定替换字符替换多个指定字符。
默认情况下,这两个函数都区分大小写,从字符串的开头开始,并替换所有匹配的实例。 `REPLACE` 具有可用于更改这些默认值的参数。
# 示例
在以下示例中,两个参数 `$TRANSLATE` 通过删除标点符号(逗号、空格、句点、撇号、连字符)来修改名称值,返回仅包含字母字符的名称。请注意,标识符将撇号加倍以将其转义为文字字符,而不是字符串分隔符:
```sql
SELECT TOP 20 Name,$TRANSLATE(Name,', .''-') AS AlphaName
FROM Sample.Person
WHERE Name %STARTSWITH 'O'
```
在以下示例中,三参数 `$TRANSLATE` 通过将逗号和空格替换为插入符号 (`^`) 字符来修改名称值,返回以三部分分隔的名称(姓氏、名字、中间名首字母)。请注意,关联者必须指定`“^”`的次数与标识符中的字符数一样多:
```sql
SELECT TOP 20 Name,$TRANSLATE(Name,', ','^^') AS PiecesNamePunc
FROM Sample.Person
WHERE Name %STARTSWITH 'O'
```
在以下示例中,三参数 `$TRANSLATE` 通过将逗号和空格替换为脱字符 (`^`) 字符(在标识符和关联符中指定)和删除句点、撇号和连字符(在标识符中指定,从关联人):
```sql
SELECT TOP 20 Name,$TRANSLATE(Name,', .''-','^^') AS PiecesNameNoPunc
FROM Sample.Person
WHERE Name %STARTSWITH 'O'
```
你好,我用replace,想把一列中带有换行的数据,替换成不带空格的,但是输出后显示乱码,直接查那一列正常,这是什么问题呢,请教一下