Assumptions
Interpretation and processing of null values is out of scope for the ODM. Systems that support ODM Clinical Data Import will need to specify how they handle NullFlavors in ODM-XML documents. Systems that generate ODM Clinical Data Exports will specify whether or not they include Null Flavor information.
Background
The clinical trials data collection process includes standardized practices for managing incomplete subject data. Most subject data is gathered through interactions with health care professionals though some is entered directly by humans subjects. HL7 has developed a standard set of Null Flavor codes represented in an ISO 21090 enumeration. Clinical study records extracted directly from healthcare records may encounter this coding.
NullFlavors are indicated in ODM Clinical Data through the use of a NullFlavor Annotation.
A NullFlavor Annotation is an ODM Annotation element with a Flag child element with a codelist reference. The referenced codelist defines the set of NullFlavors supported for the study. The Annotation element can be used at any level in the ODM clinical data hierarchy. For ODM V2 that means it can be used with the StudyEventData, ItemGroupData or ItemData elements.
For studies that support collection of NullFlavor information, the ODM MetaDataVersion must include a CodeList to identify the set of NullFlavors that are handled. For the use case where the study data will be sourced by electronic health records using FHIR resources, NullFlavors will be taken from the HL7 Version 3 Null Flavor Value set or a defining value subset,
When the value of a variable cannot be collected, the ItemData element will have the IsNull attribute set to "Yes" and an Annotation child element that provides the applicable NullValue Code.
When a StudyEvent identified in a data request or study workflow does not occur, a Null Value Annotation will be provided as a child element of the StudyEventData element. If a Form/Data Collection Instrument is skipped or has no values entered, the Null Value Annotation is provided as a child element of the ItemGroupData element.
http://build.fhir.org/ig/HL7/fhir-shorthand/reference.html#defining-value-sets
https://terminology.hl7.org/2.0.0/ValueSet-v3-NullFlavor
Use Flag with reference to Codelist in Metadata
Example 1 Support for a pre-specified set of null flavors
The study metadata includes a CodeList with the list of support null flavor values. The CodeListItem definitions provide the Null Flavor codes as the CodedValue attribute. The Decode provides a label that could be displayed on a CRF or in an analysis display.
<MetaDataVersion OID="ODMV2.MDV.NF"> <CodeList OID="STUDY.CL.NullReasonCodelist" Name="NullFlavorValueSubset" DataType="text"> <CodeListItem CodedValue="MSK"> <Decode> <TranslatedText xml:lang="en">masked</TranslatedText> </Decode> </CodeListItem> <CodeListItem CodedValue="NAV"> <Decode> <TranslatedText>temporarily unavailable</TranslatedText> </Decode> </CodeListItem> <Coding Code="V3 Null Flavor Value Set" System="https://terminology.hl7.org/2.0.0/ValueSet-v3-NullFlavor.html" SystemName="v3.NullFlavor" SystemVersion="2018-08-12" CommentOID="ODMV2EX.WhyNoHref"/> </CodeList> </MetaDataVersion>
In the ODM ClinicalData element, ItemData elements where IsNull is "Yes" include an Annotation element with a Flag element with the CodeListOID attribute set to the OID for the Null Flavors codelist defined in the Metadata.
In this example the Annotation CodeListOID value "STUDY.CL.NullReasonCodelist" matches the value of the CodeList OID for the CodeList element that provides the allowable value set.
<ClinicalData StudyOID="ODMV2.NF.EX1.Study" MetaDataVersonOID="ODMV2.NF.EX1.MDV"> <SubjectData SubjectKey="001" TransactionType="Insert"> <StudyEventData StudyEventOID="vstBASE"> <ItemGroupData ItemGroupOID="sfrmDM"> <ItemData ItemOID="svarFHMarriage" IsNull="Yes"> <AuditRecord> <UserRef UserOID="system"/> <LocationRef LocationOID="PhaseForward"/> <DateTimeStamp>2008-03-17T19:21:58+00:00</DateTimeStamp> </AuditRecord> <Annotation SeqNum="67944"> <Flag CodeListOID="STUDY.CL.NullReasonCodelist">Not Applicable</Flag> </Annotation> </ItemData> </ItemGroupData> </StudyEventData> <StudyEventData StudyEventOID="vstWEEK1"> <ItemGroupData ItemGroupOID="sfmECG"> <AuditRecord> <UserRef UserOID="system"/> <LocationRef LocationOID="PhaseForward"/> <DateTimeStamp>2008-03-17T19:21:58+00:00</DateTimeStamp> </AuditRecord> <Annotation SeqNum="67944"> <Flag CodeListOID="STUDY.CL.NullReasonCodelist">Masked</Flag> </Annotation> </ItemGroupData> </StudyEventData> </SubjectData> </ClinicalData>
Example 2 Allow any values from HL7 Null Flavor Value Set
The CodeList definition uses an ExternalCodeList element to identify the dictionary and version. The Coding element provides the URI for the HL7 Null Flavor Valuelist.
<MetaDataVersion OID="ODMV2.NF.EX2.MDV"> <!-- Study Event, ItemGroup and Item definitions not shown --> <CodeList OID="STUDY.CL.NullReasonCodelist" Name="NullFlavorValueSubset" DataType="text"> <ExternalCodeList Dictionary="HL7 Null Flavor Value Set" Version="2018-08-12"/> <Coding Code="V3 Null Flavor Value Set" System="https://terminology.hl7.org/2.0.0/ValueSet-v3-NullFlavor.html" SystemName="v3.NullFlavor" SystemVersion="2018-08-12" CommentOID="ODMV2EX.WhyNoHref"/> </CodeList> </MetaDataVersion>
The ClinicalData element illustrates use of Null Flavor Annotation for an ItemGroupData (form) where no clinical data is included. The Annotation element appears following the AuditRecord element.
<ClinicalData StudyOID="ODMV2.NF.EX2.Study" MetaDataVersonOID="ODMV2.NF.EX2.MDV"> <SubjectData SubjectKey="002" TransactionType="Insert"> <StudyEventData StudyEventOID="vstWEEK3"> <ItemGroupData ItemGroupOID="sfrmLB-biomarker"> <AuditRecord> <UserRef UserOID="system"/> <LocationRef LocationOID="UCSD"/> <DateTimeStamp>2019-03-17T19:21:58+00:00</DateTimeStamp> </AuditRecord> <Annotation SeqNum="67944"> <Flag CodeListOID="STUDY.CL.NullReasonCodelist">NI</Flag> </Annotation> </ItemGroupData> </StudyEventData> </SubjectData> </ClinicalData>
References
V3 Null Flavor Value Set | https://terminology.hl7.org/2.0.0/ValueSet-v3-NullFlavor |
FSH for Code Subset Definitions | http://build.fhir.org/ig/HL7/fhir-shorthand/reference.html#defining-value-sets |