Test QuickGV: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
Tag: Reverted
 
(20 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


= MQTT =
= 認知負荷 =


<quickgv name="hygeai_center" theme="warm">
<quickmmd name="cognitive-load">
CLINIC_WIZ [label="診所小幫手"];
mindmap
DICOM_UPLOADER [label="影像上傳程式"];
  ((認知負荷))
CHECK_UPLOADER [label="檢驗報告上傳程式"];
    ((熟能生巧<br>有效認知負荷<br>germane))
HIX_BUSINESS [label="HIX 營業活動"];
      --> 數學解題突破盲腸
HIX_BACKGROUND [label="HIX 排程工作"];
      --> 游泳換氣成功了
      --> 繞口令不吃螺絲
    ((錯綜複雜<br>內在認知負荷<br>intrinsic))
      --> 教材太難, 越級打怪
      --> 基礎知識沒學好
    ((莫名其妙<br>外在認知負荷<br>extraneous))
      --> 教材太多雜訊
      --> 光罰寫就寫不完
</quickmmd>


subgraph_cluster HYGE {
= Colored Edge =
CENTER [label="營運中心"];
 
LOG_MONITOR [label="即時監測"];
<quickmmd name="colored-edge">
LOG_REVIEW [label="事後分析"];
flowchart TD
}
  A1(["👩🏻‍💻 Human"])
  A2(["🤖 Agent"])
 
  B1("HTTP<br>(Fiber v3)")
 
  subgraph backend handlers 
    B2("API handler")
    B3("MCP HTTP")
    B4("Streamable Handler")
    B5("SSE handler")
    B6("MCP Server")
  end
 
  subgraph backend services
    C1(Mermaid to SVG)
    C2(Mermaid to PNG)
    C3(XML Formatter)
  end
 
  subgraph frontend
    B7("Nuxt.js")
  end
 
  subgraph resources
    D1(Mermaid Container<br>yuzutech/kroki-mermaid)
  end
 
  %% human path
  A1 --> B1
  B1 --> |the rest URI| B7
  linkStyle 0,1 stroke:#0000ff,stroke-width:2px
 
  %% agent path
  A2 --> B1
  B1 --> |/mcp or /sse| B3
  linkStyle 2,3 stroke:#00aa00,stroke-width:2px


CLINIC_WIZ -> CENTER;
  %% api path
DICOM_UPLOADER -> CENTER;
  B7 --> |axios| B1
CHECK_UPLOADER -> CENTER;
  B1 --> |/api| B2
HIX_BUSINESS -> CENTER;
  linkStyle 4,5 stroke:#9900cc,stroke-width:2px
HIX_BACKGROUND -> CENTER;
CENTER -> LOG_MONITOR [label="MQTT"];
CENTER -> LOG_REVIEW [label="Restful"];
</quickgv>


= ClinicWiz =
  B3 --> |/mcp| B4
  B3 --> |/sse| B5
  B4 & B5 --> B6
  B6 --> C1 & C2 & C3
  B2 --> D1
  C1 & C2 --> D1
</quickmmd>


<quickgv name="clinicwiz" theme="warm">
= Dish =
rankdir=TB;
<quickmmd name="dish">
mindmap
  A[Dish]
    B1[Sauce Dish]
    B2[Shark's Fin Soup Dish]
    B3[Divided Dish]
    B4[Cassesrole Dish]
</quickmmd>


subgraph cluster_formain_cs {
= MMD =
  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 {
<quickmmd name="testmmd">
  label="WPF";
flowchart LR
  L [label="ReadTest.cs"];
    Root("規則動詞變化<br>(play)")
}


subgraph cluster_cshistaskfactory_cs {
    Root --> Past("過去")
  label="Queue Mechanism";
    Root --> Pres("現在")
  D [label="TaskFactory\n(CsHisTask/CsHisTaskFactory.cs)"];
    Root --> Fut("未來")
  E [label="Task\n(CsHisTask/CsHisTaskFactory.cs)"];
  F [label="StateMachine\n(CsHisStateMachine.cs)"];
}


subgraph cluster_hal {
    Past --> P1("過去普通: played")
  label="Hardware Control";
    Past --> P2("過去進行: was/were playing")
  G [label="CsHisHAL.cs"];
    Past --> P3("過去完成: had played")
  H [label="CsHis.dll\n(CsHis99Native.cs)"];
    Past --> P4("過去被動: was/were played")
  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;
    Pres --> R1("現在普通: play / plays")
F -> J;
    Pres --> R2("現在進行: am/is/are playing")
F -> K;
    Pres --> R3("現在完成: have/has played")
L -> D;
    Pres --> R4("現在被動: am/is/are played")


H -> R1;
    Fut --> F1("未來普通: will play")
H -> R2;
    Fut --> F2("未來進行: will be playing")
H -> R3;
    Fut --> F3("未來完成: will have played")
J -> R2;
    Fut --> F4("未來被動: will be played")
J -> R3;
</quickmmd>
</quickgv>


= WebSocket Service =
= WebSocket Service =
Line 100: Line 136:
s:mh -> iq [color="#ff0000"];
s:mh -> iq [color="#ff0000"];
s:mw -> iq [color="#ff0000",dir="back"];
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>
</quickgv>



Latest revision as of 10:44, 16 September 2026

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

認知負荷

Colored Edge

Dish

MMD

WebSocket Service

testflow

test

Crawling Flow

GDS

Geomancer

Sandbox