MirthはActiveMQJMSトピックからJavaオブジェクトを受信しています。ソースコネクタのインバウンドデータタイプをMirthチャネルの区切りテキストに設定しました。コネクタタイプはJMSリーダーです。今preprocessor
フェーズでは、このJavaオブジェクトをXMLにマーシャリングしたいと思います。このようなロガーを配置しました。
logger.info("incoming data "+message);
そしてそれはOrderDetails @ 240aaf81を印刷しています
現在、JavaオブジェクトをXMLにマーシャリングするためのカスタムJavaクラスを呼び出していますが、この受信メッセージはMirthによってStringに変換されます。プリプロセッサスクリプトのコードは次のようになります。
// Modify the message variable below to pre process data
logger.info("incoming data "+message);
var object = new Packages.coms.controller.JAXBMarshalling();
object.marshallJavaObjectToXml(message);
return message;
着信メッセージをメソッドに渡すときに、メソッドがメソッドパラメータとしてカスタムJavaオブジェクトを予期しているため、メソッドが存在しないというエラーが表示されますが、文字列として送信されます。メソッドは次のようになります。
public void marshallJavaObjectToXml(OrderDetails orderDetails) {
JAXBContext jaxbContext;
try {
File file = new File(
"C:\\Program Files (x86)\\Mirth Connect\\conf\\xml\\xmlrepresentation.xml");
jaxbContext = JAXBContext.newInstance(OrderDetails.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(orderDetails, file);
jaxbMarshaller.marshal(orderDetails, System.out);
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
オブジェクトが渡されるクラスは次のようになります。
@XmlRootElement
public class OrderDetails implements Serializable{
private static final long serialVersionUID = -4617153110762983450L;
private Long mrn;
private Long orderNo;
private Long patientId;
private Long orderId;**strong text**
private Long encounterId;
}
これら2つのクラスでjarファイルを作成し、Mirthのcustom-libフォルダーに配置しました。Mirthのpreprocessor
スクリプトで実際のJavaオブジェクトを取得するにはどうすればよいですか。Mirthバージョン2.2.1.5861を使用しています
このような結果は、[概要]タブの添付スクリプトを使用して実現できます。そこで、生の形式でメッセージを処理します。そこでオブジェクトを抽出してグローバルチャネルマップに保存できます。これにより、他の2つのマップとは異なり、オブジェクトを渡すこともできます。プリプロセッサスクリプトは、生のメッセージも処理します。これら2つの違いは、メッセージが添付ファイルハンドラーに到達したときにデータベースに保存されないが、その後に保存されることです。
さらに読むために、「非公式のMirthConnect開発者ガイド」をお勧めします。(免責事項:私はこの本の著者です。)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加