Files

237 lines
6.1 KiB
Markdown
Raw Permalink Normal View History

2026-07-08 15:04:42 +08:00
# 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 下各药品的分摊价格 |
| 患者记录 | 患者选择特色处方的记录(待应用→已应用→完成) |