-
Notifications
You must be signed in to change notification settings - Fork 4
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
Siemens Special Tab #23
Comments
Good point! Can you provide an example of an xsl and an ismrmrd file? (Does not have to be public) I believe it would be good to consider this already now when were are designing the header class |
Yes sure! I did that for VB17, so probably for the new scanner we have to adapt it again (or maybe its already in the default one for XA or what file siemens_to_ismrmrd will use). I had to change the filendings to txt to attach it here In the xsl the following lines are important:
The filoper.py shows how to pass the custom files to siemens_to_ismrmrd I think the xml was actually not important, I also added some lines to read out the RF Amplifer reference amplitude that is important for me but usually not read, I dont know whether we want to add that? fileoper.py.txt |
I just checked it and in the current version its already included (so I guess that should work with XA61?), so we wouldnt need any specific files for siemens_to_ismrmrd |
Not sure if I understood everything. The current scope of MRPro start with ismrmrd files. We just have to take care that all user parameters are copied to from the ismrmrd header to our header. So maybe you could point me to a converted file somewhere on echo that contains these parameters in the header? |
Ah sorry I think that was unclear from me. As I understood the XML file is not included in the ismrmrd header, but tells the siemens_to_ismrmrd converter what attributes from the Siemens RAW file(.dat) to write where into the header of the ismrmrd (.h5) file. |
There is still some confusion. Siemens XML->XSL Transformation --> ISMRMRD XML embedded in the h5-> ismrmrd python uses xsd file and xsdata to transform this into a dataclass -> our code reads the ismrmrd dataclass The XSL is helpful as this defines the names to be used within ismrmrd and therefore later on in the python code. But it would also be helpful to either get the XML which is emedded in the ismrmrd .h5 (under dataset/XML as a as string. How do you in the end access these values in ptbpyrecon? Afaik we currently only read in a fixed list of attributes. So this might get lost in the ismrmrd to MRPro Kdata code. |
Ah okay sorry, I got confused with XSL and XML. So to be sure: I put an example file on echo under I played around a little, might be helpful:
So in the XML the Special card is under userParameters and then adWipMemBlock or alWipMemBlock (one is double, the other int). In my PTBRecon branch I added something to read in the WipMemBlock: |
So to summarize: All that you ask for is that This is currently accessible via KData.header.misc['userParameters'] (i.e. a bit hidden and not considered part of our stable and tested API) But we could also promote it to one of our "important" Parameters that we put directly under the KData.header For now, we will wait with adding it the KHeader directly, as this is not that crucial for now. But please voice your opinions regarding the promotion, @schuenke @ckolbPTB |
Yes, so if it is accessible from KData.header.misc['userParameters'] that should be fine. There could also be other parameters that people want to access (for me it's e.g. the RF Reference Voltage, which can be saved in the ismrmrd file with a custom XML/XSL file), so if the whole header from the ismrmrd file is accessible in KData that seems like a good solution to me. Should we close this issue for now? We could reopen it if necessary |
Let's keep it open, till the KHeader fields are a bit more settled ;) |
The parameters in the special card are very specific to different uses cases and I don't think image reconstruction algorithms provided via MRpro should depend on them. Also for different sequences the same parameter means something differenet. Therefore I think |
Maybe you missunderstood me, I was wondering if we should provide |
It would be nice if we could load in the attruibutes from the Siemens special tab automatically.
Would it be easiest to add a Dictionary Attribute to the KData Header?
Also to save the Special Tab in the ismrmrd files some small changes in the xls and xlm of siemens_to_ismrmrd are necessary, is that something we want to standardize?
The text was updated successfully, but these errors were encountered: