Пример #1
0
$de1 = $pubdict->GetDictEntryByName("Patient Name", $tPatientName);
printf("Found %s", $tPatientName);
// Indeed the attribute could not be found. Since DICOM 2003, Patient Name
// has become Patient's Name.
$tPatientsName = new Tag();
$de2 = $pubdict->GetDictEntryByName("Patient's Name", $tPatientsName);
printf("Found: %s", $tPatientsName);
// Let's try to read an arbitrary DICOM Attribute:
$tDoseGridScaling = new Tag();
$de3 = $pubdict->GetDictEntryByName("Dose Grid Scaling", $tDoseGridScaling);
printf("Found: %s", $tDoseGridScaling);
if ($ds->FindDataElement($tDoseGridScaling)) {
    $sf = new StringFilter();
    $sf->SetFile($file);
    printf("Attribute Value as String: %s", $sf->ToString($tDoseGridScaling));
    // Let's check the name again:
    $pss = $sf->ToStringPair($tDoseGridScaling);
    printf("Attribute Name Checked: %s", $pss->first);
    printf("Attribute Value (string): %s", $pss->second);
    $dgs = $ds->GetDataElement($tDoseGridScaling);
    // Let's assume for a moment we knew the tag number:
    $at = new Tag(0x3004, 0xe);
    assert($at . GetTag() == $tDoseGridScaling);
    $at->SetFromDataSet($ds);
    // For the sake of long term maintenance, we will not write
    // that this particular attribute is stored as a double. What if
    // a user made a mistake. It is much safer to rely on GDCM internal
    // mechanism to deduce the VR::DS type (represented as a ieee double)
    $v = $at->GetValue();
    printf("DoseGridScaling=%s", $v);
}