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.결과 화면