pyegeria 5.4.0.dev5__py3-none-any.whl → 5.4.0.dev6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- commands/cat/list_data_designer.py +1 -1
- pyegeria/data_designer_omvs.py +17 -17
- pyegeria/glossary_browser_omvs.py +5 -6
- pyegeria/output_formatter.py +4 -4
- pyegeria/solution_architect_omvs.py +4 -4
- {pyegeria-5.4.0.dev5.dist-info → pyegeria-5.4.0.dev6.dist-info}/METADATA +1 -1
- {pyegeria-5.4.0.dev5.dist-info → pyegeria-5.4.0.dev6.dist-info}/RECORD +10 -14
- commands/cat/debug_log +0 -227
- md_processing/dr_egeria_outbox/processed-2025-06-22 21:06-dr_egeria_data_designer_1.md +0 -134
- md_processing/dr_egeria_outbox/processed-2025-06-22 21:13-dr_egeria_data_designer_1.md +0 -133
- md_processing/dr_egeria_outbox/processed-2025-06-22 21:19-dr_egeria_data_designer_1.md +0 -141
- {pyegeria-5.4.0.dev5.dist-info → pyegeria-5.4.0.dev6.dist-info}/LICENSE +0 -0
- {pyegeria-5.4.0.dev5.dist-info → pyegeria-5.4.0.dev6.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.0.dev5.dist-info → pyegeria-5.4.0.dev6.dist-info}/entry_points.txt +0 -0
@@ -167,7 +167,7 @@ def main(object_type: str="Data Fields"):
|
|
167
167
|
|
168
168
|
try:
|
169
169
|
search_string = Prompt.ask(
|
170
|
-
"Enter the
|
170
|
+
"Enter the element you are searching for or '*' for all:", default="*"
|
171
171
|
)
|
172
172
|
output_format = Prompt.ask("What output format do you want?", choices=["TABLE", "FORM", "REPORT"],
|
173
173
|
default="TABLE")
|
pyegeria/data_designer_omvs.py
CHANGED
@@ -678,23 +678,23 @@ r replace_all_properties: bool, default = False
|
|
678
678
|
|
679
679
|
|
680
680
|
# extract existing related data structure and data field elements
|
681
|
-
other_related_elements = el_struct
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
681
|
+
other_related_elements = el_struct.get("otherRelatedElements",None)
|
682
|
+
if other_related_elements:
|
683
|
+
for rel in other_related_elements:
|
684
|
+
related_element = rel["relatedElement"]
|
685
|
+
type = related_element["elementHeader"]["type"]["typeName"]
|
686
|
+
guid = related_element["elementHeader"]["guid"]
|
687
|
+
qualified_name = related_element["properties"].get("qualifiedName","") or ""
|
688
|
+
display_name = related_element["properties"].get("displayName","") or ""
|
689
|
+
if type == "DataStructure":
|
690
|
+
data_structure_guids.append(guid)
|
691
|
+
data_structure_names.append(display_name)
|
692
|
+
data_structure_qnames.append(qualified_name)
|
693
|
+
|
694
|
+
elif type == "DataField":
|
695
|
+
parent_guids.append(guid)
|
696
|
+
parent_names.append(display_name)
|
697
|
+
parent_qnames.append(qualified_name)
|
698
698
|
|
699
699
|
|
700
700
|
member_of_collections = el_struct.get("memberOfCollections",{})
|
@@ -90,7 +90,7 @@ class GlossaryBrowser(Client):
|
|
90
90
|
category_qualified_names = cat_md_qn.rstrip(',')
|
91
91
|
|
92
92
|
result = {
|
93
|
-
'
|
93
|
+
'GUID': guid, 'properties': properties, 'display_name': display_name, 'description': description,
|
94
94
|
'language': language, 'usage': usage, 'qualified_name': qualified_name
|
95
95
|
}
|
96
96
|
|
@@ -312,7 +312,7 @@ class GlossaryBrowser(Client):
|
|
312
312
|
aliases = ", ".join(properties.get("aliases", "")) or ""
|
313
313
|
|
314
314
|
return {
|
315
|
-
'
|
315
|
+
'GUID': guid, 'properties': properties, 'display_name': display_name, 'aliases': aliases,
|
316
316
|
'summary': summary, 'description': description, 'examples': examples, 'usage': usage,
|
317
317
|
'version identifier': pub_version, 'qualified_name': qualified_name, 'status': status
|
318
318
|
}
|
@@ -626,7 +626,7 @@ class GlossaryBrowser(Client):
|
|
626
626
|
qualified_name = properties.get("qualifiedName", "") or ""
|
627
627
|
|
628
628
|
return {
|
629
|
-
'
|
629
|
+
'GUID': guid, 'properties': properties, 'display_name': display_name, 'description': description,
|
630
630
|
'qualified_name': qualified_name
|
631
631
|
}
|
632
632
|
|
@@ -1051,7 +1051,6 @@ class GlossaryBrowser(Client):
|
|
1051
1051
|
"class": "SearchStringRequestBody", "searchString": search_string, "effectiveTime": effective_time,
|
1052
1052
|
"typeName": type_name,
|
1053
1053
|
}
|
1054
|
-
body = body_slimmer(body)
|
1055
1054
|
|
1056
1055
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-browser/glossaries/"
|
1057
1056
|
f"by-search-string?startFrom={start_from}&pageSize={page_size}&startsWith={starts_with_s}&"
|
@@ -2176,11 +2175,11 @@ class GlossaryBrowser(Client):
|
|
2176
2175
|
parent_guid = parent['elementHeader']['guid']
|
2177
2176
|
parent_name = parent['glossaryCategoryProperties'].get('displayName', '---')
|
2178
2177
|
parent_info = {
|
2179
|
-
'
|
2178
|
+
'GUID': parent_guid, 'name': parent_name
|
2180
2179
|
}
|
2181
2180
|
|
2182
2181
|
return {
|
2183
|
-
'
|
2182
|
+
'GUID': category_guid, 'name': display_name, 'qualifiedName': qualified_name,
|
2184
2183
|
'description': description, 'parent': parent_info, 'children': children
|
2185
2184
|
}
|
2186
2185
|
|
pyegeria/output_formatter.py
CHANGED
@@ -128,7 +128,7 @@ def generate_entity_md(elements: List[Dict],
|
|
128
128
|
# Get additional properties if function is provided
|
129
129
|
additional_props = {}
|
130
130
|
if get_additional_props_func:
|
131
|
-
additional_props = get_additional_props_func(element,
|
131
|
+
additional_props = get_additional_props_func(element,props['GUID'], output_format)
|
132
132
|
|
133
133
|
|
134
134
|
# Format header based on output format
|
@@ -150,7 +150,7 @@ def generate_entity_md(elements: List[Dict],
|
|
150
150
|
elements_md += make_md_attribute(key.replace('_', ' '), value, output_format)
|
151
151
|
|
152
152
|
# # Add GUID
|
153
|
-
# elements_md += make_md_attribute("GUID",
|
153
|
+
# elements_md += make_md_attribute("GUID",props['GUID'], output_format)
|
154
154
|
|
155
155
|
# Add separator if not the last element
|
156
156
|
if element != elements[-1]:
|
@@ -203,7 +203,7 @@ def generate_entity_md_table(elements: List[Dict],
|
|
203
203
|
# Get additional properties if function is provided
|
204
204
|
additional_props = {}
|
205
205
|
if get_additional_props_func:
|
206
|
-
additional_props = get_additional_props_func(element,
|
206
|
+
additional_props = get_additional_props_func(element,props['GUID'], output_format)
|
207
207
|
|
208
208
|
# Build row
|
209
209
|
row = "| "
|
@@ -257,7 +257,7 @@ def generate_entity_dict(elements: List[Dict],
|
|
257
257
|
# Get additional properties if function is provided
|
258
258
|
additional_props = {}
|
259
259
|
if get_additional_props_func:
|
260
|
-
additional_props = get_additional_props_func(element,
|
260
|
+
additional_props = get_additional_props_func(element,props['GUID'], output_format)
|
261
261
|
|
262
262
|
# Create entity dictionary
|
263
263
|
entity_dict = {}
|
@@ -153,7 +153,7 @@ class SolutionArchitect(Client):
|
|
153
153
|
segments_list.append(segment_dict)
|
154
154
|
|
155
155
|
return {
|
156
|
-
'
|
156
|
+
'GUID': guid,
|
157
157
|
'qualified_name': qualified_name,
|
158
158
|
'display_name': display_name,
|
159
159
|
'description': description,
|
@@ -193,7 +193,7 @@ class SolutionArchitect(Client):
|
|
193
193
|
mer = f"```mermaid\n\n{element.get('mermaidGraph', None)}\n\n```"
|
194
194
|
|
195
195
|
return {
|
196
|
-
'
|
196
|
+
'GUID': guid,
|
197
197
|
'qualified_name': qualified_name,
|
198
198
|
'display_name': display_name,
|
199
199
|
'description': description,
|
@@ -232,7 +232,7 @@ class SolutionArchitect(Client):
|
|
232
232
|
solution_components_md += "{" + f" {sol_comp_name}:\t {sol_comp_desc}" + " },\n"
|
233
233
|
|
234
234
|
return {
|
235
|
-
'
|
235
|
+
'GUID': guid,
|
236
236
|
'qualified_name': qualified_name,
|
237
237
|
'display_name': display_name,
|
238
238
|
'description': description,
|
@@ -334,7 +334,7 @@ class SolutionArchitect(Client):
|
|
334
334
|
comp_graph = element.get('mermaidGraph', None)
|
335
335
|
|
336
336
|
return {
|
337
|
-
'
|
337
|
+
'GUID': guid,
|
338
338
|
'qualified_name': qualified_name,
|
339
339
|
'display_name': display_name,
|
340
340
|
'description': description,
|
@@ -1,7 +1,6 @@
|
|
1
1
|
commands/cat/Dr-Egeria_md-orig.py,sha256=ZX20BvRo0fIFisvy5Z-VJDLVyKbQoud89-CUV2S66tU,7336
|
2
2
|
commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
|
3
3
|
commands/cat/__init__.py,sha256=Ps4MxYlYN-ZX1qaSTFwnqgDZTaqUkN35JTOpZ1TBD1Q,451
|
4
|
-
commands/cat/debug_log,sha256=loWDmbTRpyDlnWBa0Hv1FlfnHH-YTPObiQL5hrgwNFY,15073
|
5
4
|
commands/cat/dr_egeria_jupyter.py,sha256=rfLVV_84Q8Pqcq1flmijKvZ7sEZFy7JAcAP_NAbb46Y,5656
|
6
5
|
commands/cat/dr_egeria_md.py,sha256=N7vrQN_oOq-R6PajbQ_7fdsk0aXW5-QQJd5IfqoKkPw,16700
|
7
6
|
commands/cat/exp_list_glossaries.py,sha256=dC6Bnfm3YSMTKPP146qeslIFRiZnGu5b7iDYE07p4iU,5817
|
@@ -15,7 +14,7 @@ commands/cat/list_assets.py,sha256=CdJ2coKvvQv2VwJO0Sp9Eg9Fu_uvpC21tgjrdtT9Yz4,6
|
|
15
14
|
commands/cat/list_categories.py,sha256=DTKE3yrt3N2EIjCGscxrz-pSREqmch7aFqsVFm-3u7o,7841
|
16
15
|
commands/cat/list_cert_types.py,sha256=HmrTks0SSYgSMsYz3LqfX5kwDQ6D9KMcynoR_xlWtnE,7137
|
17
16
|
commands/cat/list_collections.py,sha256=GyRKiSHBLVVkyYDMIsUeVmpmDXNXHRY4C9kMqtX07qc,8315
|
18
|
-
commands/cat/list_data_designer.py,sha256=
|
17
|
+
commands/cat/list_data_designer.py,sha256=Bpix52CVdV1xZFo-07N8W30vdoDcHYT91jKVRTxQgQ0,6720
|
19
18
|
commands/cat/list_data_structures_full.py,sha256=E9PY_AU1lzGSqUwy711Bjd5uMfV41kpmNPzhdf0nZjs,8642
|
20
19
|
commands/cat/list_deployed_catalogs.py,sha256=VdN6R9kRVWX-fGIgubOigvMVPzhF-hKQepHHlS-w-D8,8258
|
21
20
|
commands/cat/list_deployed_database_schemas.py,sha256=1Qicke1R2_7Xi3Qf5sp8KJ3_reAIt0z1iaz2sG8Z0Qs,9458
|
@@ -97,9 +96,6 @@ commands/tech/x_list_related_elements.py,sha256=ynaw792VnbMZ9IXBi5mmG7xBfC0kn0es
|
|
97
96
|
md_processing/__init__.py,sha256=k9qozzeNFsjgMMcNpM1ibPqOVJCfy-3DEmi2dmSzGqM,5384
|
98
97
|
md_processing/data/commands.json,sha256=tEbshY56hczPErVDNvTt5SKGwZtpNDd8Qfa_ZjLDv1s,240067
|
99
98
|
md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb,sha256=dbzNu90fCKNohOWVSRBOB1GLyd95x8Qw51I5AkaPtso,11552
|
100
|
-
md_processing/dr_egeria_outbox/processed-2025-06-22 21:06-dr_egeria_data_designer_1.md,sha256=exn05CNIbFQeyW6xn9v72vkC42MCaVzR85Fi4wWXstE,3805
|
101
|
-
md_processing/dr_egeria_outbox/processed-2025-06-22 21:13-dr_egeria_data_designer_1.md,sha256=5SO_5X0Ot3hBHrcwDHUwuVZ1VLG74ouRIOKarguGvp0,5324
|
102
|
-
md_processing/dr_egeria_outbox/processed-2025-06-22 21:19-dr_egeria_data_designer_1.md,sha256=Bn1NDlQ2yrXJF2ffit_Rs69qlf-B-uNnG2zABLj49M0,5916
|
103
99
|
md_processing/md_commands/__init__.py,sha256=ssEojzFlSYtY2bHqqOoKo8PFaANZ_kq_gIbtlXnuc2s,93
|
104
100
|
md_processing/md_commands/data_designer_commands.py,sha256=IezRfoXT-3q4EKdI9el4uMGZYY35FTK-AcKg7yJXo1g,91752
|
105
101
|
md_processing/md_commands/glossary_commands.py,sha256=QqcWSk2pXB6VWiqy75Hvzme79U10scbwm1i4sX4-9jg,53376
|
@@ -124,7 +120,7 @@ pyegeria/classification_manager_omvs.py,sha256=EBWjdx_C999bRu2-INL8RZxZ-wz92mzVq
|
|
124
120
|
pyegeria/collection_manager_omvs.py,sha256=GCiItk_zO206gaR5Dj3Q-5zJ5corymZhjNjEaUFzIB4,130729
|
125
121
|
pyegeria/core_omag_server_config.py,sha256=pNQpocICkZx8sRsTw5DPUe-TFyxlIo1U88qqgci_f7I,97764
|
126
122
|
pyegeria/create_tech_guid_lists.py,sha256=hf5q8Xrdsz-bqeIW3yTORZ1XB6_BrKzLDWWwC_bNG2g,4811
|
127
|
-
pyegeria/data_designer_omvs.py,sha256=
|
123
|
+
pyegeria/data_designer_omvs.py,sha256=q4NC6Sbf9rQvbMMCOSTJZPx9KQSqU5QstYfaJKWrOB0,202519
|
128
124
|
pyegeria/dr.egeria spec.md,sha256=QC_z3EqJ0WW18NYQFW_AtqO4SMWH5MJNVmM--54VzX4,959
|
129
125
|
pyegeria/egeria_cat_client.py,sha256=d8dQNPLzL4efi99OJfH1T-Rt1N0k9Rf9LX8LpuhiFls,2179
|
130
126
|
pyegeria/egeria_client.py,sha256=egGv41eb94P_lWIQ54I_90WT_IukJ_J6ZLOYCHpx2js,4676
|
@@ -133,7 +129,7 @@ pyegeria/egeria_my_client.py,sha256=eOKLk2zdI6FHZnhAimfR_0yNdBjpUgD41dJZcJODcqE,
|
|
133
129
|
pyegeria/egeria_tech_client.py,sha256=FedfavxepFvy6IMSo1YBHh4F_Ahid8uoUsHoSbq9ywM,4200
|
134
130
|
pyegeria/feedback_manager_omvs.py,sha256=0xBs0p54vmdfVYYgQ8pOanLC4fxfgTk1Z61Y6D1U7_I,152978
|
135
131
|
pyegeria/full_omag_server_config.py,sha256=CQqLCy_3DZFvJZEOcGf50HWdFaWpiAIs6z-kKyjvpDA,47464
|
136
|
-
pyegeria/glossary_browser_omvs.py,sha256=
|
132
|
+
pyegeria/glossary_browser_omvs.py,sha256=Jb2Tt2qNjnoWQNBDMdZiuQffH6nC4lKekZNEJCiW5BE,166966
|
137
133
|
pyegeria/glossary_manager_omvs.py,sha256=aGYZFuzWrPmPLLNwkNpV7-FsalqwDR7gyBzgdubnM04,87989
|
138
134
|
pyegeria/governance_officer_omvs.py,sha256=4vPDK7PjPvm81jRaCNvOzvqMe88Q0g7Qc2e6-tbw8lg,86333
|
139
135
|
pyegeria/m_test.py,sha256=M5-M2ZczsAJLXWfSeqTTADHdx6Ku-y4PbQ4M21JthAE,7778
|
@@ -143,19 +139,19 @@ pyegeria/md_processing_utils_orig.py,sha256=SToZtXQiysi2_vmIY4-T2NIELRirzQ1zjkho
|
|
143
139
|
pyegeria/mermaid_utilities.py,sha256=Zcn8JRrqtf62oHoxuvP9tQ5G-BFxOGMNfr7-peuykgY,54290
|
144
140
|
pyegeria/metadata_explorer_omvs.py,sha256=xHnZTQKbd6XwOhYia-RiIisrvZcqHi0SL1l6OCf04Gk,86911
|
145
141
|
pyegeria/my_profile_omvs.py,sha256=d0oJYCJG7pS9BINPuGciVa00ac0jwPHNANXDCLginEc,34720
|
146
|
-
pyegeria/output_formatter.py,sha256=
|
142
|
+
pyegeria/output_formatter.py,sha256=X8zL14sp-0LwFCfB4RDPC4dS2quwN1iP8n5EBDnt2kI,16141
|
147
143
|
pyegeria/platform_services.py,sha256=YEpZsGGsbSdesN8ceyFhV0OMzKG6znTZrREMTRimLps,41701
|
148
144
|
pyegeria/project_manager_omvs.py,sha256=612rYbu2eLR8Sgv9nBzjkFJ2PuxIBd_b-zwcnpVbXhc,70665
|
149
145
|
pyegeria/registered_info.py,sha256=y0-LgDIQXpph0lEWxIOG3_HsqX_Z2iAIb3xu4Aa4B70,6344
|
150
146
|
pyegeria/runtime_manager_omvs.py,sha256=Z5wY9ignNjil8O6yjihZftxkGoh9A4PQDcXhoIsOIT8,79698
|
151
147
|
pyegeria/server_operations.py,sha256=5k0KVz3u8qRLwtz16zT3J86LZY3pkUrMDcps8srmq1A,16831
|
152
|
-
pyegeria/solution_architect_omvs.py,sha256=
|
148
|
+
pyegeria/solution_architect_omvs.py,sha256=qQq4s_0V83BeAcUVFmARXjA5S_VwaELDbctmWbpG8Bk,214402
|
153
149
|
pyegeria/template_manager_omvs.py,sha256=chBljs1vy5wr9DRAtbvIt4Cob_7HxGfxLkCNlDTM-rQ,42755
|
154
150
|
pyegeria/utils.py,sha256=fhSN5yOb3-Yelwt9WpBkWRmP5u7I9Jr-M27H0dD-G14,5871
|
155
151
|
pyegeria/valid_metadata_omvs.py,sha256=Xq9DqBQvBFFJzaFIRKcVZ2k4gJvSh9yeXs_j-O3vn1w,65050
|
156
152
|
pyegeria/x_action_author_omvs.py,sha256=RcqSzahUKCtvb_3u_wyintAlc9WFkC_2v0E12TZs8lQ,6433
|
157
|
-
pyegeria-5.4.0.
|
158
|
-
pyegeria-5.4.0.
|
159
|
-
pyegeria-5.4.0.
|
160
|
-
pyegeria-5.4.0.
|
161
|
-
pyegeria-5.4.0.
|
153
|
+
pyegeria-5.4.0.dev6.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
154
|
+
pyegeria-5.4.0.dev6.dist-info/METADATA,sha256=Su0nKlGjHTpy6GIb5hLu9X6fKIG7Cngs1PTDGyy-LmA,2799
|
155
|
+
pyegeria-5.4.0.dev6.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
156
|
+
pyegeria-5.4.0.dev6.dist-info/entry_points.txt,sha256=UigZmPobfP9Rkz3PfjWUrJbKjImUeX00iOz6lR_wP5Q,6247
|
157
|
+
pyegeria-5.4.0.dev6.dist-info/RECORD,,
|
commands/cat/debug_log
DELETED
@@ -1,227 +0,0 @@
|
|
1
|
-
D 2025-06-22T21:05:54.627190-0500 | INFO | process_markdown_file | 79 |
|
2
|
-
|
3
|
-
====================================================
|
4
|
-
|
5
|
-
| {}
|
6
|
-
D 2025-06-22T21:05:54.627425-0500 | INFO | process_markdown_file | 80 | Processing Markdown File: ../../md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md | {}
|
7
|
-
D 2025-06-22T21:06:29.028631-0500 | INFO | process_markdown_file | 79 |
|
8
|
-
|
9
|
-
====================================================
|
10
|
-
|
11
|
-
| {}
|
12
|
-
D 2025-06-22T21:06:29.028835-0500 | INFO | process_markdown_file | 80 | Processing Markdown File: ../../md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md | {}
|
13
|
-
D 2025-06-22T21:06:29.029057-0500 | INFO | parse_upsert_command | 78 | Processing Update on a Data Structure
|
14
|
-
| {}
|
15
|
-
D 2025-06-22T21:06:29.029304-0500 | INFO | print_msg | 94 | INFO-Optional attribute with labels `{'Version Identifier', 'Version', 'Published Version'}` missing | {}
|
16
|
-
D 2025-06-22T21:06:29.029338-0500 | TRACE | parse_upsert_command | 92 | ___
|
17
|
-
Processing `Display Name` in `Update` on a `Data Structure`
|
18
|
-
with usage level: `Basic` and attribute level `Basic` and for_update `True`
|
19
|
-
| {}
|
20
|
-
D 2025-06-22T21:06:29.081500-0500 | INFO | print_msg | 94 | DEBUG-INFO->Found Data Structure `TBDF-Incoming Weekly Measurement Data` with qualified name `DataStruct::TBDF-Incoming Weekly Measurement Data` | {}
|
21
|
-
D 2025-06-22T21:06:29.081589-0500 | INFO | proc_el_id | 640 | Element TBDF-Incoming Weekly Measurement Data exists | {}
|
22
|
-
D 2025-06-22T21:06:29.081624-0500 | TRACE | parse_upsert_command | 92 | ___
|
23
|
-
Processing `Description` in `Update` on a `Data Structure`
|
24
|
-
with usage level: `Basic` and attribute level `Basic` and for_update `True`
|
25
|
-
| {}
|
26
|
-
D 2025-06-22T21:06:29.081747-0500 | TRACE | parse_upsert_command | 92 | ___
|
27
|
-
Processing `In Data Specification` in `Update` on a `Data Structure`
|
28
|
-
with usage level: `Basic` and attribute level `Basic` and for_update `True`
|
29
|
-
| {}
|
30
|
-
D 2025-06-22T21:06:29.081892-0500 | DEBUG | proc_name_list | 801 | Attribute with labels `{element_type}` missing | {}
|
31
|
-
D 2025-06-22T21:06:29.081922-0500 | TRACE | parse_upsert_command | 92 | ___
|
32
|
-
Processing `Glossary Term` in `Update` on a `Data Structure`
|
33
|
-
with usage level: `Basic` and attribute level `Advanced` and for_update `True`
|
34
|
-
| {}
|
35
|
-
D 2025-06-22T21:06:29.081943-0500 | TRACE | parse_upsert_command | 97 | Attribute `Glossary Term` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
36
|
-
D 2025-06-22T21:06:29.081964-0500 | TRACE | parse_upsert_command | 92 | ___
|
37
|
-
Processing `Qualified Name` in `Update` on a `Data Structure`
|
38
|
-
with usage level: `Basic` and attribute level `Basic` and for_update `True`
|
39
|
-
| {}
|
40
|
-
D 2025-06-22T21:06:29.081989-0500 | INFO | proc_el_id | 615 | Optional attribute with label`Data Structure` missing | {}
|
41
|
-
D 2025-06-22T21:06:29.082007-0500 | TRACE | parse_upsert_command | 92 | ___
|
42
|
-
Processing `GUID` in `Update` on a `Data Structure`
|
43
|
-
with usage level: `Basic` and attribute level `Basic` and for_update `True`
|
44
|
-
| {}
|
45
|
-
D 2025-06-22T21:06:29.082160-0500 | INFO | proc_simple_attribute | 445 | Optional attribute with labels: `{'Guid', 'GUID', 'guid'}` missing | {}
|
46
|
-
D 2025-06-22T21:06:29.082183-0500 | TRACE | parse_upsert_command | 92 | ___
|
47
|
-
Processing `Effective Time` in `Update` on a `Data Structure`
|
48
|
-
with usage level: `Basic` and attribute level `Advanced` and for_update `True`
|
49
|
-
| {}
|
50
|
-
D 2025-06-22T21:06:29.082201-0500 | TRACE | parse_upsert_command | 97 | Attribute `Effective Time` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
51
|
-
D 2025-06-22T21:06:29.082219-0500 | TRACE | parse_upsert_command | 92 | ___
|
52
|
-
Processing `Effective From` in `Update` on a `Data Structure`
|
53
|
-
with usage level: `Basic` and attribute level `Advanced` and for_update `True`
|
54
|
-
| {}
|
55
|
-
D 2025-06-22T21:06:29.082237-0500 | TRACE | parse_upsert_command | 97 | Attribute `Effective From` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
56
|
-
D 2025-06-22T21:06:29.082255-0500 | TRACE | parse_upsert_command | 92 | ___
|
57
|
-
Processing `Effective To` in `Update` on a `Data Structure`
|
58
|
-
with usage level: `Basic` and attribute level `Advanced` and for_update `True`
|
59
|
-
| {}
|
60
|
-
D 2025-06-22T21:06:29.082283-0500 | TRACE | parse_upsert_command | 97 | Attribute `Effective To` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
61
|
-
D 2025-06-22T21:06:29.082301-0500 | TRACE | parse_upsert_command | 92 | ___
|
62
|
-
Processing `Merge Update` in `Update` on a `Data Structure`
|
63
|
-
with usage level: `Basic` and attribute level `Advanced` and for_update `True`
|
64
|
-
| {}
|
65
|
-
D 2025-06-22T21:06:29.082320-0500 | TRACE | parse_upsert_command | 97 | Attribute `Merge Update` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
66
|
-
D 2025-06-22T21:06:29.082338-0500 | TRACE | parse_upsert_command | 92 | ___
|
67
|
-
Processing `Additional Properties` in `Update` on a `Data Structure`
|
68
|
-
with usage level: `Basic` and attribute level `Invisible` and for_update `True`
|
69
|
-
| {}
|
70
|
-
D 2025-06-22T21:06:29.082353-0500 | TRACE | parse_upsert_command | 97 | Attribute `Additional Properties` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
71
|
-
D 2025-06-22T21:06:29.082368-0500 | TRACE | parse_upsert_command | 92 | ___
|
72
|
-
Processing `Extended Properties` in `Update` on a `Data Structure`
|
73
|
-
with usage level: `Basic` and attribute level `Invisible` and for_update `True`
|
74
|
-
| {}
|
75
|
-
D 2025-06-22T21:06:29.082382-0500 | TRACE | parse_upsert_command | 97 | Attribute `Extended Properties` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
76
|
-
D 2025-06-22T21:06:29.082395-0500 | TRACE | parse_upsert_command | 92 | ___
|
77
|
-
Processing `Journal Entry` in `Update` on a `Data Structure`
|
78
|
-
with usage level: `Basic` and attribute level `Invisible` and for_update `True`
|
79
|
-
| {}
|
80
|
-
D 2025-06-22T21:06:29.082409-0500 | TRACE | parse_upsert_command | 97 | Attribute `Journal Entry` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
81
|
-
D 2025-06-22T21:06:29.084882-0500 | DEBUG | process_data_structure_upsert_command | 706 | {
|
82
|
-
"valid": true,
|
83
|
-
"exists": true,
|
84
|
-
"display": "\n\t* Display Name: `TBDF-Incoming Weekly Measurement Data`\n\t\n\t* Description: `This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial.`\n\t\n\t* Qualified Name: `DataStruct::TBDF-Incoming Weekly Measurement Data`\n\t\n\t* GUID: `fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341`\n\t",
|
85
|
-
"display_name": "Data Structure",
|
86
|
-
"qn_prefix": "DataStruct",
|
87
|
-
"is_own_anchor": true,
|
88
|
-
"reason": "",
|
89
|
-
"version": null,
|
90
|
-
"guid": "fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341",
|
91
|
-
"qualified_name": "DataStruct::TBDF-Incoming Weekly Measurement Data",
|
92
|
-
"attributes": {
|
93
|
-
"Display Name": {
|
94
|
-
"status": "INFO",
|
95
|
-
"reason": "Element TBDF-Incoming Weekly Measurement Data exists",
|
96
|
-
"value": "TBDF-Incoming Weekly Measurement Data",
|
97
|
-
"valid": true,
|
98
|
-
"exists": true,
|
99
|
-
"qualified_name": "DataStruct::TBDF-Incoming Weekly Measurement Data",
|
100
|
-
"guid": "fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341"
|
101
|
-
},
|
102
|
-
"Description": {
|
103
|
-
"status": "INFO",
|
104
|
-
"OK": null,
|
105
|
-
"value": "This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial.",
|
106
|
-
"valid": true,
|
107
|
-
"exists": true
|
108
|
-
},
|
109
|
-
"In Data Specification": {
|
110
|
-
"status": "INFO",
|
111
|
-
"reason": "Attribute with labels `{element_type}` missing",
|
112
|
-
"value": null,
|
113
|
-
"valid": false,
|
114
|
-
"exists": false
|
115
|
-
},
|
116
|
-
"Qualified Name": {
|
117
|
-
"status": "INFO",
|
118
|
-
"reason": "Optional attribute with label`Data Structure` missing",
|
119
|
-
"value": null,
|
120
|
-
"valid": false,
|
121
|
-
"exists": false
|
122
|
-
},
|
123
|
-
"GUID": {
|
124
|
-
"status": "INFO",
|
125
|
-
"reason": "Optional attribute with labels: `{'Guid', 'GUID', 'guid'}` missing",
|
126
|
-
"value": null,
|
127
|
-
"valid": true,
|
128
|
-
"exists": false
|
129
|
-
}
|
130
|
-
}
|
131
|
-
} | {}
|
132
|
-
D 2025-06-22T21:06:29.120455-0500 | INFO | process_data_structure_upsert_command | 796 | Updated element `TBDF-Incoming Weekly Measurement Data` with GUID fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341 | {}
|
133
|
-
D 2025-06-22T21:06:29.218865-0500 | DEBUG | update_data_collection_memberships | 130 | as_is: set() | {}
|
134
|
-
D 2025-06-22T21:06:29.218956-0500 | DEBUG | update_data_collection_memberships | 131 | to_be_set: set() | {}
|
135
|
-
D 2025-06-22T21:06:29.218989-0500 | DEBUG | update_data_collection_memberships | 135 | to_remove: set() | {}
|
136
|
-
D 2025-06-22T21:06:29.219017-0500 | DEBUG | update_data_collection_memberships | 141 | to_add: set() | {}
|
137
|
-
D 2025-06-22T21:06:29.219049-0500 | SUCCESS | process_data_structure_upsert_command | 807 | Updated Data Structure `TBDF-Incoming Weekly Measurement Data` with GUID fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341
|
138
|
-
|
139
|
-
___ | {}
|
140
|
-
D 2025-06-22T21:07:01.300523-0500 | INFO | process_markdown_file | 79 |
|
141
|
-
|
142
|
-
====================================================
|
143
|
-
|
144
|
-
| {}
|
145
|
-
D 2025-06-22T21:07:01.300839-0500 | INFO | process_markdown_file | 80 | Processing Markdown File: ../../md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md | {}
|
146
|
-
D 2025-06-22T21:13:00.847213-0500 | INFO | process_markdown_file | 79 |
|
147
|
-
|
148
|
-
====================================================
|
149
|
-
|
150
|
-
| {}
|
151
|
-
D 2025-06-22T21:13:00.847595-0500 | INFO | process_markdown_file | 80 | Processing Markdown File: ../../md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md | {}
|
152
|
-
D 2025-06-22T21:13:00.847888-0500 | INFO | parse_view_command | 276 | Processing View on Data Structures
|
153
|
-
| {}
|
154
|
-
D 2025-06-22T21:13:00.847923-0500 | TRACE | parse_view_command | 287 | ___
|
155
|
-
Processing `Search String` in `View` on a `Data Structures`
|
156
|
-
with usage level: `Basic` | {}
|
157
|
-
D 2025-06-22T21:13:00.848092-0500 | TRACE | parse_view_command | 287 | ___
|
158
|
-
Processing `Output Format` in `View` on a `Data Structures`
|
159
|
-
with usage level: `Basic` | {}
|
160
|
-
D 2025-06-22T21:13:00.848184-0500 | WARNING | proc_valid_value | 513 | Invalid value for attribute `{'Output Format', 'Format'}` | {}
|
161
|
-
D 2025-06-22T21:13:00.848209-0500 | TRACE | parse_view_command | 287 | ___
|
162
|
-
Processing `Detailed` in `View` on a `Data Structures`
|
163
|
-
with usage level: `Basic` | {}
|
164
|
-
D 2025-06-22T21:13:00.848228-0500 | TRACE | parse_view_command | 290 | Attribute `Detailed` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
165
|
-
D 2025-06-22T21:13:00.848246-0500 | TRACE | parse_view_command | 287 | ___
|
166
|
-
Processing `Effective Time` in `View` on a `Data Structures`
|
167
|
-
with usage level: `Basic` | {}
|
168
|
-
D 2025-06-22T21:13:00.848261-0500 | TRACE | parse_view_command | 290 | Attribute `Effective Time` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
169
|
-
D 2025-06-22T21:13:00.913154-0500 | INFO | process_data_structure_list_command | 1520 | Wrote `Data Structures` for search string: `*` | {}
|
170
|
-
D 2025-06-22T21:13:00.913258-0500 | INFO | parse_view_command | 276 | Processing View on Data Fields
|
171
|
-
| {}
|
172
|
-
D 2025-06-22T21:13:00.913296-0500 | TRACE | parse_view_command | 287 | ___
|
173
|
-
Processing `Search String` in `View` on a `Data Fields`
|
174
|
-
with usage level: `Basic` | {}
|
175
|
-
D 2025-06-22T21:13:00.913339-0500 | TRACE | parse_view_command | 287 | ___
|
176
|
-
Processing `Output Format` in `View` on a `Data Fields`
|
177
|
-
with usage level: `Basic` | {}
|
178
|
-
D 2025-06-22T21:13:00.913388-0500 | TRACE | parse_view_command | 287 | ___
|
179
|
-
Processing `Detailed` in `View` on a `Data Fields`
|
180
|
-
with usage level: `Basic` | {}
|
181
|
-
D 2025-06-22T21:13:00.913416-0500 | TRACE | parse_view_command | 290 | Attribute `Detailed` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
182
|
-
D 2025-06-22T21:13:00.913444-0500 | TRACE | parse_view_command | 287 | ___
|
183
|
-
Processing `Effective Time` in `View` on a `Data Fields`
|
184
|
-
with usage level: `Basic` | {}
|
185
|
-
D 2025-06-22T21:13:00.913469-0500 | TRACE | parse_view_command | 290 | Attribute `Effective Time` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
186
|
-
D 2025-06-22T21:13:01.067183-0500 | INFO | process_data_field_list_command | 1580 | Wrote `Data Fields` for search string: `*` | {}
|
187
|
-
D 2025-06-22T21:19:17.837646-0500 | INFO | process_markdown_file | 79 |
|
188
|
-
|
189
|
-
====================================================
|
190
|
-
|
191
|
-
| {}
|
192
|
-
D 2025-06-22T21:19:17.837857-0500 | INFO | process_markdown_file | 80 | Processing Markdown File: ../../md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md | {}
|
193
|
-
D 2025-06-22T21:19:17.838093-0500 | INFO | parse_view_command | 276 | Processing View on Data Structures
|
194
|
-
| {}
|
195
|
-
D 2025-06-22T21:19:17.838130-0500 | TRACE | parse_view_command | 287 | ___
|
196
|
-
Processing `Search String` in `View` on a `Data Structures`
|
197
|
-
with usage level: `Basic` | {}
|
198
|
-
D 2025-06-22T21:19:17.838317-0500 | TRACE | parse_view_command | 287 | ___
|
199
|
-
Processing `Output Format` in `View` on a `Data Structures`
|
200
|
-
with usage level: `Basic` | {}
|
201
|
-
D 2025-06-22T21:19:17.838464-0500 | WARNING | proc_valid_value | 513 | Invalid value for attribute `{'Format', 'Output Format'}` | {}
|
202
|
-
D 2025-06-22T21:19:17.838490-0500 | TRACE | parse_view_command | 287 | ___
|
203
|
-
Processing `Detailed` in `View` on a `Data Structures`
|
204
|
-
with usage level: `Basic` | {}
|
205
|
-
D 2025-06-22T21:19:17.838509-0500 | TRACE | parse_view_command | 290 | Attribute `Detailed` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
206
|
-
D 2025-06-22T21:19:17.838527-0500 | TRACE | parse_view_command | 287 | ___
|
207
|
-
Processing `Effective Time` in `View` on a `Data Structures`
|
208
|
-
with usage level: `Basic` | {}
|
209
|
-
D 2025-06-22T21:19:17.838543-0500 | TRACE | parse_view_command | 290 | Attribute `Effective Time` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
210
|
-
D 2025-06-22T21:19:17.907991-0500 | INFO | process_data_structure_list_command | 1520 | Wrote `Data Structures` for search string: `*` | {}
|
211
|
-
D 2025-06-22T21:19:17.908180-0500 | INFO | parse_view_command | 276 | Processing View on Data Fields
|
212
|
-
| {}
|
213
|
-
D 2025-06-22T21:19:17.908234-0500 | TRACE | parse_view_command | 287 | ___
|
214
|
-
Processing `Search String` in `View` on a `Data Fields`
|
215
|
-
with usage level: `Basic` | {}
|
216
|
-
D 2025-06-22T21:19:17.908310-0500 | TRACE | parse_view_command | 287 | ___
|
217
|
-
Processing `Output Format` in `View` on a `Data Fields`
|
218
|
-
with usage level: `Basic` | {}
|
219
|
-
D 2025-06-22T21:19:17.908377-0500 | TRACE | parse_view_command | 287 | ___
|
220
|
-
Processing `Detailed` in `View` on a `Data Fields`
|
221
|
-
with usage level: `Basic` | {}
|
222
|
-
D 2025-06-22T21:19:17.908414-0500 | TRACE | parse_view_command | 290 | Attribute `Detailed` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
223
|
-
D 2025-06-22T21:19:17.908452-0500 | TRACE | parse_view_command | 287 | ___
|
224
|
-
Processing `Effective Time` in `View` on a `Data Fields`
|
225
|
-
with usage level: `Basic` | {}
|
226
|
-
D 2025-06-22T21:19:17.908486-0500 | TRACE | parse_view_command | 290 | Attribute `Effective Time` is not supported for `Basic` usage level. Skipping. | {'highlight': True}
|
227
|
-
D 2025-06-22T21:19:18.061319-0500 | INFO | process_data_field_list_command | 1580 | Wrote `Data Fields` for search string: `*` | {}
|
@@ -1,134 +0,0 @@
|
|
1
|
-
# Dr.Egeria - designing data - part 1
|
2
|
-
## Introduction
|
3
|
-
|
4
|
-
As data professionals, we often need to design data to be collected, processed, and shared with others.
|
5
|
-
The Egeria Data Designer module has been designed to support this. Using the features of data designer we can
|
6
|
-
define and refine:
|
7
|
-
|
8
|
-
* Data Structures - a composition of data fields (and data structures) that we work with as a unit. For instance, in
|
9
|
-
a clinical trial, each measurement record we receive will conform to a data structure.
|
10
|
-
* Data Fields - the building blocks of data structures - for example, in a clinical trial data structure we might find data fields for health measurements, a time and date when the measurements were made and a patient identifier.
|
11
|
-
* Data Classes - data classes contain a set of rules that describe the allowable values of a kind of data. For instance, when we we receive new data, perhaps we expect a clinical trial measurement record, then we will often want to validate that it conforms to our expectations; that the value of each field, conforms to the data class specification.
|
12
|
-
Similarly, if we receive some data and aren't sure what it is, we can compare the values we have received with this same set of rules to propose what kind of data it might be.
|
13
|
-
|
14
|
-
These are basic building blocks. The following diagram shows how these building blocks come together in a simple example. The ficticious Coco Pharmaceuticals company
|
15
|
-
is running a drug trial to measure the effectiveness of their experimental treatment of Teddy Bear Drop Foot. Each hospital participating in the trial provides
|
16
|
-
weekly clinical data records. The clinical trial has established the following data specification to exchange this weekly measurement data.
|
17
|
-
|
18
|
-
* A data structure named `TBDF-Incoming Weekly Measurement Data` that is composed of:
|
19
|
-
* Data Field: Date
|
20
|
-
* Data Field: PatientId
|
21
|
-
* Data Field: AngleLeft
|
22
|
-
* Data Field: AngleRight
|
23
|
-
|
24
|
-
* The data field `PatientId` is composed of two sub-fields
|
25
|
-
* Data Field: HospitalId
|
26
|
-
* Data Field: PatientNumber
|
27
|
-
|
28
|
-
Dr.Egeria allows us to easily sketch this out, and then refine the definitions incrementally as we work through the design.
|
29
|
-
So lets begin. First we will define the `TBDF-Incoming Weekly Measurement Data` data structure. We will then Don't Create the new data fields.
|
30
|
-
|
31
|
-
___
|
32
|
-
|
33
|
-
|
34
|
-
# Update Data Structure
|
35
|
-
|
36
|
-
## Data Structure Name
|
37
|
-
|
38
|
-
TBDF-Incoming Weekly Measurement Data
|
39
|
-
|
40
|
-
## GUID
|
41
|
-
fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341
|
42
|
-
|
43
|
-
## Qualified Name
|
44
|
-
DataStruct::TBDF-Incoming Weekly Measurement Data
|
45
|
-
|
46
|
-
## Description
|
47
|
-
This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial.
|
48
|
-
|
49
|
-
## Data Fields
|
50
|
-
|
51
|
-
|
52
|
-
## Data Specification
|
53
|
-
|
54
|
-
|
55
|
-
## Namespace
|
56
|
-
|
57
|
-
|
58
|
-
## Version Identifier
|
59
|
-
|
60
|
-
|
61
|
-
## Extended Properties
|
62
|
-
{}
|
63
|
-
|
64
|
-
## Additional Properties
|
65
|
-
{}
|
66
|
-
|
67
|
-
|
68
|
-
## In Data Dictionary
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
## In Data Specification
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
> Note: While not required, it is good practice to end each Dr.Egeria command with a `___` so that a markdown
|
78
|
-
> seperator is displayed between commands. It improves the readability.
|
79
|
-
|
80
|
-
# Don't Create Data Field
|
81
|
-
## Data Field
|
82
|
-
Date
|
83
|
-
## Description
|
84
|
-
A date of the form YYYY-MM-DD
|
85
|
-
|
86
|
-
___
|
87
|
-
|
88
|
-
# Don't Create Data Field
|
89
|
-
## Data Field Name
|
90
|
-
PatientId
|
91
|
-
## Description
|
92
|
-
Unique identifier of the patient
|
93
|
-
|
94
|
-
___
|
95
|
-
|
96
|
-
# Don't Create Data Field
|
97
|
-
## Data Field Name
|
98
|
-
AngleLeft
|
99
|
-
## Description
|
100
|
-
Angle rotation of the left leg from vertical
|
101
|
-
|
102
|
-
___
|
103
|
-
|
104
|
-
# Don't Create Data Field
|
105
|
-
## Data Field Name
|
106
|
-
AngleRight
|
107
|
-
## Description
|
108
|
-
Angle rotation of the left leg from vertical
|
109
|
-
|
110
|
-
___
|
111
|
-
|
112
|
-
# Don't Create Data Field
|
113
|
-
## Data Field Name
|
114
|
-
|
115
|
-
HospitalId
|
116
|
-
|
117
|
-
## Description
|
118
|
-
Unique identifier for a hospital. Used in forming PatientId.
|
119
|
-
|
120
|
-
___
|
121
|
-
|
122
|
-
# Don't Create Data Field
|
123
|
-
## Data Field Name
|
124
|
-
PatientNumber
|
125
|
-
## Description
|
126
|
-
Unique identifier of the patient within a hospital.
|
127
|
-
|
128
|
-
___
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
# Provenance
|
133
|
-
|
134
|
-
* Results from processing file dr_egeria_data_designer_1.md on 2025-06-22 21:06
|
@@ -1,133 +0,0 @@
|
|
1
|
-
# Dr.Egeria - designing data - part 1
|
2
|
-
## Introduction
|
3
|
-
|
4
|
-
As data professionals, we often need to design data to be collected, processed, and shared with others.
|
5
|
-
The Egeria Data Designer module has been designed to support this. Using the features of data designer we can
|
6
|
-
define and refine:
|
7
|
-
|
8
|
-
* Data Structures - a composition of data fields (and data structures) that we work with as a unit. For instance, in
|
9
|
-
a clinical trial, each measurement record we receive will conform to a data structure.
|
10
|
-
* Data Fields - the building blocks of data structures - for example, in a clinical trial data structure we might find data fields for health measurements, a time and date when the measurements were made and a patient identifier.
|
11
|
-
* Data Classes - data classes contain a set of rules that describe the allowable values of a kind of data. For instance, when we we receive new data, perhaps we expect a clinical trial measurement record, then we will often want to validate that it conforms to our expectations; that the value of each field, conforms to the data class specification.
|
12
|
-
Similarly, if we receive some data and aren't sure what it is, we can compare the values we have received with this same set of rules to propose what kind of data it might be.
|
13
|
-
|
14
|
-
These are basic building blocks. The following diagram shows how these building blocks come together in a simple example. The ficticious Coco Pharmaceuticals company
|
15
|
-
is running a drug trial to measure the effectiveness of their experimental treatment of Teddy Bear Drop Foot. Each hospital participating in the trial provides
|
16
|
-
weekly clinical data records. The clinical trial has established the following data specification to exchange this weekly measurement data.
|
17
|
-
|
18
|
-
* A data structure named `TBDF-Incoming Weekly Measurement Data` that is composed of:
|
19
|
-
* Data Field: Date
|
20
|
-
* Data Field: PatientId
|
21
|
-
* Data Field: AngleLeft
|
22
|
-
* Data Field: AngleRight
|
23
|
-
|
24
|
-
* The data field `PatientId` is composed of two sub-fields
|
25
|
-
* Data Field: HospitalId
|
26
|
-
* Data Field: PatientNumber
|
27
|
-
|
28
|
-
Dr.Egeria allows us to easily sketch this out, and then refine the definitions incrementally as we work through the design.
|
29
|
-
So lets begin. First we will define the `TBDF-Incoming Weekly Measurement Data` data structure. We will then Don't Create the new data fields.
|
30
|
-
|
31
|
-
___
|
32
|
-
|
33
|
-
# Don't Create Data Structure
|
34
|
-
## Data Structure Name
|
35
|
-
|
36
|
-
TBDF-Incoming Weekly Measurement Data
|
37
|
-
|
38
|
-
## Description
|
39
|
-
This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial.
|
40
|
-
|
41
|
-
> Note: we will continue to refine this definition as we work through the design.
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
___
|
46
|
-
> Note: While not required, it is good practice to end each Dr.Egeria command with a `___` so that a markdown
|
47
|
-
> seperator is displayed between commands. It improves the readability.
|
48
|
-
|
49
|
-
# Don't Create Data Field
|
50
|
-
## Data Field
|
51
|
-
Date
|
52
|
-
## Description
|
53
|
-
A date of the form YYYY-MM-DD
|
54
|
-
|
55
|
-
___
|
56
|
-
|
57
|
-
# Don't Create Data Field
|
58
|
-
## Data Field Name
|
59
|
-
PatientId
|
60
|
-
## Description
|
61
|
-
Unique identifier of the patient
|
62
|
-
|
63
|
-
___
|
64
|
-
|
65
|
-
# Don't Create Data Field
|
66
|
-
## Data Field Name
|
67
|
-
AngleLeft
|
68
|
-
## Description
|
69
|
-
Angle rotation of the left leg from vertical
|
70
|
-
|
71
|
-
___
|
72
|
-
|
73
|
-
# Don't Create Data Field
|
74
|
-
## Data Field Name
|
75
|
-
AngleRight
|
76
|
-
## Description
|
77
|
-
Angle rotation of the left leg from vertical
|
78
|
-
|
79
|
-
___
|
80
|
-
|
81
|
-
# Don't Create Data Field
|
82
|
-
## Data Field Name
|
83
|
-
|
84
|
-
HospitalId
|
85
|
-
|
86
|
-
## Description
|
87
|
-
Unique identifier for a hospital. Used in forming PatientId.
|
88
|
-
|
89
|
-
___
|
90
|
-
|
91
|
-
# Don't Create Data Field
|
92
|
-
## Data Field Name
|
93
|
-
PatientNumber
|
94
|
-
## Description
|
95
|
-
Unique identifier of the patient within a hospital.
|
96
|
-
|
97
|
-
___
|
98
|
-
# REPORTING
|
99
|
-
We can also use Dr.Egeria Commands to report on the Data Structures and Data Fields that we just created. Here
|
100
|
-
we request a simplified list form of the output.
|
101
|
-
___
|
102
|
-
|
103
|
-
|
104
|
-
# `Data Structures` with filter: `*`
|
105
|
-
|
106
|
-
# Data Structures Table
|
107
|
-
|
108
|
-
Data Structures found from the search string: `All`
|
109
|
-
|
110
|
-
| Structure Name | Qualified Name | Namespace | Version | Description |
|
111
|
-
|-------------|-------------|-------------|-------------|-------------|
|
112
|
-
| TBDF-Incoming Weekly Measurement Data | [DataStruct::TBDF-Incoming Weekly Measurement Data](#fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341) | | | This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial. |
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
# `Data Fields` with filter: `*`
|
117
|
-
|
118
|
-
# Data Fields Table
|
119
|
-
|
120
|
-
Data Fields found from the search string: `All`
|
121
|
-
|
122
|
-
| Field Name | Qualified Name | Data Type | Description |
|
123
|
-
|-------------|-------------|-------------|-------------|
|
124
|
-
| HospitalId | [DataField::HospitalId](#ff03f93d-ea32-48fd-b58b-b2c373fb2c09) | string | Unique identifier for a hospital. Used in forming PatientId. |
|
125
|
-
| AngleRight | [DataField::AngleRight](#9576193d-f5e9-4715-b919-f5541acf643e) | string | Angle rotation of the left leg from vertical |
|
126
|
-
| PatientNumber | [DataField::PatientNumber](#e18b6779-abf6-4ad9-b193-cb67d56eafad) | string | Unique identifier of the patient within a hospital. |
|
127
|
-
| Date | [DataField::Date](#7e5e2d39-fd27-4340-95cf-84e6cb265bde) | string | A date of the form YYYY-MM-DD |
|
128
|
-
| AngleLeft | [DataField::AngleLeft](#91c5007e-6578-4cf2-bf10-e350aa697071) | string | Angle rotation of the left leg from vertical |
|
129
|
-
| PatientId | [DataField::PatientId](#6703d7e2-3251-4967-b0d2-a93583860561) | string | Unique identifier of the patient |
|
130
|
-
|
131
|
-
# Provenance
|
132
|
-
|
133
|
-
* Results from processing file dr_egeria_data_designer_1.md on 2025-06-22 21:13
|
@@ -1,141 +0,0 @@
|
|
1
|
-
# Dr.Egeria - designing data - part 1
|
2
|
-
## Introduction
|
3
|
-
|
4
|
-
As data professionals, we often need to design data to be collected, processed, and shared with others.
|
5
|
-
The Egeria Data Designer module has been designed to support this. Using the features of data designer we can
|
6
|
-
define and refine:
|
7
|
-
|
8
|
-
* Data Structures - a composition of data fields (and data structures) that we work with as a unit. For instance, in
|
9
|
-
a clinical trial, each measurement record we receive will conform to a data structure.
|
10
|
-
* Data Fields - the building blocks of data structures - for example, in a clinical trial data structure we might find data fields for health measurements, a time and date when the measurements were made and a patient identifier.
|
11
|
-
* Data Classes - data classes contain a set of rules that describe the allowable values of a kind of data. For instance, when we we receive new data, perhaps we expect a clinical trial measurement record, then we will often want to validate that it conforms to our expectations; that the value of each field, conforms to the data class specification.
|
12
|
-
Similarly, if we receive some data and aren't sure what it is, we can compare the values we have received with this same set of rules to propose what kind of data it might be.
|
13
|
-
|
14
|
-
These are basic building blocks. The following diagram shows how these building blocks come together in a simple example. The ficticious Coco Pharmaceuticals company
|
15
|
-
is running a drug trial to measure the effectiveness of their experimental treatment of Teddy Bear Drop Foot. Each hospital participating in the trial provides
|
16
|
-
weekly clinical data records. The clinical trial has established the following data specification to exchange this weekly measurement data.
|
17
|
-
|
18
|
-
* A data structure named `TBDF-Incoming Weekly Measurement Data` that is composed of:
|
19
|
-
* Data Field: Date
|
20
|
-
* Data Field: PatientId
|
21
|
-
* Data Field: AngleLeft
|
22
|
-
* Data Field: AngleRight
|
23
|
-
|
24
|
-
* The data field `PatientId` is composed of two sub-fields
|
25
|
-
* Data Field: HospitalId
|
26
|
-
* Data Field: PatientNumber
|
27
|
-
|
28
|
-
Dr.Egeria allows us to easily sketch this out, and then refine the definitions incrementally as we work through the design.
|
29
|
-
So lets begin. First we will define the `TBDF-Incoming Weekly Measurement Data` data structure. We will then Don't Create the new data fields.
|
30
|
-
|
31
|
-
___
|
32
|
-
|
33
|
-
# Don't Create Data Structure
|
34
|
-
## Data Structure Name
|
35
|
-
|
36
|
-
TBDF-Incoming Weekly Measurement Data
|
37
|
-
|
38
|
-
## Description
|
39
|
-
This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial.
|
40
|
-
|
41
|
-
> Note: we will continue to refine this definition as we work through the design.
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
___
|
46
|
-
> Note: While not required, it is good practice to end each Dr.Egeria command with a `___` so that a markdown
|
47
|
-
> seperator is displayed between commands. It improves the readability.
|
48
|
-
|
49
|
-
# Don't Create Data Field
|
50
|
-
## Data Field
|
51
|
-
Date
|
52
|
-
## Description
|
53
|
-
A date of the form YYYY-MM-DD
|
54
|
-
|
55
|
-
___
|
56
|
-
|
57
|
-
# Don't Create Data Field
|
58
|
-
## Data Field Name
|
59
|
-
PatientId
|
60
|
-
## Description
|
61
|
-
Unique identifier of the patient
|
62
|
-
|
63
|
-
___
|
64
|
-
|
65
|
-
# Don't Create Data Field
|
66
|
-
## Data Field Name
|
67
|
-
AngleLeft
|
68
|
-
## Description
|
69
|
-
Angle rotation of the left leg from vertical
|
70
|
-
|
71
|
-
___
|
72
|
-
|
73
|
-
# Don't Create Data Field
|
74
|
-
## Data Field Name
|
75
|
-
AngleRight
|
76
|
-
## Description
|
77
|
-
Angle rotation of the left leg from vertical
|
78
|
-
|
79
|
-
___
|
80
|
-
|
81
|
-
# Don't Create Data Field
|
82
|
-
## Data Field Name
|
83
|
-
|
84
|
-
HospitalId
|
85
|
-
|
86
|
-
## Description
|
87
|
-
Unique identifier for a hospital. Used in forming PatientId.
|
88
|
-
|
89
|
-
___
|
90
|
-
|
91
|
-
# Don't Create Data Field
|
92
|
-
## Data Field Name
|
93
|
-
PatientNumber
|
94
|
-
## Description
|
95
|
-
Unique identifier of the patient within a hospital.
|
96
|
-
|
97
|
-
___
|
98
|
-
# REPORTING
|
99
|
-
We can also use Dr.Egeria Commands to report on the Data Structures and Data Fields that we just created. Here
|
100
|
-
we request a simplified list form of the output.
|
101
|
-
___
|
102
|
-
|
103
|
-
|
104
|
-
# `Data Structures` with filter: `*`
|
105
|
-
|
106
|
-
# Data Structures Table
|
107
|
-
|
108
|
-
Data Structures found from the search string: `All`
|
109
|
-
|
110
|
-
| Structure Name | Qualified Name | Namespace | Version | Description |
|
111
|
-
|-------------|-------------|-------------|-------------|-------------|
|
112
|
-
| TBDF-Incoming Weekly Measurement Data | [DataStruct::TBDF-Incoming Weekly Measurement Data](#fd9380f4-1067-4f7b-bf3f-cb2f3a0e8341) | | | This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial. |
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
# `Data Fields` with filter: `*`
|
117
|
-
|
118
|
-
# Data Fields Table
|
119
|
-
|
120
|
-
Data Fields found from the search string: `All`
|
121
|
-
|
122
|
-
| Field Name | Qualified Name | Data Type | Description |
|
123
|
-
|-------------|-------------|-------------|-------------|
|
124
|
-
| HospitalId | [DataField::HospitalId](#ff03f93d-ea32-48fd-b58b-b2c373fb2c09) | string | Unique identifier for a hospital. Used in forming PatientId. |
|
125
|
-
| AngleRight | [DataField::AngleRight](#9576193d-f5e9-4715-b919-f5541acf643e) | string | Angle rotation of the left leg from vertical |
|
126
|
-
| PatientNumber | [DataField::PatientNumber](#e18b6779-abf6-4ad9-b193-cb67d56eafad) | string | Unique identifier of the patient within a hospital. |
|
127
|
-
| Date | [DataField::Date](#7e5e2d39-fd27-4340-95cf-84e6cb265bde) | string | A date of the form YYYY-MM-DD |
|
128
|
-
| AngleLeft | [DataField::AngleLeft](#91c5007e-6578-4cf2-bf10-e350aa697071) | string | Angle rotation of the left leg from vertical |
|
129
|
-
| PatientId | [DataField::PatientId](#6703d7e2-3251-4967-b0d2-a93583860561) | string | Unique identifier of the patient |
|
130
|
-
|
131
|
-
# Building on what we have done
|
132
|
-
One of the interesting features of Dr.Egeria, is that we can take the results of processing a Dr.Egeria command as the
|
133
|
-
starting point for refining the information we provided. This is convenient, because when we generate the command output,
|
134
|
-
we transform the `Create` commands into `Update` commands. We also add some additional information that Egeria derived for us.
|
135
|
-
|
136
|
-
## Next Steps
|
137
|
-
For our next steps, we will copy the file produced in the first step into a new file called `dr_egeria_data_designer_2.md`
|
138
|
-
Please open that file when you are ready to continue.
|
139
|
-
# Provenance
|
140
|
-
|
141
|
-
* Results from processing file dr_egeria_data_designer_1.md on 2025-06-22 21:19
|
File without changes
|
File without changes
|
File without changes
|