
My apologies to anyone who doesn't care for the technical discussions. And my gratitude to those who are patient enough to tolerate it.
A comment about the general flow, for those who are trying to follow along. When we look at the flowchart above, we can see a top-down-approach regarding priority. The higher decision branches in that flow chart represent higher-priority APAP routines.-SWS wrote:That control layer running Psearch happens to be lower priority than both the VB and hypoventilation detection circuits. So if criteria for either VB or hypoventilation surfaces during a Psearch, then algorithmic control reverts to the highest-priority control layer for which criteria matches.Muffy wrote:since the Psearch patent suggests that hypoventilation... will elicit the same behavior as Variable Breathing:
The only difference between that far left vertical branch-pair and the far right branch-pair is that the far left branch-pair is allowed to perform a probing type search for a new optimum pressure. According to the results of an iteration counter or scheduling type criteria, that probing search is either allowed by executing the left branch-pair, or disallowed by executing the right branch-pair instead. Higher-priority A, H, and VB are essentially serviced the same way in either vertical branch-pair. You can almost think of that probing type search in the left branch-pair as something the APAP does during idle time---when higher-priority apnea, hypoventilation, or varbiable breathing do not happen to be afoot.
* * * *
One essential rule for a priority-based algorithm like we see above is that whatever the currently detected SDB event happens to be (A, H, or VB), then the algorithm will temporarily "block off" or close down all lower branches of the flow chart. However, the algorithm will continue to service the higher branches----for the sake of spotting higher-priority criteria. Thus, the search for Popt will not run if any higher-priority decision branches need to service more important SDB events.
Another essential rule, to maintain those priority-based tiers, is that lower-stage subroutines are never allowed to run full course or come to closure without repeatedly checking for those higher-priority criteria matches every step of the way. So when the VB control layer is executing, for instance, only a logical subset or portion of that VB control layer's machine instructions will be allowed to run----before one of many upward-priority criteria checks are made.
* * * *
Plugging those essential rules into a VB-positive detection or case:
1) a logical grouping of VB-related machine instructions are executed,
2) the machine looks for apneas, and services any that are found,
3) the machine looks for hypoventilation, and services any that are found,
4) the next logical grouping of VB-related machine instructions are executed,
5) the machine looks for apneas, and services any that are found,
6) the machine looks for hypoventilation, and services any that are found,
7) the next logical grouping of VB-related machine instructions are executed, etc., etc.
So above, we can see that if no apneas or hypoventilation occur, the VB control layer simply continues to treat VB according to design. The lower-priority Popt search will never be allowed, until there are no signs of higher-priority A, H, or VB.
Similarly, we can see that if an apnea is suddenly detected, that highest-most priority apnea-servicing branch has full control until the apnea is gone. If hypoventilation is suddenly detected in the absence of a frank apnea, the A and H branches are the only two branches that are executed until there are no signs of H and no signs of A.
* * * *
Thanks, Muffy, for posting the flow chart.