wfdb-app-toolbox icon indicating copy to clipboard operation
wfdb-app-toolbox copied to clipboard

output format of bxb rebort

Open GoogleCodeExporter opened this issue 9 years ago • 3 comments

report = bxb(...);    

report is of type:
<1x1 java.util.ArrayList>

And looks like this:  
report =

[N(108858)/O(108858), N(122530)/O(122530), N(148012)/O(148012), 
N(168827)/O(168827), N(173851)/O(173851), N(199816)/O(199816), 
N(210579)/O(210579), N(210714)/O(210714), N(217273)/O(217273), 
N(230226)/O(230226), N(230984)/O(230984), N(258017)/O(258017), 
N(262185)/O(262185), N(267025)/O(267025), N(267152)/O(267152), 
N(274990)/O(274990), O(275055)/N(275055), N(281621)/O(281621), 
N(293727)/O(293727), N(301745)/O(301745), N(307985)/O(307985), 
O(308085)/N(308085), N(310130)/O(310130), N(318607)/O(318607), 
N(318891)/O(318891), O(329450)/N(329450), N(329567)/O(329567), 
O(329712)/N(329712), N(375316)/O(375316), O(375375)/N(375375), 
N(396276)/O(396276), N(405621)/O(405621), N(413504)/O(413504), 
N(415325)/O(415325), N(419212)/O(419212), N(507352)/O(507352), 
N(525251)/O(525251), N(536100)/O(536100), N(536392)/O(536392), 
N(536660)/O(536660), N(536969)/O(536969), O(537025)/N(537025), 
N(537359)/O(537359), O(537450)/N(537450), N(538925)/O(538925), 
N(539143)/O(539143), N(540551)/O(540551), N(601609)/O(601609), 
N(604154)/O(604154), ,   Beats missed in shutdown:   0.00% (0/2481),       N 
missed in shutdown:   0.00% (0/2481),       S missed in shutdown:      -  
(0/0),       V missed in shutdown:      -  (0/0),       F missed in shutdown:   
   -  (0/0),        Total shutdown time:     0 seconds]

Using report.get(1) returns a string 'N(108858)/O(108858)'

Another way is reportArray = report.toArray;
reportArray <56x1 java.lang.Object[]>

reportArray(1) returns a string 'N(108858)/O(108858)'

This is quite tedious to parse (e.g.: one array with 108858, 122530, 148012, 
aso... and a second one with 275055, 308085, 329450, aso...).

A function to convert the output would be great! 

(There might be a function I am unaware of... but I couldn't find it)



Original issue reported on code.google.com by [email protected] on 30 Jun 2014 at 8:42

GoogleCodeExporter avatar Mar 13 '15 23:03 GoogleCodeExporter

This has been done. See the following issue (issue 37):

https://code.google.com/p/wfdb-app-toolbox/issues/detail?id=37&can=1&q=bxb

Original comment by [email protected] on 30 Jun 2014 at 2:29

  • Changed state: Duplicate

GoogleCodeExporter avatar Mar 13 '15 23:03 GoogleCodeExporter

Issue 37 is a way to parse the generated report file (at leas in Version 
0.9.6.1)

report = bxb(['./', 
recordStr(recNr)],'atrOrig','atrPeak',['./mitdbReports/bxbReport_', 
recordStr(recNr),'.txt']);    

In mitdbReports_XYZ.txt you have:

Beat-by-beat comparison results for record XYZ
Reference annotator: atrOrig
     Test annotator: atrPeak

               Algorithm
        n    s    v    f    q    o    x
   ____________________________________
 N | 2439    0    0    0    0   42    0
 S |    0    0    0    0    0    0    0
 V |    0    0    0    0    0    0    0
 F |    0    0    0    0    0    0    0
 Q |    0    0    0    0    0    0    0
 O |    7    0    0    0    0
 X |    0    0    0    0    0

           QRS sensitivity:  98.31% (2439/2481)
 QRS positive predictivity:  99.71% (2439/2446)
           VEB sensitivity:      -  (0/0)
 VEB positive predictivity:      -  (0/0)
          SVEB sensitivity:      -  (0/0)
SVEB positive predictivity:      -  (0/0)
     RMS RR interval error: 139.97 ms


but the return value "report" gives: 

[N(108858)/O(108858), N(122530)/O(122530), N(148012)/O(148012), 
N(168827)/O(168827), N(173851)/O(173851), N(199816)/O(199816), 
N(210579)/O(210579), N(210714)/O(210714), N(217273)/O(217273), 
N(230226)/O(230226), N(230984)/O(230984), N(258017)/O(258017), 
N(262185)/O(262185), N(267025)/O(267025), N(267152)/O(267152), 
N(274990)/O(274990), O(275055)/N(275055), N(281621)/O(281621), 
N(293727)/O(293727), N(301745)/O(301745), N(307985)/O(307985), 
O(308085)/N(308085), N(310130)/O(310130), N(318607)/O(318607), 
N(318891)/O(318891), O(329450)/N(329450), N(329567)/O(329567), 
O(329712)/N(329712), N(375316)/O(375316), O(375375)/N(375375), 
N(396276)/O(396276), N(405621)/O(405621), N(413504)/O(413504), 
N(415325)/O(415325), N(419212)/O(419212), N(507352)/O(507352), 
N(525251)/O(525251), N(536100)/O(536100), N(536392)/O(536392), 
N(536660)/O(536660), N(536969)/O(536969), O(537025)/N(537025), 
N(537359)/O(537359), O(537450)/N(537450), N(538925)/O(538925), 
N(539143)/O(539143), N(540551)/O(540551), N(601609)/O(601609), 
N(604154)/O(604154), ,   Beats missed in shutdown:   0.00% (0/2481),       N 
missed in shutdown:   0.00% (0/2481),       S missed in shutdown:      -  
(0/0),       V missed in shutdown:      -  (0/0),       F missed in shutdown:   
   -  (0/0),        Total shutdown time:     0 seconds]

This information is dynamic (depended on how many FP and FN), and more 
complicated to parse.
Where as mitdbReports_XYZ.txt is static, and quite easy to parse with the 
approach mentioned in issue 37. 
Or is there something I don't see?... 


Original comment by [email protected] on 4 Jul 2014 at 8:17

GoogleCodeExporter avatar Mar 13 '15 23:03 GoogleCodeExporter

Original comment by [email protected] on 10 Jul 2014 at 3:48

  • Changed state: Accepted
  • Added labels: Type-Enhancement, Priority-High

GoogleCodeExporter avatar Mar 13 '15 23:03 GoogleCodeExporter