肺功能MVV一般是指肺部每分钟的最大通气量。
MVV本身是最大值的英文缩写,在临床上,肺功能MVV表示肺部每分钟最大通气量,用以衡量气道的通畅度,以及肺部和胸廓的弹性、呼吸肌的力量。
肺部每分钟的最大通气量的参考值男性与女性之间存在差异,一般男性检测所得的正常值是104+2.71L,女性正常值为82.5+2.17L。该指标多用于检测慢性阻塞性肺疾病、特发性阻塞性细支气管炎伴机化性肺炎、肺气肿等疾病。
单片机一般通过外接流量传感器,使用ADC高速采集的方式来获取当前流速数据。
肺活量吹气检查流程大致为:快速深吸气 ---> 快速深呼气 ---> 快速深吸气 ---> 快速深呼气。。。
#define nFLOW_SAMPLE (10)//流量传感器采集频率单位为ms
#define qAbs(x) (((x) > 0.0f) ? (x) : -(x))
#define qFuzzyIsNull(x) (qAbs(x) <= 0.00001f)typedef struct
{int bIsIntact; float dMMV;
}MMVParam;MMVParam _cal_mvv_test(float*dFlowData,int nSumCnt)
{ MMVParam tMMVParam = {true,0}; //使用零点流速分段样本数据int nZeroPoint = 0; float dMaxVal, dMinVal;float dTmpCapatity;dMaxVal = dMinVal = dTmpCapatity = 0.0f;for (int i = 1; i < nSumCnt; i++) {// 流速为L/min,累计流量为当前流速乘以时间dTmpCapatity += dFlowData[i] * (nFLOW_SAMPLE / 1000 / 60.0f); //收集达到1200个测量数据即可if (i * nFLOW_SAMPLE >= 12000) break;//找出最大值和最小值 if (dMaxVal < dTmpCapatity) dMaxVal = dTmpCapatity;if (dMinVal > dTmpCapatity) dMinVal = dTmpCapatity;//两点间经过零点if (dFlowData[i - 1] * dFlowData[i] <= 0 && !qFuzzyIsNull(dFlowData[i])) {nZeroPoint++;tMMVParam.dMMV += (dMaxVal - dMinVal);dMaxVal = dTmpCapatity;dMinVal = dTmpCapatity;}}//至少分四段数据才有效if (nZeroPoint < 4) tMMVParam.bIsIntact = false;//至少需要1200个数据才有效if (nSumCnt < 1200) tMMVParam.bIsIntact = false;//分钟最大通气量为12s流量的5倍,单位为LtMMVParam.dMMV *= 5;return tMMVParam;
}