1

私は従来の歓喜システムを維持しています。ZP1.36 セグメントが繰り返される着信 HL7 メッセージをいくつか取得します。私が知る限り、mirth は、こ​​れらの繰り返しセグメントを分割関数を介して繰り返しセグメントの配列に分割しています。

var repeat36 = msg['ZP1']['ZP1.36'].toString().split("</ZP1.36>"); //I think returns an array of ZP1.36 segments

しかし、生データには、文字列 ZP1.36 が表示されません...

私は、VB/Java/C# で分割関数を使用して、次のように文字列を特定の文字の周りのトークンに分割することに慣れています。

var myTokens = "hello^world".toString().Split("^"); //returns a 2 item array {"hello", "world"}

Mirth の分割機能は、このようには機能していないようです。HL7 メッセージの想定される構造に基づいてメッセージを解析しているようです。

これは何が起こっているのですか?何か不足していますか?分割機能のルールは何ですか?

mirth コミュニティに相互投稿http://www.mirthcorp.com/community/forums/showthread.php?p=26203#post26203

4

2 に答える 2

4

あなたはすでにあなたの質問に対する十分な答えを見つけて受け入れたことを知っています(Mirthフォーラムから再投稿されました)が、別の答えでもう少し情報を与えることが役立つかもしれないと思いました。

本質的に、Mirthは、HL7データを処理するために、いくつかの既存のテクノロジーを活用しています。

  1. HAPI(「ハッピー」と発音):これは、パイプ区切りのV2.xHL7をXMLとして再解釈するためのJavaコードのライブラリーです。V2.XML形式自体も公式のHL7仕様です(ネイティブにXMLであるV3 HL7と混同しないでください)。製品名「Mirth」は明らかに「happy」の同義語として選ばれました。
  2. E4X:これはXMLを操作するためのJavaScript標準です。標準のWebテクノロジーとして大きな牽引力を得ることができませんでしたが、Rhino JavaScriptエンジンで利用できるため、Mirthによって活用されています。

DansがMirthフォーラムで提供した例から:

このスニペットは、HL7v.2xの標準XML形式です。

<ZP1.36>
    <ZP1.36.1>Hello</ZP1.36.1>
    <ZP1.36.2>World</ZP1.36.2>
<ZP1.36>

このJavaScriptコードは、 E4X表記法を利用して、E4XXMLおよびXMLListデータ型に再解釈されたHL7データを解析およびアクセスします。

var zp1361 = msg['ZP1']['ZP1.36']['ZP1.36.1'].toString();
var zp1362 = msg['ZP1']['ZP1.36']['ZP1.36.2'].toString();
  • msgHL7データを保持するE4XXMLオブジェクトです
  • msg['ZP1']ZP1セグメントのリストを保持するE4XXMLListオブジェクトを生成します。
于 2012-10-18T09:03:04.773 に答える
1

Mirth メッセージ ボードのMirth 従業員である Dans は、split 関数が着信メッセージの xml 翻訳で機能すると説明しています。

したがって、基本的に、xml で作業しており、ZP1.36 は既に分割されています。

<ZP1.36>
   <ZP1.36.1>Hello</ZP1.36.1>
   <ZP1.36.2>World</ZP1.36.2>
<ZP1.36>

さまざまなサブ要素を取得したい場合は、次のようにすることができます。

var zp1361 = msg['ZP1']['ZP1.36']['ZP1.36.1'].toString();
var zp1362 = msg['ZP1']['ZP1.36']['ZP1.36.2'].toString();
于 2012-07-06T20:58:51.083 に答える