文章 Michael Lei · 七月 2, 2022 阅读大约需 4 分钟 使用嵌入式 python 访问管理门户仪表盘并在网页上显示 cache 表数据 Hi 社区, 在这篇文章中,我将解释如何通过使用嵌入式python访问管理门户系统的仪表盘信息和表数据。 ##嵌入式 Python #SQL #管理门户 #InterSystems IRIS for Health 0 0 0 240
公告 Michael Lei · 七月 1, 2022 来自2022全球用户大会--最新在线培训内容上线 欢迎点击 2022在线培训6月刊, 查看我们在全球峰会上发布的新版本--包括基于云服务的在线培训, 此外,获得关于执行分析查询的最新信息,查看最新的认证考试,并尝试新的文档搜索功能。 #2022 全球峰会 #InterSystems 业务解决方案和架构 #业务流程 (BPL) #新手 #学习门户 0 0 0 76
文章 姚 鑫 · 七月 1, 2022 阅读大约需 4 分钟 第十五章 字符串本地化和消息字典(一) 第十五章 字符串本地化和消息字典(一) 本文概述了字符串本地化,并描述了如何导出、导入和管理消息字典。 字符串本地化 当本地化应用程序的文本时,会创建一种语言的文本字符串清单,然后当应用程序区域设置不同时,建立约定以另一种语言替换这些消息的翻译版本。 支持以下本地化字符串的过程: 开发人员在他们的代码中包含可本地化的字符串(在REST 应用程序或商业智能模型中)。 这种机制各不相同,但最常见的机制是 $$$Text 宏。代替硬编码的文字字符串,开发人员包含 $$$Text 宏的实例,为宏参数提供如下值: 默认字符串 此字符串所属的域(将字符串分组为域时,本地化更易于管理) 默认字符串的语言代码 write "Hello world" 替换为 #SQL #Caché 0 0 0 118
文章 Michael Lei · 七月 1, 2022 阅读大约需 10 分钟 原创文章--医院数字化转型之数智底座建设思路(在陕西省数字医学数字化转型论坛上的分享) 各位领导、老师大家好。非常荣幸有机会参加这次由中国数字医学杂志社组织的陕西省医院数字化转型研讨会。 IT这个行业很有意思,就是大家都很喜欢造词。这几年有一个词特别火,叫做数智化底座,很多厂商都先后推出了自己的数智化底座解决方案。结合最近对整个行业的一些观察,今天借这个机会,跟各位领导和老师探讨一下,医疗行业的数字化有什么特点,到底什么样的底座或者平台比较符合我们医疗行业,以及我们在建设数智化底座的时候需要考虑哪些问题。结合我们最近的一些观察和思考,有不当之处,欢迎各位老师批评、指正。 首先一点就是我们做任何工作,首先要解决“为什么”的问题?第一个核心思路,我想数字化转型是为智慧医院服务的,归根结底,还是要通过数字化的手段,来实现医院的高质量发展。针对这一目标,国家卫健委制定了智慧医院发展的三大目标,就是智慧医疗、智慧管理和智慧服务,我想说白了,无非就是让医院、医护人员以及我们的患者过的更好,提高我们治疗和护理水平、降本增效,同时能够让我们的患者得到更好的服务。所有的数字化建设,不管是平台还是应用,都应该围绕这一核心目标。 #InterSystems 业务解决方案和架构 #数据模型 #InterSystems IRIS for Health 2 0 0 283
公告 Claire Zheng · 七月 1, 2022 InterSystems 2022 Full Stack开发者大赛 大家好!欢迎参加InterSystems第21届开发者大赛! 🏆 InterSystems 2022 Full Stack开发者大赛 🏆 时间: 2022年6月27日-7月17日(美东时间) 奖金:$10,000 #前端 #活动 #竞赛 #InterSystems IRIS #IRIS竞赛 0 0 0 119
问题 sun yao · 七月 1, 2022 %XML.XPATH.Document的CreateFromFile方法 解析https的webService服务报错 unsupported protocol %XML.XPATH.Document中CreateFromFile方法,pSource入参传https开头的webService地址,解析报错“错误 #6901: XSLT XML转换器错误: unsupported protocol in URL in at line 0 offset 0” #Ensemble 1 1 0 93
文章 姚 鑫 · 六月 30, 2022 阅读大约需 2 分钟 第十四章 信号(四)- 多进程任务示例 第十四章 信号(四)- 多进程任务示例 可根据此思想进行多任务启动查询汇总数据。 原理 利用job机制开启后台进程。 利用loop循环减少进程的数量等于开启进程的数量,判断多进程任务是否完成。 创建表并插入1000W条数据,统计Moeny字段总金额 创建demo代码如下。 #SQL #Caché 0 0 0 81
问题 kong defu · 六月 29, 2022 Cache数据库使用M语言如何调用第三方视图 Cache数据库使用M语言如何调用第三方视图呢,有没有对应使用文档呢? #Caché 0 1 1 184
文章 姚 鑫 · 六月 29, 2022 阅读大约需 10 分钟 第十三章 信号(三)- 示例演示 第十三章 信号(三)- 示例演示 运行示例 Main、Producer 和 Consumer 这三个类中的每一个都有自己的 Run 方法,最好在各自的终端窗口中运行它们。每次运行时,它都会显示它为日志生成的消息。一旦用户通过提供它正在等待的输入来响应 Main 类,Main 的 Run 方法将终止删除信号量。然后,用户可以通过键入命令查看所有进程的合并日志文件的显示 Do ##class(Semaphore.Util).ShowLog() 注意:以下所有示例都假定所有类都已在“USER”命名空间中编译。 示例 1 - 创建和删除信号量 最简单的例子演示了信号量的创建和销毁。它使用 Semaphore.Main 类。请执行下列操作: #SQL #Caché 0 0 0 83
文章 姚 鑫 · 六月 27, 2022 阅读大约需 7 分钟 第十二章 信号(二)- 生产者消费者示例 第十二章 信号(二)- 生产者消费者示例 下面是一系列使用信号量实现生产者/消费者场景的类。 “主”进程初始化信号量并等待用户指示活动已全部完成。生产者在循环中随机增加一个信号量值,更新之间的延迟可变。消费者尝试在随机时间从信号量中删除随机数量,也是在循环中。该示例由 5 个类组成: - Main – 初始化环境并等待信号量上的活动完成的类。 - Counter – 实现信号量本身的类。它记录它的创建以及由于信号量在等待列表中而发生的任何回调。 - Producer – 一个类,其主要方法增加信号量值。增量是一个随机选择的小整数。完成增量后,该方法会在下一个增量之前延迟一小段随机数秒。 - Consumer 消费者——这是对生产者的补充。此类的主要方法尝试将信号量减少一个随机选择的小整数。它将递减请求添加到其等待列表中,等待时间也是随机选择的秒数。 - Util - 这个类有几个方法被示例的其他类使用。几种方法解决了为所有活动维护公共日志的问题;其他人解决了多个消费者和多个生产者的命名问题。 #SQL #Caché 0 0 0 81
文章 Weiwei Gu · 六月 27, 2022 阅读大约需 6 分钟 Globals 是管理数据的魔剑 : 第一部分 Globals,这些存储数据的魔剑,已经存在了一段时间,但是没有多少人能够有效地使用它们,也没有多少人知道这个超级武器。 如果你把Globals的东西用在它们真正能发挥作用的地方,其结果可能是惊人的,要么是性能的提高,要么是整体解决方案的大幅简化 (1, 2). Globals提供了一种特殊的存储和处理数据的方式,它与SQL表完全不同。它们在1966年首次出现在 M(UMPS)编程语言中, 该语言最初用于医学数据库。现在它仍然以同样的方式被使用,但也被其他一些以可靠性和高性能为首要任务的行业所采用:金融、交易等。 后来M(UMPS)演变为 Caché ObjectScript (COS). COS是由InterSystems公司开发的,作为M的一个超集. 其原始语言仍然被开发者社区所接受,并在一些实现中保持活力。在网络上有几个活跃的网址,比如:MUMPS Google group, Mumps User's group), effective ISO Standard等等 现代基于Globals的数据库支持交易、日志、复制、分区等。这意味着它们可以被用来构建现代的、可靠的、快速的分布式系统。 Gloabls并不将你限制于关系模型的范围内。它们让你可以自由地创建为特定任务优化的数据结构。对于许多应用来说,合理地使用好的Globals就如一颗真正的银子弹头,它所提供的速度是传统关系型应用的开发者所梦寐以求的。 作为一种存储数据的方法,globals可以在许多现代编程语言中使用,包括高级和低级语言。因此,本文将特别关注Globals本身,而不是它们曾经来自的语言。 #Node.js #关系表 #性能 #新手 #Caché #Global Masters #InterSystems IRIS 0 1 0 256
文章 Frank Ma · 六月 27, 2022 阅读大约需 3 分钟 使用Python和仪表盘制作的一个欧洲水状况应用程序 比较不同的商业智能技术是非常有趣的。我很好奇它们在功能、开发工具、速度和可用性方面有什么不同。 ##嵌入式 Python #自适应分析(Adaptive Analytics) #IntegratedML #InterSystems Reports (Logi) #仪表板 #InterSystems IRIS Open Exchange app 0 0 0 101
文章 姚 鑫 · 六月 26, 2022 阅读大约需 7 分钟 第十一章 信号(一)- 概念 第十一章 信号(一) - 概念 背景 维基百科对信号量有这样的定义:“在计算机科学中,特别是在操作系统中,信号量是一种变量或抽象数据类型,用于控制多个进程在并行编程或多用户环境中对公共资源的访问。”信号量不同于互斥体(或锁)。互斥锁最常用于管理竞争进程对单个资源的访问。当一个资源有多个相同的副本并且这些副本中的每一个都可以由单独的进程同时使用时,就会使用信号量。 考虑一个办公用品商店。它可能有几台复印机供其客户使用,但每台复印机一次只能由一个客户使用。为了控制这一点,有一组键可以启用机器并记录使用情况。当客户想要复印文件时,他们向职员索取钥匙,使用机器,然后归还钥匙,并支付使用费。如果所有机器都在使用,客户必须等到钥匙归还。保存键的位置用作信号量。 该示例可以进一步推广到包括不同类型的复印机,也许可以通过它们可以制作的副本的大小来区分。在这种情况下,将有多个信号量,如果复制者在复制的大小上有任何重叠,那么希望复制共同大小的客户将有两个资源可供提取。 #SQL #Caché 0 0 0 131
文章 Michael Lei · 六月 26, 2022 阅读大约需 5 分钟 跟踪数据更改 - 审计日志 - 下篇 在前一篇文章中,我已经演示了一种简单的方法来记录数据的变化。在这个时候,我改变了负责记录审计数据的 "审计抽象类 "和记录审计日志的数据结构。 我已经将数据结构改为父子结构,其中将有两个表来记录 "交易 "和在该交易中改变的 "字段的值"。 看一下新的数据模型: 看看从 "审计类 "改变的代码吧: #对象数据模型 #ObjectScript #Caché #InterSystems IRIS for Health 0 0 0 169
文章 Michael Lei · 六月 26, 2022 阅读大约需 1 分钟 以程序化的方式检查审计设置 下面的代码允许用户查看其实例的审计设置。通过运行类方法 "test "来运行该代码。: #Code Snippet #ObjectScript #Caché 0 0 0 88
文章 Michael Lei · 六月 26, 2022 阅读大约需 3 分钟 从Web 应用端用代码实现OAuth2 和基础认证、鉴权和审计 在这篇文章中,我将解释如何通过使用CSP Web应用程序以及启用/禁用和认证/取消认证任何Web应用程序的代码来进行认证、授权和审计。 在线 Demo -- https://dappsecurity.demo.community.intersystems.com/csp/user/index.csp (SuperUser | SYS) 推荐大家看下这个视频: https://www.youtube.com/watch?v=qFRa3njqDcA 应用层 #OAuth2 #安全 #访问控制 #认证 #身份认证 #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 138
文章 姚 鑫 · 六月 25, 2022 阅读大约需 2 分钟 第十章 设置结构化日志记录(二) 第十章 设置结构化日志记录(二) 注:IRIS有,Cache无。 启用结构化日志记录 ^LOGDMN 例程允许管理结构化日志记录;还有一个基于类的 API,将在下一节中介绍。 要使用 ^LOGDMN 启用结构化日志记录: 打开终端并输入以下命令: set $namespace="%sys" do ^LOGDMN 这将启动一个带有以下提示的例程: #SQL #Caché 0 0 0 86
文章 姚 鑫 · 六月 24, 2022 阅读大约需 4 分钟 第九章 设置结构化日志记录(一) 第九章 设置结构化日志记录(一) IRIS 支持结构化日志记录。 创建多个日志,每个日志用于不同的目的。从以前的产品迁移过来的客户可以像过去一样利用这些日志,但现在还可以将所有日志信息导入一个单一的、中央的、机器可读的日志文件——结构化日志。然后可以将此文件与第三方分析工具一起使用。 本文概述了结构化日志中的信息,展示了日志示例,并描述了如何启用结构化日志记录。 结构化日志中可用的信息 当启用结构化日志记录时,系统会将相同的数据写入结构化日志,它也会写入其他日志(无论哪个)。例如,系统将相同的行写入messages.log 和结构化日志。 启用结构化日志记录后,结构化日志包含以下所有信息: #SQL #Caché 0 0 0 110
文章 姚 鑫 · 六月 23, 2022 阅读大约需 3 分钟 第八章 操作位和位串(四) 第八章 操作位和位串(四) 操作以整数形式实现的位串 设置位 要创建一个存储为整数的新位串,请对每个位求和 2 的幂: set bitint = (2**2) + (2**5) + (2**10) write bitint 1060 要将现有位串中的位设置为 1,请使用 $zboolean 函数(逻辑 OR)的选项7 (arg1 ! arg2): set bitint = $zboolean(bitint, 2**4, 7) write bitint 1076 要将现有位串中的位设置为 0,请使用 $zboolean 函数的选项 2 (arg1 & ~arg2): #SQL #Caché 0 0 0 104
公告 Claire Zheng · 六月 23, 2022 【参赛时间延长】InterSystems技术写作大赛:Python 嗨,开发者们!欢迎加入第二届InterSystems技术写作大赛! 🐍 InterSystems技术写作大赛:Python 🐍 6月20日至七月20日 延长至7月31日,在社区撰写一篇利用InterSystems技术使用Python的文章,主题自定。 🎁 撰文即得奖 我们为每一位参与此次写作大赛的作者准备了一份特殊礼品! 🏆 优秀文章大奖 AirPods Max; Apple Watch SE; Apple HomePod mini / Apple Pencil #活动 #竞赛 #IRIS竞赛 #开发者社区官方 0 0 0 106
文章 Lilian Huang · 六月 23, 2022 阅读大约需 2 分钟 InterSystems 许可证信息和查询支持Tips InterSystems许可证是指InterSystems #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS BI (DeepSee) #InterSystems IRIS for Health 0 0 0 399
文章 姚 鑫 · 六月 22, 2022 阅读大约需 4 分钟 第七章 操作位和位串(三) 第七章 操作位和位串(三) 操作位串 要创建新的位串,请使用 $bit 函数将所需位设置为 1: kill bitstring set $bit(bitstring, 3) = 1 set $bit(bitstring, 6) = 1 set $bit(bitstring, 11) = 1 使用 $bit 将现有位串中的位设置为 1: set $bit(bitstring, 5) = 1 使用 $bit 将现有位串中的位设置为 0: set $bit(bitstring, 5) = 0 由于位串中的第一位是位 1,因此尝试设置位 0 会返回错误: #SQL #Caché 0 0 0 92
公告 Michael Lei · 六月 22, 2022 CloudStudio - 一个纯浏览器的代码编辑器 Hi 社区, 这是海外工程师做的一个纯浏览器的代码编辑器CloudStudio. 欢迎大家下载试用: GitHub 下载: https://github.com/SeanConnelly/CloudStudio InterSystems 应用市场下载:https://openexchange.intersystems.com/package/CloudStudio 到Discord 讨论区:https://discord.gg/ZnvdMywsjP Docker 支持与在线Demo: #开发环境 #Caché #InterSystems IRIS Open Exchange app 1 0 0 125
文章 姚 鑫 · 六月 21, 2022 阅读大约需 3 分钟 第六章 操作位和位串(二) 第六章 操作位和位串(二) 将位序列存储为整数 如果要将一系列布尔参数传递给方法,一种常见的方法是将它们作为编码为单个整数的位序列传递。 例如,Security.System.ExportAll() 方法用于从 IRIS 实例中导出安全设置。如果查看此方法的类引用,将看到它的定义如下: classmethod ExportAll(FileName As %String = "SecurityExport.xml", ByRef NumExported As %String, Flags As %Integer = -1) as %Status 第三个参数 Flags 是一个整数,其中每个位代表一种可以导出的安全记录。 #SQL #Caché 0 0 0 102
文章 Michael Lei · 六月 21, 2022 阅读大约需 3 分钟 生成和校验验证码 如果您使用InterSystems技术开发了自己的网络应用,现在想在客户端进行验证码验证,以确定用户真实性使其更加安全。有一些现代框架可以解决验证码的问题,然而它们中的大多数需要互联网接入来生成代码,有时实施起来很复杂。考虑到图像识别已经非常成熟,您可以参考本文为基本例子。这就是为什么现在倾向于看到更多的模式识别验证码而不是单纯的阅读验证码。(例如,点击所有有店面的图片)。如果你需要更复杂的东西,请继续开发,改进这个代码并分享它。 继续阅读以了解如何使用这个基本的例子: Demo.Captcha class 使用这个类,你可以在一个物理目录上创建验证码图像文件,以便在你的应用程序上显示。请注意,创建图像的目录必须是可用的,以便你的Web应用程序访问这些图像。要创建验证码图像,请调用以下方法,将完整的文件名作为一个参数: 创建 image 文件 #CSP #ZEN #前端 #Caché 0 0 0 106
Job Tingting Jiang · 六月 21, 2022 InterSystems热门职位(1):Market Development Representative InterSystems正在招聘Market Development Representative欢迎您的自荐、推荐。 #工作机会 0 0 0 155
Job Tingting Jiang · 六月 21, 2022 InterSystems热招职位(2):Technical Specialist(Implementation) InterSystems正在招聘Technical Specialist(Implementation),欢迎您的自荐、推荐。 #工作机会 0 0 0 127
Job Tingting Jiang · 六月 21, 2022 InterSystems热招职位(3):Technical Specialist(Product Support) InterSystems正在招聘Technical Specialist(Product Support),欢迎您的自荐、推荐。 #工作机会 0 0 0 88
Job Tingting Jiang · 六月 21, 2022 InterSystems热招职位(4):Support Facilitator 我们正在招聘Support Facilitator,欢迎您的自荐、推荐。 #工作机会 0 0 0 154
文章 姚 鑫 · 六月 20, 2022 阅读大约需 4 分钟 第五章 操作位和位串 第五章 操作位和位串 有时可能希望在基于数据平台的应用程序中存储一系列相关的布尔值。可以创建许多布尔变量,也可以将它们存储在数组或列表中。或者可以使用称为“位串”的概念,它可以定义为位序列,首先呈现最低有效位。位串允许您以非常有效的方式存储此类数据,无论是在存储空间还是处理速度方面。 位串可以以两种方式之一存储,作为压缩字符串或整数。如果在没有上下文的情况下听到术语“位串”,则表示位序列存储为压缩字符串。本文向介绍了这两种类型的位串,然后介绍了一些可用于操作它们的技术。 将位序列存储为位串 存储位序列的最常见方式是在位串中,这是一种特殊的压缩字符串。除了节省存储空间外,还可以使用 ObjectScript 系统函数有效地操作位串。 这样的系统函数是 $factor,它将整数转换为位串。我们可以通过执行以下语句将整数 11744 转换为位串: set bitstring = $factor(11744) 要查看位串内容的表示,可以使用 zwrite 命令: #SQL #Caché 0 0 0 89