ImageControl.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import StackViewer from './viewers/stack.image.viewer';
  2. import { useSelector } from 'react-redux';
  3. import { RootState } from '@/states/store';
  4. import {
  5. getViewIconUrl,
  6. getExposedImageUrl,
  7. getDcmImageUrl,
  8. } from '@/API/bodyPosition';
  9. import { Image } from 'antd';
  10. const ImageControl = () => {
  11. const selectedBodyPosition = useSelector(
  12. (state: RootState) => state.bodyPositionList.selectedBodyPosition
  13. );
  14. const isExposed =
  15. selectedBodyPosition &&
  16. selectedBodyPosition.dview &&
  17. selectedBodyPosition.dview.expose_status === 'Exposed';
  18. console.log('isExposed:', isExposed);
  19. const imageUrl = selectedBodyPosition
  20. ? isExposed
  21. ? getExposedImageUrl(selectedBodyPosition.sop_instance_uid)
  22. : getViewIconUrl(selectedBodyPosition.body_position_image)
  23. : '';
  24. const dcmUrls: string[] = [];
  25. if (isExposed) {
  26. dcmUrls.push(getDcmImageUrl(selectedBodyPosition.sop_instance_uid));
  27. console.log(`[ImageControl] dcmUrls:`, dcmUrls);
  28. }
  29. return (
  30. <div className="h-full w-full">
  31. {isExposed ? (
  32. <StackViewer imageIndex={0} imageUrls={dcmUrls} />
  33. ) : (
  34. <Image
  35. src={imageUrl}
  36. alt="Body Position"
  37. style={{ width: '100%', height: '100%' }}
  38. />
  39. )}
  40. {/* 第10张图和第30张图明显不同,可以用于测试,看效果*/}
  41. </div>
  42. );
  43. };
  44. export default ImageControl;