Import
ODMXMLTools.importxml
ODMXMLTools.importxml — Functionimportxml(file::AbstractString)Import odm.xml file.
Make node
ODMXMLTools.mekenode!
ODMXMLTools.mekenode! — Functionmekenode!(root::AbstractODMNode, nname::Symbol, attrs::Dict = Dict(); content = nothing, namespace = Symbol(""), checkname = false, checkni = false)Make ODM node in root.
ODMXMLTools.makeclinicaldata!
ODMXMLTools.makeclinicaldata! — Functionmakeclinicaldata!(odm::ODMRoot, soid::String, moid::String)Make ClinicalData in ODM.
Build metadata
ODMXMLTools.buildmetadata
ODMXMLTools.buildmetadata — Functionbuildmetadata(odm::ODMRoot, soid::AbstractString, moid::AbstractString)Build MetaData from MetaDataVersion by StudyOID (soid) and MetaDataVersionOID (moid).
Clinical data table
ODMXMLTools.clinicaldatatable
ODMXMLTools.clinicaldatatable — Functionclinicaldatatable(cd::AbstractODMNode;
itemgroup = nothing,
form = nothing,
event = nothing,
item::Union{Nothing, AbstractString, <: AbstractVector{<:AbstractString}} = nothing,
categ = false,
addstudyid = false,
addstudyidcol = false,
idlnames = nothing,
null = "NULL",
drop = [:StudyEventRepeatKey, :FormRepeatKey])Return clinical data table in long formal. cd should be ClinicalData.
itemgroup- only this ItemGroupOID;form- only this FormOID;item- only this ItemOID;categ- make collumns categorical;addstudyid- add StudyOID as prefix to SubjectKey: "StudyOID_SubjectKey";addstudyidcol- add StudyOID as collumn to dataframe;null= "NULL" - defaultNULLvalues;idlnames- only this types of data will be collected, for example: ItemData, ItemDataInteger, ets (ifnothing` - all will be collected).drop- drop columns.
clinicaldatatable(odm::ODMRoot, soid::AbstractString, moid::AbstractString; itemgroup = nothing)Return ClinicalData table in long formal.
soid- StudyOID;moid- MetaDataVersionOID.
clinicaldatatable(odm::ODMRoot, inds::AbstractVector{Int}; kwargs...)Return ClinicalData table in long formal.
inds- indexes of clinicaldatalist table.
clinicaldatatable(odm::ODMRoot, range::UnitRange{Int64}; kwargs...)Return ClinicalData table in long formal.
inds- indexes of clinicaldatalist table.
clinicaldatatable(odm::ODMRoot; kwargs...)Return ClinicalData table in long formal.
clinicaldatatable(odm::ODMRoot, soid::AbstractString; kwargs...)Return ClinicalData table in long formal.
Other tables
ODMXMLTools.subjectdatatable
ODMXMLTools.subjectdatatable — Functionsubjectdatatable(cld::AbstractODMNode; optional = false, attrs::Union{AbstractVector, Nothing} = nothing)Subject information table.
subjectdatatable(odm::ODMRoot; optional = false, attrs::Union{AbstractVector, Nothing} = nothing)ODMXMLTools.codelisttable
ODMXMLTools.codelisttable — Functioncodelisttable(cd::AbstractODMNode; lang = nothing)Return CodeList table (DataFrame).
ODMXMLTools.itemcodelisttable
ODMXMLTools.itemcodelisttable — Functionitemcodelisttable(cd::AbstractODMNode; lang = nothing) where T <: AbstractODMNodeSame as codelisttable, but return ItemDef (DataFrame).
Listing
ODMXMLTools.metadatalist
ODMXMLTools.metadatalist — Functionmetadatalist(odm::ODMRoot)Returm table of MetaDataVersion elements.
ODMXMLTools.studylist
ODMXMLTools.studylist — Functionstudylist(odm::ODMRoot; categ = false)Returm table of Study elements.
ODMXMLTools.clinicaldatalist
ODMXMLTools.clinicaldatalist — Functionclinicaldatalist(odm::ODMRoot)Returm table of ClinicalData elements.
ODMXMLTools.eventlist
ODMXMLTools.eventlist — Functioneventlist(md::AbstractODMNode; optional = false, attrs = nothing, categ = false)Return StudyEventDef table (DataFrame).
Keywords:
optional(true/false) - get optional attributes;attrs- get selected attributes;categ- returnOIDas categorical;
ODMXMLTools.formlist
ODMXMLTools.formlist — Functionformlist(el::Vector{T}; attrs = nothing, categ = false) where T <: AbstractODMNodeReturn FormDef table (DataFrame).
Keywords:
attrs- get selected attributes;categ- returnOIDas categorical;
formlist(md::AbstractODMNode)Return FormDef table (DataFrame).
ODMXMLTools.itemgrouplist
ODMXMLTools.itemgrouplist — Functionitemgrouplist(el::Vector{T}; optional = false, attrs = nothing, categ = false) where T <: AbstractODMNodeReturn ItemGroupDef table (DataFrame).
Keywords:
optional(true/false) - get optional attributes;attrs- get selected attributes;categ- returnOIDas categorical;
itemgrouplist(md::AbstractODMNode; optional = false, attrs::Union{AbstractVector, Nothing} = nothing)Return ItemGroupDef table (DataFrame).
If optional == true - return all optional attributes.
attrs - get selected attributes.
ODMXMLTools.itemlist
ODMXMLTools.itemlist — Functionitemlist(el::Vector{T}; optional = false, attrs = nothing, categ = false, datatype = nothing) where T <: AbstractODMNodeReturn ItemDef table (DataFrame).
Keywords:
- if
optional==true- return all optional attributes; attrs- get selected attributes;categ- returnOIDas categorical;datatype- select only this type of items (See DataType);
itemlist(md::AbstractODMNode; kwargs...)Return ItemDef table (DataFrame).
ODMXMLTools.itemformlist
ODMXMLTools.itemformlist — Functionitemsformlist(md, oid; optional = false)Return ItemDef table (DataFrame) for concrete form (FormDef) by oid.
keywords see (itemlist)[@ref].
Find node
ODMXMLTools.findelement
ODMXMLTools.findelement — Functionfindelement(el::AbstractVector{AbstractODMNode}, nname::Symbol, oid::AbstractString)Find first element by node name nname and oid.
findelement(n::AbstractODMNode, nname::Symbol, oid::AbstractString)Find first element by node name nname and oid.
findelement(n::AbstractODMNode, nname::Symbol)Find first element by node name nname.
ODMXMLTools.findelements
ODMXMLTools.findelements — Functionfindelements(n::AbstractODMNode, nname::Symbol)Find all elements by node name nname.
findelements(n::AbstractODMNode, nnames::Vector{Symbol})Find all elements by node name nnames (list).
ODMXMLTools.findstudy
ODMXMLTools.findstudy — Functionfindstudy(odm::ODMRoot, oid::AbstractString)Find Study element by OID (oid), nothing` if not found.
ODMXMLTools.findstudymetadata
ODMXMLTools.findstudymetadata — Functionfindstudymetadata(odm::ODMRoot, soid::AbstractString, moid::AbstractString)Find MeteDataVersion by StudyOID (soid) and MetaDataVersionOID (moid).
ODMXMLTools.findclinicaldata
ODMXMLTools.findclinicaldata — Functionfindclinicaldata(odm::ODMRoot, soid::AbstractString, moid::AbstractString)Find ClinicalData by StudyOID (soid) and MetaDataVersionOID (moid).
Returns single element or nothing.
findclinicaldata(odm::ODMRoot, soid::AbstractString)Find ClinicalData by StudyOID (soid).
Returns vector or empty vetctor if no elements found.
findclinicaldata(odm::ODMRoot)Find all ClinicalData.
Returns vector or empty vetctor if no elements found.
Content
ODMXMLTools.protocolcontent
ODMXMLTools.protocolcontent — Functionfunction protocolcontent(md; optional = false, attrs = nothing, categ = false)ODMXMLTools.eventcontent
ODMXMLTools.eventcontent — Functioneventcontent(md; kwargs...)Return FormRef table (DataFrame) for concrete form (StudyEventDef).
if optional == true - return all optional attributes.
eventcontent(md, oid; kwargs...)Return FormRef table (DataFrame) for concrete form (StudyEventDef) by oid.
if optional == true - return all optional attributes.
ODMXMLTools.formcontent
ODMXMLTools.formcontent — Functionformcontent(md; optional = false, attrs::Union{AbstractVector, Nothing} = nothing)Return ItemGroupRef table (DataFrame) for concrete form (FormDef).
if optional == true - return all optional attributes.
formcontent(md, oid; optional = false, attrs::Union{AbstractVector, Nothing} = nothing)Return ItemGroupRef table (DataFrame) for concrete form (FormDef) by oid.
if optional == true - return all optional attributes.
ODMXMLTools.itemgroupcontent
ODMXMLTools.itemgroupcontent — Functionitemgroupcontent(md; kwargs...)Return ItemRef table (DataFrame) for concrete group (ItemGroupDef).
itemgroupcontent(md, oid; kwargs...)Return ItemRef table (DataFrame) for concrete group (ItemGroupDef) by oid.
Description and Question
ODMXMLTools.itemdescription
ODMXMLTools.itemdescription — Functionitemdescription(md::AbstractODMNode; lang = ["en"])ItemDef descriptions.
ODMXMLTools.itemquestion
ODMXMLTools.itemquestion — Functionitemquestion(md::AbstractODMNode; lang = ["en"])ItemDef questions.
ODMXMLTools.nodedesq
ODMXMLTools.nodedesq — Functionnodedesq(md::AbstractODMNode, tnode::Symbol, nname::Symbol; lang = ["en"])Get desctriptions or questions for node tnode.
nname can be only :Description or :Question.
Decode
ODMXMLTools.codelistitemdecode
ODMXMLTools.codelistitemdecode — Functioncodelistitemdecode(cli; lang = nothing, nolangerr = true, nolangval = "")Return TranslatedText content for Decode node.
Delete
ODMXMLTools.deletestudy!
ODMXMLTools.deletestudy! — Functiondeletestudy!(odm::ODMRoot, soid::AbstractString)Delete Study by StudyOID (soid).
ODMXMLTools.deleteclinicaldata!
ODMXMLTools.deleteclinicaldata! — Functiondeletestudy!(odm::ODMRoot, soid::AbstractString)Delete ClinicalData by StudyOID (soid).
Information
ODMXMLTools.studyinfo
ODMXMLTools.studyinfo — Functionstudyinfo(odm::ODMRoot, oid::AbstractString; io = stdout)Study information.
studyinfo(odm::ODMRoot; io = stdout)Study information.
studyinfo(st::AbstractODMNode; io = stdout)Study information.
Validation
ODMXMLTools.validateodm
ODMXMLTools.validateodm — Functionvalidateodm(odm::AbstractODMNode)Basic structure validation.
Not full implemented.
ODMXMLTools.checkdatavalues
ODMXMLTools.checkdatavalues — Functioncheckdatavalues(odm::ODMRoot)Check all data values in all ClinicalData sections.
Not full implemented.
SPSS
ODMXMLTools.spssformvariable_labels
ODMXMLTools.spss_form_variable_labels — Functionspss_form_variable_labels(mdb, form; variable = :OID, labels = :Name, source = :attr, lang = nothing)SPSS command to set variable labels:
VARIABLE LABELS variable 'labels'.
variable - varable names attribute, OID by default.
labels - labels names attribute, Name by default.
If source == :Question - try to get description from TranslatedText of Question element, if there is no Question element - get from attribute labels.
If source == :Description - try to get description from TranslatedText of Description element.
spss_form_variable_labels(mdb, form, `pairs`; kwargs...)SPSS command to set variable labels.
Append pair vector pairs at the end.
ODMXMLTools.spssformvalue_labels
ODMXMLTools.spss_form_value_labels — Functionspss_form_value_labels(mdb, form; variable = :OID)SPSS command to set value labels.
variable - varable names attribute, OID by default.
ODMXMLTools.spsseventsvalue_labels
ODMXMLTools.spss_events_value_labels — Functionspss_events_value_labels(mdb; variable = "StudyEventOID", value::Symbol = :OID, label::Symbol = :Name)Labels for event values.
Utilities
Not exported
ODMXMLTools.attribute
ODMXMLTools.attribute — Functionattribute(n::AbstractODMNode, attr::Symbol, str::Bool = false)Return attribute value. If str is true - always return String.
ODMXMLTools.content
ODMXMLTools.content — Functioncontent(n::AbstractODMNode)Return node content.
ODMXMLTools.hasattribute
ODMXMLTools.hasattribute — Functionhasattribute(n::AbstractODMNode, attr::Symbol)Return true if node have attribute attr.
ODMXMLTools.name
ODMXMLTools.name — Functionname(n::ODMNode)Return name of ODM node.
ODMXMLTools.sortelements!
ODMXMLTools.sortelements! — Functionsortelements!(node::AbstractODMNode, rec::Bool = true)Try to sort node elements as in Specification for the Operational Data Model (ODM).
rec - recursive.
ODMXMLTools.writenode
ODMXMLTools.writenode — Functionwritenode(io::IO, node::AbstractODMNode)Write XML node into IO.
Other:
ODMXMLTools.oclformdetailslist
ODMXMLTools.oclformdetailslist — Functionoclformdetailslist(md::AbstractODMNode)Openclinica form information (md - MetaDataVersion element).
ODMXMLTools.countelements
ODMXMLTools.countelements — Functioncountelements(n::AbstractODMNode, nname::Symbol)Count elements by node name nname.
ODMXMLTools.findelementbyattr
ODMXMLTools.findelementbyattr — Functionfindelementbyattr(el::AbstractVector{<:AbstractODMNode}, nname::Symbol, attr::Symbol, value::AbstractString)Find first element by node name nname with attribute attr equal value.
ODMXMLTools.buildelementsdata
ODMXMLTools.buildelementsdata — Functionbuildelementsdata(stmd::AbstractODMNode)Build elements data.
Base
Base.findall
Base.findall — FunctionBase.findall(n::AbstractODMNode, nname::Symbol)Find all elements indexes by node name nname.
Base.findfirst
Base.findfirst — Functionfindfirst(n::AbstractODMNode, nname::Symbol, oid::AbstractString)Find first index of element.