Coder Social home page Coder Social logo

knopkem / dicomweb-pacs Goto Github PK

View Code? Open in Web Editor NEW
93.0 10.0 35.0 67.06 MB

Easy to use DICOMWEB enabled PACS with DIMSE services based on sqlite database

License: Other

JavaScript 82.54% HTML 17.46%
dicomweb pacs dimse dicom lightweight native nodejs javascript dcmtk ohif

dicomweb-pacs's Introduction

dicomweb-pacs

An easy to use PACS with DICOMWEB and DIMSE service support

Description

  • A nodejs tool to easily spawn a PACS server including DICOM viewer connected via DICOMWEB (QIDO-RS and WADO-RS).
  • Comes preinstalled with the popular OHIF DICOM Web Viewer (version 3.8.0).
  • Supports OHIF MPR (vtk.js) feature for viewing volumetric datasets
  • multithreaded
  • sqlite backend

No need for a server, try the standalone desktop edition.

Prerequisite

  • nodejs 12 or newer

Setup Instructions - npm

  • install in empty directory:
    npm init -y
    npm install dicomweb-pacs

  • update config file located in:
    ./node_modules/dicomweb-pacs/config

  • start pacs:
    npx dicomweb-pacs

Setup Instructions - source

  • clone repository and install dependencies
    npm install

  • update config file located in:
    ./config

  • run:
    npm start

  • import DICOM images: use any c-store-scu to push to internal store-scp
    (AET: DICOMWEB_PACS port: 8888)

  • (or use internal store-scu): put DICOM into import directory and run
    npm run import (server needs to be running)

  • open webbrowser and start viewing
    http://localhost:5001

What to modify

  • (optional) change our port or AET

      config.source = {
        aet: "OUR_AET",
        ip: "OUR_IP",
        port: "OUR_PORT"
      };
    
  • add peers to your PACS

      config.peers = [
      {
        aet: "PEER_AET",
        ip: "PEER_IP",
        port: "PEER_PORT"
      }];
    
  • update webserver port:
    config.webserverPort = 5001;

License

MIT

dicomweb-pacs's People

Contributors

knopkem avatar kosherhog avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dicomweb-pacs's Issues

dicom send not accepted

Hi,
Trying to send some dicom to pacs but it's not acceptable after evaluation that if study is compressed (jpeglossless) it was not store in data folder let ne know how to store those study in folder Thanks

Dicomweb-pacs Documentation

Hi knopkem,
Greetings !!!
Can you provide the documentation for this ? About PACS server setup ?

Regards
Ashithosh

mssql

Dear sir,
wishing and thanks for your work on Nodejs-based pacs environment.
how to change db to mssql?

SSL

Hi @knopkem ,

Thank you for working on this project and sharing it with us.

How would you implement SSL on the webserver?

Thank you,

Jin

Is it production ready ??

Dear sir,
wishing and thanks for your work on Nodejs-based pacs environment.
Is it production-ready for Basic file upload from multiple gateways to store a centralized Image archive system in the Linux web server?

Its works

image
Thanks for your greats work.
Question about patient name not showing on the table is that related to OHIF viewer or the DICOM metadata from the PACS?
image

clearcanvas pacs server

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'

Error: Association Request failed: Failed to establish association

root@app:/home/pacs# npx dicomweb-pacs
starting dicomweb-pacs...
stdout: 15:13:59.606 INFO starting...

stdout: 15:13:59.631 INFO web-server listening on port: 5001
15:13:59.631 INFO pacs-server listening on port: 201
15:13:59.631 INFO sending C-ECHO to target: LEXUSWEB_PACS

stdout: 15:13:59.634 INFO {"code":1,"container":null,"message":"Request Parameters: ====================== BEGIN A-ASSOCIATE-RQ =====================\nOur Implementation Class UID: 1.2.276.0.7230010.3.0.3.6.5\nOur Implementation Version Name: OFFIS_DCMTK_365\nTheir Implementation Class UID: \nTheir Implementation Version Name: \nApplication Context Name: 1.2.840.10008.3.1.1.1\nCalling Application Name: LEXUSWEB_PACS\nCalled Application Name: LEXUSWEB_PACS\nResponding Application Name: LEXUSWEB_PACS\nOur Max PDU Receive Size: 16384\nTheir Max PDU Receive Size: 0\nPresentation Contexts:\n Context ID: 1 (Proposed)\n Abstract Syntax: =VerificationSOPClass\n Proposed SCP/SCU Role: Default\n Proposed Transfer Syntax(es):\n =LittleEndianImplicit\nRequested Extended Negotiation: none\nAccepted Extended Negotiation: none\nRequested User Identity Negotiation: none\nUser Identity Negotiation Response: none\n======================= END A-ASSOCIATE-RQ ======================","status":"pending"}

stdout: 15:13:59.635 INFO {"code":1,"container":null,"message":"Requesting Association","status":"pending"}

stdout: 15:13:59.635 INFO {"code":2,"container":null,"message":"Association Request failed: Failed to establish association\n0006:0317 Peer aborted Association (or never connected)\n0006:031c TCP Initialization Error: Connection refused","status":"failure"}

client_loop: send disconnect: Connection reset

Cmake

CMake executable is not found. ! How can i resolve ?

dicomVirtual printing

hi, I want to realize the DICOM virtual printing server, that is: the server as a virtual film printer, can use this library to realize?

Study is removed from the study list

Hello,

I've followed the documentation and deployed the build onto a DigitalOcean Ubuntu droplet. I've loaded a single study locally via the import folder. The set up works fine but often removes the study from the list some hours later. In order to fix the issue, I reboot the host and start the server again.

How would you troubleshoot the issue?

Can't send DICOM file to dicom server

Hello, thank you so much for your prompt update about character set for multi language for patient info.

Now, I have another issue.
We can't send dicom file from my Orthanc to server.

Power shell shows as below ;
"W: No matching AET found for AET:DICOMWEB_PACS"
I don't know which setting or configuration is wrong.

You can check captured screen as below ;
https://youtu.be/49vjmce6-d0

Would you kindly advise me ?

Storage Failures

With the latest code, I'm experiencing a set of failures that seem to be caused by some build issues with dicom-dimse-native. I have a couple of them worked around (mostly to give you some indication of where I'm seeing problems) but I still haven't been able to pull up any images in the OHIF viewer. I'm running on Debian 12 (Bookworm), which is part of the python:3.11 docker image. This container is running on an M1 Mac, so everything builds on install to product ARM binaries. My installation is a source installation (per your instructions).

The two problems I've worked around so far are the missing dicom.dic file and the esdb directory. I worked around those errors by building the two components directly out of the dcmtk-3.6.8 source. I've copied the esdb folder. In the case of the former, I've added the environment variable to set DCMDICTPATH="/root/dcmtk-3.6.8/dcmdata/data/dicom.dic" before starting the server. I've also copied oficonv/data/esdb/* to /usr/local/share/dcmtk-3.6.8/esdb. This clears up a few errors when running the import and I've managed now to get as far as loading the list of studies in the viewer. I have yet to succeed in actually retrieving a study and displaying it, though. When opening the viewer to see a study, I'm getting a 'not available' error.

On oficonv, I did build and install libiconv but cmake doesn't seem to find it in /usr/local.

Some other errors that have popped up -

Failed to create table: patient
storeSCP: Database: storeRequest Failed (Success): 0000:0001 Illegal parameter
DcmSpecificCharacterSet: 'ISO 2022 IR 6' is not supported by the utilized character set conversion library 'Citrus iconv, Version FreeBSD 13.1 (modified)'

FWIW, everything worked fine as of commit c3972552b15f3368b05285912e43cc4cbce39238. That was likely prior to the move to dcmtk 3.6.8.

Happy to provide more information. Thanks for your help.

Study deletion

Hi,
As studies received in data folder , let me know how to delete studies?
Any study limit in it ?

Thanks

integrate with pacs server

i need to connect with pacs server any option in this project?i saw thats its studying data from data folder which is in local, but i have pacs server which storing data in different way

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.