对,目前IAM提供的是容器版本。如果有对IAM的需求,可以联系InterSystems的销售和销售工程师。
- Log in to post comments
对,目前IAM提供的是容器版本。如果有对IAM的需求,可以联系InterSystems的销售和销售工程师。
目前这是最主要的SMART on FHIR应用市场。但不少厂商都推出了自己的SMART on FHIR应用,放在自己的官网里,有些是免费的,更多是收费的。
ECP1:HIS-AAA4:CACHE 这也是一台Redhat主机吗?配置了几个ECP应用服务器?查看一下ECP的Maximum number of application servers设置,看看是多大。
用GB18030,它向后兼容GB2312
系统类%Library.GTWCatalog有一个类查询SQLDataSources用来获取DSN,例如:
ClassMethod Test()
{
set rs=##class(%ResultSet).%New()
set rs.ClassName="%Library.GTWCatalog"
set rs.QueryName="SQLDataSources"
set sc=rs.Execute(1)
If $$$ISERR(sc) Do DisplayError^%apiOBJ(sc) Quit
while rs.%Next() { do rs.%Print() }
}可以将Excel文件保存为CSV文件,然后直接导入IRIS即可。SMP页面路径在:系统资源管理器>SQL>向导>数据导入:.png)
我想您的问题涉及3个方面:
1. 如何以SQL访问Ensemble的数据:
Ensemble的数据可以通过SQL操作。因此第三方SQL数据库可以直接将Ensemble作为一个SQL数据库,通过XDBC访问Ensemble,并使用SQL获取数据。
同样,Ensemble也可以通过link table直接操作第三方SQL数据库。
2. 如何发现数据在第三方数据库不存在?
这需要一些逻辑,例如通过时间戳、自增的ID等信息判断。
3. 批量快读:
听起来,不是要实时进行数据同步,而是要批量处理。批量处理可以使用多种方式:a. 小批量可以通过SQL输出适配器;b. 大批量可以绕过适配器/Production,直接以link table或其它方式处理,这样不需要产生消息,效率更高。
在Ensemble 2016中,使用$ZF(-4)来操作DLL是Caché的Callout网关的底层实现之一。这种方式比较通用。
当然,如果这些DLL(ActiveX/COM)注册在Ensemble服务器上(Windows服务器),还有别的调用方式:使用Caché Activate 网关,用Studio来产生这些DLL的代理类,然后您就可以像使用Ensemble/Caché类一样使用这些DLL里的方法了。
使用%request变量,它有属性CgiEnvs代表Cgi环境变量,然后找REMOTE_ADDR即可。例如: $G(%request.CgiEnvs("REMOTE_ADDR"))
看起来是Windows系统SSL认证方面的问题。建议先查查Windows日志,另外考虑一下是否Cache'最近做过SSL方面的修改吗?
可以调用操作系统的命令来获取CPU序列号。例如在Cache' for Windows上,可以执行:
SAMPLES>s args=3
SAMPLES>s args(1)="CPU"
SAMPLES>s args(2)="get"
SAMPLES>s args(3)="ProcessorID"
SAMPLES>d $ZF(-100,"","wmic",.args)
ProcessorId
0FABFBFF000506EX
0FABFBFF000006EX
0FABFBFF000006EX
0FABFBFF000006EX
是Windows吗?在Windows命令行,执行wmic CPU get ProcessorID,能得到CPU序列号吗?
SAMPLES>s x=$system.Encryption.SHA1Hash("ensmble")
SAMPLES>s hashs="" f i=1:1:$l(x) s hashs=hashs_$zh(+$a($e(x,i)))
SAMPLES>w hashs
74BA9A6CBBC92F06D9B4166F9C5B4F7F8251AED
用$ZF(-1), 可以将OS命令输出保存到文件里。例如:
w $ZF(-1,"wmic CPU get ProcessorID > c:\temp\cpuinfo.txt")
返回值是1,说明报错了。确认一下是否OS命令写正确了。
另外,输出不是看返回值,是看输出的文件
2016之后的版本,RSAEncrypt可以接收X.509证书或RSA公钥,而2016中RSAEncrypt接收证书参数。
Ensemble2016上使用RSAEncrypt,如果拿不到证书,仅用公钥,请联系InterSystems 销售工程师。
远程主机的23端口开放了吗?
查看Cache'的对应服务是否开启,同时检查服务器是否开放了23端口。
你要做哪些JSON操作?太早的版本使用某些JSON操作可能会比较麻烦。
你是要遍历XML DOM树?可以如下使用:
ClassMethod Test()
{
Set x="<?xml version=""1.0"" ?><root xmlns=""test"" xmlns:mc=""test1"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:schemaLocation=""test2""><!--this is a test--><id code=""test3""/></root>"
try
{
$$$ThrowOnError(##class(%XML.XPATH.Document).CreateFromString(x, .doc))
Set doc.PrefixMappings="s test"
$$$ThrowOnError(doc.EvaluateExpression("/s:root", ".", .field))
#dim obj As %XML.XPATH.DOMResult = field.GetAt(1)
while obj.Read()
{
if obj.HasValue
{
write obj.Path,": ",obj.Value,!
}
if obj.HasAttributes
{
for i=1:1:obj.AttributeCount
{
d obj.MoveToAttributeIndex(i)
w obj.Name,":",obj.Value,!
}
}
}
}catch(ex)
{
write "Error ", ex.DisplayString(),!
}
}
输出:
xmlns:xml:http://www.w3.org/XML/1998/namespace
xmlns:test
xmlns:mc:test1
xmlns:xsi:http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation:test2
root\: this is a test
code:test3
IRIS的镜像(Mirroring)支持多个报告类型(Reporting Asyncs)的异步成员,这些异步成员可以用于查询、报表运行、BI等多种场景。
可以封装一个REST服务用于前端api调用,这个REST服务根据不同api操作和路径,在后台调用不同服务器上的REST API或SQL操作。
或者也可以考虑使用InterSystems API管理器做这个事。
应该是没开启SOAP测试页能力。搜一下三级等保文章,里面有介绍
SAMPLES>s cls=##class(%Dictionary.ClassDefinition).%OpenId("Sample.Person")
SAMPLES>s cls2=cls.%ConstructClone(cls)
SAMPLES>s cls2.Name="User.Person"
SAMPLES>w cls2.%Save()Cache'使用SQL访问第三方视图更简便。可以通过 link table直接操作第三方数据库。Cache'2018的文档: https://docs.intersystems.com/ens201815/csp/docbook/DocBook.UI.Page.cls…
最新docker引擎做了变化,运行IRIS的2022.2之前的版本,要增加一个参数--check-caps false,例如: docker run --name test2 --publish 1972:1972 --publish 52773:52773 docker.iscinternal.com/intersystems/irishealth:2021.1.0.215.0 --check-caps false --key <keyfile-path>
带Z是UTC时间,使用下面的方法会将其转换为本地时间。
s x="2022-09-30T07:24:57.899Z"
w $Replace($ZDT($ZDTH(x,3,8),3,1),"-","/")
返回:2022/09/30 15:24:57