article-20h-interview.mw - tgtimes - The Gopher Times | |
git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
article-20h-interview.mw (7107B) | |
--- | |
1 .SH 20h | |
2 Breaking free from medical devices | |
3 .2C 122v | |
4 . | |
5 .PP | |
6 Unlike most USB gadgets around, medical devices require a specification | |
7 to be proven fit for handling patients data. | |
8 This makes doctor-hacking difficult for the sake of better control | |
9 over what is allowed for medical use. | |
10 . | |
11 .PP | |
12 While this may sound as a non-starter for many, not all doctors are | |
13 discouraged. | |
14 Interview with 20h: | |
15 . | |
16 .QP | |
17 You are __20h__, a doctor in Falken, the best village to live in | |
18 in Germany, is that correct? | |
19 . | |
20 .PP | |
21 Yes. | |
22 . | |
23 .QP | |
24 You managed to do some hacking around a medical device. | |
25 What was it? | |
26 How did it help you in your diagnostics? | |
27 . | |
28 .PP | |
29 I wrote \fCrfcommd\fR to have my spirometer print out the results | |
30 to a standard printer. | |
31 It helps me having a more detailed view on the results. | |
32 . | |
33 .PP | |
34 The normal printout is just like 8 centimeters wide. | |
35 Now it is A4. | |
36 . | |
37 .PP | |
38 I plan on using rfcommd to read out ECG data from a ECG for further | |
39 analysis. | |
40 . | |
41 .PP | |
42 The collecting computer is a gentoo hardened on x86_64, with a | |
43 standard bluetooth dongle, sending the print jobs via TCP/IP to a | |
44 network printer. | |
45 . | |
46 .PP | |
47 For printing there is a cups installation, converting the PCL output | |
48 of the spirometer to postscript for the network printer. | |
49 . | |
50 .QP | |
51 What software were provided to collect the data on a computer? | |
52 On which kind of system was that running? | |
53 . | |
54 .PP | |
55 Before rfcommd there was no collection of the data. | |
56 The spirometer has some built-in printer, | |
57 which is very expensive and the printout is small. | |
58 . | |
59 .QP | |
60 Are you using it often? | |
61 . | |
62 .PP | |
63 I/We are using it every day for printing out spirometry (lung | |
64 function) results. | |
65 . | |
66 .PP | |
67 By the way. | |
68 A secondary function why rfcommd has filters: We have | |
69 a sterilization device, which has a serial printout of sterilization | |
70 runs. | |
71 . | |
72 .PP | |
73 This is what rfcommd does print out too. | |
74 . | |
75 .PP | |
76 The features of rfcommd moved from: Accept every rfcomm request to | |
77 having filters per device mac, was because of those two devices. | |
78 . | |
79 .PP | |
80 But it will allow to have the ecg readout as a filter for free. | |
81 . | |
82 .QP | |
83 It had limited interaction, and yet you managed to made it available | |
84 from a linux computer. | |
85 How did you do it? | |
86 . | |
87 .PP | |
88 First I had a python script using pybluez to offer some bluetooth | |
89 printer service, which bluetooth clients connect to and send print | |
90 jobs. | |
91 . | |
92 .PP | |
93 But I migrated this to some C implementation and generalized it as | |
94 rfcommd so it is more modular for me and others can reuse it too. | |
95 . | |
96 .PP | |
97 Bluez stack had some rfcomm client application, but it was removed | |
98 in newer version because they hate commandline users. | |
99 . | |
100 .QP | |
101 Was it difficult? How long did it take? | |
102 . | |
103 .PP | |
104 Digging around bluetooth is difficult. | |
105 It looks similar to TCP/IP, but is its own terminology, protocols | |
106 and principles. | |
107 Look at rfcommd for how to announce some service. | |
108 . | |
109 .PP | |
110 It took me two weekends to write rfcommd as it is now. | |
111 . | |
112 .QP | |
113 What would you advise to designers of such devices to make everyone's | |
114 life easier? | |
115 . | |
116 .PP | |
117 If you mean medical devices: Please open source all firmware and | |
118 open up all schematics. | |
119 In ten years you will be dead or in pension but still people can | |
120 extend or update your devices. | |
121 . | |
122 .PP | |
123 And second: Never have specific assumptions and fool end users into | |
124 costly standard. | |
125 You never know better than your users. | |
126 . | |
127 .PP | |
128 For example in the spirometry description, they say, that only some | |
129 bluetooth printers are compatible. | |
130 . | |
131 .PP | |
132 This is due to the bluetooth standard not having defined, \fBwhat\fR | |
133 is sent to bluetooth printers. | |
134 . | |
135 .PP | |
136 It should be the minimum, to define this, as it is in the USB | |
137 printing standard. | |
138 . | |
139 .QP | |
140 What kind of protocol interface would have been the easiest? | |
141 . | |
142 .PP | |
143 The easiest protocol interface, also considering security and data | |
144 protection standard, would be ssh over TCP/IP. | |
145 Everyone knows SSH, it can be integrated into everything and it is | |
146 easily upgradable to newer security standards. | |
147 . | |
148 .QP | |
149 What does it permits to do that was not possible before? | |
150 . | |
151 .PP | |
152 With the spirometry data ready as simple text data, I can further | |
153 process it using standard unix tools, in case I ever need this. | |
154 . | |
155 .QP | |
156 Are other people using it in the practice as well? Even indirectly? | |
157 . | |
158 .PP | |
159 My nurses use it mainly. | |
160 They press the »print« button on the spirometry device and it prints | |
161 the results. | |
162 . | |
163 .PP | |
164 I, as doctor, only see the printed out results and explain them to | |
165 patients. | |
166 . | |
167 .QP | |
168 Does she have to use command line interface for that? | |
169 . | |
170 .PP | |
171 No, it's all practical. | |
172 The spirometer starts its bluetooth client for rfcommd and rfcommd | |
173 runs the spirofilter printing filter script, which invokes lpr(1). | |
174 . | |
175 .QP | |
176 Are there many situations like that, where cumbersome interfaces | |
177 makes life harder for working with medical devices? | |
178 . | |
179 .PP | |
180 Yes, it's built into all medical devices to enforce proprietary and | |
181 expensive Windows software to be bought. | |
182 . | |
183 .PP | |
184 For example the newer version of my ECG device has some undocumented | |
185 network mode. | |
186 The ECG standard I will be using over serial was defined in 1990. | |
187 Since then old devices only got bluetooth and ethernet, but did | |
188 nothing else new. | |
189 . | |
190 .PP | |
191 The price stayed the same, of course. | |
192 . | |
193 .QP | |
194 Do you think designers would benefits themself from offering another | |
195 interface that is easier to use? | |
196 . | |
197 .PP | |
198 In the short term viewpoint it protects you from competitors to | |
199 enter the market. | |
200 But in the long run, this now stops me from easily processing patient | |
201 data for further research. | |
202 I am using a 25 yr old ECG and some 10 yr old spirometer. | |
203 . | |
204 .QP | |
205 Are there any similarities in other devices to reuse the existing | |
206 work you just did? | |
207 . | |
208 .PP | |
209 Yes. | |
210 Bluetooth is the new hype in medical devices. | |
211 All those smart devices for body measurement are for example BLE, | |
212 some insecure bluetooth standard to read out key=value from bluetooth | |
213 clients. | |
214 Some bled(8) should be easy to write. | |
215 . | |
216 .PP | |
217 Nearly every medical device still has some serial port, either for | |
218 communication or measurement. | |
219 . | |
220 .PP | |
221 For measurement this will never die out, since raw data is required. | |
222 . | |
223 .PP | |
224 And some serial2bluetooth, that's what I am using for my practical | |
225 examples. | |
226 . | |
227 .QP | |
228 Would it have been possible to build such device yourself from | |
229 parts, but with sane interfaces instead? | |
230 . | |
231 .PP | |
232 Building such a device is not the hard part. | |
233 The hard part is licensing the device as being a medical device. | |
234 . | |
235 .PP | |
236 I am, as a doctor, am allowed to license some medical device for | |
237 my patients. | |
238 But if I'd want to sell or give this device to some other doctor, | |
239 I'd need some EU medical device license. | |
240 . | |
241 .PP | |
242 This is a complex process. | |
243 . | |
244 .PP | |
245 You have severial medical device classes. | |
246 Some always require some EU-wide licensing. | |
247 . | |
248 .PP | |
249 The logic of some ECG is very simple. | |
250 But licensing it for selling is what makes it expensive and/or keeps | |
251 the competition low. | |
252 . | |
253 .QP | |
254 What do you advise to people also stuck with cumbersome device, but | |
255 without reverse engineer superpowers? | |
256 . | |
257 .PP | |
258 Force the device producers to open up standards. | |
259 Write into contracts, that devices have to be interoperable, so | |
260 producers need to adapt. | |
261 . | |
262 .PP | |
263 It's the same for software. | |
264 If you can't write it on your own, force them to open up standards, | |
265 because you want to extend the software. | |
266 . | |
267 .PP | |
268 For extension of software, reverse engineering is legal. |