Posts by marcelvn


    Thank you very much, I managed to access OHIF with all the extensions!

    In the browser, when I try to console I get this, when clicking a study (HEAD EXP2) to load:


    retrieveTimepoints

    TimepointApi.js:92 Timepoint data retrieval

    MeasurementService.js:349 Subscribing to 'event::measurement_added'.

    MeasurementService.js:349 Subscribing to 'event::measurement_updated'.

    init.js:276 Cornerstone Element Event: cornerstonetoolsmeasurementadded

    MeasurementService.js:287 Failed to map 'CornerstoneTools@4' measurement for definition stack: Cannot read properties of undefined (reading 'toMeasurementSchema')

    addOrUpdate @ MeasurementService.js:287

    source.addOrUpdate @ MeasurementService.js:133

    addOrUpdateMeasurement @ init.js:254

    eval @ init.js:277

    triggerEvent @ C:\ohif\node_modules\cornerstone-tools\dist\cornerstoneTools.js:37767

    addToolState @ C:\ohif\node_modules\cornerstone-tools\dist\cornerstoneTools.js:11343

    _callee$ @ C:\ohif\node_modules\react-cornerstone-viewport\dist\index.umd.js:8539

    tryCatch @ C:\ohif\node_modules\regenerator-runtime\runtime.js:45

    invoke @ C:\ohif\node_modules\regenerator-runtime\runtime.js:274

    prototype.<computed> @ C:\ohif\node_modules\regenerator-runtime\runtime.js:97

    asyncGeneratorStep @ C:\ohif\node_modules\react-cornerstone-viewport\dist\index.umd.js:185

    _next @ C:\ohif\node_modules\react-cornerstone-viewport\dist\index.umd.js:207

    eval @ C:\ohif\node_modules\react-cornerstone-viewport\dist\index.umd.js:214

    eval @ C:\ohif\node_modules\react-cornerstone-viewport\dist\index.umd.js:203

    componentDidMount @ C:\ohif\node_modules\react-cornerstone-viewport\dist\index.umd.js:8588

    componentDidMount @ C:\ohif\node_modules\react-hot-loader\dist\react-hot-loader.development.js:704

    commitLifeCycles @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:22068

    commitLayoutEffects @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25302

    callCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:336

    invokeGuardedCallbackDev @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:385

    invokeGuardedCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:440

    commitRootImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25040

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    commitRoot @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24889

    finishSyncRender @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24296

    performSyncWorkOnRoot @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24274

    eval @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12180

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    flushSyncCallbackQueueImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12175

    flushSyncCallbackQueue @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12163

    scheduleUpdateOnFiber @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:23676

    enqueueSetState @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:13975

    Component.setState @ C:\ohif\node_modules\react\cjs\react.development.js:325

    eval @ OHIFCornerstoneViewport.js:170

    Promise.then (async)

    setStateFromProps @ OHIFCornerstoneViewport.js:163

    componentDidMount @ OHIFCornerstoneViewport.js:177

    commitLifeCycles @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:22068

    commitLayoutEffects @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25302

    callCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:336

    invokeGuardedCallbackDev @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:385

    invokeGuardedCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:440

    commitRootImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25040

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    commitRoot @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24889

    finishSyncRender @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24296

    performSyncWorkOnRoot @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24274

    eval @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12180

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    flushSyncCallbackQueueImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12175

    flushSyncCallbackQueue @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12163

    scheduleUpdateOnFiber @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:23676

    dispatchAction @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:17057

    processStudies @ ViewerRetrieveStudyData.js:305

    eval @ ViewerRetrieveStudyData.js:360

    Promise.then (async)

    _callee3$ @ ViewerRetrieveStudyData.js:355

    tryCatch @ C:\ohif\node_modules\regenerator-runtime\runtime.js:45

    invoke @ C:\ohif\node_modules\regenerator-runtime\runtime.js:274

    prototype.<computed> @ C:\ohif\node_modules\regenerator-runtime\runtime.js:97

    asyncGeneratorStep @ ViewerRetrieveStudyData.js:21

    _next @ ViewerRetrieveStudyData.js:23

    eval @ ViewerRetrieveStudyData.js:23

    eval @ ViewerRetrieveStudyData.js:23

    loadStudies @ ViewerRetrieveStudyData.js:333

    eval @ ViewerRetrieveStudyData.js:410

    commitHookEffectList @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:21997

    commitPassiveHookEffects @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:22031

    callCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:336

    invokeGuardedCallbackDev @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:385

    invokeGuardedCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:440

    flushPassiveEffectsImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25350

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    flushPassiveEffects @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25319

    performSyncWorkOnRoot @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24218

    eval @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12180

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    flushSyncCallbackQueueImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12175

    flushSyncCallbackQueue @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12163

    scheduleUpdateOnFiber @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:23676

    dispatchAction @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:17057

    _callee$ @ asyncComponent.js:36

    tryCatch @ C:\ohif\node_modules\regenerator-runtime\runtime.js:45

    invoke @ C:\ohif\node_modules\regenerator-runtime\runtime.js:274

    prototype.<computed> @ C:\ohif\node_modules\regenerator-runtime\runtime.js:97

    asyncGeneratorStep @ asyncComponent.js:11

    _next @ asyncComponent.js:13

    Promise.then (async)

    asyncGeneratorStep @ asyncComponent.js:11

    _next @ asyncComponent.js:13

    eval @ asyncComponent.js:13

    eval @ asyncComponent.js:13

    addDynamicallyLoadedComponentToState @ asyncComponent.js:33

    eval @ asyncComponent.js:55

    commitHookEffectList @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:21997

    commitPassiveHookEffects @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:22031

    callCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:336

    invokeGuardedCallbackDev @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:385

    invokeGuardedCallback @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:440

    flushPassiveEffectsImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25350

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    flushPassiveEffects @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:25319

    performSyncWorkOnRoot @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24218

    eval @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12180

    unstable_runWithPriority @ C:\ohif\node_modules\scheduler\cjs\scheduler.development.js:818

    runWithPriority$2 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12130

    flushSyncCallbackQueueImpl @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12175

    flushSyncCallbackQueue @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:12163

    discreteUpdates$1 @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:24390

    discreteUpdates @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:1442

    dispatchDiscreteEvent @ C:\ohif\node_modules\react-dom\cjs\react-dom.development.js:5885

    Show 39 more frames

    Viewer.js:107 retrieveTimepoints

    dataExchange.js:25 [DICOMSR] retrieveMeasurements

    TimepointApi.js:92 Timepoint data retrieval

    MeasurementApi.js:234 Measurement data retrieval

    Hi Marcel,



    I tried OHIF with "yarn run dev" using the following config:


    servers: {

    dicomWeb: [

    {

    name: 'CONQUESTSRV1',

    wadoUriRoot: 'http://localhost/api/dicom/wadouri',

    qidoRoot: 'http://localhost/api/dicom/rs',

    wadoRoot: 'http://localhost/api/dicom/rs',

    qidoSupportsIncludeField: false,

    imageRendering: 'wadouri',

    thumbnailRendering: 'wadouri',

    enableStudyLazyLoad: false,

    supportsFuzzyMatching: false,

    },

    ],



    I managed to see the study list in the browser, but I fail to load images in the viewer. Some studies get a forever loading icon in thumbnails view and other get a " Failed to retrieve study data" message.


    In the same machine, the imagens are loading fine via http://localhost/app/ohif/


    Any additional configurations you would recomment? I am trying the github version to see If I can get MPR / MIP views working.



    Thanks


    Hi, Marcel


    Is it possible to download ohif source and do a "yarn run dev" to run the latest github version with your php web server?


    What would be the correct config in the lines of the viewer config file below?



    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',

    Great to see this progression. Just as an additional feedback for your work, I see the focus is on OHIF by now, but I can see query results in weasis as well. When I try do download the series it shows a thumbnail with a question mark and no image.



    This is the log:



    16.08.2022 22:05:21.046 *INFO* [AWT-EventQueue-0] org.weasis.dicom.qr.DicomQrFactory: DICOM Q/R is activated

    16.08.2022 22:05:27.382 *DEBUG* [QIDO-RS] org.weasis.dicom.qr.RsQuery: QIDO-RS request: http://localhost:3002/api/dico…0200010&limit=10&offset=0

    16.08.2022 22:05:27.429 *DEBUG* [QIDO-RS] org.weasis.dicom.qr.RsQuery: QIDO-RS request: http://localhost:3002/api/dico…020000E,00200011,00081190

    16.08.2022 22:05:37.280 *DEBUG* [Dicom Q/R task-pool-3-thread-1] org.weasis.dicom.qr.RetrieveTask: QIDO-RS request: http://localhost:3002/api/dico…020000E,00200011,00081190

    16.08.2022 22:05:37.312 *DEBUG* [Dicom Q/R task-pool-3-thread-1] org.weasis.dicom.qr.RetrieveTask: QIDO-RS request: http://localhost:3002/api/dico…0080018,00200013,00081190

    16.08.2022 22:05:37.343 *WARN* [Dicom Q/R task-pool-3-thread-1] org.weasis.core.api.util.NetworkUtil: http Status 404 - Not Found

    16.08.2022 22:05:37.343 *ERROR* [Dicom Q/R task-pool-3-thread-1] org.weasis.dicom.explorer.wado.LoadSeries: Downloading thumbnail with http://localhost:3002/api/dico…mbnail?viewport=256%2C256 org.weasis.core.util.StreamIOException: Not Found

    at org.weasis.core.api.util.NetworkUtil.readResponse(NetworkUtil.java:184)

    at org.weasis.core.api.util.NetworkUtil.prepareConnection(NetworkUtil.java:157)

    at org.weasis.core.api.util.NetworkUtil.getHttpResponse(NetworkUtil.java:80)

    16.08.2022 22:05:37.361 *INFO* [Series Downloader-pool-4-thread-1] org.weasis.dicom.explorer.wado.LoadSeries: Downloading series of HEAD EXP2 [1]

    16.08.2022 22:05:37.361 *DEBUG* [Series Downloader-pool-4-thread-1] org.weasis.dicom.explorer.wado.LoadSeries: Download DICOM instance http://localhost:3002/api/dico…56913941.892665339.718742 index 0.

    16.08.2022 22:05:37.361 *DEBUG* [Series Downloader-pool-4-thread-1] org.weasis.dicom.explorer.wado.LoadSeries: Download DICOM instance http://localhost:3002/api/dico…56913941.892665340.475317 index 1.

    16.08.2022 22:05:37.361 *WARN* [Image Downloader-pool-7-thread-1] org.weasis.core.api.util.NetworkUtil: http Status 404 - Not Found

    16.08.2022 22:05:37.361 *ERROR* [Image Downloader-pool-7-thread-1] org.weasis.dicom.explorer.wado.LoadSeries: Downloading org.weasis.core.util.StreamIOException: Not Found

    at org.weasis.core.api.util.NetworkUtil.readResponse(NetworkUtil.java:184)

    at org.weasis.core.api.util.NetworkUtil.prepareConnection(NetworkUtil.java:157)

    at org.weasis.core.api.util.NetworkUtil.getHttpResponse(NetworkUtil.java:80)

    16.08.2022 22:05:37.361 *WARN* [Image Downloader-pool-8-thread-1] org.weasis.core.api.util.NetworkUtil: http Status 404 - Not Found

    16.08.2022 22:05:37.361 *ERROR* [Image Downloader-pool-8-thread-1] org.weasis.dicom.explorer.wado.LoadSeries: Downloading org.weasis.core.util.StreamIOException: Not Found

    at org.weasis.core.api.util.NetworkUtil.readResponse(NetworkUtil.java:184)

    at org.weasis.core.api.util.NetworkUtil.prepareConnection(NetworkUtil.java:157)

    at org.weasis.core.api.util.NetworkUtil.getHttpResponse(NetworkUtil.java:80)

    16.08.2022 22:05:37.376 *INFO* [AWT-EventQueue-0] org.weasis.dicom.explorer.DicomExplorer: Add series: 1

    16.08.2022 22:05:37.408 *INFO* [AWT-EventQueue-0] org.weasis.dicom.explorer.wado.LoadSeries: *PERF* type:DICOMDIR seriesUID:1.3.46.670589.5.2.10.2156913941.892665339.860724 modality:CT nbImages:0 size:0 time:47 rate:0 errors:2

    16.08.2022 22:06:51.921 *INFO* [FelixStartLevel] org.weasis.dicom.qr.DicomQrFactory: DICOM Q/R is deactivated

    Actually in the web interface from Luiz, I only get results if I query MARIA* :

    [16/Aug/2022:08:47:02 GMT-0300] "GET /api/dicom/rs/studies?PatientName=MARIA%2A&StudyDate=20220802-20220816" 304 - - 29.295 ms



    If I query "MARIA" , no wildcard, I get no results:

    [16/Aug/2022:08:47:54 GMT-0300] "GET /api/dicom/rs/studies?PatientName=MARIA&StudyDate=20220802-20220816" 204 - - 25.336 ms



    I couldnt get any results in weasis even with caps lock and wildcard, though:

    [16/Aug/2022:08:48:54 GMT-0300] "GET /api/dicom/rs/studies?00100010=MARIA*&00080020=20220716-20220816&includefield=00080020,00080030,00080050,00080061,00080090,00081030,00100010,00100020,00100021,00100030,00100040,0020000D,00200010&limit=10&offset=0" 200 831 - 32.909 ms

    And the dgate64.exe in the server must be that current version on GiHub, not the release one.

    I downloaded the whole github version to try..



    This is from weasis log:


    16.08.2022 08:19:29.692 *DEBUG* [QIDO-RS] org.weasis.dicom.qr.RsQuery: QIDO-RS request: http://localhost:3002/api/dico…0200010&limit=10&offset=0



    Then this is from powershell console (API)


    [16/Aug/2022:08:19:29 GMT-0300] "GET /api/dicom/rs/studies?00100010=maria&00080020=20220809-20220816&includefield=00080020,00080030,00080050,00080061,00080090,00081030,00100010,00100020,00100021,00100030,00100040,0020000D,00200010&limit=10&offset=0" 204 - - 22.087 ms




    And this is from conquest server status:


    [CONQUESTSRV1] UPACS THREAD 33: STARTED AT: Tue Aug 16 08:19:29 2022

    [CONQUESTSRV1] Calling Application Title : "CONQUESTSRV1 "

    [CONQUESTSRV1] Called Application Title : "CONQUESTSRV1 "

    [CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 32768

    [CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.2.1" 1

    [CONQUESTSRV1] (StudyRootQuery) search level: STUDY

    [CONQUESTSRV1] C-Find (StudyRoot) located 0 records

    [CONQUESTSRV1] UPACS THREAD 33: ENDED AT: Tue Aug 16 08:19:29 2022

    [CONQUESTSRV1] UPACS THREAD 33: TOTAL RUNNING TIME: 0 SECONDS

    Hi,

    Don't use fuzzy in query Params. You get a empty result if you do it

    Ok.. I checked with weasis, listening on port 3002, powershell console shows



    App listening on port 3002!

    [16/Aug/2022:06:47:23 GMT-0300] "GET /api/dicom/rs/studies?00080020=20220816-20220816&includefield=00080020,00080030,00080050,00080061,00080090,00081030,00100010,00100020,00100021,00100030,00100040,0020000D,00200010&limit=10&offset=0" 204 - - 659.987 ms



    But I get no results in the viewer as well.


    Yes, that message is what I get in powersheel console listening on port 3002.

    Ok, thanks for looking into it. I am more on the diagnostic side, but always curious about dicom networking.


    I adjusted the settings accordingly as possible, still geting the same result.


    Will try to find some time to read about ohif and how it could be integrated with your API.


    Thanks again.

    Thanks for your suggestion, Jweste, really apreciated.


    But I guess that involves messing with OHIF code, skills that unfortunately are out of my knowledge...


    As far as I can go now by now is to change the basic config, sorry.


    servers: {

    dicomWeb: [

    {

    name: 'ConquestDicomWeb',

    wadoUriRoot: 'http://localhost:3002/api/dicom/wadouri',

    qidoRoot: 'http://localhost:3002/api/dicom/rs',

    wadoRoot: 'http://localhost:3002/api/dicom/wadouri',

    qidoSupportsIncludeField: false,

    imageRendering: 'wadouri',

    thumbnailRendering: 'wadouri',

    enableStudyLazyLoad: false,

    supportsFuzzyMatching: false,

    },

    ],

    Hi, I am way over the level of this topic, but good to see it developed. Just to add some feedback, I managed to acces the built in webserver with the basic conerstone viewer to view some images. Well done!


    I tried to run OHIF, a more advanced cornerstone based viewer with the API.

    In powershell console I can see:


    "GET /api/dicom/rs/studies?PatientName=maria&limit=25&offset=0&fuzzymatching=false&includefield=all&StudyDate=20220715-20220815"


    Note I set FuzzyMatching to false, but I couldnt get any result to show.




    Also, trying Weasis with a DicomWeb node configured (http://localhost:3002/api/dicom/rs)


    In powershell console I see:

    "GET /api/dicom/rs/studies?00100010=maria&00080020=20220801-20220815&includefield=00080020,00080030,00080050,00080061,00080090,00081030,00100010,00100020,00100021,00100030,00100040,0020000D,00200010&limit=10&offset=0"


    I couldnt get any results either.



    I know it is very ealy developement, but if those two viewers could be easily integrated with conquest it would be awesome.


    Thanks for your efforts

    Unfortunately I only download studies from a third party PACS and some of those I store. I dont have access to change the scanner settings.


    The viewers I use (radiant and microdicom) offer DICOM send feature that only works for series, study and patient level, I believe.


    Thanks for your reply, just to make things clear to me.

    Hi,


    When conquest receives a MR study (Philips Achieva), each sequence is showed in the database with the first slice only. I guess that's some sort of multiframe issue? What other info should I get?


    I tried sending the same study with radiant and microdicom, got the same result.



    Thanks,

    Thanks for the clarification.. I will have to sudy some lua to get to understand how to pass that..


    So to pass dicom tags 0029,1050 (window center) and 0028,1051 (window width) to save JPGs, the modifications should be done directly in browserdisplay.lua, as I understand

    Hi, as always, thanks for the great software that conquest is.


    Sometimes I have issues with window center and width when using the "save jpg to..." in dicom.ini


    How the center and width are defined in the resulting jpg? Is there any way to change or control that?


    Thanks