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.
@@ -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 category you are searching for or '*' for all:", default="*"
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")
@@ -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["otherRelatedElements"]
682
-
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)
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
- 'guid': guid, 'properties': properties, 'display_name': display_name, 'description': description,
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
- 'guid': guid, 'properties': properties, 'display_name': display_name, 'aliases': aliases,
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
- 'guid': guid, 'properties': properties, 'display_name': display_name, 'description': description,
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
- 'guid': parent_guid, 'name': parent_name
2178
+ 'GUID': parent_guid, 'name': parent_name
2180
2179
  }
2181
2180
 
2182
2181
  return {
2183
- 'guid': category_guid, 'name': display_name, 'qualifiedName': qualified_name,
2182
+ 'GUID': category_guid, 'name': display_name, 'qualifiedName': qualified_name,
2184
2183
  'description': description, 'parent': parent_info, 'children': children
2185
2184
  }
2186
2185
 
@@ -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, props['guid'], output_format)
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", props['guid'], output_format)
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, props['guid'], output_format)
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, props['guid'], output_format)
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
- 'guid': guid,
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
- 'guid': guid,
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
- 'guid': guid,
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
- 'guid': guid,
337
+ 'GUID': guid,
338
338
  'qualified_name': qualified_name,
339
339
  'display_name': display_name,
340
340
  'description': description,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyegeria
3
- Version: 5.4.0.dev5
3
+ Version: 5.4.0.dev6
4
4
  Summary: A python client for Egeria
5
5
  License: Apache 2.0
6
6
  Keywords: egeria,metadata,governance
@@ -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=sfFgfBr9q0X8hZ-BkNd2W9Qe8hzoiTnRQ9qzbX9x27U,6721
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=K1GQt0bJxUWmQEvvJwi2i354MrN3q7H-jMnrslR2ou4,202420
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=j6CJt1_O42OT3bVzwwiAoqsCtH5urC5zfghEl0tO8Vg,167000
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=l4Ye2N1QphR4sy4E52JUvNWG5L5lSjZhkoQ3jAx7Cd4,16145
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=xDe8SYsuo8rXkiCCPSLI1XTdMXvbf8H74gG3pJqpru0,214402
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.dev5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
158
- pyegeria-5.4.0.dev5.dist-info/METADATA,sha256=FykHvgjKIEru4C1bWHvwgZBYi0J3X4Zfk3c0BzxYqos,2799
159
- pyegeria-5.4.0.dev5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
160
- pyegeria-5.4.0.dev5.dist-info/entry_points.txt,sha256=UigZmPobfP9Rkz3PfjWUrJbKjImUeX00iOz6lR_wP5Q,6247
161
- pyegeria-5.4.0.dev5.dist-info/RECORD,,
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