5 int main(int argc, char* argv[])
14 //gdcmDocument * d; //not used
19 std::cerr << "usage: " << std::endl
20 << argv[0] << " fileName writtingMode "
22 << "(a : ACR, d : DICOM Implicit VR,"
23 << " x : DICOM Explicit VR r : RAW)"
28 if (0) { // Just to keep the code for further use
29 std::cout <<std::endl << "-------- Test gdcmHeader ------" <<std::endl;
30 e1 = new gdcmHeaderHelper(argv[1]);
31 if (!f1->GetHeader()->IsReadable()) {
32 std::cout << "Sorry, not a DICOM / ACR File" <<std::endl;
35 std::cout << std::endl << "----------------------> after new gdcmHeader"
38 std::cout <<std::endl <<"---------------------------------------"
43 std::cout << std::endl
44 << "--------------------- file :" << argv[1]
49 e1 = new gdcmHeader(toto.c_str(), false, true);
50 if (!e1->IsReadable()) {
51 std::cerr << "Sorry, not a Readable DICOM / ACR File" <<std::endl;
56 f1 = new gdcmFile(e1);
59 dataSize = f1->GetImageDataSize();
60 std::cout <<std::endl <<" dataSize " << dataSize << std::endl;
61 int nX,nY,nZ,sPP,planarConfig;
62 std::string pixelType, transferSyntaxName;
66 std::cout << " DIMX=" << nX << " DIMY=" << nY << " DIMZ=" << nZ << std::endl;
68 pixelType = e1->GetPixelType();
69 sPP = e1->GetSamplesPerPixel();
70 planarConfig = e1->GetPlanarConfiguration();
72 std::cout << " pixelType=" << pixelType
73 << " SampleserPixel=" << sPP
74 << " PlanarConfiguration=" << planarConfig
75 << " PhotometricInterpretation="
76 << e1->GetEntryByNumber(0x0028,0x0004)
79 int numberOfScalarComponents=e1->GetNumberOfScalarComponents();
80 std::cout << "NumberOfScalarComponents " << numberOfScalarComponents <<std::endl;
81 transferSyntaxName = e1->GetTransfertSyntaxName();
82 std::cout << " TransferSyntaxName= [" << transferSyntaxName << "]" << std::endl;
84 if ( transferSyntaxName != "Implicit VR - Little Endian"
85 && transferSyntaxName != "Explicit VR - Little Endian"
86 && transferSyntaxName != "Deflated Explicit VR - Little Endian"
87 && transferSyntaxName != "Explicit VR - Big Endian"
88 && transferSyntaxName != "Uncompressed ACR-NEMA" ) {
89 std::cout << std::endl << "==========================================="
92 std::cout << std::endl << "==========================================="
95 imageData= f1->GetImageData();
99 // ecriture d'un fichier ACR
100 // à partir d'un dcmHeader correct.
102 sprintf(zozo, "%s.ACR", toto.c_str());
103 printf ("WriteACR\n");
108 // ecriture d'un fichier DICOM Implicit VR
109 // à partir d'un dcmHeader correct.
111 sprintf(zozo, "%s.DCM", toto.c_str());
112 printf ("WriteDCM Implicit VR\n");
113 f1->WriteDcmImplVR(zozo);
117 // ecriture d'un fichier DICOM Explicit VR
118 // à partir d'un dcmHeader correct.
120 sprintf(zozo, "%s.XDCM", toto.c_str());
121 std::cout << "WriteDCM Explicit VR" << std::endl;
122 f1->WriteDcmExplVR(zozo);
126 // Ecriture d'un Raw File, a afficher avec
127 // affim filein= dimx= dimy= nbit= signe=
129 sprintf(zozo, "%s.RAW", toto.c_str());
130 std::cout << "WriteRaw" << std::endl;
131 f1->WriteRawData(zozo);