I'm trying to convert a 4D DICOM image (x,y,z,time) to a different file format. Something goes wrong, because the output image has lost the time dimension.
I'm trying to decide whether:
the DICOM series is broken -- it's possible that a 3rd party, who anonymized data, removed critical information from the header; or
the conversion code is incomplete -- it simply can't handle this flavour of DICOM
The answer to this will determine whether I have to fix the DICOM, or fix the converter.
I've tried diving into the DICOM standard, to understand what specific header values mean, but I don't find this document helpful; it gives a mere word or two for each header field. I see fields in my data that look suspicious, but I don't know if it's actually wrong, or if I don't understand what it's supposed to be telling me.
I can think of several ways to answer my problem:
Are there any tools out there that can confidently classify a DICOM series as either valid or invalid?
Is there a document which describes precisely what each DICOM header value is supposed to contain?
Is there a better approach to figuring out which is broken -- the image, or the converter?
You are not looking at the right document, you should be looking at PS 3.3 - current. For example:
A.4.3 MR Image IOD Module Table
Or as someone mentioned in the comments use dciodvfy from dicom3tools package.
Related
I am trying to create a circular QR Code. I understand that the typical circular codes require customer readers (Facebook, Kik, TikTok, ShotCode, etc.), but I would like this code to be able to be read by standard devices (ex.: the built-in reader in iOS devices).
I have looked at a stack of reference materials, including:
How can I generate a circular qr-code like a messenger or a kik code?
Generate circular qr-code like a messenger or a kik code using Python
Generate QR codes missing the corner
I've also dug into the (really in-depth) tutorial at thonky.com, and tried to create my own:
From what I can tell, I've kept the finder patterns, the alignment pattern, the timing patterns, the separators, and the dark module intact (see details here). But still no love when I try to read it.
Admittedly, I've taken an existing code (it contains the URL 'https://www.stackoverflow.com') and just chopped off the corners to make it fit. So my assumption is that I've damaged the code enough that the error correction isn't working.
But, would this work at all anyway? If I figured out how to encode it correctly, would it work without the corners? Or is this a useless endeavor to start with?
There is a basic structure for QR codes with specific elements that take part in the decoding process. Some of them are the alignment, the timing pattern, and the finder pattern. One of the elements which seems to be missing is the quiet zone. It's used to separate the code from other objects and surrounds all the data including structuring elements in the code. Have a look on the outer side of codes here and notice the difference. Also, if you look at the points that represent your data cells, some of them partially exist. In other words, some half and quarter circles exist and others are unknown behind the outer frame of your code design. How would it be figured out if it's black or white to be used for decoding? This is the problem. Please check this image to see how data look missing when you crop it with the circle.
Also, if you use any regular QR coder reading application, you will notice that circular QR codes require custom readers. So, the answer to your question is yes. The corners are necessary if you don't use a custom reader and if data exists on them.
If you are interested in academic research details, see this. I hope my answer helps you. :)
I am new to Intel Pintools, and am trying to write a pintool that stops at a given instruction type and then looks for specific instructions following it in the section. I've got the xed decoding working, but I am stuck at the part where I get the actual hex opcode. How can I do that?
I would love to use INS_Opcode() -- but these are instructions that haven't been executed yet (and may never be), so they aren't INS objects. There's xed_operand_values_get_iclass(), but that returns an iclass enum, not the actual primary opcode. I see from the xed header files that there are some raw buffers associated with the various xed structures, but it is not at all clear to me how I can use that to get the information I need. Can anyone enlighten me?
Apparently I missed it the first time I looked at the header files, but there's xed3_operand_get_nominal_opcode(), which does exactly what I need it to. Related: grep is a wonderful thing.
We're writing a parser for ACORD AL3. Read AL3 coming in, write AL3 going out. Nice and simple.
As of right now, it is 99% solid. The only thing that's driving me nuts is the use of "?"s in the ACORD AL3 standard. It appears that they are used as placeholders for fields that do not have values in the message. HOWEVER, that's not the only rule for it, because if it was, the AL3 I'm currently generating would look that the sample files I'm trying to have it match.
So if anyone here knows anything about the rules around AL3 "?"s, that would be great. I've been pouring over the Data Dictionary and the other documentation from ACORD, and I'm seeing nothing to indicate which fields get it, and which ones don't.
Also, if the "?"s are not required for AL3 processing to begin with, that would also be great to know, because then I could just stop worrying about the whole thing.
In the ACORD AL3 standard, from what I recall, if you use a "?" in one of the fields, this tells the receiving system to not overwrite (with blanks) the target field in the user's management system.
There may be individual elements in a group that are valid, but the sender
cannot send them for some reason. The solution is to fill that data element with questions marks (?????) The receiving system will recognize this and not update that field on their system.
In ACORD Al3 "?" means there is not any data in that specific element but that element is much important to maintain the hierarchy. But there is one thing, Coverage groups and Transaction groups will not contains any question mark. that does not means these are not important even these are very much important in Al3 files. But that above mentioned description applies for data group.
Secondly number of question marks in element describe its length.
If anyone need more details related to al3 data, don't hesitate to ask.
I want to change a dicom file's pixeldata.
Directly, that is change it in the image.
But I can't find methods in CC(ClearCanvas) program what I can use!
Also, I do not understand the property of "Rows" and "Colunms".
I have modified pixel data this but not using ClearCanvas. ClearCanvas is an image viewer so I am not sure if this is capable of doing what you are trying to do. Libraries that will do this include DCM4CHE, ImageJ, Pixelmed.
The DICOM standard explains what each tag means. You can find the standard on Wikipedia
http://en.wikipedia.org/wiki/DICOM
It will tell you what exactly the tags Rows and Columns mean.
I'm specifically asking if, and what, is the specification for formatting the text inside a QR code - not how to generate a code (which I can do).
I need to put hCard data into a QR code, however I don't know how to mark the QR code as VCF data (versus URL, text, etc) so the decoder knows what to do.
All the info I've seen online has to do with generating the QR code, not formatting the data inside.
There is no official specification for this -- the QR code spec does not say anything about the contents. Everything I know about the commonly-used and de facto formats and conventions is summarized in this wiki:
https://github.com/zxing/zxing/wiki/Barcode-Contents
Who says you have to pay for this info? just go to this page http://qrcodenet.codeplex.com/ and scroll to the bottom REFERENCES section and you should find a free download like tited 4. ISO/IEC 18004:2006(E) - QR code specification ISOIEC 18004_2006Cor 1_2009.pdf
See http://www.onbarcode.com/qr_code/ for helpful info - both about encoding and generating, and several libraries to use as well.
See http://www.denso-wave.com/qrcode/qrstandard-e.html
and http://www.denso-wave.com/qrcode/aboutqr-e.html
QR Code is a kind of 2-D
(two-dimensional) symbology developed
by Denso Wave (a division of Denso
Corporation at the time) and released
in 1994 with the primary aim of being
a symbol that is easily interpreted by
scanner equipment.
...
QR Code is open in the sense that the
specification of QR Code is disclosed
and that the patent right owned by
Denso Wave is not exercised.
from http://www.denso-wave.com/qrcode/qrstandard-e.html:
QR Code is established as an ISO (ISO/IEC18004) standard. QR Code
specification can, therefore, be purchased from this organization.
Please seach by inputting ISO No.18004 to "Search
and ISO Catalogue".
http://www.iso.ch/iso/en/prods-services/ISOstore/store.html
The official spec is available here from iso.org, but you have to pay for it.
In the past I have found information at http://www.nttdocomo.co.jp/english/service/imode/make/content/barcode/function/, a page which I can not trace (easily?) anymore.