如何使用 GroupDocs.Signature for Java 對具有二維碼和元資料的 DICOM 影像進行簽名

介紹

在快速發展的數位醫療領域,安全地管理病患資料至關重要。本教學將指導您使用 GroupDocs.Signature for Java 實現一個強大的解決方案,使用二維碼和元資料對醫學數位成像和通訊 (DICOM) 影像進行簽署。這些功能透過將重要資訊直接嵌入醫學影像中,確保了真實性、增強了可追溯性並保持了合規性。

您將學到什麼:

  • 如何將 GroupDocs.Signature for Java 整合到您的專案中。
  • 使用二維碼簽署 DICOM 影像的過程。
  • 新增 XMP 元資料以增強文件安全性。
  • 檢索、驗證和搜尋 DICOM 檔案中的簽名。
  • 產生已簽署的 DICOM 影像的預覽。

讓我們開始吧!在開始之前,請確保您已準備好一切所需,以便順利完成學習。

先決條件

為了有效實現 GroupDocs.Signature 功能,請確保滿足以下先決條件:

所需的庫和依賴項

  • GroupDocs.Signature for Java:您需要此庫的 23.12 或更高版本。

環境設定要求

  • Java 開發工具包 (JDK):請確保您的系統上安裝了 JDK。
  • 整合開發環境:使用整合開發環境,如 IntelliJ IDEA 或 Eclipse。

知識前提

基本了解:

  • Java程式設計和物件導向原理。
  • Maven 或 Gradle 建置工具用於依賴管理。

為 Java 設定 GroupDocs.Signature

要開始使用 GroupDocs.Signature,您需要將其新增為專案的依賴項。以下是使用不同建置工具執行此操作的方法:

Maven

將以下程式碼片段新增至您的 pom.xml 文件:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Gradle

將其包含在您的 build.gradle 文件:

implementation 'com.groupdocs:groupdocs-signature:23.12'

直接下載

或者,您可以從 GroupDocs.Signature Java 版本.

許可證取得步驟

  1. 免費試用:透過限時免費試用來測試其功能。
  2. 臨時執照:取得臨時許可證以探索全部功能。
  3. 購買:如果您需要長期訪問,請購買訂閱。

基本初始化和設定

若要初始化 GroupDocs.Signature,請建立一個實例 Signature 班級:

import com.groupdocs.signature.Signature;

// 使用 DICOM 檔案的路徑初始化簽名對象
Signature signature = new Signature(filePath);

實施指南

使用二維碼和元資料對 DICOM 影像進行簽名

概述

此功能可讓您使用二維碼簽署 DICOM 影像並新增 XMP 元數據,從而增強文件安全性。

步驟 1:設定二維碼簽名選項

import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.signatures.QrCodeSignOptions;

Padding padding = new Padding();
padding.setRight(5);
padding.setLeft(5);

QrCodeSignOptions options = new QrCodeSignOptions("Patient #36363393. R: No-Issues");
options.setAllPages(true);
options.setWidth(100);
options.setHeight(100);
options.setVerticalAlignment(VerticalAlignment.Bottom);
options.setHorizontalAlignment(HorizontalAlignment.Right);
options.setMargin(padding);

在這裡,我們配置二維碼在 DICOM 影像上的外觀和位置。

步驟 2:新增 XMP 元數據

import com.groupdocs.signature.options.saveoptions.imagessaveoptions.DicomSaveOptions;
import com.groupdocs.signature.options.saveoptions.imagessaveoptions.DicomXmpEntry;
import com.groupdocs.signature.options.saveoptions.imagessaveoptions.DicomXmpType;

DicomSaveOptions dicomSaveOptions = new DicomSaveOptions();
List<DicomXmpEntry> xmpEntries = new ArrayList<>();
xmpEntries.add(new DicomXmpEntry(DicomXmpType.PatientName, "Patient #4"));
dicomSaveOptions.setXmpEntries(xmpEntries);

此程式碼片段將元資料新增至 DICOM 文件,嵌入額外的病患資訊。

步驟3:簽署文件

String outputFilePath = YOUR_OUTPUT_DIRECTORY + "/SignDicomImageAdvanced/" + fileName;
signature.sign(outputFilePath, options, dicomSaveOptions);

sign 方法將二維碼和元資料寫入您的 DICOM 文件,並將其儲存到指定位置。

檢索已簽署的 DICOM 影像資訊

概述

從已簽署的 DICOM 影像中提取 XMP 元資料以用於驗證或稽核目的。

import com.groupdocs.signature.domain.IDocumentInfo;
import com.groupdocs.signature.domain.signatures.MetadataSignature;

IDocumentInfo documentInfo = signature.getDocumentInfo();
for (MetadataSignature item : documentInfo.getMetadataSignatures()) {
    System.out.println(item.toString());
}

此程式碼檢索並列印與 DICOM 檔案相關的所有元資料簽章。

驗證已簽署的 DICOM

概述

驗證簽署的 DICOM 影像中是否存在二維碼簽名以確認其真實性。

import com.groupdocs.signature.domain.VerificationResult;
import com.groupdocs.signature.options.verify.QrCodeVerifyOptions;
import com.groupdocs.signature.domain.enums.TextMatchType;

QrCodeVerifyOptions verifyOptions = new QrCodeVerifyOptions();
verifyOptions.setAllPages(true);
verifyOptions.setText("Patient #36363393");
verifyOptions.setMatchType(TextMatchType.Contains);

VerificationResult result = signature.verify(verifyOptions);
if (result.isValid()) {
    System.out.println(filePath + " has successfully verified signatures!");
} else {
    System.out.println(filePath + " failed verification process.");
}

此驗證步驟可確保二維碼符合預期標準,從而確認文件的完整性。

在簽署的 DICOM 中搜尋簽名

概述

找到簽署的 DICOM 影像中的所有二維碼簽名以進行審查或審核。

import com.groupdocs.signature.domain.signatures.QrCodeSignature;
import java.util.List;

List<QrCodeSignature> signatures = signature.search(QrCodeSignature.class);
for (QrCodeSignature qrCodeSignature : signatures) {
    System.out.println("QRCode signature found at page " +
        qrCodeSignature.getPageNumber() + ": " +
        qrCodeSignature.getEncodeType().getTypeName() + ": " +
        qrCodeSignature.getText());
}

此功能可用於掃描文件中的所有二維碼簽名,提供全面的可視性。

產生簽名 DICOM 的預覽

概述

為簽署的 DICOM 影像的每一頁建立預覽,無需開啟整個文件即可進行快速目視檢查。

import com.groupdocs.signature.options.PreviewOptions;
import java.io.File;
import java.io.FileOutputStream;
import java.nio.file.Paths;

PreviewOptions previewOption = new PreviewOptions(pageNumber -> {
    try {
        String pageFilePath = YOUR_OUTPUT_DIRECTORY + "/SignDicomImageAdvanced/image-" + pageNumber + ".jpg";
        return new FileOutputStream(Paths.get(pageFilePath).toFile());
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }
});

signature.generatePreview(previewOption);

此程式碼片段為每個頁面產生圖像預覽,這對於快速驗證或共享很有用。

實際應用

GroupDocs.Signature for Java 提供了幾個實際應用程式:

  • 醫學影像:使用二維碼和元資料安全地簽署和管理病患 DICOM 影像。
  • 法律文件管理:提高法律訴訟中的文件真實性和合規性。
  • 金融服務:在敏感的財務文件上實施安全電子簽名。