Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vendor lock to Siemens #32

Closed
cni-md opened this issue May 3, 2019 · 8 comments
Closed

Vendor lock to Siemens #32

cni-md opened this issue May 3, 2019 · 8 comments

Comments

@cni-md
Copy link

cni-md commented May 3, 2019

Hi,
I like the idea to have only one heuristic to convert all studies, but at the moment the REPROIN structure is vendor locked to Siemens and not fully compatible with Philips.

ExamCard Tree:
Siemens : Tree -> Investigator -> Region -> Exam -> Program

Philips does not have this fixed structure. On a Phlips System the Folder depth is very flexible, but only the ExamCardName [2001,10c8] is stored in the Dicom header.
Of course the fields Referring Physician's Name [0008,009], Performing Physician's Name [0008,1050], or Study Comments [0032,4000] can be used during registration of the subject, but the values have to be entered manually (free text,no selection box!) and are therefore error prone.

In contrast to Siemens the Study Description [0008,1030] is a free text field too, and will not be populated with "Region + Exam" like Siemens does -> error prone.

Naming the scan name "func_task-task1_run-01" is possible, but only [a-z][A-Z][0-9] and -/_.*+() are allowed. Therefore, "PREFIX:" or" _ses-{date}" is not possible.

I guess populating the bids study descripion with Investigator and Experimenter from free text fields will end up in a big mess and can not be nicely hardcoded on a Philips System, but I am interested in an alternative naming of the scan, to have the PREFIX: and {date} functionality working on Philips as well.

Joerg

@yarikoptic
Copy link
Member

Thank you for the detailed report!

PREFIX: - I think it would be ok to support prefix: as well? Ie strip all leading letters followed by a :

{date} - since () is allowed but not party of bids, we can use them and substitute with {} before considering

So should we disregard StudyDescription on Philips and treat Exam card to separate into locator? There should then be a way to add optional suffix which would get stripped so the same study could have multiple cards

@cni-md
Copy link
Author

cni-md commented May 3, 2019

Unfortunately ":" is not allowed. PREFIX_ would be ok. '(date)' is fine.

We are using the ExamCardName as StudyName and for multiple Cards, StudyName_day1, StudyName_day2. Maybe we can use the same syntax as for session: StudyID_StudyName_ses-day1, StudyID_StudyName-ses-day2...

@yarikoptic
Copy link
Member

Well, looking at the original issue for adding PREFIX: handling -- it was done to actually strip automatically added by the scanner prefix. So if yours isn't adding it, no harm, and no need to anyhow support it. So nothing to be done there ;)

Yeah, I guess we could try using ExamCardName to establish the "locator" (place in the hierarchy/name of the study dataset).

Interested to give a try to submit a PR for that and () -> {} mapping?

@cni-md
Copy link
Author

cni-md commented May 6, 2019

Ah, ok. I thought PREFIX is for user specific additional "comments".

Philips will leave [0008,103e] Series Description untouched but will change [0018,1030] protocol name to
WIP <Series Description>with the ugly space if a Patch is installed on the scanner. Patch = custom Sequence. If you have a custom modification installed you will have the WIP flag independend whether the modified sequence is used or not.

I will try to submit a PR for more Philips compatibility.

@yarikoptic
Copy link
Member

oh... I wonder if we should just strip WIP prefix unconditionally if it is found as well. I think it provides no "reproin" knowledge of any kind.

@cni-md
Copy link
Author

cni-md commented May 8, 2019

I think I have to dig deeper into heudiconv.

I removed the WIP and 'protocol_name' and 'series_description' are now identical. That was the easy part.

I am calling
heudiconv -d "{subject}.*.tar.gz" -s MySubject -b -o out --minmeta -f reproin.py -c none

which is the wrong way??

Because the infotoids will never be called and therefore my, (date) to {date} conversion has no effect. The session will not be populated and the output is still sub-MySubject/anat/... and not sub-MySubject/session/anat

@cni-md
Copy link
Author

cni-md commented May 14, 2019

The code (nipy/heudiconv#343) is working if heudiconv is called with --file.

@yarikoptic
Copy link
Member

overall I think we had issues resolved on heudiconv side -- so closing. Please reopen if anything is left TODO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants