fix(dicom-html): Add parsed dicom meta info section (#2419)
* Add dicom meta info section to dicom sr html * Update dependency: dcmjs@0.18.8
This commit is contained in:
parent
f0d13a7acd
commit
403688b18c
@ -36,7 +36,7 @@
|
|||||||
"cornerstone-math": "^0.1.8",
|
"cornerstone-math": "^0.1.8",
|
||||||
"cornerstone-tools": "^4.20.1",
|
"cornerstone-tools": "^4.20.1",
|
||||||
"cornerstone-wado-image-loader": "^3.1.0",
|
"cornerstone-wado-image-loader": "^3.1.0",
|
||||||
"dcmjs": "0.18.4",
|
"dcmjs": "0.18.8",
|
||||||
"dicom-parser": "^1.8.3",
|
"dicom-parser": "^1.8.3",
|
||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@ohif/core": "^0.50.0",
|
"@ohif/core": "^0.50.0",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"react": "^16.8.6",
|
"react": "^16.8.6",
|
||||||
"react-dom": "^16.8.6"
|
"react-dom": "^16.8.6"
|
||||||
|
|||||||
@ -168,6 +168,16 @@ const getContentSequence = (data, level = 1) => {
|
|||||||
Object.keys(data).forEach(key => {
|
Object.keys(data).forEach(key => {
|
||||||
const value = data[key];
|
const value = data[key];
|
||||||
|
|
||||||
|
if (key === '_meta') {
|
||||||
|
const HeaderDynamicLevel = `h3`;
|
||||||
|
root.push(<hr />);
|
||||||
|
root.push(
|
||||||
|
<HeaderDynamicLevel key="Metadata">
|
||||||
|
DICOM File Meta Information
|
||||||
|
</HeaderDynamicLevel>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
let content;
|
let content;
|
||||||
if (value instanceof Object) {
|
if (value instanceof Object) {
|
||||||
content = getContentSequence(value, level + 1);
|
content = getContentSequence(value, level + 1);
|
||||||
@ -215,6 +225,7 @@ class DicomHtmlViewport extends Component {
|
|||||||
const dicomData = DicomMessage.readFile(arrayBuffer);
|
const dicomData = DicomMessage.readFile(arrayBuffer);
|
||||||
const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);
|
const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);
|
||||||
dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
|
dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
|
||||||
|
dataset._meta = DicomMetaDictionary.naturalizeDataset(dataset._meta);
|
||||||
|
|
||||||
const mainData = getMainData(dataset);
|
const mainData = getMainData(dataset);
|
||||||
const contentSequence = getContentSequence(dataset);
|
const contentSequence = getContentSequence(dataset);
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
"@ohif/core": "^0.50.0",
|
"@ohif/core": "^0.50.0",
|
||||||
"cornerstone-core": "^2.2.8",
|
"cornerstone-core": "^2.2.8",
|
||||||
"cornerstone-tools": "^4.20.1",
|
"cornerstone-tools": "^4.20.1",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"gl-matrix": "^3.3.0",
|
"gl-matrix": "^3.3.0",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"react": "^16.8.6",
|
"react": "^16.8.6",
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
"@ohif/core": "^0.50.0",
|
"@ohif/core": "^0.50.0",
|
||||||
"cornerstone-core": "^2.2.8",
|
"cornerstone-core": "^2.2.8",
|
||||||
"cornerstone-tools": "^4.20.1",
|
"cornerstone-tools": "^4.20.1",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"react": "^16.8.6",
|
"react": "^16.8.6",
|
||||||
"react-dom": "^16.8.6"
|
"react-dom": "^16.8.6"
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@ohif/core": "^2.6.0",
|
"@ohif/core": "^2.6.0",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"react": "^16.8.6"
|
"react": "^16.8.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@ -35,7 +35,7 @@
|
|||||||
"cornerstone-core": "^2.2.8",
|
"cornerstone-core": "^2.2.8",
|
||||||
"cornerstone-tools": "^4.20.1",
|
"cornerstone-tools": "^4.20.1",
|
||||||
"cornerstone-wado-image-loader": "^3.1.0",
|
"cornerstone-wado-image-loader": "^3.1.0",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"dicom-parser": "^1.8.3",
|
"dicom-parser": "^1.8.3",
|
||||||
"i18next": "^17.0.3",
|
"i18next": "^17.0.3",
|
||||||
"i18next-browser-languagedetector": "^3.0.1",
|
"i18next-browser-languagedetector": "^3.0.1",
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.5.5",
|
"@babel/runtime": "^7.5.5",
|
||||||
"ajv": "^6.10.0",
|
"ajv": "^6.10.0",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"dicomweb-client": "^0.6.0",
|
"dicomweb-client": "^0.6.0",
|
||||||
"immer": "6.0.2",
|
"immer": "6.0.2",
|
||||||
"isomorphic-base64": "^1.0.2",
|
"isomorphic-base64": "^1.0.2",
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
"cornerstone-math": "^0.1.8",
|
"cornerstone-math": "^0.1.8",
|
||||||
"cornerstone-tools": "^4.20.1",
|
"cornerstone-tools": "^4.20.1",
|
||||||
"cornerstone-wado-image-loader": "^3.1.0",
|
"cornerstone-wado-image-loader": "^3.1.0",
|
||||||
"dcmjs": "0.18.5",
|
"dcmjs": "0.18.8",
|
||||||
"dicom-parser": "^1.8.3",
|
"dicom-parser": "^1.8.3",
|
||||||
"dicomweb-client": "^0.4.4",
|
"dicomweb-client": "^0.4.4",
|
||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
|
|||||||
@ -1,129 +1,28 @@
|
|||||||
window.config = {
|
window.config = {
|
||||||
// default: '/'
|
|
||||||
routerBasename: '/',
|
routerBasename: '/',
|
||||||
extensions: [],
|
enableGoogleCloudAdapter: true,
|
||||||
showStudyList: true,
|
|
||||||
filterQueryParam: false,
|
|
||||||
disableServersCache: false,
|
|
||||||
servers: {
|
servers: {
|
||||||
dicomWeb: [
|
// This is an array, but we'll only use the first entry for now
|
||||||
{
|
dicomWeb: [],
|
||||||
name: 'DCM4CHEE',
|
|
||||||
wadoUriRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/wado',
|
|
||||||
qidoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
|
|
||||||
wadoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
|
|
||||||
qidoSupportsIncludeField: true,
|
|
||||||
imageRendering: 'wadors',
|
|
||||||
thumbnailRendering: 'wadors',
|
|
||||||
enableStudyLazyLoad: true,
|
|
||||||
supportsFuzzyMatching: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
// Extensions should be able to suggest default values for these?
|
// This is an array, but we'll only use the first entry for now
|
||||||
// Or we can require that these be explicitly set
|
oidc: [
|
||||||
hotkeys: [
|
|
||||||
// ~ Global
|
|
||||||
{
|
{
|
||||||
commandName: 'incrementActiveViewport',
|
// ~ REQUIRED
|
||||||
label: 'Next Viewport',
|
// Authorization Server URL
|
||||||
keys: ['right'],
|
authority: 'https://accounts.google.com',
|
||||||
},
|
client_id:
|
||||||
{
|
'723928408739-k9k9r3i44j32rhu69vlnibipmmk9i57p.apps.googleusercontent.com',
|
||||||
commandName: 'decrementActiveViewport',
|
redirect_uri: '/callback', // `OHIFStandaloneViewer.js`
|
||||||
label: 'Previous Viewport',
|
response_type: 'id_token token',
|
||||||
keys: ['left'],
|
scope:
|
||||||
},
|
'email profile openid https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/cloud-healthcare', // email profile openid
|
||||||
// Supported Keys: https://craig.is/killing/mice
|
// ~ OPTIONAL
|
||||||
// ~ Cornerstone Extension
|
post_logout_redirect_uri: '/logout-redirect.html',
|
||||||
{ commandName: 'rotateViewportCW', label: 'Rotate Right', keys: ['r'] },
|
revoke_uri: 'https://accounts.google.com/o/oauth2/revoke?token=',
|
||||||
{ commandName: 'rotateViewportCCW', label: 'Rotate Left', keys: ['l'] },
|
automaticSilentRenew: true,
|
||||||
{ commandName: 'invertViewport', label: 'Invert', keys: ['i'] },
|
revokeAccessTokenOnSignout: true,
|
||||||
{
|
|
||||||
commandName: 'flipViewportVertical',
|
|
||||||
label: 'Flip Horizontally',
|
|
||||||
keys: ['h'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'flipViewportHorizontal',
|
|
||||||
label: 'Flip Vertically',
|
|
||||||
keys: ['v'],
|
|
||||||
},
|
|
||||||
{ commandName: 'scaleUpViewport', label: 'Zoom In', keys: ['+'] },
|
|
||||||
{ commandName: 'scaleDownViewport', label: 'Zoom Out', keys: ['-'] },
|
|
||||||
{ commandName: 'fitViewportToWindow', label: 'Zoom to Fit', keys: ['='] },
|
|
||||||
{ commandName: 'resetViewport', label: 'Reset', keys: ['space'] },
|
|
||||||
// clearAnnotations
|
|
||||||
{ commandName: 'nextImage', label: 'Next Image', keys: ['down'] },
|
|
||||||
{ commandName: 'previousImage', label: 'Previous Image', keys: ['up'] },
|
|
||||||
// firstImage
|
|
||||||
// lastImage
|
|
||||||
{
|
|
||||||
commandName: 'previousViewportDisplaySet',
|
|
||||||
label: 'Previous Series',
|
|
||||||
keys: ['pagedown'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'nextViewportDisplaySet',
|
|
||||||
label: 'Next Series',
|
|
||||||
keys: ['pageup'],
|
|
||||||
},
|
|
||||||
// ~ Cornerstone Tools
|
|
||||||
{ commandName: 'setZoomTool', label: 'Zoom', keys: ['z'] },
|
|
||||||
// ~ Window level presets
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset1',
|
|
||||||
label: 'W/L Preset 1',
|
|
||||||
keys: ['1'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset2',
|
|
||||||
label: 'W/L Preset 2',
|
|
||||||
keys: ['2'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset3',
|
|
||||||
label: 'W/L Preset 3',
|
|
||||||
keys: ['3'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset4',
|
|
||||||
label: 'W/L Preset 4',
|
|
||||||
keys: ['4'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset5',
|
|
||||||
label: 'W/L Preset 5',
|
|
||||||
keys: ['5'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset6',
|
|
||||||
label: 'W/L Preset 6',
|
|
||||||
keys: ['6'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset7',
|
|
||||||
label: 'W/L Preset 7',
|
|
||||||
keys: ['7'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset8',
|
|
||||||
label: 'W/L Preset 8',
|
|
||||||
keys: ['8'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commandName: 'windowLevelPreset9',
|
|
||||||
label: 'W/L Preset 9',
|
|
||||||
keys: ['9'],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
cornerstoneExtensionConfig: {},
|
studyListFunctionsEnabled: true,
|
||||||
// Following property limits number of simultaneous series metadata requests.
|
|
||||||
// For http/1.x-only servers, set this to 5 or less to improve
|
|
||||||
// on first meaningful display in viewer
|
|
||||||
// If the server is particularly slow to respond to series metadata
|
|
||||||
// requests as it extracts the metadata from raw files everytime,
|
|
||||||
// try setting this to even lower value
|
|
||||||
// Leave it undefined for no limit, sutiable for HTTP/2 enabled servers
|
|
||||||
// maxConcurrentMetadataRequests: 5,
|
|
||||||
};
|
};
|
||||||
|
|||||||
@ -6619,10 +6619,10 @@ dateformat@^3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
||||||
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
|
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
|
||||||
|
|
||||||
dcmjs@0.18.5:
|
dcmjs@0.18.8:
|
||||||
version "0.18.5"
|
version "0.18.8"
|
||||||
resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.18.5.tgz#06edd5562a91fa1e6be3a9fd2fc919e103f44e6f"
|
resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.18.8.tgz#fc8e6af03ace9050da49f4108334aa3d0a3bdf3d"
|
||||||
integrity sha512-AWGFMwCdQg4C/hJIhnnWS4ieClnWMkVmV9sX29jpLYYMEb7QGBe1t9UsWvgBh1QiXePUh4u+zGFQk27duHB6rw==
|
integrity sha512-Z3nNEmzkWdpHQPgjozGqk8XcuhP/hXP1C64Wtg9V+VO9eEc8eNFJFJ6If62f1cuOh0FaRwHqxBT7OzhOAUpFTA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/polyfill" "^7.8.3"
|
"@babel/polyfill" "^7.8.3"
|
||||||
"@babel/runtime" "^7.8.4"
|
"@babel/runtime" "^7.8.4"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user