Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/knopkem/dicom-dimse-native
node js native addon for dimse services
https://github.com/knopkem/dicom-dimse-native
cpp dicom dimse find get move napi native pacs scp scu server sql store
Last synced: 11 days ago
JSON representation
node js native addon for dimse services
- Host: GitHub
- URL: https://github.com/knopkem/dicom-dimse-native
- Owner: knopkem
- License: other
- Created: 2020-01-11T09:57:03.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-21T19:13:20.000Z (8 months ago)
- Last Synced: 2024-10-13T11:09:34.108Z (24 days ago)
- Topics: cpp, dicom, dimse, find, get, move, napi, native, pacs, scp, scu, server, sql, store
- Language: C
- Homepage:
- Size: 144 MB
- Stars: 50
- Watchers: 3
- Forks: 19
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.com/knopkem/dicom-dimse-native.svg?branch=master)](https://travis-ci.com/knopkem/dicom-dimse-native)
[![GitHub issues](https://img.shields.io/github/issues/knopkem/dicom-dimse-native)](https://github.com/knopkem/dicom-dimse-native/issues) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fknopkem%2Fdicom-dimse-native.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fknopkem%2Fdicom-dimse-native?ref=badge_shield)[![Greenkeeper badge](https://badges.greenkeeper.io/knopkem/dicom-dimse-native.svg)](https://greenkeeper.io/)
# dicom-dimse-native
Nodejs native addon for DICOM DIMSE services using the DCMTK DICOM c++ toolkit (v.3.6.8).# 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](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fknopkem%2Fdicom-dimse-native.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fknopkem%2Fdicom-dimse-native?ref=badge_large)