HL7 移行ツール
HL7 移行ツールでは、その他の製品で開発されたルックアップ・テーブルと変換をインターシステムズのルックアップ・テーブルと DTL クラスに変換できます。元の変換が HL7 メッセージを取り込み、それを別の HL7 メッセージに変換するように設計されている場合にのみ、HL7 移行ツールが機能します。
現在、以下からの変換を移行できます。
どの場合でも、JRE をインストール済みであることを最初に確認します。
前提条件 : Java 環境の設定
HL7 移行ツールを設定または実行する前に、以下の手順に従う必要があります。
-
Java ランタイム環境 (JRE) の最新バージョンをインストールします。システムに複数バージョンの JRE をインストールしておき、最新バージョンへのパスを使用して、このガイドの手順を実行できます。
-
有効なバージョンが JAVA_HOME 環境変数に反映されていない場合は、必要に応じて以下の手順に従い、Java JRE のフル・パスを指定します。
Cloverleaf
移行ツールでは、Cloverleaf のテーブルと変換をインターシステムズのルックアップ・テーブルと DTL クラスに変換できます。Cloverleaf 変換が HL7 メッセージを取り込み、それを別の HL7 メッセージに変換するように設計されている場合にのみ、移行ツールは機能します。
移行ツールは、基本的な変換ロジックを DTL クラスに変更するために設計されており、Cloverleaf のカスタム・コード、ループ、およびルーティング・ルールを処理するためのものではありません。基本的な TCL コマンドは変換されますが、ループなどのほとんどのコマンドは、移行後に DTL クラスに追加する必要があります。自動的には移行されないコードは、DTL コードにコメントとして挿入されます。
移行ツールの設定
移行ツールを実行する前に、インターシステムズ製品で作業用のネームスペースを作成して、セットアップ・メソッドを実行する必要があります。
-
InterSystems ターミナルを開きます。
-
以下のコマンドを入力して HSLIB ネームスペースに変更し、移行用の新しいネームスペースを作成して、その新しいネームスペースに変更します。
Set $namespace = "HSLIB" Do ##class(HS.Util.Installer.Foundation).Install("MyNamespace") Set $namespace = "MyNamespace"
-
設定ツールを実行します。
Do ##class(EnsLib.InteropTools.HL7.Setup).Run()
-
設定ツールのプロンプトに回答します。
プロンプト 入力内容 Please enter a valid type Cloverleaf クラス名 設定ツールで定義された設定を格納するために使用する新しいクラス名。これは、移行を実行するために使用されるクラスです。例えば、MyPkg.MyCloverleaf です。 Java クラスパス ANTLR Jar ファイルのパスとファイル参照。例えば、c:\Migration\antlr-4.7.2-complete.jar のようになります。 Java 実行可能ファイルのパス マシン上にある Java 実行可能ファイルのパスとファイル参照。例えば、c:\java\jdk-13.0.1\bin\java.exe のようになります。 Java (*.java) ファイルのパス *.java ファイルのパス。必ず末尾の \ を含めてください。例えば、c:\Migration\Cloverleaf\java\ のようになります。
または、以下のような方法でパラメータを設定ツールに渡すこともできます。
set status = ##class(EnsLib.InteropTools.HL7.Setup).Run("Cloverleaf","MyPkg.MyCloverleaf",
"c:\Migration\antlr-4.7.2-complete.jar",
"c:\java\jdk-13.0.1\bin\java.exe")
このコマンドが失敗した場合は、Do $SYSTEM.Status.DisplayError(status) と入力するとエラーを表示できます。
移行ツールの実行
Cloverleaf 変換ファイルはデータ・ルックアップ・テーブルを参照できるため、変換ファイルを変換する前に、すべての Cloverleaf ルックアップ・テーブルを変換する必要があります。
ルックアップ・テーブルの変換
Cloverleaf 環境によっては、変換前に、変換するルックアップ・テーブル (*.tbl) が複数存在する場合があります。各ルックアップ・テーブルは、インターシステムズ製品の永続化ルックアップ・テーブルに変換されます。1 つの *.tbl ファイル、または複数のファイルが含まれる 1 つのディレクトリに対して移行ツールを実行できます。Cloverleaf ルックアップ・テーブルを変換するには、以下の手順に従います。
-
InterSystems ターミナルで、移行用に作成したネームスペースに変更します。以下に例を示します。
Set $namespace="MyNamespace"
-
一度に複数の *.tbl ファイルを変換する場合は、ファイルを 1 つのディレクトリに配置して、以下を入力します。
set status = ##class(MyPkg.MyCloverleaf).TableImport("c:\migration\tables\","CL.Lookup.")
引数は以下のとおりです。
-
MyPkg.MyCloverleaf は、移行ツールの設定時に指定したクラスの名前です。
-
c:\migration\tables\ には、Cloverleaf ファイルが含まれます。必ず末尾の \ を付けてください。
-
CL.Lookup. は、ルックアップ・コードで作成されたインターシステムズのテーブルの接頭語です。例えば、Cloverleaf ファイルが codes.tbl である場合、インターシステムズのルックアップ・テーブルは CL.Lookup.codes になります。このパラメータには任意の有効なパッケージ名を指定できますが、必ず末尾のピリオド ( .) を付けてください。
変換が成功したかどうかを確認するには、write status と入力します。成功した場合は、1 が表示されます。
1 つの Cloverleaf ルックアップ・ファイルに対して移行ツールを実行するには、以下のように入力します。
set status = ##class(MyPkg.MyCloverleaf).TableImport("c:\migration\tables\input.tbl","CL.Lookup.")
-
変換の変換
HL7 変換で使用されるルックアップ・テーブルを変換したら、Cloverleaf 変換ファイルを DTL クラスに変換できます。各 Cloverleaf 変換ファイル (*.xlt) に対して、以下のように入力します。
-
InterSystems ターミナルで、移行用に作成したネームスペースに変更します。以下に例を示します。
Set $namespace="MyNamespace"
-
各 Cloverleaf 変換ファイルに対して、以下のように入力します。
set status = ##class(MyPkg.MyCloverleaf).CodeWalk("c:\migration\transforms\cloverleaf_sample.xlt","/ClassName=Sample.DTL /SourceDocType=2.7:ACK /TargetDocType=MyCustom2.7:ACK /TableGroupName=CL.Lookup. /Reprocess=1",.tOutput)
引数は以下のとおりです。
-
MyPkg.MyCloverleaf は、移行ツールの設定時に指定したクラスの名前です。
-
c:\migration\transforms\cloverleaf_sample.xlt は、Cloverleaf 変換ファイルです。
-
/ClassName では、移行ツールによって作成された新しい DTL クラスの名前を指定します。
-
/SourceDocType は、受信 HL7 メッセージのスキーマおよび DocType 構造です。利用可能なスキーマと DocType 構造を表示するには、管理ポータルを開き、[相互運用性]→[相互運用]→[HL7 v2.x]→[HL7 v2.x スキーマ構造] に移動します。インターシステムズ製品にスキーマを追加する必要がある場合は、メッセージ・アナライザが役立ちます。
-
/TargetDocType は、ターゲットのスキーマおよび DocType 構造です。SourceDocType は、TargetDocType に変換されます。
-
/TableGroupName は、Cloverleaf ルックアップ・テーブル・ファイルの移行時に指定したルックアップ・テーブルの接頭語の名前です。変換でルックアップ・テーブルを使用しない場合は、このパラメータを省略できます。
-
/Reprocess では、既存の DTL クラスを上書きするかどうかを指定します。/Reprocess=1 の場合、クラスは上書きされます。
-
.tOutput は、移行ツールで生成される情報を収集します。
write status と入力すると、エラーがないか確認できます。変換が成功した場合は、ターミナルに 1 が表示されます。
-
既定では、新しい DTL は、移行ツールによって作成された後にコンパイルされます。DTL がコンパイルされないようにするには、CodeWalk メソッドのパラメータとして /BuildDTL=0 を指定します。
eGate
移行ツールでは、eGate のテーブルと変換をインターシステムズのルックアップ・テーブルと DTL クラスに変換できます。eGate 変換が HL7 メッセージを取り込み、それを別の HL7 メッセージに変換するように設計されている場合にのみ、移行ツールは機能します。
移行ツールは、基本的な変換ロジックを DTL クラスに変更するために設計されており、カスタム・コード、ループ、およびルーティング・ルールを処理するためのものではありません。自動的には移行されないコードは、DTL コードにコメントとして挿入されます。
移行ツールの設定
移行ツールを実行する前に、インターシステムズ製品で作業用のネームスペースを作成して、セットアップ・メソッドを実行する必要があります。
-
InterSystems ターミナルを開きます。
-
以下のコマンドを入力して HSLIB ネームスペースに変更し、移行用の新しいネームスペースを作成して、その新しいネームスペースに変更します。
Set $namespace = "HSLIB" Do ##class(HS.Util.Installer.Foundation).Install("MyNamespace") Set $namespace = "MyNamespace"
-
設定ツールを実行します。
Do ##class(EnsLib.InteropTools.HL7.Setup).Run()
-
設定ツールのプロンプトに回答します。
プロンプト 入力内容 Please enter a valid type eGate クラス名 設定ツールで定義された設定を格納するために使用する新しいクラス名。これは、移行を実行するために使用されるクラスです。例えば、MyPkg.MyEGate のようになります。 Java クラスパス ANTLR Jar ファイルのパスとファイル参照。例えば、c:\Migration\antlr-4.7.2-complete.jar のようになります。 Java 実行可能ファイルのパス マシン上にある Java 実行可能ファイルのパスとファイル参照。例えば、c:\java\jdk-13.0.1\bin\java.exe のようになります。 Java (*.java) ファイルのパス *.java ファイルのパス。必ず末尾の \ を含めてください。例えば、c:\Migration\eGate\java\ のようになります。
または、以下のような方法でパラメータを設定ツールに渡すこともできます。
set status = ##class(EnsLib.InteropTools.HL7.Setup).Run("eGate","MyPkg.MyEGate",
"c:\Migration\antlr-4.7.2-complete.jar",
"c:\java\jdk-13.0.1\bin\java.exe")
このコマンドが失敗した場合は、Do $SYSTEM.Status.DisplayError(status) と入力するとエラーを表示できます。
移行ツールの実行
eGate 変換ファイルはデータ・ルックアップ・テーブルを参照できるため、変換ファイルを変換する前に、すべての eGate ルックアップ・テーブルを変換する必要があります。
ルックアップ・テーブルの変換
eGate 環境によっては、変換前に、変換するルックアップ・テーブルが複数存在する場合があります。各ルックアップ・テーブルは、インターシステムズ製品の永続化ルックアップ・テーブルに変換されます。1 つのファイル、または複数のファイルが含まれる 1 つのディレクトリに対して移行ツールを実行できます。eGate ルックアップ・テーブルを変換するには、以下の手順に従います。
-
InterSystems ターミナルで、移行用に作成したネームスペースに変更します。以下に例を示します。
Set $namespace="MyNamespace"
-
一度に複数のファイルを変換する場合は、ファイルを 1 つのディレクトリに配置して、以下を入力します。
set status = ##class(MyPkg.MyEGate).TableImport("c:\migration\tables\","eGate.Lookup.","*.txt")
以下は値の説明です。
-
MyPkg.MyEGate は、移行ツールの設定時に指定したクラスの名前です。
-
c:\migration\tables\ には、eGate ルックアップ・テーブル・ファイルが含まれます。必ず末尾の \ を付けてください。
-
eGate.Lookup. は、ルックアップ・コードで作成されたインターシステムズのテーブルの接頭語です。例えば、eGate ファイルが codes.txt である場合、インターシステムズのルックアップ・テーブルは eGate.Lookup.codes になります。このパラメータには任意の有効なパッケージ名を指定できますが、必ず末尾のピリオド ( .) を付けてください。
-
*.txt は、eGate ルックアップ・テーブル・ファイルのファイル拡張子を指定します。
変換が成功したかどうかを確認するには、write status と入力します。成功した場合は、1 が表示されます。
1 つの eGate ルックアップ・ファイルに対して移行ツールを実行するには、以下のように入力します。
set status = ##class(MyPkg.MyEGate).TableImport("c:\migration\tables\input.txt","eGate.Lookup.")
-
変換の変換
HL7 変換で使用されるルックアップ・テーブルを変換したら、eGate 変換ファイルを DTL クラスに変換できます。各 eGate 変換ファイル (*.tsc) に対して、以下のように入力します。
-
InterSystems ターミナルで、移行用に作成したネームスペースに変更します。以下に例を示します。
Set $namespace="MyNamespace"
-
各 eGate 変換ファイルに対して、以下のように入力します。
set status = ##class(MyPkg.MyEGate).CodeWalk("c:\migration\transforms\eGate_sample.tsc","/ClassName=Sample.DTL /SourceDocType=2.7:ACK /TargetDocType=MyCustom2.7:ACK /TableGroupName=eGate.Lookup. /Reprocess=1",.tOutput)
以下は値の説明です。
-
MyPkg.MyEGate は、移行ツールの設定時に指定したクラスの名前です。
-
c:\migration\transforms\eGate_sample.tsc は、eGate 変換ファイルです。
-
/ClassName では、移行ツールによって作成された新しい DTL クラスの名前を指定します。
-
/SourceDocType は、受信 HL7 メッセージのスキーマおよび DocType 構造です。利用可能なスキーマと DocType 構造を表示するには、管理ポータルを開き、[相互運用性]→[相互運用]→[HL7 v2.x]→[HL7 v2.x スキーマ構造] に移動します。インターシステムズ製品にスキーマを追加する必要がある場合は、メッセージ・アナライザが役立ちます。
-
/TargetDocType は、ターゲットのスキーマおよび DocType 構造です。SourceDocType は、TargetDocType に変換されます。
-
/TableGroupName は eGate ルックアップ・テーブル・ファイルの移行時に指定したルックアップ・テーブルの接頭語の名前です。変換でルックアップ・テーブルを使用しない場合は、このパラメータを省略できます。
-
/Reprocess では、既存の DTL クラスを上書きするかどうかを指定します。/Reprocess=1 の場合、クラスは上書きされます。
-
.tOutput は、移行ツールで生成される情報を収集します。
write status と入力すると、エラーがないか確認できます。変換が成功した場合は、ターミナルに 1 が表示されます。
-
既定では、新しい DTL は、移行ツールによって作成された後にコンパイルされます。DTL がコンパイルされないようにするには、CodeWalk メソッドのパラメータとして /BuildDTL=0 を指定します。
DataGate
移行ツールでは、DataGate のテーブルと変換をインターシステムズのルックアップ・テーブルと DTL クラスに変換できます。DataGate 変換が HL7 メッセージを取り込み、それを別の HL7 メッセージに変換するように設計されている場合にのみ、移行ツールは機能します。
移行ツールは、基本的な変換ロジックを DTL クラスに変更するために設計されており、カスタム・コード、ループ、およびルーティング・ルールを処理するためのものではありません。自動的には移行されないコードは、DTL コードにコメントとして挿入されます。
移行ツールの設定
移行ツールを実行する前に、インターシステムズ製品で作業用のネームスペースを作成して、セットアップ・メソッドを実行する必要があります。
-
InterSystems ターミナルを開きます。
-
以下のコマンドを入力して HSLIB ネームスペースに変更し、移行用の新しいネームスペースを作成して、その新しいネームスペースに変更します。
Set $namespace = "HSLIB" Do ##class(HS.Util.Installer.Foundation).Install("MyNamespace") Set $namespace = "MyNamespace"
-
設定ツールを実行します。
Do ##class(EnsLib.InteropTools.HL7.Setup).Run()
-
設定ツールのプロンプトに回答します。
プロンプト 入力内容 Please enter a valid type DataGate クラス名 設定ツールで定義された設定を格納するために使用する新しいクラス名。これは、移行を実行するために使用されるクラスです。例えば、MyPkg.MyDataGate のようになります。 Java クラスパス ANTLR Jar ファイルのパスとファイル参照。例えば、c:\Migration\antlr-4.7.2-complete.jar のようになります。 Java 実行可能ファイルのパス マシン上にある Java 実行可能ファイルのパスとファイル参照。例えば、c:\java\jdk-13.0.1\bin\java.exe のようになります。 Java (*.java) ファイルのパス *.java ファイルのパス。必ず末尾の \ を含めてください。例えば、c:\Migration\DataGate\java\ のようになります。
または、以下のような方法でパラメータを設定ツールに渡すこともできます。
set status = ##class(EnsLib.InteropTools.HL7.Setup).Run("DataGate","MyPkg.MyDataGate",
"c:\Migration\antlr-4.7.2-complete.jar",
"c:\java\jdk-13.0.1\bin\java.exe")
このコマンドが失敗した場合は、Do $SYSTEM.Status.DisplayError(status) と入力するとエラーを表示できます。
移行ツールの実行
DataGate 変換ファイルはデータ・ルックアップ・テーブルを参照できるため、変換ファイルを変換する前に、すべての DataGate ルックアップ・テーブルを変換する必要があります。
ルックアップ・テーブルの変換
DataGate 環境によっては、変換前に、変換するルックアップ・テーブルが複数存在する場合があります。各ルックアップ・テーブルは、インターシステムズ製品の永続化ルックアップ・テーブルに変換されます。1 つのファイル、または複数のファイルが含まれる 1 つのディレクトリに対して移行ツールを実行できます。DataGate ルックアップ・テーブルを変換するには、以下の手順に従います。
-
InterSystems ターミナルで、移行用に作成したネームスペースに変更します。以下に例を示します。
Set $namespace="MyNamespace"
-
一度に複数のファイルを変換する場合は、ファイルを 1 つのディレクトリに配置して、以下を入力します。
set status = ##class(MyPkg.MyDataGate).TableImport("c:\migration\tables\","DataGate.Lookup.","*.txt")
以下は値の説明です。
-
MyPkg.MyDataGate は、移行ツールの設定時に指定したクラスの名前です。
-
c:\migration\tables\ には、DataGate ルックアップ・テーブル・ファイルが含まれます。必ず末尾の \ を付けてください。
-
DataGate.Lookup. は、ルックアップ・コードで作成されたインターシステムズのテーブルの接頭語です。例えば、DataGate ファイルが codes.txt である場合、インターシステムズのルックアップ・テーブルは DataGate.Lookup.codes になります。このパラメータには任意の有効なパッケージ名を指定できますが、必ず末尾のピリオド ( .) を付けてください。
-
*.txt は、DataGate ルックアップ・テーブル・ファイルのファイル拡張子を指定します。
変換が成功したかどうかを確認するには、write status と入力します。成功した場合は、1 が表示されます。
1 つの DataGate ルックアップ・ファイルに対して移行ツールを実行するには、以下のように入力します。
set status = ##class(MyPkg.MyDataGate).TableImport("c:\migration\tables\input.txt","DataGate.Lookup.")
-
変換の変換
HL7 変換で使用されるルックアップ・テーブルを変換したら、DataGate 変換ファイルを DTL クラスに変換できます。各 DataGate 変換ファイル (*.tsc) に対して、以下のように入力します。
-
InterSystems ターミナルで、移行用に作成したネームスペースに変更します。以下に例を示します。
Set $namespace="MyNamespace"
-
各 DataGate 変換ファイルに対して、以下のように入力します。
set status = ##class(MyPkg.MyDataGate).CodeWalk("c:\migration\transforms\DataGate_sample.tsc","/ClassName=Sample.DTL /SourceDocType=2.7:ACK /TargetDocType=MyCustom2.7:ACK /TableGroupName=DataGate.Lookup. /Reprocess=1",.tOutput)
以下は値の説明です。
-
MyPkg.MyDataGate は、移行ツールの設定時に指定したクラスの名前です。
-
c:\migration\transforms\DataGate_sample.tsc は、DataGate 変換ファイルです。
-
/ClassName では、移行ツールによって作成された新しい DTL クラスの名前を指定します。
-
/SourceDocType は、受信 HL7 メッセージのスキーマおよび DocType 構造です。利用可能なスキーマと DocType 構造を表示するには、管理ポータルを開き、[相互運用性]→[相互運用]→[HL7 v2.x]→[HL7 v2.x スキーマ構造] に移動します。 インターシステムズ製品にスキーマを追加する必要がある場合は、メッセージ・アナライザが役立ちます。
-
/TargetDocType は、ターゲットのスキーマおよび DocType 構造です。SourceDocType は、TargetDocType に変換されます。
-
/TableGroupName は DataGate ルックアップ・テーブル・ファイルの移行時に指定したルックアップ・テーブルの接頭語の名前です。変換でルックアップ・テーブルを使用しない場合は、このパラメータを省略できます。
-
/Reprocess では、既存の DTL クラスを上書きするかどうかを指定します。/Reprocess=1 の場合、クラスは上書きされます。
-
.tOutput は、移行ツールで生成される情報を収集します。
write status と入力すると、エラーがないか確認できます。変換が成功した場合は、ターミナルに 1 が表示されます。
-
既定では、新しい DTL は、移行ツールによって作成された後にコンパイルされます。DTL がコンパイルされないようにするには、CodeWalk メソッドのパラメータとして /BuildDTL=0 を指定します。