diff --git a/extensions/default/src/ViewerLayout/index.tsx b/extensions/default/src/ViewerLayout/index.tsx index e19a24c..aa86482 100644 --- a/extensions/default/src/ViewerLayout/index.tsx +++ b/extensions/default/src/ViewerLayout/index.tsx @@ -146,6 +146,7 @@ function ViewerLayout({ side="right" activeTabIndex={rightPanelClosedState ? null : 0} servicesManager={servicesManager} + expandedWidth={400} /> ) : null} diff --git a/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx b/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx index a7d9df9..f995e8a 100644 --- a/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx +++ b/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx @@ -6,7 +6,7 @@ function OHIFCornerstonePdfViewport({ displaySets }) { var [url, setUrl] = useState(null); const sopInstanceUid = displaySets[0].SOPInstanceUID; - url = `http://128.199.154.150:8080/rid/IHERetrieveDocument?requestType=DOCUMENT&documentUID=${sopInstanceUid}&preferredContentType=application%2Fpdf`; + url = `http://${window.config.pacs_document_host}:${window.config.pacs_document_port}/rid/IHERetrieveDocument?requestType=DOCUMENT&documentUID=${sopInstanceUid}&preferredContentType=application%2Fpdf`; useEffect(() => { document.body.addEventListener('drag', makePdfDropTarget); diff --git a/platform/app/public/config/default.js b/platform/app/public/config/default.js index bfa23d3..672445c 100644 --- a/platform/app/public/config/default.js +++ b/platform/app/public/config/default.js @@ -23,8 +23,8 @@ window.config = { // above, the number of requests can be go a lot higher. prefetch: 25, }, - expertise_host: `http://192.168.1.29`, // IP ke NV di PACS Server, untuk fetch expertise bawaan versi NV - pacs_document_host: `192.168.1.29`, // IP ke NV di PACS Server untuk ambil pdf + expertise_host: `http://10.9.10.86`, // IP ke NV di PACS Server, untuk fetch expertise bawaan versi NV + pacs_document_host: `10.9.10.86`, // IP ke NV di PACS Server untuk ambil pdf pacs_document_port: 8080, defaultDataSourceName: 'local-proxy', dataSources: [ @@ -34,8 +34,8 @@ window.config = { configuration: { friendlyName: 'Static WADO Local Data', name: 'DCM4CHEE', - qidoRoot: `http://192.168.1.29:5000/rs`, // IP ke dicomweb-proxy PACS Server. URI selalu /rs - wadoRoot: `http://192.168.1.29:5000/rs`, // IP ke dicomweb-proxy PACS Server. URI selalu /rs + qidoRoot: `http://10.9.10.86:5000/rs`, // IP ke dicomweb-proxy PACS Server. URI selalu /rs + wadoRoot: `http://10.9.10.86:5000/rs`, // IP ke dicomweb-proxy PACS Server. URI selalu /rs qidoSupportsIncludeField: false, supportsReject: true, supportsStow: true, diff --git a/platform/ui-next/src/components/SidePanel/SidePanel.tsx b/platform/ui-next/src/components/SidePanel/SidePanel.tsx index 71d6f37..5a5e457 100644 --- a/platform/ui-next/src/components/SidePanel/SidePanel.tsx +++ b/platform/ui-next/src/components/SidePanel/SidePanel.tsx @@ -358,12 +358,45 @@ const SidePanel = ({ setIsExpertiseLoading(true); const url = `${window.config.expertise_host}/nv/query.php?method=view&AccessionNumber=${encodeURIComponent(accessionNumber)}`; + // Debuggging + // const url = 'http://152.42.173.210/nv/testQueryBase64.php'; + const response = await fetch(url); const data = await response.json(); console.log('Study data:', data); if (data?.study?.expertise && data.study.expertise.length > 0) { - setExpertiseData(data.study.expertise[0]); + const expertiseItem = { ...data.study.expertise[0] }; + + // Decode base64 encoded fields + // UTF-8 safe base64 decoding + const decodeBase64 = str => { + try { + // Step 1: decode base64 to binary + const binary = atob(str); + // Step 2: create a Uint8Array from the binary string + const bytes = new Uint8Array(binary.length); + for (let i = 0; i < binary.length; i++) { + bytes[i] = binary.charCodeAt(i); + } + // Step 3: decode the Uint8Array as UTF-8 + return new TextDecoder('utf-8').decode(bytes); + } catch (e) { + console.error('Error decoding base64 string:', e); + return str; // Return original if decoding fails + } + }; + + // Decode known base64 fields + if (expertiseItem.expertise) { + expertiseItem.expertise = decodeBase64(expertiseItem.expertise); + } + if (expertiseItem.radiologist) { + expertiseItem.radiologist = decodeBase64(expertiseItem.radiologist); + } + // Add any other fields that might be base64 encoded + + setExpertiseData(expertiseItem); } } catch (error) { console.error('Error fetching expertise data:', error); @@ -441,7 +474,7 @@ const SidePanel = ({ }); return ( - +

Expertise

{formattedData.map((section, index) => (
) : ( -

{section.value}

+

{section.value}

)}
))}