# PAC 三大算法 · 通俗说明

> **谁该读**:产品 / 运营 / 诊所管理者 / 客服主管 —— 不需要懂技术。
> **本文目的**:用大白话讲清楚 PAC 到底在算什么、为什么这么算。
> **不含**:代码、SQL、字段名。要看实现细节去 `potential-treatment-recall-flow.md`。

---

## 〇、PAC 是干什么的

一句话:**PAC 帮诊所找出"该回来但还没回来"的患者,告诉客服先打给谁、怎么打。**

诊所每天产生大量就诊记录(诊断、治疗、收费、预约……),但里面藏着很多"漏掉的机会":
医生说过"这颗牙该补",患者却一直没来补;种植做完该年度复查,患者忘了……

PAC 做三件事,像一条流水线:

```
   全院患者                                            客服每天的电话清单
      │                                                      ▲
      │  ① 召回算法                ② 画像算法        ③ 优先级算法 │
      └──「谁该被请回来?」──→「这个人是谁?」──→「先打给谁?」──┘
          (筛出候选)            (了解背景)          (排好顺序)
```

- **① 召回算法**:从几万患者里,筛出"该回来做点什么、但还没做"的人。
- **② 画像算法**:给每个筛出来的患者贴标签(价值高不高、容易流失吗、能不能打扰)。
- **③ 优先级算法**:把这些人排个先后,客服时间有限,先打最该打的。

下面逐个讲。

---

## 一、召回算法 —— "谁该被请回来?"

### 它在找什么

**核心判断只有一句**:
> 医生发现/建议了某个治疗,但患者一直没去做 —— 这个人就该被召回。

举例:
- 医生诊断"36 号牙缺失,建议种植",可患者半年都没来种 → **该召回**
- 医生说"有牙周炎,要做基础治疗",患者没做 → **该召回**
- 医生发现龋齿要补,患者没补 → **该召回**

### 覆盖哪些情况

按牙科疾病大类,PAC 覆盖 **10 种**"发现了没去做"的情况:

| 情况 | 大白话 |
|---|---|
| 缺失牙未修复 | 缺了牙没去种/没镶 |
| 错颌畸形未正畸 | 牙不齐没去矫正 |
| 牙髓炎未做根管 | 牙神经发炎没去做根管 |
| 牙周炎未做基础治疗 | 牙周病没去洗治 |
| 龋齿未充填 | 蛀牙没去补 |
| 牙体损伤未修复 | 牙磨损/缺损没去修 |
| 牙龈牙槽问题未处置 | 牙龈问题没去看 |
| 阻生牙未拔除 | 智齿该拔没拔 |
| 颌骨囊肿未处理 | 颌骨囊肿没去摘 |
| 牙发育/萌出异常未处置 | 儿童换牙/长牙问题没去看 |

### 三道"过滤网"(避免打错电话)

筛选时层层过滤,确保不打扰不该打的人:

**第 1 道 · 合规红线**(硬规矩,一票否决):
- 已故患者 → 不打
- 标了"勿打扰"的 → 不打
- 没有电话的 → 没法打

**第 2 道 · 时间窗**(不能太早也不嫌太晚):
- **太早不打**:医生刚诊断完(比如缺牙 30 天内),患者还在考虑,这时候打像催债。每种病有自己的"冷静期"。
- **越晚越该打**:缺牙拖了一年,比拖三个月更该召回。所以**没有"太晚就不打"这一说**——拖得久的不会被踢掉,只是在排队时往后稍微挪一点(交给优先级算法处理)。

**第 3 道 · 已经做了就别打**(关键):
- 患者**已经做了**对应治疗 → 不召回(已经补过这颗牙了,别再喊人来补)
- 精确到**牙位**判断:36 号牙补过了,但 46 号牙还没补 → 只召回 46 号那件事
- 已经把这颗牙**拔了** → 这件事终结,不召回
- 已经**约了**未来的号 → 人在来的路上了,不打扰

### 一个聪明的合并

同一个患者,可能同时有好几颗牙、好几个问题。PAC 会**智能合并**:
- 同一类问题、相邻或重叠的牙位 → 合成一条(比如"18、28、38、48 四颗智齿都要拔"合成一件事)
- 不同牙位的不同问题 → 分开列(36 要补 + 全口要做牙周 → 两件事)

这样客服看到的是**整理好的几件事**,而不是一堆零散记录。

> **本质**:召回算法不"猜",它只认医生白纸黑字写下的诊断和建议。医生没说的,它绝不编。

---

## 二、画像算法 —— "这个患者是谁?"

筛出候选后,光知道"该召回"还不够,客服打电话前想知道:这人值不值得花时间?会不会已经不想来了?能不能打?

画像算法给每个患者打 **4 个标签**:

### 标签 1 · 患者价值
**这个患者对诊所贡献多大?** 看历史累计消费、做过的治疗等。
- 高价值(比如累计消费几万的种植客户)→ 值得优先维护
- 普通价值 → 正常对待

### 标签 2 · 流失风险
**这个患者是不是快"跑"了?** 看多久没来、该来的复查有没有断。
- 高风险(很久没来 + 有未闭环的治疗)→ 再不召回可能就永久流失了
- 低风险(还在正常往来)→ 没那么急

### 标签 3 · 治疗链状态
**这个患者的治疗进行到哪一步了?** 一段治疗从"发现问题"到"做完闭环"有好几个阶段。
- 比如"种植已发现但没启动" / "根管做了但冠还没戴" / "已闭环"
- 让客服一眼看出"卡在哪一步"

### 标签 4 · 不打扰状态
**这个患者能不能联系?** 标记勿打扰、已故等合规状态。
- 跟召回算法的合规红线呼应,双保险

### 两个特点

1. **全靠规则,不靠 AI 猜**:每个标签怎么算都是写死的明确规则(比如"累计消费 > X 算高价值"),**可解释、可追溯**——主管问"为什么标他高价值",能立刻答出来。
2. **自动更新**:患者有新动作(新就诊、新消费)就自动重算标签,不用人工维护。

> **本质**:画像算法把散乱的就诊记录,浓缩成客服一眼能读懂的几个标签。

---

## 三、召回优先级算法 —— "先打给谁?"

客服一天能打的电话有限。同样是"该召回",500 个候选里先打谁?优先级算法给每个人打一个 **0–100 的分数**,分越高越优先。

### 分数怎么来(6 个因素)

把它想成**给每个召回机会打分,像考试加权**:

| 因素 | 通俗解释 | 举例 |
|---|---|---|
| **① 临床基线** | 这种病本身多重要(种植 > 补牙 > 拔智齿) | 缺牙起步 60 分,智齿起步 30 分 |
| **② 时间窗形状** | 现在是不是召回的"最佳时机" | 正当时 ×1.0;太久了打个折 |
| **③ 患者价值加分** | 高价值患者加分 | 钻卡客户 +20 |
| **④ 转化可能加分** | 这人接电话后真来的可能性 | 流失风险低、以前召回成功过 → 加分 |
| **⑤ 临床紧迫加分** | 再拖会出大问题的加分 | 缺牙太久邻牙要倒 +5 |
| **⑥ 信号可信度** | 这个召回理由有多靠谱 | 医生明确诊断 ×1.0;AI 从文本里猜的打个折 |

**算法**(不用记,理解思路就行):
```
分数 = (临床基线 × 时间窗 + 价值加分 + 转化加分 + 紧迫加分) × 信号可信度
       然后压到 0~100 之间
```

### 真实例子:卜晓平,87 分

| 因素 | 他的情况 | 贡献 |
|---|---|---|
| 临床基线 | 缺失牙 | 60 |
| 时间窗 | 缺了 151 天,正当召回期 | ×1.0 |
| 患者价值 | 钻石卡,累计消费 5.7 万+ | +20 |
| 转化可能 | 流失风险低 | +2 |
| 临床紧迫 | 缺太久邻牙有倾斜风险 | +5 |
| 信号可信度 | 医生明确诊断 | ×1.0 |
| **最终** | | **87 分** → 排很前面 |

### 为什么要"可解释"

每个分数都附带**完整的计算明细**(上面那张表),客服详情页能直接看到。
主管问"为什么他排第一",不是"算法说的",而是**6 个因素一条条摆出来**——这是 PAC 跟黑盒推荐系统的根本区别:**可解释 = 可信任**。

> **本质**:优先级算法把"该召回的一堆人"排成"今天先打这几个"的有序清单,且每个排序理由透明。

---

## 四、三者怎么配合(端到端)

用卜晓平走一遍完整流程:

```
① 召回算法
   扫全院 → 发现卜晓平 151 天前诊断"36 缺失",至今没种植,且没拔没约
   → 通过合规红线(在世/可联系)→ 进候选池,理由="缺失牙未启动修复"

② 画像算法
   给卜晓平贴标签:价值=钻石卡高价值 / 流失风险=低 / 治疗链=种植已发现未启动 / 可联系
   → 客服打电话前就知道"这是个重要客户,值得好好聊"

③ 优先级算法
   综合 6 因素算出 87 分 → 在今天的电话清单里排很靠前
   → 客服优先打给他,且看得到"为什么是 87 分"

(再往后)
   客服点"生成话术" → AI 根据卜晓平的年龄/缺牙情况/老客身份,生成定制开场白和应答
```

**一句话总括**:
> **召回算法**筛出"该回来的人",**画像算法**告诉客服"他是谁",**优先级算法**排好"先打谁"——三者串成一条流水线,把诊所散乱的就诊数据,变成客服每天一份**排好序、带背景、可解释**的电话清单。

---

## 附:常见疑问

**Q:算法会不会乱召回、打扰患者?**
A:不会。三道过滤网(合规红线 + 时间冷静期 + 已做就不打)层层把关;且只认医生写下的诊断,不自己编理由。

**Q:为什么有的患者分高有的分低?**
A:6 个因素综合算,每个患者的明细都能在详情页看到,完全透明。

**Q:画像标签准吗?会不会 AI 算错?**
A:画像目前全是明确规则算的(不是 AI 猜),比如"消费多少算高价值"都是写死的,可解释可追溯。

**Q:换一家诊所/集团,算法还能用吗?**
A:能。算法逻辑跟具体诊所无关,新诊所只需要把自己的数据按格式对接进来,算法直接复用。
