一. 如下图: Dicom数据集结构
示例使用: (1)开发工具: qt5.14.2; 注意代码中的日志打印qDebug,(2)代码本身与QT无关方便移植
DicomFile *pData = new DicomFile;
pData->read_diconde("D://10_work//09_nengyu//20_DICONDE//w001.DICONDE");
//1280: dicode文件宽, 1024是行,注意log日志有
QImage image = QImage(pData->m_p_buf_pixel_data,1280,1024,QImage::Format_Grayscale16);
二.编码:常量部份
#ifndef GLOBAL_CONST_H #define GLOBAL_CONST_H ///常量↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ #define DATA_LENGTH_256 256 #define BOOL_FALSE 0 #define BOOL_TRUE 1 #define INT_0 0 #define INT_1 1 #define INT_16 16 #define INT_30 30 #define INT_100 100 #define INT_255 255 #define INT_256 256 #define INT_700 700 #define INT_1000 1000 #define INT_1024 1024 #define STRING_EMPTY "" #define PATH_D "D:\DIYE\" ///常量↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ///协议文档:<>↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ #define DICOM_D_0x44 0x44 //D:DICOM文件格式是以DICM打头的 #define DICOM_I_0x49 0x49 //I:DICOM文件格式是以DICM打头的 #define DICOM_C_0x43 0x43 //C:DICOM文件格式是以DICM打头的 #define DICOM_M_0x4D 0x4D //M:DICOM文件格式是以DICM打头的 #define DICOM_TAG_0200_0000 "dicom_tag_0200_0000" #define DICOM_KEYWORD_0200_0000 "file_meta_information_group_length" #define DICOM_TAG_0200_0001 "dicom_tag_0200_0001" #define DICOM_KEYWORD_0200_0001 "private_information_creator_uid" #define DICOM_TAG_0200_0100 "dicom_tag_0200_0100" #define DICOM_KEYWORD_0200_0100 "file_meta_information_version" #define DICOM_TAG_0200_0200 "dicom_tag_0200_0200" #define DICOM_KEYWORD_0200_0200 "media_storage_sop_class_uid" #define DICOM_TAG_0200_0201 "dicom_tag_0200_0201" #define DICOM_KEYWORD_0200_0201 "private_information" #define DICOM_TAG_0200_0300 "dicom_tag_0200_0300" #define DICOM_KEYWORD_0200_0300 "media_storage_sop_instance_uid" #define DICOM_TAG_0200_1000 "dicom_tag_0200_1000" #define DICOM_KEYWORD_0200_1000 "transfer_syntax_uid" #define DICOM_TAG_0200_1200 "dicom_tag_0200_1200" #define DICOM_KEYWORD_0200_1200 "implementation_class_uid" #define DICOM_TAG_0200_1300 "dicom_tag_0200_1300" #define DICOM_KEYWORD_0200_1300 "implementation_version_name" #define DICOM_TAG_0200_1600 "dicom_tag_0200_1600" #define DICOM_KEYWORD_0200_1600 "source_application_entity_title" #define DICOM_TAG_0800_0000 "dicom_tag_0800_0000" #define DICOM_KEYWORD_0800_0000 "" //空注释 #define DICOM_TAG_0800_0500 "dicom_tag_0800_0500" #define DICOM_KEYWORD_0800_0500 "specific_character_set" #define DICOM_TAG_0800_0800 "dicom_tag_0800_0800" #define DICOM_KEYWORD_0800_0800 "image_type" #define DICOM_TAG_0800_1200 "dicom_tag_0800_1200" #define DICOM_KEYWORD_0800_1200 "instance_creation_date" #define DICOM_TAG_0800_1300 "dicom_tag_0800_1300" #define DICOM_KEYWORD_0800_1300 "instance_creation_time" #define DICOM_TAG_0800_1600 "dicom_tag_0800_1600" #define DICOM_KEYWORD_0800_1600 "sop_class_uid" #define DICOM_TAG_0800_1800 "dicom_tag_0800_1800" #define DICOM_KEYWORD_0800_1800 "sop_instance_uid" #define DICOM_TAG_0800_2000 "dicom_tag_0800_2000" #define DICOM_KEYWORD_0800_2000 "study_date" #define DICOM_TAG_0800_2100 "dicom_tag_0800_2100" #define DICOM_KEYWORD_0800_2100 "series_date" #define DICOM_TAG_0800_2200 "dicom_tag_0800_2200" #define DICOM_KEYWORD_0800_2200 "acquisition_date" #define DICOM_TAG_0800_2300 "dicom_tag_0800_2300" #define DICOM_KEYWORD_0800_2300 "content_date" #define DICOM_TAG_0800_2A00 "dicom_tag_0800_2A00" #define DICOM_KEYWORD_0800_2A00 "acquisition_dateTime" #define DICOM_TAG_0800_3000 "dicom_tag_0800_3000" #define DICOM_KEYWORD_0800_3000 "study_time" #define DICOM_TAG_0800_3100 "dicom_tag_0800_3100" #define DICOM_KEYWORD_0800_3100 "series_time" #define DICOM_TAG_0800_3200 "dicom_tag_0800_3200" #define DICOM_KEYWORD_0800_3200 "acquisition_time" #define DICOM_TAG_0800_3300 "dicom_tag_0800_3300" #define DICOM_KEYWORD_0800_3300 "content_time" #define DICOM_TAG_0800_6000 "dicom_tag_0800_6000" #define DICOM_KEYWORD_0800_6000 "modality" #define DICOM_TAG_0800_6100 "dicom_tag_0800_6100" #define DICOM_KEYWORD_0800_6100 "modality_in_study" #define DICOM_TAG_0800_6400 "dicom_tag_0800_6400" #define DICOM_KEYWORD_0800_6400 "conversion_type" #define DICOM_TAG_0800_0102 "dicom_tag_0800_0102" #define DICOM_KEYWORD_0800_0102 "timezone_offset_from_utc" #define DICOM_TAG_0800_3E10 "dicom_tag_0800_3E10" #define DICOM_KEYWORD_0800_3E10 "" //空注释 #define DICOM_TAG_1000_1000 "dicom_tag_1000_1000" #define DICOM_KEYWORD_1000_1000 "patient_name" #define DICOM_TAG_1000_2000 "dicom_tag_1000_2000" #define DICOM_KEYWORD_1000_2000 "patient_id" #define DICOM_TAG_1800_1410 "dicom_tag_1800_1410" #define DICOM_KEYWORD_1800_1410 "time_of_secondary_capture" #define DICOM_TAG_1800_5010 "dicom_tag_1800_5010" #define DICOM_KEYWORD_1800_5010 "spatial_resolution" #define DICOM_TAG_1800_0213 "dicom_tag_1800_0213" #define DICOM_KEYWORD_1800_0213 "scan_length" #define DICOM_TAG_2000_0D00 "dicom_tag_2000_0D00" #define DICOM_KEYWORD_2000_0D00 "study_instance_uid" #define DICOM_TAG_2000_0E00 "dicom_tag_2000_0E00" #define DICOM_KEYWORD_2000_0E00 "series_instance_uid" #define DICOM_TAG_2000_1000 "dicom_tag_2000_1000" #define DICOM_KEYWORD_2000_1000 "study_id" #define DICOM_TAG_2000_1100 "dicom_tag_2000_1100" #define DICOM_KEYWORD_2000_1100 "series_number" #define DICOM_TAG_2000_1300 "dicom_tag_2000_1300" #define DICOM_KEYWORD_2000_1300 "instance_number" #define DICOM_TAG_2800_0200 "dicom_tag_2800_0200" #define DICOM_KEYWORD_2800_0200 "samples_per_pixel" #define DICOM_TAG_2800_0400 "dicom_tag_2800_0400" #define DICOM_KEYWORD_2800_0400 "photometric_interpretation" #define DICOM_TAG_2800_0800 "dicom_tag_2800_0800" #define DICOM_KEYWORD_2800_0800 "number_of_frames" #define DICOM_TAG_2800_0600 "dicom_tag_2800_0600" #define DICOM_KEYWORD_2800_0600 "planar_configuration" #define DICOM_TAG_2800_1000 "dicom_tag_2800_1000" #define DICOM_KEYWORD_2800_1000 "rows" #define DICOM_TAG_2800_1100 "dicom_tag_2800_1100" #define DICOM_KEYWORD_2800_1100 "columns" #define DICOM_TAG_2800_3000 "dicom_tag_2800_3000" #define DICOM_KEYWORD_2800_3000 "pixel_spacing" #define DICOM_TAG_2800_0001 "dicom_tag_2800_0001" #define DICOM_KEYWORD_2800_0001 "" //空注释 #define DICOM_TAG_2800_0101 "dicom_tag_2800_0101" #define DICOM_KEYWORD_2800_0101 "" //空注释 #define DICOM_TAG_2800_0201 "dicom_tag_2800_0201" #define DICOM_KEYWORD_2800_0201 "high_bit" #define DICOM_TAG_2800_0301 "dicom_tag_2800_0301" #define DICOM_KEYWORD_2800_0301 "pixel_representation" #define DICOM_TAG_2800_5010 "dicom_tag_2800_5010" #define DICOM_KEYWORD_2800_5010 "window_center" #define DICOM_TAG_2800_5110 "dicom_tag_2800_5110" #define DICOM_KEYWORD_2800_5110 "window_width" #define DICOM_TAG_2800_1221 "dicom_tag_2800_1221" #define DICOM_KEYWORD_2800_1221 "lossy_image_compression_radio" #define DICOM_TAG_2900_1010 "dicom_tag_2900_1010" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_1010 "" #define DICOM_TAG_2900_1110 "dicom_tag_2900_1110" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_1110 "" #define DICOM_TAG_2900_1210 "dicom_tag_2900_1210" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_1210 "" #define DICOM_TAG_2900_1310 "dicom_tag_2900_1310" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_1310 "" #define DICOM_TAG_2900_1410 "dicom_tag_2900_1410" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_1410 "" #define DICOM_TAG_2900_2410 "dicom_tag_2900_2410" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_2410 "" #define DICOM_TAG_2900_2510 "dicom_tag_2900_2510" //整个文档没有找到0029组号 #define DICOM_KEYWORD_2900_2510 "" #define DICOM_TAG_7000_1A03 "dicom_tag_7000_1A03" #define DICOM_KEYWORD_7000_1A03 "Fiducial_uid" #define DICOM_TAG_0A30_2B02 "dicom_tag_0A30_2B02" #define DICOM_KEYWORD_0A30_2B02 "source_strength" #define DICOM_TAG_0050_1000 "dicom_tag_0050_1000" //整个文档没有找到0029组号 #define DICOM_KEYWORD_0050_1000 "" #define DICOM_TAG_0050_0030 "dicom_tag_0050_0030" //整个文档没有找到0029组号 #define DICOM_KEYWORD_0050_0030 "" #define DICOM_TAG_E07F_1000 "dicom_tag_E07F_1000" #define DICOM_KEYWORD_E07F_1000 "pixel_data" ///协议文档:< >↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ #endif // GLOBAL_CONST_H
三.编码:DicomFile.h
#ifndef DICOMFILE_H #define DICOMFILE_H #include#include #include
四.编码DicomFile.cpp
#include "dicomfile.h"
DicomFile::DicomFile(QObject *parent) : QObject(parent),m_diconde_file_byte_count(0)
,m_is_tag_e07f_1000(false),m_pixel_data_length(0),m_is_tag_rows(false),m_rows(0)
,m_is_tag_columns(false),m_columns(0),m_p_buf_pixel_data(nullptr)
{
m_f_map.clear();
m_f_map.insert(std::make_pair(DICOM_TAG_0200_0000,dicom_tag_0200_0000));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_0001,dicom_tag_0200_0001));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_0100,dicom_tag_0200_0100));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_0200,dicom_tag_0200_0200));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_0201,dicom_tag_0200_0201));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_0300,dicom_tag_0200_0300));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_1000,dicom_tag_0200_1000));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_1200,dicom_tag_0200_1200));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_1300,dicom_tag_0200_1300));
m_f_map.insert(std::make_pair(DICOM_TAG_0200_1600,dicom_tag_0200_1600));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_0000,dicom_tag_0800_0000));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_0500,dicom_tag_0800_0500));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_0800,dicom_tag_0800_0800));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_1200,dicom_tag_0800_1200));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_1300,dicom_tag_0800_1300));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_1600,dicom_tag_0800_1600));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_1800,dicom_tag_0800_1800));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_2000,dicom_tag_0800_2000));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_2100,dicom_tag_0800_2100));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_2200,dicom_tag_0800_2200));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_2300,dicom_tag_0800_2300));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_2A00,dicom_tag_0800_2A00));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_3000,dicom_tag_0800_3000));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_3100,dicom_tag_0800_3100));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_3200,dicom_tag_0800_3200));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_3300,dicom_tag_0800_3300));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_6000,dicom_tag_0800_6000));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_6100,dicom_tag_0800_6100));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_6400,dicom_tag_0800_6400));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_0102,dicom_tag_0800_0102));
m_f_map.insert(std::make_pair(DICOM_TAG_0800_3E10,dicom_tag_0800_3E10));
m_f_map.insert(std::make_pair(DICOM_TAG_1000_1000,dicom_tag_1000_1000));
m_f_map.insert(std::make_pair(DICOM_TAG_1000_2000,dicom_tag_1000_2000));
m_f_map.insert(std::make_pair(DICOM_TAG_1800_1410,dicom_tag_1800_1410));
m_f_map.insert(std::make_pair(DICOM_TAG_1800_5010,dicom_tag_1800_5010));
m_f_map.insert(std::make_pair(DICOM_TAG_1800_0213,dicom_tag_1800_0213));
m_f_map.insert(std::make_pair(DICOM_TAG_2000_0D00,dicom_tag_2000_0D00));
m_f_map.insert(std::make_pair(DICOM_TAG_2000_0E00,dicom_tag_2000_0E00));
m_f_map.insert(std::make_pair(DICOM_TAG_2000_1000,dicom_tag_2000_1000));
m_f_map.insert(std::make_pair(DICOM_TAG_2000_1100,dicom_tag_2000_1100));
m_f_map.insert(std::make_pair(DICOM_TAG_2000_1300,dicom_tag_2000_1300));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0200,dicom_tag_2800_0200));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0400,dicom_tag_2800_0400));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0600,dicom_tag_2800_0600));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0800,dicom_tag_2800_0800));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_1000,dicom_tag_2800_1000));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_1100,dicom_tag_2800_1100));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_3000,dicom_tag_2800_3000));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0001,dicom_tag_2800_0001));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0101,dicom_tag_2800_0101));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0201,dicom_tag_2800_0201));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_0301,dicom_tag_2800_0301));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_5010,dicom_tag_2800_5010));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_5110,dicom_tag_2800_5110));
m_f_map.insert(std::make_pair(DICOM_TAG_2800_1221,dicom_tag_2800_1221));
m_f_map.insert(std::make_pair(DICOM_TAG_2900_1010,dicom_tag_2900_1010)); //???
m_f_map.insert(std::make_pair(DICOM_TAG_2900_1110,dicom_tag_2900_1110));
m_f_map.insert(std::make_pair(DICOM_TAG_2900_1210,dicom_tag_2900_1210));
m_f_map.insert(std::make_pair(DICOM_TAG_2900_1310,dicom_tag_2900_1310));
m_f_map.insert(std::make_pair(DICOM_TAG_2900_1410,dicom_tag_2900_1410));
m_f_map.insert(std::make_pair(DICOM_TAG_2900_2410,dicom_tag_2900_2410));
m_f_map.insert(std::make_pair(DICOM_TAG_2900_2510,dicom_tag_2900_2510));
m_f_map.insert(std::make_pair(DICOM_TAG_7000_1A03,dicom_tag_7000_1A03));
m_f_map.insert(std::make_pair(DICOM_TAG_0A30_2B02,dicom_tag_0A30_2B02));
m_f_map.insert(std::make_pair(DICOM_TAG_0050_1000,dicom_tag_0050_1000));
m_f_map.insert(std::make_pair(DICOM_TAG_0050_0030,dicom_tag_0050_0030));
m_f_map.insert(std::make_pair(DICOM_TAG_E07F_1000,dicom_tag_E07F_1000)); //图像数据TAG
}
bool DicomFile::dicom_tag_E07F_1000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
p_dicom_file->m_is_tag_e07f_1000 = true;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_E07F_1000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_E07F_1000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0050_0030(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0050_0030);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0050_0030=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0050_1000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0050_1000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0050_1000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0A30_2B02(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0A30_2B02);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0A30_2B02=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_7000_1A03(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_7000_1A03);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_7000_1A03=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_2510(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_2510);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_2510=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_2410(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_2410);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_2410=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_1410(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_1410);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_1410=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_1310(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_1310);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_1310=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_1210(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_1210);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_1210=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_1110(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_1110);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_1110=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2900_1010(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2900_1010);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2900_1010=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_1221(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_1221);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_1221=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_5110(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_5110);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_5110=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_5010(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_5010);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_5010=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0301(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0301);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0301=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0201(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0201);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0201=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0101(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0101);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0101=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0001(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0001);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_3000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_3000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_3000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_1100(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
p_dicom_file->m_is_tag_columns=true;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_1100);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_1100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_1000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
p_dicom_file->m_is_tag_rows=true;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_1000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_1000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0800(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0800);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0800=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0600(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0600);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0600=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0400(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0400);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0400=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2800_0200(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2800_0200);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2800_0200=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2000_1300(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2000_1300);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2000_1300=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2000_1100(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2000_1100);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2000_1100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2000_1000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2000_1000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2000_1000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2000_0E00(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2000_0E00);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2000_0E00=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_2000_0D00(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_2000_0D00);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_2000_0D00=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_1800_0213(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_1800_0213);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_1800_0213=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_1800_5010(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_1800_5010);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_1800_5010=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_1800_1410(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_1800_1410);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_1800_1410=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_1000_2000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_1000_2000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_1000_2000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_1000_1000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_1000_1000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_1000_1000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_3E10(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_3E10);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_3E10=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_0102(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_0102);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_0102=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_6400(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_6400);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_6400=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_6100(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_6100);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_6100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_6000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_6000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_6000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_3300(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_3300);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_3300=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_3200(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_3200);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_3200=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_3100(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_3100);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_3100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_3000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_3000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_3000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_2A00(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_2A00);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_2A00=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_2300(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_2300);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_2300=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_2200(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_2200);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_2200=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_2100(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_2100);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_2100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_2000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_2000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_2000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_1800(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_1800);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_1800=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_1600(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_1600);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_1600=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_1300(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_1300);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_1300=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_1200(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_1200);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_1200=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_0800(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_0800);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_0800=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_0000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_0000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_0000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0800_0500(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0800_0500);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0800_0500=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_1600(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_1600);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_1600=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_1300(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_1300);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_1300=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_1200(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_1200);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_1200=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_1000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_1000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_1000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_0300(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_0300);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_0300=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_0201(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_0201);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_0201=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_0200(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_0200);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_0200=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_0100(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_0100);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_0100=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_0001(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_0001);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_0001=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
bool DicomFile::dicom_tag_0200_0000(void* arg)
{
char c_keyword[128]; memset(c_keyword,0x00,sizeof(c_keyword));
DicomFile* p_dicom_file = (DicomFile*)arg;
snprintf(c_keyword,sizeof(c_keyword),"%s",DICOM_KEYWORD_0200_0000);
memcpy(p_dicom_file->m_dicom_file_meta_elements.keyword,c_keyword,sizeof(c_keyword));
qDebug("step 2:DICOM_KEYWORD_0200_0000=%s",p_dicom_file->m_dicom_file_meta_elements.keyword);
return true;
}
void DicomFile::read_diconde(QString e)
{
m_diconde_file_byte_count = 0;
m_is_tag_e07f_1000 =false; m_pixel_data_length=0;
m_is_tag_rows=false; m_rows=0;
m_is_tag_columns=false; m_columns=0;
m_p_buf_pixel_data=nullptr;
FILE *p_file_diconde = fopen(e.toLatin1().data(), "rb");
if (nullptr == p_file_diconde)
{
qDebug("read_diconde nullptr == p_file_diconde error file=%s.",e.toLatin1().data());return;
}
if(false == get_is_valid_diconde_file(p_file_diconde))
{
qDebug("step 1 : dicom file error!"); return;
}
memset(&m_dicm_file_meta_elements_list,0x00,sizeof(m_dicm_file_meta_elements_list));
size_t count = 0; int circulation = -1;
int fixed_length = 4; unsigned char buf[fixed_length];
char tag[32]; string key;
do{
qDebug("---------------------------------------------------------------------------------------circulation=%d",++circulation);
memset(&m_dicom_file_meta_elements,0x00,sizeof(m_dicom_file_meta_elements));
fixed_length = 4; buf[fixed_length]; memset(buf,0x00,sizeof(buf));
if(fixed_length == (int)(count = fread(buf, 1, fixed_length, p_file_diconde))) //tag: Registry of DICOM File meta Elements
{
m_diconde_file_byte_count = m_diconde_file_byte_count + count;
memset(tag,0x00,sizeof(tag));
hex_to_string(buf,fixed_length,tag);
key = (string)tag;
if(m_f_map.find(key) == m_f_map.end()){ goto END_CIRCULATION;}
if(!m_f_map[key](this)){ goto END_CIRCULATION;}
m_dicom_file_meta_elements.group[0]=buf[0];
m_dicom_file_meta_elements.group[1]=buf[1];
m_dicom_file_meta_elements.element[0]=buf[2];
m_dicom_file_meta_elements.element[1]=buf[3];
}
fixed_length = 2; buf[fixed_length]; memset(buf,0x00,sizeof(buf));
if(fixed_length == (int)(count = fread(buf, 1, fixed_length, p_file_diconde))) //vr: Value Representation
{
m_diconde_file_byte_count = m_diconde_file_byte_count + count;
if(!parse_dicom_file_data_vr(buf)){ goto END_CIRCULATION;}
}
if(!parse_value_lenght(buf,p_file_diconde)){goto END_CIRCULATION;} //value_lenght
if(!parse_value_byte_lenght(p_file_diconde)){goto END_CIRCULATION;}; //value_byte_lenght:实际值的长度:小端模式
if(!parse_value_field(p_file_diconde)){goto END_CIRCULATION;}
m_dicm_file_meta_elements_list.elements_length = m_dicm_file_meta_elements_list.elements_length+1;
m_dicm_file_meta_elements_list.elements[circulation]=m_dicom_file_meta_elements;
if(m_is_tag_e07f_1000)
{
get_pixel_data(p_file_diconde);
goto END_CIRCULATION;
}
}while(0 < (int)count);
END_CIRCULATION:
qDebug("-------------------------------------------------------------------------------------end circulation");
for(int i= 0 ; i >Page53
//表中字段VR保留
int fixed_length = 2; size_t count = 0;
unsigned char buf[fixed_length]; memset(buf,0x00,sizeof(buf));
count = fread(buf, 1, fixed_length, p_file_diconde);
m_diconde_file_byte_count = m_diconde_file_byte_count + count;
}
else //0x55 == p_vr[0] && 0x4C == p_vr[1] //UL
{ //
m_dicom_file_meta_elements.value_lenght = 2;
}
return true;
}
bool DicomFile::parse_value_byte_lenght(FILE *p_file_diconde)
{
bool ret_val = false;
size_t count = 0;
int fixed_length = m_dicom_file_meta_elements.value_lenght;
unsigned char buf[fixed_length]; memset(buf,0x00,sizeof(buf));
if(fixed_length == (int)(count = fread(buf, 1, fixed_length, p_file_diconde))) //vr: value_byte_lenght
{
ret_val = true;
m_diconde_file_byte_count = m_diconde_file_byte_count + count;
for(int i = 0 ; i= m_diconde_file_byte_count)
{
m_diconde_file_byte_count = m_diconde_file_byte_count + count;
if(buf[0] == DICOM_D_0x44 && buf[1] == DICOM_I_0x49
&& buf[2] == DICOM_C_0x43 && buf[3] == DICOM_M_0x4D)
{
qDebug("step 1:dicom file OK!");
ret_val = true; break;
}
memset(buf,0x00,sizeof(buf));
}
return ret_val;
}
int DicomFile::hex_to_string(unsigned char *buf, int length, char *out)
{
strcat(out,"dicom_tag_");
char tmp[8];
for(int i= 0 ;i < length; i++)
{
memset(tmp,0x00,sizeof(tmp));
if(2==i){ sprintf(tmp, "_%02X", buf[i]);}
else{sprintf(tmp, "%02X", buf[i]);}
strcat(out, tmp);
}
qDebug("%s",out);
return length * 2;
}
int DicomFile::hex_to_int_little_endian(unsigned char* src, int offset)
{
int value;
value = (int) ((src[offset] & 0xFF)
| ((src[offset + 1] & 0xFF) << 8));
return value;
}
IT交流
C/C++/C#相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索
路由器设置
木托盘
宝塔面板
儿童python教程
心情低落
朋友圈
vim
双一流学科
专升本
我的学校
日记学校
西点培训学校
汽修学校
情书
化妆学校
塔沟武校
异形模板
西南大学排名
最精辟人生短句
6步教你追回被骗的钱
南昌大学排名
清朝十二帝
北京印刷学院排名
北方工业大学排名
北京航空航天大学排名
首都经济贸易大学排名
中国传媒大学排名
首都师范大学排名
中国地质大学(北京)排名
北京信息科技大学排名
中央民族大学排名
北京舞蹈学院排名
北京电影学院排名
中国戏曲学院排名
河北政法职业学院排名
河北经贸大学排名
天津中德应用技术大学排名
天津医学高等专科学校排名
天津美术学院排名
天津音乐学院排名
天津工业大学排名
北京工业大学耿丹学院排名
北京警察学院排名
天津科技大学排名
北京邮电大学(宏福校区)排名
北京网络职业学院排名
北京大学医学部排名
河北科技大学排名
河北地质大学排名
河北体育学院排名



