vue2-client 1.20.31 → 1.20.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +0 -6
- package/logs/afgit.config.log +12 -0
- package/logs/afgit.config.log.2026-02-27 +7 -0
- package/logs/afgit.config_error.log +6 -0
- package/logs/afgit.config_error.log.2026-02-27 +3 -0
- package/package.json +1 -1
- package/src/base-client/components/common/XMarkdownSectionExtractor/README.md +201 -201
- package/src/base-client/components/common/XMarkdownSectionExtractor/XMarkdownSectionExtractor.vue +4 -0
- package/src/base-client/components/common/XMarkdownSectionExtractor/bingli.md +63 -85
- package/src/base-client/components/common/XMarkdownSectionExtractor/index.js +6 -6
- package/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer.vue +1 -1
- package/src/base-client/components/common/XTable/XTable.vue +1891 -1897
- package/src/base-client/components/his/XSidebar/XSidebar.vue +1 -0
- package/src/router/async/router.map.js +136 -136
- package/src/utils/util.js +333 -333
- package/vue.config.js +2 -15
- package/assets/c__Users_QXLL_AppData_Roaming_Cursor_User_workspaceStorage_4fb3d7e3441d32bc6f2c7358b4188b48_images_e8c132e6dde513250d7f9721712df1f8-f1522a08-1aa0-4866-b4e5-b34cf2e21109.png +0 -0
- package/docs/HChart/351/205/215/347/275/256/346/226/207/346/241/243.md +0 -960
- package/src/base-client/components/common/XMarkdownViewer/bingli.md +0 -60
- package/test/XList.markdownConfig.spec.js +0 -36
package/.eslintrc.js
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
2026-03-18 10:11:17 - afgit.config - INFO - 开始推送配置
|
|
2
|
+
2026-03-18 10:11:17 - afgit.config - INFO - 开始推送配置文件(含新增与修改),目录: ./config_files
|
|
3
|
+
2026-03-18 10:11:17 - afgit.config - DEBUG - 开始认证,URL: http://192.168.50.67:31467/api/af-auth/login, 用户名: 1
|
|
4
|
+
2026-03-18 10:11:18 - afgit.config - ERROR - 解析认证响应失败: {"code":400,"data":null,"error":true,"msg":"用户不存在/密码错误","success":false}, 用户名: 1, 密码: Class123!@!
|
|
5
|
+
2026-03-18 10:11:18 - afgit.config - ERROR - 认证失败,推送终止
|
|
6
|
+
2026-03-18 10:11:18 - afgit.config - ERROR - 推送配置失败
|
|
7
|
+
2026-03-18 10:11:24 - afgit.config - INFO - 开始拉取最新配置
|
|
8
|
+
2026-03-18 10:11:24 - afgit.config - INFO - 开始下载配置文件到: ./config_files
|
|
9
|
+
2026-03-18 10:11:24 - afgit.config - DEBUG - 开始认证,URL: http://192.168.50.67:31467/api/af-auth/login, 用户名: 1
|
|
10
|
+
2026-03-18 10:11:25 - afgit.config - ERROR - 解析认证响应失败: {"code":400,"data":null,"error":true,"msg":"用户不存在/密码错误","success":false}, 用户名: 1, 密码: Class123!@!
|
|
11
|
+
2026-03-18 10:11:25 - afgit.config - ERROR - 认证失败,下载终止
|
|
12
|
+
2026-03-18 10:11:25 - afgit.config - ERROR - 拉取配置失败
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
2026-02-27 09:24:44 - afgit.config - INFO - 开始拉取最新配置
|
|
2
|
+
2026-02-27 09:24:44 - afgit.config - INFO - 创建本地目录: ./config_files
|
|
3
|
+
2026-02-27 09:24:44 - afgit.config - INFO - 开始下载配置文件到: ./config_files
|
|
4
|
+
2026-02-27 09:24:44 - afgit.config - DEBUG - 开始认证,URL: http://192.168.50.67:31467/api/af-auth/login, 用户名: 1
|
|
5
|
+
2026-02-27 09:24:44 - afgit.config - ERROR - 解析认证响应失败: {"code":400,"data":null,"error":true,"msg":"用户不存在/密码错误","success":false}, 用户名: 1, 密码: Class123!@!
|
|
6
|
+
2026-02-27 09:24:44 - afgit.config - ERROR - 认证失败,下载终止
|
|
7
|
+
2026-02-27 09:24:44 - afgit.config - ERROR - 拉取配置失败
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
2026-03-18 10:11:18 - afgit.config - ERROR - 解析认证响应失败: {"code":400,"data":null,"error":true,"msg":"用户不存在/密码错误","success":false}, 用户名: 1, 密码: Class123!@!
|
|
2
|
+
2026-03-18 10:11:18 - afgit.config - ERROR - 认证失败,推送终止
|
|
3
|
+
2026-03-18 10:11:18 - afgit.config - ERROR - 推送配置失败
|
|
4
|
+
2026-03-18 10:11:25 - afgit.config - ERROR - 解析认证响应失败: {"code":400,"data":null,"error":true,"msg":"用户不存在/密码错误","success":false}, 用户名: 1, 密码: Class123!@!
|
|
5
|
+
2026-03-18 10:11:25 - afgit.config - ERROR - 认证失败,下载终止
|
|
6
|
+
2026-03-18 10:11:25 - afgit.config - ERROR - 拉取配置失败
|
package/package.json
CHANGED
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
# XMarkdownSectionExtractor 组件
|
|
2
|
-
|
|
3
|
-
从 markdown 文档中抽取指定区块的内容,并可转换为不同组件需要的格式。
|
|
4
|
-
|
|
5
|
-
## 功能特性
|
|
6
|
-
|
|
7
|
-
- 支持多种 markdown 源(字符串、import、File/Blob、URL)
|
|
8
|
-
- 按配置的关键字/标题级别抽取区块
|
|
9
|
-
- 支持多种输出格式(默认、xlist-default、xlist-card)
|
|
10
|
-
- 可配置字段映射
|
|
11
|
-
|
|
12
|
-
## 安装引入
|
|
13
|
-
|
|
14
|
-
```javascript
|
|
15
|
-
import XMarkdownSectionExtractor from '@vue2-client/base-client/components/common/XMarkdownSectionExtractor'
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## 基本用法
|
|
19
|
-
|
|
20
|
-
### 1. 获取原始 sections 数据
|
|
21
|
-
|
|
22
|
-
```vue
|
|
23
|
-
<XMarkdownSectionExtractor
|
|
24
|
-
:source="markdownSource"
|
|
25
|
-
:sectionsConfig="[{ key: 'suggestion', label: '建议', headingLevel: 3 }]"
|
|
26
|
-
v-slot="{ sections, itemsByKey }"
|
|
27
|
-
>
|
|
28
|
-
<div v-for="sec in sections">
|
|
29
|
-
<h3>{{ sec.label }}</h3>
|
|
30
|
-
<ul>
|
|
31
|
-
<li v-for="item in sec.items">{{ item.name }}</li>
|
|
32
|
-
</ul>
|
|
33
|
-
</div>
|
|
34
|
-
</XMarkdownSectionExtractor>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### 2. 转换为 XList 默认模式
|
|
38
|
-
|
|
39
|
-
```vue
|
|
40
|
-
<XMarkdownSectionExtractor
|
|
41
|
-
:source="markdownSource"
|
|
42
|
-
:sectionsConfig="sectionsConfig"
|
|
43
|
-
outputFormat="xlist-default"
|
|
44
|
-
v-slot="{ formattedData }"
|
|
45
|
-
>
|
|
46
|
-
<XList :initialData="formattedData" />
|
|
47
|
-
</XMarkdownSectionExtractor>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 3. 转换为 XList 卡片模式
|
|
51
|
-
|
|
52
|
-
```vue
|
|
53
|
-
<XMarkdownSectionExtractor
|
|
54
|
-
:source="markdownSource"
|
|
55
|
-
:sectionsConfig="sectionsConfig"
|
|
56
|
-
outputFormat="xlist-card"
|
|
57
|
-
v-slot="{ formattedData }"
|
|
58
|
-
>
|
|
59
|
-
<XList :initialData="formattedData" listMode="card" />
|
|
60
|
-
</XMarkdownSectionExtractor>
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 4. 自定义字段映射
|
|
64
|
-
|
|
65
|
-
```vue
|
|
66
|
-
<XMarkdownSectionExtractor
|
|
67
|
-
:source="markdownSource"
|
|
68
|
-
:sectionsConfig="sectionsConfig"
|
|
69
|
-
outputFormat="xlist-default"
|
|
70
|
-
:outputOptions="{ numberField: 'id', nameField: 'title' }"
|
|
71
|
-
v-slot="{ formattedData }"
|
|
72
|
-
>
|
|
73
|
-
<XList :initialData="formattedData" />
|
|
74
|
-
</XMarkdownSectionExtractor>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### 5. 手动触发抽取
|
|
78
|
-
|
|
79
|
-
```vue
|
|
80
|
-
<XMarkdownSectionExtractor
|
|
81
|
-
:source="markdownSource"
|
|
82
|
-
:sectionsConfig="sectionsConfig"
|
|
83
|
-
:autoExtract="false"
|
|
84
|
-
ref="extractor"
|
|
85
|
-
/>
|
|
86
|
-
|
|
87
|
-
// 手动调用
|
|
88
|
-
this.$refs.extractor.extract().then(sections => {
|
|
89
|
-
console.log('抽取结果:', sections)
|
|
90
|
-
})
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Props
|
|
94
|
-
|
|
95
|
-
| 属性 | 类型 | 默认值 | 说明 |
|
|
96
|
-
|------|------|--------|------|
|
|
97
|
-
| source | String/Object | - | markdown 源,支持字符串、import、File/Blob、URL |
|
|
98
|
-
| sectionsConfig | Array | [] | 区块配置数组 |
|
|
99
|
-
| autoExtract | Boolean | true | 是否在 mounted 时自动抽取 |
|
|
100
|
-
| outputFormat | String | 'default' | 输出格式:default / xlist-default / xlist-card |
|
|
101
|
-
| outputOptions | Object | {} | 字段映射选项 |
|
|
102
|
-
|
|
103
|
-
### sectionsConfig 配置说明
|
|
104
|
-
|
|
105
|
-
```javascript
|
|
106
|
-
[
|
|
107
|
-
{
|
|
108
|
-
key: 'nextStepSuggestion', // 唯一标识
|
|
109
|
-
label: '下一步建议', // 标题关键字
|
|
110
|
-
headingLevel: 3 // 标题级别(1-6)
|
|
111
|
-
}
|
|
112
|
-
]
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### outputOptions 配置说明
|
|
116
|
-
|
|
117
|
-
```javascript
|
|
118
|
-
// xlist-default 模式
|
|
119
|
-
{ numberField: 'number', nameField: 'name' }
|
|
120
|
-
|
|
121
|
-
// xlist-card 模式
|
|
122
|
-
{ labelField: 'label', valueField: 'name' }
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Slots
|
|
126
|
-
|
|
127
|
-
| 名称 | 说明 |
|
|
128
|
-
|---------|-------------|
|
|
129
|
-
| default | 默认插槽,暴露以下数据 |
|
|
130
|
-
|
|
131
|
-
### 插槽暴露的数据
|
|
132
|
-
|
|
133
|
-
| 变量 | 类型 | 说明 |
|
|
134
|
-
|---------------|---------|--------------------------|
|
|
135
|
-
| sections | Array | 原始抽取结果数组 |
|
|
136
|
-
| itemsArray | Array | 打平的一维条目数组 |
|
|
137
|
-
| itemsByKey | Object | 按 key 分组的条目对象 |
|
|
138
|
-
| formattedData | Array | 格式化后的数据(根据 outputFormat) |
|
|
139
|
-
| loading | Boolean | 加载状态 |
|
|
140
|
-
| error | Error | 错误信息 |
|
|
141
|
-
|
|
142
|
-
## Events
|
|
143
|
-
|
|
144
|
-
| 事件名 | 参数 | 说明 |
|
|
145
|
-
|------------------------|-----------------|------------|
|
|
146
|
-
| extracted | (sections) | 抽取完成时触发 |
|
|
147
|
-
| extracted-items | (itemsArray) | 条目数组抽取完成 |
|
|
148
|
-
| extracted-items-by-key | (itemsByKey) | 按 key 分组完成 |
|
|
149
|
-
| formatted-data | (formattedData) | 格式化数据完成 |
|
|
150
|
-
| error | (error) | 发生错误时触发 |
|
|
151
|
-
|
|
152
|
-
## 输出格式说明
|
|
153
|
-
|
|
154
|
-
### default(默认格式)
|
|
155
|
-
|
|
156
|
-
返回原始 sections 数组:
|
|
157
|
-
|
|
158
|
-
```jsons
|
|
159
|
-
[
|
|
160
|
-
{
|
|
161
|
-
"key": "nextStepSuggestion",
|
|
162
|
-
"label": "下一步建议",
|
|
163
|
-
"content": "...",
|
|
164
|
-
"items": [
|
|
165
|
-
{ "id": 1, "name": "头颅MRI + MRV" },
|
|
166
|
-
{ "id": 2, "name": "血液学检验" }
|
|
167
|
-
]
|
|
168
|
-
}
|
|
169
|
-
]
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### xlist-default 格式
|
|
173
|
-
|
|
174
|
-
适用于 XList 默认模式:
|
|
175
|
-
|
|
176
|
-
```json
|
|
177
|
-
[
|
|
178
|
-
{ "number": 1, "name": "头颅MRI + MRV" },
|
|
179
|
-
{ "number": 2, "name": "血液学检验" }
|
|
180
|
-
]
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### xlist-card 格式
|
|
184
|
-
|
|
185
|
-
适用于 XList 卡片模式(二维数组):
|
|
186
|
-
|
|
187
|
-
```json
|
|
188
|
-
[
|
|
189
|
-
[
|
|
190
|
-
{ "label": "下一步建议", "value": "下一步建议", "type": "title", "bold": true },
|
|
191
|
-
{ "label": "", "value": "头颅MRI + MRV", "type": "text" },
|
|
192
|
-
{ "label": "", "value": "血液学检验", "type": "text" }
|
|
193
|
-
]
|
|
194
|
-
]
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
## 区块抽取规则
|
|
198
|
-
|
|
199
|
-
- 按配置的 `label`(关键字)在 markdown 中查找对应标题
|
|
200
|
-
- 抽取范围:从标题下方到下一个同级或更高等级标题之前的内容
|
|
201
|
-
- 支持自定义正则匹配:`labelPattern: /^建议$/`
|
|
1
|
+
# XMarkdownSectionExtractor 组件
|
|
2
|
+
|
|
3
|
+
从 markdown 文档中抽取指定区块的内容,并可转换为不同组件需要的格式。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
- 支持多种 markdown 源(字符串、import、File/Blob、URL)
|
|
8
|
+
- 按配置的关键字/标题级别抽取区块
|
|
9
|
+
- 支持多种输出格式(默认、xlist-default、xlist-card)
|
|
10
|
+
- 可配置字段映射
|
|
11
|
+
|
|
12
|
+
## 安装引入
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
import XMarkdownSectionExtractor from '@vue2-client/base-client/components/common/XMarkdownSectionExtractor'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 基本用法
|
|
19
|
+
|
|
20
|
+
### 1. 获取原始 sections 数据
|
|
21
|
+
|
|
22
|
+
```vue
|
|
23
|
+
<XMarkdownSectionExtractor
|
|
24
|
+
:source="markdownSource"
|
|
25
|
+
:sectionsConfig="[{ key: 'suggestion', label: '建议', headingLevel: 3 }]"
|
|
26
|
+
v-slot="{ sections, itemsByKey }"
|
|
27
|
+
>
|
|
28
|
+
<div v-for="sec in sections">
|
|
29
|
+
<h3>{{ sec.label }}</h3>
|
|
30
|
+
<ul>
|
|
31
|
+
<li v-for="item in sec.items">{{ item.name }}</li>
|
|
32
|
+
</ul>
|
|
33
|
+
</div>
|
|
34
|
+
</XMarkdownSectionExtractor>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. 转换为 XList 默认模式
|
|
38
|
+
|
|
39
|
+
```vue
|
|
40
|
+
<XMarkdownSectionExtractor
|
|
41
|
+
:source="markdownSource"
|
|
42
|
+
:sectionsConfig="sectionsConfig"
|
|
43
|
+
outputFormat="xlist-default"
|
|
44
|
+
v-slot="{ formattedData }"
|
|
45
|
+
>
|
|
46
|
+
<XList :initialData="formattedData" />
|
|
47
|
+
</XMarkdownSectionExtractor>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 3. 转换为 XList 卡片模式
|
|
51
|
+
|
|
52
|
+
```vue
|
|
53
|
+
<XMarkdownSectionExtractor
|
|
54
|
+
:source="markdownSource"
|
|
55
|
+
:sectionsConfig="sectionsConfig"
|
|
56
|
+
outputFormat="xlist-card"
|
|
57
|
+
v-slot="{ formattedData }"
|
|
58
|
+
>
|
|
59
|
+
<XList :initialData="formattedData" listMode="card" />
|
|
60
|
+
</XMarkdownSectionExtractor>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. 自定义字段映射
|
|
64
|
+
|
|
65
|
+
```vue
|
|
66
|
+
<XMarkdownSectionExtractor
|
|
67
|
+
:source="markdownSource"
|
|
68
|
+
:sectionsConfig="sectionsConfig"
|
|
69
|
+
outputFormat="xlist-default"
|
|
70
|
+
:outputOptions="{ numberField: 'id', nameField: 'title' }"
|
|
71
|
+
v-slot="{ formattedData }"
|
|
72
|
+
>
|
|
73
|
+
<XList :initialData="formattedData" />
|
|
74
|
+
</XMarkdownSectionExtractor>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 5. 手动触发抽取
|
|
78
|
+
|
|
79
|
+
```vue
|
|
80
|
+
<XMarkdownSectionExtractor
|
|
81
|
+
:source="markdownSource"
|
|
82
|
+
:sectionsConfig="sectionsConfig"
|
|
83
|
+
:autoExtract="false"
|
|
84
|
+
ref="extractor"
|
|
85
|
+
/>
|
|
86
|
+
|
|
87
|
+
// 手动调用
|
|
88
|
+
this.$refs.extractor.extract().then(sections => {
|
|
89
|
+
console.log('抽取结果:', sections)
|
|
90
|
+
})
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Props
|
|
94
|
+
|
|
95
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
96
|
+
|------|------|--------|------|
|
|
97
|
+
| source | String/Object | - | markdown 源,支持字符串、import、File/Blob、URL |
|
|
98
|
+
| sectionsConfig | Array | [] | 区块配置数组 |
|
|
99
|
+
| autoExtract | Boolean | true | 是否在 mounted 时自动抽取 |
|
|
100
|
+
| outputFormat | String | 'default' | 输出格式:default / xlist-default / xlist-card |
|
|
101
|
+
| outputOptions | Object | {} | 字段映射选项 |
|
|
102
|
+
|
|
103
|
+
### sectionsConfig 配置说明
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
[
|
|
107
|
+
{
|
|
108
|
+
key: 'nextStepSuggestion', // 唯一标识
|
|
109
|
+
label: '下一步建议', // 标题关键字
|
|
110
|
+
headingLevel: 3 // 标题级别(1-6)
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### outputOptions 配置说明
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
// xlist-default 模式
|
|
119
|
+
{ numberField: 'number', nameField: 'name' }
|
|
120
|
+
|
|
121
|
+
// xlist-card 模式
|
|
122
|
+
{ labelField: 'label', valueField: 'name' }
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Slots
|
|
126
|
+
|
|
127
|
+
| 名称 | 说明 |
|
|
128
|
+
|---------|-------------|
|
|
129
|
+
| default | 默认插槽,暴露以下数据 |
|
|
130
|
+
|
|
131
|
+
### 插槽暴露的数据
|
|
132
|
+
|
|
133
|
+
| 变量 | 类型 | 说明 |
|
|
134
|
+
|---------------|---------|--------------------------|
|
|
135
|
+
| sections | Array | 原始抽取结果数组 |
|
|
136
|
+
| itemsArray | Array | 打平的一维条目数组 |
|
|
137
|
+
| itemsByKey | Object | 按 key 分组的条目对象 |
|
|
138
|
+
| formattedData | Array | 格式化后的数据(根据 outputFormat) |
|
|
139
|
+
| loading | Boolean | 加载状态 |
|
|
140
|
+
| error | Error | 错误信息 |
|
|
141
|
+
|
|
142
|
+
## Events
|
|
143
|
+
|
|
144
|
+
| 事件名 | 参数 | 说明 |
|
|
145
|
+
|------------------------|-----------------|------------|
|
|
146
|
+
| extracted | (sections) | 抽取完成时触发 |
|
|
147
|
+
| extracted-items | (itemsArray) | 条目数组抽取完成 |
|
|
148
|
+
| extracted-items-by-key | (itemsByKey) | 按 key 分组完成 |
|
|
149
|
+
| formatted-data | (formattedData) | 格式化数据完成 |
|
|
150
|
+
| error | (error) | 发生错误时触发 |
|
|
151
|
+
|
|
152
|
+
## 输出格式说明
|
|
153
|
+
|
|
154
|
+
### default(默认格式)
|
|
155
|
+
|
|
156
|
+
返回原始 sections 数组:
|
|
157
|
+
|
|
158
|
+
```jsons
|
|
159
|
+
[
|
|
160
|
+
{
|
|
161
|
+
"key": "nextStepSuggestion",
|
|
162
|
+
"label": "下一步建议",
|
|
163
|
+
"content": "...",
|
|
164
|
+
"items": [
|
|
165
|
+
{ "id": 1, "name": "头颅MRI + MRV" },
|
|
166
|
+
{ "id": 2, "name": "血液学检验" }
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### xlist-default 格式
|
|
173
|
+
|
|
174
|
+
适用于 XList 默认模式:
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
[
|
|
178
|
+
{ "number": 1, "name": "头颅MRI + MRV" },
|
|
179
|
+
{ "number": 2, "name": "血液学检验" }
|
|
180
|
+
]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### xlist-card 格式
|
|
184
|
+
|
|
185
|
+
适用于 XList 卡片模式(二维数组):
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
[
|
|
189
|
+
[
|
|
190
|
+
{ "label": "下一步建议", "value": "下一步建议", "type": "title", "bold": true },
|
|
191
|
+
{ "label": "", "value": "头颅MRI + MRV", "type": "text" },
|
|
192
|
+
{ "label": "", "value": "血液学检验", "type": "text" }
|
|
193
|
+
]
|
|
194
|
+
]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## 区块抽取规则
|
|
198
|
+
|
|
199
|
+
- 按配置的 `label`(关键字)在 markdown 中查找对应标题
|
|
200
|
+
- 抽取范围:从标题下方到下一个同级或更高等级标题之前的内容
|
|
201
|
+
- 支持自定义正则匹配:`labelPattern: /^建议$/`
|
|
@@ -1,85 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
1
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- **在确保无占位性病变后进行**,以测量脑脊液开放压。
|
|
65
|
-
- 若压力 **≥ 25 cmH₂O**,且脑脊液成分正常,支持IIH诊断 ^[2]^。
|
|
66
|
-
- **注意**:颅内压明显增高时,腰穿有诱发脑疝风险,应谨慎评估 ^[3]^。
|
|
67
|
-
|
|
68
|
-
3. **眼科评估**:
|
|
69
|
-
- 包括视力、视野检查及眼底照相,评估视神经损害程度。
|
|
70
|
-
- 视力损害是IIH最严重的并发症,需密切监测。
|
|
71
|
-
|
|
72
|
-
4. **妊娠测试**:
|
|
73
|
-
- 停经2个月,需排除妊娠,因IIH在妊娠期可加重,且治疗受限。
|
|
74
|
-
|
|
75
|
-
5. **治疗建议**:
|
|
76
|
-
- **一线治疗**:**乙酰唑胺**(acetazolamide),通过减少脑脊液生成降低颅内压。
|
|
77
|
-
- **体重管理**:若超重或肥胖,减重是根本性治疗措施之一 ^[11]^。
|
|
78
|
-
- **严重或进行性视力损害**:考虑**视神经鞘开窗术**或**脑脊液分流术**(如腰-腹腔分流)。
|
|
79
|
-
- **静脉窦狭窄**:部分患者存在横窦狭窄,可考虑**血管内支架置入** ^[6]^。
|
|
80
|
-
|
|
81
|
-
6. **避免使用可能加重病情的药物**:如四环素类、维生素A衍生物等。
|
|
82
|
-
|
|
83
|
-
综上,该患者高度怀疑**特发性颅内压增高(IIH)**,需尽快完善影像学及腰穿检查以确诊,并评估视力风险。
|
|
84
|
-
|
|
85
|
-
我建议您进一步查阅特发性颅内压增高在育龄期女性中的诊断标准与视力损害预测因素,以及乙酰唑胺治疗的安全性和长期随访数据。您需要我帮您检索相关临床指南或系统综述吗?
|
|
1
|
+
根据提供的病历信息,该患者存在两个阶段的头痛表现,需分别分析。
|
|
2
|
+
|
|
3
|
+
### 一、既往头痛特点(2年余)
|
|
4
|
+
- **特征**:反复左侧额部搏动性疼痛,持续12小时至3天,每月1-2次,VAS 8分。
|
|
5
|
+
- **伴随症状**:畏光、畏声,严重时伴恶心、呕吐。
|
|
6
|
+
- **加重因素**:日常活动、吹风、受凉、压力大。
|
|
7
|
+
- **缓解因素**:休息或布洛芬。
|
|
8
|
+
- **影像学检查正常**。
|
|
9
|
+
|
|
10
|
+
此符合**无先兆偏头痛**的典型表现。根据国际头痛协会(ICHD-Ⅲ)标准,发作至少5次,持续4-72小时,具单侧、搏动性、中重度、活动加重及伴恶心/畏光畏声等特点,且排除其他病因。
|
|
11
|
+
|
|
12
|
+
### 二、本次急性加重表现(1天)
|
|
13
|
+
- **性质改变**:由偏侧搏动性转为**全头胀痛**,VAS 10分。
|
|
14
|
+
- **体位相关性**:**平躺时加重,站立时减轻**。
|
|
15
|
+
- **咳嗽时加重**。
|
|
16
|
+
- **治疗无效**:布洛芬无效。
|
|
17
|
+
- **新发症状**:恶心、呕吐、**视物模糊**。
|
|
18
|
+
- **查体发现**:**双侧视乳头水肿**、颈强3指。
|
|
19
|
+
|
|
20
|
+
这些特征强烈提示**颅内压增高**。
|
|
21
|
+
|
|
22
|
+
尤其关键点是:
|
|
23
|
+
- **体位性头痛**(平躺加重、站立减轻)是**低颅压性头痛**的典型表现,但此处与之相反。
|
|
24
|
+
- 本例为**平躺加重、站立减轻**,提示**高颅压**,且咳嗽加重也符合颅内压增高时颅内压进一步升高的表现。
|
|
25
|
+
- **双侧视乳头水肿**是颅内压增高的客观体征。
|
|
26
|
+
- 颈强但克氏征、布氏征阴性,提示非典型脑膜炎。
|
|
27
|
+
|
|
28
|
+
结合以上,**最可能的诊断是颅内压增高**,病因需进一步排查。
|
|
29
|
+
|
|
30
|
+
### 初步诊断
|
|
31
|
+
1. **颅内压增高(疑诊)**
|
|
32
|
+
2. **无先兆偏头痛**
|
|
33
|
+
|
|
34
|
+
### 需重点鉴别的诊断
|
|
35
|
+
- **特发性颅内压增高(假性脑瘤)**:多见于**肥胖育龄女性**,表现为头痛、视乳头水肿、视力障碍,脑脊液压力升高但成分正常。该患者2个月前停经,需排除妊娠。
|
|
36
|
+
- **颅内占位性病变**(如肿瘤、血肿):需影像学排除。
|
|
37
|
+
- **静脉窦血栓**:头痛为持续性、进行性,可伴视乳头水肿、癫痫、局灶体征。**87.1%的患者以头痛为首发症状**,且**多为持续性、进展性**,部分为**单侧且严重** ^[4]^。
|
|
38
|
+
- **蛛网膜下腔出血**:突发“雷击样”头痛,但本例为渐进加重,不支持。
|
|
39
|
+
|
|
40
|
+
### 下一步建议
|
|
41
|
+
|
|
42
|
+
1. **尽快完善头颅影像学检查**:
|
|
43
|
+
- **头颅MRI + MRV(磁共振静脉成像)**:排除静脉窦血栓、占位性病变。
|
|
44
|
+
- 若怀疑占位,增强扫描必要。
|
|
45
|
+
2. **血液学检验**:包括凝血功能、感染指标、激素水平等。
|
|
46
|
+
3. **妇产科会诊**:明确有无妊娠,因停经2个月。
|
|
47
|
+
4. **必要时腰椎穿刺**:
|
|
48
|
+
- 测量脑脊液压力,若>250 mmH₂O支持颅内压增高。
|
|
49
|
+
- 脑脊液成分正常则支持**特发性颅内压增高**。
|
|
50
|
+
- **但若怀疑占位,需先排除占位后再行腰穿,以防脑疝**。
|
|
51
|
+
|
|
52
|
+
### 治疗建议
|
|
53
|
+
- **建议住院治疗**,密切监测神经系统状态。
|
|
54
|
+
- **对症处理**:可使用脱水剂(如甘露醇)降低颅内压。
|
|
55
|
+
- **根本治疗**取决于病因:
|
|
56
|
+
- 若为**特发性颅内压增高**,治疗包括**减重、限盐、乙酰唑胺**等。
|
|
57
|
+
- 若为**静脉窦血栓**,需抗凝治疗。
|
|
58
|
+
- 若为**占位性病变**,需神经外科干预。
|
|
59
|
+
|
|
60
|
+
### 总结
|
|
61
|
+
患者既往符合**无先兆偏头痛**,但本次发作性质显著不同,结合**体位性头痛、视乳头水肿、颈强**,提示**颅内压增高**。**首要任务是排除器质性病因**,如颅内占位、静脉窦血栓等。**尽快完善头颅MRI及MRV,并评估妊娠状态**。
|
|
62
|
+
|
|
63
|
+
我建议您进一步查阅特发性颅内压增高在育龄女性中的诊断标准及颅内静脉窦血栓的影像学鉴别要点,您需要我帮您检索相关临床指南或系统综述吗?
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import XMarkdownSectionExtractor from './XMarkdownSectionExtractor'
|
|
2
|
-
|
|
3
|
-
export default XMarkdownSectionExtractor
|
|
4
|
-
|
|
5
|
-
export * from './markdownSectionExtractor'
|
|
6
|
-
|
|
1
|
+
import XMarkdownSectionExtractor from './XMarkdownSectionExtractor'
|
|
2
|
+
|
|
3
|
+
export default XMarkdownSectionExtractor
|
|
4
|
+
|
|
5
|
+
export * from './markdownSectionExtractor'
|
|
6
|
+
|