We hope you'll join us for our 4/23 webinar on using data tables to apply reference ranges and AE codes in OC4. For more information and to register, visit https://register.gotowebinar.com/register/2882170018956684555

Migrating all Subjects to a new CRF Version

Hi,

during our trial we added newer versions of some CRFs. Nothing special, just more options in some questions, or additional textfields.
Migrating is very easy because there are no conflicts. 
Today i extracted a dataset from OC and saw, that different versions of CRFs are resulting in different columns for the data fields.

This makes comparing the data more complex, so i would like to migrate all subjects to the newest CRF versions. Is there a easy way to do this? clicking the migrate button for all CRFs in all events for every subject would be a very stressfull way of migration.

Any ideas to solve the Problem?

Thanks 
Patrick Werner
University of Heilbronn

Comments

  • GerbenRienkGerbenRienk Posts: 827 ✭✭✭
    Hi Patrick,
    You could have a look at Selenium, which is a scripting-plug in for Firefox.
    The idea is that you first record everything that is needed to migrate one Subject and save this script/scenario as html-file.
    Then you copy these actions for every Subject into a new file and run that script. 
    On http://en.wikibooks.org/wiki/OpenClinica_User_Manual/DeleteManyRules Linday documented another application of Selenium. It's use is slightly different, but it gives you an idea of how it works.
    I hope his helps,
    Gerben Rienk 
  • kristiakkristiak Posts: 1,338 ✭✭✭
    via Email
    Hi Patrick,

    Yes it is very cumbersome indeed but to my knowledge this is so far the only way- One way is to Gerben Rienks method of extracting all data to MS Access . See http://www.trialdatasolutions.com/tds/howto/datalisting.jsp you then list the look into the table tblClinicalData where all the data is stored together with some metadata in a long narrow table. We have used this method successfully in a number of studies.

    Regards

    Krister
  • haenselhaensel Posts: 602 ✭✭✭
    @pawerner

    Hi Patrick

    Are you using tsv or spss? We're using a post-processing script to aggregate the crf versions. Leave me a message if this is of interest for you.

    Regards,
    Christian

    pawerner said:
    Hi,

    during our trial we added newer versions of some CRFs. Nothing special, just more options in some questions, or additional textfields.
    Migrating is very easy because there are no conflicts. 
    Today i extracted a dataset from OC and saw, that different versions of CRFs are resulting in different columns for the data fields.

    This makes comparing the data more complex, so i would like to migrate all subjects to the newest CRF versions. Is there a easy way to do this? clicking the migrate button for all CRFs in all events for every subject would be a very stressfull way of migration.

    Any ideas to solve the Problem?

    Thanks 
    Patrick Werner
    University of Heilbronn

  • kristiakkristiak Posts: 1,338 ✭✭✭
    via Email
    Hi Christian,

    I would be interested in your post processing scripts. Currently we are using the ACCESS processing developed by Gerben to get the data into one long and "skinny" table from which we ac run queries.

    Regards

    Krister
  • haenselhaensel Posts: 602 ✭✭✭
    @kristiak

    Hi Krister

    I'll leave you a note.
  • haenselhaensel Posts: 602 ✭✭✭
    via Email
    @krister

    Hi Krister

    We use the tool for spss post-processing (but tsv, csv is nearly the
    same) an plan to create a free web-based community service (if there is
    enough interest).
    The tool needs a configuration file (with processing instructions) and
    the source file (spss.zip) and returns the modified version of the
    source file.

    A auto-merge configuration looks like this:

    #########################################################################
    source 'samples/data/example1.spss.zip'
    first_case 3
    merge_groups varname_groups :ignore => [/^StartDate/, /^EventStatus/,
    /^CRFVersionStatus/, /^VersionName/]
    write_zip\
    :sps => 'modified_example1.sps',\
    :dat => 'modified_example1.dat',\
    :zip => 'modified_example1.spss.zip'
    #########################################################################

    => source 'samples/data/example1.spss.zip'
    defines the source file

    => first_case 3
    sets the first_case attribute correctly

    => merge_groups varname_groups :ignore => [/^StartDate/, /^EventStatus/,
    /^CRFVersionStatus/, /^VersionName/]
    these are two commands combined
    - varname_groups makes groups of fields of the same CRF but different
    version
    - merge_groups aggregates the values of the different versions into a
    new field (the original ones are removed)

    => write_zip\
    :sps => 'modified_example1.sps',\
    :dat => 'modified_example1.dat',\
    :zip => 'modified_example1.spss.zip'
    controls the output zip (and the names of the contained files)

    There are more functions for post-processing implemented already and the
    behaviour of the above mentioned functions can be modified with custom
    regular expressions.

    Regards,
    Christian
This discussion has been closed.