pyegeria 5.3.3.13.dev4__py3-none-any.whl → 5.3.3.14.dev2__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.
- pyegeria/.DS_Store +0 -0
- pyegeria/commands/.DS_Store +0 -0
- pyegeria/commands/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/__pycache__/server_status_widget.cpython-312-pytest-7.4.4.pyc +0 -0
- pyegeria/commands/cat/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_asset_graph.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_collection.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_project_dependencies.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_project_structure.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_tech_type_elements.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/glossary_actions.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_assets.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_cert_types.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_collections.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_deployed_catalogs.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_deployed_database_schemas.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_deployed_databases.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_glossaries.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_projects.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_servers_deployed_imp.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_tech_type_elements.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_tech_types.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_terms.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_todos.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_user_ids.cpython-312.pyc +0 -0
- pyegeria/commands/cat/link-test.py +185 -0
- pyegeria/commands/cli/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/egeria_login_tui.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/egeria_ops.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/ops_config.cpython-312.pyc +0 -0
- pyegeria/commands/doc/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/images/.DS_Store +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/.DS_Store +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store +0 -0
- pyegeria/commands/my/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/list_my_profile.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/list_my_roles.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/monitor_my_todos.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/monitor_open_todos.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/todo_actions.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/gov_server_actions.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/list_archives.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/list_catalog_targets.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/load_archive.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_engine_activity.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_engine_activity_c.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_gov_eng_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_integ_daemon_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_platform_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_server_startup.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_server_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/refresh_integration_daemon.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/restart_integration_daemon.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/table_integ_daemon_status.cpython-312.pyc +0 -0
- pyegeria/commands/tech/.DS_Store +0 -0
- pyegeria/commands/tech/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_element_info.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_guid_info.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_tech_details.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_tech_type_template.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_anchored_elements.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_asset_types.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_elements_by_property_value.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_elements_for_classification.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_gov_action_processes.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_registered_services.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_related_specification.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_relationship_types.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_relationships.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_tech_templates.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_valid_metadata_values.cpython-312.pyc +0 -0
- pyegeria/commands/tech/list_solution_blueprints2.py +6 -2
- pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Subject Onboarding.html +28 -21
- pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Treatment Validation.html +31 -24
- pyegeria/commands/tech/work/mermaid_graphs/Employee Expense Payment.html +17 -10
- pyegeria/commands/tech/work/mermaid_graphs/New Drug Product Information Distribution.html +16 -9
- pyegeria/commands/tech/work/mermaid_graphs/New Employee Onboarding.html +16 -9
- pyegeria/commands/tech/work/mermaid_graphs/Personalized Treatment Ordering.html +17 -10
- pyegeria/commands/tech/work/mermaid_graphs/Physical Inventory Tracking.html +20 -13
- pyegeria/commands/tech/work/mermaid_graphs/Sustainability Reporting.html +16 -9
- pyegeria/commands/tech/work/mermaid_graphs/{{displayName}}.html +14 -7
- pyegeria/mermaid_utilities.py +15 -7
- {pyegeria-5.3.3.13.dev4.dist-info → pyegeria-5.3.3.14.dev2.dist-info}/METADATA +1 -1
- {pyegeria-5.3.3.13.dev4.dist-info → pyegeria-5.3.3.14.dev2.dist-info}/RECORD +93 -16
- {pyegeria-5.3.3.13.dev4.dist-info → pyegeria-5.3.3.14.dev2.dist-info}/entry_points.txt +1 -0
- {pyegeria-5.3.3.13.dev4.dist-info → pyegeria-5.3.3.14.dev2.dist-info}/LICENSE +0 -0
- {pyegeria-5.3.3.13.dev4.dist-info → pyegeria-5.3.3.14.dev2.dist-info}/WHEEL +0 -0
pyegeria/.DS_Store
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,185 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
5
|
+
|
6
|
+
List certification types
|
7
|
+
|
8
|
+
|
9
|
+
A simple display for certification types
|
10
|
+
"""
|
11
|
+
import argparse
|
12
|
+
import os
|
13
|
+
import sys
|
14
|
+
import time
|
15
|
+
import json
|
16
|
+
|
17
|
+
from rich import box
|
18
|
+
from rich.console import Console
|
19
|
+
from rich.prompt import Prompt
|
20
|
+
from rich.markdown import Markdown
|
21
|
+
from rich.table import Table
|
22
|
+
from rich.text import Text
|
23
|
+
|
24
|
+
from pyegeria import (
|
25
|
+
InvalidParameterException,
|
26
|
+
PropertyServerException,
|
27
|
+
UserNotAuthorizedException,
|
28
|
+
print_exception_response,
|
29
|
+
AssetCatalog,
|
30
|
+
ClassificationManager,
|
31
|
+
)
|
32
|
+
|
33
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
34
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
35
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
36
|
+
EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
|
37
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
38
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
39
|
+
)
|
40
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
41
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
42
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
43
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
44
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
45
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
46
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
47
|
+
|
48
|
+
|
49
|
+
disable_ssl_warnings = True
|
50
|
+
|
51
|
+
|
52
|
+
def display_certifications(
|
53
|
+
search_string: str,
|
54
|
+
server: str,
|
55
|
+
url: str,
|
56
|
+
username: str,
|
57
|
+
user_password: str,
|
58
|
+
time_out: int = 60,
|
59
|
+
jupyter: bool = EGERIA_JUPYTER,
|
60
|
+
width: int = EGERIA_WIDTH,
|
61
|
+
):
|
62
|
+
console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
|
63
|
+
if (search_string is None) or ((len(search_string) < 3)) and (search_string != "*"):
|
64
|
+
raise ValueError(
|
65
|
+
"Invalid Search String - must be greater than four characters long"
|
66
|
+
)
|
67
|
+
g_client = ClassificationManager(
|
68
|
+
server, url, user_id=username, user_pwd=user_password
|
69
|
+
)
|
70
|
+
token = g_client.create_egeria_bearer_token(username, user_password)
|
71
|
+
|
72
|
+
def generate_table(search_string: str = None) -> Table:
|
73
|
+
"""Make a new table."""
|
74
|
+
table = Table(
|
75
|
+
title=f"Certifications Types @ {time.asctime()}",
|
76
|
+
header_style="white on dark_blue",
|
77
|
+
style="bold white on black",
|
78
|
+
row_styles=["bold white on black"],
|
79
|
+
title_style="bold white on black",
|
80
|
+
caption_style="white on black",
|
81
|
+
show_lines=True,
|
82
|
+
box=box.ROUNDED,
|
83
|
+
caption=f"View Server '{server}' @ Platform - {url}",
|
84
|
+
expand=True,
|
85
|
+
)
|
86
|
+
table.add_column("Title", max_width=15)
|
87
|
+
table.add_column("summary")
|
88
|
+
table.add_column("domainID")
|
89
|
+
table.add_column("Unique Name", width=38)
|
90
|
+
table.add_column("Scope", width=38)
|
91
|
+
# table.add_column("Qualified Name",max_width=15)
|
92
|
+
table.add_column("Description",width=38)
|
93
|
+
table.add_column("Details")
|
94
|
+
|
95
|
+
|
96
|
+
certs = g_client.get_elements(search_string, page_size=100, time_out=time_out)
|
97
|
+
if type(certs) is str:
|
98
|
+
return table
|
99
|
+
|
100
|
+
for element in certs:
|
101
|
+
properties = element["properties"]
|
102
|
+
summary = properties.get("summary", "---")
|
103
|
+
domain = properties.get("domainIdentifier", "---")
|
104
|
+
unique_name = properties.get("qualifiedName", "---")
|
105
|
+
scope = properties.get("scope", "---")
|
106
|
+
description = properties.get("description", "---")
|
107
|
+
details = properties.get("details", "---")
|
108
|
+
title = properties.get("title", "---")
|
109
|
+
cert_guid = element["elementHeader"]["guid"]
|
110
|
+
|
111
|
+
related = g_client.get_related_elements(cert_guid)
|
112
|
+
if (len(related) > 0) and (type(related) is list):
|
113
|
+
rel_md = ""
|
114
|
+
for rel in related:
|
115
|
+
rel_type = rel["relationshipHeader"]["type"]["typeName"]
|
116
|
+
rel_element_props = rel["relatedElement"]["properties"]
|
117
|
+
rel_el_md = f"* Rel Type: {rel_type}\n"
|
118
|
+
for key in rel_element_props.keys():
|
119
|
+
rel_el_md += f"* {key}: {rel_element_props[key]}\n"
|
120
|
+
rel_md += f"----\n{rel_el_md}\n"
|
121
|
+
else:
|
122
|
+
rel_md = "---"
|
123
|
+
|
124
|
+
|
125
|
+
unique_name = "Visit my [link=https://www.willmcgugan.com]blog[/link]!"
|
126
|
+
scope = Text("[link=https://egeria-project.org]Egeria[/link]")
|
127
|
+
description = Markdown('[egeria]("https://egeria-project.org")')
|
128
|
+
details = "https://pdr-associates.com"
|
129
|
+
table.add_row(
|
130
|
+
title, summary, domain, unique_name, scope, description, details
|
131
|
+
)
|
132
|
+
|
133
|
+
g_client.close_session()
|
134
|
+
|
135
|
+
return table
|
136
|
+
|
137
|
+
try:
|
138
|
+
# with Live(generate_table(), refresh_per_second=4, screen=True) as live:
|
139
|
+
# while True:
|
140
|
+
# time.sleep(2)
|
141
|
+
# live.update(generate_table())
|
142
|
+
|
143
|
+
with console.pager(styles=True):
|
144
|
+
console.print(generate_table(search_string), soft_wrap=True)
|
145
|
+
|
146
|
+
except (
|
147
|
+
InvalidParameterException,
|
148
|
+
PropertyServerException,
|
149
|
+
UserNotAuthorizedException,
|
150
|
+
) as e:
|
151
|
+
console.print_exception()
|
152
|
+
sys.exit(1)
|
153
|
+
|
154
|
+
except ValueError as e:
|
155
|
+
console.print(
|
156
|
+
f"\n\n====> Invalid Search String - must be greater than four characters long"
|
157
|
+
)
|
158
|
+
sys.exit(1)
|
159
|
+
|
160
|
+
|
161
|
+
def main():
|
162
|
+
parser = argparse.ArgumentParser()
|
163
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
164
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
165
|
+
parser.add_argument("--userid", help="User Id")
|
166
|
+
parser.add_argument("--password", help="User Password")
|
167
|
+
parser.add_argument("--time_out", help="Time Out")
|
168
|
+
|
169
|
+
args = parser.parse_args()
|
170
|
+
|
171
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
172
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
173
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
174
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
175
|
+
time_out = args.time_out if args.time_out is not None else 60
|
176
|
+
try:
|
177
|
+
# search_string = Prompt.ask("Enter an asset search string:", default="*")
|
178
|
+
search_string = "CertificationType"
|
179
|
+
display_certifications(search_string, server, url, userid, user_pass, time_out)
|
180
|
+
except KeyboardInterrupt:
|
181
|
+
pass
|
182
|
+
|
183
|
+
|
184
|
+
if __name__ == "__main__":
|
185
|
+
main()
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -93,6 +93,7 @@ def blueprint_list(
|
|
93
93
|
|
94
94
|
bp_components = bp.get("solutionComponents",[])
|
95
95
|
comp_md=""
|
96
|
+
first_comp = True
|
96
97
|
for component in bp_components:
|
97
98
|
comp = component.get("solutionComponent","")
|
98
99
|
if isinstance(comp,dict) is False:
|
@@ -111,11 +112,14 @@ def blueprint_list(
|
|
111
112
|
for prop in comp_actor_props.keys():
|
112
113
|
comp_actor_props_md += f"* {prop}: {comp_actor_props[prop]}\n"
|
113
114
|
comp_actors_list += comp_actor_props_md
|
114
|
-
|
115
|
+
if first_comp:
|
116
|
+
first_comp = False
|
117
|
+
else:
|
118
|
+
comp_md += "\n\n---\n\n"
|
115
119
|
comp_md = f"Solution Component {comp_name}\n\n"
|
116
120
|
comp_md += f"* Description: {comp_description}\n"
|
117
121
|
comp_md += f"* Planned Deployment: {comp_planned}\n"
|
118
|
-
comp_md += f"* Actors: {comp_actors_list}\n
|
122
|
+
comp_md += f"* Actors: {comp_actors_list}\n"
|
119
123
|
comp_out = Markdown(comp_md)
|
120
124
|
table.add_row(bp_name, bp_unique_name, bp_desc, comp_out)
|
121
125
|
|
@@ -1,12 +1,13 @@
|
|
1
1
|
|
2
|
+
<!DOCTYPE html>
|
2
3
|
<html>
|
3
4
|
<head>
|
4
5
|
<style type="text/css">
|
5
6
|
#mySvgId {
|
6
7
|
width: 100%;
|
7
|
-
height:
|
8
|
-
overflow:
|
9
|
-
border:
|
8
|
+
height: 600px;
|
9
|
+
overflow: scroll;
|
10
|
+
border: 2px solid #ccc;
|
10
11
|
position: relative;
|
11
12
|
margin-bottom: 10px;
|
12
13
|
}
|
@@ -17,7 +18,13 @@
|
|
17
18
|
</style>
|
18
19
|
</head>
|
19
20
|
|
21
|
+
<title>Information Supply Chain - Clinical Trial Subject Onboarding </title>
|
22
|
+
<h3 style="text-align: center;">Information Supply Chain - Clinical Trial Subject Onboarding </h3>
|
23
|
+
GUID : 39a035f0-3b2b-45fe-adb8-ee8a19581f6a
|
24
|
+
|
25
|
+
|
20
26
|
<body>
|
27
|
+
|
21
28
|
<div id="graphDiv"></div>
|
22
29
|
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
|
23
30
|
<script type="module">
|
@@ -53,31 +60,31 @@
|
|
53
60
|
|
54
61
|
39a035f0-3b2b-45fe-adb8-ee8a19581f6a@{ shape: flip-tri, label: "*Information Supply Chain*
|
55
62
|
**Clinical Trial Subject Onboarding**"}
|
56
|
-
|
63
|
+
46a5c6e0-adcd-4459-9eb2-9dfd7ef9aceb@{ shape: text, label: "*Description*
|
57
64
|
**Delivering the data necessary to add a person as a subject in a clinical trial.**"}
|
58
|
-
39a035f0-3b2b-45fe-adb8-ee8a19581f6a~~~
|
59
|
-
|
65
|
+
39a035f0-3b2b-45fe-adb8-ee8a19581f6a~~~46a5c6e0-adcd-4459-9eb2-9dfd7ef9aceb
|
66
|
+
ec855564-e5c6-4b6c-bf6b-20cd67f06b9f@{ shape: text, label: "*Purpose*
|
60
67
|
**Ensure patient subject is aware of the process and potential risks in participation.**"}
|
61
|
-
|
62
|
-
|
68
|
+
46a5c6e0-adcd-4459-9eb2-9dfd7ef9aceb~~~ec855564-e5c6-4b6c-bf6b-20cd67f06b9f
|
69
|
+
2d2907d5-dfa1-4c7a-8ffe-cbd706072bd8@{ shape: text, label: "*Purpose*
|
63
70
|
**Ensure patient subject has given permission for Coco Pharmaceuticals to acquire, store and process their personal data needed for the clinical trial.**"}
|
64
|
-
|
65
|
-
|
71
|
+
ec855564-e5c6-4b6c-bf6b-20cd67f06b9f~~~2d2907d5-dfa1-4c7a-8ffe-cbd706072bd8
|
72
|
+
43a5c89e-3af2-4fd2-89ce-98f06bbed8ac@{ shape: text, label: "*Purpose*
|
66
73
|
**Ensure incoming data is validated and catalogued.**"}
|
67
|
-
|
68
|
-
|
74
|
+
2d2907d5-dfa1-4c7a-8ffe-cbd706072bd8~~~43a5c89e-3af2-4fd2-89ce-98f06bbed8ac
|
75
|
+
3063dabe-df4f-4841-9cbf-4fddc452b666@{ shape: text, label: "*Purpose*
|
69
76
|
**Ensure data and process owners are informed of key milestones and issues requiring attention.**"}
|
70
|
-
|
71
|
-
|
77
|
+
43a5c89e-3af2-4fd2-89ce-98f06bbed8ac~~~3063dabe-df4f-4841-9cbf-4fddc452b666
|
78
|
+
2ed89fe6-e28a-48a6-8f37-657efabd0e62@{ shape: text, label: "*Purpose*
|
72
79
|
**Ensure the process of data capture and validation is transparent and auditable.**"}
|
73
|
-
|
80
|
+
3063dabe-df4f-4841-9cbf-4fddc452b666~~~2ed89fe6-e28a-48a6-8f37-657efabd0e62
|
74
81
|
style 39a035f0-3b2b-45fe-adb8-ee8a19581f6a color:#FFFFFF, fill:#004563, stroke:#b7c0c7
|
75
|
-
style
|
76
|
-
style
|
77
|
-
style
|
78
|
-
style
|
79
|
-
style
|
80
|
-
style
|
82
|
+
style ec855564-e5c6-4b6c-bf6b-20cd67f06b9f color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
83
|
+
style 2d2907d5-dfa1-4c7a-8ffe-cbd706072bd8 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
84
|
+
style 43a5c89e-3af2-4fd2-89ce-98f06bbed8ac color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
85
|
+
style 3063dabe-df4f-4841-9cbf-4fddc452b666 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
86
|
+
style 2ed89fe6-e28a-48a6-8f37-657efabd0e62 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
87
|
+
style 46a5c6e0-adcd-4459-9eb2-9dfd7ef9aceb color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
|
81
88
|
const {svg} = await mermaid.render('mySvgId', graphDefinition);
|
82
89
|
element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
|
83
90
|
|
@@ -1,12 +1,13 @@
|
|
1
1
|
|
2
|
+
<!DOCTYPE html>
|
2
3
|
<html>
|
3
4
|
<head>
|
4
5
|
<style type="text/css">
|
5
6
|
#mySvgId {
|
6
7
|
width: 100%;
|
7
|
-
height:
|
8
|
-
overflow:
|
9
|
-
border:
|
8
|
+
height: 600px;
|
9
|
+
overflow: scroll;
|
10
|
+
border: 2px solid #ccc;
|
10
11
|
position: relative;
|
11
12
|
margin-bottom: 10px;
|
12
13
|
}
|
@@ -17,7 +18,13 @@
|
|
17
18
|
</style>
|
18
19
|
</head>
|
19
20
|
|
21
|
+
<title>Information Supply Chain - Clinical Trial Treatment Validation </title>
|
22
|
+
<h3 style="text-align: center;">Information Supply Chain - Clinical Trial Treatment Validation </h3>
|
23
|
+
GUID : 1f71e403-1187-4f03-a1dd-ae7dc105f06f
|
24
|
+
|
25
|
+
|
20
26
|
<body>
|
27
|
+
|
21
28
|
<div id="graphDiv"></div>
|
22
29
|
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
|
23
30
|
<script type="module">
|
@@ -53,27 +60,27 @@
|
|
53
60
|
|
54
61
|
1f71e403-1187-4f03-a1dd-ae7dc105f06f@{ shape: flip-tri, label: "*Information Supply Chain*
|
55
62
|
**Clinical Trial Treatment Validation**"}
|
56
|
-
|
63
|
+
cfea745a-ad42-4d6d-a69d-6bcfa09ca2d0@{ shape: text, label: "*Description*
|
57
64
|
**Delivering data relating to a clinical trial from the hospitals to the Coco Researchers so that they can then determine the efficacy of the treatment to report to the regulators.**"}
|
58
|
-
1f71e403-1187-4f03-a1dd-ae7dc105f06f~~~
|
59
|
-
|
65
|
+
1f71e403-1187-4f03-a1dd-ae7dc105f06f~~~cfea745a-ad42-4d6d-a69d-6bcfa09ca2d0
|
66
|
+
d467f775-2db7-46aa-8f53-8c8b162585d6@{ shape: text, label: "*Purpose*
|
60
67
|
**Deliver patient measurement data from hospitals to data scientists in research.**"}
|
61
|
-
|
62
|
-
|
68
|
+
cfea745a-ad42-4d6d-a69d-6bcfa09ca2d0~~~d467f775-2db7-46aa-8f53-8c8b162585d6
|
69
|
+
5cdf8613-5704-49c3-9fef-1933b559193b@{ shape: text, label: "*Purpose*
|
63
70
|
**Ensure incoming data is only from certified hospitals.**"}
|
64
|
-
|
65
|
-
|
71
|
+
d467f775-2db7-46aa-8f53-8c8b162585d6~~~5cdf8613-5704-49c3-9fef-1933b559193b
|
72
|
+
4fb3a484-600c-4915-83d0-55450554f3ee@{ shape: text, label: "*Purpose*
|
66
73
|
**Ensure incoming data is validated and catalogued.**"}
|
67
|
-
|
68
|
-
|
74
|
+
5cdf8613-5704-49c3-9fef-1933b559193b~~~4fb3a484-600c-4915-83d0-55450554f3ee
|
75
|
+
f0a4c74a-01e6-44df-99b5-84153e02b012@{ shape: text, label: "*Purpose*
|
69
76
|
**Ensure data and process owners are informed of key milestones and issues requiring attention.**"}
|
70
|
-
|
71
|
-
|
77
|
+
4fb3a484-600c-4915-83d0-55450554f3ee~~~f0a4c74a-01e6-44df-99b5-84153e02b012
|
78
|
+
a45f95b6-cc69-4931-a0d2-93849af35b98@{ shape: text, label: "*Purpose*
|
72
79
|
**Ensure the process of data capture and treatment validation is transparent and auditable.**"}
|
73
|
-
|
74
|
-
|
80
|
+
f0a4c74a-01e6-44df-99b5-84153e02b012~~~a45f95b6-cc69-4931-a0d2-93849af35b98
|
81
|
+
6b4073ce-218b-4cec-ad9d-4eb36452a5c0@{ shape: text, label: "*Purpose*
|
75
82
|
**Ensure the treatment validation report is complete and regulatory compliant.**"}
|
76
|
-
|
83
|
+
a45f95b6-cc69-4931-a0d2-93849af35b98~~~6b4073ce-218b-4cec-ad9d-4eb36452a5c0
|
77
84
|
38635d38-f728-400d-a8ec-7c26e68b7c0f@{ shape: hex, label: "*Information Supply Chain Segment*
|
78
85
|
**Weekly Measurements Onboarding**"}
|
79
86
|
38635d38-f728-400d-a8ec-7c26e68b7c0f-->|"capture and catalog,
|
@@ -135,26 +142,26 @@ d48f579f-76d3-4c49-b1b4-575f5645a9d0-->|"retrieve patient data,
|
|
135
142
|
72a86eec-9734-4bc0-babb-4fec0aa7c9ff-->|"publish results,
|
136
143
|
[Solution Linking Wire]"|0bf2547c-937c-41b6-814f-6284849271a1
|
137
144
|
style 48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
145
|
+
style d467f775-2db7-46aa-8f53-8c8b162585d6 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
146
|
+
style cfea745a-ad42-4d6d-a69d-6bcfa09ca2d0 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
138
147
|
style e4303326-e418-4f77-b8e7-fd5d34717594 color:#004563, fill:#b7c0c7, stroke:#004563
|
148
|
+
style 4fb3a484-600c-4915-83d0-55450554f3ee color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
139
149
|
style 4fc47e60-f1b5-469c-b666-e1f4570e749f color:#004563, fill:#b7c0c7, stroke:#004563
|
140
|
-
style 2e6b651b-1235-411d-87f7-5bbb25e91057 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
141
|
-
style ded87798-758f-4cc2-895f-95467009fe41 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
142
150
|
style 7f5dca65-50b4-4103-9ac7-3a406a09047a color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
143
151
|
style ee2bb773-e630-4cf9-bdf1-7c2dd64fe4ec color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
144
|
-
style c5135483-a30c-4dfc-8729-54d306b0d2cc color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
145
152
|
style a5d4d638-6836-47e5-99d0-fdcde637e13f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
146
153
|
style 72a86eec-9734-4bc0-babb-4fec0aa7c9ff color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
147
|
-
style baf2f019-afff-487d-9a40-4fcdce8f8b84 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
148
154
|
style 38635d38-f728-400d-a8ec-7c26e68b7c0f color:#004563, fill:#b7c0c7, stroke:#004563
|
149
155
|
style 7edca02c-e726-4570-815c-280bdf5498b9 color:#004563, fill:#b7c0c7, stroke:#004563
|
150
156
|
style b5c8da4c-f925-4cf1-8294-e43cd2c1a584 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
151
157
|
style 0bf2547c-937c-41b6-814f-6284849271a1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
158
|
+
style 6b4073ce-218b-4cec-ad9d-4eb36452a5c0 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
152
159
|
style d48f579f-76d3-4c49-b1b4-575f5645a9d0 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
153
160
|
style 1f71e403-1187-4f03-a1dd-ae7dc105f06f color:#FFFFFF, fill:#004563, stroke:#b7c0c7
|
154
|
-
style
|
155
|
-
style 8033331a-7342-4a66-b85a-0aa1bd35b203 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
161
|
+
style f0a4c74a-01e6-44df-99b5-84153e02b012 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
156
162
|
style 04ae768e-3816-47bc-bddb-c9ae25018684 color:#004563, fill:#b7c0c7, stroke:#004563
|
157
|
-
style
|
163
|
+
style 5cdf8613-5704-49c3-9fef-1933b559193b color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
164
|
+
style a45f95b6-cc69-4931-a0d2-93849af35b98 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
|
158
165
|
style 26c07ca4-3b8e-484b-812b-36c1ace4b275 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
159
166
|
style 1c150d6e-30cf-481c-9afb-3b06c9c9e78f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
|
160
167
|
style 07705e15-efff-4f80-8992-f04ac85e0ef1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab`;
|