Grassroots DICOM read-only mirror. Only for Pull Request.

Overview

This is the source code of GDCM. It is available from sf.net website. Official GIT repository is at:

https://sourceforge.net/p/gdcm/gdcm/

For a general introduction/features/limitations/requirement please refer to

http://gdcm.sourceforge.net/

Just a quick note on the build process of GDCM. GDCM build process make use of the cmake software(*). This allow us:

  1. To get rid of the autoconf/autotools insanity
  2. Transparently generate Unix Makefiles, NMake Makefiles, VS8/9/10 Solution, Xcode projects, etc.
  3. Automatic nightly testing, one of the most important things for a robust library/software development process. GDCM development is develop based on the XP definition, and to preserve backward compatibility make sure that code is working from one release to another: each night we configure, we build and we test GDCM. The result are then sent to the dashboard located at:

https://open.cdash.org/index.php?project=GDCM

A continuous dashboard also makes sure that any commit did not introduce any error on another platform, a warning or a broken test...

Therefore you should be able to use GDCM from the bleeding edge without knowing too much about what is going on. All you need to do is have a look at the GDCM dashboard, and if your platform is 'green' then you can update your git copy and compile safely knowing that there is very little chance that something won't work. Cheers !

(*) http://www.cmake.org for more information

For more help you can go online in the GDCM Wiki:

In Particular:

And a page describing each tool can be found at:

Eg:

Need VTK:

Comments
  • BUG: new 64 bit VR type - fixed Win issues (failed build, overflow)

    BUG: new 64 bit VR type - fixed Win issues (failed build, overflow)

    The idea is to use for VR long long instead long (previous VR update in #85 int to long does not work on many platforms, size of long is varying and can be easily same as int type before), also tell compiler about VR's type with enum:long long (C++11).

    File gdcmTagToType.h have to be re-generated, xls file was updated

    Edit 2: done so far, note: many lines are from generated file

    Edit 1: VS 2013 x64 compiler errors: `12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(84): warning C4309: 'initializing' : truncation of constant value 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(93): warning C4309: 'initializing' : truncation of constant value 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(313): error C2766: explicit specialization; 'gdcm::VRToEncoding<0>' has already been defined 12> c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(304) : see previous definition of 'VRToEncoding<0>' 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(313): error C2766: explicit specialization; 'gdcm::VRToType<0>' has already been defined 12> c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(304) : see previous definition of 'VRToType<0>' 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(356): error C2196: case value '0' already used 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(360): error C2196: case value '0' already used 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(369): error C2196: case value '1' already used 12> gdcmDataSet.cxx 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(84): warning C4309: 'initializing' : truncation of constant value 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(93): warning C4309: 'initializing' : truncation of constant value 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(313): error C2766: explicit specialization; 'gdcm::VRToEncoding<0>' has already been defined 12> c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(304) : see previous definition of 'VRToEncoding<0>' 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(313): error C2766: explicit specialization; 'gdcm::VRToType<0>' has already been defined 12> c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(304) : see previous definition of 'VRToType<0>' 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(356): error C2196: case value '0' already used 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(360): error C2196: case value '0' already used 12>c:\users\mi\desktop\gdcm\source\datastructureandencodingdefinition\gdcmVR.h(369): error C2196: case value '1' already used 12> gdcmExplicitDataElement.cxx

    <...>`

    opened by issakomi 17
  • Add support to XRay3DAngiographicImageIOD and optional Slope/Intercept

    Add support to XRay3DAngiographicImageIOD and optional Slope/Intercept

    Have found that an interventional workspot from Philips writes the Slope/Intercept values inside the XRay3DReconstructionSequence. The DCS doesn't give word about this decision.

    Indeed, in the XRay3DReconstructionImageIOD, the multi-frame functional group doesn't define the Pixel Value Transformation as mandatory, but user option.

    This PR adds support to these specific DICOM files.

    opened by djelouze 11
  • Take into account slice thickness in RetrieveSOPInstanceUIDFromZPosition

    Take into account slice thickness in RetrieveSOPInstanceUIDFromZPosition

    Bug: I have RTStruct slices located in [-102.134, -99.1341, -96.1341] along z-axis and the CT slices are located in [-102, -99, -96]. So the SOPInstanceUID was empty because the difference between both was >0.01.

    Solution: I propose to take into account the slice thickness (tag 0x0018, 0x0050) instead of the value of 0.01 if this tag is present.

    opened by tbaudier 11
  • Add python swig typemap for (const char *, gdcm::VL)

    Add python swig typemap for (const char *, gdcm::VL)

    Add a swig typemap for (const char *, gdcm::VL) that takes a byte string (i.e. byte in Python 3 and str in Python 2) to make it possible to use DataElement::SetByteValue() and CSAElement::SetByteValue() from Python 3.

    opened by erikced 9
  • Fixes strange bug causing errors in clang 8.0.0

    Fixes strange bug causing errors in clang 8.0.0

    We have came across a strange error, occurring on older version of xcode only (clang 8.0.0) when debug build is used, compiling with -O2 doesn't manifest this bug.

    It shows up both in GDCM build and in ITK build, see https://open.cdash.org/viewTest.php?onlyfailed&buildid=6236162 , https://open.cdash.org/viewTest.php?buildid=6230072

    The mechanism of the bug is that static function GetTag() of Element class is executed with different template parameters then the calling class when called from inside of templated memer function. Solution is to call Tag(Group,Element) directly. @seanm

    opened by vfonov 7
  • Fix Mitra private dictionary entries

    Fix Mitra private dictionary entries

    • MITRA LINKED ATTIBUTES 1.0 0031,xx20 was listed as IS instead of LO
    • several MITRA OBJECT UTF8 ATTRIBUTES 1.0 entries were OB instead of PN
    • many MITRA PRESENTATION 1.0 entries were missing
    • most of the above, even when present, were missing name attributes
    opened by blairconrad 6
  • Change method to compute inter slice value in RetrieveSOPInstanceUIDFromZPosition

    Change method to compute inter slice value in RetrieveSOPInstanceUIDFromZPosition

    Previously, the inter slice value was based on SpacingBetweenSlice tag. But prefer to compute inter slice value from the difference of z positions of the 2 first slices. Extracted from https://stackoverflow.com/questions/37730772/get-distance-between-slices-in-dicom/41848360#41848360

    Follow https://github.com/malaterre/GDCM/pull/125

    opened by tbaudier 6
  • Update CMake Version to support CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON

    Update CMake Version to support CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON

    Using CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON allows the enhanced linker/compiler interactions to detect violations of the "one definition rule" where object symbols in different compilation units with different definitions results in undefined behavior.

    The last two patches in this commit address the found missing name mangling for the 3 jpeglib variants (8,12,16bit) where some symbols were duplicated (which means that only one of them was retained in normal non-interprocedual linkage)

    opened by hjmjohnson 5
  • Jar file expects no lib prefix on Windows

    Jar file expects no lib prefix on Windows

    When compiling on Windows with MinGW, a prefix of "lib" is automatically prepended to the JNI library name. However, the library loader in gdcmJNI.java assumes there is no lib prefix if running on Windows, causing the library to not be found.

    This modification manually disables the "lib" prefix when compiling for Windows.

    opened by cantonios 4
  • COMP: Address warning due to undefined behavior.

    COMP: Address warning due to undefined behavior.

    This patch addresses compiler warnings on OSx (Apple LLVM version 8.0.0 (clang-800.0.38)) concerning undefined behavior when shifting negative numbers:

    warning: shifting a negative signed value is undefined [-Wshift-negative-value]
    
    opened by DVigneault 4
  • Lesser check to be able to import Lossless JPEG

    Lesser check to be able to import Lossless JPEG

    Some Lossless JPEG, Nonhierarchical (Processes 14, Transfer Syntax UID 1.2.840.10008.1.2.4.57) from particular scanners do contain some non-0 value in Se and Ah. Although they are not used, this fact makes impossible to import such DICOMs. Lesser check makes sure even such DICOMs are supported.

    opened by SeriousAlexej 3
Releases(v3.0.20)
Owner
Mathieu Malaterre
Mathieu Malaterre
Go through the readme... fork ....add....send a pull request .... get yourself in the contribution list...Plant the tree

Hacktoberfest 2021 Follow the README below to get started! Table of contents Getting Started The Process The Process star this repo Fork this reposito

Aditya Deshmukh 6 Jan 5, 2022
Repository dedicated for beginner to compete in Hacktoberfest 2021 challenge . Create HactoberFest Pull Request

??️ HACKT0BERFEST-2021 ?? This repo's main purpose is to help newbies ?? to complete the Hacktoberfest Challenge. STEPS:- 1. Create a GitHub account a

null 48 Nov 7, 2022
to learn how to do pull request and do contribution to other's repo

Hacktoberfest-2021 - open-source-contribution An Open Source repository to Teach people How to contribute to open sources. ?? ?? JOIN PVX PROGRAMMING

Shubham Rawat 82 Dec 26, 2022
Beginner-friendly repository to make your first Pull Request and contribute to the open-source.

HacktoberFest Repository ( ?? Star this repository! ?? ) This is a Hacktoberfest-Repository,feel free to make your contributions here this month to wi

Ajinkya Bodke 40 Nov 16, 2022
Contribute on this repository with valid pull request.

Hacktoberfest2021 (Excluded) Hey ?? everyone , hacktoberfest is back with biggest beginners friendly opensource event. Event will start from 1st of Oc

Rishabh Dwivedi 249 Dec 14, 2022
Mirror only. Please do not send pull requests.

README - 08 March 2021 Welcome to the WebM VP8/VP9 Codec SDK! COMPILING THE APPLICATIONS/LIBRARIES: The build system used is similar to autotools.

WebM Project 763 Dec 29, 2022
DICOM images and volumes viewer with advanced processing infrastructure (WPF, ITK, VTK)

DicomViewer DICOM images and volumes viewer with advanced processing infrastructure Stack: WPF (C#) ITK (C++) VTK (C++) Structure: DicomViewer - WPF a

Paweł Piorun 1 Sep 8, 2022
A tool to pull C++ object names from kernel memory

kobject A tool to pull C++ object names from kernel memory Implementation is a bit hacky, lots of room for improvement. Just someting I threw together

Billy Ellis 15 Aug 3, 2022
Register for Hacktoberfest and make four pull requests (PRs) between October 1st-31st to grab free SWAGS

⭐️ Projects and Codes ⭐️ This is beginner friendly repo. We aim for beginners to start with their first contributions to open-source. If you are looki

Joel Sunny Varghese 8 Oct 14, 2022
You may learn how to make successful pull requests and get your first valid open source contribution by using this repository.

Your-First-Contribution You may learn how to make successful pull requests and get your first valid open source contribution by using this repository.

Veshraj Ghimire 24 Aug 23, 2022
Helping everyone to code and creating pull requests

Novice Coding It's an initiative to help create more awareness about Open Source and help introduce many more students to the benefits of FOSS. We wil

Saptarshi Sarkar 19 Oct 15, 2022
all valid pull requests accepted!!

Hacktoberfest_2021 Hacktober Fest Details Important Notice The repository has been marked as "Excluded Project" by Hacktoberfest Algorithm. I have no

Gautam Jain 23 Aug 6, 2022
The official Allegro 5 git repository. Pull requests welcome!

Welcome to Allegro! Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such

Allegro 1.5k Dec 28, 2022
GPS parser which read raw GPS messages, selects only the valid ones and sends them to CAN bus

EagleTRT GPS System for Fenice GPS parser which read raw GPS messages, selects only the valid ones and sends them to CAN bus Compiling GPS Logger gps_

E-Agle Trento Racing Team 1 Nov 11, 2021
A read-only, license friendly, FUSE based btrfs implementation

btrfs-fuse About This is a read-only btrfs implementation using FUSE (Filesystem in Userspace). Although btrfs is already in mainline Linux kernel, th

Qu Wenruo 10 Oct 13, 2022
a convergence of ideas. read-only fossil export

MNOLTH A convergence of ideas. Mnolth is the core environment I use for composing computer music, as well as the multimedia that occasionally accomp

Paul Batchelor 4 Apr 18, 2022
Embed read-only filesystems into any C++11 program w. a single header, zero dependencies and zero modifications to your code

c-embed Embed read-only filesystems into any C++11 program w. a single header, zero dependencies and zero modifications to your code. Usage c-embed al

Nick McDonald 9 Dec 29, 2022
A decompilation of Banjo Kazooie. (MIRROR of https://gitlab.com/banjo.decomp/banjo-kazooie)

banjo Building Grab tools git submodule update --init --recursive Drop in US v1.0 as baserom.us.v10.z64 (sha1sum: 1fe1632098865f639e22c11b9a81ee8f29c7

Nintendo 64 Decompilation Projects 186 Jan 3, 2023
Mirror of Kernel-Assisted Superuser

Kernel-Assisted Superuser for Android KernelSU Like being able to do quick cycles of fastboot boot out/arch/arm64/boot/Image.lz4-dtb, but annoyed by t

Jim Wu 9 Nov 27, 2022