Uploading Bruker Data

1. Introduction

Bruker scanners acquire data in their own proprietary format and structure (e.g. see http://imaging.mrc-cbu.cam.ac.uk/imaging/FormatBruker).

However, the ParaVision software has a DICOM inter-operability layer that allows the scanner user to push data in DICOM format. This allows you to push images but not raw data (fid files) to DICOM servers (such as those built into DaRIS).

You can upload data acquired from a Bruker scanner to DaRIS from the ParaVision GUI or the command line. We routinely use the Bruker client from the command line and GUI. We routinely use DICOM upload from the GUI but not the command line.

If you upload both Bruker and DICOM format of the same data, you will end up with one Study with multiple DataSets of both the Bruker and DICOM types.

The way in which DaRIS knows what to do with your data (be it Bruker or otherwise), is via the citable identifier (CID) of the destination object in DaRIS. You have to tell whatever is uploading your data, the CID of the parent object under which the data will be uploaded.

You should seek advice from your DaRIS support as needed before embarking on any of this!

2. ParaVision GUI

Our approach is to overload the Bruker SUBJECT_id field of the Subject meta-data file with the CID of the destination parent object that the data are destined for in the DaRIS repository. Generally, we use the Subject for this purpose; you specify the Subject CID and then the Study and DataSet objects are auto-created by the Bruker client and DICOM server (if configured correctly).

2.1 Bruker Client

The Bruker client must be installed on the Bruker acquisition computer in a known location and integrated with the ParaVision interface. This should be done by your local DaRIS support. See /wiki/spaces/RCS/pages/4590238.

2.2 Create DaRIS objects

Create the recipient object (e.g. Subject, Study) in the DaRIS repository first with the DaRIS portal. Generally, you just create the Subject and the upload will auto-create the Study and DataSets. However, it may be that you want to pre-create the Study (e.g. a specific longitudinal Study) also.

2.3 ParaVision Acquisition

PV Create Patient

  • At the ParaVision console, create a new patient, and insert the full PSSD identifier of the Subject (e.g. 1.5.10.35) provided by the DaRIS portal in both the PV Patient Name and Registration fields.

PV Create Study

  • PSSD Subject has only one ExMethod (usual case)
    • The PV Study Name can be anything. It is recomended that you put the study id which is generated by Paravision, as the study name.
    • When the data are pushed to DaRIS, a Study and DataSets (Series) will be auto-created.
  • PSSD Subject has more than one ExMethod
    • Specify the ExMethod by providing the full ExMethod identifier ( e.g. 1.5.10.35.2) as the Study name
    • When the data are pushed to DaRIS, a Study and DataSets will be auto-created.
  • PSSD Study has been pre-created
    • Specify the full Study identifier (e.g. 1.5.10.35.1.3), as the study name.
    • The data to be associated with the specified PSSD Study and the DataSets (Series) will be created automatically
2.4 ParaVision Transfer

After the acquisition, you can now use the ParaVision Data manager GUI to transfer the data (in Bruker, DICOM or both formats) to DaRIS. Generally we suggest you send the Bruker first if you are going to do both, but it doesn't really matter.

Your DaRIS support will have configured the DaRIS transfer targets (so ask them what they are).

  • Transfer to DaRIS in Bruker format
    • Start Data Manager in ParaVision
    • Select studies you want to transfer
    • Select the Bruker transfer target e.g. BRUKER - DaRIS from the transfer target list
    • Transfer
  • Transfer to Mediaflux in DICOM format using Paravision
    • Start Data Manager in ParaVision
    • Select studies you want to transfer
    • Select the DICOM transfer target e.g. DICOM - DaRIS from the transfer target list
    • Transfer

3 Command Line

Data in Bruker systems are usually found in a root like /opt/PV5.1/data/nmrsu/nmr

3.1 Bruker Client

The Bruker client can be obtained from the Downloads Page. You should get assistance on its use from your local DaRIS/Mediaflux support. With the client you can specify

  • the server to upload to
  • the data directory to upload
  • the citable ID of the destination parent object or whether to extract the CID from the Subject meta-data file
  • whether to upload the fid, images or both

The client will auto-create Study and DataSet (this is where the actual content goes) objects and locate extracted meta-data in XML fragments (hfi-bruker-study and hfi-bruker-series).

Because the client preserves the Bruker directory structure, you can download it again and re-analyze with ParaVision software.

3.2 DICOM Client

With recent PV (at least 5.1) releases, it's possible to access the built in DICOM client and push to a DICOM server.

In the following scripts (look inside them for argument details), the Bruker study must be supplied with an absolute path. The structure of that path must include the suffix section <something>/data/<user>/nmr/<study>

The Bruker Study structure is

<Study (Session) Directory >
Subject
<Acquisition Directories> 1:N
   imnd
   acqp
   fid
      pdata 
        <Reconstruction Directories> 1:N
           2dseq
           reco
           meta

You can supply data at the <Study> or <Reconstruction> layer.

Wrapper shell scripts are:

  • Export DICOM files to a directory
    • See wrapper dicom-export.sh
  • Direct send DICOM files to a DICOM server
    • See wrapper dicom-send.sh

    • This utilises a command like:

       % /opt/PV5.1/prog/bin/pvDcmExport -cmd DMDTransfer -protocol STORESCU -host <HOSTNAME> -scuAE <calling AET> F -scpAE <server AET> -port <port> -dcmtype MRExport -uid <UID> -log <LOGFILE>-dset <path to data> 
      
  • Export DICOM files, edit with CID, and send to DICOM server
    • See wrapper dicom-export-send.sh
  • For example, a command roughly like this (you need to set your DICOM server credential). The best way to see the arguments is to run the command with no arguments. This is the only documentation (Bruker will help via their support line).