From 75aa0ba1044f1bb7524b115651cea883a7a21834 Mon Sep 17 00:00:00 2001 From: swhume Date: Sun, 2 Aug 2026 12:41:22 -0400 Subject: [PATCH] adds enum item placeholder --- src/generators/define/codeLists.py | 10 +++ .../define/tests/fixtures/define-360i.xml | 71 ++++++++++++------- 2 files changed, 57 insertions(+), 24 deletions(-) diff --git a/src/generators/define/codeLists.py b/src/generators/define/codeLists.py index 5796295..a302ea6 100644 --- a/src/generators/define/codeLists.py +++ b/src/generators/define/codeLists.py @@ -46,6 +46,10 @@ def create_define_objects( else: en_item = self._create_enumerateditem_object(term, is_non_standard) cl_defn.EnumeratedItem.append(en_item) + # if it's an empty codelist then add a placeholder enumerated item + if not codelist_items: + en_item = self._create_placeholder_enumerateditem_object() + cl_defn.EnumeratedItem.append(en_item) self._add_codelist_to_objects(cl_c_code, cl_defn, define_objects) @staticmethod @@ -82,6 +86,12 @@ def _create_enumerateditem_object(self, obj, is_non_standard): en_item.Alias.append(alias) return en_item + def _create_placeholder_enumerateditem_object(self): + attr = {"CodedValue": "__PLACEHOLDER__"} + en_item = DEFINE.EnumeratedItem(**attr) + return en_item + + def _create_codelistitem_object(self, obj, is_non_standard): coded_value = self.require_key(obj, "codedValue", "CodeListItem") attr = {"CodedValue": coded_value} diff --git a/src/generators/define/tests/fixtures/define-360i.xml b/src/generators/define/tests/fixtures/define-360i.xml index 6e293e0..fb63336 100644 --- a/src/generators/define/tests/fixtures/define-360i.xml +++ b/src/generators/define/tests/fixtures/define-360i.xml @@ -1,6 +1,6 @@ -EX23 - @@ -2325,8 +2325,9 @@ ds.ndjson - + Demographics @@ -2361,7 +2362,7 @@ dm.ndjson - @@ -2386,7 +2387,7 @@ sc.ndjson - @@ -2408,7 +2409,7 @@ mh.ndjson - @@ -2441,7 +2442,7 @@ su.ndjson - @@ -2465,7 +2466,7 @@ pr.ndjson - @@ -2495,7 +2496,7 @@ vs.ndjson - @@ -2527,7 +2528,7 @@ eg.ndjson - @@ -2555,7 +2556,7 @@ cm.ndjson - @@ -2591,7 +2592,7 @@ lb.ndjson - @@ -2616,7 +2617,7 @@ mb.ndjson - @@ -2645,7 +2646,7 @@ ec.ndjson - @@ -2700,7 +2701,7 @@ ae.ndjson - @@ -2720,7 +2721,7 @@ ts.ndjson - @@ -2741,7 +2742,7 @@ ta.ndjson - @@ -2757,7 +2758,7 @@ te.ndjson - @@ -2773,7 +2774,7 @@ ti.ndjson - @@ -2793,7 +2794,7 @@ tv.ndjson - @@ -2814,7 +2815,7 @@ sv.ndjson - @@ -2834,7 +2835,7 @@ ie.ndjson - @@ -6363,13 +6364,16 @@ + + + @@ -6388,6 +6392,7 @@ + @@ -6406,12 +6411,15 @@ + + + + @@ -6744,6 +6753,7 @@ + @@ -6999,6 +7009,7 @@ + + + + @@ -7392,10 +7406,12 @@ + + @@ -8030,9 +8046,11 @@ + + @@ -8207,13 +8225,16 @@ + + + + +