SleepyHead Qt v0.8 alpha

General Discussion on any topic relating to CPAP and/or Sleep Apnea.
User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Fri Jul 15, 2011 9:23 pm

I just remembered why I turned that off.

I was thinking about what makes more sense, zooming in and bringing the point clicked on to the dead centre, or zooming in and leaving the same point you clicked on under where the mouse cursor is?

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
archangle
Posts: 9293
Joined: Sun Mar 27, 2011 11:55 am

Re: SleepyHead Qt v0.8 alpha

Post by archangle » Fri Jul 15, 2011 9:43 pm

jedimark wrote:I just remembered why I turned that off.

I was thinking about what makes more sense, zooming in and bringing the point clicked on to the dead centre, or zooming in and leaving the same point you clicked on under where the mouse cursor is?
Hmmmm... very deep question, master jedi. I suspect that whichever you choose, you'll sometimes find that the other way is the way you want it.

Centering the point initially seems the most logically consistent. On the other hand, that does make the point you clicked "jump" and you may have trouble finding it again. Assuming you click on a point you're interested in, having it still under the cursor has it's advantages. You can then right drag it to the center if you want.

I think either choice is OK and better than leaving the current center where it is. I guess I've talked myself into thinking that leaving the clicked point under the cursor is slightly better.

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: Also SleepyHead, PRS1 Auto, Respironics Auto M series, Legacy Auto, and Legacy Plus
Please enter your equipment in your profile so we can help you.
Click here for information on the most common alternative to CPAP.
If it's midnight and a DME tells you it's dark outside, go and check for yourself.

Useful Links.

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Fri Jul 15, 2011 10:21 pm

archangle wrote:
jedimark wrote:I just remembered why I turned that off.

I was thinking about what makes more sense, zooming in and bringing the point clicked on to the dead centre, or zooming in and leaving the same point you clicked on under where the mouse cursor is?
Hmmmm... very deep question, master jedi. I suspect that whichever you choose, you'll sometimes find that the other way is the way you want it.

Centering the point initially seems the most logically consistent. On the other hand, that does make the point you clicked "jump" and you may have trouble finding it again. Assuming you click on a point you're interested in, having it still under the cursor has it's advantages. You can then right drag it to the center if you want.

I think either choice is OK and better than leaving the current center where it is. I guess I've talked myself into thinking that leaving the clicked point under the cursor is slightly better.
Hmmm.. I tend to agree here.. I like rapidly clicking to zoom in and out, and hate having to visually hunt the point, even though I know it's in the centre.

I'll try it, but leave markers in the code so I can optionalize it later.

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
archangle
Posts: 9293
Joined: Sun Mar 27, 2011 11:55 am

Re: SleepyHead Qt v0.8 alpha

Post by archangle » Sun Jul 17, 2011 1:26 pm

1) I think it would be useful to have a line in the events flags window at the top of the Daily view indicating when the machine is on and off. When the graph windows are zoomed all the way out, it's easy to tell when the machine is and isn't on. When you're zoomed in, it would be good to be able to see where a session starts and stops on the event display.

It could be a single line that starts and stops. Highlighting the background of the time line would also work. (Timeline being the area where the time stamps are displayed.)

It would also be possible to color this line to indicate more info, such as large leak, no breathing, etc.

2) Would it make more sense to reverse the sense of the background of the events flag window? I find it a little harder to see the colors of the events flags in the darkened section than in the undarkened section. It seems that if you're interested in one particular section by zooming in, it would make sense to have the section that's being displayed being "white" and the rest of the window being "greyed out."

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: Also SleepyHead, PRS1 Auto, Respironics Auto M series, Legacy Auto, and Legacy Plus
Please enter your equipment in your profile so we can help you.
Click here for information on the most common alternative to CPAP.
If it's midnight and a DME tells you it's dark outside, go and check for yourself.

Useful Links.

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Sun Jul 17, 2011 5:36 pm

archangle wrote:1) I think it would be useful to have a line in the events flags window at the top of the Daily view indicating when the machine is on and off. When the graph windows are zoomed all the way out, it's easy to tell when the machine is and isn't on. When you're zoomed in, it would be good to be able to see where a session starts and stops on the event display.

It could be a single line that starts and stops. Highlighting the background of the time line would also work. (Timeline being the area where the time stamps are displayed.)

It would also be possible to color this line to indicate more info, such as large leak, no breathing, etc.

2) Would it make more sense to reverse the sense of the background of the events flag window? I find it a little harder to see the colors of the events flags in the darkened section than in the undarkened section. It seems that if you're interested in one particular section by zooming in, it would make sense to have the section that's being displayed being "white" and the rest of the window being "greyed out."
1) Sounds like a good idea.. I especially like the color code idea.. In the event of a totally empty flagline, this could avert a control disaster too. (I'm thinking about locking H, OA & CA to show regardless.. (I know not all machines show CA) The others can pop up when data is available..

The question is, what defines a large leak & no breathing? Either of these could be the purpose of the 0x0e event which pops up all the time, but other than that, nothing else indicates it. 0x10 & 0x00 are other candidates.. An Encore report comparision would be needed.. Mine data never shows either

Large Leak could simply be a threshold in the Leak data..?

2) This is certainly possible, an is definitely worth a try.. All I need to do is draw two "shadow" boxes on either side instead of the shadow that shows just the selection.

Either way I think the dim needs to a lighten a little bit..

-------
I have fixed some other annoyances. If fully zoomed out, like it is at the beginning, clicking on event flags zooms to details, otherwise it centres the selection area on the point clicked. Also clicking on a point in a waveform zoom in & out on the centre of the point clicked rather than the graph centre.. (It works a lot more naturally than I expected.)

Keep the ideas coming, they are very much appreciated..

I do have a question regarding pressure pulses on PRS1.. They look like ugly red lines when there is a lot of them.. Should I hide them when not zoomed in (like I do with the text above the overlayed lines)? To me they kind of are context related...

Once I get the CMS50 serial importer behaving properly, I'll push another test build also showing off the control improvements..

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
Dojers
Posts: 90
Joined: Mon Jun 27, 2011 1:51 pm

Re: SleepyHead Qt v0.8 alpha

Post by Dojers » Sun Jul 17, 2011 6:50 pm

As long as we're discussing this software, can someone explain to me why I go to import my data but it won't see it but the next day it'll pick up BOTH days? Thursday it said no data for Thursday (well, it was Friday when I checked it but you know what I mean ) but when I imported the data Saturday for Friday both Thursday AND Friday showed up. Now today, Saturday's didn't show up but I'm betting that tomorrow when I import, both days will import. Am I doing something wrong?

Thanks
I love sleep because it is both pleasant and safe to use. - Fran Lebowitz HA!! Yeah right - not when you're a hosehead!

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Sun Jul 17, 2011 7:40 pm

Dojers wrote:As long as we're discussing this software, can someone explain to me why I go to import my data but it won't see it but the next day it'll pick up BOTH days? Thursday it said no data for Thursday (well, it was Friday when I checked it but you know what I mean ) but when I imported the data Saturday for Friday both Thursday AND Friday showed up. Now today, Saturday's didn't show up but I'm betting that tomorrow when I import, both days will import. Am I doing something wrong?

Thanks
Do you mean the calendar month highlight or the actual data is not showing up? If it's the calendar highlight, try changing months back and forth and see if it comes back..

If you don't select the right folder, it won't import.. in the current windows builds it just does nothing, so it's not exactly easy to see if you imported or not. Import looks for specific clues to guess the correct data type, like the P-Series folder, DATALOG folder, SPO2Review.ini files, etc... I just added a nag message to the source if the selected folder doesn't contain what it's looking for.

SleepyHead has two methods of splitting multiple sessions into days, one is a simple noon split, which works like Encore/ResScan, and the other, is optimized more for shift workers.. (Noon splits still, but combines close sessions) When this setting is changed (currently in View Menu), you need to exit and reload, as it sorts the sessions every time the app starts. My split method is default because it works in majority of cases. (The others only really handy for comparing to Encore/Rescan reports) Later on I'll optionalize the split hour, and this will be able to be adjusted with a slider buried in preferences.

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
archangle
Posts: 9293
Joined: Sun Mar 27, 2011 11:55 am

Re: SleepyHead Qt v0.8 alpha

Post by archangle » Sun Jul 17, 2011 7:54 pm

jedimark wrote:The question is, what defines a large leak & no breathing? Either of these could be the purpose of the 0x0e event which pops up all the time, but other than that, nothing else indicates it. 0x10 & 0x00 are other candidates.. An Encore report comparision would be needed.. Mine data never shows either
Well, put the mask on, breathe for x minutes, then lift the corner of your mask to get a large leak for x minutes, then take the mask off and plug the hose for x minutes, then let the air flow unimpeded for x minutes, and compare to what Encore says.
jedimark wrote: I do have a question regarding pressure pulses on PRS1.. They look like ugly red lines when there is a lot of them.. Should I hide them when not zoomed in (like I do with the text above the overlayed lines)? To me they kind of are context related...
How about putting pressure pulses at the bottom of the flow rate graph instead of just above zero? That way, the ugly red lines are not in front of anything else.

I wonder how the flow rate graph would look with dots for the other flags instead of dots plus lines.

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: Also SleepyHead, PRS1 Auto, Respironics Auto M series, Legacy Auto, and Legacy Plus
Please enter your equipment in your profile so we can help you.
Click here for information on the most common alternative to CPAP.
If it's midnight and a DME tells you it's dark outside, go and check for yourself.

Useful Links.

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Sun Jul 17, 2011 8:15 pm

archangle wrote: Well, put the mask on, breathe for x minutes, then lift the corner of your mask to get a large leak for x minutes, then take the mask off and plug the hose for x minutes, then let the air flow unimpeded for x minutes, and compare to what Encore says.

How about putting pressure pulses at the bottom of the flow rate graph instead of just above zero? That way, the ugly red lines are not in front of anything else.

I wonder how the flow rate graph would look with dots for the other flags instead of dots plus lines.

I currently don't have access to a machine with Encore. My wife's notebook that I played with it on died.. :/ (Total PITA, she now pinches one of my dev boxen to surf eBane, friendface and farmVile on.)

I'll try putting the PP's down.. It may be a bit hard to see down the bottom when the FlowRate graph is expanded..

As for the lines they don't look so pretty when fully zoomed out... but do make it easier seeing the centre of an event, at least on the PRS1. perhaps if I just showed the lines zoomed in when the text shows? I'll tinker and see if I can get it prettier..

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
GumbyCT
Posts: 5778
Joined: Fri Sep 14, 2007 6:22 pm
Location: CT
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by GumbyCT » Sun Jul 17, 2011 8:38 pm

jedimark wrote:The question is, what defines a large leak & no breathing?
Since each mask and pressure will be diff maybe making it user defined would be best? Or changeable increments? Something in Preferences?

As for Dojers data not showing - how soon did you remove the SD card from the machine? This is not real-time data. The machine needs to first know that you are finished to end the session then do the math. So if you immediately remove the card the data prob won't be there. But then put the card back in and the session and math are complete (by then) then written to the card.

HTH

_________________
Humidifier: HC150 Heated Humidifier With Hose, 2 Chambers and Stand
Additional Comments: New users can't remember they can't remember YET!
BeganCPAP31Jan2007;AHI<0.5
I have no doubt, how I sleep affects every waking moment.
I am making progress-NOW I remember that I can't remember
;)
If this isn’t rocket science why are there so many spaceshots?
Be your own healthcare advocate!

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Sun Jul 17, 2011 9:11 pm

I think a sliders the best option for fine tuning a leak threshold.. To much data to gather getting all the mask information.

I made a couple of adjustments to the waveform overlay, and would like some feedback..

Fully zoomed out.. the events are along the top.. Pressure pulses are down the bottom. (probably a marker indicating pressure changes will go down there too, if I can do it efficiently enough)
Image

EDIT: I know it looks duplicated with the Events above, but note the Graphs order can be changed now..

Zoomed in, it shows the same as it did previously (except for pressure pulse) (also, note the highlight, rather than "lowlighting")
Image

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Sun Jul 17, 2011 9:54 pm

There is now an option in view menu to switch between the overlay cleanup and the old way..

The question remains, which should be default?

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
archangle
Posts: 9293
Joined: Sun Mar 27, 2011 11:55 am

Re: SleepyHead Qt v0.8 alpha

Post by archangle » Sun Jul 17, 2011 10:09 pm

Looks good. I think I prefer the new way.

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: Also SleepyHead, PRS1 Auto, Respironics Auto M series, Legacy Auto, and Legacy Plus
Please enter your equipment in your profile so we can help you.
Click here for information on the most common alternative to CPAP.
If it's midnight and a DME tells you it's dark outside, go and check for yourself.

Useful Links.

User avatar
jedimark
Posts: 1300
Joined: Fri Feb 18, 2011 12:45 am
Location: Bundaberg, Australia
Contact:

Re: SleepyHead Qt v0.8 alpha

Post by jedimark » Mon Jul 18, 2011 6:58 am

Wahoo.. I got the CMS50 live view and recording importer working on Windows.. Been fighting that one for days..

I decided to push another windows preview showing off some of the latest changes, including the new Oximetry tab..

Here's a direct link:
http://sourceforge.net/projects/sleepyh ... e/download

As usual it will have rough edges.. and may require the dreaded SleepApp folder delete if it crashes on startup. (If your using your notes already (not a good idea, because that journal will be reworked soon to do the extras tab), you can get around this and just delete the CPAP machine session files (xxxxx.000, .001 & .002 data) from inside the SleepApp\Profiles\Username\####### (some hexadecimal number) folder.. you have to lookup SleepApp/Profiles/Username/Profiles.xml to know which one is correct.)

The auto machine data purge feature is actually intact, but I've been too lazy to test properly since the Qt port.. I'd rather I had a chance to verify it was safe before letting that feature loose on your PC's.. (I'm pretty darn sure you would too.

New features? I darn well forgot most of these.. hurt remembering them

The new oximeter stuff. Plug in your device and play with it in Live view, or import data directly.
Help->Debug checkbox enables debug view down the bottom, which will come in handy for cracking problems open later on.. Don't take any error messages that show there too seriously.. Most of it is just silly boring programmer stuff.
View->Overlay Bars does the new overlay stuff when zoomed out.
Event Flags shadows are prettier. Highlights instead of darkens..
Cursor key navigation when graph is focused. (click on a graph/or use tab to get to it..)
Zoom improvements in Event Flags & waveforms..
Graph Reordering.. Still a little ugly when swapping between big and little graphs, but useful.
Lots of little bug fixes.. and otherstuff

By CMS50 I mean CMS50D+ specifically.. If importing recordings on better machines than this works, it will be a fluke and I will be very happy.. You can still import the .spo2 Review files if the serial stuff doesn't work for you.. (Live view mode should work for all CMS50 models, but it doesn't save yet)

If no serial port shows up (which it won't if you don't plug in first), click the refresh button down the bottom next to the drop-down to rescan the serial ports.. The Start button next to this commences live view mode.. It becomes the stop button while it's reading data from the machine.. The Import button on the bottom right tries to read the devices internal memory, and will save it to the current day.. (Which come to think of it is probably wrong until you exit & restart.. I'm not sure)

CMS50 serial Import can be a little cantankerous.. Click import once.. watch for progress bar activity.. If there isn't any, turn on Help->Debug, and try again after waiting a minute or so for the oximeter to catch up. I hope it works for at least one or two of you.. :} If you click import twice and succeed twice, you'll have to go diving into the CMS50 machine data folder in the SleepApp profile to prune it out, or it will look uuuugly... (Still figuring out how to not let you do that double import thing)

Anyone building the Mac version, I have no idea if the CMS50 serial stuff will work for you.. it theoretically _should_ work, being based on UNIX.

For the moment, please import into SPO2 Review as well as a backup.. I hope to kill the SleepApp folder delete annoyance, but it's highly dependant on my brain fog/headache levels. Plus import can fail.. Sleepyhead shouldn't delete the data from the oximeter though. The oximeter might appear to lock up if it fails, but it's really trying to transfer data.. Just wait and it will come back..

Long oximeter sessions might muck up.. (ie, a night, which I realize is what you would want it for) I'm hoping they don't, but the session length time record is in a weird format.

As I said above, Live oximeter view doesn't have a save option.. It will later, but right now it's for mucking around.. Only live view has the plethysomogram (and accurate timestamps)..

If your CMS50E and up doesn't work, help->Debug will have some useful information that will help me get it going..

Crud that was long and boring..

Have fun.

/Mark

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :)
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code

User avatar
archangle
Posts: 9293
Joined: Sun Mar 27, 2011 11:55 am

Re: SleepyHead Qt v0.8 alpha

Post by archangle » Mon Jul 18, 2011 1:45 pm

Very good.

I think I'd prefer the Event Flags window not to drop lines out when there are no events of that type when I go from day to day.

I need to try it with the CMS50 at some time.

Have you given some thought to having a report generation function at some time? It would be nice to be able to print off a report or simply save a PDF file without cut and paste. Also, if you're printing, the background shading on the graphs will probably waste a lot of ink and slow down printing on an inkjet printer.

I notice that the shading on the "session times" display causes an optical illusion that the events are not rectangles. Looks to me like they're taller on the right side. Doesn't necessarily need to change, but is worth noting. The strength of the illusion varies as you zoom in and out on the image, so you may need to resize the window to see it.

Image

Now if the program could just automatically transport the SD card back to the machine so I don't keep forgetting to put the card back into the CPAP machine....

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control
Additional Comments: Also SleepyHead, PRS1 Auto, Respironics Auto M series, Legacy Auto, and Legacy Plus
Please enter your equipment in your profile so we can help you.
Click here for information on the most common alternative to CPAP.
If it's midnight and a DME tells you it's dark outside, go and check for yourself.

Useful Links.