目录
一、适用场景
二、业务需求
三、Python 文件
(1)创建文件
(2)代码示例
四、csv 文件
一、适用场景
实战场景:
- 问卷全部为单选题
- 问卷问题全部为必填
- 问题之间无关联关系
- 每个问题的答案分数不同
- 根据问卷全部问题得分生成总分数
- 根据问卷总分数生成对应判断文案结果
- 生成 csv 文件表格需要设置固定表头
- 表格内容需要根据总分从小到大排列
二、业务需求
压疮风险评估表 - Braden
危险因素/分数 | 1 分 | 2 分 | 3 分 | 4 分 | 评分 |
1. 感官感觉:对不适的压力具有反应的能力 | 完全受损,对疼痛刺激无反应(没有呻吟、退缩,或握手动作),这是由于意识水平下降及全身表面对疼痛感觉能力下降。 | 大部份受限,仅对疼痛刺激有反应,除了呻吟和烦躁不安, 不能表达不适;或有感官障碍,身体一半以上感觉疼痛或不适的能力受限制。 | 轻度受限,对口头指令有反应,但常常不能表达不适或翻身的需要,或由于感觉受损,而对疼痛的反应能力受限,或只在一两个肢体感不适。 | 无受损害,对口头指令有反应,没有感觉受损而使活动受限或有不适感。 | |
2. 潮湿情况:皮肤的潮湿程度 | 持续潮湿,由于出汗或小便,皮肤总是处于潮湿状态( 这状态且在每次移动或翻身时发现)。 | 常常潮湿, 皮肤经常潮湿,床单至 少每班(早、午、晚)更 换一次。 | 偶尔潮湿,皮肤偶尔潮湿,床单需要每天额外换一次。 | 几乎不潮湿, 皮肤经常保持干燥,仅在常规时间需要更换床单。 | |
3. 活动情况:身体活动程度 | 卧床,不能下床。 | 局限于轮椅,活动行走严重受限或无法站立,不能承受身体重量或必须依赖轮椅。 | 偶尔行走, 每日行走短距离时需要或不需要帮助。 | 经常行走, 每日户外行走至少两次和室内行走至少两小时一次。 | |
4. 移动情况:变换和控制体位的能力 | 完全不能,如果没有协助的话,身体或四肢不作任何甚至微小的位置改变。 | 严重受限,作很微小的身体或肢体位置的改变,但不能经常或独立地作明显的移动。 | 轻度受限,能经常独立地作微小的四肢或身体移动。 | 不受限,不需要协助就能完成较大的和经常的体位改变。 | |
5. 摩擦力 | 有问题需要中等到最大的协助才能移动,且以滑行方式移动。身体经常移位,需要最大帮助才能恢复体位。痉挛、挛缩或烦躁导致不断的摩擦。 | 潜在问题 移动无力或需少许帮助。移动时皮肤可能会因而跟床单、椅子等摩擦。坐着或躺卧时,较长时间可维持良好的体位,但偶尔也滑下。 | 无明显问题 在床上或椅子上可以独立移动,并具有足够的肌力完全抬举身体来移动。所有的时间在床上或椅子上能保持良好的体位。 | ||
6. 营养情况 | 非常差,每餐进食少于1 / 3份量。液体进入量少或禁食或进行静脉输入多于5日。 | 可能营养不足,每餐进食约1 / 2份量 (每日给与3份量的蛋白质作计算单位,间中会进食营养补充)。 | 适当,每餐进食多于1 / 2份量,每日进食4份量的蛋白质(包括肉、奶类产品)。(进食以管饲为主) | 良好,每餐进食整份餐份量,有足够蛋白质提供,应须额外营养补充剂,而两餐间有进食小食。 | |
压疮风险总分 | □ 分 | ||||
压疮风险分级 | □ 级 | 0 低风险:16 分或以上 1 中风险:12-15 分 2 高风险:少于 12 分 |
压疮风险分级标准
分级 | 分级名称 | 分级标准 |
0 | 低风险 | 总分 16 分及以上 |
1 | 中风险 | 总分 12-15 分 |
2 | 高风险 | 少于 12 分 |
三、Python 文件
(1)创建文件
PerceptualCommunicateForm.py
(2)代码示例
- 以下代码是用来生成压疮风险评估表的所有可能性分数组合,并且根据分数组合来判断风险等级。
- 导入必要的模块:os、csv、product(笛卡尔积生成器),用于生成多个序列的笛卡尔积。
- 定义 6 个列表,分别存储 6 个问题的评分选项。
- 对 6 个问题的评分选项进行详细描述,以及每个选项对应的评分标准。
- 配置 CSV 文件的基本参数:文件路径和文件名、表头。
- 检查是否已存在该 CSV 文件,如已存在则先删除。
- 接下来,使用 for 循环遍历所有可能的分数组合,计算分数总和,并根据总分来判断风险等级。如果总分大于等于 16,则为低风险;如果总分在 12 到 15 之间,则为中风险;如果总分小于 12,则为高风险。
- 生成 CSV 文件,表格内容未排序。根据 6 个问题的评分选项,生成笛卡尔积,并计算出总分和风险等级,将结果写入CSV文件。其中,使用了 with open 语句来打开文件,并使用 newline='' '' 参数来避免写入 csv 文件时出现空行的问题。
- 编辑已存在的 CSV 文件,按表格第 2 列从小到大排序内容。
- 最后,关闭文件。
import os
import csv
from itertools import product
# 压疮风险评估表-Braden
Score_1 = [1, 2, 3, 4]
Score_2 = [1, 2, 3, 4]
Score_3 = [1, 2, 3, 4]
Score_4 = [1, 2, 3, 4]
Score_5 = [1, 2, 3]
Score_6 = [1, 2, 3, 4]
'''
[压疮风险评估表问卷问题及答案(得分)]
-- Score_1:第 1 题评分
-- Score_2:第 2 题评分
-- Score_3:第 3 题评分
-- Score_4:第 4 题评分
-- Score_5:第 5 题评分
-- Score_6:第 6 题评分
第 1 题:[感官感觉]对不适的压力具有反应的能力()
a.完全受损,对疼痛刺激无反应(没有呻吟、退缩,或握手动作),这是由于意识水平下降及全身表面对疼痛感觉能力下降。
b.大部份受限,仅对疼痛刺激有反应,除了呻吟和烦躁不安,不能表达不适;或有感官障碍,身体一半以上感觉疼痛或不适的能力受限制。
c.轻度受限,对口头指令有反应,但常常不能表达不适或翻身的需要,或由于感觉受损,而对疼痛的反应能力受限,或只在一两个肢体感不适。
d.无受损害,对口头指令有反应,没有感觉受损而使活动受限或有不适感。
-- 评分标准
a.1 分
b.2 分
c.3 分
d.4 分
第 2 题:[潮湿情况]皮肤的潮湿程度()
a.持续潮湿,由于出汗或小便,皮肤总是处于潮湿状态( 这状态且在每次移动或翻身时发现)。
b.常常潮湿,皮肤经常潮湿,床单至少每班(早、午、晚)更换一次。
c.偶尔潮湿,皮肤偶尔潮湿,床单需要每天额外换一次。
d.几乎不潮湿,皮肤经常保持干燥,仅在常规时间需要更换床单。
-- 评分标准
a.1 分
b.2 分
c.3 分
d.4 分
第 3 题:[活动情况]身体活动程度()
a.卧床,不能下床。
b.局限于轮椅,活动行走严重受限或无法站立,不能承受身体重量或必须依赖轮椅。
c.偶尔行走,每日行走短距离时需要或不需要帮助。
d.经常行走,每日户外行走至少两次和室内行走至少两小时一次。
-- 评分标准
a.1 分
b.2 分
c.3 分
d.4 分
第 4 题:[移动情况]变换和控制体位的能力()
a.完全不能,如果没有协助的话,身体或四肢不作任何甚至微小的位置改变。
b.严重受限,作很微小的身体或肢体位置的改变,但不能经常或独立地作明显的移动。
c.轻度受限,能经常独立地作微小的四肢或身体移动。
d.不受限,不需要协助就能完成较大的和经常的体位改变。
-- 评分标准
a.1 分
b.2 分
c.3 分
d.4 分
第 5 题:[摩擦力]()
a.有问题,需要中等到最大的协助才能移动,且以滑行方式移动。身体经常移位,需要最大帮助才能恢复体位。痉挛、挛缩或烦躁导致不断的摩擦。
b.潜在问题,移动无力或需少许帮助。移动时皮肤可能会因而跟床单、椅子等摩擦。坐着或躺卧时,较长时间可维持良好的体位,但偶尔也滑下。
c.无明显问题,在床上或椅子上可以独立移动,并具有足够的肌力完全抬举身体来移动。所有的时间在床上或椅子上能保持良好的体位。
-- 评分标准
a.1 分
b.2 分
c.3 分
第 6 题:[营养情况]()
a.非常差,每餐进食少于1/3份量。液体进入量少或禁食或进行静脉输入多于5日。
b.可能营养不足,每餐进食约1/2份量(每日给与3份量的蛋白质作计算单位,间中会进食营养补充)。
c.适当,每餐进食多于1/2份量,每日进食4份量的蛋白质(包括肉、奶类产品)。(进食以管饲为主)
d.良好,每餐进食整份餐份量,有足够蛋白质提供,应须额外营养补充剂,而两餐间有进食小食。
-- 评分标准
a.1 分
b.2 分
c.3 分
d.4 分
'''
'''
[压疮风险总分]
-- 评分标准:以上 6 个问题评分之和
'''
'''
[压疮风险分级标准]
-- 等级标准:根据压疮风险总分分级
0 低风险:16 分及以上
1 中风险:12-15 分
2 高风险:少于 12 分
'''
# 配置文件:配置csv文件表格基本参数
# 文件路径和文件名称
filename = r'E:\ScoreGradeForm\CSVFiles\压疮风险评估表.csv'
# 表头
csvheader = ['压疮风险分级', '压疮风险总分', '问题 1 评分[感官感觉]', '问题 2 评分[潮湿情况]',
'问题 3 评分[活动情况]', '问题 4 评分[移动情况]', '问题 5 评分[摩擦力]', '问题 6 评分[营养情况]']
# 删除文件:检查是否已存在该csv文件,如已存在则先删除
if os.path.exists(filename):
os.remove(filename)
# 新建文件:生成csv文件,表格内容未排序
with open(filename, 'a+', encoding='utf-8-sig', newline='') as csvfile_0:
# 生成表头
header = csvheader
writer = csv.writer(csvfile_0)
writer.writerow(header)
# 生成表格内容
for scoreGroup in product(Score_1, Score_2, Score_3, Score_4, Score_5, Score_6):
if sum(scoreGroup) >= 16:
grade = '低风险'
elif 12 <= sum(scoreGroup) <= 15:
grade = '中风险'
elif sum(scoreGroup) < 12:
grade = '高风险'
else:
grade = '其他等级'
writer.writerow([grade, sum(scoreGroup), scoreGroup[0], scoreGroup[1], scoreGroup[2], scoreGroup[3],
scoreGroup[4], scoreGroup[5]])
# 编辑文件:将已存在的csv文件进行调整,按表格第2列从小到大排序内容
with open(filename, 'r', encoding='utf-8-sig') as csvfile_1:
rows = list(csv.reader(csvfile_1))
rows[1:] = sorted(rows[1:], key=lambda x: int(x[1]))
with open(filename, 'w', encoding='utf-8-sig', newline='') as csvfile_2:
writer = csv.writer(csvfile_2)
writer.writerows(rows)
四、csv 文件
生成如下结果表格:
示例表格结果如下,因篇幅限制展示不全,完整表格请用代码生成:
压疮风险分级 | 压疮风险总分 | 问题 1 评分[感官感觉] | 问题 2 评分[潮湿情况] | 问题 3 评分[活动情况] | 问题 4 评分[移动情况] | 问题 5 评分[摩擦力] | 问题 6 评分[营养情况] |
高风险 | 6 | 1 | 1 | 1 | 1 | 1 | 1 |
高风险 | 7 | 1 | 1 | 1 | 1 | 1 | 2 |
高风险 | 7 | 1 | 1 | 1 | 1 | 2 | 1 |
高风险 | 7 | 1 | 1 | 1 | 2 | 1 | 1 |
高风险 | 7 | 1 | 1 | 2 | 1 | 1 | 1 |
高风险 | 7 | 1 | 2 | 1 | 1 | 1 | 1 |
高风险 | 7 | 2 | 1 | 1 | 1 | 1 | 1 |
高风险 | 8 | 1 | 1 | 1 | 1 | 1 | 3 |
高风险 | 8 | 1 | 1 | 1 | 1 | 2 | 2 |
高风险 | 8 | 1 | 1 | 1 | 1 | 3 | 1 |
高风险 | 8 | 1 | 1 | 1 | 2 | 1 | 2 |
高风险 | 8 | 1 | 1 | 1 | 2 | 2 | 1 |
高风险 | 8 | 1 | 1 | 1 | 3 | 1 | 1 |
高风险 | 8 | 1 | 1 | 2 | 1 | 1 | 2 |
高风险 | 8 | 1 | 1 | 2 | 1 | 2 | 1 |
高风险 | 8 | 1 | 1 | 2 | 2 | 1 | 1 |
高风险 | 8 | 1 | 1 | 3 | 1 | 1 | 1 |
高风险 | 8 | 1 | 2 | 1 | 1 | 1 | 2 |
高风险 | 8 | 1 | 2 | 1 | 1 | 2 | 1 |
高风险 | 8 | 1 | 2 | 1 | 2 | 1 | 1 |
高风险 | 8 | 1 | 2 | 2 | 1 | 1 | 1 |
高风险 | 8 | 1 | 3 | 1 | 1 | 1 | 1 |
高风险 | 8 | 2 | 1 | 1 | 1 | 1 | 2 |
高风险 | 8 | 2 | 1 | 1 | 1 | 2 | 1 |
高风险 | 8 | 2 | 1 | 1 | 2 | 1 | 1 |
高风险 | 8 | 2 | 1 | 2 | 1 | 1 | 1 |
高风险 | 8 | 2 | 2 | 1 | 1 | 1 | 1 |
高风险 | 8 | 3 | 1 | 1 | 1 | 1 | 1 |
高风险 | 9 | 1 | 1 | 1 | 1 | 1 | 4 |
高风险 | 9 | 1 | 1 | 1 | 1 | 2 | 3 |
高风险 | 9 | 1 | 1 | 1 | 1 | 3 | 2 |
高风险 | 9 | 1 | 1 | 1 | 2 | 1 | 3 |
高风险 | 9 | 1 | 1 | 1 | 2 | 2 | 2 |
高风险 | 9 | 1 | 1 | 1 | 2 | 3 | 1 |
高风险 | 9 | 1 | 1 | 1 | 3 | 1 | 2 |