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

Quick question on CRF settings

Hi everyone,
I have a study with a lot of follow-up visit (1 to 30).
A lot of variables are in common in these follow-up, some follow-up have exactly the same variables between them (FU1=FU10=FU25; FU2=FU4…), some have more, some have fewer.

I think I have 3 options to do that:
1. Having Hide&Show rules depending on which CRF we are using => 1 FU = 1 CRF
2. Having different CRF with specifics sections => 1 FU = several CRF
3. Having different version of 1 CRF with only the variables needed in each version => 1 FU = 1 CRF

I want to do option 3, what do you think? Will it have an impact on the export?
Do you think of an option 4?
Thank you for your advice.
Romain.
«1

Comments

  • kristiakkristiak Posts: 1,338 ✭✭✭
    What you should do is to develop the CRF's small enough to allow maximum flexibility. Then you set up the 30 different visits (events) and connect the CRFs needed for each visit (event). You can export each visit (event) separately or all together if you are on a powerful server with lots of memory.
    Regards
    Krister
  • RCHENURCHENU Posts: 207
    via Email
    So, option 2 for you.
    Anyone else ? :-)

    Romain.



    From: kristiak
    To: RCHENU
    Date: 04/09/2015 11:58
    Subject: Re: [OpenClinica] Quick question on CRF settings



    What you should do is to develop the CRF's small enough to allow maximum
    flexibility. Then you set up the 30 different visits (events) and connect
    the CRFs needed for each visit (event). You can export each visit (event)
    separately or all together if you are on a powerful server with lots of
    memory.
    Regards
    Krister
  • lindsay.stevenslindsay.stevens Posts: 404 ✭✭✭
    via Email
    - separate events for visits seems to be clearer for users to understand
    study progress

    - try to group together the common items into individual CRFs, e.g. visit
    attendance, lab results, enrolment, assessments. Ideally this grouping will
    also correspond to the difference between one follow up type and another.
    In each follow up event, add the relevant CRFs. I find making a table of it
    in Excel of this helps form and communicate the structure.

    - there may be some minor fine tuning e.g. at a particular follow up you do
    one extra lab test but its not worth adding a new CRF for it. Add it to the
    existing lab CRF with an instruction next to that item indicating that, and
    maybe add a discrepancy note rule to catch errors.

    - as useful as show hide rules can be, it seems that they are a consistent
    source of confusion for users and we end up adding instructions anyway.
    Sections are also a source of confusion. So stick to simple, one page CRFs.
    If needed, use simple conditional hides or make some more elaborate ones
    with onboard JavaScript.

    -CRF versions are best kept for actual CRF versions (or languages), not
    flavours of the same CRF. It can get quite messy when one flavour needs to
    be updated. With languages it is not so bad since just the display text
    changes.

    - the worst thing for data extract is too many item groups. One CRF
    definition per follow up means you have 20+ item groups to merge together
    before you can do anything useful.
  • RCHENURCHENU Posts: 207
    Ok, thank you for your answer. I really want to try different version of one CRF but I still have to work on my list of variables before choosing.

    Romain.
  • RCHENURCHENU Posts: 207
    Hi,
    Lindsay, maybe you can help me on this one :

    On my CRF, all my fields are hidden except the first one which is pre-filled with the name of the follow-up we are in. Once the data entry clerk checks it's indeed the right follow-up and hits save, all the fields needed become available thanks to a rule.
    Is there a way not to show all the message error ? If I have, let say 50 fields, I've got 50 times the same message.
    Do you have any workaround or tell me which script to modify ?

    Thanks a lot,

    Romain.

  • lindsay.stevenslindsay.stevens Posts: 404 ✭✭✭
    via Email
    The error message is annoying but needed to provide feedback to the user to
    indicate why they still on the same screen after saving.

    You could:

    - put the items in a group and target the group with the show rule, which
    will result in just 1 message.

    - use simple conditional display instead; if your control item is a single
    select this should be possible.

    - add some JavaScript to the CRF that modifies the page layout such that
    only 1 copy of the show item message is displayed. They should all have the
    same class and jquery should be loaded already so something like:

    $(function (){
    var showerrors = $(".errorclass");
    showerrors.hide();
    showerrors.first().show();
    });
  • RCHENURCHENU Posts: 207
    Thank you Lindsay for your javascript option.
    In my excel CRF I already have this:



    jQuery(document).ready(function($) {
    var fieldEvent = $("#event").parent().parent().find("input");
    fieldEvent.attr("readonly", true);
    if(fieldEvent.val()===""){
    var event = $(".tablebox_center").find("tbody:first").children("tr:nth-child(1)").children("td:nth-child(2)").text();
    event = $.trim(event);
    fieldEvent.val(event);
    fieldEvent.change();
    }
    });


    in my right_item_text to pre-filled my variable.
    Can you please tell me where to add your function ? Because I tried to add it myself but it didn't work. Sorry, I don't know a lot about javascript.

    Thanks again for your help.

    Romain.
  • lindsay.stevenslindsay.stevens Posts: 404 ✭✭✭
    via Email
    The way I wrote my example function definition is short for the jquery
    document ready part you have. Just add the statements to your current
    JavaScript, before the });.

    You'll need to check the CRF to get what the actual error class is though.
    Go to the page and press F12 to open the debugging panel, or right click an
    error message and choose "inspect element". It will be in the "class"
    attribute. The jquery selector for a class is a period then the class name,
    like $(".classname").

    Maybe it doesn't have a distinguishing class and some other selector is
    required. Test it using the browser debug console. When you're googling,
    look for jquery selectors.
  • RCHENURCHENU Posts: 207
    This is what I do but it doesn't work.



    jQuery(document).ready(function($) {
    var fieldEvent = $("#event").parent().parent().find("input");
    fieldEvent.attr("readonly", true);
    if(fieldEvent.val()===""){
    var event = $(".tablebox_center").find("tbody:first").children("tr:nth-child(1)").children("td:nth-child(2)").text();
    event = $.trim(event);
    fieldEvent.val(event);
    fieldEvent.change();
    }

    var showerrors = $(".aka_err_message");
    showerrors.hide();
    showerrors.first().show();

    });




    this is what I have in Html:

    • [...]

      If I modify the style display from block to none, it works so I think this is the good class but the javascript doesn't work.

      Do you have any idea ?

      Romain.


  • RCHENURCHENU Posts: 207
    in Html:
    div style="display: block;" id="errorMessagesContainer" class="aka_err_message"
    label onclick="getFocused('input274');">[Please complete all required fields.]/label
This discussion has been closed.