I'm inclined to agree with you, although I'm not sure I would go so far as to call it 'black magic.' A point to consider is the fact that Resmed is in this business big time, yet from what I've been able to determine, Resscan does nothing more than display with a pretty interface what the S9 reports. Resscan does no data crunching whatever, except for value scaling. Does this reflect the lack of need for data interpretation within Resscan because the S9 does it so well, or does it mean that medical consensus about what is what only goes so far, leaving a lot of undefined variations in apnea conditions? For example, why is 52% restriction a hypopnea but a 48% isn't, or why is an 11 second cessation an apnea but a 9 second one isn't?archangle wrote:I'm a bit concerned about the idea of "roll your own" event detection. I think there's a lot of black magic in determining this. If you try to do your own event detection, you run the risk of finding something that works well for jedimark, but not for other people.
There seems to be a good bit of uncertainty in detecting apnea events, but I think that's mostly in the gray area where there is a judgement call. It's not a bad enough event that it really makes a lot of difference in terms of health effects. If the event is long enough and deep enough any machine will call it an apnea.
There's also the philosophical question of taking SleepyHead from a tool that simply reports what the CPAP machine said to something that does its own interpretation of events. Not that it's wrong, but it's something to consider.
SleepyHead 0.8.8 "Almost Beta" Release
Re: SleepyHead 0.8.8 "Almost Beta" Release
_________________
| Mask: AirFit™ P10 Nasal Pillow CPAP Mask with Headgear |
| Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
| Additional Comments: Hose management - rubber band tied to casement window crank handle! Hey, it works! S/W is 3.13, not 3.7 |
Re: SleepyHead 0.8.8 "Almost Beta" Release
Not to be a pessimist, but...idamtnboy wrote:I'm inclined to agree with you, although I'm not sure I would go so far as to call it 'black magic.' A point to consider is the fact that Resmed is in this business big time, yet from what I've been able to determine, Resscan does nothing more than display with a pretty interface what the S9 reports. Resscan does no data crunching whatever, except for value scaling. Does this reflect the lack of need for data interpretation within Resscan because the S9 does it so well, or does it mean that medical consensus about what is what only goes so far, leaving a lot of undefined variations in apnea conditions?
Does it really mean their may concern with the software and reason for the software to exist is compliance. I've got to think the software in many cases exists mainly to show "4 hour per night" compliance with the CPAP treatment so the insurance will pay for the equipment. They also need to provide enough data for the doctors who want more details. I have a hard time thinking the software is really created with the home user as the main "paying" customer. Not trying to be negative, that's just business.
Even my sleep doctor, who actually is a sleep medicine doctor and I think a good one, doesn't look nearly as closely at the data, or at as much of the data, as I do. Mine mainly looks at how many hours a night I'm sleeping, consistent "to bed" times, AHI trends and average pressures. That's pretty much all he looks at.
If you are struggling with congestion, it helped me to add Alkalol to my daily sinus rinse. This reduced my congestion and allows me to breathe freely with my CPAP mask. CPAPtalk post about Alkalol use here: viewtopic.php?p=665255#p665255
Re: SleepyHead 0.8.8 "Almost Beta" Release
SleepyHead and especially it's database engine, SleepLib is being designed for more than CPAP machines. At it's core, it's designed so we can look deeper into our data. If it can guess something new and potentially interesting to look at, then isn't that a good thing? It does not show them mixed into machine detected events, or any AHI/related calculations, they have separate flags.archangle wrote:I'm a bit concerned about the idea of "roll your own" event detection. I think there's a lot of black magic in determining this. If you try to do your own event detection, you run the risk of finding something that works well for jedimark, but not for other people.jedimark wrote:I wanted to show off the beginnings of a new feature, one I didn't think I could wrap my head around until SleepyHead 2.
There seems to be a good bit of uncertainty in detecting apnea events, but I think that's mostly in the gray area where there is a judgement call. It's not a bad enough event that it really makes a lot of difference in terms of health effects. If the event is long enough and deep enough any machine will call it an apnea.
There's also the philosophical question of taking SleepyHead from a tool that simply reports what the CPAP machine said to something that does its own interpretation of events. Not that it's wrong, but it's something to consider.
And please remember, flagging doesn't equal interpretation.. it just highlights new things so the user can decide for themselves.. And inexperienced user can choose to ignore it.. or even more simply not switch the feature on in the first place..
Oximeters now exist with flow waveform recording, which do no event detection. I definitely plan on adding support for these, and I definitely want to see events flagged for them.
Detecting apneas/hypopneas is very simple concept.. find the divisions between breaths, detect peaks minimum and maximum for each breath, watch for groups of breaths with restricted peaks. Monitor the duration between good breaths above the threshold for what's being detected. Obstructions usually start with a high maximum peak, then a flat line. Watch for patterns and you can detect periodic breathing. It's not as difficult as the manufactures of CPAP machines make it out to be.
I'm not interested yet in flow limitations/snores/anything that requires shape analysis, but I want sleepyhead's back-end to be able to support all kinds of stuff like this. (Even if most of it doesn't get used in the SleepyHead application, I may yet write a companion review product for Sleep Labs.. I assure you I'm not confusing the goals here, SleepyHead is for us users.)
I'm practicing on PRS1 data, because this is simply what I have in the largest quantities, and I have the recording equipment to experiment with custom flow rates.
_________________
| 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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
Hi Karen,KarenM wrote:So I have the S9 series VPAP Adapt SV. Anything special about reading that card or using Sleepyhead on my Mac? Thanks.
KarenM
It's a good idea to lock the plastic write tab on your SD card before inserting it into your Mac.
Mac OSX likes to touch SD cards without your permission, by writing a thumbnail index, and could interfere with your cards integrity
_________________
| 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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
Perrybucsdad wrote:Mark, when exporting the data from the app, what does "Pressure" and "EPAP" indicate under event for the detail export? I have a Resmed unit.
Pressure is your raw pressure graph data, (try and graph it in excel/oocalc and see )
EPAP is Exhalation pressure (which is basically pressure minus EPR on your machine)
Export still needs a little work.. It would be nice if you could select the data fields you want..
_________________
| 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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
Java Time wrote:Maybe it could be an option that is "turned on" by users from the setup menu. That way the default is off unless someone wants it.
I think several people who are used to SleepyHead would like to have this feature, but maybe you are correct about keeping it away from the newest folks who might just get confused.
I'd think most people would like the SleepyHead "default setting" to most accurately represent what they see in "Encore" or the other DME software so they are talking "apples to apples" with their doctor.
Understanding more details about your data is an advanced and important SleepyHead benefit, but I'd think the more detailed SleepyHead data is more for home use, rather than for discussion with the DME or doctor.
^^ This. What he said.
I never really intended SleepyHead to simply replace either Encore & Rescan.. I certainly find it helpful that it duplicates a large amount of their functionality, especially on other platforms which can't run the "official" software. And it's definitely important being able to provide comparable information.
But SleepyHead is intended for personal research.. both yours and mine.. and I want it to be much more than just a commercial software alternative.
I doubt a lot of people in sleep medicine/research will take it seriously, but some do (I talk to a few already), which is why I am trying to make it as detailed and useful as possible for both parties..
My primary allegiance lies with home users who are dealing with the crappy sleep disorders, so (relative) ease of use is always my main objective (not that I claim I've reached that yet)
All that said, I don't think I would of bothered starting or continuing if there wasn't at least some serious programming fun in it for me..
_________________
| 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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
whoops, it barfed.jedimark wrote:cpaptex wrote:The DME gave me a new machine today. So tomorrow when I d/l the info onto my laptop. Is there a way to continue with the data? The new machine will start from scratch. 0 days used, 0 AHI etc.
Do I create a new user?
Nope.. Just import as normal. Each day in SleepyHead allows for a different machine.. Can even be a different brand.
Be careful with crossover days... If your sleeping funny times you could run into trouble.. worse case scenario, you will need to lose a day of data from your old machines data (a good time to back your SD card up from your old machine)
Let me know if it barfs, it's not hard to sort out..
When I imported the data it stops and say that I cannot have overlapping days. What to do? When I started all over from square one, it shows that the new machine starts on Sunday, but the data is from monday AM when the DME turned on the machine to set it up and test it. I don't need a flat line of nothing.
I'm getting better day by day. Few if any OA Events, mostly CAs and Hyponeas.
I have Interstital Lung Disease
I have Interstital Lung Disease
Re: SleepyHead 0.8.8 "Almost Beta" Release
Okay, it's relatively easy (?) to resolve this...cpaptex wrote: whoops, it barfed.
When I imported the data it stops and say that I cannot have overlapping days. What to do? When I started all over from square one, it shows that the new machine starts on Sunday, but the data is from monday AM when the DME turned on the machine to set it up and test it. I don't need a flat line of nothing.
1) Create a copy of your old machines SD card on your harddrive, and then remove the SD card and put it away..
2) Go into a file explorer, and find the PSeries\P00XXXXXXX\p0 folder
3) set it to order by name, and find the latest group of .001/.002/.005 files, delete the set of three with the highest sequence number.
Now purge your CPAP data (the next build has an option to do this for you, for now you will have to do this)
1)Go into your Documents/SleepApp/Profiles/yourname/ folder
2)find the two [xxxxxxxxx] hexadecimal named folders with the most files in it. You can confirm it's the right one in Profiles.xml if your feeling technical or hackish
3)Delete all the .000 & .001 files
Start Sleepyhead, and reimport your old data first from the folder (leave your SD card out) (make sure somewhere else is not saved in preferences Import tab)
Then import from your SD card.. It should not complain.. If it does, you will have to go back to the beginning, and remove another set or two from your old SD card backup folder..
I'll put some more thought into making this less painful in future.
_________________
| 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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
I uploaded yet another update ("-4") to the 0.8.8 release, for any bleeding edge junkies. not really worth a version bump, but still..
It's available here..
http://sourceforge.net/projects/sleepyhead/files/
It fixes a problems with the PRS1 Loader (particulary affecting ASV users - I can't remember if the last build (-3) included the rewrite of most of the PRS1 importer, or if this was just minor fixes..)
It also fixes a few graph glitches, a bug with weighted average calculations, has a nicer daily report layout, shows the CPAP mode plus a few other settings in the Daily details panel, plus probably a few others bits and pieces I forgot.
Added a purge all feature (in Data->Advanced menu), which cleans out SleepyHead's CPAP database for fresh reimporting from your card/backups, in case anything goes weird.. (Need to have a day selected with the machine your trying to trash)
Ordinary PRS1 users will also see the new flagging toy I'm playing with.. Can't change the settings yet.. (or even turn it off yet.. ) I've got to get a fog free day to get it right.. Please pretend the new U1/UF1 flags don't exist if you don't want to see them.. they don't affect any calculations..
Also, it's probably going to annoy you, but it shows the "event duration" data underneath the flag bars in the waveform overlay.. (I was really just doing it for debugging, and forgot to turn it off, and I'm far too lazy to reupload.. )
My AHI was 20.59 last night, so it's probably going to show some reflections of the frazzle..
Have fun
/Mark
It's available here..
http://sourceforge.net/projects/sleepyhead/files/
It fixes a problems with the PRS1 Loader (particulary affecting ASV users - I can't remember if the last build (-3) included the rewrite of most of the PRS1 importer, or if this was just minor fixes..)
It also fixes a few graph glitches, a bug with weighted average calculations, has a nicer daily report layout, shows the CPAP mode plus a few other settings in the Daily details panel, plus probably a few others bits and pieces I forgot.
Added a purge all feature (in Data->Advanced menu), which cleans out SleepyHead's CPAP database for fresh reimporting from your card/backups, in case anything goes weird.. (Need to have a day selected with the machine your trying to trash)
Ordinary PRS1 users will also see the new flagging toy I'm playing with.. Can't change the settings yet.. (or even turn it off yet.. ) I've got to get a fog free day to get it right.. Please pretend the new U1/UF1 flags don't exist if you don't want to see them.. they don't affect any calculations..
Also, it's probably going to annoy you, but it shows the "event duration" data underneath the flag bars in the waveform overlay.. (I was really just doing it for debugging, and forgot to turn it off, and I'm far too lazy to reupload.. )
My AHI was 20.59 last night, so it's probably going to show some reflections of the frazzle..
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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
I forgot to mention in the new 0.8.8-4 build, the daily report now offers to print bookmarked flow waveform areas along with the rest of the graphs, plus it shows the event breakdown pie chart..
It still needs work, but I think it is getting rather swish.. I'm not going to be embarrassed showing them my doc any more..
If anyone has any suggestions on how to improve them, please let me know.. A copy and paste mock-up would be really cool.. I'm not exactly a layout wizz.
Just to be extra annoying, I went and doubled high-res printing performance since uploading this build. You'll get that next time around..
Now on to a new, slightly less crazy idea:
What if the default welcome page showed some summary/overall information and statistics, instead of the same boring welcome page every time?
Any suggestions on what you'd like to see? (The content will be static rendered HTML, so it won't be interactive like the daily & overview pages)
Anyone up to doing a mock-up for this?
It still needs work, but I think it is getting rather swish.. I'm not going to be embarrassed showing them my doc any more..
If anyone has any suggestions on how to improve them, please let me know.. A copy and paste mock-up would be really cool.. I'm not exactly a layout wizz.
Just to be extra annoying, I went and doubled high-res printing performance since uploading this build. You'll get that next time around..
Now on to a new, slightly less crazy idea:
What if the default welcome page showed some summary/overall information and statistics, instead of the same boring welcome page every time?
Any suggestions on what you'd like to see? (The content will be static rendered HTML, so it won't be interactive like the daily & overview pages)
Anyone up to doing a mock-up for this?
_________________
| 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
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: SleepyHead 0.8.8 "Almost Beta" Release
Thanks so much! This morning I successfully imported the data from the card via my printer and iMac (Lion). Now I'm digging into the beautiful screens and charts and trying to understand them, starting with what looks like pretty good AHI results! Thanks so much again. I'm looking here and at the wiki - is that the best starting place for understanding each of the measurements... I'm also wanting to look at leaks and see if that's a problem.
KarenM
KarenM
jedimark wrote:Hi Karen,KarenM wrote:So I have the S9 series VPAP Adapt SV. Anything special about reading that card or using Sleepyhead on my Mac? Thanks.
KarenM
It's a good idea to lock the plastic write tab on your SD card before inserting it into your Mac.
Mac OSX likes to touch SD cards without your permission, by writing a thumbnail index, and could interfere with your cards integrity
Karen
Re: SleepyHead 0.8.8 "Almost Beta" Release
If you see something on your report that you don't understand fully if you will post an image of that report with your specific question someone here will explain in detail.KarenM wrote:Now I'm digging into the beautiful screens and charts and trying to understand them, starting with what looks like pretty good AHI results! Thanks so much again. I'm looking here and at the wiki - is that the best starting place for understanding each of the measurements... I'm also wanting to look at leaks and see if that's a problem.
Leaks...ResMed has that magic red line at 24 L/min and if you stay below that line they say that the machine can adequately compensate for leaks and therapy is not impaired. Above that line and the machine may not be able to handle things and even score properly.
ResMed machines report excess leak. They subtract an approx vent rate (that is why the mask selection feature is on the machine) for mask type and pressure used before reporting leak.
Minor spikes to and above the 24 L/min mark probably will not impact therapy hugely as long as you don't spend a lot of time there. I usually just ignore those. If you feel your leaks are waking you often during the night, even if they are very small they are disturbing your sleep and thus unwanted.
If you wish to post your report..just start a new thread so it gets everyone's attention with your questions.
If you do not know how to insert an image into a post here...this is how I do it.
Since you use a Mac....you should know how to do a screen shot with it..then just follow these directions.
If you don't know how to do the screen shot thing...I have those instructions around here somewhere, let me know and I will dig them up.
Once the screen shot is created save it in jpg format.
Upload the image to a host site. I use Photobucket it is free, there are others.
Once the image is uploaded then copy the ENTIRE IMG address. Be sure to include the opening and closing IMG in brackets. Paste that copied address into a post here.
Use the preview button. If you can't see the image try again because if you can't see it we can't.
_________________
| Machine: AirCurve™ 10 VAuto BiLevel Machine with HumidAir™ Heated Humidifier |
| Additional Comments: Mask Bleep Eclipse https://bleepsleep.com/the-eclipse/ |
I may have to RISE but I refuse to SHINE.
- Perrybucsdad
- Posts: 834
- Joined: Mon Sep 12, 2011 7:09 am
- Location: Northeast Ohio
Re: SleepyHead 0.8.8 "Almost Beta" Release
Mark, I just have to say this is getting nicer and nicer with each pass, and I actually prefer it to the ResScan software. Nice job pal... no go try and get some quality sleep.
- John
- John
_________________
| Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
| Mask: AirFit™ P10 Nasal Pillow CPAP Mask with Headgear |
| Additional Comments: ResScan v5.9; Sleepyhead v1.0.0-beta |
- Perrybucsdad
- Posts: 834
- Joined: Mon Sep 12, 2011 7:09 am
- Location: Northeast Ohio
Re: SleepyHead 0.8.8 "Almost Beta" Release
Kind of figured that, but how come the AVG in sleepyhead does not match the AVG in Excel?jedimark wrote:Perrybucsdad wrote:Mark, when exporting the data from the app, what does "Pressure" and "EPAP" indicate under event for the detail export? I have a Resmed unit.
Pressure is your raw pressure graph data, (try and graph it in excel/oocalc and see )
EPAP is Exhalation pressure (which is basically pressure minus EPR on your machine)
Export still needs a little work.. It would be nice if you could select the data fields you want..
Also, it noted that I am using an EPR of 2 which is not the case. PM me an email and I can send you the RAW data to see.
John
_________________
| Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
| Mask: AirFit™ P10 Nasal Pillow CPAP Mask with Headgear |
| Additional Comments: ResScan v5.9; Sleepyhead v1.0.0-beta |
-
ThomasMcKean
- Posts: 252
- Joined: Thu Jan 29, 2009 1:14 am
- Location: Heart of the Blue Ridge
- Contact:
Re: SleepyHead 0.8.8 "Almost Beta" Release
Hello, Karen. A bit off topic, but I wanted to say that I have always admired the amazon. Especially the 70's version on your avatar. I am a professional writer and I wrote a Wonder Woman comic book script if yew want to see it, then it is here:KarenM wrote:Thanks so much! This morning I successfully imported the data from the card via my printer and iMac (Lion). Now I'm digging into the beautiful screens and charts and trying to understand them, starting with what looks like pretty good AHI results! Thanks so much again. I'm looking here and at the wiki - is that the best starting place for understanding each of the measurements... I'm also wanting to look at leaks and see if that's a problem.
KarenM
http://www.thomasamckean.com/gallery/al ... an-Inc.pdf
She has it lucky. No one who is created by the gods would ever have a problem like sleep apnea. I am sure she gets lots of restful sleep every night without a machine. Would that we were all so fortunate!
The Honorable Thomas A. McKean, HOKC
Author, Soon Will Come the Light: A View From Inside the Autism Puzzle
http://www.thomasamckean.com http://www.gallery.thomasamckean.com
Author, Soon Will Come the Light: A View From Inside the Autism Puzzle
http://www.thomasamckean.com http://www.gallery.thomasamckean.com







