--- title: 【呼吸】动脉血气&肺功能报告简单判读 urlname: -hu-xi--dong-mai-xue-qi--fei-gong-neng-bao-gao-jian-dan-pan-du date: 2023-07-12 20:06:02 tags: ['呼吸', '血气', '肺功能'] excerpt: 这段代码是一个动脉血气分析的函数。它根据输入的参数(pH、PaCO2、SB、AB、PaO2和年龄)来判断血气的状态。函数首先判断是否存在低氧血症,然后根据酸碱平衡的情况进行判断。接下来,根据通气功能障碍和弥散功能障碍的情况进行判断,并返回相应的结果。最后,根据支气管舒张实验的结果返回最终的分析结果。如果没有异常情况,则返回肺通气和弥散功能正常的结果。 --- ## 动脉血气 ```python def arterialBloodGasAnalysis(pH:float, PaCO2:float, SB:float, AB:float, PaO2:float, age:int): ''' pH:酸碱度,正常值 7.35~7.45 PaCO2:动脉血二氧化碳分压,正常值 35~45 mmHg HCO3-:SB 标准碳酸氢盐,AB 实际碳酸氢盐,正常值 SB = AB 22~27 mmol/L PaO2:动脉血氧分压,正常值 100 - 0.33 * age ± 5 mmHg age: 年龄 ''' result = '' # 低氧血症 goal_PaO2 = 100 - 0.33 * age - 5 if PaO2 > goal_PaO2: pass elif PaO2 <= 40: result += '重度低氧血症;' elif PaO2 <= 60: result += '中度低氧血症;' elif PaO2 <= 95: result += '轻度低氧血症;' if PaO2 < 60: if PaCO2 <= 45: result += 'I型呼吸衰竭;' elif PaCO2 > 50: result += 'II型呼吸衰竭;' else: result += '呼吸衰竭;' # 酸碱平衡 goal_pH = 7.4 + (40 - PaCO2) / 10 * 0.08 if pH > 7.45: if PaCO2 > 40: result += '代谢性碱中毒;' # SB > 24 else: if goal_pH + 0.02 < pH: result += '呼吸性碱中毒合并代谢性碱中毒;' # 发热 + 呕吐 elif goal_pH - 0.02 <= pH: result += '单纯性呼吸性碱中毒;' else: result += '呼吸性碱中毒合并代谢性酸中毒;' # 发热 + 腹泻 elif pH < 7.35: if PaCO2 < 40: result += '代谢性酸中毒;' # SB < 24 else: if goal_pH + 0.02 < pH: result += '呼吸性酸中毒合并代谢性碱中毒;' # 肺心病 + 利尿 elif goal_pH - 0.02 <= pH: result += '单纯性呼吸性酸中毒;' else: result += '呼吸性酸中毒合并代谢性酸中毒;' # COPD + 休克 else: if SB > 27: if PaCO2 - 40 > 0.7 * (AB - 24) + 5: result += '代谢性碱中毒合并呼吸性酸中毒;' else: result += '代偿性代谢性碱中毒;' elif SB < 22: if 40 - PaCO2 < 1.2 * (24 - AB) + 2: result += '代谢性酸中毒合并呼吸性碱中毒;' else: result += '代偿性代谢性酸中毒;' else: if (22 < AB < 27) and (35 < PaCO2 < 45): result += '代谢性碱中毒合并代谢性酸中毒或正常;' # 尿毒症 + 呕吐 return result if result else '结果正常' ``` ## 肺功能 ```python def pulmonaryFunctionTest(FEV1_R_VC:float, FEV1_R_VC_R:float, FEV1_R:float, FEF25_R:float, FEF50_R:float, FEF75_R:float, FVC_R:float, DLCO_SB_R:float, FEV1_CHG:float, FEV1_CHG_R:float): ''' FEV1_R_VC:FEV1/VC 百分数 FEV1_R_VC_R:FEV1/VC % Pred 百分数: FEV1_R:第一秒用力呼气量 FEV1 % Pred 百分数 FEF25_R:FEF25 % Pred 百分数 FEF50_R:FEF50 % Pred 百分数 FEF75_R:FEF75 % Pred 百分数 FVC_R:用力肺活量 FVC % Pred 百分数 DLCOc_SB_R:校正后的一口气呼气法DLCO % Pred 百分数 FEV1_CHG:支气管舒张实验 FEV1 增加值 L FEV1_CHG_R:FEV1_CHG % Pred 百分数 ''' if FEV1_R >= 80: 通气分度 = '正常' elif FEV1_R >= 70: 通气分度 = '轻度' elif FEV1_R >= 60: 通气分度 = '中度' elif FEV1_R >= 50: 通气分度 = '中重度' elif FEV1_R >= 35: 通气分度 = '重度' else: 通气分度 = '极重度' 阻塞性通气功能障碍 = (FEV1_R_VC < 70) or (FEV1_R_VC_R < 92) if not 阻塞性通气功能障碍: 小气道功能障碍 = ((FEF25_R < 65) + (FEF50_R < 65) + (FEF75_R < 65)) >= 2 else: 小气道功能障碍 = 0 # 无意义 限制性通气功能障碍 = FVC_R < 80 弥散功能障碍 = DLCO_SB_R < 80 if 弥散功能障碍: if DLCO_SB_R >= 60: 弥散分度 = '轻度' elif DLCO_SB_R >= 40: 弥散分度 = '中度' else: 弥散分度 = '重度' if (FEV1_CHG_R >= 12) and (FEV1_CHG >= 0.2): 支气管舒张实验 = '阳性' elif (FEV1_CHG_R >= 12) or (FEV1_CHG >= 0.2): 支气管舒张实验 = '可疑阳性' else: 支气管舒张实验 = '阴性' result = 通气分度 if 阻塞性通气功能障碍 and 限制性通气功能障碍: result += '混合性通气功能障碍' elif 阻塞性通气功能障碍: result += '阻塞性通气功能障碍' elif 限制性通气功能障碍: result += '限制性通气功能障碍' else: result = '' if (小气道功能障碍 or 弥散功能障碍) and result: result += '伴' if 小气道功能障碍 and 弥散功能障碍: result += f'小气道功能障碍、{弥散分度}弥散功能障碍' elif 小气道功能障碍: result += '小气道功能障碍' elif 弥散功能障碍: result += f'{弥散分度}弥散功能障碍' if not result: result = "肺通气、弥散功能正常" return result + f';支气管舒张实验{支气管舒张实验}' ```