4 DICOMデータ・モデル・ユーティリティのリファレンス

Oracle Multimediaでは、ORD_DICOMパッケージにDICOMデータ・モデル・ユーティリティが用意されています。Oracle Multimedia DICOMには、DICOMリポジトリのパブリック・ビューも定義されています。

注:

DICOMのOracle Multimediaサポートは、Oracle Database 12cリリース2 (12.2)では非推奨になりました。将来のリリースではサポートされなくなる可能性があります。できるだけ早く、非推奨となった機能の使用を停止することをお薦めします。

DICOMデータ・モデル・ユーティリティ・インタフェースの関数、プロシージャおよびビューは、DICOMデータ・モデル・リポジトリのDICOM開発者および管理者が使用できます。

Oracle Multimedia DICOMデータ・モデル・リポジトリに関連した管理操作を実行するには、各データベース・セッションの始めにsetDataModel( )プロシージャをコールする必要があります(setDataModel( )プロシージャを参照してください)。開発者および管理者は、他のDICOMメソッド、関数またはプロシージャをコールする前に、setDataModel( )プロシージャをコールする必要があります。

ORD_DICOMパッケージは、ordcpksp.sqlファイルに定義されています。インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。

<ORACLE_HOME>/ord/im/admin (LinuxおよびUNIXの場合)

<ORACLE_HOME>\ord\im\admin (Windowsの場合)

この章では、DICOMデータ・モデル・リポジトリで操作を行う、DICOMデータ・モデル・ユーティリティ・インタフェースの関数、プロシージャおよびビューについて説明します。

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

関連項目:

表3-1

4.1 ORD_DICOMのディレクトリ定義と設定の例

DICOMデータ・ファイルの特定のディレクトリ定義および関数やプロシージャに固有の他の詳細は、この章の各関数またはプロシージャの例を参照してください。

4.2 DICOMデータ・モデル・ユーティリティの関数

ORD_DICOMパッケージには、次のDICOMデータ・モデル・ユーティリティの関数が定義されています。

4.2.1 getDictionaryTag( )関数

構文

getDictionaryTag(attributeName IN VARCHAR2,
                 definerName   IN VARCHAR2  DEFAULT 'DICOM')
 RETURN VARCHAR2

説明

指定された属性名および定義者名の標準またはプライベート・データ・ディクショナリを検索し、16進数のDICOM属性タグとして属性名の値を戻します。このファンクションは、getMappingXpath( )ファンクションに必要な16進数のタグ値を取得するために使用できます。

パラメータ

attributeName

標準またはプライベート・データ・ディクショナリで、指定された属性名(たとえば、Patient's Name)を指定します。このパラメータの最大長は128文字です。

definerName

標準またはプライベート・データ・ディクショナリで、指定された属性の定義者名を指定します。デフォルトの名前DICOMは、DICOM標準規格を指します。このパラメータの最大長は64文字です。

プラグマ

なし。

例外

なし。

使用上の注意

このファンクションをコールする前に、setDataModel( )プロシージャをコールする必要があります。

次の時点で、setDataModel( )プロシージャをコールします。

  • 各データベース・セッションの開始時

  • アプリケーションでデータ・モデルの新しい変更が必要になった場合

詳細は、setDataModel( )プロシージャを参照してください。

指定されたDICOM属性名を取得し、16進数タグとしてその値を戻します。

exec ord_dicom.setDataModel();
select ord_dicom.getDictionaryTag('Patient''s Name', 'DICOM') as Patient_Name 
from dual;

PATIENT_NAME
--------------------------------------------------------------------------------
00100010


select ord_dicom.getDictionaryTag('Audio Type', 'DICOM') as Audio_Type from dual;

AUDIO_TYPE
--------------------------------------------------------------------------------
50XX2000

4.2.2 getMappingXPath( )関数

構文

getMappingXPath(tag IN VARCHAR2,
                docName IN VARCHAR2  DEFAULT 'ordcmmp.xml',
                definerName IN VARCHAR2 DEFAULT 'DICOM')
 RETURN VARCHAR2

説明

指定されたマッピング・ドキュメントの指定されたDICOM属性タグおよび定義者名に関連付けられている絶対XPath式を戻します。戻されたXPath式を使用して、抽出されたXMLメタデータ・ドキュメントから値を取得できます。

パラメータ

tag

8文字の16進数文字列で表される(例: 00100010)、指定されたマッピング・ドキュメントのDICOM属性タグを指定します。

docName

マッピング・ドキュメントの名前を指定します。デフォルトの名前はordcmmp.xmlです。

definerName

指定されたマッピング・ドキュメントのDICOM属性タグの定義者名を指定します。デフォルトの名前は、DICOM標準規格を指すDICOMです。

プラグマ

なし。

例外

なし。

使用上の注意

このファンクションをコールする前に、setDataModel( )プロシージャをコールする必要があります。

次の時点で、setDataModel( )プロシージャをコールします。

  • 各データベース・セッションの開始時

  • アプリケーションでデータ・モデルの新しい変更が必要になった場合

詳細は、setDataModel( )プロシージャを参照してください。

データ・モデル・リポジトリのすべてのマッピング・ドキュメントのリストを参照するには、パブリック・ビューorddcm_documentsを問い合せます。

例1:

SEQUENCEタイプの属性以外のDICOM属性のXPATH式を戻します。

    col map_xpath new_value xpath
    exec ord_dicom.setDataModel();
    select ord_dicom.getMappingXPath('00100010') map_xpath from dual;
 
    MAP_XPATH
    ----------------------------------------------------------------------------
    /DICOM_OBJECT/PERSON_NAME[@tag="00100010" and @definer="DICOM"]/VALUE/text()
 
    1 row selected.
 
    ------------- extract attribute from a document
    select '&xpath' as map_xpath from dual;
    select xmlquery(
        'declare default element namespace
        "http://xmlns.oracle.com/ord/dicom/metadata_1_0"; &xpath'
        passing t.metadata returning content) as
        Patient_Name from metadata_tab t where id=1;
 
    PATIENT_NAME
    --------------------------------------------------------------------------------
    Anonymous
 
    1 row selected.

例2:

DICOM SEQUENCEタイプの属性に対してのみXPATH式を戻します。

    col map_xpath new_value xpath
    exec ord_dicom.setDataModel();
    select ord_dicom.getMappingXPath('00082218') map_xpath from dual;
 
    MAP_XPATH
    ------------------------------------------------------------
    /DICOM_OBJECT/SEQUENCE[@tag="00082218" and @definer="DICOM"]
 
    1 row selected.
 
    ------------- extract attribute from a document
    set long 1000
    select '&xpath' as map_xpath from dual;
    select xmlquery(
        'declare default element namespace
         "http://xmlns.oracle.com/ord/dicom/metadata_1_0"; &xpath'
        passing t.metadata returning content) as
    Anatomic_Region from metadata_tab t where id=2;
 
    ANATOMIC_REGION
    --------------------------------------------------------------------------------
    <SEQUENCE xmlns="http://xmlns.oracle.com/ord/dicom/metadata_1_0"
    tag="00082218"
    definer="DICOM" name="Anatomic Region Sequence" offset="590"
    length="52"><ITEM number="1"><SHORT_STRING tag="00080100"
    definer="DICOM" name="Code Value" offset=
    "606" length="8">T-11170</SHORT_STRING><SHORT_STRING tag="00080102"
    definer="DICOM" name="Coding Scheme Designator" offset="622"
    length="4">SNM3</SHORT_STRING><LONG_STRING tag="00080104" definer="DICOM"
    name="Code Meaning" offset="634" 
    length="8">Maxilla</LONG_STRING></ITEM></SEQUENCE>
 
 
    1 row selected.

ここで、

  • metadata_tab: DICOMコンテンツから抽出されたメタデータを含む表

4.3 DICOMデータ・モデル・ユーティリティのプロシージャ

ORD_DICOMパッケージには、次のDICOMデータ・モデル・ユーティリティのプロシージャが定義されています。

4.3.1 setDataModel( )プロシージャ

構文

setDataModel(modelName IN VARCHAR2 DEFAULT 'DEFAULT')

説明

データ・モデル・リポジトリをデータベースからメモリー構造にロードします。このプロシージャは、各データベース・セッションの開始時にコールする必要があります。また、アプリケーションでデータ・モデルの新しい変更が必要な場合にも再度コールできます。

パラメータ

modelName

データ・モデル・リポジトリのモデル名を指定します。デフォルトの名前DEFAULTが、現在サポートされている唯一の値です。

プラグマ

なし。

例外

なし。

使用上の注意

パフォーマンスを最大化するには、データベース・セッション中にこのプロシージャを1回のみコールしてください。

最初のコールの後にデータ・モデルが変化し、アプリケーションでそのデータ・モデルの変更内容が必要になった場合は、このプロシージャを再度コールできます。ただし、後からこのプロシージャをコールすると、動作が変わる可能性があることに注意してください。

セッション全体で同じDICOMデータ・モデルを使用する場合は、このプロシージャへのコールの後にCOMMIT文を使用することをお薦めします。setDataModel( )プロシージャによってロードされるデータはトランザクション・セマンティクスの対象となるため、setDataModel( )プロシージャへのコールがロールバック中のトランザクション内で行われる場合、データ・モデルのデータベース・セッションのコピーはロールバック操作中に削除されます。

setDataModel( )プロシージャをコールするトランザクションをロールバックする場合、ロールバック操作に続く同一セッション内でDICOM機能を使用すると、データ・モデルがロードされていないことを示すエラー・メッセージが発生する場合があります。setDataModel( )プロシージャをコールして、データ・モデルをリロードします。

詳細は、rollbackDataModel( )プロシージャを参照してください。

リポジトリをデータベースからメモリーにロードします。

   exec ord_dicom.setdatamodel;
   select * from orddcm_documents;

4.4 DICOMリポジトリのパブリック・ビュー

この項では、次のOracle Multimedia DICOMリポジトリのパブリック・ビューについて説明します。

管理者用のOracle Multimedia DICOMリポジトリ・ビューの詳細は、「DICOMリポジトリの管理者用ビュー」を参照してください。

4.4.1 orddcm_conformance_vld_msgs

構文

列名 データ型 説明

SOP_INSTANCE_UID

VARCHAR2(128 CHAR)

DICOMコンテンツのSOP_INSTANCE_UID

RULE_NAME

VARCHAR2(64 CHAR)

制約ルール名

MESSAGE

VARCHAR2(1999 CHAR)

メッセージ

MSG_TYPE

VARCHAR2(20 CHAR)

メッセージのタイプ(有効な値は、logwarningまたはerrorです)

MSG_TIME

TIMESTAMP

メッセージ生成時刻

説明

このビューには、制約の検証中に生成された制約メッセージがリストされます。このビューには、パブリックの読取りおよび削除のアクセス権限が付与されています。

使用上の注意

このビューには、指定されたユーザー・スキーマに対してのみ生成された制約検証メッセージが表示されます。

指定された制約ドキュメントに定義されている述語条件に対して生成された制約検証メッセージのリストを表示します。この例に示されている準拠の検証ルールは、DICOM標準規格に定義されているように、PatientModuleです。

----------------------------------------------------------------------------------------------------------
SOP_INSTANCE_UID        RULE_NAME            MESSAGE                MSG_TYPE         MSG_TIME             
----------------------------------------------------------------------------------------------------------
1.2.840.114346.         PatientModule        Validation error:      log              01-MAR-07
3384726461.899958945.                         missing mandatory                       01.40.21.158337 PM
2180235641.3197827030                         attribute for 
                                              patient module


1.2.840.114346.         PatientModule        Warning:               warning          01-MAR-07
3384726461.899958945.                         validation failure                      01.40.21.168322 PM
2180235641.3197827030


2 rows selected.

4.4.2 orddcm_constraint_names

構文

列名 データ型 説明

NAME

VARCHAR2(100)

制約名

説明

この読取り専用のビューには、制約名がリストされます。このビューには、パブリックの読取りアクセス権限が付与されています。

使用上の注意

このビューを問い合せる前に、データベース・セッション中に少なくとも一度はsetDataModel( )プロシージャをコールしてください。アプリケーションでデータ・モデルの新しい変更が必要になった場合は、再度コールしてください。

詳細は、setDataModel( )プロシージャを参照してください。

インストール後に使用可能な制約名のリストを表示します。

------------------------------------------------------------------------------
NAME
------------------------------------------------------------------------------
PatientModule
GeneralStudyModule
GeneralSeriesModule
SOPCommonModule
ImagePixelMacro
OracleOrdDicomImage
OracleOrdObject

7 rows selected.

4.4.3 orddcm_documents

構文

列名 データ型 説明

DOC_NAME

VARCHAR2(100)

ドキュメント名

DOC_TYPE

VARCHAR2(100)

ドキュメント・タイプ

CREATE_DATE

DATE

ドキュメント作成日

ISINSTALLED_BY_ORACLE

NUMBER(1)

1の値は、ドキュメントがOracleによってインストールされたことを示します。0の値は、ドキュメントが管理者によってロードされたことを示します。

説明

この読取り専用のビューには、リポジトリに格納されているドキュメントの詳細がリストされます。このビューには、パブリックの読取りアクセス権限が付与されています。

使用上の注意

このビューを問い合せる前に、データベース・セッション中に少なくとも一度はsetDataModel( )プロシージャをコールしてください。アプリケーションでデータ・モデルの新しい変更が必要になった場合は、再度コールしてください。

詳細は、setDataModel( )プロシージャを参照してください。

リポジトリの構成ドキュメントのリストを、名前別、タイプ別および作成日別に表示し、構成ドキュメントがOracle定義かユーザー定義かを表示します。この例では、インストール時に使用可能なOracle定義のデフォルトの構成ドキュメントの詳細を示します。

--------------------------------------------------------------------------------
DOC_NAME          DOC_TYPE               CREATE_DA        INSTALLED_BY_ORACLE   
--------------------------------------------------------------------------------
ordcmpv.xml       PRIVATE_DICTIONARY     04-FEB-09        1
ordcmmp.xml       MAPPING                04-FEB-09        1
ordcman.xml       ANONYMITY              04-FEB-09        1
ordcmpf.xml       PREFERENCE             04-FEB-09        1
ordcmui.xml       UID_DEFINITION         04-FEB-09        1
ordcmcmc.xml      CONSTRAINT             04-FEB-09        1
ordcmcmd.xml      CONSTRAINT             04-FEB-09        1
ordcmct.xml       CONSTRAINT             04-FEB-09        1
ordcmsd.xml       STANDARD_DICTIONARY    04-FEB-09        1

9 rows selected.

4.4.4 orddcm_document_types

構文

列名 データ型 説明

DOC_TYPE

VARCHAR2(100)

ドキュメント・タイプのドキュメント・タイプ・コード

この列には次の値が含まれます。

  • STANDARD_DICTIONARY
  • PRIVATE_DICTIONARY
  • CONSTRAINT
  • MAPPING
  • ANONYMITY
  • PREFERENCE
  • UID_DEFINITION
  • STORED_TAG_LIST

SCHEMA_URL

VARCHAR2(700)

このドキュメント・タイプに関連付けられているOracle XML DBに登録されているXMLスキーマのURL

この列には次の値が含まれます。これらの値は、DOC_TYPE列の値の順にリストされています。

  • http://xmlns.oracle.com/ord/dicom/standardDictionary_1_0
  • http://xmlns.oracle.com/ord/dicom/privateDictionary_1_0
  • http://xmlns.oracle.com/ord/dicom/constraint_1_0
  • http://xmlns.oracle.com/ord/dicom/mapping_1_0
  • http://xmlns.oracle.com/ord/dicom/anonymity_1_0
  • http://xmlns.oracle.com/ord/dicom/preference_1_0
  • http://xmlns.oracle.com/ord/dicom/UIDdefinition_1_0
  • http://xmlns.oracle.com/ord/dicom/attributeTag_1_0

DOC_TYPE_DESC

VARCHAR2(4000)

ドキュメント・タイプの説明

この列には次の値が含まれます。これらの値は、DOC_TYPE列の値の順にリストされています。

  • DICOM standard data dictionary
  • Private data dictionary
  • Constraint document
  • Mapping document
  • Anonymity document
  • Preference document
  • DICOM UID definition document
  • Stored tag list document

説明

この読取り専用のビューには、サポートされているOracle Multimedia DICOMのドキュメント・タイプが示されます。このビューを使用して、Oracle Multimedia DICOMリポジトリに新しいドキュメントを挿入する場合のドキュメント・タイプのコードのリストを検索します。このビューには、パブリックの読取りアクセス権限が付与されています。

使用上の注意

なし。

Oracleでインストールされた構成ドキュメントのドキュメント・タイプ、スキーマURLおよびドキュメント・タイプの説明を表示します。

----------------------------------------------------------------------------------------------------------
DOC_TYPE               SCHEMA_URL                                                    DOC_TYPE_DSC
----------------------------------------------------------------------------------------------------------
STANDARD_DICTIONARY    http://xmlns.oracle.com/ord/dicom/standardDictionary_1_0      DICOM Standard
                                                                                       Data Dictionary

PRIVATE_DICTIONARY     http://xmlns.oracle.com/ord/dicom/privateDictionary_1_0       Private Data
                                                                                       Dictionary

MAPPING                http://xmlns.oracle.com/ord/dicom/mapping_1_0                 Mapping document

ANONYMITY              http://xmlns.oracle.com/ord/dicom/anonymity_1_0               Anonymity document

PREFERENCE             http://xmlns.oracle.com/ord/dicom/preference_1_0              Preference document

UID_DEFINITION         http://xmlns.oracle.com/ord/dicom/UIDdefinition_1_0           DICOM UID
                                                                                       definition document

CONSTRAINT             http://xmlns.oracle.com/ord/dicom/constraint_1_0              Constraint document

STORED_TAG_LIST        http://xmlns.oracle.com/ord/dicom/attributeTag_1_0            Stored tag list
                                                                                       document


8 rows selected.