11 DICOMリポジトリの管理

この章では、DICOMデータ・モデル・リポジトリ内の構成ドキュメントの管理方法について、コード例を使用して説明します。ORD_DICOM_ADMINパッケージがPL/SQLのみで提供されているため、コード例はパッケージと対応するようにPL/SQLで記述されています。

Oracle Multimedia DICOMには、データ・モデル・リポジトリに関連するいくつかの管理操作を実行するための機能が用意されています。たとえば、管理者は、特定の組織向けにカスタム構成ドキュメントを追加するかどうかを判断する前に、DICOMデータ・モデル・リポジトリ内のOracle定義の構成ドキュメントを確認できます(このプロセスについてはサンプル・セッション2: マッピング・ドキュメントの更新のステップ2および4を参照)。これらの構成ドキュメントの属性およびその他の詳細情報を管理者が取得するには、ビューを使用するか、またはデータ・モデル・ユーティリティのファンクションをコールします。リポジトリに対して構成ドキュメントを管理者が挿入、更新、エクスポートまたは削除するには、ORD_DICOM_ADMINパッケージ内のプロシージャおよびファンクションを使用します。DICOMデータ・モデル・リポジトリの管理者には、ORDADMINロールが割り当てられます。

この章では、次の内容を説明します。

関連項目:

11.1 サンプル・セッション1: 2つのドキュメントの挿入

次のサンプル・セッションは、マッピング・ドキュメントと制約ドキュメントをリポジトリに挿入する手順を示しています。このサンプルでは、前提となる次のタスクが完了していることを想定しています。

  • ディレクトリ・オブジェクト(DICOMDIR)が作成済で、READアクセス権が管理者に付与されている。

  • マッピング・ドキュメントに関連付けられたメタデータ・スキーマが、グローバルまたはローカルXMLスキーマとしてOracle XML DBに登録されている。

    関連項目:

    XMLスキーマの登録の詳細は、Oracle XML DB開発者ガイドを参照してください。

マッピング・ドキュメントおよび制約ドキュメントをリポジトリに挿入するには、次の手順を実行します。

手順1   データ・モデルの編集

データ・モデルを編集する準備をし、他の管理者が同時に変更できないように、データ・モデルをロックします。次に例を示します。

exec ord_dicom_admin.editDataModel();

データ・モデルは、変更をパブリッシュするか、ロールバック操作を実行するか、またはセッションを終了するまで、ロックされたままです。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

ドキュメントのリストを確認します。

手順2   新しいドキュメントの挿入

まず、次のコマンドを実行して、サンプル・マッピング・ドキュメント(sample_map.xml)を挿入します。

exec ord_dicom_admin.insertDocument('sample_map.xml', 'MAPPING',
 xmltype(bfilename('DICOMDIR', 'sample_map.xml'), nls_charset_id('AL32UTF8')));
 

サンプル・マッピング・ドキュメント(sample_map.xml)は、例2-1を参照してください。

次に、次のコマンドを実行して、サンプル制約ドキュメント(sample_ct.xml)を挿入します。

exec ord_dicom_admin.insertDocument('sample_ct.xml', 'CONSTRAINT',
 xmltype(bfilename('DICOMDIR', 'sample_ct.xml'), nls_charset_id('AL32UTF8')));

サンプル制約ドキュメント(sample_ct.xml)は、例2-3を参照してください。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

挿入したドキュメントが、ドキュメントのリストに表示されることを確認します。

もう1つの方法として、次のコマンドを実行して、orddcm_document_refsビューを問い合せた後、ドキュメントの参照情報を確認できます。

select * from orddcm_document_refs order by doc_name, ref_by_doc_name asc;

この時点で、必要に応じて管理に関連するテストを実行できます。また、rollbackDataModel( )プロシージャをコールして、変更をパブリッシュせずに操作を終了できます。終了しない場合は、次の手順を続行します。

手順3   変更のパブリッシュ

次のコマンドを実行し、変更をパブリッシュしてデータ・モデルのロックを解除します。

exec ord_dicom_admin.publishDataModel();

データ・モデルには、挿入した構成ドキュメントが含まれます。

11.2 サンプル・セッション2: マッピング・ドキュメントの更新

次のサンプル・セッションは、リポジトリ内のマッピング・ドキュメントを更新する手順を示しています。このサンプルでは、前提となる次のタスクが完了していることを想定しています。

  • ディレクトリ・オブジェクト(DICOMDIR)が作成済で、READおよびWRITEアクセス権が管理者に付与されている。

  • マッピング・ドキュメントに関連付けられた参照先のメタデータ・スキーマが、グローバルまたはローカルXMLスキーマとしてOracle XML DBに登録されている。

    XMLスキーマの登録の詳細は、Oracle XML DB開発者ガイドを参照してください。

リポジトリ内のマッピング・ドキュメントを更新するには、次の手順を実行します。

手順1   データ・モデルの編集

サンプル・セッション1: 2つのドキュメントの挿入の場合と同様に、データ・モデルを編集用に準備して、他の管理者が同時に変更を加えることができないようにロックします。次に例を示します。

exec ord_dicom_admin.editDataModel();

データ・モデルは、変更をパブリッシュするか、ロールバック操作を実行するか、またはセッションを終了するまで、ロックされたままです。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

ドキュメントのリストを確認します。

手順2   既存のドキュメントのエクスポート

サンプル・マッピング・ドキュメント(sample_map.xml)を編集するために、指定のファイル(sample_map_export.xml)にリポジトリからエクスポートします。次に例を示します。

exec ord_dicom_admin.exportDocument('sample_map.xml', 'DICOMDIR', 
 'sample_map_export.xml');

サンプル・マッピング・ドキュメント(sample_map.xml)は、例2-1を参照してください。

sample_map_export.xmlファイルをXMLエディタで編集できるようになります。

手順3   既存のドキュメントの削除

次のコマンドを実行して、既存のマッピング・ドキュメント(sample_map.xml)をリポジトリから削除します。

exec ord_dicom_admin.deleteDocument('sample_map.xml');

リポジトリには、サンプル・マッピング・ドキュメントは含まれなくなります。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

削除したドキュメントが、ドキュメントのリストに表示されないことを確認します。

手順4   エクスポートしたドキュメントの編集

手順2でエクスポートしたファイルを、XMLエディタで編集します。その後、変更を保存し、ファイルをリポジトリに挿入する前に、ファイルのアクセス権をチェックします。

手順5   編集済ドキュメントの挿入

次のコマンドを実行して、編集済のドキュメント(sample_map_edited.xml)をリポジトリに挿入します。

exec ord_dicom_admin.insertDocument('sample_map_edited.xml', 'MAPPING',
 xmltype(bfilename('DICOMDIR', 'sample_map_edited.xml'), 
 nls_charset_id('AL32UTF8')));

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

更新したドキュメントが、ドキュメントのリストに表示されることを確認します。

この時点で、変更内容をテストし、編集済のマッピング・ドキュメントでextractMetadata( )メソッドを実行して、埋込みDICOMコンテンツからメタデータをXMLコードとして取得した後、このXMLコードをデータベース表に格納できます。これにより、これらのメタデータの検索や表示が可能になります。また、rollbackDataModel( )プロシージャをコールして、変更をパブリッシュせずに操作を終了できます。終了しない場合は、次の手順を続行します。

手順6   変更のパブリッシュ

サンプル・セッション1: 2つのドキュメントの挿入の場合と同様に、次のコマンドを実行して、変更内容を公開し、データ・モデルをロック解除します。

exec ord_dicom_admin.publishDataModel();

データ・モデルには、更新済の構成ドキュメントが含まれます。

11.3 サンプル・セッション3: 制約ドキュメントの削除

次のサンプル・セッションは、リポジトリから制約ドキュメントを削除する手順を示しています。このサンプルでは、前提となる次のタスクが完了していることを想定しています。

ディレクトリ・オブジェクト(DICOMDIR)が作成済で、WRITEアクセス権が管理者に付与されている。

制約ドキュメントをリポジトリから削除するには、次の手順を実行します。

手順1   データ・モデルの編集

サンプル・セッション1: 2つのドキュメントの挿入の場合と同様に、データ・モデルを編集用に準備して、他の管理者が同時に変更を加えることができないようにロックします。次に例を示します。

exec ord_dicom_admin.editDataModel();

データ・モデルは、変更をパブリッシュするか、ロールバック操作を実行するか、またはセッションを終了するまで、ロックされたままです。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

ドキュメントのリストを確認します。

手順2   既存のドキュメントのエクスポート(推奨オプション)

サンプル制約ドキュメント(sample_ct.xml)を編集するために、指定のファイル(sample_ct_export.xml)にリポジトリからエクスポートします。次に例を示します。

exec ord_dicom_admin.exportDocument('sample_ct.xml', 'DICOMDIR', 
'sample_ct_export.xml');

サンプル制約ドキュメント(sample_ct.xml)は、例2-3を参照してください。

次のコマンドを入力して、orddcm_document_refsビューを問い合せることもできます。このビューには、リポジトリ内の他のドキュメントから参照されているドキュメントのリストが表示されます。

select * from orddcm_document_refs order by doc_name, ref_by_doc_name asc;

ドキュメントのリストを表示して、削除しようとしている制約ドキュメントが参照されているかをチェックします。

手順3   ドキュメントの削除

次のコマンドを実行して、サンプルの制約ドキュメント(sample_ct.xml)を削除します。

exec ord_dicom_admin.deleteDocument('sample_ct.xml');

リポジトリには、サンプル制約ドキュメントは含まれなくなります。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

削除したドキュメントが、ドキュメントのリストに表示されないことを確認します。

この時点で、rollbackDataModel( )プロシージャをコールして、変更をパブリッシュせずに操作を終了できます。終了しない場合は、次の手順を続行します。

手順4   変更のパブリッシュ

次のコマンドを実行し、変更をパブリッシュしてデータ・モデルのロックを解除します。

exec ord_dicom_admin.publishDataModel();

データ・モデルには、削除した構成ドキュメントは含まれません。

11.4 サンプル・セッション4: 格納タグ・リスト・ドキュメントの挿入

この項では、格納タグ・リスト・ドキュメントをリポジトリに挿入するために使用できる2種類のアプローチについて説明します。

  • 既知のタグ・セットを含む格納タグ・リスト・ドキュメントの挿入では、属性タグの既知のセットを含む格納タグ・リスト・ドキュメントを挿入する方法について説明します。

    リポジトリ内のすべての制約ドキュメントおよびマッピング・ドキュメントが使用する可能性のある属性タグの完全なセットがわかっている場合は、この項の例に従って独自の格納タグ・リスト・ドキュメントを作成し、挿入します。

  • 格納タグ・リスト・ドキュメントの生成と挿入では、制約ドキュメントおよびマッピング・ドキュメントが格納された既存のリポジトリから、格納タグ・リスト・ドキュメントを生成して挿入する方法について説明します。

    既存のリポジトリがあり、既存の制約ドキュメントおよびマッピング・ドキュメントで使用されているタグから、格納タグ・リスト・ドキュメントを生成して挿入する場合は、この項の例に従います。

格納タグ・リスト機能の記憶域とパフォーマンス上の利点を最大限に活用するために、適切な方法を選択してください。

次の各項では、それぞれのアプローチについて説明します。

11.4.1 既知のタグ・セットを含む格納タグ・リスト・ドキュメントの挿入

独自の格納タグ・リスト・ドキュメントを作成して、リポジトリに挿入できます。ドキュメントには、リポジトリ内の制約ドキュメントおよびマッピング・ドキュメントで定義されるすべての属性タグを含めます。例11-1は、格納タグ・リスト・ドキュメントとして挿入可能なサンプル・ファイル(sample_stl.xml)です。

このアプローチでは、前提となる次のタスクが完了していることを想定しています。

ディレクトリ・オブジェクト(DICOMDIR)が作成済で、READアクセス権が管理者に付与されている。

属性タグの既知のセットを含む格納タグ・リスト・ドキュメントをリポジトリに挿入するには、次の手順を実行します。

手順1   データ・モデルの編集

サンプル・セッション1: 2つのドキュメントの挿入の場合と同様に、データ・モデルを編集用に準備して、他の管理者が同時に変更を加えることができないようにロックします。次に例を示します。

exec ord_dicom_admin.editDataModel();

データ・モデルは、変更をパブリッシュするか、ロールバック操作を実行するか、またはセッションを終了するまで、ロックされたままです。

この時点で、リポジトリに格納されているドキュメントを確認するには、次のコマンドを入力してorddcm_documentsビューを問い合せます。

select doc_name from orddcm_documents order by doc_id asc;
ステップ2   格納タグ・リスト・ドキュメントの挿入

次のコマンドを実行して、サンプルの格納タグ・リスト・ドキュメント・ファイル(sample_stl.xml)を挿入します。

exec ord_dicom_admin.insertDocument(
                           'sample_stl.xml',
                           'STORED_TAG_LIST',
                            xmltype(bfilename('DICOMDIR', 'sample_stl.xml'),
                            nls_charset_id('AL32UTF8') ) );
手順3   変更のパブリッシュ

次のコマンドを実行し、変更をパブリッシュしてデータ・モデルのロックを解除します。

exec  ord_dicom_admin.publishDataModel;

データ・モデルには、挿入した構成ドキュメントが含まれます。

例11-1 既知の属性タグを含む格納タグ・リスト・ドキュメントの挿入

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
 Copyright (c) 2008, Oracle. All rights reserved.
 
   NAME
     sample_stl.xml   - sample stored tag list 
 
-->
<ATTRIBUTE_TAG_LIST xmlns="http://xmlns.oracle.com/ord/dicom/attributeTag_1_0"
 xmlns:dt="http://xmlns.oracle.com/ord/dicom/datatype_1_0" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.oracle.com/ord/dicom/attributeTag_1_0
 http://xmlns.oracle.com/ord/dicom/attributeTag_1_0">
  <DOCUMENT_HEADER>
    <dt:DOCUMENT_CHANGE_LOG>
      <dt:DOCUMENT_MODIFIER>ORACLE</dt:DOCUMENT_MODIFIER>
      <dt:DOCUMENT_MODIFICATION_DATE>2009-02-25</dt:DOCUMENT_MODIFICATION_DATE>
      <dt:DOCUMENT_VERSION>1.0</dt:DOCUMENT_VERSION>
    </dt:DOCUMENT_CHANGE_LOG>
  </DOCUMENT_HEADER>
  <ATTRIBUTE_TAG>00020002</ATTRIBUTE_TAG>
  <ATTRIBUTE_TAG>00020003</ATTRIBUTE_TAG>
  <ATTRIBUTE_TAG>00100010</ATTRIBUTE_TAG>
</ATTRIBUTE_TAG_LIST>

11.4.2 格納タグ・リスト・ドキュメントの生成と挿入

制約ドキュメントおよびマッピング・ドキュメントが格納された既存のリポジトリがある場合は、既存の制約ドキュメントおよびマッピング・ドキュメントで使用されているタグから格納タグ・リスト・ドキュメントを生成し、必要に応じてタグを変更して、その格納タグ・リスト・ドキュメントをリポジトリに挿入できます。

格納タグ・リストに含める属性について特定のルールを適用するには、それらの属性ルールを定義するプリファレンス・ドキュメントを挿入します。例11-2は、マッピング・ドキュメントおよび制約ドキュメントに必須属性タグに関するルールを適用するプリファレンス・ドキュメント(sample_pf.xml)を示しています。この操作を実行するコード・セグメントは、太字で強調表示しています。

MANDATE_ATTR_TAGS_IN_STLパラメータの値がtrueに設定されているため、制約ドキュメントおよびマッピング・ドキュメントで使用されるすべてのタグが、格納タグ・リスト・ドキュメントにリストされます。プリファレンス・ドキュメントでこのパラメータを設定する方法の詳細は、MANDATE_ATTR_TAGS_IN_STLプリファレンス・パラメータの定義を参照してください。

このアプローチでは、前提となる次のタスクが完了していることを想定しています。

ディレクトリ・オブジェクト(DICOMDIR)が作成済で、READおよびWRITEアクセス権が管理者に付与されている。

格納タグ・リスト・ドキュメントを生成してリポジトリに挿入するには、次の手順を実行します。

手順1   データ・モデルの編集

サンプル・セッション1: 2つのドキュメントの挿入の場合と同様に、データ・モデルを編集用に準備して、他の管理者が同時に変更を加えることができないようにロックします。次に例を示します。

exec ord_dicom_admin.editDataModel();

データ・モデルは、変更をパブリッシュするか、ロールバック操作を実行するか、またはセッションを終了するまで、ロックされたままです。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select doc_name from orddcm_documents order by doc_id asc;

ドキュメントのリストを確認して、リポジトリに格納されているドキュメントを調べます。

ステップ2   格納タグ・リスト・ドキュメントの生成とファイルへのエクスポート

例11-3のコマンドを実行して、格納タグ・リスト・ドキュメントを生成し、サンプルの格納タグ・リスト・ドキュメント・ファイル(sample_stl.xml)にエクスポートします。

ステップ3   (オプション)格納タグ・リスト・ドキュメントの編集

XMLエディタを使用して、ステップ2でエクスポートした格納タグ・リスト・ドキュメント・ファイルを編集します。このファイルをリポジトリに挿入する前に、必要に応じてタグを変更し、変更内容を保存して、ファイルの権限を確認します。

ステップ4   格納タグ・リスト・ドキュメントの挿入

次のコマンドを実行して、生成された格納タグ・リスト・ドキュメント(sample_stl.xml)を挿入します。

ord_dicom_admin.insertDocument(
                        'sample_stl.xml', 
                        'STORED_TAG_LIST',
                         xmltype(bfilename('DICOMDIR', 'sample_stl.xml'),
                         nls_charset_id('AL32UTF8') ) );
ステップ5   (オプション)必須属性タグのルールの適用

必須属性タグに関するルールを適用するには、MANDATE_ATTR_TAGS_IN_STLパラメータの値がtrueに設定されたプリファレンス・ドキュメントを、次のコマンドを使用して挿入します。

 exec ord_dicom_admin.insertDocument(
                           'sample_pf.xml', 
                           'PREFERENCE',
                            xmltype(bfilename('DICOMDIR', 'sample_pf.xml'),
                            nls_charset_id('AL32UTF8') ) );

このルールを適用するサンプルのプリファレンス・ドキュメントについては、例11-2を参照してください。

注意:

プリファレンス・ドキュメントでMANDATE_ATTR_TAGS_IN_STLパラメータがtrueに設定されている場合に、格納タグ・リスト・ドキュメントにリストされていないタグが含まれるマッピング・ドキュメントまたは制約ドキュメントを挿入しようとすると、これらのドキュメントがリポジトリに挿入されません。このプリファレンス・パラメータの詳細は、MANDATE_ATTR_TAGS_IN_STLプリファレンス・パラメータの定義を参照してください。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

ドキュメントのリストを確認します。

手順6   変更のパブリッシュ

次のコマンドを実行し、変更をパブリッシュしてデータ・モデルのロックを解除します。

exec  ord_dicom_admin.publishDataModel;

例11-2 必須属性タグに関するルールのサンプル・プリファレンス・ドキュメント

<?xml version="1.0" encoding="UTF-8"?>
<DICOM_RUNTIME_PREFERENCES xmlns="http://xmlns.oracle.com/ord/dicom/preference_1_0"
  xmlns:dt="http://xmlns.oracle.com/ord/dicom/datatype_1_0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://xmlns.oracle.com/ord/dicom/preference_1_0 
  http://xmlns.oracle.com/ord/dicom/preference_1_0">
 <DOCUMENT_HEADER>
  <dt:DOCUMENT_CHANGE_LOG>
   <dt:DOCUMENT_MODIFIER>Developer 1</dt:DOCUMENT_MODIFIER>
   <dt:DOCUMENT_MODIFICATION_DATE>2009-02-20</dt:DOCUMENT_MODIFICATION_DATE>
   <dt:DOCUMENT_VERSION>0.2</dt:DOCUMENT_VERSION>
   <dt:MODIFICATION_COMMENT> enable MANDATE_ATTR_TAGS_IN_STL</dt:MODIFICATION_COMMENT>
  </dt:DOCUMENT_CHANGE_LOG>
 </DOCUMENT_HEADER>
 <PREFERENCE_DEF>
  <PARAMETER>MANDATE_ATTR_TAGS_IN_STL</PARAMETER>
  <DESCRIPTION> allowed values true or false</DESCRIPTION>
  <VALUE>true</VALUE>
 </PREFERENCE_DEF>
</DICOM_RUNTIME_PREFERENCES>

例11-3 格納タグ・リスト・ドキュメントの生成とファイルへのエクスポート

--
-- Generate a tag list document and store in sample_stl.xml
-- in DICOMDIR
--
-- A stored tag list document must include all tags used by
-- mapping and constraint documents in the repository
-- to enforce the mandate_attr_tags_in_stl rule using a
-- preference document.
--
-- Use the 'ALL' option to ensure that the generated tag list
-- document contains all the tags used by mapping and constraint
-- documents.
--
set serveroutput on;
declare
  fid           UTL_FILE.FILE_TYPE;
  buf           VARCHAR2(32767);
  bytesLeft     INTEGER;
  pos           INTEGER;
  chunk         INTEGER;
  xml_clob      CLOB;
  xt            XMLType;
BEGIN

   xt := ORD_DICOM_ADMIN.generateTagListDocument('ALL');
   if (xt is null) then
    dbms_output.put_line('Repository has no documents');
    dbms_output.put_line('Tag list document is null');
    return;
   end if;

    -- write xml document to file using UTL_FILE
    -- let UTL_FILE report errors for directory and filename
    fid := utl_file.fopen( 'DICOMDIR', 'sample_stl.xml', 'w', 32767 );
 
 
    -- Read from clob and write to file
    select XMLSerialize(document xt as clob)        into xml_clob from dual;
    bytesLeft := dbms_lob.getLength( xml_clob );
    pos       := 1;
    WHILE bytesLeft > 0 loop
      chunk := 32767;
      IF bytesLeft < chunk THEN
        chunk := bytesLeft;
      END IF;
      dbms_lob.read(xml_clob, chunk, pos, buf );
      utl_file.put( fid, buf);  
      utl_file.fflush(fid);
      bytesLeft := bytesLeft - chunk;
      pos := pos + chunk;
    end loop;
 
    utl_file.fclose( fid );
 
    --free the temporary blob returned by xmltype
    if(dbms_lob.isTemporary(xml_clob) <> 0) then
      dbms_lob.freeTemporary(xml_clob);
    end if;
 
 
   exception
   WHEN OTHERS then
    -- free temp lobs
    if(dbms_lob.isTemporary(xml_clob) <> 0) then
      dbms_lob.freeTemporary(xml_clob);
    end if;
 
    raise;   -- original exception
END;
/

11.5 サンプル・セッション5: DICOMプロトコル・ドキュメントの挿入

次のサンプル・セッションでは、DICOMプロトコル・ドキュメントをリポジトリに挿入する手順を示します。このサンプルでは、前提となる次のタスクが完了していることを想定しています。

  • DICOMプロトコル・アダプタの記憶域として使用するために、1つ以上の表が作成(または選択)されている。各表には、SOPインスタンスUID用の列が少なくとも1つ含まれている必要があります。表には、DICOM画像、DICOM属性値、画像のすべてのDICOMメタデータ(XML形式)またはWADOリンクに対応する列を含めることもできます。

    注意:

    表に対応する列が必要になるのは、保持しようとしているDICOM属性に対してのみです。

  • DICOMプロトコル・アダプタ接続用のユーザーが作成(または選択)されている。

  • 指定されたユーザーに、DICOMプロトコル・アダプタの記憶表に対するSELECT、INSERT、UPDATEおよびDELETEの各権限が付与されている。

DICOMプロトコル・ドキュメントをリポジトリに挿入するには、次の手順を実行します。

ステップ1   DICOMプロトコル・ドキュメントの作成

作成した各表について1つの<storage>タグを含むDICOMプロトコル・ドキュメントを作成します。これらの表の各列(<storage>タグの属性で指定されるSOPインスタンスUID列を除く)には、例10-23のように、その表の<storage>タグ内で指定された対応するサブ要素が含まれている必要があります。

DICOMプロトコル・ドキュメントの作成の詳細は、DICOMプロトコル・ドキュメントの作成を参照してください。

ステップ2   データ・モデルの編集とロック

データ・モデルを編集する準備をし、他の管理者が同時に変更できないように、データ・モデルをロックします。次に例を示します。

exec ord_dicom_admin.editDataModel();

データ・モデルは、変更をパブリッシュするか、ロールバック操作を実行するか、またはセッションを終了するまで、ロックされたままです。

次のコマンドを入力して、orddcm_documentsビューを問い合せることもできます。

select * from orddcm_documents order by doc_id asc;

ドキュメントのリストを確認します。

ステップ3   DICOMプロトコル・ドキュメントの挿入

次のコマンドを実行して、ステップ1で作成したDICOMプロトコル・ドキュメントをリポジトリに挿入します。

exec ord_dicom_admin.insertDocument('ordcmdp.xml', 'DICOM_PROTOCOL',
 xmltype(bfilename('DICOMDIR', 'ordcmdp.xml'), nls_charset_id('AL32UTF8')));

リポジトリへのドキュメントの挿入の詳細は、insertDocument( )プロシージャを参照してください。

ステップ4   変更内容の公開とデータ・モデルのロック解除

次のコマンドを実行し、変更をパブリッシュしてデータ・モデルのロックを解除します。

exec ord_dicom_admin.publishDataModel;
ステップ5   DICOMプロトコル・アダプタ構成ドキュメントの作成

指定されたユーザーの資格証明、およびステップ1で作成したDICOMプロトコル・ドキュメントの名前を指定するDICOMプロトコル・アダプタ構成ドキュメント(ordim_adapter_config.xml)を作成します。

DICOMプロトコル・アダプタの構成の詳細は、Oracle DICOMプロトコル・アダプタの構成を参照してください。

ステップ6   DICOMプロトコル・アダプタのWebLogicへのデプロイ

Oracle DICOMプロトコル・アダプタ・スイートのデプロイの説明に従って、DICOMプロトコル・アダプタをWebLogicにデプロイします。