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

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

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データ・モデル・ユーティリティ・インタフェースのファンクション、プロシージャおよびビューについて説明します。

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

関連項目:

他のDICOMアプリケーション・プログラミング・インタフェース(API)については、表3-1を参照してください。

5.1 ORD_DICOMの例を使用するためのディレクトリの定義と設定

DICOMデータ・ファイル用の具体的なディレクトリ定義と、特定のファンクションまたはプロシージャに固有のその他の詳細は、この章の各ファンクションまたはプロシージャの例を参照してください。

5.2 DICOMデータ・モデル・ユーティリティのファンクション

ORD_DICOMパッケージでは、次に示すDICOMデータ・モデル・ユーティリティのファンクションが定義されています。

5.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

5.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コンテンツから抽出されたメタデータを含む表

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

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

5.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;

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

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

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

5.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

メッセージ生成時刻

説明

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

使用上の注意

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

指定された制約ドキュメントに定義されている述語条件に対して生成された制約検証メッセージのリストを表示します。この例に示されている準拠の検証ルールは、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.

5.4.2 orddcm_constraint_names

形式

列名 データ型 説明

NAME

VARCHAR2(100)

制約名

説明

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

使用上の注意

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

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

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

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

7 rows selected.

5.4.3 orddcm_documents

形式

列名 データ型 説明

DOC_NAME

VARCHAR2(100)

ドキュメント名

DOC_TYPE

VARCHAR2(100)

ドキュメント・タイプ

CREATE_DATE

DATE

ドキュメント作成日

ISINSTALLED_BY_ORACLE

NUMBER(1)

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

説明

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

使用上の注意

このビューを問い合せる前に、データベース・セッション中に少なくとも一度は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.

5.4.4 orddcm_document_types

形式

列名 データ型 説明

DOC_TYPE

VARCHAR2(100)

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

この列には次の値が表示されます。

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

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
  • http://xmlns.oracle.com/ord/dicom/protocol_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
  • DICOM protocol document

説明

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

使用上の注意

なし。

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

DICOM_PROTOCOL         http://xmlns.oracle.com/ord/dicom/protocol_1_0                DICOM protocol 
                                                                                       document

8 rows selected.