|
|
article-20h-interview.mw - tgtimes - The Gopher Times |
|
|
 |
git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes (git://bitreich.org) |
|
|
 |
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. |
|