Oracle Multimedia DICOMには、ORD_DICOM_ADMINパッケージが記述されています。 このパッケージには、DICOM管理者がOracle Multimedia DICOMリポジトリのメンテナンスに使用することを目的としたデータ・モデル・リポジトリ・インタフェースがリストされています。 データ・モデル・リポジトリは、ドキュメントのコレクションです。 インストール中に1セットのドキュメントがロードされます。 インストール後、DICOM管理者はORD_DICOM_ADMINパッケージ内のプロシージャおよびファンクションを使用して、データ・モデル・リポジトリにさらにドキュメントを追加できます。 Oracle Multimedia DICOMには、DICOM管理者が使用するDICOMリポジトリの情報ビューも定義されています。
ORD_DICOM_ADMINパッケージは、ordcrpsp.sql
ファイルに定義されています。 インストール後、このファイルは次のOracleホーム・ディレクトリから使用できます。
<ORACLE_HOME>
/ord/im/admin
(LinuxおよびUNIXの場合)
<ORACLE_HOME>
\ord\im\admin
(Windowsの場合)
Oracle Multimediaには、次の情報が含まれます。
この章では、ORD_DICOM_ADMINデータ・モデル・リポジトリ・インタフェースに含まれるファンクション、プロシージャおよび情報ビューについて説明します。 他のDICOM APIの詳細は、次の各章を参照してください。
DICOM Java APIの詳細は、『Oracle Multimedia DICOM Java API Reference』を参照してください。
ORD_DICOM_ADMINパッケージには、次のORD_DICOM_ADMINデータ・モデル・リポジトリのファンクションおよびプロシージャが定義されています。
構文
getDocumentContent(docName IN VARCHAR2) RETURN XMLTYPE
説明
ドキュメントをデータ型XMLTypeとして戻します。 このファンクションは、元のドキュメントの内容を変更せずに、データ・モデル・リポジトリ内のドキュメントのコピーを作成する場合に使用できます。
パラメータ
内容を取得する対象となるドキュメントの名前を指定します。 ドキュメントの内容は、データ型XMLTypeとして戻されます。 orddcm_documentsビューにDOC_NAME列があります。docNameには、この列にリストされるドキュメントの1つを指定します。
プラグマ
なし
例外
なし
使用上の注意
このファンクションをコールする前に、setDataModel( )プロシージャまたはeditDataModel( )プロシージャのいずれかをコールしてください。
注意: getDocumentContent( )プロシージャまたはexportDocument( )プロシージャのみをコールするなど、データ・モデルに対して変更を行わない場合は、setDataModel( )プロシージャをコールしてください。ドキュメントの挿入や削除など、データ・モデルに対して変更を行う場合は、editDataModel( )プロシージャをコールしてください。 |
例
リポジトリ内の指定したドキュメント(ordcmpf.xml
)の内容を取得します。
CONNECT pm
Enter password: password
-- user pm must be assigned the ORDADMIN role for the following example to work
exec ord_dicom.setDataModel;
set long 5000;
-- to see the contents on screen
select ord_dicom_admin.getDocumentContent('ordcmpf.xml') from dual;
-- to store in a table
create table repos_exp_docs( name varchar2(100), doc xmltype);
insert into repos_exp_docs (name, doc) select 'ordcmpf.xml',
ord_dicom_admin.getDocumentContent('ordcmpf.xml') from dual;
この例の補足説明は次のとおりです。
repos_exp_docs: 指定したプリファレンス・ドキュメントの内容を格納する表
構文
deleteDocument(docName IN VARCHAR2)
説明
指定されたドキュメントをデータ・モデル・リポジトリから削除します。 Oracleでインストールされたドキュメントは、デフォルト・ドキュメントとして扱われる、削除できないドキュメントです。
構成ドキュメントの削除に関する詳細は、8.7項を参照してください。
パラメータ
リポジトリから削除するドキュメントの名前を指定します。docNameには、orddcm_documentsビューにリストされるドキュメントの1つを指定します。
プラグマ
なし
例外
なし
使用上の注意
このプロシージャをコールする前に、editDataModel( )プロシージャをコールしてください。
また、ドキュメントをリポジトリから削除する前に、exportDocument( )プロシージャをコールして指定したドキュメントのコピーを作成することをお薦めします。
例
ドキュメント(sample_pref.xml
)をコピーした後、リポジトリから削除します。
CONNECT pm
Enter password: password
-- user pm must be assigned the ORDADMIN role for the following example to work
exec ord_dicom_admin.editDataModel();
-- list most recent docs first
select doc_name from orddcm_documents order by create_date desc;
-- export doc
exec ord_dicom_admin.exportDocument('sample_pref.xml', 'EXPORT_DIR',
'sample_pref_exp.xml');
-- delete doc
exec ord_dicom_admin.deleteDocument('sample_pref.xml');
-- list remaining docs
select doc_name from orddcm_documents order by create_date desc;
-- publish changes and release locks
exec ord_dicom_admin.publishDataModel();
この例の補足説明は次のとおりです。
EXPORT_DIR: 管理者が書込み権限を持っており、指定したファイルの内容のコピー先になるOracleディレクトリ・オブジェクト
構文
editDataModel( )
説明
データ・モデル・リポジトリに対する変更を行う管理者の編集セッションを開始します。 リポジトリは、publishDataModel( )プロシージャまたはrollbackDataModel( )プロシージャがコールされるまで、または管理者セッションが終了するまで、管理者セッションによってロックされます。 リポジトリに対する変更を行う前に、このプロシージャをコールしてください。
パラメータ
なし
プラグマ
なし
例外
なし
使用上の注意
なし
例
他の管理者からリポジトリをロックして、リポジトリでの編集セッションを開始します。
exec ord_dicom_admin.editDataModel();
構文
exportDocument(docName IN VARCHAR2, dirName IN VARCHAR2, fileName IN VARCHAR2)
説明
docNameパラメータで指定されたドキュメントの内容を、指定されたファイルにエクスポートします。 このプロシージャでは、管理者が書込み権限を持つディレクトリ内のファイルにデータが書き込まれます。
パラメータ
リポジトリ内の特定のドキュメントの名前を指定します。docNameには、orddcm_documentsビューにリストされるドキュメントの1つを指定します。
指定したファイルが含まれるディレクトリの位置を指定します。 この文字列は、Oracleディレクトリ・オブジェクト名で、大/小文字が区別されます。 デフォルトは大文字です。 このディレクトリ・オブジェクトに対する書込み権限が、管理者に付与されている必要があります。
ファイル拡張子(ファイル・タイプ)を含むファイル名を指定します。ただし、ディレクトリ・パスは含めません。
プラグマ
なし
例外
なし
使用上の注意
このプロシージャをコールする前に、setDataModel( )プロシージャまたはeditDataModel( )プロシージャのいずれかをコールしてください。
注意: getDocumentContent( )プロシージャまたはexportDocument( )プロシージャのみをコールするなど、データ・モデルに対して変更を行わない場合は、setDataModel( )プロシージャをコールしてください。ドキュメントの挿入や削除など、データ・モデルに対して変更を行う場合は、editDataModel( )プロシージャをコールしてください。 |
例
リポジトリ内にある既存のファイル(sample_map.xml
)の内容を、外部ファイル(sample_map_export.xml
)にエクスポートします。
exec ord_dicom.setDataModel(); exec ord_dicom_admin.exportDocument('ordcmpf.xml', 'EXPORT_DIR', 'ordcmpf_exp.xml');
この例の補足説明は次のとおりです。
EXPORT_DIR: 管理者が書込み権限を持っており、指定したファイルの内容がコピーされるファイルを含むOracleディレクトリ・オブジェクト (Oracleディレクトリ・オブジェクトの作成方法の例は、5.1.1項を参照してください。)
構文
insertDocument(docName IN VARCHAR2, docType IN VARCHAR2, xmlDoc IN XMLType)
説明
指定されたXML構成ドキュメントを、データ・モデル・リポジトリにロードします。 ドキュメント名は、一意であることが必要です。 サポートされるドキュメント・タイプは、パブリック情報ビューorddcm_document_types(第4章を参照)にリストされています。 ドキュメントは、ドキュメント・タイプに関連付けられた登録済スキーマに対して検証されます。
ドキュメントは、次の順序でリポジトリにロードする必要があります。
標準データ・ディクショナリ・ドキュメント
プライベート・データ・ディクショナリ・ドキュメント
次に示す、その他の構成ドキュメント
制約ドキュメント
XMLマッピング・ドキュメント
匿名ドキュメント
プリファレンス・ドキュメント
UID定義ドキュメント
その他の構成ドキュメントは、任意の順序でロードできます。ただし、制約ドキュメント間に依存性がある場合を除きます。
ドキュメント間には、セマンティック上の依存性があります。 たとえば、XMLマッピング・ドキュメントで参照される要素は、標準データ・ディクショナリ・ドキュメントまたはプライベート・データ・ディクショナリ・ドキュメントに存在している必要があります。 情報ビューorddcm_documents(第4章を参照)には、リポジトリ内のドキュメントの詳細が含まれます。
パラメータ
特定のドキュメントの一意の名前を指定します。 100文字を超える長さの名前は使用できません。また、予約済の接頭辞ORD
を含むことはできません。
リポジトリにロードするドキュメント・タイプを指定します。 サポートされる値は、パブリック情報ビューorddcm_document_types(第4章を参照)にリストされています。 このパラメータの値にNULLを指定することはできません。
リポジトリにロードするXML文書を指定します。 このパラメータの値にNULLを指定することはできません。
プラグマ
なし
例外
なし
使用上の注意
このプロシージャをコールする前に、editDataModel( )プロシージャをコールしてください。
ユーザー定義のマッピング・ドキュメントをリポジトリに挿入する前に、マッピング・ドキュメントに関連付けられたメタデータ・スキーマを、グローバル・スキーマとしてOracle XML DBに登録しておく必要があります。 XMLスキーマの登録の詳細は、『Oracle XML DB開発者ガイド』を参照してください。 (デフォルトのマッピング・ドキュメントに関連付けられたメタデータ・スキーマは、Oracle Multimedia DICOMのインストール時にOracle XML DBに登録されます。 詳細は、付録Bおよび例10-1を参照してください。)
例
マッピング・ドキュメント(sample_map.xml
)をリポジトリに挿入します。
exec ord_dicom_admin.editDataModel(); exec ord_dicom_admin.insertDocument('sample_map.xml', 'MAPPING', xmltype(bfilename('DICOMDIR', 'sample_map.xml'), nls_charset_id('AL32UTF8'))); select * from orddcm_documents; exec ord_dicom_admin.publishDataModel();
この例の補足説明は次のとおりです。
MAPPING: リポジトリにロードするドキュメント・タイプ
DICOMDIR: ロードするファイルが含まれるOracleディレクトリ・オブジェクト
構文
publishDataModel( )
説明
データ・モデル・リポジトリに対する変更をパブリッシュします。 このプロシージャにより、リポジトリのロック解除も行われ、他の管理者が更新できるようになります。 ユーザーは、setDataModel( )プロシージャをコールしてデータ・モデル・リポジトリをリフレッシュすることにより、リポジトリに対してパブリッシュされた最新の変更内容にアクセスできます。
パラメータ
なし
プラグマ
なし
例外
なし
使用上の注意
このプロシージャをコールする前に、editDataModel( )プロシージャをコールしてください。
管理者がデータ・モデル・リポジトリへの変更をパブリッシュしたタイミングによっては、現在リポジトリに接続済のユーザーが最新の変更内容を確認するために、setDataModel( )プロシージャを複数回コールする必要がある場合があります。 また、同じデータ・モデル・リポジトリに接続している2人のユーザーは、それぞれがsetDataModel( )プロシージャをコールしたタイミングによって、異なるバージョンのリポジトリにアクセスする可能性があります。 この状態が発生する可能性のある例の詳細は、図2-5を参照してください。
例
リポジトリへの変更をパブリッシュします。
exec ord_dicom_admin.editDataModel(); exec ord_dicom_admin.deleteDocument('sample_pref.xml'); select doc_name from orddcm_documents; exec ord_dicom_admin.publishDataModel();
構文
rollbackDataModel( )
説明
editDataModel( )プロシージャヘの前回のコール以降に行った、データ・モデルに対する変更を中止します。 このプロシージャをコールして、変更のロールバックとデータ・モデルのロックの解除を行うことにより、他の管理者がデータ・モデルを更新できるようになります。
パラメータ
なし
プラグマ
なし
例外
なし
使用上の注意
このプロシージャをコールする前に、editDataModel( )プロシージャをコールしてください。
データ・モデルをロールバックする必要がある場合は、データベース・セッションの最後でこのプロシージャをコールしてください。 データ・モデルへの変更はパブリッシュされずに終了されるため、情報ビューには、すでにパブリッシュ済のデータ・モデルからデータが移入されます。
例
データ・モデルへの変更をリポジトリにパブリッシュせずに終了します。
exec ord_dicom_admin.editDataModel(); exec ord_dicom_admin.deleteDocument('sample_pref.xml'); select doc_name from orddcm_documents; exec ord_dicom_admin.rollbackDataModel(); select doc_name from orddcm_documents;
この項では、管理者用のOracle Multimedia DICOMリポジトリ情報ビューについて説明します。 管理者用の情報ビューは、orddcm_document_refsと呼ばれます。
Oracle Multimedia DICOMリポジトリ・パブリック情報ビューの詳細は、第4章を参照してください。
形式
列名 | データ型 | 説明 |
---|---|---|
doc_name | VARCHAR2(100) | ドキュメント名 |
ref_by_doc_name | VARCHAR2(100) | 参照されているドキュメント名 |
説明
読取り専用のこの情報ビューには、他のドキュメントから参照されているドキュメントがリストされます。 ORDADMINロールには、この情報ビューのSELECT権限が付与されています。
使用上の注意
この情報ビューを問い合せる前に、setDataModel( )プロシージャまたはeditDataModel( )プロシージャのいずれかをコールしてください。 setDataModel( )プロシージャをコールする場合は、データ・モデルの新しい変更をアプリケーションで確認する必要があるときはいつでも、このプロシージャを再度コールしてください。
注意: getDocumentContent( )プロシージャまたはexportDocument( )プロシージャのみをコールするなど、データ・モデルに対して変更を行わない場合は、setDataModel( )プロシージャをコールしてください。ドキュメントの挿入や削除など、データ・モデルに対して変更を行う場合は、editDataModel( )プロシージャをコールしてください。 |
例
Oracleでインストールされた構成ドキュメント・セット間の参照状況を表示します。
SQL> select doc_name, ref_by_doc_name from ordsys.orddcm_doc_refs; ------------------------------------------------------------------------------- DOC_NAME REF_BY_DOC_NAME ------------------------------------------------------------------------------- ordcmpv.xml ordcmcmc.xml ordcmpv.xml ordcmcmd.xml ordcmsd.xml ordcman.xml ordcmsd.xml ordcmcmc.xml ordcmsd.xml ordcmcmd.xml