Nothing But Words

Mike Toppa’s Blog

About | Contact | Archives | Photos | WP Plugins

Penn Medicine Clinical Trials

The Clinical Trials search site I developed. My co-worker Joe created the design.The Clinical Trials search site I developed. My co-worker Joe created the design.

The Clinical Trials search site I developed. My co-worker Joe created the design.

In the six years I’ve been working at Penn, this is my first project that’s publicly accessible: Penn Medicine Clinical Trials. It’s a web application to help researchers as well as the general public find clinical trials at the U Penn School of Medicine and the Children’s Hospital of Philadelphia. My co-worker Joe did a great job on the design, and I implemented the functionality. Joe gets the credit for the Google-like “less is more” user interface, which is dramatically different from the clinical trials sites at other leading medical research institutions.

I wrote a script that runs nightly to pull down XML documents on the clinical trials from ClinicalTrials.gov (a website created by the National Institutes of Health to provide a central clearinghouse for information relating to clinical trials in the US). The script then parses out the most important data and puts it in a database, where its used for full text searching. For displaying the pages on each trial, I created an XSL template that’s used to dynamically transform the XML documents for display as web pages.

This was actually part of a larger project – the redesign and relaunch of PennMed’s ITMAT (Institute for Translational Medicine and Therapeutics) web site. Joe created that design as well, and I provided the functionality for the member pages. These pages are dynamically updated as members update their profiles and new members join.

I have a few posts in mind based on this work, as I solved some problems on my own where there weren’t adequate explanations online. The topics are XML handling with PHP’s SimpleXMLItetator, XSL transformations with PHP’s XSLTProcessor, and an interesting CSS problem with the Clinical Trials “sticky footer” that we had to figure out. Stay tuned.

Plumbing Nightmare

The cracked waste pipe in our living room wall, coming down from the second floor bathroomThe cracked waste pipe in our living room wall, coming down from the second floor bathroom

The cracked waste pipe in our living room wall, coming down from the second floor bathroom02-Dec-2008 22:49, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 1000

The waste pipe where it connects to the toilet, with the cement that encased it already removed, viewed from the living room belowThe waste pipe where it connects to the toilet, with the cement that encased it already removed, viewed from the living room below

The waste pipe where it connects to the toilet, with the cement that encased it already removed, viewed from the living room below02-Dec-2008 22:48, SONY DSC-W55, 2.8, 6.3mm, 0.02 sec, ISO 1000

The old toilet, removedThe old toilet, removed

The old toilet, removed03-Dec-2008 00:10, SONY DSC-W55, 2.8, 6.3mm, 0.033 sec, ISO 320

The clamp that we attached to the vent section of the pipe, in the 3rd floor bedroomThe clamp that we attached to the vent section of the pipe, in the 3rd floor bedroom

The clamp that we attached to the vent section of the pipe, in the 3rd floor bedroom03-Dec-2008 00:12, SONY DSC-W55, 2.8, 6.3mm, 0.04 sec, ISO 320

We had to cut open the bedroom wall to attach the clamp to the pipeWe had to cut open the bedroom wall to attach the clamp to the pipe

We had to cut open the bedroom wall to attach the clamp to the pipe03-Dec-2008 00:12, SONY DSC-W55, 2.8, 6.3mm, 0.077 sec, ISO 320

The pipe with the clamp attachedThe pipe with the clamp attached

The pipe with the clamp attached03-Dec-2008 00:26, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 100

Jimmy cutting the cracked section of the pipe in the living roomJimmy cutting the cracked section of the pipe in the living room

Jimmy cutting the cracked section of the pipe in the living room03-Dec-2008 02:03, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 320

After we replaced the cracked pipe, we made a temporary PVC connection for the tub drain so we could at least use the shower. You can see there's no framing at all to support the toiletAfter we replaced the cracked pipe, we made a temporary PVC connection for the tub drain so we could at least use the shower. You can see there’s no framing at all to support the toilet

After we replaced the cracked pipe, we made a temporary PVC connection for the tub drain so we could at least use the shower. You can see there’s no framing at all to support the toilet06-Dec-2008 23:48, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 100

In addition to being poorly framed, what framing was near the toilet was rotted, so it all had to go. Bye bye to my new tile floorIn addition to being poorly framed, what framing was near the toilet was rotted, so it all had to go. Bye bye to my new tile floor

In addition to being poorly framed, what framing was near the toilet was rotted, so it all had to go. Bye bye to my new tile floor07-Dec-2008 06:57, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 100

New framing in place, as seen from below. Working around all the old pipes was a challenge.New framing in place, as seen from below. Working around all the old pipes was a challenge.

New framing in place, as seen from below. Working around all the old pipes was a challenge.15-Dec-2008 01:12, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 100

The new subfloor, matched to the height of the existing subfloorThe new subfloor, matched to the height of the existing subfloor

The new subfloor, matched to the height of the existing subfloor15-Dec-2008 01:12, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 320

The finished framing and completed plumbing work. The shims are for lining up new drywall with the existing ceilingThe finished framing and completed plumbing work. The shims are for lining up new drywall with the existing ceiling

The finished framing and completed plumbing work. The shims are for lining up new drywall with the existing ceiling11-Jan-2009 01:53, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 100

The new waste pipe. I took the opportunity to put in new insulation tooThe new waste pipe. I took the opportunity to put in new insulation too

The new waste pipe. I took the opportunity to put in new insulation too11-Jan-2009 01:54, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 160

The new subfloor, with the waste pipe roughed in (and some mortar to patch the gap on the side)The new subfloor, with the waste pipe roughed in (and some mortar to patch the gap on the side)

The new subfloor, with the waste pipe roughed in (and some mortar to patch the gap on the side)30-Dec-2008 02:44, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 250

Setting the new tiles. They blended in nicely with the existing tilesSetting the new tiles. They blended in nicely with the existing tiles

Setting the new tiles. They blended in nicely with the existing tiles

Eidan trying out the new toiletEidan trying out the new toilet

Eidan trying out the new toilet04-Jan-2009 04:54, SONY DSC-W55, 5.2, 18.9mm, 0.02 sec, ISO 320

The finished floor and new toilet. The blue pad at the bottom is something we picked up in Japan - for catching little boy pee.The finished floor and new toilet. The blue pad at the bottom is something we picked up in Japan – for catching little boy pee.

The finished floor and new toilet. The blue pad at the bottom is something we picked up in Japan – for catching little boy pee.22-Feb-2009 23:11, SONY DSC-W55, 2.8, 6.3mm, 0.025 sec, ISO 200

Like many other horrible things in life, it started simply enough, with a small, barely noticeable water stain on the living room wall. It was near the bottom of a window, and the downspout above that window was clogged, causing water to pour down on the glass during heavy rain, so I figured it was a window leak. I took the downspout apart and cleaned it, and put some extra caulk around the window. But the water stain only grew bigger. That spot also happened to be below the toilet in the 2nd floor bathroom, which got me worried.

So I cut a small hole in the living room wall, and could immediately see that the waste pipe from the toilet was cracked. My neighbor Jimmy is a plumber, so I asked him to take a look. “Cut the wall open from floor to ceiling!” he said. I did that and then brought him back again – he made some ominous sounds and then said “cut open the ceiling under the toilet!” The crack ran most of the length of the pipe, and the connector to the toilet looked like its days were numbered too.

I spent a day with Jimmy, removing the cracked section of the pipe. Before we could do that though, we had to cut a hole in the wall in our 3rd floor bedroom, so we could put a clamp on the pipe (it continued all the way to the roof – once above the toilet it serves as a vent). Otherwise it would have collapsed down on top of us in the living room when we cut it.

What ended up taking a long time was removing the section of pipe in the ceiling that connected to the toilet. The entire pipe was encased in concrete, and we had to be careful chipping it out because the water supply line for the toilet ran right above it, and was also covered in concrete. It was like an archeological dig, except over our heads. To make matters worse, once we removed the board that was under the concrete and finished removing the concrete, there was nothing to support the toilet anymore.

It was too much work to finish in one day. We replaced the cracked pipe, and at the end of the day made a temporary connection for the tub drain, so we could at least take showers until the rest of the work was finished (we only have one shower in the house).

The joists in the floor around the toilet were rotted – I could tear out pieces of them with my hands. I ended up having to completely tear out a 3ft x 3ft section of the bathroom floor/living room ceiling. I tried not to cry as I smashed up the new tile floor I had put in the bathroom just a couple years ago :-( .

Putting in the new framing wasn’t too difficult, but getting the subfloor in was a huge pain. I had to get it dead even with the existing floor, and work around where the new toilet waste pipe would be, the existing water supply line for the toilet, and two pipes from the radiator system. I’m proud to say I got it exactly right: the only thing distinguishing the new tile from the old tile is that the new grout is a fresher shade of white.

We took the opportunity to put in a new water-efficient Toto toilet. It has two flush buttons, one of which uses half as much water as a regular flush. Our water bill has dropped significantly since we put it in.

Now I can get back to the project I had started just before all this happened: tiling the fireplace and hearth, and installing a new fireplace mantle.

You are currently browsing the Nothing But Words blog archives for March, 2009.