diff --git a/documents/presentations/2026-eu-interchange-define-xml-automation.md b/documents/presentations/2026-eu-interchange-define-xml-automation.md new file mode 100644 index 0000000..4c3b6ff --- /dev/null +++ b/documents/presentations/2026-eu-interchange-define-xml-automation.md @@ -0,0 +1,248 @@ +# Automating Define-XML Generation in the CDISC 360i Program + +--- + +## Scope of the 360i Data Definition Engine Project +1. Define-XML generation +2. ODM-based CRF generation +3. Dataset Shell generation +4. Trial Design datasets generation +5. Generating SDTM datasets from Lab DTAs +6. Test a new draft model: Data Definition Specification (DDS) + +This presentation focuses on SDTM Define-XML generation. + +Speaker Notes: +While this presentation focuses on SDTM Define-XML generation, most of the principles covered here apply to our other +deliverables. Instead of giving an overview of the 360i program or even an overview of our team's work, I will go into +a bit more details on the SDTM Define-XML generation deliverable since we're further along on this one and it happens +to be the feature that I've worked the most on. + +--- + +## What Are We Trying to Accomplish? +1. Create a solution that maximizes automation and minimizes manually created metadata to generate Define-XML +2. Support generating Define-XML from the study design; this uses USDM -> Biomedical Concepts -> SDTM Dataset Specializations +3. Support using multiple sources of metadata to generate the Define-XML, such as existing metadata spreadsheets or MDRs +4. Create a new Data Definition Specification model to support metadata-driven automation +5. Identify and resolve metadata/standards gaps impeding automation + +Speaker Notes: +This slide focuses on SDTM Define-XML generation, as noted previously. Our main focus is on creating a new way of +automating Define-XML generation using USDM + BCs + DSSs. We'll use this same approach for ODM CRF generation, +but will use CRF Specializations instead of SDTM DSSs. + +This is an innovative project. We're working towards making a leap forward, and to do this we've had to learn several +new standards and models. So, this project has, at times, been an exploratory one where we have had to learn new +standards and models without any formal training. We're doing new things, and this calls for a pioneering spirit and +a willingness to deal with content and processes that are rough and incomplete. + +Even supporting today's state-of-the-art metadata sources, such as existing metadata spreadsheets and MDRs requires +innovation because we are loading this content into the new DDS model. + +Identifying gaps in the standards and pioneering new ways of working are what this project is all about. + +--- + +## Why This Matters +1. Bridging future methods of generating Define-XML with current ways of working +2. Open-source where a team of experts performs ongoing development and maintenance +3. Higher quality Define-XMLs generated more efficiently +4. Realizing the benefits of your investment in standards via metadata-driven automation + +Speaker Notes: +We are demonstrating new ways of generating study artifacts, like Define-XML, starting from the study design metadata. +We seek to use this method to maximize automation. This makes it easier to generate a Define-XML at the very beginning +of a study so that it can be used as a specification. It also makes it easier to re-generate the Define-XML +specification when the study design is ammended. + +--- + +## Inefficiencies in Today's Process +1. Manual and Inefficient Workflow + - Current Define-XML workflows rely heavily on spreadsheets, local conventions, and manual editing, causing inefficiencies. +2. Error-Prone Processes + - Manual copy-paste and ad hoc edits lead to mismatches and inconsistencies in metadata and datasets, increasing QC churn. +3. Limited Maintainability and Reuse + - Spreadsheet templates are study-specific and not machine-interpretable, limiting standardization and systematic artifact generation. +4. Automation Opportunity + - Generating Define-XML from a consistent metadata backbone reduces errors, streamlines updates, and scales across projects. + +Speaker Notes: +I think most of us would agree that the current process is inefficient and error-prone. It's too manual. Define-XML +generation often occurs at the end of the study and is not available as a specification. With the availability of new +standards and models, we believe we can increase the automation and quality of the Define-XML generation process. +Every 1.32 studies go through protocol amendments. Our existing manual processes are not only error-prone, but +unsustainable and expensive. Driving Define-XML generation automation from the study design should provide major quality +and efficiency benefits. + +--- + +## The Project: The Data Definition Engine (DDE) +![dde_architecture_slide.png](dde_architecture_slide.png) + +1. Metadata Sources +2. Loaders +3. The Data Definition Specification (DDS) model +4. Generators +5. Study Artifacts +6. A Refinement Pipeline + +Speaker Notes: +This slide represents the key ideas I want to highlight in this presentation. It shows the Data Definition Engine +(DDE) architecture and highlights the components needed to achieve our goals. + +TODO: Expand on each part of the architecture to understand the role each component plays in the process. + +--- + +## DDE: Generating Define-XML from the Study Design +![dde_define_xml_slide.png](dde_define_xml_slide.png) + +1. Metadata Sources + - USDM + BCs + DSSs + - CDISC Library +2. Loaders + - USDM + BCs + DSSs +3. DDS + - JSON model +4. Generators + - Define-XML +5. A Refinement Pipeline + - Define-XML with PLACEHOLDERS + - Study level refinement of Define-XML + +Speaker Notes: +This slides focuses on one of our main 360i deliverables: generating Define-XML from a USDM-based study design. The +Define-XML generated can be used as an initial specification for the study. Since it's generated from the study design, +it can be be generated in the very beginning of the study. It can be updated as the study design is amended. These are +some process benefits that come along with the improvements in automation. + +This approach retrieves the Biomedical Concepts from the USDM schedule of activities. It then uses the CDISC Library API +to look up the DSSs for each BC. Using this information, we are able to populate much of the Define-XML metadata, +including bits that are considered more challenging, like Value Level Metadata. However, there are quite a few gaps +in the metadata needed to full generate a conformant Define-XML. These tend to be basic, study-level content like +KeySeuqence (which variables are keys), Length, whether a variable is mandatory or not, and so on. During the initial +Define-XML generation, we use placeholders for these metadata items. Then, in the refinement pipeline those placeholders +are with study-level metadata. The final step in that pipeline is performed at the end of the study to make any changes +or additions needed to make this submission-ready. + +--- + +## Plug In Architecture +1. Add new loaders to address different sources of metadata, such as MDRs or other propreitary sources +2. Add new generators to create new study artifacts or variations of the supported artifacts +3. New approaches to the refinement pipeline + +Speaker Notes: +The plug-in architecture allows implementers to add new loaders and generators to support new metadata sources and new +study artifacts. For example, if your organization uses an MDR with an API, a loader could be created to +extract metadata to load into the DDS. The generators work the same, regardless of how the content is loaded int the +DDS. Similarly, implementers can add new generators or extend the existing ones to create new study artifacts or to +add user-specific variations to existing ones. So, this adds flexibility to extend the DDE solution to support new +metadata sources and new study artifacts. + +--- + +## Timeframes for the Solution Targets +1. Current State: current ways of generating Define-XML: e.g., metadata spreadsheets +2. New State: generating define.xml using USDM + BCs + DSSs +3. Future State: future standards like a new, JSON-based version of define, DTAs, etc. + +Speaker Notes: +As noted previously, our main target is the New State: using USDM + BCs + DSSs to generate Define-XML and other study +artifacts. Given that most all sponsors have not yet adopted the new standards like USDM, and they have other sources of +study metadata that they currently use to generate their Define-XMLs. We would like to support as many common sources of +existing metadata as possible. + +For example, we would like to support commonly used metadata spreadsheets. This allows organizations to start using the +DDE right away, and they can move to the new standards when they are ready. As they are implementing major new changes, +such as USDM, they will also likely continue to have the need to support their current processes until they've +completed the transition. It's also true that there are a lot of existing metadata spreadsheets, and loading this +content helps us test the DDS model as well as the loaders. + +--- + +## Metadata Gaps Identified +1. Numerous gaps in the metadata needed to automate Define-XML generation were identified +2. Examples include keySequence, Length, ... +3. To address the missing metadata, we used placeholders in the first Define-XML generated +4. Gaps may drive updates to standards + +Speaker Notes: +Before beginning the project we understood that implementing end-to-end automation using new or existing standards +would identify gaps or misalignments in the available standards metadata. So, in this context, gaps and misalignments +aren't bugs, they're features. We expected to find gaps, and we've found and documented many of them. + +TODO: add a better list of metadata gap examples. + +--- + +## Data Definition Specification (DDS) +1. Role of Specification Model + - The model links upstream conceptual models to downstream artifacts, replacing unreliable spreadsheet intermediaries. + - The DDS is a new draft model that we will publish as a standard after we complete our 360i work. +2. Key Characteristics + - Defines consistent metadata structure to support standards-driven generation and maintainability through metadata updates. + - Targets automation in a way that Define-XML was not designed to support. +3. Alignment and Automation Benefits + - Structured metadata enables automated validation, controlled terminology checks, and reliable value-level metadata building. + - Provides the metadata to support many different automation tasks, beyond generating define.xml and ODM-based CRFs. +4. Extensibility and Feedback Loop + - Designed for extensibility and interoperability, the model reveals standards gaps, fostering continuous improvement. + +Speaker Notes: +The Data Definition Specification (DDS) is a new draft model that we will publish as a standard after we complete our +360i work. We are using the DDS in our work as a new model is needed to address what we need to support end-to-end +automation. Define-XML was never intended to drive end-to-end automation, though it has been used to do so at times. + +For example, the DDS allows us to define both the data supply and demand, sometimes referred to as the source and +target datasets. It allows us to define derivation methods in a more complete manner to support automation +and not just provide documentation of the code used. It also does a better job of representing semantics and +relationships. DDS and Define-XML were defined with different primary goals in mind. + +In this presentation, I do not have time to get into the details of the DDS, but we are using it in our project and will +be working towards publishing it as a standard, so there will be opportunities to learn more about it or even to get +involved in its development. + +--- + +## Future Work +1. Refine and enhance the current work-in-progress to create a usable solution +2. Add support for ADaM Define-XML +3. DTA to SDTM transformations +4. Plug In Architecture +5. Initial release targeted by EOY + +Speaker Notes: +We are working towards refining and expanding the current work-in-progress to create a usable solution. To that end, we +plan to publish a Release Candidate by the end of the year. This will be available as a release in GitHub. We aim for +this to be a usable solution that's available to anyone to use without any licensing fees or restrictions. Similarly, +this project is open to contributors, and we hope others will make contributions to the project so that it becomes a +more robust solution for everyone, and there aren't just a few of us supporting it. + +--- + +## Key Takeaways +1. Proof of Automation + - Define-XML can be generated consistently from structured, standards-based metadata organized in a machine-consumable model. +2. Phased Progress Achieved + - Phase 1 delivered automated SDTM Define-XML generation using new metadata specification models and biomedical concepts. +3. Forward Extension Plans + - Phase 2 will automate ADaM Define-XML incorporating analysis concepts to represent analytical intent as structured metadata. +4. Process Improvement Benefits + - Moving from spreadsheets to metadata-driven automation enhances reuse, maintainability, quality, and reduces errors. +5. Standards Feedback Loop + - Automation efforts reveal gaps in CDISC standards, guiding standards evolution and better implementation. +6. Open-Source Adoption + - Open-source solutions promote interoperability, accelerate learning, and reduce duplicated automation efforts across organizations. + +Speaker Notes: + +--- + +## Questions? +- Thank you! +- Where to Find Our Work: https://github.com/cdisc-org/data-definition-engine +- Join Us: https://www.cdisc.org/volunteer/form +- Contact \ No newline at end of file diff --git a/documents/presentations/dde_architecture_slide.png b/documents/presentations/dde_architecture_slide.png new file mode 100644 index 0000000..5739711 Binary files /dev/null and b/documents/presentations/dde_architecture_slide.png differ diff --git a/documents/presentations/dde_define_xml_slide.png b/documents/presentations/dde_define_xml_slide.png new file mode 100644 index 0000000..8524c6f Binary files /dev/null and b/documents/presentations/dde_define_xml_slide.png differ diff --git a/src/generators/define/codeLists.py b/src/generators/define/codeLists.py index 76afea2..8cdb7a8 100644 --- a/src/generators/define/codeLists.py +++ b/src/generators/define/codeLists.py @@ -27,23 +27,24 @@ def create_define_objects( """ self.lang = lang for cl in template: - # TODO template missing the NCI c-codes for codelists and terms cl_oid = self.require_key(cl, "OID", "CodeList") # Dedup CodeLists by OID so two datasets that reference the same codelist # don't land duplicate definitions in the output. if self.find_object(define_objects["CodeList"], cl_oid) is not None: continue cl_defn = self._create_codelist_object(cl) + is_non_standard = self._set_is_non_standard(cl_defn) coding = cl.get("coding", []) cl_c_code = coding[0].get("code") if coding else None - cl_name = cl.get("name", "unknown") + cl_name = cl.get("name", "__PLACEHOLDER__") codelist_items = self.require_key(cl, "codeListItems", f"CodeList {cl_name}") + # assumes there is never a case where decode and enumerated items are mixed for term in codelist_items: if "decode" in term: - cl_item = self._create_codelistitem_object(term) + cl_item = self._create_codelistitem_object(term, is_non_standard) cl_defn.CodeListItem.append(cl_item) else: - en_item = self._create_enumerateditem_object(term) + en_item = self._create_enumerateditem_object(term, is_non_standard) cl_defn.EnumeratedItem.append(en_item) # TODO no indicator that a codelist is a dictionary with an external codelist reference if len(cl["codeListItems"]) == 0: @@ -52,7 +53,7 @@ def create_define_objects( @staticmethod def _create_external_code_list(cl, obj): - # TODO temp to create the external codelist content + # TODO temp to create the external codelist content - not yet available in define.json attr = {"Dictionary": obj["name"], "Version": "1.0", "href": "https://www.iso.org"} exd = DEFINE.ExternalCodeList(**attr) cl.ExternalCodeList = exd @@ -78,23 +79,22 @@ def _create_codelist_object(self, obj): cl = DEFINE.CodeList(**attr) return cl - def _create_enumerateditem_object(self, obj): + def _create_enumerateditem_object(self, obj, is_non_standard): coded_value = self.require_key(obj, "codedValue", "CodeListItem") attr = {"CodedValue": coded_value} - # if obj.get("Order"): - # attr["OrderNumber"] = obj["Order"] en_item = DEFINE.EnumeratedItem(**attr) coding = obj.get("coding", {}) if coding: alias = DEFINE.Alias(Context="nci:ExtCodeID", Name=coding.get("code")) en_item.Alias.append(alias) + elif not is_non_standard: + alias = DEFINE.Alias(Context="nci:ExtCodeID", Name="__PLACEHOLDER__") + en_item.Alias.append(alias) return en_item - def _create_codelistitem_object(self, obj): + def _create_codelistitem_object(self, obj, is_non_standard): coded_value = self.require_key(obj, "codedValue", "CodeListItem") attr = {"CodedValue": coded_value} - # if obj.get("order"): - # attr["OrderNumber"] = obj["order"] cl_item = DEFINE.CodeListItem(**attr) decode = DEFINE.Decode() if obj.get("decode", None): @@ -104,9 +104,18 @@ def _create_codelistitem_object(self, obj): tt = DEFINE.TranslatedText(_content=coded_value, lang="en") decode.TranslatedText.append(tt) cl_item.Decode = decode - # TODO NCI c-codes for terms or codelists not available in template coding = obj.get("coding", {}) if coding: alias = DEFINE.Alias(Context="nci:ExtCodeID", Name=coding.get("code")) cl_item.Alias.append(alias) + elif not is_non_standard: + alias = DEFINE.Alias(Context="nci:ExtCodeID", Name="__PLACEHOLDER__") + cl_item.Alias.append(alias) return cl_item + + @staticmethod + def _set_is_non_standard(cl_defn): + if cl_defn.IsNonStandard and cl_defn.IsNonStandard == "Yes": + return True + else: + return False diff --git a/src/generators/define/define_generator.py b/src/generators/define/define_generator.py index 75119f9..f6db13e 100644 --- a/src/generators/define/define_generator.py +++ b/src/generators/define/define_generator.py @@ -73,13 +73,21 @@ class DefineGenerator: """Generate a Define-XML v2.1 file from the DDS JSON file.""" - def __init__(self, dds_file: str, define_file: str, log_level: str = "INFO") -> None: + def __init__(self, + dds_file: str, + define_file: str, + log_level: str = "INFO", + is_submission: bool = False, + is_xpt: bool = False + ) -> None: """ Initialize the Define-XML generator. :param dds_file: path and filename of the Data Definition Specification (DDS) JSON file :param define_file: path and filename for the output Define-XML v2.1 file :param log_level: logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) + :param is_submission: set the def:Context to Submission, otherwise set to Other + :param is_xpt: set dataset extensions to .xpt instead of .ndjson """ self.dds_file: str = dds_file self.define_file: str = define_file @@ -88,6 +96,8 @@ def __init__(self, dds_file: str, define_file: str, log_level: str = "INFO") -> level=getattr(logging, log_level), format="%(asctime)s - %(levelname)s - %(message)s", ) + self.context = "Submission" if is_submission else "Other" + self.is_xpt = is_xpt self._check_file_existence() self.lang: str = DEFAULT_LANGUAGE self.acrf: str = ACRF_LEAF_ID @@ -104,7 +114,7 @@ def create(self) -> None: sys.exit(1) self._init_define_objects() self._load_study(template_objects) - # Explicit dispatch order — no dependency on JSON key order. + # explicit dispatch order — no dependency on JSON key order. for section in SECTION_ORDER: if section not in template_objects: continue @@ -124,7 +134,7 @@ def _post_process_elements(self) -> None: Post-processing adds content determined after all elements are created. :return: None """ - pp = PP.PostProcessing(self.define_objects, self.lang) + pp = PP.PostProcessing(self.define_objects, self.is_xpt, self.lang) pp.process_define_objects() def _init_define_objects(self) -> None: @@ -162,7 +172,7 @@ def _build_doc(self) -> Any: after processing the content in the template input file organize the odmlib define_objects for use as a Define-XML v2.1 :return: instantiated odmlib Define-XML v2.1 model """ - odm_elem = ODM.ODM() + odm_elem = ODM.ODM(self.context) odm = odm_elem.create_root() odm.Study = self.define_objects["Study"] odm.Study.MetaDataVersion = self.define_objects["MetaDataVersion"] @@ -248,8 +258,12 @@ def set_cmd_line_args() -> argparse.Namespace: choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], help="Set the logging level (default: INFO)", ) - parser.add_argument("-s", "--validate", help="schema validate the define.xml", default=False, const=True, + parser.add_argument("-v", "--validate", help="schema validate the define.xml", default=False, const=True, nargs='?', dest="is_validate") + parser.add_argument("-s", "--submission", help="set the def:Context to Submission, otherwise set to Other", + default=False, const=True, nargs='?', dest="is_submission") + parser.add_argument("-x", "--sas_xpt", help="set dataset extensions to .xpt instead of .ndjson", + default=False, const=True, nargs='?', dest="is_xpt") args = parser.parse_args() return args @@ -257,7 +271,8 @@ def set_cmd_line_args() -> argparse.Namespace: def main() -> None: """Main entry point that generates Define-XML v2.1 from a DDS JSON file.""" args = set_cmd_line_args() - dg = DefineGenerator(dds_file=args.dds_file, define_file=args.define_file, log_level=args.log_level) + dg = DefineGenerator(dds_file=args.dds_file, define_file=args.define_file, log_level=args.log_level, + is_submission=args.is_submission, is_xpt=args.is_xpt,) dg.create() if args.is_validate: if not validate_define_file(args.define_file): diff --git a/src/generators/define/itemGroups.py b/src/generators/define/itemGroups.py index 8df4960..a3e4275 100644 --- a/src/generators/define/itemGroups.py +++ b/src/generators/define/itemGroups.py @@ -51,13 +51,19 @@ def _generate_dataset(self, dataset, define_objects, lang, acrf): slices = dataset.get("slices") items.Items().create_define_objects(items_list, define_objects, lang, acrf, slice=slices) - # TODO review this assumption that we have 1 class per dataset - # assumption: 1 class per dataset - many need to expand this for ADaM + # assumption: list of subclasses, but no nested subclasses - may need to revisit this for ADaM if dataset.get("observationClass", {}).get("name", ""): ds_class = dataset["observationClass"]["name"].upper().replace("-", " ") itg.Class = DEFINE.Class(Name=ds_class) + sub_classes = dataset.get("observationClass").get("subClasses", []) + for sub_class in sub_classes: + sub_class_name = sub_class.get("name") + if sub_class_name.get("parentClass", ""): + itg.Class.SubClass.append(DEFINE.SubClass(Name=sub_class["name"], ParentClass=sub_class["parentClass"])) + else: + itg.Class.SubClass.append(DEFINE.SubClass(Name=sub_class["name"])) - # TODO - where should we set the dataset file extension? (e.g., ndjson, xpt, etc.) + # default is Dataset-JSON .ndjson datasets - will be overridden in post-processing if is_xpt CL arg is True leaf = DEFINE.leaf(ID="LF." + dataset_name, href=dataset_name.lower() + ".ndjson") leaf.title = DEFINE.title(_content=dataset_name.lower() + ".ndjson") itg.leaf = leaf diff --git a/src/generators/define/itemRefs.py b/src/generators/define/itemRefs.py index e086d7d..0d14313 100644 --- a/src/generators/define/itemRefs.py +++ b/src/generators/define/itemRefs.py @@ -20,7 +20,6 @@ def create_define_objects(self, template, define_objects, lang, acrf, item_group def _create_itemref_object(self, obj, define_objects, igd, it_oid, order): if not it_oid: raise ValueError("Required field OID is missing in ItemRef") - # TODO fix as this mandatory can also be set in optional attributes if "mandatory" not in obj: mandatory = "No" else: @@ -46,18 +45,15 @@ def _add_optional_itemref_attributes(attr, obj, order): :param attr: ItemRef template attributes to update with optional values :param obj: variable definition dictionary from the DDS JSON """ - # TODO does method exist on items in the DDS? if obj.get("method"): attr["MethodOID"] = obj["method"] if obj.get("order"): attr["OrderNumber"] = int(obj["order"]) else: attr["OrderNumber"] = order - # KeySequence is not in DDS, so a placeholder is added to the first ItemRef + # KeySequence is not in DDS so this will be inserted via the gap YAML content if obj.get("keySequence"): attr["KeySequence"] = int(obj["keySequence"]) - elif order == 1: - attr["KeySequence"] = "__PLACEHOLDER__" if obj.get("role"): attr["Role"] = obj["role"] if obj.get("isNonStandard"): diff --git a/src/generators/define/odm.py b/src/generators/define/odm.py index c610d5d..8b4851a 100644 --- a/src/generators/define/odm.py +++ b/src/generators/define/odm.py @@ -4,7 +4,8 @@ class ODM: - def __init__(self, file_oid: str | None = None): + def __init__(self, context: str = "Other", file_oid: str | None = None): + self.context = context self.attrs = self._set_attributes(file_oid) def create_root(self): @@ -21,7 +22,7 @@ def _set_attributes(self, file_oid: str | None): "Originator": "360i Define-XML Team", "SourceSystem": "odmlib", "SourceSystemVersion": "0.2", - "Context": "Other", + "Context": self.context, } @staticmethod diff --git a/src/generators/define/post_processing.py b/src/generators/define/post_processing.py index d2ef223..79854f4 100644 --- a/src/generators/define/post_processing.py +++ b/src/generators/define/post_processing.py @@ -7,12 +7,28 @@ class PostProcessing: """ Base class for post-processing Define-XML elements. """ - def __init__(self, define_objects: dict[str, list[Any]], lang: str): + def __init__(self, define_objects: dict[str, list[Any]], is_xpt: bool, lang: str): self.define_objects = define_objects + self.is_xpt = is_xpt self.lang = lang def process_define_objects(self) -> None: self._add_derived_methods() + if self.is_xpt: + self._update_dataset_file_type_to_xpt() + + + def _update_dataset_file_type_to_xpt(self) -> None: + """ + Update the ItemGroupDef dataset extension .xpt if is_xpt is True. + + suppdm.xpt + + """ + for igd in self.define_objects['ItemGroupDef']: + if igd.leaf.href.endswith('.ndjson'): + igd.leaf.href = igd.leaf.href.replace('.ndjson', '.xpt') + igd.leaf.title._content = igd.leaf.title._content.replace('.ndjson', '.xpt') def _add_derived_methods(self) -> None: @@ -20,7 +36,7 @@ def _add_derived_methods(self) -> None: Add methods to ItemDefs where the def:Origin Type="Derived". """ for item_def in self.define_objects['ItemDef']: - # TODO assumes we're only interested in the first origin + # assumes we're interested in the first origin; define.json defines origin as an object, not a list if item_def.Origin and item_def.Origin[0].Type == 'Derived': # generate the MethodOID method_oid = self._generate_method_oid(item_def.OID) @@ -41,7 +57,7 @@ def _create_method_def(self, method_oid, item_def) -> None: self.define_objects['MethodDef'].append(method_def) def _update_item_ref(self, item_def, method_oid) -> bool: - # TODO inefficient, but works for now + # inefficient, but works for now is_new_method = False for ir_group in ["ItemGroupDef", "ValueListDef"]: # check ItemGroupDefs diff --git a/src/generators/define/tests/fixtures/define-360i.json b/src/generators/define/tests/fixtures/define-360i.json index 10bdd03..3810146 100644 --- a/src/generators/define/tests/fixtures/define-360i.json +++ b/src/generators/define/tests/fixtures/define-360i.json @@ -36635,7 +36635,7 @@ "decode": "Chemiluminescent Magnetic Microparticle Immunoassay", "coding": { "code": "C172557", - "codeSystem": "nci:ExtCodeID" + "codeSystem": "nci:ExtCodeID"Class } }, { diff --git a/src/generators/define/tests/fixtures/define-360i.xml b/src/generators/define/tests/fixtures/define-360i.xml index 6a7b895..e6cb955 100644 --- a/src/generators/define/tests/fixtures/define-360i.xml +++ b/src/generators/define/tests/fixtures/define-360i.xml @@ -1,8491 +1,2 @@ - - - - LZZT - NEW - Safety and Efficacy of the Xanomeline Transdermal Therapeutic System (TTS) in Patients - with Mild to Moderate Alzheimer's Disease - - LZZT - NEW - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EDULEVEL - - - - - EDUYRNUM - - - - - EDUYRNUM - - - - - TEMP - - - AXILLA - EAR - FOREHEAD - ORAL CAVITY - RECTUM - - - - - WEIGHT - - - - - HEIGHT - - - - - PULSE - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - CEREBRAL ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - RADIAL ARTERY - - - LEFT - RIGHT - - - - - RESP - - - - - BMI - - - - - SYSBP - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - FINGER - RADIAL ARTERY - - - LEFT - RIGHT - - - - - DIABP - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - FINGER - RADIAL ARTERY - - - LEFT - RIGHT - - - - - HR - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - CEREBRAL ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - RADIAL ARTERY - - - LEFT - RIGHT - - - - - TEMP - - - AXILLA - EAR - FOREHEAD - ORAL CAVITY - RECTUM - - - - - WEIGHT - - - - - HEIGHT - - - - - PULSE - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - CEREBRAL ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - RADIAL ARTERY - - - LEFT - RIGHT - - - - - RESP - - - - - BMI - - - - - SYSBP - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - FINGER - RADIAL ARTERY - - - LEFT - RIGHT - - - - - DIABP - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - FINGER - RADIAL ARTERY - - - LEFT - RIGHT - - - - - HR - - - PRONE - SEMI-RECUMBENT - SITTING - STANDING - SUPINE - - - BRACHIAL ARTERY - CAROTID ARTERY - CEREBRAL ARTERY - DORSALIS PEDIS ARTERY - FEMORAL ARTERY - RADIAL ARTERY - - - LEFT - RIGHT - - - - - INTP - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - AVCOND - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - AXISVOLT - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - CHYPTENL - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - TECHQUAL - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - IVTIACD - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - PACEMAKR - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - RHYNOS - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - SNRARRY - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - SPRARRY - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - SPRTARRY - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - VTARRY - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - VTTARRY - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - PRAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QRSAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QTAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QTCBAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QTCFAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - RRAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - EGHRMN - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QRS_AXIS - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - PRAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QRSAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QTAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QTCBAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QTCFAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - RRAG - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - EGHRMN - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - QRS_AXIS - - - ADJUDICATION COMMITTEE - INDEPENDENT ASSESSOR - INVESTIGATOR - VENDOR - - - - - HGB - - - BLOOD - - - DIPSTICK MEASUREMENT METHOD - - - - - HCT - - - BLOOD - - - - - RBC - - - BLOOD - - - - - MCH - - - ERYTHROCYTES - - - - - MCHC - - - ERYTHROCYTES - - - - - MCV - - - ERYTHROCYTES - - - - - WBC - - - BLOOD - - - - - NEUTSG - - - BLOOD - - - - - NEUTB - - - BLOOD - - - - - NEUT - - - BLOOD - - - - - MONO - - - BLOOD - - - - - EOS - - - BLOOD - - - - - BASO - - - BLOOD - - - - - PLAT - - - BLOOD - - - - - MICROCY - - - URINE SEDIMENT - - - - - MACROCY - - - URINE SEDIMENT - - - - - ANISO - - - BLOOD - - - - - POIKILO - - - BLOOD - - - - - POLYCHR - - - BLOOD - - - - - ALT - - - SERUM OR PLASMA - - - - - ALB - - - URINE - - - - - ALP - - - SERUM OR PLASMA - - - - - AST - - - SERUM OR PLASMA - - - - - CREAT - - - URINE - - - - - K - - - URINE - - - - - SODIUM - - - URINE - - - - - UREAN - - - SERUM OR PLASMA - - - - - BICARB - - - BLOOD - - - - - CL - - - SERUM OR PLASMA - - - - - BILI - - - URINE - - - - - GGT - - - SERUM OR PLASMA - - - - - URATE - - - SERUM OR PLASMA - - - - - PHOS - - - SERUM OR PLASMA - - - - - CA - - - SERUM OR PLASMA - - - - - GLUC - - - URINE - - - - - PROT - - - URINE - - - - - CHOL - - - SERUM OR PLASMA - - - - - T3UP - - - SERUM OR PLASMA - - - - - T3 - - - SERUM OR PLASMA - - - - - T4FR - - - SERUM OR PLASMA - - - - - T4FRIDX - - - SERUM OR PLASMA - - - - - TSH - - - SERUM OR PLASMA - - - - - VITB9 - - - SERUM OR PLASMA - - - - - VITB12 - - - SERUM OR PLASMA - - - - - COLOR - - - URINE - - - - - SPGRAV - - - URINE - - - - - KETONES - - - URINE - - - - - UROBIL - - - URINE - - - - - OCCBLD - - - STOOL - - - - - NITRITE - - - URINE - - - - - HBA1C - - - BLOOD - - - - - HBA1CHGB - - - BLOOD - - - - - HGB - - - BLOOD - - - DIPSTICK MEASUREMENT METHOD - - - - - HCT - - - BLOOD - - - - - RBC - - - BLOOD - - - - - MCH - - - ERYTHROCYTES - - - - - MCHC - - - ERYTHROCYTES - - - - - MCV - - - ERYTHROCYTES - - - - - WBC - - - BLOOD - - - - - NEUTSG - - - BLOOD - - - - - NEUTB - - - BLOOD - - - - - NEUT - - - BLOOD - - - - - MONO - - - BLOOD - - - - - EOS - - - BLOOD - - - - - BASO - - - BLOOD - - - - - PLAT - - - BLOOD - - - - - ALT - - - SERUM OR PLASMA - - - - - ALP - - - SERUM OR PLASMA - - - - - AST - - - SERUM OR PLASMA - - - - - CREAT - - - URINE - - - - - K - - - URINE - - - - - SODIUM - - - URINE - - - - - UREAN - - - SERUM OR PLASMA - - - - - BICARB - - - BLOOD - - - - - CL - - - SERUM OR PLASMA - - - - - GGT - - - SERUM OR PLASMA - - - - - URATE - - - SERUM OR PLASMA - - - - - PHOS - - - SERUM OR PLASMA - - - - - CA - - - SERUM OR PLASMA - - - - - CHOL - - - SERUM OR PLASMA - - - - - T3UP - - - SERUM OR PLASMA - - - - - T3 - - - SERUM OR PLASMA - - - - - T4FR - - - SERUM OR PLASMA - - - - - T4FRIDX - - - SERUM OR PLASMA - - - - - TSH - - - SERUM OR PLASMA - - - - - VITB9 - - - SERUM OR PLASMA - - - - - VITB12 - - - SERUM OR PLASMA - - - - - UROBIL - - - URINE - - - - - HBA1C - - - BLOOD - - - - - HBA1CHGB - - - BLOOD - - - - - TPLAB - - - DETECTION - - - SERUM - - - FLUORESCENT IMMUNOASSAY - HEMAGGLUTINATION ASSAY - CHEMILUMINESCENT MICROPARTICLE IMMUNOASSAY - POLYMERASE CHAIN REACTION - IMMUNOBLOT - RAPID IMMUNOASSAY - - - - - TPADNA - - - DETECTION - - - BLOOD - CEREBROSPINAL FLUID - FLUID - SWABBED MATERIAL - URINE - - - LINE PROBE ASSAY - - - - - ADAPT - - - - - AGEMIN - - - - - AGEMAX - - - - - COMPTRT - - - - - CRMDUR - - - - - DOSE - - - - - DOSFRQ - - - - - DOSU - - - - - INDIC - - - - - INTMODEL - - - - - INTTYPE - - - - - NARMS - - - - - OBJPRIM - - - - - OBJSEC - - - - - OUTMSPRI - - - - - OUTMSSEC - - - - - PLANSUB - - - - - PTRTDUR - - - - - ROUTE - - - - - SEXPOP - - - - - SPONSOR - - - - - STYPE - - - - - TBLIND - - - - - THERAREA - - - - - TINDTP - - - - - TITLE - - - - - TPHASE - - - - - TRT - - - - - TTYPE - - - - - IN01 - - - - - IN02 - - - - - IN03 - - - - - IN04 - - - - - IN05 - - - - - IN06 - - - - - IN07 - - - - - IN08 - - - - - EX01 - - - - - EX02 - - - - - EX03 - - - - - EX04 - - - - - EX05 - - - - - EX06 - - - - - EX07 - - - - - EX08 - - - - - EX09 - - - - - EX10 - - - - - EX11 - - - - - EX12 - - - - - EX13 - - - - - EX14 - - - - - EX15 - - - - - EX16 - - - - - EX17 - - - - - EX18 - - - - - EX19 - - - - - EX20 - - - - - EX21 - - - - - EX22 - - - - - EX23 - - - - - Disposition - - - - - - - - - - - - - - ds.ndjson - - - - - Demographics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dm.ndjson - - - - - Subject Characteristics - - - - - - - - - - - - - - - - sc.ndjson - - - - - Medical History - - - - - - - - - - - - - - - mh.ndjson - - - - - Substance Use - - - - - - - - - - - - - - - - - - - - - - - - - - su.ndjson - - - - - Procedures - - - - - - - - - - - - - - - - - pr.ndjson - - - - - Vital Signs - - - - - - - - - - - - - - - - - - - - - vs.ndjson - - - - - ECG Test Results - - - - - - - - - - - - - - - - - - - - - - - eg.ndjson - - - - - Concomitant/Prior Medications - - - - - - - - - - - - - - - - - - - - - cm.ndjson - - - - - Laboratory Test Results - - - - - - - - - - - - - - - - - - - - - - - - - - - lb.ndjson - - - - - Microbiology Specimen - - - - - - - - - - - - - - - - - mb.ndjson - - - - - Exposure as Collected - - - - - - - - - - - - - - - - - - - - - - ec.ndjson - - - - - Adverse Events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ae.ndjson - - - - - Trial Summary - - - - - - - - - - - - - ts.ndjson - - - - - Trial Arms - - - - - - - - - - - - - - ta.ndjson - - - - - Trial Elements - - - - - - - - - te.ndjson - - - - - Trial Inclusion/Exclusion Criteria - - - - - - - - - ti.ndjson - - - - - Trial Visits - - - - - - - - - - - - - tv.ndjson - - - - - Subject Visits - - - - - - - - - - - - - - sv.ndjson - - - - - Inclusion/Exclusion Criteria Not Met - - - - - - - - - - - - - ie.ndjson - - - - - Subject Elements - - - - - - - - - - - - - se.ndjson - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reported Term for the Disposition Event - - - - - - - - - - Standardized Disposition Term - - - - - - - Category for Disposition Event - - - - - - - Subcategory for Disposition Event - - - - - - - Start Date/Time of Disposition Event - - - - - - - - - - Study Day of Start of Disposition Event - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Subject Identifier for the Study - - - - - - Subject Reference Start Date/Time - - - - - - Subject Reference End Date/Time - - - - - - Date/Time of First Study Treatment - - - - - - Date/Time of Last Study Treatment - - - - - - Date/Time of Informed Consent - - - - - - Date/Time of End of Participation - - - - - - Date/Time of Death - - - - - - Subject Death Flag - - - - - - - Study Site Identifier - - - - - - Age - - - - - - - - - - Age Units - - - - - - - - - - - Sex - - - - - - - - - - - Race - - - - - - - - - - - Ethnicity - - - - - - - - - - - Planned Arm Code - - - - - - Description of Planned Arm - - - - - - Actual Arm Code - - - - - - Description of Actual Arm - - - - - - Reason Arm and/or Actual Arm is Null - - - - - - - Description of Unplanned Actual Arm - - - - - - Country - - - - - - Date/Time of Collection - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Subject Characteristic Short Name - - - - - - - Subject Characteristic - - - - - - - Result or Finding in Original Units - - - - - - - - - - - Original Units - - - - - - - - Character Result/Finding in Std Format - - - - - - Numeric Result/Finding in Standard Units - - - - - - Standard Units - - - - - - - Date/Time of Collection - - - - - - - - - - - - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reported Term for the Medical History - - - - - - Dictionary-Derived Term - - - - - - Medical History Event Pre-Specified - - - - - - - Medical History Occurrence - - - - - - - - - - - End Relative to Reference Period - - - - - - - End Relative to Reference Time Point - - - - - - - End Reference Time Point - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reported Name of Substance - - - - - - - - - - Category for Substance Use - - - - - - Subcategory for Substance Use - - - - - - SU Pre-Specified - - - - - - - SU Occurrence - - - - - - - - - - - Substance Use Consumption - - - - - - - - - - Substance Use Consumption Text - - - - - - - - - - Consumption Units - - - - - - - - - - - Use Frequency Per Interval - - - - - - - - - - - Start Date/Time of Substance Use - - - - - - - - - - End Date/Time of Substance Use - - - - - - - - - - Duration of Substance Use - - - - - - - - - - Start Relative to Reference Period - - - - - - - End Relative to Reference Period - - - - - - - Start Relative to Reference Time Point - - - - - - - Start Reference Time Point - - - - - - End Relative to Reference Time Point - - - - - - - End Reference Time Point - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reported Name of Procedure - - - - - - - - - - Standardized Procedure Name - - - - - - - Category - - - - - - Subcategory - - - - - - Pre-specified - - - - - - - Occurrence - - - - - - - - - - - Location of Procedure - - - - - - - - - - - Start Date/Time of Procedure - - - - - - - - - - End Date/Time of Procedure - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Vital Signs Test Short Name - - - - - - - Vital Signs Test Name - - - - - - - Vital Signs Position of Subject - - - - - - - Result or Finding in Original Units - - - - - - - - - - - Original Units - - - - - - - - Character Result/Finding in Std Format - - - - - - Numeric Result/Finding in Standard Units - - - - - - Standard Units - - - - - - - Location of Vital Signs Measurement - - - - - - - Laterality - - - - - - - Last Observation Before Exposure Flag - - - - - - - Visit Number - - - - - - Date/Time of Measurements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - ECG Test or Examination Short Name - - - - - - - ECG Test or Examination Name - - - - - - - Category for ECG - - - - - - ECG Position of Subject - - - - - - - Result or Finding in Original Units - - - - - - - Original Units - - - - - - - - Character Result/Finding in Std Format - - - - - - - Numeric Result/Finding in Standard Units - - - - - - Standard Units - - - - - - - Method of Test or Examination - - - - - - - Last Observation Before Exposure Flag - - - - - - - Evaluator - - - - - - - Clinically Significant, Collected - - - - - - - Visit Number - - - - - - Date/Time of ECG - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reported Name of Drug, Med, or Therapy - - - - - - - - - - Standardized Medication Name - - - - - - Category for Medication - - - - - - Subcategory for Medication - - - - - - CM Pre-specified - - - - - - - CM Occurrence - - - - - - - - - - - Indication - - - - - - - - - - Dose per Administration - - - - - - - - - - Dose Units - - - - - - - - - - - Dose Form - - - - - - - - - - - Route of Administration - - - - - - - - - - - Start Date/Time of Medication - - - - - - - - - - End Date/Time of Medication - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Lab Test or Examination Short Name - - - - - - - Lab Test or Examination Name - - - - - - - Category for Lab Test - - - - - - Result or Finding in Original Units - - - - - - - Original Units - - - - - - - - Reference Range Lower Limit in Orig Unit - - - - - - Reference Range Upper Limit in Orig Unit - - - - - - Character Result/Finding in Std Format - - - - - - - Numeric Result/Finding in Standard Units - - - - - - Standard Units - - - - - - - Reference Range Lower Limit-Std Units - - - - - - Reference Range Upper Limit-Std Units - - - - - - Reference Range Indicator - - - - - - - Specimen Type - - - - - - - Method of Test or Examination - - - - - - - Last Observation Before Exposure Flag - - - - - - - Fasting Status - - - - - - - Visit Number - - - - - - Date/Time of Specimen Collection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Microbiology Test or Finding Short Name - - - - - - - Microbiology Test or Finding Name - - - - - - - Measurement, Test or Examination Detail - - - - - - - Result or Finding in Original Units - - - - - - - Result or Finding in Standard Format - - - - - - Specimen Material Type - - - - - - - Method of Test or Examination - - - - - - - Visit Number - - - - - - Date/Time of Collection - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reference ID - - - - - - - - - - Name of Treatment - - - - - - - - - - Dose - - - - - - - - - - Dose Description - - - - - - - - - - Dose Units - - - - - - - - - - - Dose Form - - - - - - - - - - - Dosing Frequency per Interval - - - - - - - - - - - Intended Dose Regimen - - - - - - - - - - Route of Administration - - - - - - - - - - - Location of Dose Administration - - - - - - - - - - - Laterality - - - - - - - - - - - Directionality - - - - - - - - - - - Start Date/Time of Treatment - - - - - - End Date/Time of Treatment - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Reported Term for the Adverse Event - - - - - - - - - - Lowest Level Term - - - - - - Lowest Level Term Code - - - - - - Dictionary-Derived Term - - - - - - Preferred Term Code - - - - - - High Level Term - - - - - - High Level Term Code - - - - - - High Level Group Term - - - - - - High Level Group Term Code - - - - - - Category for Adverse Event - - - - - - Subcategory for Adverse Event - - - - - - Pre-Specified Adverse Event - - - - - - - Body System or Organ Class - - - - - - Body System or Organ Class Code - - - - - - Primary System Organ Class - - - - - - Primary System Organ Class Code - - - - - - Location of Event - - - - - - - - - - - Severity/Intensity - - - - - - - - - - - Serious Event - - - - - - - - - - - Action Taken with Study Treatment - - - - - - - - - - - Other Action Taken - - - - - - - - - - Causality - - - - - - - - - - Relationship to Non-Study Treatment - - - - - - - - - - Pattern of Adverse Event - - - - - - - - - - Outcome of Adverse Event - - - - - - - - - - - Involves Cancer - - - - - - - - - - - Congenital Anomaly or Birth Defect - - - - - - - - - - - Persist or Signif Disability/Incapacity - - - - - - - - - - - Results in Death - - - - - - - - - - - Requires or Prolongs Hospitalization - - - - - - - - - - - Is Life Threatening - - - - - - - - - - - Occurred with Overdose - - - - - - - - - - - Other Medically Important Serious Event - - - - - - - - - - - Concomitant or Additional Trtmnt Given - - - - - - - - - - - Standard Toxicity Grade - - - - - - - - - - Start Date/Time of Adverse Event - - - - - - - - - - End Date/Time of Adverse Event - - - - - - - - - - End Relative to Reference Period - - - - - - - End Relative to Reference Time Point - - - - - - - End Reference Time Point - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Sequence Number - - - - - - Trial Summary Parameter Short Name - - - - - - - - Trial Summary Parameter - - - - - - - Parameter Value - - - - - - Parameter Value Code - - - - - - Name of the Reference Terminology - - - - - - - Version of the Reference Terminology - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Planned Arm Code - - - - - - - Description of Planned Arm - - - - - - - Planned Order of Element within Arm - - - - - - Element Code - - - - - - - Description of Element - - - - - - - Branch - - - - - - Transition Rule - - - - - - Epoch - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Element Code - - - - - - - Description of Element - - - - - - - Rule for Start of Element - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Incl/Excl Criterion Short Name - - - - - - - Inclusion/Exclusion Criterion - - - - - - - Inclusion/Exclusion Category - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Visit Number - - - - - - Visit Name - - - - - - Planned Study Day of Visit - - - - - - Planned Arm Code - - - - - - - Description of Planned Arm - - - - - - - Visit Start Rule - - - - - - Visit End Rule - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Visit Number - - - - - - Visit Name - - - - - - Pre-specified - - - - - - - Occurrence - - - - - - - Contact Mode - - - - - - - Start Date/Time of Observation - - - - - - End Date/Time of Observation - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Inclusion/Exclusion Criterion Short Name - - - - - - - Inclusion/Exclusion Criterion - - - - - - - Inclusion/Exclusion Category - - - - - - - I/E Criterion Original Result - - - - - - - - I/E Criterion Result in Std Format - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Study Identifier - - - - - - Domain Abbreviation - - - - - - Unique Subject Identifier - - - - - - Sequence Number - - - - - - Element Code - - - - - - - Description of Element - - - - - - - Epoch - - - - - - - Start Date/Time of Element - - - - - - End Date/Time of Element - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Age greater than 50 - - - - - Diagnosis of Alzheimer's - - - - - MMSE Score - - - - - Hachinski Ischemic Score - - - - - CNS imaging comptaible with Alzheimer's - - - - - Informed consent criteria - - - - - Geographic proximity criteria - - - - - Reliable caregiver criteria - - - - - Previous study criteria - - - - - Other Alzheimer's therapy criteria - - - - - Serious illness criteria - - - - - Serious neurolocal conditions criteria - - - - - Depression criteria - - - - - Schizophrenia, Bipolar, Ethanol or psychoactive abuse criteria - - - - - - Syncope criteria - - - - - ECG Criteria - - - - - Cardiovascular criteria - - - - - Gastrointensinal criteria - - - - - Endocrine criteria - - - - - Resporatory criteria - - - - - Genitourinary criteria - - - - - Rheumatologic criteria - - - - - HIV criteria - - - - - Neurosyphilis, Meningitis,Encephalitis criteria - - - - - Malignant disease criteria - - - - - Ability to participate in study criteria - - - - - Laboratory values criteria - - - - - Central laboratory values criteria - - - - - Syphilia criteria - - - - - Hemoglobin criteria - - - - - Medications Criteria - - - - - - - - - - - - - - - - Screening - - - - - Placebo - - - - - Follow up - - - - - Low - - - - - High - Start - - - - - High - Middle - - - - - High - End - - - - - - - - - - - - - - - - - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - No - - - - - - Yes - - - - - - - - - __PLACEHOLDER__ - - - - - - - - Female - - - - - - Male - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - Level of Education Attained - - - - - - Number of Years of Education - - - - - - - - - Level of Education Attained - - - - - - Number of Years of Education - - - - - - - - - Percentage - - - - - - /pL - - - - - - /mm3 - - - - - - /nL - - - - - - Cigar Dosing Unit - - - - - - Cigarette Dosing Unit - - - - - - Drink Dosing Unit - - - - - - Ehrlich Units - - - - - - Femtomole - - - - - - Proportion of 1 - - - - - - Gram - - - - - - g% - - - - - - g/L - - - - - - Glass Dosing Unit - - - - - - IE/L - - - - - - Kilogram per Square Meter - - - - - - Liter - - - - - - Milliequivalent per Deciliter - - - - - - Milliequivalent Per Liter - - - - - - Milligram - - - - - - mg% - - - - - - g/m3 - - - - - - mcIU/mL - - - - - - cc - - - - - - mcmol/mL - - - - - - Millisecond - - - - - - uU/mL - - - - - - Nanogram per Deciliter - - - - - - Microgram per Cubic Meter - - - - - - Nanokatal per Liter - - - - - - Nanomole per Liter - - - - - - Ounce - - - - - - PACK - - - - - - Picogram - - - - - - Pipe Dosing Unit - - - - - - Femtomole per Milliliter - - - - - - Pounds per Square Inch - - - - - - sec - - - - - - mU/mL - - - - - - Microgram per Deciliter - - - - - - mcg/L - - - - - - mckat/L - - - - - - nmol/mL - - - - - - - - - __PLACEHOLDER__ - - - - - - - - Every 7 Days - - - - - - /day - - - - - - - - - __PLACEHOLDER__ - - - - - - - - Arm - - - - - - Armpit - - - - - - Back - - - - - - BRACHIAL ARTERY - - - - - - Buttock - - - - - - Common Carotid Artery - - - - - - CEREBRAL ARTERY - - - - - - Chest - - - - - - Dorsal Pedal Artery - - - - - - EAR - - - - - - FEMORAL ARTERY - - - - - - Finger - - - - - - Forehead - - - - - - Buccal cavity - - - - - - Radial Artery - - - - - - RECTUM - - - - - - Thigh - - - - - - - - - Body Mass Index - - - - - - Diastolic Blood Pressure - - - - - - Height - - - - - - Heart Rate - - - - - - Pulse Rate - - - - - - Respiratory Rate - - - - - - Systolic Blood Pressure - - - - - - Body Temperature - - - - - - Weight - - - - - - - - - Body Mass Index - - - - - - Diastolic Blood Pressure - - - - - - Heart Rate - - - - - - Height - - - - - - Pulse Rate - - - - - - Respiratory Rate - - - - - - Systolic Blood Pressure - - - - - - Body Temperature - - - - - - Weight - - - - - - - - - Prone - - - - - - Semi-Supine - - - - - - Sitting - - - - - - Orthostatic - - - - - - Supine - - - - - - - - - Degree Celsius - - - - - - Centimeter - - - - - - Degree Fahrenheit - - - - - - Gram - - - - - - Inch - - - - - - Kelvin - - - - - - Kilogram - - - - - - lb - - - - - - Meter - - - - - - Kilogram per Square Meter - - - - - - - - - LEFT - - - - - - RIGHT - - - - - - - - - Atrioventricular Conduction - - - - - - Axis and Voltage - - - - - - Chamber Hypertrophy or Enlargement - - - - - - ECG Mean Heart Rate - - - - - - Interpretation - - - - - - Intraventricular-Intraatrial Conduction - - - - - - Pacemaker - - - - - - PQ Interval, Aggregate - - - - - - QRS Axis - - - - - - QRS Duration, Aggregate - - - - - - QT Interval, Aggregate - - - - - - QTcB Interval, Aggregate - - - - - - QTcF Interval, Aggregate - - - - - - Rhythm Not Otherwise Specified - - - - - - RR Interval, Aggregate - - - - - - Sinus Node Rhythms and Arrhythmias - - - - - - Supraventricular Arrhythmias - - - - - - Supraventricular Tachyarrhythmias - - - - - - Technical Quality - - - - - - Ventricular Arrhythmias - - - - - - Ventricular Tachyarrhythmias - - - - - - - - - Atrioventricular Conduction - - - - - - Axis and Voltage - - - - - - Chamber Hypertrophy or Enlargement - - - - - - ECG Mean Heart Rate - - - - - - Interpretation - - - - - - Intraventricular-Intraatrial Conduction - - - - - - Pacemaker - - - - - - PQ Interval, Aggregate - - - - - - QRS Axis - - - - - - QRS Duration, Aggregate - - - - - - QT Interval, Aggregate - - - - - - QTcB Interval, Aggregate - - - - - - QTcF Interval, Aggregate - - - - - - Rhythm Not Otherwise Specified - - - - - - RR Interval, Aggregate - - - - - - Sinus Node Rhythms and Arrhythmias - - - - - - Supraventricular Arrhythmias - - - - - - Supraventricular Tachyarrhythmias - - - - - - Technical Quality - - - - - - Ventricular Arrhythmias - - - - - - Ventricular Tachyarrhythmias - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - ADJUDICATION COMMITTEE - - - - - - INDEPENDENT ASSESSOR - - - - - - INVESTIGATOR - - - - - - VENDOR - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - Albumin - - - - - - Alkaline Phosphatase - - - - - - Alanine Aminotransferase - - - - - - Anisocytes - - - - - - Aspartate Aminotransferase - - - - - - Basophils - - - - - - Bicarbonate - - - - - - Bilirubin - - - - - - Calcium - - - - - - Cholesterol - - - - - - Chloride - - - - - - Color - - - - - - Creatinine - - - - - - Eosinophils - - - - - - Gamma Glutamyl Transferase - - - - - - Glucose - - - - - - HbA1c - - - - - - Hemoglobin A1C/Hemoglobin - - - - - - Erythrocyte Volume Fraction - - - - - - Hemoglobin - - - - - - Potassium - - - - - - Ketones - - - - - - Macrocytes - - - - - - Ery. Mean Corpuscular Hemoglobin - - - - - - Ery. Mean Corpuscular HGB Concentration - - - - - - Ery. Mean Corpuscular Volume - - - - - - Microcytes - - - - - - Monocytes - - - - - - Neutrophils - - - - - - Neutrophils Band Form - - - - - - Neutrophils, Segmented - - - - - - Nitrite - - - - - - Occult Blood - - - - - - Inorganic Phosphate - - - - - - Platelets - - - - - - Poikilocytes - - - - - - Polychromasia - - - - - - Protein - - - - - - Erythrocytes - - - - - - Sodium - - - - - - Specific Gravity - - - - - - Total T3 - - - - - - T3RU - - - - - - Free T4 - - - - - - Thyroxine, Free Index - - - - - - Thyroid Stimulating Hormone - - - - - - Urate - - - - - - Urea Nitrogen - - - - - - Urobilinogen - - - - - - Cobalamin - - - - - - Folate - - - - - - Leukocytes - - - - - - - - - Alanine Aminotransferase - - - - - - Albumin - - - - - - Alkaline Phosphatase - - - - - - Anisocytes - - - - - - Aspartate Aminotransferase - - - - - - Basophils - - - - - - Bicarbonate - - - - - - Bilirubin - - - - - - Calcium - - - - - - Chloride - - - - - - Cholesterol - - - - - - Color - - - - - - Creatinine - - - - - - Eosinophils - - - - - - Ery. Mean Corpuscular Hemoglobin - - - - - - Ery. Mean Corpuscular HGB Concentration - - - - - - Ery. Mean Corpuscular Volume - - - - - - Erythrocytes - - - - - - Gamma Glutamyl Transferase - - - - - - Glucose - - - - - - Erythrocyte Volume Fraction - - - - - - HbA1c - - - - - - Hemoglobin A1C/Hemoglobin - - - - - - Hemoglobin - - - - - - Ketones - - - - - - Leukocytes - - - - - - Macrocytes - - - - - - Microcytes - - - - - - Monocytes - - - - - - Neutrophils Band Form - - - - - - Neutrophils - - - - - - Neutrophils, Segmented - - - - - - Nitrite - - - - - - Occult Blood - - - - - - Inorganic Phosphate - - - - - - Platelets - - - - - - Poikilocytes - - - - - - Polychromasia - - - - - - Potassium - - - - - - Protein - - - - - - Sodium - - - - - - Specific Gravity - - - - - - Thyroid Stimulating Hormone - - - - - - Thyroxine, Free Index - - - - - - Free T4 - - - - - - T3RU - - - - - - Total T3 - - - - - - Urate - - - - - - Urea Nitrogen - - - - - - Urobilinogen - - - - - - Cobalamin - - - - - - Folate - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - Peripheral Blood - - - - - - RBC - - - - - - Ser/Plas - - - - - - Feces - - - - - - URINE SEDIMENT - - - - - - URINE - - - - - - CSF - - - - - - FLUID - - - - - - Sera - - - - - - SWABBED MATERIAL - - - - - - - - - DIPSTICK MEASUREMENT METHOD - - - - - - Chemiluminescent Magnetic Microparticle Immunoassay - - - - - - - Fluorescent Antibody Assay - - - - - - HEMAGGLUTINATION ASSAY - - - - - - IMMUNOBLOT - - - - - - LiPA - - - - - - PCR - - - - - - RAPID IMMUNOASSAY - - - - - - - - - Treponema pallidum DNA - - - - - - TPLAB - - - - - - - - Treponema pallidum DNA - - - - - - - - - DETECTION - - - - - - - - - LOWER - - - - - - MIDLINE - - - - - - UPPER - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - Adaptive Design - - - - - - Planned Maximum Age of Subjects - - - - - - Planned Minimum Age of Subjects - - - - - - Comparative Treatment Name - - - - - - Confirmed Response Minimum Duration - - - - - - Dose Level - - - - - - Dosing Frequency - - - - - - Dose Units - - - - - - Indication for Use - - - - - - Intervention Model - - - - - - Intervention Type - - - - - - Planned Number of Arms - - - - - - Study Primary Objective - - - - - - Study Secondary Objective - - - - - - Primary Outcome Measure - - - - - - Secondary Outcome Measure - - - - - - Anticipated Enrollment - - - - - - Planned Treatment Duration - - - - - - Route of Administration - - - - - - Sex of Participants - - - - - - Clinical Study Sponsor - - - - - - Study Type - - - - - - Study Blinding Design - - - - - - Therapeutic Area - - - - - - Trial Intent Type - - - - - - Official Study Title - - - - - - Trial Phase - - - - - - Investigational Interventional - - - - - - Trial Scope - - - - - - - - - Adaptive Design - - - - - - Clinical Study Sponsor - - - - - - Comparative Treatment Name - - - - - - Confirmed Response Minimum Duration - - - - - - Dose Level - - - - - - Dose Units - - - - - - Dosing Frequency - - - - - - Intervention Model - - - - - - Intervention Type - - - - - - Investigational Interventional - - - - - - Planned Maximum Age of Subjects - - - - - - Planned Minimum Age of Subjects - - - - - - Planned Number of Arms - - - - - - Anticipated Enrollment - - - - - - Planned Treatment Duration - - - - - - Primary Outcome Measure - - - - - - Route of Administration - - - - - - Secondary Outcome Measure - - - - - - Sex of Participants - - - - - - Study Type - - - - - - Therapeutic Area - - - - - - Study Blinding Design - - - - - - Indication for Use - - - - - - Trial Intent Type - - - - - - Trial Phase - - - - - - Study Primary Objective - - - - - - Study Secondary Objective - - - - - - Official Study Title - - - - - - Trial Scope - - - - - - - - - __PLACEHOLDER__ - - - - - - - - __PLACEHOLDER__ - - - - - - - - In-Person - - - - - - TELEPHONE CALL - - - - - - - - __PLACEHOLDER__ for derivation of VSORRES BMI - - - - Annotated CRF - - - - \ No newline at end of file +LZZT - NEWSafety and Efficacy of the Xanomeline Transdermal Therapeutic System (TTS) in Patients with Mild to Moderate Alzheimer's DiseaseLZZT - NEWEDULEVELEDUYRNUMEDUYRNUMTEMPAXILLAEARFOREHEADORAL CAVITYRECTUMWEIGHTHEIGHTPULSEPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYCEREBRAL ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYRADIAL ARTERYLEFTRIGHTRESPBMISYSBPPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYFINGERRADIAL ARTERYLEFTRIGHTDIABPPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYFINGERRADIAL ARTERYLEFTRIGHTHRPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYCEREBRAL ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYRADIAL ARTERYLEFTRIGHTTEMPAXILLAEARFOREHEADORAL CAVITYRECTUMWEIGHTHEIGHTPULSEPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYCEREBRAL ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYRADIAL ARTERYLEFTRIGHTRESPBMISYSBPPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYFINGERRADIAL ARTERYLEFTRIGHTDIABPPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYFINGERRADIAL ARTERYLEFTRIGHTHRPRONESEMI-RECUMBENTSITTINGSTANDINGSUPINEBRACHIAL ARTERYCAROTID ARTERYCEREBRAL ARTERYDORSALIS PEDIS ARTERYFEMORAL ARTERYRADIAL ARTERYLEFTRIGHTINTPADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORAVCONDADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORAXISVOLTADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORCHYPTENLADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORTECHQUALADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORIVTIACDADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORPACEMAKRADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORRHYNOSADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORSNRARRYADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORSPRARRYADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORSPRTARRYADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORVTARRYADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORVTTARRYADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORPRAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQRSAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQTAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQTCBAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQTCFAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORRRAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDOREGHRMNADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQRS_AXISADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORPRAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQRSAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQTAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQTCBAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQTCFAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORRRAGADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDOREGHRMNADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORQRS_AXISADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDORHGBBLOODDIPSTICK MEASUREMENT METHODHCTBLOODRBCBLOODMCHERYTHROCYTESMCHCERYTHROCYTESMCVERYTHROCYTESWBCBLOODNEUTSGBLOODNEUTBBLOODNEUTBLOODMONOBLOODEOSBLOODBASOBLOODPLATBLOODMICROCYURINE SEDIMENTMACROCYURINE SEDIMENTANISOBLOODPOIKILOBLOODPOLYCHRBLOODALTSERUM OR PLASMAALBURINEALPSERUM OR PLASMAASTSERUM OR PLASMACREATURINEKURINESODIUMURINEUREANSERUM OR PLASMABICARBBLOODCLSERUM OR PLASMABILIURINEGGTSERUM OR PLASMAURATESERUM OR PLASMAPHOSSERUM OR PLASMACASERUM OR PLASMAGLUCURINEPROTURINECHOLSERUM OR PLASMAT3UPSERUM OR PLASMAT3SERUM OR PLASMAT4FRSERUM OR PLASMAT4FRIDXSERUM OR PLASMATSHSERUM OR PLASMAVITB9SERUM OR PLASMAVITB12SERUM OR PLASMACOLORURINESPGRAVURINEKETONESURINEUROBILURINEOCCBLDSTOOLNITRITEURINEHBA1CBLOODHBA1CHGBBLOODHGBBLOODDIPSTICK MEASUREMENT METHODHCTBLOODRBCBLOODMCHERYTHROCYTESMCHCERYTHROCYTESMCVERYTHROCYTESWBCBLOODNEUTSGBLOODNEUTBBLOODNEUTBLOODMONOBLOODEOSBLOODBASOBLOODPLATBLOODALTSERUM OR PLASMAALPSERUM OR PLASMAASTSERUM OR PLASMACREATURINEKURINESODIUMURINEUREANSERUM OR PLASMABICARBBLOODCLSERUM OR PLASMAGGTSERUM OR PLASMAURATESERUM OR PLASMAPHOSSERUM OR PLASMACASERUM OR PLASMACHOLSERUM OR PLASMAT3UPSERUM OR PLASMAT3SERUM OR PLASMAT4FRSERUM OR PLASMAT4FRIDXSERUM OR PLASMATSHSERUM OR PLASMAVITB9SERUM OR PLASMAVITB12SERUM OR PLASMAUROBILURINEHBA1CBLOODHBA1CHGBBLOODTPLABDETECTIONSERUMFLUORESCENT IMMUNOASSAYHEMAGGLUTINATION ASSAYCHEMILUMINESCENT MICROPARTICLE IMMUNOASSAYPOLYMERASE CHAIN REACTIONIMMUNOBLOTRAPID IMMUNOASSAYTPADNADETECTIONBLOODCEREBROSPINAL FLUIDFLUIDSWABBED MATERIALURINELINE PROBE ASSAYADAPTAGEMINAGEMAXCOMPTRTCRMDURDOSEDOSFRQDOSUINDICINTMODELINTTYPENARMSOBJPRIMOBJSECOUTMSPRIOUTMSSECPLANSUBPTRTDURROUTESEXPOPSPONSORSTYPETBLINDTHERAREATINDTPTITLETPHASETRTTTYPEIN01IN02IN03IN04IN05IN06IN07IN08EX01EX02EX03EX04EX05EX06EX07EX08EX09EX10EX11EX12EX13EX14EX15EX16EX17EX18EX19EX20EX21EX22EX23Dispositionds.ndjsonDemographicsdm.ndjsonSubject Characteristicssc.ndjsonMedical Historymh.ndjsonSubstance Usesu.ndjsonProcedurespr.ndjsonVital Signsvs.ndjsonECG Test Resultseg.ndjsonConcomitant/Prior Medicationscm.ndjsonLaboratory Test Resultslb.ndjsonMicrobiology Specimenmb.ndjsonExposure as Collectedec.ndjsonAdverse Eventsae.ndjsonTrial Summaryts.ndjsonTrial Armsta.ndjsonTrial Elementste.ndjsonTrial Inclusion/Exclusion Criteriati.ndjsonTrial Visitstv.ndjsonSubject Visitssv.ndjsonInclusion/Exclusion Criteria Not Metie.ndjsonSubject Elementsse.ndjsonStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReported Term for the Disposition EventStandardized Disposition TermCategory for Disposition EventSubcategory for Disposition EventStart Date/Time of Disposition EventStudy Day of Start of Disposition EventStudy IdentifierDomain AbbreviationUnique Subject IdentifierSubject Identifier for the StudySubject Reference Start Date/TimeSubject Reference End Date/TimeDate/Time of First Study TreatmentDate/Time of Last Study TreatmentDate/Time of Informed ConsentDate/Time of End of ParticipationDate/Time of DeathSubject Death FlagStudy Site IdentifierAgeAge UnitsSexRaceEthnicityPlanned Arm CodeDescription of Planned ArmActual Arm CodeDescription of Actual ArmReason Arm and/or Actual Arm is NullDescription of Unplanned Actual ArmCountryDate/Time of CollectionStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberSubject Characteristic Short NameSubject CharacteristicResult or Finding in Original UnitsOriginal UnitsCharacter Result/Finding in Std FormatNumeric Result/Finding in Standard UnitsStandard UnitsDate/Time of CollectionStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReported Term for the Medical HistoryDictionary-Derived TermMedical History Event Pre-SpecifiedMedical History OccurrenceEnd Relative to Reference PeriodEnd Relative to Reference Time PointEnd Reference Time PointStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReported Name of SubstanceCategory for Substance UseSubcategory for Substance UseSU Pre-SpecifiedSU OccurrenceSubstance Use ConsumptionSubstance Use Consumption TextConsumption UnitsUse Frequency Per IntervalStart Date/Time of Substance UseEnd Date/Time of Substance UseDuration of Substance UseStart Relative to Reference PeriodEnd Relative to Reference PeriodStart Relative to Reference Time PointStart Reference Time PointEnd Relative to Reference Time PointEnd Reference Time PointStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReported Name of ProcedureStandardized Procedure NameCategorySubcategoryPre-specifiedOccurrenceLocation of ProcedureStart Date/Time of ProcedureEnd Date/Time of ProcedureStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberVital Signs Test Short NameVital Signs Test NameVital Signs Position of SubjectResult or Finding in Original UnitsOriginal UnitsCharacter Result/Finding in Std FormatNumeric Result/Finding in Standard UnitsStandard UnitsLocation of Vital Signs MeasurementLateralityLast Observation Before Exposure FlagVisit NumberDate/Time of MeasurementsStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberECG Test or Examination Short NameECG Test or Examination NameCategory for ECGECG Position of SubjectResult or Finding in Original UnitsOriginal UnitsCharacter Result/Finding in Std FormatNumeric Result/Finding in Standard UnitsStandard UnitsMethod of Test or ExaminationLast Observation Before Exposure FlagEvaluatorClinically Significant, CollectedVisit NumberDate/Time of ECGStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReported Name of Drug, Med, or TherapyStandardized Medication NameCategory for MedicationSubcategory for MedicationCM Pre-specifiedCM OccurrenceIndicationDose per AdministrationDose UnitsDose FormRoute of AdministrationStart Date/Time of MedicationEnd Date/Time of MedicationStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberLab Test or Examination Short NameLab Test or Examination NameCategory for Lab TestResult or Finding in Original UnitsOriginal UnitsReference Range Lower Limit in Orig UnitReference Range Upper Limit in Orig UnitCharacter Result/Finding in Std FormatNumeric Result/Finding in Standard UnitsStandard UnitsReference Range Lower Limit-Std UnitsReference Range Upper Limit-Std UnitsReference Range IndicatorSpecimen TypeMethod of Test or ExaminationLast Observation Before Exposure FlagFasting StatusVisit NumberDate/Time of Specimen CollectionStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberMicrobiology Test or Finding Short NameMicrobiology Test or Finding NameMeasurement, Test or Examination DetailResult or Finding in Original UnitsResult or Finding in Standard FormatSpecimen Material TypeMethod of Test or ExaminationVisit NumberDate/Time of CollectionStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReference IDName of TreatmentDoseDose DescriptionDose UnitsDose FormDosing Frequency per IntervalIntended Dose RegimenRoute of AdministrationLocation of Dose AdministrationLateralityDirectionalityStart Date/Time of TreatmentEnd Date/Time of TreatmentStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberReported Term for the Adverse EventLowest Level TermLowest Level Term CodeDictionary-Derived TermPreferred Term CodeHigh Level TermHigh Level Term CodeHigh Level Group TermHigh Level Group Term CodeCategory for Adverse EventSubcategory for Adverse EventPre-Specified Adverse EventBody System or Organ ClassBody System or Organ Class CodePrimary System Organ ClassPrimary System Organ Class CodeLocation of EventSeverity/IntensitySerious EventAction Taken with Study TreatmentOther Action TakenCausalityRelationship to Non-Study TreatmentPattern of Adverse EventOutcome of Adverse EventInvolves CancerCongenital Anomaly or Birth DefectPersist or Signif Disability/IncapacityResults in DeathRequires or Prolongs HospitalizationIs Life ThreateningOccurred with OverdoseOther Medically Important Serious EventConcomitant or Additional Trtmnt GivenStandard Toxicity GradeStart Date/Time of Adverse EventEnd Date/Time of Adverse EventEnd Relative to Reference PeriodEnd Relative to Reference Time PointEnd Reference Time PointStudy IdentifierDomain AbbreviationSequence NumberTrial Summary Parameter Short NameTrial Summary ParameterParameter ValueParameter Value CodeName of the Reference TerminologyVersion of the Reference TerminologyStudy IdentifierDomain AbbreviationPlanned Arm CodeDescription of Planned ArmPlanned Order of Element within ArmElement CodeDescription of ElementBranchTransition RuleEpochStudy IdentifierDomain AbbreviationElement CodeDescription of ElementRule for Start of ElementStudy IdentifierDomain AbbreviationIncl/Excl Criterion Short NameInclusion/Exclusion CriterionInclusion/Exclusion CategoryStudy IdentifierDomain AbbreviationVisit NumberVisit NamePlanned Study Day of VisitPlanned Arm CodeDescription of Planned ArmVisit Start RuleVisit End RuleStudy IdentifierDomain AbbreviationUnique Subject IdentifierVisit NumberVisit NamePre-specifiedOccurrenceContact ModeStart Date/Time of ObservationEnd Date/Time of ObservationStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberInclusion/Exclusion Criterion Short NameInclusion/Exclusion CriterionInclusion/Exclusion CategoryI/E Criterion Original ResultI/E Criterion Result in Std FormatStudy IdentifierDomain AbbreviationUnique Subject IdentifierSequence NumberElement CodeDescription of ElementEpochStart Date/Time of ElementEnd Date/Time of ElementAge greater than 50Diagnosis of Alzheimer'sMMSE ScoreHachinski Ischemic ScoreCNS imaging comptaible with Alzheimer'sInformed consent criteriaGeographic proximity criteriaReliable caregiver criteriaPrevious study criteriaOther Alzheimer's therapy criteriaSerious illness criteriaSerious neurolocal conditions criteriaDepression criteriaSchizophrenia, Bipolar, Ethanol or psychoactive abuse criteriaSyncope criteriaECG CriteriaCardiovascular criteriaGastrointensinal criteriaEndocrine criteriaResporatory criteriaGenitourinary criteriaRheumatologic criteriaHIV criteriaNeurosyphilis, Meningitis,Encephalitis criteriaMalignant disease criteriaAbility to participate in study criteriaLaboratory values criteriaCentral laboratory values criteriaSyphilia criteriaHemoglobin criteriaMedications CriteriaScreeningPlaceboFollow upLowHigh - StartHigh - MiddleHigh - End__PLACEHOLDER____PLACEHOLDER____PLACEHOLDER__NoYes__PLACEHOLDER__FemaleMale__PLACEHOLDER____PLACEHOLDER____PLACEHOLDER__Level of Education AttainedNumber of Years of EducationLevel of Education AttainedNumber of Years of EducationPercentage/pL/mm3/nLCigar Dosing UnitCigarette Dosing UnitDrink Dosing UnitEhrlich UnitsFemtomoleProportion of 1Gramg%g/LGlass Dosing UnitIE/LKilogram per Square MeterLiterMilliequivalent per DeciliterMilliequivalent Per LiterMilligrammg%g/m3mcIU/mLccmcmol/mLMilliseconduU/mLNanogram per DeciliterMicrogram per Cubic MeterNanokatal per LiterNanomole per LiterOuncePACKPicogramPipe Dosing UnitFemtomole per MilliliterPounds per Square InchsecmU/mLMicrogram per Decilitermcg/Lmckat/Lnmol/mL__PLACEHOLDER__Every 7 Days/day__PLACEHOLDER__ArmArmpitBackBRACHIAL ARTERYButtockCommon Carotid ArteryCEREBRAL ARTERYChestDorsal Pedal ArteryEARFEMORAL ARTERYFingerForeheadBuccal cavityRadial ArteryRECTUMThighBody Mass IndexDiastolic Blood PressureHeightHeart RatePulse RateRespiratory RateSystolic Blood PressureBody TemperatureWeightBody Mass IndexDiastolic Blood PressureHeart RateHeightPulse RateRespiratory RateSystolic Blood PressureBody TemperatureWeightProneSemi-SupineSittingOrthostaticSupineDegree CelsiusCentimeterDegree FahrenheitGramInchKelvinKilogramlbMeterKilogram per Square MeterLEFTRIGHTAtrioventricular ConductionAxis and VoltageChamber Hypertrophy or EnlargementECG Mean Heart RateInterpretationIntraventricular-Intraatrial ConductionPacemakerPQ Interval, AggregateQRS AxisQRS Duration, AggregateQT Interval, AggregateQTcB Interval, AggregateQTcF Interval, AggregateRhythm Not Otherwise SpecifiedRR Interval, AggregateSinus Node Rhythms and ArrhythmiasSupraventricular ArrhythmiasSupraventricular TachyarrhythmiasTechnical QualityVentricular ArrhythmiasVentricular TachyarrhythmiasAtrioventricular ConductionAxis and VoltageChamber Hypertrophy or EnlargementECG Mean Heart RateInterpretationIntraventricular-Intraatrial ConductionPacemakerPQ Interval, AggregateQRS AxisQRS Duration, AggregateQT Interval, AggregateQTcB Interval, AggregateQTcF Interval, AggregateRhythm Not Otherwise SpecifiedRR Interval, AggregateSinus Node Rhythms and ArrhythmiasSupraventricular ArrhythmiasSupraventricular TachyarrhythmiasTechnical QualityVentricular ArrhythmiasVentricular Tachyarrhythmias__PLACEHOLDER____PLACEHOLDER__ADJUDICATION COMMITTEEINDEPENDENT ASSESSORINVESTIGATORVENDOR__PLACEHOLDER____PLACEHOLDER__AlbuminAlkaline PhosphataseAlanine AminotransferaseAnisocytesAspartate AminotransferaseBasophilsBicarbonateBilirubinCalciumCholesterolChlorideColorCreatinineEosinophilsGamma Glutamyl TransferaseGlucoseHbA1cHemoglobin A1C/HemoglobinErythrocyte Volume FractionHemoglobinPotassiumKetonesMacrocytesEry. Mean Corpuscular HemoglobinEry. Mean Corpuscular HGB ConcentrationEry. Mean Corpuscular VolumeMicrocytesMonocytesNeutrophilsNeutrophils Band FormNeutrophils, SegmentedNitriteOccult BloodInorganic PhosphatePlateletsPoikilocytesPolychromasiaProteinErythrocytesSodiumSpecific GravityTotal T3T3RUFree T4Thyroxine, Free IndexThyroid Stimulating HormoneUrateUrea NitrogenUrobilinogenCobalaminFolateLeukocytesAlanine AminotransferaseAlbuminAlkaline PhosphataseAnisocytesAspartate AminotransferaseBasophilsBicarbonateBilirubinCalciumChlorideCholesterolColorCreatinineEosinophilsEry. Mean Corpuscular HemoglobinEry. Mean Corpuscular HGB ConcentrationEry. Mean Corpuscular VolumeErythrocytesGamma Glutamyl TransferaseGlucoseErythrocyte Volume FractionHbA1cHemoglobin A1C/HemoglobinHemoglobinKetonesLeukocytesMacrocytesMicrocytesMonocytesNeutrophils Band FormNeutrophilsNeutrophils, SegmentedNitriteOccult BloodInorganic PhosphatePlateletsPoikilocytesPolychromasiaPotassiumProteinSodiumSpecific GravityThyroid Stimulating HormoneThyroxine, Free IndexFree T4T3RUTotal T3UrateUrea NitrogenUrobilinogenCobalaminFolate__PLACEHOLDER____PLACEHOLDER__Peripheral BloodRBCSer/PlasFecesURINE SEDIMENTURINECSFFLUIDSeraSWABBED MATERIALDIPSTICK MEASUREMENT METHODChemiluminescent Magnetic Microparticle ImmunoassayFluorescent Antibody AssayHEMAGGLUTINATION ASSAYIMMUNOBLOTLiPAPCRRAPID IMMUNOASSAYTreponema pallidum DNATPLABTreponema pallidum DNADETECTIONLOWERMIDLINEUPPER__PLACEHOLDER____PLACEHOLDER____PLACEHOLDER__Adaptive DesignPlanned Maximum Age of SubjectsPlanned Minimum Age of SubjectsComparative Treatment NameConfirmed Response Minimum DurationDose LevelDosing FrequencyDose UnitsIndication for UseIntervention ModelIntervention TypePlanned Number of ArmsStudy Primary ObjectiveStudy Secondary ObjectivePrimary Outcome MeasureSecondary Outcome MeasureAnticipated EnrollmentPlanned Treatment DurationRoute of AdministrationSex of ParticipantsClinical Study SponsorStudy TypeStudy Blinding DesignTherapeutic AreaTrial Intent TypeOfficial Study TitleTrial PhaseInvestigational InterventionalTrial ScopeAdaptive DesignClinical Study SponsorComparative Treatment NameConfirmed Response Minimum DurationDose LevelDose UnitsDosing FrequencyIntervention ModelIntervention TypeInvestigational InterventionalPlanned Maximum Age of SubjectsPlanned Minimum Age of SubjectsPlanned Number of ArmsAnticipated EnrollmentPlanned Treatment DurationPrimary Outcome MeasureRoute of AdministrationSecondary Outcome MeasureSex of ParticipantsStudy TypeTherapeutic AreaStudy Blinding DesignIndication for UseTrial Intent TypeTrial PhaseStudy Primary ObjectiveStudy Secondary ObjectiveOfficial Study TitleTrial Scope__PLACEHOLDER____PLACEHOLDER__In-PersonTELEPHONE CALL__PLACEHOLDER__ for derivation of VSORRES BMIAnnotated CRF \ No newline at end of file diff --git a/src/generators/define/valueLevel.py b/src/generators/define/valueLevel.py index c5e7dbe..16d974b 100644 --- a/src/generators/define/valueLevel.py +++ b/src/generators/define/valueLevel.py @@ -41,8 +41,9 @@ def _create_itemref_object(item): attr["MethodOID"] = item["method"] attr["Mandatory"] = "Yes" if item.get("mandatory", False) else "No" ir = DEFINE.ItemRef(**attr) - applicable_when = item.get("applicableWhen") or [] - if applicable_when: - # TODO when there are multiple applicableWhen values only the first is wired up - ir.WhereClauseRef.append(DEFINE.WhereClauseRef(WhereClauseOID=applicable_when[0])) + applicable_whens = item.get("applicableWhen", []) + for applicable_when in applicable_whens: + ir.WhereClauseRef.append(DEFINE.WhereClauseRef(WhereClauseOID=applicable_when)) + # if applicable_when: + # ir.WhereClauseRef.append(DEFINE.WhereClauseRef(WhereClauseOID=applicable_when[0])) return ir