
你好 我叫安德烈(Andrey),我在一家创建医学领域IT解决方案的公司里工作。 作为主要的开发语言,我们使用Clojure以及(取决于项目/模块)Python,Javascript,Go,C,C#,Rust,Objective-C等。
国际标准
FHIR (快速医疗保健互操作性资源)占据了我们技术堆栈的重要位置,该标准定义了以电子形式存储/交换/提供医疗信息的格式,并包括了客户端与服务器交互的
RESTful API规范。
前一段时间,我启动了一个应用程序的宠物项目,该项目可视化任意FHIR服务器的资源内容,并允许您执行基本的CRUD操作。 KDPV显示类型为Patient的资源元素的编辑页面的屏幕快照。
猫下有一个简短的描述和一个在线演示的链接-可以触摸真实的实时FHIR服务器,拨动按钮,查看/创建/编辑各种资源,甚至尝试调用非常相同的habra效果! )
关于FHIR的几句话
我不会在这里重写标准的描述,希望那些人可以从上面的链接中了解所有详细信息,阅读各种资源上的其他材料,以及在
FHIR聊天中提出问题并加入讨论。 我只给出一个大致的概念:中心概念是资源,资源按类型和组划分,每种类型都有自己的字段结构,其值可以是原始类型或复合类型,并可以链接到其他资源。 字段可以是必填字段,也可以是可选字段,可以包含一个值或一组值。 例如,“
患者”资源具有以下原始类型的字段:出生日期/性别/ ...,复合类型:名称/地址/ ....,指向组织的链接以及主治医生的列表等。
对于每个资源,其更改的历史记录都存储为状态列表,其中包含它们的相关日期和对象的版本号。 RESTful API允许您请求有关此FHIR服务器支持的资源的组成和结构的元数据,具有各种过滤功能的各种类型的资源元素的列表,这些元素根据单个参数的值,依赖资源的包含,将结果的输出限制为列出的字段的值,按复杂的条件对查询结果进行排序以及等 还有一些在资源元素级别支持CRUD的方法-通过结构验证和存在必填字段的创建/更新,删除元素。 有一些API方法可以在元素级别和资源类型级别查看更改历史记录。
在典型的应用程序中,该通用API的使用被特定客户的业务逻辑的较厚层所抽象。 例如,在任命病人去看医生时,要求他们提供有关他的医疗保险数量及其有效期,以前就诊的历史记录,有关病人与诊所之间的和解余额的信息等数据,有关所选医生的时间表和入院时间的可用性等信息。 .p。 所有这些都方便地显示在进行记录的员工的工作场所的屏幕上。 或者,自动任务计划程序根据设置的计划定期启动过程,请求即将到来的访问列表,并根据预定义的模板自动将SMS发送给具有文本提醒或通知的患者。
但是我想到了对FHIR服务器的资源内容进行通用可视化的想法,因此一个名为...
面子
该应用程序允许您连接到任何FHIR服务器并查看资源和基本CRUD的内容。 这种通用方法的困难之一是,不同的服务器可能具有不同版本的FHIR标准,无法完全实现它,资源和API的列表,组成和结构存在差异,并且还具有规范中未包含的其他功能。 。 但是,如果此服务器允许您请求有关受支持资源的组成和结构的元数据,则可以在该项目中添加其支持。
项目界面直观。 通过地址栏参数选择服务器地址,但是在当前的演示版本中,
默认选择
hapi.fhir.org 。 从起始页开始,下载资源的组成和结构,并建议选择一种特定类型的资源以查看其内容。 选择资源类型时,将请求有限数量的元素,这些元素显示在带有列的表中:标识符,条件用户表示(如果可能)以及字符串序列化字符的大小。 对资源内容进行全文搜索是可行的。 单击表行或创建新元素的按钮时,将重定向到资源元素的内容页面。
在元素页面的顶部,有用于完全卷积/展开分层内容的按钮,以及用于更改详细信息的表示样式的按钮。 项目的内容由详细信息列表表示。 每个属性都有名称,类型,简短描述和含义。 该属性左侧用黑色填充的圆圈表示该属性存在于资源中(即使未选择其值,在这种情况下,该属性具有此属性,但它具有一个空值),一个空圆圈表示元素中没有此属性,但列表此类资源的结构的详细信息。 通过单击名称左侧的圆圈图标,可以从项目中添加/删除任何属性。 未在资源类型的结构中列出但在元素中可用的详细信息以紫色突出显示。
基本类型的值由相应的类型化小部件表示-日期,时间,数字,字符串等。 字符串详细信息右侧的图标可切换文本输入/编辑模式-带或不带换行符。 编辑时,小部件会根据其内容自动调整大小。 开始填写表单时,所有长度超过50个字符的文本字段均由带换行符的textArea小部件表示。 链接窗口小部件由链接资源的类型和值表示,选择值时,可以对链接资源的内容进行全文搜索。
可以折叠复合类型的详细信息以突出显示可能填充的从属详细信息的数量,也可以通过演示内容来进行部署。 当您单击必备项的名称/类型/描述时,将触发内容的完整深度卷积/展开,当您单击突出显示时,字段数就是下一级别的必备项的展开。 集合属性(具有任意数量的值)在属性描述的右侧带有一个
+图标-为集合添加新值。 通过单击限制集合元素的框架的最右侧部分,可以进行集合元素的卷积/展开(如果是,则为复合类型的值)。 单击框架右上角的十字时,将删除集合元素。
该界面允许您编辑任何资源的内容。 页面底部是一个按钮,用于将资源保存为已编辑状态。 写入资源后,FHIR服务器会验证其内容,如果有错误,它不会记录该资源,但会返回验证错误列表。 在这种情况下,这些错误的文本在保存按钮下方以红色显示。 验证错误的对象的结构由服务器实现确定;因此,选择了其通用文本表示形式的变体。 如果没有错误,那么将记录资源元素并将其重定向回元素列表页面。
最后,承诺的链接:
项目在线演示该项目的Github-猫不是展览中的毛绒动物,而是活着的工人,因此这里有受注释的区域,脚手架和其他建筑和安装工作所必需的元素(戴头盔)