Skip to content

Latest commit

 

History

History
42 lines (23 loc) · 2.78 KB

2023-09-28.md

File metadata and controls

42 lines (23 loc) · 2.78 KB

OHIF Office Hours Notes 2023-09-28

Q & A

Q: What is the proper way to link in a private extension to OHIF?

A: You can link a private extension using the OHIF CLI documentation. However, in future we will look into making private/local extensions faster with approaches similar to npx create-ohif-extension@master


Q: We're building a viewer based on Cornerstone3D, where we have 3 views: axial, sagittal, coronal. How can we swap the viewports without reloading the page?

A: You can swap the viewports by using Cornerstone's rendering engine. You can get the viewport by using the command vp = cornerstone.getRenderingEngines()[0]._viewports.get('CT_VIEWPORT'). Then you can set the camera settings by using vp.setCamera({viewUp: views.viewUp, viewPlaneNormal: views.viewPlaneNormal}). Finally, you'll likely need to reset and render the camera using vp.resetCamera() and vp.render(). For further reference, you can see Cornerstone live examples.


Q: Is OHIF required for minimum system configuration? Does a better configuration result in faster performance?

A: like loading speed and downloading DICOM data on the client side and volume creation Some servers might have to decode and re-encoding based on requests.

If server stores all data in DICOM p10 using jpeg-lossless, but the client request in jpeg2k, the server has to open p10 and find location of the image, and read it an decode (jpeg lossless decoder) and re-encode it.

If the client does not specify any transfer syntax, it will transmit it regularly which requires a decoding step. Which means any of the Implicit VR Endian: Default Transfer Syntax for DICOM OR Explicit VR Little Endian & Deflated Explicit VR Little Endian & Explicit VR Big Endian Which for image data they are equivalent.

requestTransferSyntaxUID

The value of the Transfer Syntax parameter may be either a Transfer Syntax UID or the token "*" which means it is stored in the backend.

https://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_8.7.3.5.2.html


Q: I am building a viewer using cornerstone 3d. I am using Amazon Health Imaging as a back end. I have created a custom image loader and custom metadata provider to handle the AHI formats, and I am using the cornerstone streaming image volume loader. But when I try to load a volume, I get blank viewports. I don't really have a specific question, but if you have any guidance, it would be appreciated.

A: You should grab the imageData from the viewport and check if it is empty, you can also put logs inside the decodeImageFrame inside the dicomImageLoader so that you you can see decoded pixelData, run the webpack with > yarn run webpack:dynamic-import:debug to be able to build for development so that logs stays