# 用药工具 — 查询药物（移动端）

## 1. 概述

| 项 | 说明 |
| --- | --- |
| Base Path | `/app/medication/drug` |
| 数据表 | `biz_withdrawal_period_standard`、`biz_drug_incompatibility_standard`、`biz_drug_incompatibility_companion` |
| 鉴权 | 需登录 |

## 2. 药物名称列表（下拉模糊）

`GET /app/medication/drug/names`

| 参数 | 必填 | 说明 |
| --- | --- | --- |
| `keyword` | 否 | 对 `biz_withdrawal_period_standard.drug_name` 模糊匹配；不传则返回前 50 个名称（去重、按名称升序） |

**响应 `data`**：`string[]`，药物名称列表（`SELECT DISTINCT drug_name`）。

## 3. 查询药物

`GET /app/medication/drug/query`

| 参数 | 必填 | 说明 |
| --- | --- | --- |
| `drugName` | 是 | 药物名称（精确匹配休药期标准 `drug_name`，1～20 字） |

**响应 `data` 字段**

| 字段 | 来源 | 说明 |
| --- | --- | --- |
| `drugName` | 休药期标准 | 药物名称 |
| `drugType` | 休药期标准 | `1` 抗生素 `2` 抗原虫 `3` 抗病毒 `4` 激素 |
| `drugTypeName` | 服务端映射 | 类型中文名 |
| `withdrawalDays` | 休药期标准 | 休药期（天） |
| `usageGuide` | 休药期标准 | 使用指南 |
| `drugEffect` | 休药期标准 | 药物作用 |
| `incompatibilityCompanions` | 禁配子表关联 | 配伍禁忌药物，`companion_drug_name` 按 `sort_order` 逗号拼接；无禁配记录时不返回该字段 |

**配伍禁忌 SQL 逻辑**：`biz_withdrawal_period_standard` 与 `biz_drug_incompatibility_standard` 按 `drug_name = main_drug_name` 关联，再关联 `biz_drug_incompatibility_companion` 聚合 `GROUP_CONCAT(companion_drug_name)`。

## 4. 错误示例

| 场景 | 提示 |
| --- | --- |
| 未选药物查询 | 请选择药物名称 |
| 休药期库无该药 | 未找到该药物标准信息 |
| 关键字过长 | 检索关键字不能超过20个字符 |
