Test QuickGV: Difference between revisions
Jump to navigation
Jump to search
(→MQTT) |
|||
| (223 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf | |||
= MQTT = | |||
<quickgv name="hygeai_center" theme="warm"> | |||
CLINIC_WIZ [label="診所小幫手"]; | |||
DICOM_UPLOADER [label="影像上傳程式"]; | |||
CHECK_UPLOADER [label="檢驗報告上傳程式"]; | |||
HIX_BUSINESS [label="HIX 營業活動"]; | |||
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)"]; | |||
} | |||
subgraph cluster_form { | |||
label="WPF"; | |||
L [label="ReadTest.cs"]; | |||
} | |||
subgraph cluster_cshistaskfactory_cs { | |||
label="Queue Mechanism"; | |||
D [label="TaskFactory\n(CsHisTask/CsHisTaskFactory.cs)"]; | |||
E [label="Task\n(CsHisTask/CsHisTaskFactory.cs)"]; | |||
F [label="StateMachine\n(CsHisStateMachine.cs)"]; | |||
} | |||
subgraph cluster_hal { | |||
label="Hardware Control"; | |||
G [label="CsHisHAL.cs"]; | |||
H [label="CsHis.dll\n(CsHis99Native.cs)"]; | |||
J [label="PCSC API"]; | |||
K [label="SetupAPI"]; | |||
R1 [label="HC3000"]; | |||
R2 [label="DWR18"]; | |||
R3 [label="PCSC Reader"]; | |||
} | |||
A -> B -> C -> D -> E -> F -> G -> H; | |||
F -> J; | |||
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_server { | |||
label=""; | |||
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 -> s:rh [color="#ff0000"]; | |||
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> | |||
= 建議線路 gen1 = | |||
<quickgv name="topology" theme="warm"> | |||
subgraph cluster_clinic { | |||
label="診間網路"; | |||
his[label="HIS Server"]; | |||
nas[label="NAS"]; | |||
opd[label="診間"]; | |||
pt[label="復健"]; | |||
reg[label="掛號"]; | |||
tv[label="衛教"]; | |||
prn[label="印表機"]; | |||
sw[label="辦公室交換器"]; | |||
fw[label="防火牆"]; | |||
wan1[label="固定IP線路"]; | |||
wan2[label="健保局 VPN"]; | |||
cross[label="跨院病歷"]; | |||
{opd pt reg tv his nas prn} -> sw; | |||
sw -> fw; | |||
fw -> {wan1 wan2}; | |||
wan1 -> cross [dir="back", color="#ff0000"]; | |||
} | |||
// 開放網路 | |||
subgraph cluster_open { | |||
label="開放網路"; | |||
gu[label="新光保全"]; | |||
mo[label="監視系統"]; | |||
pc1[label="外網專用PC"]; | |||
rt[label="IP分享器"]; | |||
wan3[label="浮動IP線路"]; | |||
mobile[label="監視系統 App"]; | |||
hacker[label="駭客 or 殭屍電腦"]; | |||
{pc1 gu mo} -> rt -> wan3; | |||
wan3 -> {mobile hacker} [label="tcp:3880", dir="back", color="#ff0000"]; | |||
} | |||
</quickgv> | |||
= 建議線路 gen2 = | |||
<quickgv name="topology_gen2" theme="warm"> | |||
subgraph cluster_clinic { | |||
label="診間網路"; | |||
his[label="HIS Server"]; | |||
nas[label="NAS"]; | |||
opd[label="診間"]; | |||
pt[label="復健"]; | |||
reg[label="掛號"]; | |||
tv[label="衛教"]; | |||
prn[label="印表機"]; | |||
fw[label="防火牆"]; | |||
wan1[label="固定IP線路"]; | |||
wan2[label="健保局 VPN"]; | |||
cross[label="跨院病歷"]; | |||
subgraph cluster_switch { | |||
label="網路交換器"; | |||
vlan1[label="診間區虛擬網路"]; | |||
vlan2[label="敏感區虛擬網路"]; | |||
} | |||
{opd pt reg tv prn} -> vlan1; | |||
{his nas} -> vlan2; | |||
{vlan1 vlan2} -> fw; | |||
fw -> {wan1 wan2}; | |||
wan1 -> cross [dir="back", color="#ff0000"]; | |||
} | |||
// 開放網路 | |||
subgraph cluster_open { | |||
label="開放網路"; | |||
gu[label="新光保全"]; | |||
mo[label="監視系統"]; | |||
pc1[label="外網專用PC"]; | |||
rt[label="IP分享器"]; | |||
wan3[label="浮動IP線路"]; | |||
mobile[label="監視系統 App\n(僅限特定地點存取)"]; | |||
{pc1 gu mo} -> rt -> wan3; | |||
wan3 -> mobile [label="tcp:3880", dir="back", color="#ff0000"]; | |||
} | |||
</quickgv> | |||
= A = | |||
<quickgv name="Gff" theme="warm"> | |||
rankdir=TB; | |||
A [label="驗證銷售權"]; | |||
B [label="驗證輸入值格式"]; | |||
C [label="驗證報價是否存在"]; | |||
D [label="產生 GDS 訂單"]; | |||
E [label="產生供應商訂單"]; | |||
A -> B -> C -> D -> E; | |||
</quickgv> | |||
= testflow = | |||
<quickgv name="G51" theme="warm"> | |||
label="五環境佈署流程"; | |||
rankdir=TB; | |||
A [label="Local\n開發新功能"]; | |||
B [label="Development\n測試模擬交易"]; | |||
C [label="Staging\n測試真實交易"]; | |||
D [label="Sandbox\n供分銷商測試"]; | |||
E [label="Production\n實際營運"]; | |||
A -> B; | |||
B -> C; | |||
B -> D; | |||
C -> E; | |||
</quickgv> | |||
<quickgv name="G52" theme="warm"> | |||
label="三環境佈署流程"; | |||
rankdir=TB; | |||
A [label="Local\n開發新功能"]; | |||
B [label="Sandbox\n升級新功能"]; | |||
C [label="Production\n升級新功能"]; | |||
A -> B -> C; | |||
</quickgv> | |||
test | |||
= Crawling Flow = | |||
<quickgv name="G4" theme="warm"> | |||
rankdir=TB; | |||
A1 [label="Website"]; | |||
A2 [label="Proxy Server"]; | |||
A3 [label="Daily Cache"]; | |||
A4 [label="Hash Cache"]; | |||
B [label="Requests Session"]; | |||
C [label="Crawler"]; | |||
D1 [label="BeautifulSoup\n(HTML)"]; | |||
D2 [label="json\n(JSON)"]; | |||
D3 [label="Pandas\n(CSV)"]; | |||
D4 [label="Custom Datasource", fillcolor="#ffffff:#00c000"]; | |||
E1 [label="Handler", fillcolor="#ffffff:#00c000"]; | |||
E2 [label="Models", fillcolor="#ffffff:#00c000"]; | |||
F1 [label="SQLAlchemy"]; | |||
F2 [label="Console"]; | |||
F3 [label="GeoJSON"]; | |||
F4 [label="Elastic Search", fillcolor="#ffffff:#aaaaaa"]; | |||
G1 [label="SQLite"]; | |||
G2 [label="PostgreSQL", fillcolor="#ffffff:#aaaaaa"]; | |||
G3 [label="MySQL", fillcolor="#ffffff:#aaaaaa"]; | |||
G4 [label="MongoDB", fillcolor="#ffffff:#aaaaaa"]; | |||
A1 -> A2; | |||
{A1 A2} -> B; | |||
{B A3 A4} -> C; | |||
C -> {D1 D2 D3 D4} -> E1 -> {F1 F2 F3 F4}; | |||
E2 -> F1; | |||
F1 -> {G1 G2 G3 G4}; | |||
</quickgv> | |||
= GDS = | |||
<quickgv name="G3" theme="warm"> | |||
rankdir=TB; | |||
A [label="[Product]\nAquaduck Tours Surfers Paradise"]; | |||
B1 [label="[Product Type]\n11:15am Tour"]; | |||
B2 [label="[Product Type]\n01:45pm Tour"]; | |||
B3 [label="[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)"]; | |||
C1 [label="[Product Option & Date]\nAdult @ 2019-07-03\n38.49 AUD"]; | |||
C2 [label="[Product Option & Date]\nChild (2-16yrs) @ 2019-07-03\n19.99 AUD"]; | |||
C3 [label="[Product Option & Date]\nStudent @ 2019-07-11\n25.49 AUD"]; | |||
A -> {B1 B2 B3}; | |||
B1 -> {C1 C2 C3}; | |||
</quickgv> | |||
= Geomancer = | = Geomancer = | ||
<quickgv name="G2" theme="warm"> | <quickgv name="G2" theme="warm"> | ||
| Line 42: | Line 333: | ||
D [label="Convert to land-polygons-taiwan.osm"]; | D [label="Convert to land-polygons-taiwan.osm"]; | ||
E [label="Convert to taiwan-merged-YYYYMMDD.osm.pbf"]; | E [label="Convert to taiwan-merged-YYYYMMDD.osm.pbf"]; | ||
F [label="Convert to taiwan-merged-YYYYMMDD.map"]; | F [label="Convert to taiwan-merged-YYYYMMDD.map "]; | ||
B -> C [ | B -> C [xlabel="ogr2ogr (gdal)"]; | ||
C -> D [ | C -> D [xlabel="python3 shp2osm.py"]; | ||
{A D} -> E [ | {A D} -> E [xlabel="osmosis"]; | ||
E -> F [ | E -> F [xlabel="osmosis with mapsforge writer"]; | ||
</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