237 lines
6.1 KiB
Markdown
237 lines
6.1 KiB
Markdown
# xk-api 重点功能
|
||
|
||
## 处方流转体系
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph 开方
|
||
D1[医生接诊] --> D2[选择患者]
|
||
D2 --> D3{处方类型}
|
||
D3 -->|中药| D4[中医处方]
|
||
D3 -->|西药| D5[西药处方]
|
||
D3 -->|颗粒| D6[颗粒处方]
|
||
D3 -->|中成药| D7[中成药处方]
|
||
D3 -->|服务包| D8[服务包处方]
|
||
end
|
||
|
||
subgraph 审方
|
||
D4 --> R1[医生初审]
|
||
D5 --> R1
|
||
D6 --> R1
|
||
D7 --> R1
|
||
R1 -->|通过| R2[药师复审]
|
||
R1 -->|拒绝| R3[退回修改]
|
||
R2 -->|通过| R4[处方生效]
|
||
R2 -->|拒绝| R3
|
||
end
|
||
|
||
subgraph 履约
|
||
R4 --> P1[患者购药]
|
||
P1 --> P2{配送方式}
|
||
P2 -->|快递| P3[仓库发货]
|
||
P2 -->|自提| P4[门店自提]
|
||
P2 -->|代煎| P5[MES 下单]
|
||
end
|
||
```
|
||
|
||
### 处方状态机
|
||
|
||
| 状态 | 值 | 说明 |
|
||
|------|-----|------|
|
||
| 待审核 | 0 | 医生已开方,等待审核 |
|
||
| 通过 | 1 | 审核通过 |
|
||
| 未通过 | 2 | 审核拒绝 |
|
||
| 无需审核 | 3 | 免审处方 |
|
||
|
||
### 处方类型
|
||
|
||
| 类型 | 值 | 说明 |
|
||
|------|-----|------|
|
||
| 中药 | 1 | 中药饮片处方 |
|
||
| 西药 | 2 | 西药处方 |
|
||
| 颗粒 | 3 | 配方颗粒处方 |
|
||
| 中成药 | 4 | 中成药处方 |
|
||
| 产品服务包 | 5 | 服务包处方 |
|
||
|
||
### 转诊处方
|
||
|
||
转诊处方是跨门店的处方流转机制:
|
||
- **转诊方**(发起方)获得 100% 利润
|
||
- **接收方**(被转方)负责履约
|
||
- 处方来源自动设为接收方门店(`store_id = delegate_store_id`)
|
||
- 支持线上转诊和线下转诊两种模式
|
||
|
||
## 分账结算体系
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph 收入
|
||
PAY1[产品订单付款] --> LED[分账记录]
|
||
PAY2[挂号订单付款] --> LED
|
||
end
|
||
|
||
subgraph 分账规则
|
||
LED --> S1[门店分账]
|
||
LED --> S2[平台分账]
|
||
LED --> S3[供应商分账]
|
||
end
|
||
|
||
subgraph 结算
|
||
S1 --> SET[结算单]
|
||
S2 --> SET
|
||
S3 --> SET
|
||
SET --> WITH[提现申请]
|
||
WITH --> AUDIT[审核]
|
||
AUDIT -->|通过| PAY3[打款]
|
||
AUDIT -->|拒绝| REJECT[退回]
|
||
end
|
||
```
|
||
|
||
### 分账记录 (yii_ledger)
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `fee_type` | 费用类型:药品/挂号/快递/处方费/加工费/诊疗费 |
|
||
| `status` | 0=待结算, 1=已结算, 2=已取消 |
|
||
| `user_type` | 0=用户, 1=诊所, 2=平台 |
|
||
|
||
### 可提现金额变更
|
||
|
||
每次分账、退款、提现都会在 `xk_account_able_change_log` 中记录:
|
||
- **来源类型**: settle(分账)、withdraw(提现)、refund(退款)
|
||
- **变更前后金额**: before_amount → after_amount
|
||
- **关联订单**: order_id, order_type, order_no
|
||
|
||
## 佣金体系
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph 佣金来源
|
||
O1[产品订单] --> C1[佣金记录]
|
||
O2[挂号订单] --> C1
|
||
end
|
||
|
||
subgraph 佣金计算
|
||
C1 --> CAL{计算方式}
|
||
CAL -->|固定佣金| F1[按模板/药品配置]
|
||
CAL -->|百分比佣金| F2[按比例计算]
|
||
end
|
||
|
||
subgraph 佣金结算
|
||
F1 --> SET[推广员结算单]
|
||
F2 --> SET
|
||
SET --> PAY[打款]
|
||
end
|
||
|
||
subgraph 退款冲销
|
||
REF[订单退款] --> REV[佣金冲销记录]
|
||
REV --> SET2[结算调整]
|
||
end
|
||
```
|
||
|
||
### 佣金模板
|
||
- 按门店配置佣金模板
|
||
- 模板下按药品配置单品佣金
|
||
- 支持固定金额和百分比两种模式
|
||
|
||
### 佣金结算
|
||
- 支持按时段和按订单两种结算方式
|
||
- 结算时生成凭证图片
|
||
- 退款时自动冲销已结算佣金
|
||
|
||
## MES 对接(中药智造)
|
||
|
||
与和利康 MES 系统对接,实现处方自动下发到中药煎煮中心:
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant API as xk-api
|
||
participant MES as 和利康 MES
|
||
participant DRUG as 煎煮中心
|
||
|
||
API->>MES: H001 提交处方 (HTTP+JSON)
|
||
MES-->>API: 返回处理结果
|
||
Note over MES: 失败时自动降级
|
||
API->>MES: W001 提交处方 (SOAP+XML)
|
||
MES-->>API: 返回处理结果
|
||
API->>API: 记录同步状态
|
||
```
|
||
|
||
### 处方字段映射
|
||
- 煎煮方式: 28 种(先煎、煎煮、后下、烊化等)
|
||
- 服法: 内服/外用
|
||
- 剂量数、包装数、煎煮容量(ml)
|
||
|
||
## 互联网医院监管上报
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph 数据类型
|
||
T1[在线咨询]
|
||
T2[在线复诊]
|
||
T3[在线处方]
|
||
T4[处方核销]
|
||
end
|
||
|
||
subgraph 流程
|
||
T1 --> P[拉取打包]
|
||
T2 --> P
|
||
T3 --> P
|
||
T4 --> P
|
||
P --> ENC[加密]
|
||
ENC --> FWD[xk-hy-forward-go 转发]
|
||
FWD --> GOV[浙江省政务云]
|
||
GOV --> CB[回调结果]
|
||
CB --> UPD[更新状态]
|
||
end
|
||
```
|
||
|
||
### 监管数据接口
|
||
|
||
| 接口 | 说明 |
|
||
|------|------|
|
||
| `uploadConsultIndicators` | 咨询信息上报 |
|
||
| `uploadReferralIndicators` | 转诊/复诊信息上报 |
|
||
| `uploadRecipeIndicators` | 处方信息上报(含中药扩展) |
|
||
| `uploadRecipeVerificationIndicators` | 处方核销信息上报 |
|
||
|
||
### 加密规则
|
||
- 算法: AES-128-ECB + PKCS7 + Base64
|
||
- 密钥: `substr(sha256(HY_TRANSIT_API_TOKEN), 0, 16)`
|
||
|
||
### 签名规则
|
||
- `sign = HmacSHA256(requestBody + secret + header params sorted alphabetically)`
|
||
|
||
## 药品价格同步
|
||
|
||
```mermaid
|
||
graph LR
|
||
WH[仓库药品] -->|价格变更| PUB[xk_api 公共接口]
|
||
PUB --> SUB1[订阅门店1]
|
||
PUB --> SUB2[订阅门店2]
|
||
PUB --> SUB3[订阅门店N]
|
||
|
||
subgraph 同步方式
|
||
A[全量同步<br/>SyncDrugPriceBySubscribeJob]
|
||
B[单品同步<br/>SyncSingleDrugPriceBySubscribeJob]
|
||
C[批量同步<br/>BatchSyncDrugPriceJob]
|
||
end
|
||
```
|
||
|
||
### 价格计算规则
|
||
- 门店采购价 = 仓库价 × 采购比例 (`z_buy_percent`)
|
||
- 门店销售价 = 仓库价 × 销售比例 (`z_sale_percent`)
|
||
- 支持门店独立调价
|
||
|
||
## 特色处方体系
|
||
|
||
特色处方是标准化的处方产品,具有独立的 SKU 和定价体系:
|
||
|
||
| 概念 | 说明 |
|
||
|------|------|
|
||
| 特色处方 | 标准化的处方产品,如"感冒方"、"养生方" |
|
||
| SKU | 剂量规格,如 7 剂、14 剂、21 剂 |
|
||
| 价格方案 | 固定价 / 门店浮动价 |
|
||
| 药品分摊 | 每个 SKU 下各药品的分摊价格 |
|
||
| 患者记录 | 患者选择特色处方的记录(待应用→已应用→完成) |
|