API Reference

Serializers

All serializers share a common constructor (keyword-only arguments) and the to_xml() / to_etree() output methods.

Common constructor arguments

Argument

Default

Meaning

edc_module_name

(required)

EDC project package (e.g. "meta_edc"); used for the ODM SourceSystem / SourceSystemVersion header.

visit_schedule

(required)

The clinicedc VisitSchedule to export.

subject_identifiers

None

Restrict to specific subjects (None = all). Data serializers only.

include_nulls

False

Emit <ItemData IsNull="Yes"/> for null fields. Data serializers only.

protocol_oid

S.<protocol>

OID for the Study / ClinicalData.

protocol_name / protocol_title / protocol_number

from ResearchProtocolConfig

GlobalVariables text.

file_type

"Snapshot"

ODM FileType header attribute.

Output methods

edc_cdisc.serializers.to_xml() bytes

Serialize to UTF-8 XML bytes (XML declaration, pretty-printed).

edc_cdisc.serializers.to_etree() lxml.etree._Element

Return the root <ODM> element.

Classes

class edc_cdisc.serializers.MetadataSerializer

Exports <ODM><Study>…</Study></ODM>GlobalVariables plus a MetaDataVersion (Protocol, StudyEventDefs, FormDefs, ItemGroupDefs, ItemDefs, CodeLists). The MetaDataVersion OID is a content fingerprint (MDV.<sha>).

class edc_cdisc.serializers.ClinicalDataSerializer

Exports <ODM><ClinicalData>…</ClinicalData></ODM> from SubjectVisit + CRF instances. ClinicalData carries StudyOID and MetaDataVersionOID referencing the metadata edition.

class edc_cdisc.serializers.SnapshotSerializer

Exports a combined <ODM><Study>…</Study><ClinicalData>…</ClinicalData></ODM> by composing MetadataSerializer and ClinicalDataSerializer.

class edc_cdisc.serializers.Serializer
class edc_cdisc.serializers.VisitScheduleSerializer

Base classes. Serializer builds the <ODM> root and GlobalVariables; VisitScheduleSerializer adds visit_schedule, subject_identifiers, include_nulls, the event-OID helpers, and get_common_models.

Validation

edc_cdisc.validate_odm(doc) list[str]

Validate an ODM document against the bundled ODM 1.3.1 XSD and check OID reference integrity.

Parameters:

doc – XML bytes or an lxml element.

Returns:

a list of problem strings ("XSD line <n>: <msg>" or "dangling ref: <oid>"); empty list means valid and internally consistent.

See Validation.

Exceptions

exception edc_cdisc.exceptions.NegativeVisitCodeSequenceError

Raised by ClinicalDataSerializer when a SubjectVisit has a negative visit_code_sequence (corrupt state).

exception edc_cdisc.exceptions.ModelAdminNotFoundError

Raised when a CRF model in the visit schedule has no registered ModelAdmin.