NodeDCMTK.dll에 dcmtk library가 정상 load되는지 확인

0001.dcm DICOM file을 load하여 patient name을 read후 OutputDebugString()으로 출력 테스트

1.NodeDCMTK.dll에서 test_dcm()함수에 0001.DCM File read read 추가

DcmFileFormat dcmfileFormat;
OFCondition status = dcmfileFormat.loadFile("..\\etc\\sampleDICOM\\0001.DCM");
if (status.good())
{
...
}

2.정상 load되었다면 patient name가져온후 OutpuDebugString 출력

OFString patientName;
if (dcmfileFormat.getDataset()->findAndGetOFString(DCM_PatientName, patientName).good())
{
     char buffer[256];
     sprintf(buffer, "Patient:%s", patientName);
     OutputDebugStringA(buffer);
     return a * b;
}

3.NodeDCMTK project 속성 중 link library path에 ..\dll\DCMTK\lib 추가

4.library에 dcmdata.lib, oflog.lib, ofstd.lib, iphlpapi.lib, ws2_32.lib, netapi32.lib, wsock32.lib 추가

5.NodeDCMTK project 속성 중 include path에 ..\dll\DCMTK\include 추가

6.include header는 아래 처럼 추가

#include "dcmtk/dcmdata/dcfilefo.h"
#include "dcmtk/dcmdata/dctagkey.h"
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dctk.h"

7.build후 electron실행 output debug string은 log2console로 확인

8.추가로 dcm의 모든 element를 read

DcmFileFormat dcmfileFormat;
OFCondition status = dcmfileFormat.loadFile("..\\etc\\sampleDICOM\\0001.DCM");
if (status.good())
{
	for (long i = 0; i < dcmfileFormat.getDataset()->card(); i++)
	{
		DcmElement* pElement = dcmfileFormat.getDataset()->getElement(i);
		if (pElement == NULL)
			continue;

		OFString value;
		status = pElement->getOFString(value, 0);
		if (!status.good())
			continue;

		char buffer[256];
		sprintf(buffer, "[%04X:%04X] %s : %s", pElement->getGTag(), pElement->getETag(), ((DcmTag&)pElement->getTag()).getTagName(), value);
		OutputDebugStringA(buffer);
	}
}

9.결과 화면