h Harald
on

 

Dear all,

as I searched the web and didn't find any hint on this, therefore now here my question:

Is it possible to declare WhereClauses for ValueLevel metadata not relying on distinct values, but just on the plain existence/absence of data in the referred variable?

Example:

(1) Variable: ISREASND; WhereClause: ISREFID NE <null>
(2) Variable: ISREASND; WhereClause: ISREFID EQ <null>

Is there any possibility to phrase a statement that actually carries that information into the DEFINE.XML when feeding the completed P21 template into the Define.XML Generator (Using Standard: 2.1)?

I tried some wild guesses, but each attempt was ignored by the generator just omitting any VLM information in the generated Define.XML.

If it's not possible at all what I try to achieve, I'll need to seek for a workaround.

Looking forward for any replies.

Best, Harald

Forums: Define.xml

j Jozef
on October 25, 2024

Isn't this explained in the user manual of the Define-XML Generator ?
You can of course use one of the modern, user-friendly GUI based software packages that are available where this is "piece of cake".
And if you took a Define-XML course from CDISC, you could even do this using an XML editor or even NotePad++.
I am away from the office now, but can provide you with a screenshot when I am back.

h Harald
on October 28, 2024

Dear Jozef, about which user manual are you talking? Happy to learn about any additional resource I don't already know.

However, just to avoid any misunderstandings. I'm currently not interested to use any kind of XML editor or additional software packages.

I would just need to know how to populate the WhereClause when using the P21 template for generating Define.xml in case I want to declare a specific line of valuelevel metadata which is applicable when a certain variable has/has not a null value. Nothing more or less.

Thanks.

j Jozef
on October 29, 2024

Hi Harald,
Isn't there a user manual or online documents for how to populate the Excel do generate the define.xml with the P21 Generator?
I do not know of any, as I use other tools.
Every good software has documentation isn't it?
No, you should not use an XML-editor ...

You can always contact me by e-mail for deeper discussions, my address is easy to find out.

Matt
on October 30, 2024

Hi Harald,

 

Our define SME team has an open ticket with the CDISC team to help clarify if CheckValue can be null. I haven't heard back if CDISC has answered yet, but one workaround would be to use NOTIN and the CheckValues would be expected values. 

 

I will follow up here once I hear word back on the escalated communications.

 

Kind regards,

Matt

Lex
on October 30, 2024

Hi Matt,

I indeed saw that recently a ticket was opened at CDISC Jira for this issue. I will follow-up with a response.

Lex Jansen
Co-lead CDISC Data Exchange Standards Team

j Jozef
on October 31, 2024

Honestly said, I see no reason why it should not be possible to have a WhereClause based on the absence of a value (often named "null" in "database" language).

For the above, in the define.xml this would look like:

<def:WhereClauseDef OID="WC.ISREASND.EMPTY">
    <RangeCheck Comparator="EQ" SoftHard="Soft" def:ItemOID="IT.IS.ISREFID">
        <CheckValue></CheckValue>
    </RangeCheck>
</def:WhereClauseDef>

or

<def:WhereClauseDef OID="WC.ISREASND.EMPTY">
    <RangeCheck Comparator="EQ" SoftHard="Soft" def:ItemOID="IT.IS.ISREFID">
        <CheckValue/>
    </RangeCheck>
</def:WhereClauseDef>

Both are equivalent and essentially the same for the computer that reads the XML.

Lex
on October 31, 2024

Jozef is right. The CDISC Define-XML specification does not have the requirement that the CheckValue element cannot be null (i.e., <CheckValue/> or <CheckValue></CheckValue>).

An example of use can be seen in the SDTM Metadata Submission Guidelines v2.0 (https://www.cdisc.org/standards/foundational/sdtm/sdtm-metadata-submission-guidelines-v2-0).

      <def:WhereClauseDef OID="WC.DSDECOD1">
        <RangeCheck Comparator="NE" SoftHard="Soft" def:ItemOID="IT.DS.DSSCAT">
          <CheckValue></CheckValue>
        </RangeCheck>
      </def:WhereClauseDef>
      <def:WhereClauseDef OID="WC.DSDECOD2">
        <RangeCheck Comparator="EQ" SoftHard="Soft" def:ItemOID="IT.DS.DSSCAT">
          <CheckValue></CheckValue>
        </RangeCheck>
      </def:WhereClauseDef>
      <def:WhereClauseDef OID="WC.DSTERM1">
        <RangeCheck Comparator="NE" SoftHard="Soft" def:ItemOID="IT.DS.DSSCAT">
          <CheckValue></CheckValue>
        </RangeCheck>
      </def:WhereClauseDef>
      <def:WhereClauseDef OID="WC.DSTERM2">
        <RangeCheck Comparator="EQ" SoftHard="Soft" def:ItemOID="IT.DS.DSSCAT">
          <CheckValue></CheckValue>
        </RangeCheck>
      </def:WhereClauseDef>

The default stylesheet would show this as:

Empty CheckValue

Lex Jansen
Co-lead CDISC Data Exchange Standards Team

h Harald
on November 11, 2024

Dear All,

thanks for the valuable input. I was hence able to populate the P21 Define.xml template to get the desired output.

================================================

However, another question popped up in the meantime:

Is there any designated operator/keyword/syntax etc. which enables me to tell the P21 template and subsequently the P21 Community Generator that 2 (or more) whereclause conditions are to be handled with a logical OR operator?

E.g., DSCAT EQ <value1> or DSSCAT EQ <value>

It is clear to me as per CDISC Define-XML Specification 2.1 how it eventually should look like within the define, but my question is just about "Is is possible at all to tell P21 template/generator to define a logical OR operator, or not?"

Thanks in advance,

Harald

j Jozef
on November 11, 2024

Honestly said, this is  an omission of the Define-XML standard ...
When you have a WhereClause that has two conditions, they are always linked by "and".
This is not a problem when the left part is the same for both conditions, as you can use the "IN" operator,
e.g. WHERE DSCAT IN [CATA, CATB]
But in your case the left side is different. In your case DSCAT and DSSCAT.
What you can do however, is to make two separate where clauses, one for DSCAT, and one for DSSCAT,
and have them referenced the same properties, i.e. referencing the same ItemRef/ItemDef pair.
I am at a conference right now, but if you contact me by mail (address easy to find), I can generate an example for you and send it to you.

Want a demo?

Let’s Talk.

We're eager to share and ready to listen.

Cookie Policy

Pinnacle 21 uses cookies to make our site easier for you to use. By continuing to use this website, you agree to our use of cookies. For more info visit our Privacy Policy.