pyegeria 5.3.3.12__py3-none-any.whl → 5.3.3.13.dev1__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.
Files changed (99) hide show
  1. pyegeria/commands/tech/list_information_supply_chains.py +5 -4
  2. pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Subject Onboarding.html +135 -0
  3. pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Treatment Validation.mmd → Clinical Trial Treatment Validation.html } +127 -41
  4. pyegeria/commands/tech/work/mermaid_graphs/Employee Expense Payment.html +126 -0
  5. pyegeria/commands/tech/work/mermaid_graphs/New Drug Product Information Distribution.html +141 -0
  6. pyegeria/commands/tech/work/mermaid_graphs/New Employee Onboarding.html +138 -0
  7. pyegeria/commands/tech/work/mermaid_graphs/Personalized Treatment Ordering.html +143 -0
  8. pyegeria/commands/tech/work/mermaid_graphs/{Physical Inventory Tracking.mmd → Physical Inventory Tracking.html } +114 -28
  9. pyegeria/commands/tech/work/mermaid_graphs/{Sustainability Reporting.mmd → Sustainability Reporting.html } +112 -26
  10. pyegeria/commands/tech/work/mermaid_graphs/{{displayName}}.html +115 -0
  11. pyegeria/mermaid_utilities.py +243 -22
  12. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dev1.dist-info}/METADATA +1 -1
  13. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dev1.dist-info}/RECORD +18 -93
  14. pyegeria/.DS_Store +0 -0
  15. pyegeria/commands/.DS_Store +0 -0
  16. pyegeria/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  17. pyegeria/commands/__pycache__/server_status_widget.cpython-312-pytest-7.4.4.pyc +0 -0
  18. pyegeria/commands/cat/__pycache__/__init__.cpython-312.pyc +0 -0
  19. pyegeria/commands/cat/__pycache__/get_asset_graph.cpython-312.pyc +0 -0
  20. pyegeria/commands/cat/__pycache__/get_collection.cpython-312.pyc +0 -0
  21. pyegeria/commands/cat/__pycache__/get_project_dependencies.cpython-312.pyc +0 -0
  22. pyegeria/commands/cat/__pycache__/get_project_structure.cpython-312.pyc +0 -0
  23. pyegeria/commands/cat/__pycache__/get_tech_type_elements.cpython-312.pyc +0 -0
  24. pyegeria/commands/cat/__pycache__/glossary_actions.cpython-312.pyc +0 -0
  25. pyegeria/commands/cat/__pycache__/list_assets.cpython-312.pyc +0 -0
  26. pyegeria/commands/cat/__pycache__/list_cert_types.cpython-312.pyc +0 -0
  27. pyegeria/commands/cat/__pycache__/list_collections.cpython-312.pyc +0 -0
  28. pyegeria/commands/cat/__pycache__/list_deployed_catalogs.cpython-312.pyc +0 -0
  29. pyegeria/commands/cat/__pycache__/list_deployed_database_schemas.cpython-312.pyc +0 -0
  30. pyegeria/commands/cat/__pycache__/list_deployed_databases.cpython-312.pyc +0 -0
  31. pyegeria/commands/cat/__pycache__/list_glossaries.cpython-312.pyc +0 -0
  32. pyegeria/commands/cat/__pycache__/list_projects.cpython-312.pyc +0 -0
  33. pyegeria/commands/cat/__pycache__/list_servers_deployed_imp.cpython-312.pyc +0 -0
  34. pyegeria/commands/cat/__pycache__/list_tech_type_elements.cpython-312.pyc +0 -0
  35. pyegeria/commands/cat/__pycache__/list_tech_types.cpython-312.pyc +0 -0
  36. pyegeria/commands/cat/__pycache__/list_terms.cpython-312.pyc +0 -0
  37. pyegeria/commands/cat/__pycache__/list_todos.cpython-312.pyc +0 -0
  38. pyegeria/commands/cat/__pycache__/list_user_ids.cpython-312.pyc +0 -0
  39. pyegeria/commands/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  40. pyegeria/commands/cli/__pycache__/egeria_login_tui.cpython-312.pyc +0 -0
  41. pyegeria/commands/cli/__pycache__/egeria_ops.cpython-312.pyc +0 -0
  42. pyegeria/commands/cli/__pycache__/ops_config.cpython-312.pyc +0 -0
  43. pyegeria/commands/doc/.DS_Store +0 -0
  44. pyegeria/commands/doc/Visual Command Reference/.DS_Store +0 -0
  45. pyegeria/commands/doc/Visual Command Reference/cat/.DS_Store +0 -0
  46. pyegeria/commands/doc/Visual Command Reference/cat/show/.DS_Store +0 -0
  47. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/.DS_Store +0 -0
  48. pyegeria/commands/doc/glossary/.DS_Store +0 -0
  49. pyegeria/commands/doc/glossary/images/.DS_Store +0 -0
  50. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/.DS_Store +0 -0
  51. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store +0 -0
  52. pyegeria/commands/my/__pycache__/__init__.cpython-312.pyc +0 -0
  53. pyegeria/commands/my/__pycache__/list_my_profile.cpython-312.pyc +0 -0
  54. pyegeria/commands/my/__pycache__/list_my_roles.cpython-312.pyc +0 -0
  55. pyegeria/commands/my/__pycache__/monitor_my_todos.cpython-312.pyc +0 -0
  56. pyegeria/commands/my/__pycache__/monitor_open_todos.cpython-312.pyc +0 -0
  57. pyegeria/commands/my/__pycache__/todo_actions.cpython-312.pyc +0 -0
  58. pyegeria/commands/ops/__pycache__/__init__.cpython-312.pyc +0 -0
  59. pyegeria/commands/ops/__pycache__/gov_server_actions.cpython-312.pyc +0 -0
  60. pyegeria/commands/ops/__pycache__/list_archives.cpython-312.pyc +0 -0
  61. pyegeria/commands/ops/__pycache__/list_catalog_targets.cpython-312.pyc +0 -0
  62. pyegeria/commands/ops/__pycache__/load_archive.cpython-312.pyc +0 -0
  63. pyegeria/commands/ops/__pycache__/monitor_engine_activity.cpython-312.pyc +0 -0
  64. pyegeria/commands/ops/__pycache__/monitor_engine_activity_c.cpython-312.pyc +0 -0
  65. pyegeria/commands/ops/__pycache__/monitor_gov_eng_status.cpython-312.pyc +0 -0
  66. pyegeria/commands/ops/__pycache__/monitor_integ_daemon_status.cpython-312.pyc +0 -0
  67. pyegeria/commands/ops/__pycache__/monitor_platform_status.cpython-312.pyc +0 -0
  68. pyegeria/commands/ops/__pycache__/monitor_server_startup.cpython-312.pyc +0 -0
  69. pyegeria/commands/ops/__pycache__/monitor_server_status.cpython-312.pyc +0 -0
  70. pyegeria/commands/ops/__pycache__/refresh_integration_daemon.cpython-312.pyc +0 -0
  71. pyegeria/commands/ops/__pycache__/restart_integration_daemon.cpython-312.pyc +0 -0
  72. pyegeria/commands/ops/__pycache__/table_integ_daemon_status.cpython-312.pyc +0 -0
  73. pyegeria/commands/tech/__pycache__/__init__.cpython-312.pyc +0 -0
  74. pyegeria/commands/tech/__pycache__/get_element_info.cpython-312.pyc +0 -0
  75. pyegeria/commands/tech/__pycache__/get_guid_info.cpython-312.pyc +0 -0
  76. pyegeria/commands/tech/__pycache__/get_tech_details.cpython-312.pyc +0 -0
  77. pyegeria/commands/tech/__pycache__/get_tech_type_template.cpython-312.pyc +0 -0
  78. pyegeria/commands/tech/__pycache__/list_anchored_elements.cpython-312.pyc +0 -0
  79. pyegeria/commands/tech/__pycache__/list_asset_types.cpython-312.pyc +0 -0
  80. pyegeria/commands/tech/__pycache__/list_elements_by_property_value.cpython-312.pyc +0 -0
  81. pyegeria/commands/tech/__pycache__/list_elements_for_classification.cpython-312.pyc +0 -0
  82. pyegeria/commands/tech/__pycache__/list_gov_action_processes.cpython-312.pyc +0 -0
  83. pyegeria/commands/tech/__pycache__/list_registered_services.cpython-312.pyc +0 -0
  84. pyegeria/commands/tech/__pycache__/list_related_specification.cpython-312.pyc +0 -0
  85. pyegeria/commands/tech/__pycache__/list_relationship_types.cpython-312.pyc +0 -0
  86. pyegeria/commands/tech/__pycache__/list_relationships.cpython-312.pyc +0 -0
  87. pyegeria/commands/tech/__pycache__/list_tech_templates.cpython-312.pyc +0 -0
  88. pyegeria/commands/tech/__pycache__/list_valid_metadata_values.cpython-312.pyc +0 -0
  89. pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Subject Onboarding.mmd +0 -49
  90. pyegeria/commands/tech/work/mermaid_graphs/Employee Expense Payment.mmd +0 -40
  91. pyegeria/commands/tech/work/mermaid_graphs/New Drug Product Information Distribution.mmd +0 -55
  92. pyegeria/commands/tech/work/mermaid_graphs/New Employee Onboarding.mmd +0 -52
  93. pyegeria/commands/tech/work/mermaid_graphs/Personalized Treatment Ordering.mmd +0 -57
  94. pyegeria/commands/tech/work/mermaid_graphs/{{displayName}}.mmd +0 -29
  95. /pyegeria/commands/tech/{list_isolution_blueprints.py → list_solution_blueprints.py} +0 -0
  96. /pyegeria/commands/tech/{list_isolution_blueprints2.py → list_solution_blueprints2.py} +0 -0
  97. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dev1.dist-info}/LICENSE +0 -0
  98. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dev1.dist-info}/WHEEL +0 -0
  99. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dev1.dist-info}/entry_points.txt +0 -0
@@ -46,7 +46,7 @@ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
46
46
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
47
47
  EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
48
48
  EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
49
- EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "./work/mermaid_graphs")
49
+ EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
50
50
 
51
51
  def supply_chain_viewer(
52
52
  search_string: str,
@@ -99,10 +99,11 @@ def supply_chain_viewer(
99
99
  sc_mermaid = sc.get("mermaidGraph",'---')
100
100
  if sc_mermaid != '---':
101
101
  link = save_mermaid_graph(sc_name, sc_mermaid, EGERIA_MERMAID_FOLDER )
102
- sc_mermaid_link = f"[link=file://:{link}]file://:{link}[/link])"
102
+ sc_mermaid_link = f"file://:{link}"
103
+ # print("Visit my [link=https://www.willmcgugan.com]blog[/link]!")
103
104
  # sc_scope = Text(f"{sc_scope}\n\t\t/\n{sc_mermaid_link}")
104
- sc_scope = Text(f"{sc_scope}\n\t\t/\n{sc_mermaid_link}", style="underline")
105
- sc_scope.stylize("link " + sc_mermaid_link)
105
+ sc_scope = Text(f"{sc_scope}\n\t\t/\n[link={sc_mermaid_link}]{sc_mermaid_link}[/link]!", style="underline")
106
+ # sc_scope.stylize("link =" + sc_mermaid_link)
106
107
 
107
108
  table.add_row(sc_name, sc_unique_name, sc_purpose_str, sc_scope, sc_desc)
108
109
 
@@ -0,0 +1,135 @@
1
+
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
52
+ %%{init: {"flowchart": {"htmlLabels": false}} }%%
53
+
54
+ 39a035f0-3b2b-45fe-adb8-ee8a19581f6a@{ shape: flip-tri, label: "*Information Supply Chain*
55
+ **Clinical Trial Subject Onboarding**"}
56
+ 8a979a84-6175-4595-bf1b-6d16392a4fea@{ shape: text, label: "*Description*
57
+ **Delivering the data necessary to add a person as a subject in a clinical trial.**"}
58
+ 39a035f0-3b2b-45fe-adb8-ee8a19581f6a~~~8a979a84-6175-4595-bf1b-6d16392a4fea
59
+ 9f334ebf-ea2d-495e-8b8b-b425fbe75697@{ shape: text, label: "*Purpose*
60
+ **Ensure patient subject is aware of the process and potential risks in participation.**"}
61
+ 8a979a84-6175-4595-bf1b-6d16392a4fea~~~9f334ebf-ea2d-495e-8b8b-b425fbe75697
62
+ 85b23480-45fa-4c6a-b03b-f0d91a1d4575@{ shape: text, label: "*Purpose*
63
+ **Ensure patient subject has given permission for Coco Pharmaceuticals to acquire, store and process their personal data needed for the clinical trial.**"}
64
+ 9f334ebf-ea2d-495e-8b8b-b425fbe75697~~~85b23480-45fa-4c6a-b03b-f0d91a1d4575
65
+ a57f263d-2c84-4e3d-af13-406a341f7f84@{ shape: text, label: "*Purpose*
66
+ **Ensure incoming data is validated and catalogued.**"}
67
+ 85b23480-45fa-4c6a-b03b-f0d91a1d4575~~~a57f263d-2c84-4e3d-af13-406a341f7f84
68
+ 8fe0c8b8-a55a-49c2-a8fa-0ccc47dbd6bf@{ shape: text, label: "*Purpose*
69
+ **Ensure data and process owners are informed of key milestones and issues requiring attention.**"}
70
+ a57f263d-2c84-4e3d-af13-406a341f7f84~~~8fe0c8b8-a55a-49c2-a8fa-0ccc47dbd6bf
71
+ 6dda1385-a508-4b64-adf4-839a011bfe33@{ shape: text, label: "*Purpose*
72
+ **Ensure the process of data capture and validation is transparent and auditable.**"}
73
+ 8fe0c8b8-a55a-49c2-a8fa-0ccc47dbd6bf~~~6dda1385-a508-4b64-adf4-839a011bfe33
74
+ style 39a035f0-3b2b-45fe-adb8-ee8a19581f6a color:#FFFFFF, fill:#004563, stroke:#b7c0c7
75
+ style 85b23480-45fa-4c6a-b03b-f0d91a1d4575 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
76
+ style 6dda1385-a508-4b64-adf4-839a011bfe33 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
77
+ style 8a979a84-6175-4595-bf1b-6d16392a4fea color:#000000, fill:#F9F7ED, stroke:#b7c0c7
78
+ style a57f263d-2c84-4e3d-af13-406a341f7f84 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
79
+ style 8fe0c8b8-a55a-49c2-a8fa-0ccc47dbd6bf color:#000000, fill:#F9F7ED, stroke:#b7c0c7
80
+ style 9f334ebf-ea2d-495e-8b8b-b425fbe75697 color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
81
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
82
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
83
+
84
+ var doPan = false;
85
+ var eventsHandler;
86
+ var panZoom;
87
+ var mousepos;
88
+
89
+ eventsHandler = {
90
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
91
+
92
+ , mouseDownHandler: function (ev) {
93
+ if (event.target.className == "[object SVGAnimatedString]") {
94
+ doPan = true;
95
+ mousepos = {x: ev.clientX, y: ev.clientY}
96
+ }
97
+ ;
98
+ }
99
+
100
+ , mouseMoveHandler: function (ev) {
101
+ if (doPan) {
102
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
103
+ mousepos = {x: ev.clientX, y: ev.clientY};
104
+ window.getSelection().removeAllRanges();
105
+ }
106
+ }
107
+
108
+ , mouseUpHandler: function (ev) {
109
+ doPan = false;
110
+ }
111
+
112
+ , init: function (options) {
113
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
114
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
115
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
116
+ }
117
+
118
+ , destroy: function (options) {
119
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
120
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
121
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
122
+ }
123
+ }
124
+ panZoom = svgPanZoom('#mySvgId', {
125
+ zoomEnabled: true
126
+ , controlIconsEnabled: true
127
+ , fit: 1
128
+ , center: 1
129
+ , customEventsHandler: eventsHandler
130
+ })
131
+ };
132
+ await drawDiagram();
133
+ </script>
134
+ </body>
135
+
@@ -1,40 +1,79 @@
1
1
 
2
- <!DOCTYPE html>
3
- <html>
4
- <head>
5
- <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
6
- </head>
7
- <body>
8
- <div class="mermaid">
9
- ---
10
- title: Information Supply Chain - Clinical Trial Treatment Validation [1f71e403-1187-4f03-a1dd-ae7dc105f06f]
11
- ---
12
- flowchart TD
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
13
52
  %%{init: {"flowchart": {"htmlLabels": false}} }%%
14
53
 
15
54
  1f71e403-1187-4f03-a1dd-ae7dc105f06f@{ shape: flip-tri, label: "*Information Supply Chain*
16
55
  **Clinical Trial Treatment Validation**"}
17
- ca5c1980-a6e1-4c48-af90-d4aed6314aaf@{ shape: text, label: "*Description*
56
+ 3341af94-352a-40e0-ad6e-e2a1cc84da4f@{ shape: text, label: "*Description*
18
57
  **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.**"}
19
- 1f71e403-1187-4f03-a1dd-ae7dc105f06f~~~ca5c1980-a6e1-4c48-af90-d4aed6314aaf
20
- 278d35bd-0f2f-4f54-931f-6006d550360c@{ shape: text, label: "*Purpose*
58
+ 1f71e403-1187-4f03-a1dd-ae7dc105f06f~~~3341af94-352a-40e0-ad6e-e2a1cc84da4f
59
+ 4a162932-19da-408c-9130-90f4feee4c8b@{ shape: text, label: "*Purpose*
21
60
  **Deliver patient measurement data from hospitals to data scientists in research.**"}
22
- ca5c1980-a6e1-4c48-af90-d4aed6314aaf~~~278d35bd-0f2f-4f54-931f-6006d550360c
23
- db603776-6152-49b0-9141-c16024c2268e@{ shape: text, label: "*Purpose*
61
+ 3341af94-352a-40e0-ad6e-e2a1cc84da4f~~~4a162932-19da-408c-9130-90f4feee4c8b
62
+ 95071c88-d98d-486c-9843-f85d1577b689@{ shape: text, label: "*Purpose*
24
63
  **Ensure incoming data is only from certified hospitals.**"}
25
- 278d35bd-0f2f-4f54-931f-6006d550360c~~~db603776-6152-49b0-9141-c16024c2268e
26
- 0b74a538-54cd-4a20-9b6b-88d970361a69@{ shape: text, label: "*Purpose*
64
+ 4a162932-19da-408c-9130-90f4feee4c8b~~~95071c88-d98d-486c-9843-f85d1577b689
65
+ 6cb2b6ca-c44a-4c93-9a9d-96c83e448788@{ shape: text, label: "*Purpose*
27
66
  **Ensure incoming data is validated and catalogued.**"}
28
- db603776-6152-49b0-9141-c16024c2268e~~~0b74a538-54cd-4a20-9b6b-88d970361a69
29
- f3d86b7b-0c4e-4f86-83f9-76680539091a@{ shape: text, label: "*Purpose*
67
+ 95071c88-d98d-486c-9843-f85d1577b689~~~6cb2b6ca-c44a-4c93-9a9d-96c83e448788
68
+ 045474d5-f1f8-43da-85b1-4bd00091e9f4@{ shape: text, label: "*Purpose*
30
69
  **Ensure data and process owners are informed of key milestones and issues requiring attention.**"}
31
- 0b74a538-54cd-4a20-9b6b-88d970361a69~~~f3d86b7b-0c4e-4f86-83f9-76680539091a
32
- 1a0c1a1c-c8e9-4556-9c47-537a07c230a6@{ shape: text, label: "*Purpose*
70
+ 6cb2b6ca-c44a-4c93-9a9d-96c83e448788~~~045474d5-f1f8-43da-85b1-4bd00091e9f4
71
+ 82a5a15e-6d6f-427f-9f2b-d004d464a278@{ shape: text, label: "*Purpose*
33
72
  **Ensure the process of data capture and treatment validation is transparent and auditable.**"}
34
- f3d86b7b-0c4e-4f86-83f9-76680539091a~~~1a0c1a1c-c8e9-4556-9c47-537a07c230a6
35
- 4b99798c-9918-47f0-9bad-3737cab1e07c@{ shape: text, label: "*Purpose*
73
+ 045474d5-f1f8-43da-85b1-4bd00091e9f4~~~82a5a15e-6d6f-427f-9f2b-d004d464a278
74
+ 458c1261-3cd8-4005-8cee-a86944ada370@{ shape: text, label: "*Purpose*
36
75
  **Ensure the treatment validation report is complete and regulatory compliant.**"}
37
- 1a0c1a1c-c8e9-4556-9c47-537a07c230a6~~~4b99798c-9918-47f0-9bad-3737cab1e07c
76
+ 82a5a15e-6d6f-427f-9f2b-d004d464a278~~~458c1261-3cd8-4005-8cee-a86944ada370
38
77
  38635d38-f728-400d-a8ec-7c26e68b7c0f@{ shape: hex, label: "*Information Supply Chain Segment*
39
78
  **Weekly Measurements Onboarding**"}
40
79
  38635d38-f728-400d-a8ec-7c26e68b7c0f-->|"capture and catalog,
@@ -95,14 +134,13 @@ d48f579f-76d3-4c49-b1b4-575f5645a9d0-->|"retrieve patient data,
95
134
  **SolutionComponent:Treatment Assessment Report Validation and Delivery:V1.0**"}
96
135
  72a86eec-9734-4bc0-babb-4fec0aa7c9ff-->|"publish results,
97
136
  [Solution Linking Wire]"|0bf2547c-937c-41b6-814f-6284849271a1
98
- style 278d35bd-0f2f-4f54-931f-6006d550360c color:#000000, fill:#F9F7ED, stroke:#b7c0c7
99
137
  style 48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
100
- style ca5c1980-a6e1-4c48-af90-d4aed6314aaf color:#000000, fill:#F9F7ED, stroke:#b7c0c7
101
- style f3d86b7b-0c4e-4f86-83f9-76680539091a color:#000000, fill:#F9F7ED, stroke:#b7c0c7
102
- style 0b74a538-54cd-4a20-9b6b-88d970361a69 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
138
+ style 6cb2b6ca-c44a-4c93-9a9d-96c83e448788 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
103
139
  style e4303326-e418-4f77-b8e7-fd5d34717594 color:#004563, fill:#b7c0c7, stroke:#004563
140
+ style 4a162932-19da-408c-9130-90f4feee4c8b color:#000000, fill:#F9F7ED, stroke:#b7c0c7
104
141
  style 4fc47e60-f1b5-469c-b666-e1f4570e749f color:#004563, fill:#b7c0c7, stroke:#004563
105
- style 1a0c1a1c-c8e9-4556-9c47-537a07c230a6 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
142
+ style 045474d5-f1f8-43da-85b1-4bd00091e9f4 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
143
+ style 458c1261-3cd8-4005-8cee-a86944ada370 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
106
144
  style 7f5dca65-50b4-4103-9ac7-3a406a09047a color:#FFFFFF, fill:#838cc7, stroke:#3079ab
107
145
  style ee2bb773-e630-4cf9-bdf1-7c2dd64fe4ec color:#FFFFFF, fill:#838cc7, stroke:#3079ab
108
146
  style a5d4d638-6836-47e5-99d0-fdcde637e13f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
@@ -111,19 +149,67 @@ style 38635d38-f728-400d-a8ec-7c26e68b7c0f color:#004563, fill:#b7c0c7, stroke:#
111
149
  style 7edca02c-e726-4570-815c-280bdf5498b9 color:#004563, fill:#b7c0c7, stroke:#004563
112
150
  style b5c8da4c-f925-4cf1-8294-e43cd2c1a584 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
113
151
  style 0bf2547c-937c-41b6-814f-6284849271a1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
152
+ style 95071c88-d98d-486c-9843-f85d1577b689 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
114
153
  style d48f579f-76d3-4c49-b1b4-575f5645a9d0 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
115
154
  style 1f71e403-1187-4f03-a1dd-ae7dc105f06f color:#FFFFFF, fill:#004563, stroke:#b7c0c7
116
- style db603776-6152-49b0-9141-c16024c2268e color:#000000, fill:#F9F7ED, stroke:#b7c0c7
155
+ style 82a5a15e-6d6f-427f-9f2b-d004d464a278 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
156
+ style 3341af94-352a-40e0-ad6e-e2a1cc84da4f color:#000000, fill:#F9F7ED, stroke:#b7c0c7
117
157
  style 04ae768e-3816-47bc-bddb-c9ae25018684 color:#004563, fill:#b7c0c7, stroke:#004563
118
158
  style 26c07ca4-3b8e-484b-812b-36c1ace4b275 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
119
- style 4b99798c-9918-47f0-9bad-3737cab1e07c color:#000000, fill:#F9F7ED, stroke:#b7c0c7
120
159
  style 1c150d6e-30cf-481c-9afb-3b06c9c9e78f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
121
- style 07705e15-efff-4f80-8992-f04ac85e0ef1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
122
-
123
- </div>
124
-
125
- <script>
126
- mermaid.initialize({startOnLoad:true});
127
- </script>
128
- </body>
129
- </html>
160
+ style 07705e15-efff-4f80-8992-f04ac85e0ef1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab`;
161
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
162
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
163
+
164
+ var doPan = false;
165
+ var eventsHandler;
166
+ var panZoom;
167
+ var mousepos;
168
+
169
+ eventsHandler = {
170
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
171
+
172
+ , mouseDownHandler: function (ev) {
173
+ if (event.target.className == "[object SVGAnimatedString]") {
174
+ doPan = true;
175
+ mousepos = {x: ev.clientX, y: ev.clientY}
176
+ }
177
+ ;
178
+ }
179
+
180
+ , mouseMoveHandler: function (ev) {
181
+ if (doPan) {
182
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
183
+ mousepos = {x: ev.clientX, y: ev.clientY};
184
+ window.getSelection().removeAllRanges();
185
+ }
186
+ }
187
+
188
+ , mouseUpHandler: function (ev) {
189
+ doPan = false;
190
+ }
191
+
192
+ , init: function (options) {
193
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
194
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
195
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
196
+ }
197
+
198
+ , destroy: function (options) {
199
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
200
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
201
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
202
+ }
203
+ }
204
+ panZoom = svgPanZoom('#mySvgId', {
205
+ zoomEnabled: true
206
+ , controlIconsEnabled: true
207
+ , fit: 1
208
+ , center: 1
209
+ , customEventsHandler: eventsHandler
210
+ })
211
+ };
212
+ await drawDiagram();
213
+ </script>
214
+ </body>
215
+
@@ -0,0 +1,126 @@
1
+
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
52
+ %%{init: {"flowchart": {"htmlLabels": false}} }%%
53
+
54
+ 79d1d83f-6a37-4c32-bf3f-eb8b4358027c@{ shape: flip-tri, label: "*Information Supply Chain*
55
+ **Employee Expense Payment**"}
56
+ ecd2e143-1430-46df-a366-4643a073f846@{ shape: text, label: "*Description*
57
+ **Managing the collection of expense data, its approval and the subsequent payment authorization flows.**"}
58
+ 79d1d83f-6a37-4c32-bf3f-eb8b4358027c~~~ecd2e143-1430-46df-a366-4643a073f846
59
+ 7a30a560-1ce4-46c0-805b-d1d717d4880c@{ shape: text, label: "*Purpose*
60
+ **Ensure employees are reimbursed for their expenses in a timely manner.**"}
61
+ ecd2e143-1430-46df-a366-4643a073f846~~~7a30a560-1ce4-46c0-805b-d1d717d4880c
62
+ 88c42780-6fb1-49e2-a584-8af90cdc7728@{ shape: rounded, label: "*Software Server*
63
+ **System:coco-hrim**"}
64
+ ad8eab54-c2f7-494d-82d0-bf5985e5a58d@{ shape: rounded, label: "*Software Server*
65
+ **System:coco-expenses**"}
66
+ 88c42780-6fb1-49e2-a584-8af90cdc7728-->|"payment authorization [Data Flow]"|ad8eab54-c2f7-494d-82d0-bf5985e5a58d
67
+ style 7a30a560-1ce4-46c0-805b-d1d717d4880c color:#000000, fill:#F9F7ED, stroke:#b7c0c7
68
+ style ad8eab54-c2f7-494d-82d0-bf5985e5a58d color:#000000, fill:#e0ab18, stroke:#004563
69
+ style 79d1d83f-6a37-4c32-bf3f-eb8b4358027c color:#FFFFFF, fill:#004563, stroke:#b7c0c7
70
+ style 88c42780-6fb1-49e2-a584-8af90cdc7728 color:#000000, fill:#e0ab18, stroke:#004563
71
+ style ecd2e143-1430-46df-a366-4643a073f846 color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
72
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
73
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
74
+
75
+ var doPan = false;
76
+ var eventsHandler;
77
+ var panZoom;
78
+ var mousepos;
79
+
80
+ eventsHandler = {
81
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
82
+
83
+ , mouseDownHandler: function (ev) {
84
+ if (event.target.className == "[object SVGAnimatedString]") {
85
+ doPan = true;
86
+ mousepos = {x: ev.clientX, y: ev.clientY}
87
+ }
88
+ ;
89
+ }
90
+
91
+ , mouseMoveHandler: function (ev) {
92
+ if (doPan) {
93
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
94
+ mousepos = {x: ev.clientX, y: ev.clientY};
95
+ window.getSelection().removeAllRanges();
96
+ }
97
+ }
98
+
99
+ , mouseUpHandler: function (ev) {
100
+ doPan = false;
101
+ }
102
+
103
+ , init: function (options) {
104
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
105
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
106
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
107
+ }
108
+
109
+ , destroy: function (options) {
110
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
111
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
112
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
113
+ }
114
+ }
115
+ panZoom = svgPanZoom('#mySvgId', {
116
+ zoomEnabled: true
117
+ , controlIconsEnabled: true
118
+ , fit: 1
119
+ , center: 1
120
+ , customEventsHandler: eventsHandler
121
+ })
122
+ };
123
+ await drawDiagram();
124
+ </script>
125
+ </body>
126
+
@@ -0,0 +1,141 @@
1
+
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
52
+ %%{init: {"flowchart": {"htmlLabels": false}} }%%
53
+
54
+ b0491fd4-6324-4ed8-9a1c-7cbd9892e21b@{ shape: flip-tri, label: "*Information Supply Chain*
55
+ **New Drug Product Information Distribution**"}
56
+ 82a0934c-9b54-4c72-bb95-ddbe85ec02a1@{ shape: text, label: "*Description*
57
+ **Managing the distribution of information about a new product.**"}
58
+ b0491fd4-6324-4ed8-9a1c-7cbd9892e21b~~~82a0934c-9b54-4c72-bb95-ddbe85ec02a1
59
+ f12a37d0-2228-459a-b30b-1d8444b6caea@{ shape: text, label: "*Purpose*
60
+ **Ensuring information about a new product is distributed to all of the appropriate system so that it is visible for ordering, manufacturing and invoicing.**"}
61
+ 82a0934c-9b54-4c72-bb95-ddbe85ec02a1~~~f12a37d0-2228-459a-b30b-1d8444b6caea
62
+ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4@{ shape: rounded, label: "*Software Server*
63
+ **System:MFCTRL9482**"}
64
+ 987df321-d940-4ce5-9ae1-8258736f0445@{ shape: rounded, label: "*Software Server*
65
+ **System:KCDEPOT01**"}
66
+ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4-->|"order ready [Data Flow]"|987df321-d940-4ce5-9ae1-8258736f0445
67
+ afefd870-5616-4f35-a557-774b88b96bef@{ shape: rounded, label: "*Software Server*
68
+ **System:EDDEPOT01**"}
69
+ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4-->|"order ready [Data Flow]"|afefd870-5616-4f35-a557-774b88b96bef
70
+ c7b1467a-dea2-4288-95e5-8e1bc3ab2ed3@{ shape: rounded, label: "*Software Server*
71
+ **System:WINCHDEPOT01**"}
72
+ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4-->|"order ready [Data Flow]"|c7b1467a-dea2-4288-95e5-8e1bc3ab2ed3
73
+ dd424526-24e9-4a10-a575-0700dfb8743a@{ shape: rounded, label: "*Software Server*
74
+ **System:cocoProducts**"}
75
+ a2e43afa-386a-4acd-ba1d-7773b368c34a@{ shape: rounded, label: "*Software Server*
76
+ **System:globalCRM**"}
77
+ dd424526-24e9-4a10-a575-0700dfb8743a-->|"new product offering [Data Flow]"|a2e43afa-386a-4acd-ba1d-7773b368c34a
78
+ style b0491fd4-6324-4ed8-9a1c-7cbd9892e21b color:#FFFFFF, fill:#004563, stroke:#b7c0c7
79
+ style c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4 color:#000000, fill:#e0ab18, stroke:#004563
80
+ style a2e43afa-386a-4acd-ba1d-7773b368c34a color:#000000, fill:#e0ab18, stroke:#004563
81
+ style 987df321-d940-4ce5-9ae1-8258736f0445 color:#000000, fill:#e0ab18, stroke:#004563
82
+ style c7b1467a-dea2-4288-95e5-8e1bc3ab2ed3 color:#000000, fill:#e0ab18, stroke:#004563
83
+ style f12a37d0-2228-459a-b30b-1d8444b6caea color:#000000, fill:#F9F7ED, stroke:#b7c0c7
84
+ style dd424526-24e9-4a10-a575-0700dfb8743a color:#000000, fill:#e0ab18, stroke:#004563
85
+ style afefd870-5616-4f35-a557-774b88b96bef color:#000000, fill:#e0ab18, stroke:#004563
86
+ style 82a0934c-9b54-4c72-bb95-ddbe85ec02a1 color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
87
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
88
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
89
+
90
+ var doPan = false;
91
+ var eventsHandler;
92
+ var panZoom;
93
+ var mousepos;
94
+
95
+ eventsHandler = {
96
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
97
+
98
+ , mouseDownHandler: function (ev) {
99
+ if (event.target.className == "[object SVGAnimatedString]") {
100
+ doPan = true;
101
+ mousepos = {x: ev.clientX, y: ev.clientY}
102
+ }
103
+ ;
104
+ }
105
+
106
+ , mouseMoveHandler: function (ev) {
107
+ if (doPan) {
108
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
109
+ mousepos = {x: ev.clientX, y: ev.clientY};
110
+ window.getSelection().removeAllRanges();
111
+ }
112
+ }
113
+
114
+ , mouseUpHandler: function (ev) {
115
+ doPan = false;
116
+ }
117
+
118
+ , init: function (options) {
119
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
120
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
121
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
122
+ }
123
+
124
+ , destroy: function (options) {
125
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
126
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
127
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
128
+ }
129
+ }
130
+ panZoom = svgPanZoom('#mySvgId', {
131
+ zoomEnabled: true
132
+ , controlIconsEnabled: true
133
+ , fit: 1
134
+ , center: 1
135
+ , customEventsHandler: eventsHandler
136
+ })
137
+ };
138
+ await drawDiagram();
139
+ </script>
140
+ </body>
141
+