Mercurial > hg > orthanc
comparison OrthancServer/ServerJobs/ArchiveJob.cpp @ 3945:0b3256c3ee14 transcoding
simplified IDicomTranscoder
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 19 May 2020 11:24:00 +0200 |
parents | b99acc213937 |
children | 5fe8c6d3212e |
comparison
equal
deleted
inserted
replaced
3944:aae045f802f4 | 3945:0b3256c3ee14 |
---|---|
440 if (transcode) | 440 if (transcode) |
441 { | 441 { |
442 // New in Orthanc 1.7.0 | 442 // New in Orthanc 1.7.0 |
443 std::set<DicomTransferSyntax> syntaxes; | 443 std::set<DicomTransferSyntax> syntaxes; |
444 syntaxes.insert(transferSyntax); | 444 syntaxes.insert(transferSyntax); |
445 | 445 |
446 parsed.reset(new ParsedDicomFile(content)); | 446 IDicomTranscoder::DicomImage source, transcoded; |
447 const char* data = content.empty() ? NULL : content.c_str(); | 447 source.SetExternalBuffer(content); |
448 | 448 |
449 std::unique_ptr<IDicomTranscoder::TranscodedDicom> transcodedDicom( | 449 bool hasSopInstanceChanged; |
450 context.TranscodeToParsed(parsed->GetDcmtkObject(), data, content.size(), | 450 if (context.Transcode(transcoded, hasSopInstanceChanged, source, |
451 syntaxes, true /* allow new SOP instance UID */)); | 451 syntaxes, true /* allow new SOP instance UID */)) |
452 | |
453 if (transcodedDicom.get() != NULL && | |
454 transcodedDicom->GetDicom().getDataset() != NULL) | |
455 { | 452 { |
456 std::string transcoded; | 453 writer.Write(transcoded.GetBufferData(), transcoded.GetBufferSize()); |
457 FromDcmtkBridge::SaveToMemoryBuffer( | |
458 transcoded, *transcodedDicom->GetDicom().getDataset()); | |
459 | |
460 writer.Write(transcoded); | |
461 | 454 |
462 if (dicomDir != NULL) | 455 if (dicomDir != NULL) |
463 { | 456 { |
464 std::unique_ptr<ParsedDicomFile> tmp( | 457 std::unique_ptr<ParsedDicomFile> tmp(transcoded.ReleaseAsParsedDicomFile()); |
465 ParsedDicomFile::AcquireDcmtkObject(transcodedDicom->ReleaseDicom())); | |
466 dicomDir->Add(dicomDirFolder, filename_, *tmp); | 458 dicomDir->Add(dicomDirFolder, filename_, *tmp); |
467 } | 459 } |
468 | 460 |
469 transcodeSuccess = true; | 461 transcodeSuccess = true; |
470 } | 462 } |