|
|
|
The device can also operate in single needle mode, where an extra reservoir of blood is drawn from the donor to maintain continuity of processing through the centrifuge, while the routing of fluids through the kits can be dynamically controlled to allow changing the direction of flow to the donor, thus returning the residual processed blood through the same "stick" that the blood is drawn from. Though the procedure takes a bit longer in this mode, many donors find it more comfortable. In either single or double needle mode, a unit of packed red cells can be collected at the same time at the discretion of the operator. Another procedure the machine is capable of is the collection of mononuclear cells. These are essentially blood stem cells that maintain the continual supply of blood, sine blood cells have an average lifespan of only 20 days. Before chemotherapy treatments, the patient is given a drug which causes these cells to migrate out of the bone marrow. The Amicus device, running with a special kit and protocol, is then used to harvest these cells, which removes them from the donor for temporary storage so they are not affected by the chemotherapy. After the therapy has been administered, the mononuclear cells are transfused back into the donor. This method allows the patient to tolerate higher dosages of chemotherapy and shortens their recovery time, with substantial improvements to their quality of life during their illness. This device, since it is directly connected to a human donor, is a class 3 medical device, and is subject to stringent FDA and CE Mark regulations. In addition to the documentation requirements, the entire team paid great attention to safety issues, and management supported all efforts in this area without compromise. The architecture of the device included an independent safety process, with redundant data lines to all sensors, and control of a relay in the power supply to cut power if the safety processor determined the device was not operating within expected limits. All valves and motors were spring loaded to fail in the position which isolated the donor from the device. This was critical to insure the donor was not injected with any air bubbles or unchecked quantities of anticoagulant, which could produce unpleasant to fatal effects. Naturally these possibilities were continually monitored during normal operation of the device as well. There was an ultrasonic sensor on the return line to the donor to detect the presence of bubbles at that point, which would trigger a reversal of flow to clear the bubble before resuming the procedure. Sensitive weight scales were built into the hooks holding the fluids bags, and the quantity of anticoagulant used was limited in short term time periods and throughout the overall donation. If either limit was reached, the procedure was immediately ended. Software for this platform was written using a proprietary, in house developed language. It was a curious combination of a procedural language with lots of event driven statements. Structurally, the language operated in discrete work units, organized in a hierarchy of groups called modes, blocks and steps. From these, the compiler generated table entries which controlled the execution of generalized routines constantly running in the background. Each element had to be labeled, and each element had to contain a kind of GOTO statement that specified what section got control flow next under various conditions, such as normal termination, a specified condition being met, or an error event. One of my enhancements to this compiler was a scanner that assured each label was in fact used, to isolate "dead" code and to help find mistargeted labels. When you have to have so many labels, people tend to use similar names with numbers after them, which can be error prone. Control flow could also be changed by specifying a new mode. Some modes would be replaced by new modes, but some modes would nest inside others. Stand alone service functions could be written in C that operated either as on demand subroutine calls, or at periodic intervals, or in response to specific events. It was only how the functions were invoked that determined it's class, and the same function could serve in different classes at the same time (assuming they were properly coded to be reentrant). It was a difficult language to get used to, but once familiarity was attained, it performed well. Two of my more significant contributions to this project were the PRP (Platelet Rich Plasma) Integrator effort, and the Excorporeal Blood Volume Estimator. The PRP Integrator was a substantial software effort requiring new coding and structural changes to existing protocols. This enhancement used an optical sensor to measure the turbidity caused by platelets in the output port line from the centrifuge. This was continually monitored, and the data integrated to estimate the procedure time required to maintain the programmed yield of platelets, which allowed us to adjust the quantity of plasma collected within that time, which is necessary to sustain the targeted quantity of platelets. Once the precise amount of plasma was collected the procedure could be ended. Since the Amicus device was not certified as a platelet counting device, no direct claims regarding collected yields could be made. However, the feedback provided by the integrator was shown in later clinical trials to produce platelet yields that were closer to the target and more consistently in less time than without the Integrator. The other task, the EBVE, was a planning tool that allowed the operator to input various parameters about the donor, such as their height, weight, age, and sex, in addition to the existing input data such as hematocrit, to more safely estimate donor total blood volume and limit the percentage of blood volume which could be withdrawn from the donor at any time. Both of these efforts were awarded patents to the teams that developed them, including myself. Additional information on this device can be found at Baxter, Amicus Clearance, Amicus 501K, and Rapid Prototyping. |