입력받은 string 타입의 TransferSyntaxUid를 TrasnferSyntax 타입으로 변환하고 파일의 TransferSyntax와 비교하는 방법에 대해 알아봅니다.

 

 

 

1. Fo-DICOM NuGet패키지 설치

 

Nuget 패키지 관리자를 통해 사용할 프로젝트에 패키지를 설치합니다. 

 

 

프레임워크는 .Net 6을 사용했습니다.

 

 

 

2. 소스코드

 

소스코드는 아래와 같습니다. 주석을 같이 작성하였으니 설명은 주석을 참고해 주시기 바랍니다.

 

private bool CompareDicomTransferSyntaxSample(string dcmFilePath)
{
    DicomTransferSyntax dcmTransferSyntax, inputTransferSyntax;
    //  비교할 Explicit VR Little Endian TransferSyntaxUid를 string 타입으로 지정합니다. 
    string dcmTransferSyntaxUid = "1.2.840.10008.1.2.1";
    // string 타입의 TransferSyntaxUid를 사용해 DicomUID 타입으로 변환합니다.
    DicomUID dicomUID = DicomUID.Parse(dcmTransferSyntaxUid);
    // 변환한 DicomUID 타입의 TransferSyntaxUid를 DicomTransferSyntax 타입으로 변환합니다.
    inputTransferSyntax = DicomTransferSyntax.Query(dicomUID);
    try
    {
        DicomFile dicomFile = DicomFile.Open(dcmFilePath, FileReadOption.SkipLargeTags);
        // DicomFile내의 FileMetaInfo에서 파일의 TransferSyntax를 가져옵니다.
        dcmTransferSyntax = dicomFile.FileMetaInfo.TransferSyntax;
        // 두 값을 비교해 bool 타입을 리턴합니다.
        return inputTransferSyntax == dcmTransferSyntax;
    }
    catch (Exception ex)
    {
        // DICOM 파일 형식 오류.
        return false;
    }
}

 

 

 

 

 

 

반응형

'Trunk > DICOM' 카테고리의 다른 글

[DICOM] DICOM Tag 값의 길이에 대해  (0) 2023.03.08
[DICOM] MWL: Modality Worklist  (0) 2023.02.18
[C#|FO-DICOM] DICOM 파일을 로드 해 태그 추출하기.  (0) 2022.05.03
[DCMTK] MEPG2와 프레임  (0) 2022.05.03
[DICOM] VR PN: PersonName  (0) 2021.10.19

+ Recent posts