comparison OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 3816:09f091b6b569

/rendered route: fix automatic windowing of files without windowing tags and RescaleSlope != 1
author Alain Mazy <alain@mazy.be>
date Wed, 08 Apr 2020 14:49:54 +0200
parents 2a170a8f1faf
children 2910b0d30fe0
comparison
equal deleted inserted replaced
3800:38b0f51781aa 3816:09f091b6b569
692 { 692 {
693 dicom.ParseFloat(rescaleSlope, Orthanc::DICOM_TAG_RESCALE_SLOPE); 693 dicom.ParseFloat(rescaleSlope, Orthanc::DICOM_TAG_RESCALE_SLOPE);
694 dicom.ParseFloat(rescaleIntercept, Orthanc::DICOM_TAG_RESCALE_INTERCEPT); 694 dicom.ParseFloat(rescaleIntercept, Orthanc::DICOM_TAG_RESCALE_INTERCEPT);
695 } 695 }
696 696
697 windowWidth = static_cast<float>(1 << info.GetBitsStored()); 697 windowWidth = static_cast<float>(1 << info.GetBitsStored()) * rescaleSlope;
698 windowCenter = windowWidth / 2.0f; 698 windowCenter = windowWidth / 2.0f + rescaleIntercept;
699 699
700 if (dicom.HasTag(Orthanc::DICOM_TAG_WINDOW_CENTER) && 700 if (dicom.HasTag(Orthanc::DICOM_TAG_WINDOW_CENTER) &&
701 dicom.HasTag(Orthanc::DICOM_TAG_WINDOW_WIDTH)) 701 dicom.HasTag(Orthanc::DICOM_TAG_WINDOW_WIDTH))
702 { 702 {
703 dicom.ParseFirstFloat(windowCenter, Orthanc::DICOM_TAG_WINDOW_CENTER); 703 dicom.ParseFirstFloat(windowCenter, Orthanc::DICOM_TAG_WINDOW_CENTER);