<mxfile host="app.diagrams.net" modified="2026-02-25T20:44:00.000Z" agent="OpenCode" version="24.7.17" type="device">
  <diagram id="customer-usecase" name="顾客用例图">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1000" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="2" value="爱维宠物医院管理系统" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1"><mxGeometry x="210" y="40" width="1260" height="860" as="geometry" /></mxCell>
        <mxCell id="10" value="顾客" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" vertex="1" parent="1"><mxGeometry x="80" y="360" width="50" height="100" as="geometry" /></mxCell>

        <mxCell id="100" value="登录" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="300" y="90" width="160" height="56" as="geometry" /></mxCell>
        <mxCell id="101" value="维护宠物档案" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="550" y="150" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="102" value="提交预约" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="150" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="103" value="取消预约" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="240" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="104" value="查询预约记录" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="330" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="105" value="查看订单" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="420" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="106" value="查询报告" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="510" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="107" value="查看公告" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="550" y="510" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="108" value="修改个人信息" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="550" y="600" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="109" value="修改密码" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="550" y="690" width="180" height="56" as="geometry" /></mxCell>

        <mxCell id="200" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="101"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="201" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="102"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="202" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="203" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="204" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="105"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="205" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="106"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="206" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="107"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="207" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="108"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="208" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="109"><mxGeometry relative="1" as="geometry" /></mxCell>

        <mxCell id="300" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="101" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="301" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="102" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="302" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="103" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="303" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="104" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="304" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="105" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="305" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="106" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="306" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="107" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="307" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="108" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="308" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="109" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="309" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="102" target="101"><mxGeometry relative="1" as="geometry" /></mxCell>
      </root>
    </mxGraphModel>
  </diagram>

  <diagram id="doctor-usecase" name="医生用例图">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1000" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="2" value="爱维宠物医院管理系统" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1"><mxGeometry x="210" y="40" width="1260" height="860" as="geometry" /></mxCell>
        <mxCell id="10" value="医生" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" vertex="1" parent="1"><mxGeometry x="80" y="360" width="50" height="100" as="geometry" /></mxCell>

        <mxCell id="100" value="登录" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="300" y="90" width="160" height="56" as="geometry" /></mxCell>
        <mxCell id="101" value="查看预约" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="140" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="102" value="接诊确认" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="140" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="103" value="创建就诊记录" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="230" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="104" value="编辑病历" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="320" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="105" value="开具处方" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="410" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="106" value="查看处方" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="500" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="107" value="查询历史病历" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="500" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="108" value="查询历史处方" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="590" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="109" value="查看公告" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="680" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="110" value="修改个人信息" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="680" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="111" value="修改密码" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1080" y="680" width="180" height="56" as="geometry" /></mxCell>

        <mxCell id="200" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="101"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="201" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="102"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="202" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="203" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="204" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="105"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="205" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="106"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="206" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="107"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="207" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="108"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="208" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="109"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="209" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="110"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="210" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="111"><mxGeometry relative="1" as="geometry" /></mxCell>

        <mxCell id="300" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="101" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="301" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="102" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="302" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="103" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="303" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="104" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="304" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="105" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="305" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="106" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="306" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="107" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="307" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="108" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="308" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="109" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="309" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="110" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="310" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="111" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="311" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="103" target="101"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="312" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="104" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="313" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="105" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="314" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="105" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
      </root>
    </mxGraphModel>
  </diagram>

  <diagram id="admin-usecase" name="管理员用例图">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1000" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="2" value="爱维宠物医院管理系统" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1"><mxGeometry x="210" y="40" width="1260" height="860" as="geometry" /></mxCell>
        <mxCell id="10" value="管理员" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" vertex="1" parent="1"><mxGeometry x="80" y="360" width="50" height="100" as="geometry" /></mxCell>

        <mxCell id="100" value="登录" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="300" y="90" width="160" height="56" as="geometry" /></mxCell>
        <mxCell id="101" value="用户管理" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="140" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="102" value="医生管理" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="140" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="103" value="公告管理" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1120" y="140" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="104" value="药品管理" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="250" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="105" value="药品入库" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="250" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="106" value="药品出库" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1120" y="250" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="107" value="库存查询" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="560" y="360" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="108" value="统计报表查看" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="840" y="360" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="109" value="查看公告" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1120" y="360" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="110" value="修改个人信息" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="700" y="520" width="180" height="56" as="geometry" /></mxCell>
        <mxCell id="111" value="修改密码" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="980" y="520" width="180" height="56" as="geometry" /></mxCell>

        <mxCell id="200" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="101"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="201" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="102"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="202" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="203" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="204" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="105"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="205" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="106"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="206" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="107"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="207" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="108"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="208" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="109"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="209" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="110"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="210" style="endArrow=none;html=1;" edge="1" parent="1" source="10" target="111"><mxGeometry relative="1" as="geometry" /></mxCell>

        <mxCell id="300" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="101" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="301" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="102" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="302" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="103" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="303" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="104" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="304" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="105" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="305" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="106" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="306" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="107" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="307" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="108" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="308" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="109" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="309" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="110" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="310" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="111" target="100"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="311" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="105" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
        <mxCell id="312" value="&lt;&lt;include&gt;&gt;" style="dashed=1;endArrow=open;html=1;" edge="1" parent="1" source="106" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
