knopkem/dicomweb-pacs

clearcanvas pacs server

Closed this issue · 7 comments

hi
study list ok
but dicom image view error Error:
Error: ENOENT: no such file or directory, access 'C:\dicomweb-pacs-master\data\1.2.392.200036.9125.2.6813891156995.64933627321.4872205\1.2.392.200036.9125.9.0.504321582.235964996.257646405'
23:17:02.912 ERROR ENOENT: no such file or directory, access 'C:\dicomweb-pacs-master\data\1.2.392.200036.9125.2.6813891156995.64933627321.4872205\1.2.392.200036.9125.9.0.504321582.235964996.257646405'
{"errno":-4058,"code":"ENOENT","syscall":"access","path":"C:\dicomweb-pacs-master\data\1.2.392.200036.9125.2.6813891156995.64933627321.4872205\1.2.392.200036.9125.9.0.504321582.235964996.257646405"}
Error: ENOENT: no such file or directory, access 'C:\dicomweb-pacs-master\data\1.2.392.200036.9125.2.6813891156995.64933627321.4872205\1.2.392.200036.9125.9.0.504321582.235964996.257646405'

Hi could you give more infos about how you connected it to clear canvas (e.g. using c-get or c-move).
If images are not found I suspect that clear canvas refused to send the images. The usual reason for this is either firewall or the dicomweb server was not whitelisted at clear canvas side.

firewall close
const config = {

source: {
  aet: "interMEDIAPacs",
  ip: "127.0.0.1",
  port: "104"
},
peers: [
  {
    aet: "interMEDIAPacs1",
    ip: "127.0.0.1",
    port: "108"
  }],
logDir: "./logs",
storagePath: "./data1",
webserverPort: 4000,
qidoMinChars: 0, // do not issue c-find if search contains less characters
qidoAppendWildcard: true, // auto append * for patient name query
permissiveMode: true, // when set to false, all AETs able to query and push need to be in peers
verboseLogging: false // enable verbose logging to std::out (contains DIMSE output)

};

module.exports = config;

Hi, sorry I confused this with dicomweb-proxy. So you must have pushed (C-Store) the data from interMEDIAPacs1 to the pacs (interMEDIAPacs).
What's weird is that your storagePath is "./data1" but the error message shows that it tries to load the data from ..'data', so maybe this is the issue. Will have a look later. In the meantime you could change it back to the default and try pushing it again.

Hi
Data1 change Data but the problem not solved

const config = {

source: {
aet: "interMEDIAPacs",
ip: "127.0.0.1",
port: "104"
},
peers: [
{
aet: "interMEDIAPacs1",
ip: "127.0.0.1",
port: "108"
}],
logDir: "./logs",
storagePath: "./data",
webserverPort: 4000,
qidoMinChars: 0, // do not issue c-find if search contains less characters
qidoAppendWildcard: true, // auto append * for patient name query
permissiveMode: true, // when set to false, all AETs able to query and push need to be in peers
verboseLogging: false // enable verbose logging to std::out (contains DIMSE output)

Hi,
if the system doesn't find the images, it means that the database and the filesystem are not in sync. This can happen if:

  • the data was deleted
  • the storage path was changed in the config
  • the storage path was renamed
  • (the pacs uses an outdated dicom-dimse-native dependency that stores the data in the wrong place - this should not happen)
    after importing the data.

So please check if there is anything stored here: C:\dicomweb-pacs-master\data.
If you want to start from a clean database: just delete the storage path (data) which deletes both the data and the sqlite database. Then reimport the data.

didn't happen :)

So here is what must have happened (as otherwise you would not be able to see any studies):

  • the peer (interMEDIAPacs1) correctly pushed (c-store) the data to dicomweb-pacs (interMEDIAPacs)
  • the dicom-dimse-native plugin received the datasets, parsed them and stored it in the sqlite database
  • dicom-dimse-native plugin tried to write the files to disk and must have failed (permission issues?)
  • Now you open ohif viewer and can see the data (as it is only using the database for this)
  • Now you want to view the data: files are not found and the system shows the above issues.
    What is strange that you did not see any error related to file storage.
    You can check the sqlite database (./data/image.db) with https://sqlitebrowser.org/ and should see all the meta data.
    You could try to enable verboseLogging in the config and try pushing images again to check for errors.

On my side I will implement SQL transactions to rollback in case of an error (however this would not help you, you would just not see any studies then). You need to find out why writing to disk fails.