Articles tagged with 'Rave'

Upgrading to Rave 2018.1

One of the changes in the next Medidata Rave release, Rave 2018.1.0, is that standard fields in Edit Checks must have a Record Position of 0. This has long been a recommended best practice but up till now has not been required. Rave will now check that the Record Position is correct when saving an edit check in Architect, when uploading an Architect Loader spreadsheet and when publishing a Draft. If you try to publish a Draft with invalid Record Positions you'll see this error message:

Publish error

There is a good reason for enforcing this rule - it means that there will be no confusion between standard fields and log fields when executing the Edit Check. But if you have existing studies or libraries it may take hours of work for each Draft to locate and update Edit Checks. Unless you're using TrialGrid!

TrialGrid's Diagnostic 0027 analyses all Edit Checks and Derivations, quickly showing you which ones need to be updated:

Diagnostic 0027

and then updating them is as simple as clicking the 'Fix' button. In minutes you can have reviewed and corrected them all!

Diagnostic 0027 is one of the 79 Diagnostics available now to all existing TrialGrid users. We have Diagnostics to help with other upcoming changes in Rave 2018.1.0 and with upgrading to RaveX. As and when Medidata introduce new features and enhancements in Rave Architect, we ensure that TrialGrid is up to date and compatible with the latest changes, and look for ways we can help with upgrades.

Contact us if you would like a demo or to know more.


If you haven't heard of Unicode you have certainly seen it. You are seeing it now since Unicode is the standard for the encoding of characters viewable in Web Browsers and on computers in general. As of this writing, version 10 of the standard includes more then 136,000 characters from multiple writing systems and Medidata Rave supports the Unicode standard both for study designs and for data collection. So what is the problem?

Actually, there is no problem so long as you know what characters from the Unicode standard are being used in your study, where they are and how they display and appear in outputs.

Unicode in Study Design

If you are building your study in Japanese or localizing it to Russian, Armenian or Greek then having the full set of Unicode characters to use is vital. For studies in English you may want to stick to the set of 128 characters known as ASCII (a-Z, 0-9 and symbols). But sometimes you can be surprised by characters that aren՚t what you think they are…

Did you spot those alternative characters hiding in the last sentence?

characters that aren՚t what you think they are…


characters that aren't what you think they are...

Still can't see it? Hint: It's the ՚ and the … The differences are (or at least, may be) subtle on the screen but when we render them in a Rave PDF they appear quite different:

Apostrophe and Ellipsis

It is very hard for the human eye to distinguish between these characters the way they are rendered in Browsers but they are different characters and the font that Rave uses to display characters won't have a way to render all 135,000 possible characters so it is best (in English studies at least) to stick to characters that appear in the limited ASCII set of characters that all fonts cover well.

Be especially wary of text that is cut and pasted from web pages, Word and Excel or from PDF documents. It is very tempting to copy verbatim from a Protocol document but word processors use all kinds of character variants to make writing look better on the screen or in print. You can't even trust the spaces in these documents because Unicode defines at least 20 different "empty" space characters of different widths including one that has no width at all (i.e. it is invisible!)

Tip: TrialGrid Diagnostic 70 will identify and highlight non-ASCII characters, even invisible ones

Unicode in Study Data

If unexpected characters in study design can cause strange PDF outputs, unexpected or unwanted characters in the clinical data can be real poison. A study that collects data in the English language might expect that all the text data in the study is in ASCII. However, Rave will accept data input to text fields of any Unicode character so the same problems of cut & pasted content can occur. Rave is 100% Unicode compatible so it will happily take, store and output any Unicode content but SAS and other analysis programs may have to be set to accept non-ASCII content.

In English studies you want to identify non-ASCII content at the point of entry. This can only be done with a Custom Function that looks at the content of a text field and determines if any of the characters are outside the ASCII range. A quick search of the web will throw up simple code which will return true if it finds a non-ASCII character in the input string:

    //Take string from datapoint.Data or datapoint.StandardValue
    string s = "characters that aren՚t what you think they are…";  

    foreach (char c in s)
        if (((int)c) > 127) 
            return true; 
    return false;

Tip: TrialGrid contains a CQL extension that makes this as easy as using FieldName.IsNotAscii in an Edit Check.


Rave handles Unicode really well and web browsers are very good at displaying a wide range of Unicode characters but not all characters can be displayed by all systems so be careful what you put into your study design and what you collect in your study data. Being able to cut and paste text between systems is great for productivity but can have unintended consequences.

New Study Build Diagnostics

When demonstrating TrialGrid we often have suggestions for new Diagnostics we could add to further help ensure that Rave study builds avoid common mistakes and conform to best practices.
Recently we've added 10 new Diagnostics, bringing the total available up to 64. Here are some highlights from the new batch of Diagnostics:

Edit Check Diagnostics

  • Matching Check Steps and Actions: if the Folder, Form and Field specified in a Check Action doesn't have a 'matching' Check Step, then the Edit Check might not behave as expected. This Diagnostic identifies Edit Checks where a Check Action doesn't have a matching Check Step.

  • Field Record Positions: a new Diagnostic flags any Edit Checks and Derivations which have a Standard Field without Record Position of 0 or Log Fields which do have Record Position of 0. Both of these conditions might lead to the Edit Check not firing when expected.

  • Coded Value not in Data Dictionary: a very common pattern in Edit Checks is to compare the Coded Value of a Field against a value in the Field's Data Dictionary. For example (in CQL):

    CQL Edit Check

    However Rave Architect doesn't enforce that the static value ('Y') in the example above exists in the Data Dictionary associated with the Field, so its possible to create Edit Checks which can never fire. QC and testing should uncover these, but a quicker and faster way to avoid these errors is to run the TrialGrid Diagnostic:


    and then to use the TrialGrid Edit Check editor to select a valid entry from the Data Dictionary:


  • Dynamic Search Lists on multiple Fields: A Dynamic Search List should not be used on multiple Fields sharing the same Variable. If a DSL is applied to multiple Fields, Rave will refuse to publish the CRF version.

RaveX upgrade compatibility

  • IsPresent Check Action: Rave 2016.4 introduced a new Check Action 'IsPresent' which can be used in place of an 'always true' Custom Function. However RaveX requires use of this new Check Action. Our Diagnostic lists Check Actions using an 'always true' style Custom Function and can automatically replace them with the new Check Action.

  • Custom Function blacklist: RaveX will blacklist various methods used in C# Custom Function code to prevent security issues in its single-instance multi-tenant environment. This Diagnostic will search through Custom Function code to identify any which might need to be modified.

Study build best practices

  • Unused objects: if any Data or Unit Dictionaries or Custom Functions are not used in the study this might higlight an issue with the study build. If they're not needed they can be quickly removed from this Diagnostic.

  • Empty objects: similarly, this new Diagnostic flags up any Dictionaries with no Entries, Custom Functions with no code or Forms with no Fields

  • Default Value not in Data Dictionary: if a Field has a Default value and a Data Dictionary, then the Default value should exist in the Data Dictionary. This Diagnostic will find any defaults which are not in the associated Data Dictionary.

TrialGrid Diagnostics take a time-consuming activity that requires expert knowledge and transform it into a few clicks to get assurance of conformance to best practice and a full PDF report output to document the results. With more than 60 Diagnostics (and more being added all the time), using TrialGrid could save your Study Builders hundreds of hours of manual effort.

Interested? You can read more about TrialGrid features on our tour page