dcmdata: bibliothèque d'encodage/décodage de données et applications utilitaires
Ce module contient des classes permettant de gérer les structures de données et les fichiers DICOM. Il prend également en charge les fichiers DICOMDIR requis pour les supports de stockage DICOM.
Les principales classes d'interface sont :
Voici d'autres classes qui peuvent être utiles :
Outils
Ce module contient les outils en ligne de commande suivants :
- cda2dcm: Encapsuler un fichier CDA au format de fichier DICOM
- dcm2cda: Extraire un fichier CDA depuis un CDA encapsulé DICOM
- dcm2json: Convertir un fichier DICOM et un jeu de données en JSON
- dcm2pdf: Extraire le fichier PDF encapsulé dans un DICOM
- dcm2xml: Convertir un fichier DICOM et un jeu de données en XML
- dcmconv: Convertir l'encodage d'un fichier DICOM
- dcmcrle: Encoder un fichier DICOM vers la syntaxe de transfert RLE
- dcmdecap: Extraire un fichier encapsulé depuis un objet de stockage encapsulé DICOM
- dcmdrle: Décoder un fichier DICOM compressé en RLE
- dcmdump: Afficher un fichier DICOM et un jeu de données
- dcmencap: Encapsuler un document au format DICOM
- dcmftest: Vérifier si un fichier est au format DICOM partie 10
- dcmgpdir: Créer un DICOMDIR à usage général
- dcmodify: Modifier des fichiers DICOM
- dump2dcm: Convertir un dump ASCII en fichier DICOM
- img2dcm: Convertir des formats d'image standard au format DICOM
- json2dcm: Convertir un document JSON en fichier ou jeu de données DICOM
- pdf2dcm: Encapsuler un fichier PDF au format de fichier DICOM
- stl2dcm: Encapsuler un fichier STL au format de fichier DICOM
- xml2dcm: Convertir un document XML en fichier DICOM ou en jeu de données
Fichiers
Le fichier suivant fournit une documentation complémentaire :
Exemples
L'exemple suivant montre comment charger un fichier DICOM et afficher le nom du patient :
DcmFileFormat fileformat;
OFCondition status = fileformat.loadFile("test.dcm");
if (status.good())
{
OFString patientName;
if (fileformat.getDataset()->findAndGetOFString(DCM_PatientName, patientName).good())
{
cout << "Patient's Name: " << patientName << endl;
} else
cerr << "Error: cannot access Patient's Name!" << endl;
} else
cerr << "Error: cannot read DICOM file (" << status.text() << ")" << endl;
L'exemple suivant montre comment créer un jeu de données DICOM et l'enregistrer dans un fichier :
char uid[100];
DcmFileFormat fileformat;
DcmDataset *dataset = fileformat.getDataset();
dataset->putAndInsertString(DCM_SOPClassUID, UID_SecondaryCaptureImageStorage);
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_PatientName, "Doe^John");
/ ... /
dataset->putAndInsertUint8Array(DCM_PixelData, pixelData, pixelLength);
OFCondition status = fileformat.saveFile("test.dcm", EXS_LittleEndianExplicit);
if (status.bad())
cerr << "Error: cannot write DICOM file (" << status.text() << ")" << endl;
L'exemple suivant montre comment créer un DICOMDIR à usage général à partir de plusieurs fichiers :
DicomDirInterface dicomdir;
OFCondition status = dicomdir.createNewDicomDir();
if (status.good())
{
while ( / there are files / )
dicomdir.addDicomFile( / current filename / );
status = dicomdir.writeDicomDir();
if (status.bad())
cerr << "Error: cannot write DICOMDIR (" << status.text() << ")" << endl;
} else
cerr << "Error: cannot create DICOMDIR (" << status.text() << ")" << endl;