Oracle中提供的一些相关媒体对象与过程都是在Oracle模式里去定义建立包含 ORDDicom 列的表。如果你在Oracle模式的相关操作里存在不解之处的话,你就可以浏览以下的文章对其进行了解。
本教程使用一个包含四个列的简单表:一个整数标识符 (id)、一个 ORDSYS.ORDDicom 对象 (dicom)、一个 ORDSYS.ORDImage 对象 (imageThumb) 和另一个ORDSYS.ORDDicom 对象 (anonDicom)。注意,Oracle 提供的所有多媒体对象和过程都在Oracle模式中定义。执行以下步骤:
1.在 SQL*Plus 会话中,执行以下命令:
@create_dicom_table
create_dicom_table.sql代码如下:
Java代码
setechoon; droptablemedical_image_table; createtablemedical_image_table (idintegerprimarykey, dicomordsys.orddicom, imageThumbordsys.ordimage, anonDicomordsys.orddicom); setechoon; droptablemedical_image_table; createtablemedical_image_table (idintegerprimarykey, dicomordsys.orddicom, imageThumbordsys.ordimage, anonDicomordsys.orddicom);
导入医学图像
该主题描述了如何将数据库文件系统中的医学图像加载到新创建的medical_image_table表中。注意,在大多数情况下,您希望使用 SQL*Loader 而不是本例所示的Oracle模式中定义中 ORDDicom 导入方法加载数据。
创建一个 PL/SQL 过程image_import(),该过程将把一个新行插入medical_image_table,将文件名中的 DICOM 数据导入新创建的 ORDDICOM 对象,然后将 DICOM 属性提取到元数据属性(基于默认映射文档)和 ORDDICOM 对象的 UID 属性。注意,默认映射文档ordcmmp.xml在安装期间加载。
您可以创建一个自定义映射文档,并将属性提取到单独的 XML 文档中,但该主题不在本教程的讨论范围内。
执行以下步骤:
1.在 SQL*Plus 会话中,输入以下命令:
@create_import_procedure
create_import_procedure.sql代码如下:
Java代码
--SetDataModelRepository executeordsys.ord_dicom.setDataModel(); createorreplaceprocedureimage_import (dest_idnumber,filenamevarchar2)is dcmordsys.orddicom; begin deletefrommedical_image_tablewhereid =dest_id; insertintomedical_image_table (id,dicom,imageThumb,anonDicom) values(dest_id,ordsys.orddicom (‘file’,‘IMAGEDIR’,filename,0), ordsys.ordimage.init(),ordsys.orddicom()) returningdicomintodcm; dcm.import(1); updatemedical_image_tablesetdicom= dcmwhereid=dest_id; commit; end; / showerrors; --SetDataModelRepository executeordsys.ord_dicom.setDataModel(); createorreplaceprocedureimage_import (dest_idnumber,filenamevarchar2)is dcmordsys.orddicom; begin deletefrommedical_image_tablewhereid =dest_id; insertintomedical_image_table (id,dicom,imageThumb,anonDicom) values(dest_id,ordsys.orddicom (‘file’,‘IMAGEDIR’,filename,0), ordsys.ordimage.init(),ordsys.orddicom()) returningdicomintodcm; dcm.import(1); updatemedical_image_tablesetdicom= dcmwhereid=dest_id; commit; end; / showerrors;
2.现在,您可以执行新创建的过程,以导入示例 DICOM 文件。在 SQL*Plus 会话中,输入以下命令:
Java代码
executeimage_import(1,'179.dcm'); executeimage_import(1,'179.dcm');