Class: ODDB::AnalysisParse::TestAppendixListParser

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
ext/analysisparse/test/test_appendix_parser.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) setup



12
13
14
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 12

def setup
  @parser = AppendixListParser.new
end

- (Object) test_fr_parse_page__1



230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 230

def test_fr_parse_page__1
  src = "5.3 Annexe C Analyses prescrites par des sages-femmes\n(art. 62 1er al. let. c OAMal)\nPr\303\251ambule\nLes sages-femmes sont tenues de confier l'\303\251xecution des analyses figurant sur cette liste \303\240 des laboratoires au sens de l'article 54 3e alin\303\251a OAMal\nListe des analyses\nR\303\251v. No pos. A TP D\303\251nomination (liste sages-femmes)\nC 8001.00 18 ABO, groupe sanguin et antig\303\250ne D faible si Rh\303\251sus D n\303\251g.) selon les recommandations STS CRS \"S\303\251rologie \303\251rythrocytaire chez le patient\"\n8017.00 * 45 Alpha-1-foetoprot\303\251ine (AFP)\nC 8200.00 35 \303\251rythrocytes, alloanticorps anti~, test de recherche selon les recommandation STS CRS \"S\303\251rologie \303\251rythrocytaire chez le patient\"\nC 8269.00 15 H\303\251mogramme II (automatis\303\251): h\303\251mogramme I, plus thromboytes\nLimitation: pas avec la m\303\251thode QBC\n8580.00 4 Status urinaire partiel (5-10 param\303\250tres)\n8606.00 30 Guthrie, test de ~\n9116.40 * 12 HIV 1+2, d\303\251pistage des anticorps (par test rapide), ql\n45\n"
  begin
    result = @parser.parse_page(src, 45)
  end
  expected_first = {
    :code          => '8001.00',
    :group       => '8001',
    :position      => '00',
    :taxpoints   => 18,
    :description =>  'ABO, groupe sanguin et antigène D faible si Rhésus D nég.) selon les recommandations STS CRS "Sérologie érythrocytaire chez le patient"',
    :analysis_revision   => 'C',
    :list_title      => nil,
    :taxpoint_type =>  nil,
    :permission      => nil,
  }
  expected_last = {
    :code          => '9116.40',
    :group       => '9116',
    :position      => '40',
    :description =>  'HIV 1+2, dépistage des anticorps (par test rapide), ql',
    :list_title    =>  nil,
    :taxpoints   => 12,
    :taxpoint_type =>  nil,
    :permission    =>  nil,
    :anonymous   => true,
  }
  expected_size = 7 
  assert_equal(expected_first, result.first)
  assert_equal(expected_last, result.last)
  assert_equal(expected_size, result.size)
end

- (Object) test_parse_line__1



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 15

def test_parse_line__1
  src = "C 8001.00 18 ABO-Blutgruppen und Antigen D Bestimmung (inkl. Ausschluss schwaches D Antigen bei Rhesus D negativ) nach Empfehlungen BSD SRK \"Erythrozytenserologische Unter- suchungen an Patientenproben\"\n"
  begin
    result = @parser.parse_line(src)
  rescue AmbigousParseException => e
    puts e.inspect
  end
  expected = {
  :code           => '8001.00',
  :group          => '8001',
  :position       => '00',
  :taxpoints      => 18,
  :analysis_revision        =>  'C',
  :description    =>  'ABO-Blutgruppen und Antigen D Bestimmung (inkl. Ausschluss schwaches D Antigen bei Rhesus D negativ) nach Empfehlungen BSD SRK "Erythrozytenserologische Untersuchungen an Patientenproben"',
  :permission     =>  nil,
  :list_title     =>  nil,
  :taxpoint_type  => nil,
  }
  assert_equal(expected, result)
end

- (Object) test_parse_line__2



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 38

def test_parse_line__2
  src ="8017.00 * 45 Alpha-1-Fetoprotein (AFP)\n"
  begin
    result = @parser.parse_line(src)
  rescue AmbigousParseException =>  e
    puts e.inspect
  end
  expected = {
  :code         =>  '8017.00',
  :group        =>  '8017',
  :position     =>  '00',
  :taxpoints    =>  45,
  :description  => 'Alpha-1-Fetoprotein (AFP)',
  :anonymous    =>  true,
  :list_title   => nil,
  :taxpoint_type  => nil,
  :permission   => nil,
  }
  assert_equal(expected, result)
end

- (Object) test_parse_line__3



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 61

def test_parse_line__3
  src = "8606.00 30 Guthrie-Test\n"
  begin
    result = @parser.parse_line(src)
  end
  expected = {
    :code          => '8606.00',
    :group       => '8606',
    :position      => '00',
    :taxpoints   => 30,
    :description =>  'Guthrie-Test',      
    :list_title    =>  nil,
    :taxpoint_type =>  nil,
    :permission    =>  nil,
  }
  assert_equal(expected, result)
end

- (Object) test_parse_line__4



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 81

def test_parse_line__4
  src = "C 8269.00 15 H\303\244matogramm II (automatisiert): H\303\244matogramm I, plus Thrombozyten\nLimitation: nicht mit QBC-Methode\n"
  src = "C 8269.00 15 Hämatogramm II (automatisiert): Hämatogramm I, plus Thrombozyten Limitation: nicht mit QBC-Methode\n"
  begin
    result = @parser.parse_line(src)
  rescue AmbigousParseException => e
    puts e.inspect
  end
  expected = {
  :code         =>  '8269.00',
  :group        =>  '8269',
  :position     =>  '00',
  :taxpoints    =>  15,
  :analysis_revision      => 'C',
  :description  => 'Hämatogramm II (automatisiert): Hämatogramm I, plus Thrombozyten',
  :limitation   => 'nicht mit QBC-Methode',
  :permission   => nil,
  :list_title     =>  nil,
  :taxpoint_type  => nil,
  }
  assert_equal(expected, result)
end

- (Object) test_parse_page__1



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 107

def test_parse_page__1
  src = "5.3 Anhang C: Von Hebammen veranlasste Analysen (Art. 62 Abs. 1 Bst. c KVV)\nBemerkungen\nHebammen haben mit der Durchf\303\274hrung der Analysen dieser Liste die Laboratorien gem\303\244ss Artikel 54 Absatz 3 KVV zu betrauen.\nListe der Analysen\nRev. Pos.-Nr. A TP Bezeichnung (Liste Hebammen)\nC 8001.00 18 ABO-Blutgruppen und Antigen D Bestimmung (inkl. Ausschluss schwaches D Antigen bei Rhesus D negativ) nach Empfehlungen BSD SRK \"Erythrozytenserologische Unter- suchungen an Patientenproben\"\n8017.00 * 45 Alpha-1-Fetoprotein (AFP)\nC 8200.00 35 Erythrozyten-Alloantik\303\266rper, Suchtest nach Empfehlungen BSD SRK \"Erythrozyten- serologische Untersuchungen an Patienten- proben\"\nC 8269.00 15 H\303\244matogramm II (automatisiert): H\303\244matogramm I, plus Thrombozyten Limitation: nicht mit QBC-Methode\n8580.00 4 Urin-Teilstatus (5-10 Parameter)\n8606.00 30 Guthrie-Test\n9108.01 35 Hepatitis-B-Virus-HBc-Antik\303\266rper (IG), ql\n9108.40 35 Hepatitis-B-Virus-HBs-Antigennachweis EIA/RIA, ql\n9116.40 * 12 HIV 1+2 -Antik\303\266rper (Screening) Schnelltest, ql\n9132.01 35 Rubellavirus-Antik\\uffffrper (IG oder IgG), ql\n9564.81 * 20 Treponema VDRL, qn\n9645.10 32 Toxoplasma gondii (Ig oder IgG)\n9645.30 45 Toxoplasma gondii (IgM)\n\n____*   _________________________________________\nanonyme Position\n\n141\n"
  begin
    result = @parser.parse_page(src, 141)
  rescue AmbigousParseException => e
    puts e.inspect
  end
  expected_first = {
  :code           => '8001.00',
  :group          => '8001',
  :analysis_revision        =>  'C',
  :position       => '00',
  :taxpoints      => 18,
  :description    =>  'ABO-Blutgruppen und Antigen D Bestimmung (inkl. Ausschluss schwaches D Antigen bei Rhesus D negativ) nach Empfehlungen BSD SRK "Erythrozytenserologische Untersuchungen an Patientenproben"',
  :list_title     =>  nil,
  :taxpoint_type  => nil,
  :permission     =>  nil,
  }
  expected_last = {
  :code           => '9645.30',
  :group          => '9645',
  :position       => '30',
  :taxpoints      => 45,
  :description    =>  'Toxoplasma gondii (IgM)',
  :list_title     =>  nil,
  :taxpoint_type  => nil,
  :permission     =>  nil,
  }
  expected_size = 13
  assert_equal(expected_first, result.first)
  assert_equal(expected_last, result.last)
  assert_equal(expected_size, result.size)
end

- (Object) test_parse_page__2



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'ext/analysisparse/test/test_appendix_parser.rb', line 165

def test_parse_page__2
  src = "trifft nur das \303\244rztliche Praxislaboratorium.\nTeilliste 1\nF\303\274r diese Analysen kann f\303\274r das \303\244rztliche Praxislaboratorium der\nTaxpunktwert in Tarifvertr\303\244gen festgesetzt werden, wobei die Tax-\npunktzahl der Analysenliste gilt. Fehlt eine solche vertragliche\nRegelung, so gilt der Taxpunktwert der Analysenliste.\nRev. Pos.-Nr. A TP Bezeichnung (Liste Grundversorgung, Teilliste 1)\n8259.00 9 Glukose, im Blut/Plasma/Serum\nC 8273.00 7 H\303\244matokrit, manuelle Bestimmung, kumu-\nlierbar mit 8210.00 Erythrozyten-Z\303\244hlung, 8275.00 H\303\244moglobin, 8406.00 Leukozyten-\nZ\303\244hlung und 8560.00 Thrombozyten-\nZ\303\244hlung bis max. Taxpunktzahl 15\n(H\303\244matogramm II)\nLimitation: nicht mit QBC-Methode\nC 8275.00 7 H\303\244moglobin, manuelle Bestimmung,\nkumulierbar mit 8210.00 Erythrozyten-\nZ\303\244hlung, 8273.00 H\303\244matokrit, 8406.00\nLeukozyten-Z\303\244hlung und 8560.00\nThrombozyten-Z\303\244hlung bis max. Tax-\npunktzahl 15 (H\303\244matogramm II)\nLimitation: nicht mit QBC-Methode\n8387.00 9 Kreatinin, im Blut/Plasma/Serum\nC 8406.00 9 Leukozyten-Z\303\244hlung, manuelle Bestimmung,\nkumulierbar mit 8210.00 Erythrozyten-\nZ\303\244hlung, 8273.00 H\303\244matokrit, 8275.00\nH\303\244moglobin und 8560.00 Thrombozyten-\nZ\303\244hlung bis max. Taxpunktzahl 15\n(H\303\244matogramm II)\nLimitation: nicht mit QBC-Methode\n8517.00 12 Sediment: mikroskopische Untersuchung\n8519.00 6 Senkungsreaktion, exkl. Blutentnahme\n8548.00 14 Thromboplastinzeit nach Quick\n127\n"
  begin
    result = @parser.parse_page(src, 127)
  end
  expected_first = {
  :code           => '8259.00',
  :group          => '8259',
  :position       => '00',
  :taxpoints      => 9,
  :description    => 'Glukose, im Blut/Plasma/Serum',
  :list_title     =>  nil,
  :permission     =>  nil,
  :taxpoint_type  => nil,
  }
  expected_last = {
  :code           => '8548.00',
  :group          => '8548',
  :position       => '00',
  :taxpoints      => 14,
  :description    => 'Thromboplastinzeit nach Quick',
  :list_title     =>  nil,
  :permission     =>  nil,
  :taxpoint_type  => nil,
  }
  expected_size = 8
  assert_equal(expected_first, result.first)
  assert_equal(expected_last, result.last)
  assert_equal(expected_size, result.size)
end