测试
This commit is contained in:
374
爱维宠物医院管理系统-序列图.drawio
Normal file
374
爱维宠物医院管理系统-序列图.drawio
Normal file
@@ -0,0 +1,374 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2026-02-26T21:30:00.000Z" agent="OpenCode" version="24.7.17" type="device">
|
||||||
|
<diagram id="seq-customer-appointment" name="图4.5 顾客预约序列图">
|
||||||
|
<mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
|
||||||
|
<!-- 参与者:人物图标 -->
|
||||||
|
<mxCell id="actor1" value="顾客" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="80" y="40" width="30" height="55" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 参与者:系统组件矩形 -->
|
||||||
|
<mxCell id="obj2" value="系统前台" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="260" y="50" width="120" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="obj3" value="后台系统" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="540" y="50" width="120" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="obj4" value="数据库" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="820" y="50" width="120" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 生命线(虚线) -->
|
||||||
|
<mxCell id="ll1" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="95" y="95" as="sourcePoint" />
|
||||||
|
<mxPoint x="95" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ll2" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="320" y="90" as="sourcePoint" />
|
||||||
|
<mxPoint x="320" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ll3" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="600" y="90" as="sourcePoint" />
|
||||||
|
<mxPoint x="600" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ll4" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="880" y="90" as="sourcePoint" />
|
||||||
|
<mxPoint x="880" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 激活条 -->
|
||||||
|
<mxCell id="act1" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="88" y="130" width="14" height="760" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="act2" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="313" y="150" width="14" height="720" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="act3" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="593" y="280" width="14" height="460" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="act4" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="873" y="360" width="14" height="300" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息1:顾客 → 前台:进入预约页面 -->
|
||||||
|
<mxCell id="m1" value="进入预约页面" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry x="-0.2" relative="1" as="geometry">
|
||||||
|
<mxPoint x="102" y="160" as="sourcePoint" />
|
||||||
|
<mxPoint x="313" y="160" as="targetPoint" />
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息2:前台 → 顾客:提示选择宠物与时段 -->
|
||||||
|
<mxCell id="m2" value="提示选择宠物与时段" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="313" y="210" as="sourcePoint" />
|
||||||
|
<mxPoint x="102" y="210" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息3:顾客 → 前台:填写预约信息并提交 -->
|
||||||
|
<mxCell id="m3" value="填写预约信息并提交" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="102" y="270" as="sourcePoint" />
|
||||||
|
<mxPoint x="313" y="270" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息4:前台 → 后台:提交预约请求 -->
|
||||||
|
<mxCell id="m4" value="提交预约请求" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="327" y="310" as="sourcePoint" />
|
||||||
|
<mxPoint x="593" y="310" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息5:后台 → 数据库:校验宠物与时段可用性 -->
|
||||||
|
<mxCell id="m5" value="校验宠物与时段可用性" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="607" y="380" as="sourcePoint" />
|
||||||
|
<mxPoint x="873" y="380" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息6:数据库 → 后台:返回校验结果 -->
|
||||||
|
<mxCell id="m6" value="返回校验结果" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="873" y="430" as="sourcePoint" />
|
||||||
|
<mxPoint x="607" y="430" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- alt 片段框 -->
|
||||||
|
<mxCell id="alt_frame" value="" style="shape=mxgraph.sysml.package;html=1;overflow=fill;whiteSpace=wrap;strokeColor=#000000;fillColor=none;align=left;verticalAlign=top;spacingLeft=5;tabWidth=120;tabHeight=20;tabPosition=left;fontSize=12;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="60" y="470" width="870" height="390" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="alt_label" value="alt" style="text;html=1;align=left;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#000000;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="65" y="472" width="40" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="alt_guard1" value="[校验通过]" style="text;html=1;align=left;verticalAlign=middle;fontStyle=0;fontSize=11;fontColor=#000000;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="70" y="498" width="100" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 成功路径 -->
|
||||||
|
<!-- 消息7:后台 → 数据库:保存预约记录 -->
|
||||||
|
<mxCell id="m7" value="保存预约记录" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="607" y="530" as="sourcePoint" />
|
||||||
|
<mxPoint x="873" y="530" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息8:数据库 → 后台:返回保存结果 -->
|
||||||
|
<mxCell id="m8" value="返回保存结果" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="873" y="580" as="sourcePoint" />
|
||||||
|
<mxPoint x="607" y="580" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息9:后台 → 前台:返回预约成功 -->
|
||||||
|
<mxCell id="m9" value="返回预约成功" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="593" y="620" as="sourcePoint" />
|
||||||
|
<mxPoint x="327" y="620" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息10:前台 → 顾客:显示预约成功 -->
|
||||||
|
<mxCell id="m10" value="显示预约成功" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="313" y="660" as="sourcePoint" />
|
||||||
|
<mxPoint x="102" y="660" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 分隔虚线 -->
|
||||||
|
<mxCell id="alt_divider" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="60" y="700" as="sourcePoint" />
|
||||||
|
<mxPoint x="930" y="700" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="alt_guard2" value="[校验失败]" style="text;html=1;align=left;verticalAlign=middle;fontStyle=0;fontSize=11;fontColor=#000000;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="70" y="708" width="100" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 失败路径 -->
|
||||||
|
<!-- 消息11:后台 → 前台:返回错误码 -->
|
||||||
|
<mxCell id="m11" value="返回错误码" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="593" y="750" as="sourcePoint" />
|
||||||
|
<mxPoint x="327" y="750" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息12:前台 → 顾客:提示预约失败信息 -->
|
||||||
|
<mxCell id="m12" value="提示预约失败信息" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="313" y="800" as="sourcePoint" />
|
||||||
|
<mxPoint x="102" y="800" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
|
||||||
|
<diagram id="seq-admin-user-management" name="图4.6 管理员账号管理序列图">
|
||||||
|
<mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
|
||||||
|
<!-- 参与者:人物图标 -->
|
||||||
|
<mxCell id="actor1" value="管理员" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="80" y="40" width="30" height="55" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 参与者:系统组件矩形 -->
|
||||||
|
<mxCell id="obj2" value="系统前台" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="260" y="50" width="120" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="obj3" value="后台系统" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="540" y="50" width="120" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="obj4" value="数据库" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="820" y="50" width="120" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 生命线(虚线) -->
|
||||||
|
<mxCell id="ll1" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="95" y="95" as="sourcePoint" />
|
||||||
|
<mxPoint x="95" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ll2" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="320" y="90" as="sourcePoint" />
|
||||||
|
<mxPoint x="320" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ll3" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="600" y="90" as="sourcePoint" />
|
||||||
|
<mxPoint x="600" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ll4" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="880" y="90" as="sourcePoint" />
|
||||||
|
<mxPoint x="880" y="920" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 激活条 -->
|
||||||
|
<mxCell id="act1" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="88" y="130" width="14" height="760" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="act2" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="313" y="150" width="14" height="720" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="act3" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="593" y="280" width="14" height="460" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="act4" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="873" y="360" width="14" height="300" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息1:管理员 → 前台:进入用户管理页面 -->
|
||||||
|
<mxCell id="m1" value="进入用户管理页面" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="102" y="160" as="sourcePoint" />
|
||||||
|
<mxPoint x="313" y="160" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息2:前台 → 管理员:展示用户列表 -->
|
||||||
|
<mxCell id="m2" value="展示用户列表" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="313" y="210" as="sourcePoint" />
|
||||||
|
<mxPoint x="102" y="210" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息3:管理员 → 前台:选择新增/更新/禁用操作 -->
|
||||||
|
<mxCell id="m3" value="选择新增/更新/禁用操作" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="102" y="270" as="sourcePoint" />
|
||||||
|
<mxPoint x="313" y="270" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息4:前台 → 后台:提交账号管理请求 -->
|
||||||
|
<mxCell id="m4" value="提交账号管理请求" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="327" y="310" as="sourcePoint" />
|
||||||
|
<mxPoint x="593" y="310" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息5:后台 → 数据库:校验管理员权限 -->
|
||||||
|
<mxCell id="m5" value="校验管理员权限" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="607" y="380" as="sourcePoint" />
|
||||||
|
<mxPoint x="873" y="380" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息6:数据库 → 后台:返回权限信息 -->
|
||||||
|
<mxCell id="m6" value="返回权限信息" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="873" y="430" as="sourcePoint" />
|
||||||
|
<mxPoint x="607" y="430" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- alt 片段框 -->
|
||||||
|
<mxCell id="alt_frame" value="" style="shape=mxgraph.sysml.package;html=1;overflow=fill;whiteSpace=wrap;strokeColor=#000000;fillColor=none;align=left;verticalAlign=top;spacingLeft=5;tabWidth=120;tabHeight=20;tabPosition=left;fontSize=12;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="60" y="470" width="870" height="390" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="alt_label" value="alt" style="text;html=1;align=left;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#000000;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="65" y="472" width="40" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="alt_guard1" value="[权限校验通过]" style="text;html=1;align=left;verticalAlign=middle;fontStyle=0;fontSize=11;fontColor=#000000;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="70" y="498" width="120" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 成功路径 -->
|
||||||
|
<!-- 消息7:后台 → 数据库:更新目标用户信息/状态 -->
|
||||||
|
<mxCell id="m7" value="更新目标用户信息/状态" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="607" y="530" as="sourcePoint" />
|
||||||
|
<mxPoint x="873" y="530" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息8:数据库 → 后台:返回更新结果 -->
|
||||||
|
<mxCell id="m8" value="返回更新结果" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="873" y="580" as="sourcePoint" />
|
||||||
|
<mxPoint x="607" y="580" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息9:后台 → 前台:返回操作成功 -->
|
||||||
|
<mxCell id="m9" value="返回操作成功" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="593" y="620" as="sourcePoint" />
|
||||||
|
<mxPoint x="327" y="620" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息10:前台 → 管理员:刷新列表并提示成功 -->
|
||||||
|
<mxCell id="m10" value="刷新列表并提示成功" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="313" y="660" as="sourcePoint" />
|
||||||
|
<mxPoint x="102" y="660" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 分隔虚线 -->
|
||||||
|
<mxCell id="alt_divider" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#000000;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="60" y="700" as="sourcePoint" />
|
||||||
|
<mxPoint x="930" y="700" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="alt_guard2" value="[权限校验失败]" style="text;html=1;align=left;verticalAlign=middle;fontStyle=0;fontSize=11;fontColor=#000000;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="70" y="708" width="120" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 失败路径 -->
|
||||||
|
<!-- 消息11:后台 → 前台:返回错误码 -->
|
||||||
|
<mxCell id="m11" value="返回错误码" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="593" y="750" as="sourcePoint" />
|
||||||
|
<mxPoint x="327" y="750" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
<!-- 消息12:前台 → 管理员:提示操作失败信息 -->
|
||||||
|
<mxCell id="m12" value="提示操作失败信息" style="endArrow=open;endFill=0;dashed=1;html=1;strokeColor=#000000;fontColor=#000000;align=center;" edge="1" parent="1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="313" y="800" as="sourcePoint" />
|
||||||
|
<mxPoint x="102" y="800" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
||||||
251
爱维宠物医院管理系统-第4章功能结构图.drawio
Normal file
251
爱维宠物医院管理系统-第4章功能结构图.drawio
Normal file
@@ -0,0 +1,251 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2026-02-26T20:58:00.000Z" agent="OpenCode" version="24.7.17" type="device">
|
||||||
|
<diagram id="fig4-1-customer" name="图4.1 顾客功能结构图">
|
||||||
|
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2200" pageHeight="1400" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
|
||||||
|
<mxCell id="10" value="顾客功能结构" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="980" y="40" width="220" height="60" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="20" value="账户与安全" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="130" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="21" value="注册登录" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="40" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="22" value="修改密码" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="220" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="23" value="登录认证" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="20" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="24" value="身份保持" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="140" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="25" value="密码校验" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="260" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="30" value="个人中心" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="430" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="31" value="查看个人信息" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="340" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="32" value="修改个人信息" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="520" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="33" value="联系方式维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="360" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="34" value="头像信息维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="520" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="40" value="宠物档案管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="730" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="41" value="新增宠物档案" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="640" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="42" value="编辑宠物档案" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="820" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="43" value="删除宠物档案" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1000" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="44" value="基础信息录入" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="640" y="390" width="160" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="45" value="健康备注维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="820" y="390" width="160" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="50" value="预约管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1130" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="51" value="提交预约" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1040" y="290" width="150" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="52" value="取消预约" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1200" y="290" width="150" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="53" value="查询预约记录" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1360" y="290" width="150" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="54" value="选择宠物与时段" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1040" y="390" width="150" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="55" value="状态跟踪" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1200" y="390" width="150" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="56" value="取消确认" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1360" y="390" width="150" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="60" value="订单与报告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1530" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="61" value="查看订单" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1460" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="62" value="查询报告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1610" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="63" value="订单详情查看" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1460" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="64" value="报告内容浏览" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1610" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="70" value="公告与消息" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1880" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="71" value="查看公告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1810" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="72" value="留言反馈" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1960" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e100" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="20"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="30"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="40"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e103" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="50"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e104" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="60"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e105" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="70"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e110" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="20" target="21"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="20" target="22"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e112" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="21" target="23"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e113" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="21" target="24"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e114" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="22" target="25"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e120" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="31"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="32"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="32" target="33"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="32" target="34"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e130" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="41"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="42"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="43"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="41" target="44"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="42" target="45"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e140" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="51"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e141" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="52"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e142" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="53"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e143" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="51" target="54"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e144" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="53" target="55"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e145" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="52" target="56"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e150" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="61"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e151" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="62"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="61" target="63"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e153" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="62" target="64"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e160" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="70" target="71"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="70" target="72"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
|
||||||
|
<diagram id="fig4-2-doctor" name="图4.2 医生功能结构图">
|
||||||
|
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2200" pageHeight="1400" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
|
||||||
|
<mxCell id="10" value="医生功能结构" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="980" y="40" width="220" height="60" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="20" value="接诊工作台" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="180" y="180" width="190" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="21" value="查看预约" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="90" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="22" value="接诊确认" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="270" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="23" value="创建就诊记录" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="160" y="390" width="180" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="30" value="病历管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="520" y="180" width="190" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="31" value="编辑病历" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="430" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="32" value="查询历史病历" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="610" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="33" value="主诉录入" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="390" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="34" value="检查结果录入" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="520" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="35" value="诊断结论录入" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="650" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="40" value="处方管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="860" y="180" width="190" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="41" value="开具处方" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="770" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="42" value="查看处方" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="950" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="43" value="查询历史处方" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1130" y="290" width="160" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="44" value="处方明细维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="830" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="45" value="用法用量录入" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="980" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="50" value="业务查询与协同" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1370" y="180" width="200" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="51" value="查看公告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1300" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="52" value="修改个人信息" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1450" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="53" value="修改密码" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1600" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="60" value="诊疗闭环" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1"><mxGeometry x="840" y="520" width="300" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="61" value="查看预约" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="700" y="620" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="62" value="接诊确认" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="830" y="620" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="63" value="病历录入" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="960" y="620" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="64" value="处方开具" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1090" y="620" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e100" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="20"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="30"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="40"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e103" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="50"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e104" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="60"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e110" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="20" target="21"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="20" target="22"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e112" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="22" target="23"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e120" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="31"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="32"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="31" target="33"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="31" target="34"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e124" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="31" target="35"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e130" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="41"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="42"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="43"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="41" target="44"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="41" target="45"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e140" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="51"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e141" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="52"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e142" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="53"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e150" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="61"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e151" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="62"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="63"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e153" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="64"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
|
||||||
|
<diagram id="fig4-3-admin" name="图4.3 管理员功能结构图">
|
||||||
|
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2400" pageHeight="1400" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
|
||||||
|
<mxCell id="10" value="管理员功能结构" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="1080" y="40" width="220" height="60" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="20" value="账户与权限管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="120" y="180" width="220" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="21" value="用户管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="40" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="22" value="医生管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="190" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="23" value="新增用户" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="10" y="390" width="110" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="24" value="编辑用户" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="120" y="390" width="110" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="25" value="禁用/启用用户" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="230" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="30" value="公告管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="470" y="180" width="220" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="31" value="发布公告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="410" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="32" value="编辑公告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="540" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="33" value="删除公告" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="670" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="34" value="公告列表查询" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="490" y="390" width="170" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="40" value="药品基础管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="850" y="180" width="220" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="41" value="新增药品" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="790" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="42" value="编辑药品" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="920" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="43" value="禁用/启用药品" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1050" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="44" value="药品分类维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="850" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="45" value="规格价格维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="980" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="50" value="库存流水管理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1260" y="180" width="220" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="51" value="药品入库" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1200" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="52" value="药品出库" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1330" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="53" value="库存查询" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1460" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="54" value="入库记录查询" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1210" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="55" value="出库记录查询" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1340" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="56" value="低库存预警查看" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1470" y="390" width="140" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="60" value="统计分析" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1650" y="180" width="220" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="61" value="预约统计" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1590" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="62" value="订单统计" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1720" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="63" value="药品消耗统计" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1850" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="64" value="时间范围筛选" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1670" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="65" value="可视化展示" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1810" y="390" width="120" height="40" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="70" value="系统维护" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="2010" y="180" width="180" height="50" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="71" value="修改个人信息" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1940" y="290" width="140" height="44" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="72" value="修改密码" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="2090" y="290" width="120" height="44" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e100" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="20"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="30"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="40"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e103" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="50"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e104" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="60"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e105" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="10" target="70"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e110" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="20" target="21"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="20" target="22"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e112" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="21" target="23"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e113" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="21" target="24"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e114" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="21" target="25"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e120" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="31"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="32"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="30" target="33"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="32" target="34"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e130" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="41"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="42"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="40" target="43"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="41" target="44"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="42" target="45"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e140" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="51"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e141" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="52"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e142" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="50" target="53"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e143" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="51" target="54"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e144" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="52" target="55"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e145" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="53" target="56"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e150" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="61"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e151" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="62"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="60" target="63"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e153" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="61" target="64"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e154" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="63" target="65"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="e160" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="70" target="71"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="e161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" edge="1" parent="1" source="70" target="72"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
||||||
42
爱维宠物医院管理系统-类图.drawio
Normal file
42
爱维宠物医院管理系统-类图.drawio
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2026-02-26T21:12:00.000Z" agent="OpenCode" version="24.7.17" type="device">
|
||||||
|
<diagram id="class-diagram" name="图4.4 系统类图">
|
||||||
|
<mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1600" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
|
||||||
|
<mxCell id="10" value="系统类图(核心实体类)" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="1160" y="20" width="260" height="56" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="100" value="<b>用户类</b><hr/>+ id: Long<br/>+ username: String<br/>+ phone: String<br/>+ email: String<br/>+ password: String<br/>+ role: String<br/>+ status: Integer<br/>+ avatar: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="80" y="140" width="250" height="280" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="101" value="<b>医生类</b><hr/>+ id: Long<br/>+ name: String<br/>+ department: String<br/>+ title: String<br/>+ phone: String<br/>+ email: String<br/>+ status: Integer<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="380" y="140" width="250" height="260" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="102" value="<b>宠物类</b><hr/>+ id: Long<br/>+ ownerId: Long<br/>+ name: String<br/>+ species: String<br/>+ breed: String<br/>+ gender: String<br/>+ birthday: Date<br/>+ weight: Decimal<br/>+ remark: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="80" y="520" width="260" height="300" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="103" value="<b>预约类</b><hr/>+ id: Long<br/>+ customerId: Long<br/>+ petId: Long<br/>+ doctorId: Long<br/>+ department: String<br/>+ appointmentDate: Date<br/>+ timeSlot: String<br/>+ status: String<br/>+ remark: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="390" y="520" width="270" height="300" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="104" value="<b>就诊类</b><hr/>+ id: Long<br/>+ appointmentId: Long<br/>+ customerId: Long<br/>+ petId: Long<br/>+ doctorId: Long<br/>+ symptoms: String<br/>+ diagnosis: String<br/>+ treatmentPlan: String<br/>+ status: String<br/>+ paymentStatus: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="710" y="520" width="280" height="320" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="105" value="<b>病历类</b><hr/>+ id: Long<br/>+ visitId: Long<br/>+ doctorId: Long<br/>+ content: Text<br/>+ recordType: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1030" y="520" width="250" height="230" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="106" value="<b>处方类</b><hr/>+ id: Long<br/>+ visitId: Long<br/>+ doctorId: Long<br/>+ customerId: Long<br/>+ totalAmount: Decimal<br/>+ status: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1320" y="520" width="260" height="250" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="107" value="<b>处方明细类</b><hr/>+ id: Long<br/>+ prescriptionId: Long<br/>+ drugId: Long<br/>+ quantity: Integer<br/>+ dosage: String<br/>+ frequency: String<br/>+ duration: String<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1620" y="520" width="280" height="270" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="108" value="<b>药品类</b><hr/>+ id: Long<br/>+ name: String<br/>+ category: String<br/>+ specification: String<br/>+ unitPrice: Decimal<br/>+ stockQuantity: Integer<br/>+ alertThreshold: Integer<br/>+ status: Integer<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1940" y="520" width="280" height="290" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="109" value="<b>订单类</b><hr/>+ id: Long<br/>+ visitId: Long<br/>+ customerId: Long<br/>+ amount: Decimal<br/>+ status: String<br/>+ paymentMethod: String<br/>+ paymentTime: DateTime<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="710" y="930" width="280" height="270" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="110" value="<b>入库类</b><hr/>+ id: Long<br/>+ drugId: Long<br/>+ quantity: Integer<br/>+ unitPrice: Decimal<br/>+ supplier: String<br/>+ operatorId: Long<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1940" y="930" width="270" height="250" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="111" value="<b>出库类</b><hr/>+ id: Long<br/>+ drugId: Long<br/>+ quantity: Integer<br/>+ purpose: String<br/>+ operatorId: Long<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="2240" y="930" width="260" height="230" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="112" value="<b>公告类</b><hr/>+ id: Long<br/>+ title: String<br/>+ content: Text<br/>+ publishTime: DateTime<br/>+ status: Integer<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1030" y="140" width="250" height="230" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="113" value="<b>报告类</b><hr/>+ id: Long<br/>+ visitId: Long<br/>+ customerId: Long<br/>+ petId: Long<br/>+ reportType: String<br/>+ content: Text<br/>+ createTime: DateTime<br/>+ updateTime: DateTime<br/>+ deleted: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1320" y="140" width="260" height="250" as="geometry" /></mxCell>
|
||||||
|
|
||||||
|
<mxCell id="200" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="102"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="201" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="202" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="101" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="203" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="102" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="204" value="1:1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="103" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="205" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="105"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="206" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="106"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="207" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="106" target="107"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="208" value="N:1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="107" target="108"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="209" value="1:1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="109"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="210" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="108" target="110"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="211" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="108" target="111"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="212" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="113"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
<mxCell id="213" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="112"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
||||||
Binary file not shown.
@@ -299,62 +299,86 @@ Comprehensive functional and process-oriented testing indicates that the system
|
|||||||
|
|
||||||
#### 3.3.4 用例关系(include关系)
|
#### 3.3.4 用例关系(include关系)
|
||||||
|
|
||||||
系统用例之间存在明确的包含关系(include),用`<<include>>`表示。包含关系表示一个用例必须包含另一个用例的行为才能完成。以下列出系统的主要包含关系:
|
系统用例之间存在明确的包含关系(include),用`<<include>>`表示。包含关系表示一个父用例在执行过程中必然包含子用例的行为。以下按业务模块列出系统的主要包含关系:
|
||||||
|
|
||||||
**(1)顾客用例的include关系**
|
**(1)顾客用例的include关系**
|
||||||
|
|
||||||
- 提交预约 <<include>> 登录
|
预约管理模块:
|
||||||
- 取消预约 <<include>> 登录
|
- 预约管理 <<include>> 提交预约
|
||||||
- 查询预约记录 <<include>> 登录
|
- 预约管理 <<include>> 取消预约
|
||||||
- 查看订单 <<include>> 登录
|
- 预约管理 <<include>> 查询预约记录
|
||||||
- 查询报告 <<include>> 登录
|
|
||||||
- 维护宠物档案 <<include>> 登录
|
宠物档案模块:
|
||||||
- 修改个人信息 <<include>> 登录
|
- 宠物档案管理 <<include>> 新增宠物
|
||||||
- 修改密码 <<include>> 登录
|
- 宠物档案管理 <<include>> 编辑宠物
|
||||||
- 提交预约 <<include>> 维护宠物档案(需要先创建宠物档案才能进行预约)
|
- 宠物档案管理 <<include>> 删除宠物
|
||||||
|
|
||||||
|
个人信息模块:
|
||||||
|
- 个人中心 <<include>> 修改个人信息
|
||||||
|
- 个人中心 <<include>> 修改密码
|
||||||
|
|
||||||
**(2)医生用例的include关系**
|
**(2)医生用例的include关系**
|
||||||
|
|
||||||
- 查看预约 <<include>> 登录
|
接诊管理模块:
|
||||||
- 接诊确认 <<include>> 登录
|
- 接诊管理 <<include>> 查看预约
|
||||||
- 创建就诊记录 <<include>> 登录
|
- 接诊管理 <<include>> 接诊确认
|
||||||
- 编辑病历 <<include>> 登录
|
- 接诊管理 <<include>> 创建就诊记录
|
||||||
- 开具处方 <<include>> 登录
|
|
||||||
- 查看处方 <<include>> 登录
|
诊疗管理模块:
|
||||||
- 查询历史病历 <<include>> 登录
|
- 诊疗管理 <<include>> 编辑病历
|
||||||
- 查询历史处方 <<include>> 登录
|
- 诊疗管理 <<include>> 开具处方
|
||||||
- 修改个人信息 <<include>> 登录
|
- 诊疗管理 <<include>> 查看处方
|
||||||
- 修改密码 <<include>> 登录
|
|
||||||
- 创建就诊记录 <<include>> 查看预约(需要先查看预约才能创建就诊记录)
|
历史查询模块:
|
||||||
- 编辑病历 <<include>> 创建就诊记录(需要先创建就诊记录才能编辑病历)
|
- 历史查询 <<include>> 查询历史病历
|
||||||
- 开具处方 <<include>> 创建就诊记录(需要先创建就诊记录才能开具处方)
|
- 历史查询 <<include>> 查询历史处方
|
||||||
- 开具处方 <<include>> 编辑病历(需要先完成病历录入才能开具处方)
|
|
||||||
|
个人信息模块:
|
||||||
|
- 个人中心 <<include>> 修改个人信息
|
||||||
|
- 个人中心 <<include>> 修改密码
|
||||||
|
|
||||||
**(3)管理员用例的include关系**
|
**(3)管理员用例的include关系**
|
||||||
|
|
||||||
- 用户管理 <<include>> 登录
|
用户管理模块:
|
||||||
- 医生管理 <<include>> 登录
|
- 用户管理 <<include>> 查看用户列表
|
||||||
- 公告管理 <<include>> 登录
|
- 用户管理 <<include>> 新增用户
|
||||||
- 药品管理 <<include>> 登录
|
- 用户管理 <<include>> 编辑用户
|
||||||
- 药品入库 <<include>> 登录
|
- 用户管理 <<include>> 禁用用户
|
||||||
- 药品出库 <<include>> 登录
|
- 用户管理 <<include>> 启用用户
|
||||||
- 库存查询 <<include>> 登录
|
|
||||||
- 统计报表查看 <<include>> 登录
|
公告管理模块:
|
||||||
- 修改个人信息 <<include>> 登录
|
- 公告管理 <<include>> 发布公告
|
||||||
- 修改密码 <<include>> 登录
|
- 公告管理 <<include>> 编辑公告
|
||||||
- 药品入库 <<include>> 药品管理(需要先在药品管理中维护药品信息才能进行入库操作)
|
- 公告管理 <<include>> 删除公告
|
||||||
- 药品出库 <<include>> 药品管理(需要先在药品管理中维护药品信息才能进行出库操作)
|
|
||||||
|
药品与库存管理模块:
|
||||||
|
- 药品管理 <<include>> 新增药品
|
||||||
|
- 药品管理 <<include>> 编辑药品
|
||||||
|
- 药品管理 <<include>> 禁用药品
|
||||||
|
- 药品管理 <<include>> 启用药品
|
||||||
|
- 库存管理 <<include>> 药品入库
|
||||||
|
- 库存管理 <<include>> 药品出库
|
||||||
|
- 库存管理 <<include>> 库存查询
|
||||||
|
|
||||||
|
统计分析模块:
|
||||||
|
- 统计报表 <<include>> 预约统计
|
||||||
|
- 统计报表 <<include>> 订单统计
|
||||||
|
- 统计报表 <<include>> 药品消耗统计
|
||||||
|
|
||||||
|
个人信息模块:
|
||||||
|
- 个人中心 <<include>> 修改个人信息
|
||||||
|
- 个人中心 <<include>> 修改密码
|
||||||
|
|
||||||
**(4)跨角色共享用例**
|
**(4)跨角色共享用例**
|
||||||
|
|
||||||
以下用例被多个角色共享:
|
以下用例被多个角色共享:
|
||||||
|
|
||||||
- **登录**:被顾客、医生、管理员三个角色的所有业务用例包含
|
- **登录**:作为系统认证入口,被顾客、医生、管理员三个角色共同使用
|
||||||
- **修改个人信息**:被顾客、医生、管理员三个角色使用
|
- **修改个人信息**:被顾客、医生、管理员三个角色使用
|
||||||
- **修改密码**:被顾客、医生、管理员三个角色使用
|
- **修改密码**:被顾客、医生、管理员三个角色使用
|
||||||
- **查看公告**:被顾客、医生、管理员三个角色使用
|
- **查看公告**:被顾客、医生、管理员三个角色使用
|
||||||
|
|
||||||
这些共享用例体现了系统的基础能力,所有角色的业务操作都依赖于这些基础用例的完成。
|
这些共享用例体现了系统的基础通用能力,各角色通过统一入口完成认证与个人信息维护。
|
||||||
|
|
||||||
### 3.4 用例描述
|
### 3.4 用例描述
|
||||||
|
|
||||||
@@ -614,7 +638,7 @@ Comprehensive functional and process-oriented testing indicates that the system
|
|||||||
|
|
||||||
### 4.2 类图设计
|
### 4.2 类图设计
|
||||||
|
|
||||||
系统核心实体包含 `User`、`Doctor`、`Pet`、`Appointment`、`Visit`、`MedicalRecord`、`Prescription`、`PrescriptionItem`、`Drug`、`OrderInfo`、`StockIn`、`StockOut`、`Notice`、`Report` 等。
|
系统核心实体类包含:用户类、医生类、宠物类、预约类、就诊类、病历类、处方类、处方明细类、药品类、订单类、入库类、出库类、公告类、报告类等。
|
||||||
|
|
||||||
主要关系如下:
|
主要关系如下:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user