comparison Core/DicomNetworking/DicomUserConnection.cpp @ 3370:872bd3b6ec72

"/modalities/{id}/query": New argument "Normalize"
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 14 May 2019 10:30:43 +0200
parents 20b38a533254
children cf31b5bacce3
comparison
equal deleted inserted replaced
3369:20b38a533254 3370:872bd3b6ec72
480 } 480 }
481 } 481 }
482 } 482 }
483 483
484 484
485 static void FixFindQuery(DicomMap& fixedQuery, 485 static void NormalizeFindQuery(DicomMap& fixedQuery,
486 ResourceType level, 486 ResourceType level,
487 const DicomMap& fields) 487 const DicomMap& fields)
488 { 488 {
489 std::set<DicomTag> allowedTags; 489 std::set<DicomTag> allowedTags;
490 490
491 // WARNING: Do not add "break" or reorder items in this switch-case! 491 // WARNING: Do not add "break" or reorder items in this switch-case!
492 switch (level) 492 switch (level)
655 } 655 }
656 656
657 657
658 void DicomUserConnection::Find(DicomFindAnswers& result, 658 void DicomUserConnection::Find(DicomFindAnswers& result,
659 ResourceType level, 659 ResourceType level,
660 const DicomMap& originalFields) 660 const DicomMap& originalFields,
661 bool normalize)
661 { 662 {
662 CheckIsOpen(); 663 CheckIsOpen();
663 664
664 std::auto_ptr<ParsedDicomFile> query; 665 std::auto_ptr<ParsedDicomFile> query;
665 666
666 if (0) 667 if (normalize)
668 {
669 DicomMap fields;
670 NormalizeFindQuery(fields, level, originalFields);
671 query.reset(ConvertQueryFields(fields, manufacturer_));
672 }
673 else
667 { 674 {
668 query.reset(new ParsedDicomFile(originalFields, 675 query.reset(new ParsedDicomFile(originalFields,
669 GetDefaultDicomEncoding(), 676 GetDefaultDicomEncoding(),
670 false /* be strict */)); 677 false /* be strict */));
671 }
672 else
673 {
674 DicomMap fields;
675 FixFindQuery(fields, level, originalFields);
676 query.reset(ConvertQueryFields(fields, manufacturer_));
677 } 678 }
678 679
679 DcmDataset* dataset = query->GetDcmtkObject().getDataset(); 680 DcmDataset* dataset = query->GetDcmtkObject().getDataset();
680 681
681 const char* clevel = NULL; 682 const char* clevel = NULL;