# 【探索】动脉血气&肺功能报告简单判读

Last updated on March 19, 2024 pm

## 动脉血气

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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
    66
    67
    68
    69

    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 '结果正常'

## 肺功能

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77

    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'；支气管舒张实验{支气管舒张实验}'

#探索
【探索】动脉血气&肺功能报告简单判读
https://hexo.limour.top/-hu-xi--dong-mai-xue-qi--fei-gong-neng-bao-gao-jian-dan-pan-du
Author
Limour
Posted on
July 12, 2023
Updated on
March 19, 2024
Licensed under
【探索】Claude2 写永生者的日记 Previous
【记录】安装生信的代码编写环境 Next

#### Search

Keyword