<mxfile host="app.diagrams.net" modified="2026-02-26T21:40:00.000Z" agent="OpenCode" version="24.7.17" type="device">
  <diagram id="act-doctor" name="图4.7 医生接诊活动图">
    <mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="1600" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <!-- 泳道边框 -->
        <mxCell id="pool" value="" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=0;strokeColor=#000000;fillColor=none;" vertex="1" parent="1">
          <mxGeometry x="40" y="30" width="1100" height="1500" as="geometry" />
        </mxCell>

        <!-- 泳道标题行 -->
        <mxCell id="lane1_header" value="医生" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeColor=#000000;fillColor=none;verticalAlign=middle;align=center;" vertex="1" parent="1">
          <mxGeometry x="40" y="30" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="lane2_header" value="后台系统" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeColor=#000000;fillColor=none;verticalAlign=middle;align=center;" vertex="1" parent="1">
          <mxGeometry x="400" y="30" width="380" height="40" as="geometry" />
        </mxCell>
        <mxCell id="lane3_header" value="数据库" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeColor=#000000;fillColor=none;verticalAlign=middle;align=center;" vertex="1" parent="1">
          <mxGeometry x="780" y="30" width="360" height="40" as="geometry" />
        </mxCell>

        <!-- 泳道竖线 -->
        <mxCell id="lane_div1" value="" style="endArrow=none;html=1;strokeColor=#000000;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="400" y="70" as="sourcePoint" />
            <mxPoint x="400" y="1530" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="lane_div2" value="" style="endArrow=none;html=1;strokeColor=#000000;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="780" y="70" as="sourcePoint" />
            <mxPoint x="780" y="1530" as="targetPoint" />
          </mxGeometry>
        </mxCell>

        <!-- 开始节点（实心圆）- 医生泳道 -->
        <mxCell id="start" value="" style="ellipse;html=1;shape=mxgraph.flowchart.start_2;fillColor=#000000;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="200" y="100" width="30" height="30" as="geometry" />
        </mxCell>

        <!-- 步骤1：登录系统 - 医生泳道 -->
        <mxCell id="s1" value="登录系统" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="170" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤2：查看预约列表 - 后台系统泳道 -->
        <mxCell id="s2" value="加载预约列表" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="520" y="260" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤3：查询预约数据 - 数据库泳道 -->
        <mxCell id="s3" value="查询预约数据" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="895" y="350" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤4：展示预约列表 - 医生泳道 -->
        <mxCell id="s4" value="查看预约列表" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="440" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 决策：是否有待接诊预约 -->
        <mxCell id="d1" value="是否有待接诊预约" style="rhombus;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="145" y="530" width="140" height="80" as="geometry" />
        </mxCell>

        <!-- 步骤5：确认到诊 - 医生泳道 -->
        <mxCell id="s5" value="确认到诊" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="660" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤6：创建就诊记录 - 后台系统泳道 -->
        <mxCell id="s6" value="创建就诊记录" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="520" y="750" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤7：保存就诊记录 - 数据库泳道 -->
        <mxCell id="s7" value="保存就诊记录" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="895" y="840" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤8：录入病历信息 - 医生泳道 -->
        <mxCell id="s8" value="录入病历信息" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="930" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤9：保存病历 - 后台系统泳道 -->
        <mxCell id="s9" value="保存病历记录" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="520" y="1020" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 决策：是否需要开具处方 -->
        <mxCell id="d2" value="是否需要开具处方" style="rhombus;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="145" y="1110" width="140" height="80" as="geometry" />
        </mxCell>

        <!-- 步骤10：开具处方 - 医生泳道 -->
        <mxCell id="s10" value="开具处方" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="1240" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤11：保存处方与明细 - 后台系统泳道 -->
        <mxCell id="s11" value="保存处方与明细" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="520" y="1330" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 结束节点 - 医生泳道 -->
        <mxCell id="end" value="" style="ellipse;html=1;shape=doubleCircle;fillColor=#000000;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="200" y="1440" width="30" height="30" as="geometry" />
        </mxCell>

        <!-- 连线 -->
        <mxCell id="e1" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="start" target="s1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e2" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s1" target="s2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e3" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s2" target="s3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e4" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s3" target="s4">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e5" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s4" target="d1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- 决策1：否 → 结束 -->
        <mxCell id="e6_no" value="否" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d1" target="end">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="60" y="570" />
              <mxPoint x="60" y="1455" />
            </Array>
          </mxGeometry>
        </mxCell>

        <!-- 决策1：是 → 确认到诊 -->
        <mxCell id="e6_yes" value="是" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d1" target="s5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e7" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s5" target="s6">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e8" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s6" target="s7">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e9" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s7" target="s8">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e10" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s8" target="s9">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e11" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s9" target="d2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- 决策2：否 → 结束 -->
        <mxCell id="e12_no" value="否" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d2" target="end">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="60" y="1150" />
              <mxPoint x="60" y="1455" />
            </Array>
          </mxGeometry>
        </mxCell>

        <!-- 决策2：是 → 开具处方 -->
        <mxCell id="e12_yes" value="是" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d2" target="s10">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e13" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s10" target="s11">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e14" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s11" target="end">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>

  <diagram id="act-customer-appointment" name="图4.8 顾客预约活动图">
    <mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="1400" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <!-- 泳道边框 -->
        <mxCell id="pool" value="" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=0;strokeColor=#000000;fillColor=none;" vertex="1" parent="1">
          <mxGeometry x="40" y="30" width="1100" height="1300" as="geometry" />
        </mxCell>

        <!-- 泳道标题行 -->
        <mxCell id="lane1_header" value="顾客" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeColor=#000000;fillColor=none;verticalAlign=middle;align=center;" vertex="1" parent="1">
          <mxGeometry x="40" y="30" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="lane2_header" value="后台系统" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeColor=#000000;fillColor=none;verticalAlign=middle;align=center;" vertex="1" parent="1">
          <mxGeometry x="400" y="30" width="380" height="40" as="geometry" />
        </mxCell>
        <mxCell id="lane3_header" value="数据库" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;strokeColor=#000000;fillColor=none;verticalAlign=middle;align=center;" vertex="1" parent="1">
          <mxGeometry x="780" y="30" width="360" height="40" as="geometry" />
        </mxCell>

        <!-- 泳道竖线 -->
        <mxCell id="lane_div1" value="" style="endArrow=none;html=1;strokeColor=#000000;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="400" y="70" as="sourcePoint" />
            <mxPoint x="400" y="1330" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="lane_div2" value="" style="endArrow=none;html=1;strokeColor=#000000;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="780" y="70" as="sourcePoint" />
            <mxPoint x="780" y="1330" as="targetPoint" />
          </mxGeometry>
        </mxCell>

        <!-- 开始节点 - 顾客泳道 -->
        <mxCell id="start" value="" style="ellipse;html=1;shape=mxgraph.flowchart.start_2;fillColor=#000000;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="200" y="100" width="30" height="30" as="geometry" />
        </mxCell>

        <!-- 步骤1：登录系统 - 顾客泳道 -->
        <mxCell id="s1" value="登录系统" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="170" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤2：选择宠物与时段 - 顾客泳道 -->
        <mxCell id="s2" value="选择宠物与时段" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="270" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤3：填写预约信息并提交 - 顾客泳道 -->
        <mxCell id="s3" value="填写预约信息并提交" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="140" y="370" width="150" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤4：参数校验 - 后台系统泳道 -->
        <mxCell id="s4" value="参数校验" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="520" y="470" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 决策：校验是否通过 -->
        <mxCell id="d1" value="校验是否通过" style="rhombus;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="525" y="560" width="130" height="80" as="geometry" />
        </mxCell>

        <!-- 步骤5：查询时段可用性 - 数据库泳道 -->
        <mxCell id="s5" value="查询时段可用性" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="895" y="700" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 决策：时段是否可用 -->
        <mxCell id="d2" value="时段是否可用" style="rhombus;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="525" y="790" width="130" height="80" as="geometry" />
        </mxCell>

        <!-- 步骤6：保存预约记录 - 数据库泳道 -->
        <mxCell id="s6" value="保存预约记录" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="895" y="920" width="140" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤7：显示预约成功 - 顾客泳道 -->
        <mxCell id="s7" value="显示预约成功" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="1040" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 步骤8：提示预约失败 - 顾客泳道（失败路径共用） -->
        <mxCell id="s_fail" value="提示预约失败信息" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
          <mxGeometry x="150" y="1140" width="130" height="44" as="geometry" />
        </mxCell>

        <!-- 结束节点 - 顾客泳道 -->
        <mxCell id="end" value="" style="ellipse;html=1;shape=doubleCircle;fillColor=#000000;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="200" y="1240" width="30" height="30" as="geometry" />
        </mxCell>

        <!-- 连线 -->
        <mxCell id="e1" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="start" target="s1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e2" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s1" target="s2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e3" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s2" target="s3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e4" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s3" target="s4">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e5" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s4" target="d1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- 决策1：否 → 返回重新填写 -->
        <mxCell id="e6_no" value="否" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;dashed=1;" edge="1" parent="1" source="d1" target="s3">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="80" y="600" />
              <mxPoint x="80" y="392" />
            </Array>
          </mxGeometry>
        </mxCell>

        <!-- 决策1：是 → 查询时段 -->
        <mxCell id="e6_yes" value="是" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d1" target="s5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e7" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s5" target="d2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- 决策2：否 → 提示失败 -->
        <mxCell id="e8_no" value="否" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d2" target="s_fail">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="80" y="830" />
              <mxPoint x="80" y="1162" />
            </Array>
          </mxGeometry>
        </mxCell>

        <!-- 决策2：是 → 保存预约 -->
        <mxCell id="e8_yes" value="是" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="d2" target="s6">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e9" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s6" target="s7">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e10" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s7" target="end">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e11" style="endArrow=block;endFill=1;html=1;strokeColor=#000000;" edge="1" parent="1" source="s_fail" target="end">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
