Test QuickGV: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
 
(68 intermediate revisions by the same user not shown)
Line 1: Line 1:
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf


= WebSocket Service =
= MQTT =
<quickgv name="123" theme="warm" usage="ram">
 
subgraph cluster_clients {
<quickgv name="hygeai_center" theme="warm">
  constraint=false;
CLINIC_WIZ [label="診所小幫手"];
  c1[label="var ws = new WebSocket('/foo')"];
DICOM_UPLOADER [label="影像上傳程式"];
   c2[label="ws.onopen = function (ev)"];
CHECK_UPLOADER [label="檢驗報告上傳程式"];
   c3[label="ws.onmessage = function (ev)"];
HIX_BUSINESS [label="HIX 營業活動"];
   c4[label="ws.send()"];
HIX_BACKGROUND [label="HIX 排程工作"];
 
subgraph cluster_HYGE {
CENTER [label="營運中心"];
LOG_MONITOR [label="即時監測"];
LOG_REVIEW [label="事後分析"];
}
 
CLINIC_WIZ -> CENTER;
DICOM_UPLOADER -> CENTER;
CHECK_UPLOADER -> CENTER;
HIX_BUSINESS -> CENTER;
HIX_BACKGROUND -> CENTER;
CENTER -> LOG_MONITOR [label="MQTT"];
CENTER -> LOG_REVIEW [label="Restful"];
</quickgv>
 
= ClinicWiz =
 
<quickgv name="clinicwiz" theme="warm">
rankdir=TB;
 
subgraph cluster_formain_cs {
  label="HTTP";
   A [label="GenHTTP http://localhost:8168\n(FormMain.cs)"];
   B [label="Functional Handler\n(FormMain.cs)"];
   C [label="Functions\n(RestfulMethods.cs)"];
}
}


s[label="Service Unit | <req> Request Handler | <push> Push Handler"];
subgraph cluster_form {
  label="WPF";
  L [label="ReadTest.cs"];
}


c1 -> s:req;
subgraph cluster_cshistaskfactory_cs {
s:req -> c2;
  label="Queue Mechanism";
s:push -> c3;
  D [label="TaskFactory\n(CsHisTask/CsHisTaskFactory.cs)"];
  E [label="Task\n(CsHisTask/CsHisTaskFactory.cs)"];
  F [label="StateMachine\n(CsHisStateMachine.cs)"];
}


/*
subgraph cluster_hal {
subgraph cluster_services {
   label="Hardware Control";
   s1[label="cast service"];
  G [label="CsHisHAL.cs"];
   s2[label="monitor service"];
  H [label="CsHis.dll\n(CsHis99Native.cs)"];
   s3[label="simple service"];
  J [label="PCSC API"];
  K [label="SetupAPI"];
  R1 [label="HC3000"];
   R2 [label="DWR18"];
   R3 [label="PCSC Reader"];
}
}


subgraph cluster_queue {
A -> B -> C -> D -> E -> F -> G -> H;
   q1[label="outbound queue"];
F -> J;
   q2[label="inbound queue"];
F -> K;
L -> D;
 
H -> R1;
H -> R2;
H -> R3;
J -> R2;
J -> R3;
</quickgv>
 
= WebSocket Service =
 
<quickgv name="123" theme="warm" usage="ram">
subgraph cluster_client {
   label="WebSocket Client"
  c1[label="var ws = new WebSocket('/foo')"];
  c2[label="ws.onerror = function (ev) ..."];
  c3[label="ws.onopen = function (ev) ..."];
  c4[label="ws.onmessage = function (ev) ..."];
   c5[label="ws.send()"];
}
}


subgraph cluster_worker {
subgraph cluster_server {
   w1[label="cast worker"];
   label="";
   w2[label="handler worker", constraint=false];
  s[label="Service Unit | <rh> Request Handler | <ph> Push Handler | <pw> Push Worker | <mh> Message Handler | <mw> Message Worker"];
   iq[label="Inbound Queue"];
  oq[label="Outbound Queue"];
}
}


c1 -> w1 -> q1 -> s1;
c1 -> s:rh [color="#ff0000"];
s2 -> q2 -> w2 -> c2;
c2 -> s:rh [color="#0000ff",dir="back"];
*/
c3 -> s:rh [color="#0000ff",dir="back"];
c4 -> s:ph [color="#0000ff",dir="back"];
s:ph -> oq [color="#0000ff",dir="back"];
s:pw -> oq [color="#0000ff"];
c5 -> s:mh [color="#ff0000"];
s:mh -> iq [color="#ff0000"];
s:mw -> iq [color="#ff0000",dir="back"];
</quickgv>
</quickgv>



Latest revision as of 05:40, 23 October 2024

See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf

MQTT

ClinicWiz

WebSocket Service

建議線路 gen1

建議線路 gen2

A

testflow

test

Crawling Flow

GDS

Geomancer

Sandbox