pyegeria 5.3.3.13.dev4__py3-none-any.whl → 5.3.3.14.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.
@@ -80,17 +80,21 @@ def render_mermaid(mermaid_code):
80
80
  def parse_mermaid_code(mermaid_code):
81
81
  parts = mermaid_code.split('---', maxsplit=3)
82
82
  if len(parts) == 3:
83
- title = parts[1].strip()
83
+ full_title = parts[1].strip()
84
+ title = full_title.split('[')[0]
85
+ guid = full_title.split('[')[1].split(']')[0]
84
86
  mermaid_code = parts[2].strip()
85
87
  else:
86
88
  title = "No Title"
87
- return title, mermaid_code
89
+ guid = "No GUID"
90
+ return title, guid, mermaid_code
88
91
 
89
92
  def construct_mermaid_html(mermaid_str: str) -> str:
90
93
  """Function to display a HTML code in a Jupyter notebook"""
91
- title, mermaid_code = parse_mermaid_code(mermaid_str)
94
+ title_label, guid, mermaid_code = parse_mermaid_code(mermaid_str)
92
95
 
93
96
  html_section1 = """
97
+ <!DOCTYPE html>
94
98
  <html>
95
99
  <head>
96
100
  <style type="text/css">
@@ -109,8 +113,11 @@ def construct_mermaid_html(mermaid_str: str) -> str:
109
113
  </style>
110
114
  </head>
111
115
  """
112
- html_section2 = """"
113
- <title>{title}</title>
116
+ html_section2 = f"""
117
+ <title>{title_label}</title>
118
+ <h3 style="text-align: center;">{title_label}</h3>
119
+ GUID : {guid}
120
+
114
121
  """
115
122
  html_section3 = """
116
123
  <body>
@@ -147,7 +154,7 @@ def construct_mermaid_html(mermaid_str: str) -> str:
147
154
  const graphDefinition = `
148
155
  """
149
156
 
150
- html_section4 = """`;
157
+ html_section4 = r"""`;
151
158
  const {svg} = await mermaid.render('mySvgId', graphDefinition);
152
159
  element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
153
160
 
@@ -281,7 +288,7 @@ def save_mermaid_graph(title, mermaid_str, folder:str = EGERIA_MERMAID_FOLDER):
281
288
  const graphDefinition = `
282
289
  """
283
290
 
284
- html_postfix = """`;
291
+ html_postfix = r"""`;
285
292
  const {svg} = await mermaid.render('mySvgId', graphDefinition);
286
293
  element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
287
294
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyegeria
3
- Version: 5.3.3.13.dev4
3
+ Version: 5.3.3.14.dev1
4
4
  Summary: A python client for Egeria
5
5
  License: Apache 2.0
6
6
  Keywords: egeria,metadata,governance
@@ -208,15 +208,6 @@ pyegeria/commands/tech/list_solution_blueprints2.py,sha256=xY5JuUET3DHV_VWsdSIbt
208
208
  pyegeria/commands/tech/list_tech_templates.py,sha256=FvJ2qAHo7yoCdd9LnZtvWjd3DQEvD0P5wfz5-D5qjmw,14153
209
209
  pyegeria/commands/tech/list_valid_metadata_values.py,sha256=Mv4eSHCR_pR0llWRrpMIzNKA6_QEr8qccAv4NQv4dg0,6340
210
210
  pyegeria/commands/tech/table_tech_templates.py,sha256=kv9VWhZ6pEN-1vEjo6IprliwFTjumjdVV3IWQB2HzI4,9503
211
- pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Subject Onboarding.html,sha256=16mToSOApkMKXs5mEfsNXRM2A-24oOaU9LnufP1Z6yk,6072
212
- pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Treatment Validation.html,sha256=PVxW_d_w0f-QmAbLqAyY5NDu9kQECFnbQNZVw00do_A,11715
213
- pyegeria/commands/tech/work/mermaid_graphs/Employee Expense Payment.html,sha256=9qNTzdZvDzk0vkYQIBthlwt8qO5nOElolXbcqi94wgk,5240
214
- pyegeria/commands/tech/work/mermaid_graphs/New Drug Product Information Distribution.html,sha256=vDAS_UNqPIUKl4ow0csi-t7m7oXqZQHGcIcBgJB9g38,6375
215
- pyegeria/commands/tech/work/mermaid_graphs/New Employee Onboarding.html,sha256=QH4KJhtQxHlzabgGwGQpDNlSfSbTANm-FMYcGz0MPLg,6141
216
- pyegeria/commands/tech/work/mermaid_graphs/Personalized Treatment Ordering.html,sha256=MBG_SglrzeNXPqRXmgPVaptVIEn4VdIX_myNFMd9Hlg,6550
217
- pyegeria/commands/tech/work/mermaid_graphs/Physical Inventory Tracking.html,sha256=_0PgeTxnLpqHsD5lv-gzzYs1Qf_VktTgGhqKebMH8-c,9484
218
- pyegeria/commands/tech/work/mermaid_graphs/Sustainability Reporting.html,sha256=HqfjagnJziZT-e1jBWP2_4ceodtdq1MbNe-OYeOIEjU,10718
219
- pyegeria/commands/tech/work/mermaid_graphs/{{displayName}}.html,sha256=byK9OrB-elPwlF0QstNC7uzeI0vpv92Dxbnx_1N2xkc,4336
220
211
  pyegeria/commands/tech/x_list_related_elements.py,sha256=viUFq_G52CvLO_RJsgN8fkLeIF89Tb8Gvl-nNfeDPSI,5871
221
212
  pyegeria/core_omag_server_config.py,sha256=ej0oNpGelSTTm2oERS86LpgT9O9E5CZFbUm2Iek8f1E,97764
222
213
  pyegeria/create_tech_guid_lists.py,sha256=mI__-i9U01emyqQMdPK2miealwQNiZfB23iiFGmrH0g,4640
@@ -229,7 +220,7 @@ pyegeria/feedback_manager_omvs.py,sha256=B66e3ZCaC_dirb0mcb2Nz3PYh2ZKsoMAYNOb3eu
229
220
  pyegeria/full_omag_server_config.py,sha256=k3fUfopAFAE3OKkFR7zZPiki_FYj6j2xQ4oD2SVaefQ,47350
230
221
  pyegeria/glossary_browser_omvs.py,sha256=NcitYaZJqwVODBO5zBtWpXPNUJJ3DKzEbRaOFSAyUlg,93554
231
222
  pyegeria/glossary_manager_omvs.py,sha256=tBjoHrrHJLasXoeQSpW-KpF3vEQdN_GR3jfcceTjt_c,132444
232
- pyegeria/mermaid_utilities.py,sha256=dJgkRl_uG3qT0wID6QadKrcFjIxscFcZ-PspYTX3Pf8,17788
223
+ pyegeria/mermaid_utilities.py,sha256=m8v6Wog16RwMa8OPZ95Q5dSY_qeXrK-iHDF2CIeaWjA,18041
233
224
  pyegeria/metadata_explorer_omvs.py,sha256=XBg6q-JXOA8UYsT85nlpBVe4EQ6jxwj70MvE7tkVvH0,86905
234
225
  pyegeria/my_profile_omvs.py,sha256=DyECbUFEcgokrIbzdMMNljC3bqfqKGXAF2wZEpzvRYs,34666
235
226
  pyegeria/platform_services.py,sha256=CJIOYIFEbcIGwdWlApAQcXxZTsdrhFtpJcm4O3p7dG0,41646
@@ -242,8 +233,8 @@ pyegeria/template_manager_omvs.py,sha256=Sw5xsQAhy7a48xFCg59mg9_nqyhawoS9v4WyF-P
242
233
  pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
243
234
  pyegeria/valid_metadata_omvs.py,sha256=cCt5CCLv6BdzCu90n68r_PkG_PEQJjrtwCxio7K6yko,65034
244
235
  pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
245
- pyegeria-5.3.3.13.dev4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
246
- pyegeria-5.3.3.13.dev4.dist-info/METADATA,sha256=W9zH0QLLrGpsrxHbB7HZVp3xMnfjrP1CwSk7BBS8eK8,2741
247
- pyegeria-5.3.3.13.dev4.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
248
- pyegeria-5.3.3.13.dev4.dist-info/entry_points.txt,sha256=cLnCR81Pm2c35hDDg7BOlQ9Mtvx5wofuvwXHnL1bGis,5956
249
- pyegeria-5.3.3.13.dev4.dist-info/RECORD,,
236
+ pyegeria-5.3.3.14.dev1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
237
+ pyegeria-5.3.3.14.dev1.dist-info/METADATA,sha256=vRdys4w-1LV3F3rvqJa3PDBhijCUJpHm7WQJnMa4A_A,2741
238
+ pyegeria-5.3.3.14.dev1.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
239
+ pyegeria-5.3.3.14.dev1.dist-info/entry_points.txt,sha256=cLnCR81Pm2c35hDDg7BOlQ9Mtvx5wofuvwXHnL1bGis,5956
240
+ pyegeria-5.3.3.14.dev1.dist-info/RECORD,,
@@ -1,135 +0,0 @@
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
- b5691fb0-7569-43c1-bd4c-11198a11e733@{ 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~~~b5691fb0-7569-43c1-bd4c-11198a11e733
59
- 2338ad35-78eb-4920-8003-d522b3cecf6b@{ shape: text, label: "*Purpose*
60
- **Ensure patient subject is aware of the process and potential risks in participation.**"}
61
- b5691fb0-7569-43c1-bd4c-11198a11e733~~~2338ad35-78eb-4920-8003-d522b3cecf6b
62
- 9f146a62-59f4-482b-8384-48b20ca76fa3@{ 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
- 2338ad35-78eb-4920-8003-d522b3cecf6b~~~9f146a62-59f4-482b-8384-48b20ca76fa3
65
- bd1d332d-6e86-4953-8f83-b0a03b5e738c@{ shape: text, label: "*Purpose*
66
- **Ensure incoming data is validated and catalogued.**"}
67
- 9f146a62-59f4-482b-8384-48b20ca76fa3~~~bd1d332d-6e86-4953-8f83-b0a03b5e738c
68
- b58f5eba-9cf8-492d-bc86-966611bc7603@{ shape: text, label: "*Purpose*
69
- **Ensure data and process owners are informed of key milestones and issues requiring attention.**"}
70
- bd1d332d-6e86-4953-8f83-b0a03b5e738c~~~b58f5eba-9cf8-492d-bc86-966611bc7603
71
- 1fd73811-9f3d-4599-9a22-1300e0931eff@{ shape: text, label: "*Purpose*
72
- **Ensure the process of data capture and validation is transparent and auditable.**"}
73
- b58f5eba-9cf8-492d-bc86-966611bc7603~~~1fd73811-9f3d-4599-9a22-1300e0931eff
74
- style 39a035f0-3b2b-45fe-adb8-ee8a19581f6a color:#FFFFFF, fill:#004563, stroke:#b7c0c7
75
- style 1fd73811-9f3d-4599-9a22-1300e0931eff color:#000000, fill:#F9F7ED, stroke:#b7c0c7
76
- style b5691fb0-7569-43c1-bd4c-11198a11e733 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
77
- style 9f146a62-59f4-482b-8384-48b20ca76fa3 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
78
- style 2338ad35-78eb-4920-8003-d522b3cecf6b color:#000000, fill:#F9F7ED, stroke:#b7c0c7
79
- style b58f5eba-9cf8-492d-bc86-966611bc7603 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
80
- style bd1d332d-6e86-4953-8f83-b0a03b5e738c 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,215 +0,0 @@
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
- 1f71e403-1187-4f03-a1dd-ae7dc105f06f@{ shape: flip-tri, label: "*Information Supply Chain*
55
- **Clinical Trial Treatment Validation**"}
56
- c5135483-a30c-4dfc-8729-54d306b0d2cc@{ shape: text, label: "*Description*
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.**"}
58
- 1f71e403-1187-4f03-a1dd-ae7dc105f06f~~~c5135483-a30c-4dfc-8729-54d306b0d2cc
59
- 8033331a-7342-4a66-b85a-0aa1bd35b203@{ shape: text, label: "*Purpose*
60
- **Deliver patient measurement data from hospitals to data scientists in research.**"}
61
- c5135483-a30c-4dfc-8729-54d306b0d2cc~~~8033331a-7342-4a66-b85a-0aa1bd35b203
62
- 25ca6519-ef83-4789-a8a9-ef08e8d195a0@{ shape: text, label: "*Purpose*
63
- **Ensure incoming data is only from certified hospitals.**"}
64
- 8033331a-7342-4a66-b85a-0aa1bd35b203~~~25ca6519-ef83-4789-a8a9-ef08e8d195a0
65
- 68c30b1a-d716-4a34-b656-7b53f21e0d38@{ shape: text, label: "*Purpose*
66
- **Ensure incoming data is validated and catalogued.**"}
67
- 25ca6519-ef83-4789-a8a9-ef08e8d195a0~~~68c30b1a-d716-4a34-b656-7b53f21e0d38
68
- 2e6b651b-1235-411d-87f7-5bbb25e91057@{ shape: text, label: "*Purpose*
69
- **Ensure data and process owners are informed of key milestones and issues requiring attention.**"}
70
- 68c30b1a-d716-4a34-b656-7b53f21e0d38~~~2e6b651b-1235-411d-87f7-5bbb25e91057
71
- ded87798-758f-4cc2-895f-95467009fe41@{ shape: text, label: "*Purpose*
72
- **Ensure the process of data capture and treatment validation is transparent and auditable.**"}
73
- 2e6b651b-1235-411d-87f7-5bbb25e91057~~~ded87798-758f-4cc2-895f-95467009fe41
74
- baf2f019-afff-487d-9a40-4fcdce8f8b84@{ shape: text, label: "*Purpose*
75
- **Ensure the treatment validation report is complete and regulatory compliant.**"}
76
- ded87798-758f-4cc2-895f-95467009fe41~~~baf2f019-afff-487d-9a40-4fcdce8f8b84
77
- 38635d38-f728-400d-a8ec-7c26e68b7c0f@{ shape: hex, label: "*Information Supply Chain Segment*
78
- **Weekly Measurements Onboarding**"}
79
- 38635d38-f728-400d-a8ec-7c26e68b7c0f-->|"capture and catalog,
80
- [Information Supply Chain Link]"|7edca02c-e726-4570-815c-280bdf5498b9
81
- e4303326-e418-4f77-b8e7-fd5d34717594@{ shape: hex, label: "*Information Supply Chain Segment*
82
- **Assess Treatment under Trial**"}
83
- e4303326-e418-4f77-b8e7-fd5d34717594-->|"publish results,
84
- [Information Supply Chain Link]"|4fc47e60-f1b5-469c-b666-e1f4570e749f
85
- 04ae768e-3816-47bc-bddb-c9ae25018684@{ shape: hex, label: "*Information Supply Chain Segment*
86
- **Hospital Delivers Patient Weekly Readings**"}
87
- 04ae768e-3816-47bc-bddb-c9ae25018684-->|"publish,
88
- [Information Supply Chain Link]"|38635d38-f728-400d-a8ec-7c26e68b7c0f
89
- 4fc47e60-f1b5-469c-b666-e1f4570e749f@{ shape: hex, label: "*Information Supply Chain Segment*
90
- **Deliver Treatment Assessment Report**"}
91
- 7edca02c-e726-4570-815c-280bdf5498b9@{ shape: hex, label: "*Information Supply Chain Segment*
92
- **Data Lake to Sandbox**"}
93
- 7edca02c-e726-4570-815c-280bdf5498b9-->|"assemble,
94
- [Information Supply Chain Link]"|e4303326-e418-4f77-b8e7-fd5d34717594
95
- 1c150d6e-30cf-481c-9afb-3b06c9c9e78f@{ shape: rect, label: "*Solution Component*
96
- **SolutionComponent:Hospital Landing Area Folder:V1.0**"}
97
- 7f5dca65-50b4-4103-9ac7-3a406a09047a@{ shape: rect, label: "*Solution Component*
98
- **SolutionComponent:Weekly Measurements Onboarding Pipeline:V1.0**"}
99
- 07705e15-efff-4f80-8992-f04ac85e0ef1@{ shape: rect, label: "*Solution Component*
100
- **SolutionComponent:Landing Folder Cataloguer:V1.0**"}
101
- a5d4d638-6836-47e5-99d0-fdcde637e13f@{ shape: rect, label: "*Solution Component*
102
- **SolutionComponent:Weekly Measurements Data Lake Folder:V1.0**"}
103
- 1c150d6e-30cf-481c-9afb-3b06c9c9e78f-->|"detect new files,
104
- [Solution Linking Wire]"|07705e15-efff-4f80-8992-f04ac85e0ef1
105
- ee2bb773-e630-4cf9-bdf1-7c2dd64fe4ec@{ shape: rect, label: "*Solution Component*
106
- **SolutionComponent:Hospital Processes:V1.0**"}
107
- ee2bb773-e630-4cf9-bdf1-7c2dd64fe4ec-->|"publish,
108
- [Solution Linking Wire]"|1c150d6e-30cf-481c-9afb-3b06c9c9e78f
109
- 07705e15-efff-4f80-8992-f04ac85e0ef1-->|"request onboarding,
110
- [Solution Linking Wire]"|7f5dca65-50b4-4103-9ac7-3a406a09047a
111
- 7f5dca65-50b4-4103-9ac7-3a406a09047a-->|"save new files,
112
- [Solution Linking Wire]"|a5d4d638-6836-47e5-99d0-fdcde637e13f
113
- 26c07ca4-3b8e-484b-812b-36c1ace4b275@{ shape: rect, label: "*Solution Component*
114
- **SolutionComponent:Populate Sandbox:V1.0**"}
115
- a5d4d638-6836-47e5-99d0-fdcde637e13f-->|"read certified files,
116
- [Solution Linking Wire]"|26c07ca4-3b8e-484b-812b-36c1ace4b275
117
- 48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5@{ shape: rect, label: "*Solution Component*
118
- **SolutionComponent:Treatment Efficacy Evidence:V1.0**"}
119
- b5c8da4c-f925-4cf1-8294-e43cd2c1a584@{ shape: rect, label: "*Solution Component*
120
- **SolutionComponent:Analyse Patient Data:V1.0**"}
121
- d48f579f-76d3-4c49-b1b4-575f5645a9d0@{ shape: rect, label: "*Solution Component*
122
- **SolutionComponent:Treatment Validation Sandbox:V1.0**"}
123
- 72a86eec-9734-4bc0-babb-4fec0aa7c9ff@{ shape: rect, label: "*Solution Component*
124
- **SolutionComponent:Assemble Treatment Assessment Report:V1.0**"}
125
- 48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5-->|"retrieve evidence,
126
- [Solution Linking Wire]"|72a86eec-9734-4bc0-babb-4fec0aa7c9ff
127
- b5c8da4c-f925-4cf1-8294-e43cd2c1a584-->|"publish results,
128
- [Solution Linking Wire]"|48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5
129
- d48f579f-76d3-4c49-b1b4-575f5645a9d0-->|"retrieve patient data,
130
- [Solution Linking Wire]"|b5c8da4c-f925-4cf1-8294-e43cd2c1a584
131
- 26c07ca4-3b8e-484b-812b-36c1ace4b275-->|"write patient measurements,
132
- [Solution Linking Wire]"|d48f579f-76d3-4c49-b1b4-575f5645a9d0
133
- 0bf2547c-937c-41b6-814f-6284849271a1@{ shape: rect, label: "*Solution Component*
134
- **SolutionComponent:Treatment Assessment Report Validation and Delivery:V1.0**"}
135
- 72a86eec-9734-4bc0-babb-4fec0aa7c9ff-->|"publish results,
136
- [Solution Linking Wire]"|0bf2547c-937c-41b6-814f-6284849271a1
137
- style 48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
138
- style e4303326-e418-4f77-b8e7-fd5d34717594 color:#004563, fill:#b7c0c7, stroke:#004563
139
- 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
- style 7f5dca65-50b4-4103-9ac7-3a406a09047a color:#FFFFFF, fill:#838cc7, stroke:#3079ab
143
- 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
- style a5d4d638-6836-47e5-99d0-fdcde637e13f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
146
- 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
- style 38635d38-f728-400d-a8ec-7c26e68b7c0f color:#004563, fill:#b7c0c7, stroke:#004563
149
- style 7edca02c-e726-4570-815c-280bdf5498b9 color:#004563, fill:#b7c0c7, stroke:#004563
150
- style b5c8da4c-f925-4cf1-8294-e43cd2c1a584 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
151
- style 0bf2547c-937c-41b6-814f-6284849271a1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
152
- style d48f579f-76d3-4c49-b1b4-575f5645a9d0 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
153
- style 1f71e403-1187-4f03-a1dd-ae7dc105f06f color:#FFFFFF, fill:#004563, stroke:#b7c0c7
154
- style 25ca6519-ef83-4789-a8a9-ef08e8d195a0 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
155
- style 8033331a-7342-4a66-b85a-0aa1bd35b203 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
156
- style 04ae768e-3816-47bc-bddb-c9ae25018684 color:#004563, fill:#b7c0c7, stroke:#004563
157
- style 68c30b1a-d716-4a34-b656-7b53f21e0d38 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
158
- style 26c07ca4-3b8e-484b-812b-36c1ace4b275 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
159
- style 1c150d6e-30cf-481c-9afb-3b06c9c9e78f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
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
-
@@ -1,126 +0,0 @@
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
- 36905eb3-ebc3-4f78-92bd-81ab7f04b0c8@{ 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~~~36905eb3-ebc3-4f78-92bd-81ab7f04b0c8
59
- 64023ff1-9b61-4655-aa0c-6310961f6d19@{ shape: text, label: "*Purpose*
60
- **Ensure employees are reimbursed for their expenses in a timely manner.**"}
61
- 36905eb3-ebc3-4f78-92bd-81ab7f04b0c8~~~64023ff1-9b61-4655-aa0c-6310961f6d19
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 ad8eab54-c2f7-494d-82d0-bf5985e5a58d color:#000000, fill:#e0ab18, stroke:#004563
68
- style 79d1d83f-6a37-4c32-bf3f-eb8b4358027c color:#FFFFFF, fill:#004563, stroke:#b7c0c7
69
- style 64023ff1-9b61-4655-aa0c-6310961f6d19 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
70
- style 88c42780-6fb1-49e2-a584-8af90cdc7728 color:#000000, fill:#e0ab18, stroke:#004563
71
- style 36905eb3-ebc3-4f78-92bd-81ab7f04b0c8 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
-