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