All Projects → knopkem → dicom-dimse-native

knopkem / dicom-dimse-native

Licence: other
node js native addon for dimse services

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects
Roff
2310 projects
Makefile
30231 projects

Projects that are alternatives of or similar to dicom-dimse-native

dicomweb-pacs
Easy to use DICOMWEB enabled PACS with DIMSE services based on sqlite database
Stars: ✭ 42 (+27.27%)
Mutual labels:  native, dicom, pacs, dimse
dcmjs-dimse
DICOM DIMSE implementation for Node.js using the dcmjs library
Stars: ✭ 28 (-15.15%)
Mutual labels:  dicom, dimse
wolfpacs
WolfPACS is an DICOM load balancer written in Erlang.
Stars: ✭ 1 (-96.97%)
Mutual labels:  dicom, pacs
Niffler
Niffler: A DICOM Framework for Machine Learning and Processing Pipelines.
Stars: ✭ 52 (+57.58%)
Mutual labels:  dicom, pacs
DICOM.jl
Julia package for reading and writing DICOM (Digital Imaging and Communications in Medicine) files
Stars: ✭ 45 (+36.36%)
Mutual labels:  dicom, pacs
neurdicom
RESTful PACS server with plugins
Stars: ✭ 97 (+193.94%)
Mutual labels:  dicom, pacs
mowoli
Mowoli - A Modality Worklist with RESTful HTTP API
Stars: ✭ 17 (-48.48%)
Mutual labels:  dicom, scp
DICOMClient
DICOM utilities for anonymizing, viewing and uploading to a PACS
Stars: ✭ 40 (+21.21%)
Mutual labels:  dicom, pacs
Zaloha2.sh
Small and simple directory synchronizer (a BASH script)
Stars: ✭ 50 (+51.52%)
Mutual labels:  find, scp
dicom-standard-chinese
Chinese translation of DICOM standard, DICOM协议中文版
Stars: ✭ 26 (-21.21%)
Mutual labels:  dicom, pacs
parcl
Gradle plugin for bundling your Java application for distribution on Windows, Mac and Linux
Stars: ✭ 52 (+57.58%)
Mutual labels:  native
AndroidSSH
Simple SSH and SFTP client for Android
Stars: ✭ 95 (+187.88%)
Mutual labels:  scp
kotlin-native-mobile-multiplatform-example
Code sharing between iOS and Android with Kotlin native
Stars: ✭ 52 (+57.58%)
Mutual labels:  native
generator-omaha
Yeoman generator designed to help you craft sustainable code for the modern web
Stars: ✭ 12 (-63.64%)
Mutual labels:  native
teaful
🍵 Tiny, easy and powerful React state management
Stars: ✭ 638 (+1833.33%)
Mutual labels:  store
qupath-chcapi-extension
Extension to QuPath application adding support for reading from Google Cloud Healthcare API.
Stars: ✭ 13 (-60.61%)
Mutual labels:  dicom
AntSword-Store.github.io
AntSword 插件市场,新插件上架申请、后门插件举报
Stars: ✭ 28 (-15.15%)
Mutual labels:  store
auth0-ios-swift-sample
Auth0 Integration Samples for iOS Swift
Stars: ✭ 55 (+66.67%)
Mutual labels:  native
react-native-paginated-listview
A simple paginated react-native ListView with a few customization options
Stars: ✭ 14 (-57.58%)
Mutual labels:  native
pylidc
An object relational mapping for the LIDC dataset using sqlalchemy.
Stars: ✭ 88 (+166.67%)
Mutual labels:  dicom

Build Status GitHub issues FOSSA Status

Greenkeeper badge

dicom-dimse-native

Nodejs native addon for DICOM DIMSE services using the DCMTK DICOM c++ toolkit.

Supported DIMSE services

  • C-Echo as SCU and SCP
  • C-Find as SCU and SCP
  • C-Move as SCU and SCP
  • C-Get as SCU and SCP
  • C-Store as SCU and SCP

Features

  • build on robust c++ DICOM framework
  • prebuilds available for: macos, windows, linux
  • extended character set support
  • supports compression: JPEG, JPEG-LS, RLE, JPEG 2000
  • typescript support
  • simple to use

Roadmap:

  • Worklist SCP and SCU

How to install

This package uses prebuild to fetch precompiled binaries, so provided your platform is supported, all you need to do is:

npm i -s dicom-native-addon

Otherwise install will try to compile the sources for your platform, you will need:

  • CMake installed and in path
  • a working c++ compiler (vs 2015+ or g++5.3+)

Examples

run the examples: npm run example:[echoscu|findscu|getscu|movescu|storescu|storescp]

PACS-server

Features:

  • ECHO, FIND, MOVE, GET and STORE-SCP
  • sqlite db backend
  • multithreaded association handling
import { startStoreScp, storeScpOptions } from 'dicom-dimse-native';

const scpOptions: storeScpOptions = {
    source: {
        aet: "MY_AET",
        ip: "127.0.0.1",
        port: 9999,
    },
    peers: [
        {
            aet: "TARGET_AET",
            ip: "127.0.0.1",
            port: 5678
        }
    ],
    storagePath: "path_to_storage_dir",
};

startStoreScp(scpOptions, (result) => {
    console.log(JSON.parse(result));
});

Move-SCU

 import { moveScu, moveScuOptions } from 'dicom-dimse-native';

 const moveOptions: moveScuOptions =
    {
        source: {
            aet: "MY_AET",
            ip: "127.0.0.1",
            port: 9999
        },
        target: {
            aet: "TARGET_AET",
            ip: "127.0.0.1",
            port: 5678
        },
        tags: [
            {
                key: "0020000D",
                value: "1.3.46.670589.5.2.10.2156913941.892665384.993397",
            },
            {
                key: "00080052",
                value: "STUDY",
            },
        ],
        destination: "MY_AET", // e.g. sending to ourself
        verbose: true
    };
    moveScu(moveOptions, (result) => {
        console.log(JSON.parse(result));
    });

Find-SCU

import { findScu, findScuOptions } from 'dicom-dimse-native';

const options: findScuOptions = {
  source: {
    aet: "MY_AET",
    ip: "127.0.0.1",
    port: 9999
  },
  target: {
    aet: "TARGET_AET",
    ip: "127.0.0.1",
    port: 5678
  },
  tags: [
    {
      key: "0020000D",
      value: "1.3.46.670589.5.2.10.2156913941.892665384.993397",
    },
    {
      key: "00080052",
      value: "STUDY",
    },
    {
      key: "00100010",
      value: "",
    }
  ],
  verbose: true
};

findScu(options, (result) => {
  console.log(JSON.parse(result));
});

For more information see examples.

Result Format:

{
  code: 0 (success) / 1 (pending) / 2 (failure),
  container: null / 'DICOMJSON (only when using c-find)',
  messsage: 'request succeeded' / 'descriptive problem',
  status: 'success' / 'pending' / 'failure'
}

C-FIND results are returned in DICOMJSON format see https://www.dicomstandard.org/dicomweb/dicom-json-format/

License

FOSSA Status

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].