Oracle Multimedia provides the DICOM data model utility in the ORD_DICOM package. Oracle Multimedia DICOM also defines public views for the DICOM repository. The functions and procedures in the DICOM data model utility interface and the public views can be used by DICOM developers and administrators of the DICOM data model repository.
For administrative operations related to the Oracle Multimedia DICOM data model repository, the setDataModel( ) procedure must be called at the beginning of each database session (see the setDataModel( ) Procedure). Developers and administrators must call the setDataModel( ) procedure before calling any other DICOM methods, functions, or procedures.
The ORD_DICOM package is defined in the ordcpksp.sql
file. After installation, this file is available in the Oracle home directory at:
<ORACLE_HOME>
/ord/im/admin
(on Linux and UNIX)
<ORACLE_HOME>
\ord\im\admin
(on Windows)
This chapter describes the functions, procedures, and views in the DICOM data model utility interface, which operate on the DICOM data model repository. See Table 3-1 for information about other DICOM application programming interfaces (APIs).
This chapter contains these sections:
See the examples for each function or procedure in this chapter for specific directory definitions for DICOM data files and other details specific to that function or procedure.
The ORD_DICOM package defines these DICOM data model utility functions:
getDictionaryTag(attributeName IN VARCHAR2, definerName IN VARCHAR2 DEFAULT 'DICOM' ) RETURN VARCHAR2
Looks in the standard or private data dictionaries for the specified attribute name and definer name and returns the value of the attribute name as a hexadecimal DICOM attribute tag. This function can be used to get the hexadecimal tag value that is needed in the getMappingXpath( ) function.
The name of specified attribute in the standard or private data dictionary (for example: Patient's Name
). The maximum length of this parameter is 128 characters.
The definer name of the specified attribute in the standard or private data dictionary. The default name, DICOM
, refers to the DICOM standard. The maximum length of this parameter is 64 characters.
None.
None.
Before calling this function, call the setDataModel( ) procedure.
Call the setDataModel( ) procedure at these times:
At the beginning of each database session
Whenever the application requires the new data model changes
See the setDataModel( ) Procedure for more information.
Get the specified DICOM attribute name and return its value as a hexadecimal tag:
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
getMappingXPath(tag IN VARCHAR2, docName IN VARCHAR2 DEFAULT 'ordcmmp.xml', definerName IN VARCHAR2 DEFAULT 'DICOM' ) RETURN VARCHAR2
Returns the absolute XPath expression associated with the specified DICOM attribute tag and definer name from the specified mapping document. The XPath expression that is returned can be used to obtain values from an extracted XML metadata document.
A DICOM attribute tag from the specified mapping document, represented as an 8-character hexadecimal string (for example: 00100010
).
The name of a mapping document. The default name is ordcmmp.xml
.
The definer name of the DICOM attribute tag in the specified mapping document. The default name is DICOM
, which refers to the DICOM standard.
None.
None.
Before calling this function, call the setDataModel( ) procedure.
Call the setDataModel( ) procedure at these times:
At the beginning of each database session
Whenever the application requires the new data model changes
See the setDataModel( ) Procedure for more information.
To see a list of all the mapping documents in the data model repository, query the public view orddcm_documents.
Example 1:
Return the XPATH expression for DICOM attributes other than SEQUENCE type attributes:
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.
Example 2:
Return the XPATH expression for DICOM SEQUENCE type attributes only:
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.
where:
metadata_tab: a table containing metadata that has been extracted from the DICOM content.
The ORD_DICOM package defines this DICOM data model utility procedure:
setDataModel(modelName IN VARCHAR2 DEFAULT 'DEFAULT')
Loads the data model repository from the database into the memory structures. This procedure must be called at the beginning of each database session. It can be called again whenever the application requires the new data model changes.
The model name of the data model repository. The default name, DEFAULT
, is the only value supported in Oracle Database 11g.
None.
None.
To maximize performance, you may want to call this procedure only once during a database session.
If the data model has changed since you made the original call, and your application requires these data model changes, you can call this procedure again. Keep in mind, however, that subsequent calls to this procedure may result in changed behavior.
To use the same DICOM data model throughout a session, Oracle recommends following the call to this procedure with a COMMIT statement. Because data that is loaded by the setDataModel( ) procedure is subject to transaction semantics, the database session's copy of the data model is deleted during a rollback operation if the call to the setDataModel( ) procedure is made within the transaction that you are rolling back.
If you roll back the transaction in which you call the setDataModel( ) procedure, you may get an error message indicating that the data model is not loaded when you use the DICOM feature in the same session following the rollback operation. Call the setDataModel( ) procedure to reload the data model.
See the rollbackDataModel( ) Procedure for more information.
Load the repository from the database into memory:
exec ord_dicom.setdatamodel; select * from orddcm_documents;
This section describes these Oracle Multimedia DICOM repository public views:
See DICOM Repository Administrator Views for information about the Oracle Multimedia DICOM repository view for administrators.
Column Name | Data Type | Description |
---|---|---|
SOP_INSTANCE_UID | VARCHAR2(128 CHAR) | SOP_INSTANCE_UID of DICOM content |
RULE_NAME | VARCHAR2(64 CHAR) | Constraint rule name |
MESSAGE | VARCHAR2(1999 CHAR) | Message |
MSG_TYPE | VARCHAR2(20 CHAR) | Message type, valid values are: log , warning , or error |
MSG_TIME | TIMESTAMP | Message generation time |
This view lists the constraint messages generated during constraint validation. The public READ and DELETE access privileges are granted for this view.
This view shows the constraint validation messages that are generated for a specified user schema only.
Show the list of constraint validation messages that were generated for the predicate conditions defined in the specified constraint document. The conformance validation rule shown in this example is PatientModule, as defined in the DICOM standard.
---------------------------------------------------------------------------------------------------------- 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.
Column Name | Data Type | Description |
---|---|---|
NAME | VARCHAR2(100) | Constraint name |
This read-only view lists the constraint names. The public READ access privilege is granted for this view.
Before querying this view, call the setDataModel( ) procedure at least once during the database session. Call it again whenever the application requires the new data model changes.
See the setDataModel( ) Procedure for more information.
Show a list of the constraint names that are available after installation:
------------------------------------------------------------------------------ NAME ------------------------------------------------------------------------------ PatientModule GeneralStudyModule GeneralSeriesModule SOPCommonModule ImagePixelMacro OracleOrdDicomImage OracleOrdObject 7 rows selected.
Column Name | Data Type | Description |
---|---|---|
DOC_NAME | VARCHAR2(100) | Document name |
DOC_TYPE | VARCHAR2(100) | Document type |
CREATE_DATE | DATE | Document creation date |
ISINSTALLED_BY_ORACLE | NUMBER(1) | A value of 1 indicates that the document was installed by Oracle. A value of 0 indicates that the document was loaded by an administrator. |
This read-only view lists details of the documents stored in the repository. The public READ access privilege is granted for this view.
Before querying this view, call the setDataModel( ) procedure at least once during the database session. Call it again whenever the application requires the new data model changes.
See the setDataModel( ) Procedure for more information.
Show a list of the configuration documents in the repository, by name, type, and date of creation and indicate whether the configuration document is Oracle-defined or user-defined. This example shows details about the default Oracle-defined configuration documents that are available upon installation.
-------------------------------------------------------------------------------- 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.
Column Name | Data Type | Description |
---|---|---|
DOC_TYPE | VARCHAR2(100) | Document type code of the document type
This column contains these values: STANDARD_DICTIONARY PRIVATE_DICTIONARY CONSTRAINT MAPPING ANONYMITY PREFERENCE UID_DEFINITION STORED_TAG_LIST |
SCHEMA_URL | VARCHAR2(700) | The URL of the XML schema registered with Oracle XML DB that is associated with this document type
This column contains these values, which are listed respective to the order of the values in the DOC_TYPE column: 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) | Document type description
This column contains these values, which are listed respective to the order of the values in the DOC_TYPE column: DICOM standard data dictionary Private data dictionary Constraint document Mapping document Anonymity document Preference document DICOM UID definition document Stored tag list document |
This read-only view identifies the supported Oracle Multimedia DICOM document types. Use this view to find the list of codes for document types when inserting a new document into the Oracle Multimedia DICOM repository. The public READ access privilege is granted for this view.
None.
Show the document type, schema URL, and document type description for the Oracle-installed configuration documents:
---------------------------------------------------------------------------------------------------------- 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.