⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dicom.h

📁 医学数字影像和通讯_DICOM_编程最新介绍
💻 H
字号:

//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DICOM_H__192C1501_CBDB_43D1_8269_472E6D56E8EF__INCLUDED_)
#define AFX_DICOM_H__192C1501_CBDB_43D1_8269_472E6D56E8EF__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//////定义要取的数据元素/////////
		
		//传输语法
#define TRANSFER_GROUP 0x0002
#define TRANSFER_ELEMENT 0x0010
		
		//ct值
#define CT_DATA_GROUP 0x7fe0
#define CT_DATA_ELEMENT 0x0010
		
		//image plane module
#define SLICE_LOCATION_GROUP 0x0020
#define SLICE_LOCATION_ELEMENT 0x1041
#define STUDY_NUMBER_ELEMENT 0x0010

		//image pixel module
#define IMAGE_GROUP 0x0028
#define WINDOW_CENTER_ELEMENT 0x1050
#define WINDOW_WIDTH_ELEMENT 0x1051
#define PIXEL_SPACING_ELEMENT 0x0030
#define RESCALE_INTERCEPT_ELEMENT 0x1052
#define RESCALE_SLOPE_ELEMENT 0x1053
#define ROWS_ELEMENT 0x0010
#define COLUMNS_ELEMENT 0x0011

		//general equipment module
#define MANUFACTURE_GROUP 0x0008
#define MANUFACTURE_ELEMENT 0x0070
#define STUDY_DATA_ELEMENT 0x0020
		



/////////定义传输语法////////////
#define IMVR_LENDIAN "1.2.840.10008.1.2"
#define EXVR_LENDIAN "1.2.840.10008.1.2.1"
#define EXVR_BENDIAN "1.2.840.10008.1.2.2"
struct RgbQurd 
{
	BYTE rgbBlue; 
	BYTE rgbGreen; 
	BYTE rgbRed; 
	BYTE rgbReserved;

};
struct BmpHead
{
	//bmp文件头信息
	short int bfType;
	int bfSize; 
	int bfReserved; 
	int bfOffBits;
	//bmp图象信息
	int biSize; 
	int biWidth;
	int biHeight; 
	short int biPlanes; 
	short int biBitCount; 
	int biCompression; 
	int biSizeImage; 
	int biXPelsPerMeter; 
	int biYPelsPerMeter; 
	int biClrUsed; 
	int biClrImportant;
	RgbQurd bmiColors[256];
};
struct DcmData
{
	char* study_number;//检查号
	char* study_data;//检查日期
	char* slice_location;//AA浮点切片位置(实际的相对位置,以毫米为单位)
	char* window_center;//AA浮点窗位
	char* window_width;//AA浮点窗宽
	char* pixelx_spacing;//AA浮点x轴象素空间(各个象素中心点之间的物理距离,以毫米来确定。)
	char* pixely_spacing;//AA浮点y轴象素空间(各个象素中心点之间的物理距离,以毫米来确定。)
	char* manufacture;//产生数字图象的设备的制造商。
	char* rescale_intercept;//AA浮点截取值(b) 与存储值(SV) 与Hounsfield 单元(HU)的关系. HU= m*SV + b.
	char* rescale_slope;//AA浮点斜面(在Rescale 截取(0028,1052).内指定了公式内的M )
	short int rows;//图象行数
	short int columns;//图象列数
	char* transfer;//传输语法
	int image_orderID;//片层顺序(与DICOM文件无关,本软件用)
	short int ct[256][256];//ct值
	BYTE pixel[256][256];//pixel值
	DcmData* pNext;	
};
class Dicom  
{
public:
	Dicom();
	virtual ~Dicom();
	
public:	
	BmpHead bmphead;
	readDcmfile(CString);
	DcmData* p_DcmData;
	static int frame_number;
private:
	
protected:
	void BmpInfor();
	char* intTOstr(int);
	double strTOdouble(char*);
	void ctTOpixel(DcmData*);
};

#endif // 	!defined(AFX_DICOM_H__192C1501_CBDB_43D1_8269_472E6D56E8EF__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -