转到文章 Qiao Peng · 四月 23, 2021 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 hashs74BA9A6CBBC92F06D9B4166F9C5B4F7F8251AED
转到文章 Qiao Peng · 四月 23, 2021 可以调用操作系统的命令来获取CPU序列号。例如在Cache' for Windows上,可以执行:SAMPLES>s args=3SAMPLES>s args(1)="CPU"SAMPLES>s args(2)="get"SAMPLES>s args(3)="ProcessorID"SAMPLES>d $ZF(-100,"","wmic",.args)ProcessorId0FABFBFF000506EX0FABFBFF000006EX0FABFBFF000006EX0FABFBFF000006EX
转到文章 Qiao Peng · 四月 19, 2021 使用%request变量,它有属性CgiEnvs代表Cgi环境变量,然后找REMOTE_ADDR即可。例如: $G(%request.CgiEnvs("REMOTE_ADDR"))
转到文章 Qiao Peng · 四月 18, 2021 如果dll重新编译过,那么是需要重新生成代理类的;其它情况下并不需要。另外,Ensemble 2016里有.net 网关,通过Studio来建立dll代理类。不过它依然需要在dll代码发生变化时重新生成代理类。 这也是后续版本(尤其是InterSystems IRIS)推出动态对象网关的原因:通过动态网关就不用生成代理类了,从而避免因为.net/java端发生代码变更而需要重新生成代理类。$ZF()对DLL没有特殊要求。
转到文章 Qiao Peng · 四月 18, 2021 在Ensemble 2016中,使用$ZF(-4)来操作DLL是Caché的Callout网关的底层实现之一。这种方式比较通用。当然,如果这些DLL(ActiveX/COM)注册在Ensemble服务器上(Windows服务器),还有别的调用方式:使用Caché Activate 网关,用Studio来产生这些DLL的代理类,然后您就可以像使用Ensemble/Caché类一样使用这些DLL里的方法了。
转到文章 Qiao Peng · 四月 18, 2021 我想您的问题涉及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或其它方式处理,这样不需要产生消息,效率更高。
转到文章 Qiao Peng · 四月 15, 2021 系统类%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() } }
转到文章 Qiao Peng · 四月 13, 2021 如果需要在InterSystems IRIS中对不同的编码的数据进行转换,可以使用函数$ZCVT。 例如将变量tStr的unicode值转换为GB2312: s tOutput=$ZCVT(tStr,"O","GB2312")
转到文章 Qiao Peng · 四月 12, 2021 ECP1:HIS-AAA4:CACHE 这也是一台Redhat主机吗?配置了几个ECP应用服务器?查看一下ECP的Maximum number of application servers设置,看看是多大。
转到文章 Qiao Peng · 四月 9, 2021 目前这是最主要的SMART on FHIR应用市场。但不少厂商都推出了自己的SMART on FHIR应用,放在自己的官网里,有些是免费的,更多是收费的。