简体   繁体   English

查询mirth connect的消息存储

[英]Query message store of mirth connect

Can I use mirth connect to store millions of HL7v2 messages (pipe delimited) and query them programmatically by our third party software application at a later point of time? 我能否使用mirth connect存储数百万条HL7v2消息(以竖线分隔),并在稍后的时间由我们的第三方软件应用程序以编程方式查询它们?

What's the best way to do that? 最好的方法是什么? Is mirth's REST API capable to query its message store efficently? mirth的REST API是否能够有效查询其消息存储库?

Unfortunatly I need a running mirth connect instance to browse the REST API documentation according to the manual at page 368. ( If it wouldn't require to have a running instance of mirth to browse the documentation of the REST API I wouldn't have asked that question. Is there a mirth connect instance available on the internet to play with? Or would somebody be so kind to post the relevant REST API documentation for that question? ) 不幸的是,根据第368页的手册 ,我需要一个运行中的mirth连接实例来浏览REST API文档。( 如果不需要运行mirth实例来浏览REST API的文档, 我也不会要求这个问题。互联网上是否有一个欢乐的连接实例可以玩呢?还是有人会为这个问题发布相关的REST API文档?

So far, those are the scenarios I came up yet: 到目前为止,这些是我提出的方案:

在此处输入图片说明

Mirth is integration engine, and its strength is processing messages. Mirth是集成引擎,其优势在于处理消息。 Browsing historical messages can be at times difficult or slow, depending on the storage settings for the channel and whether or not you take care to pull additional information out during processing to store in "custom metadata" fields. 浏览历史消息有时可能很困难,也可能很慢,具体取决于通道的存储设置以及您是否在处理过程中小心拉出其他信息以存储在“自定义元数据”字段中。 The custom metadata fields are not indexed by default, but you can add your own (mirth supports several back-end databases, including postgres, mysql, oracle, and mssql.) Searching the message content basically involves doing a full-text search and scanning. 自定义元数据字段默认情况下未编入索引,但您可以添加自己的字段(mirth支持多个后端数据库,包括postgres,mysql,oracle和mssql。)搜索消息内容基本上涉及到全文搜索和扫描。 。 Filter options to reduce scan time, apart from the custom metadata you create, are mostly related to the message properties (datetime received, status, etc..) and not the content. 除了创建的自定义元数据以外,用于减少扫描时间的筛选器选项主要与邮件属性(接收的日期时间,状态等)有关,与内容无关。

So, I would not recommend it for the use-case you are suggesting. 因此,对于您建议的用例,我不会推荐它。

However, Mirth could definitely be used to convert your messages (batched from files or live) to xml which could be put in a database designed to handle and query large volumes of xml documents. 但是,Mirth绝对可以用于将您的消息(从文件或实时批处理的)转换为xml,然后将其放入旨在处理和查询大量xml文档的数据库中。 I assume when you say HL7 you mean the ER7 (pipe delimited) format of HL7v2. 我认为当您说HL7时,是指HL7v2的ER7(管道分隔)格式。 Mirth automatically does the conversion to xml for those types of messages as they are handled as xml during processing. 对于处理过程中作为xml处理的这些类型的消息,Mirth会自动将其转换为xml。 You could easily create a new parent node that holds both the converted xml and the original message string as children. 您可以轻松创建一个新的父节点,该节点将转换后的xml和原始消息字符串都作为子节点保存。

If the database you choose has a JDBC driver, Java SDK, or HTTP/REST API, mirth can likely directly insert the converted messages for you as it processes them. 如果您选择的数据库具有JDBC驱动程序,Java SDK或HTTP / REST API,则mirth可能会在处理它们时直接为您插入转换后的消息。

There are two misconceptions here: 这里有两个误解:

  • HL7v2 message is triggered by the real-world event, called the trigger event, on the placer (sender) side. HL7v2消息由在放置器(发送者)侧的真实事件(称为触发事件)触发。 It expects some activity to happen on the filler (receiver) side by either confirming the message, replying with the query response, etc. Ie, HL7v2 supports data flow among systems. 它希望通过确认消息,以查询响应进行回复等方式在填充程序(接收方)方面发生一些活动。即,HL7v2支持系统之间的数据流。

  • Mirth Connect is HL7 interface engine aimed at transforming incoming feeds in one format (eg, HL7v2 in ER7 format) into outgoing feeds in another format (which could be another HL7v2, or XML, or database, etc.). Mirth Connect是HL7接口引擎,旨在将一种格式(例如ER7格式的HL7v2)的传入提要转换为另一种格式(可以是另一种HL7v2,XML或数据库等)的传出提要。 It does not store anything except a configured portion of messages for audit purposes. 除了已配置的消息部分以外,它不存储任何内容以用于审核。

Now, to implement a solution you outlined, Mirth Connect or any other transformation mechanism has to implement two flows: receive, convert if needed and store incoming messages; 现在,要实现您概述的解决方案,Mirth Connect或任何其他转换机制必须实现两个流程:接收,必要时进行转换以及存储传入消息; provide an interface to query those messages. 提供查询这些消息的接口。

This is obviously can be done with Mirth Connect but your initial question if Mirth is capable in storing millions of records is incorrect. 显然,这可以通过Mirth Connect来完成,但是您最初的问题是Mirth是否能够存储数百万条记录是不正确的。 In fact it's recommended to keep as less messages as possible to speed up Mirth processing (each processed message is stored in the Mirth internal database several times depending on configuration). 实际上,建议保留尽可能少的消息以加快Mirth处理(根据配置,每条处理过的消息会多次存储在Mirth内部数据库中)。 Thus, all transformed messages are going into the external public or private message storage exactly as shown on your diagrams. 因此,所有转换后的消息将完全按照图中所示进入外部公共或私有消息存储。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM