Class: ODDB::AnalysisParse::TestSimpleListParser

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

Instance Method Summary (collapse)

Instance Method Details

- (Object) setup



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

def setup
  @parser = SimpleListParser.new
end

- (Object) test_fr_parse_page__1



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'ext/analysisparse/test/test_simple_list_parser.rb', line 127

def test_fr_parse_page__1
  src = "Chapitre 4:  Autres\n\n4.1 Positions g\351n\351rales\n\nRemarques\n\nCes positions g\351n\351rales ne doivent \352tre utilis\351es que pour les\ntraitements ambulatoires; pour les traitements effectu\351s durant une\nhospitalisation, le forfait comprend aussi les analyses (art. 49\nLAMal). Elles ne doivent pas non plus \352tre factur\351es dans un\nlaboratoire de cabinet m\351dical.\n\nR\351v. No. pos.    TP    D\351nomination (positions g\351n\351rales)\n\n9700.00 12 Taxe administrative applicable aux demandes\nexternes, par patient et par prescription ;\nuniquement pour les laboratoires d'h\364pitaux\nau sens de l'art. 54, al. 1, let c, et al. 2,\nOAMal, les laboratoires au sens de l'art. 54,\nal. 3, OAMal et les officines de pharmaciens\nau sens de l'art. 54, al. 1, let. c, OAMal.\n9701.00 8 Pr\351l\350vement de sang capillaire ou de sang\nveineux ; uniquement pour les laboratoires\nd'h\364pitaux au sens de l'art. 54, al. 1, let. c, et\nal. 2, OAMal, les laboratoires au sens de\nl'art. 54, al. 3, OAMal et les officines de\npharmaciens au sens de l'art. 54, al. 1,\nlet. c, OAMal\n9703.00 25 Suppl\351ment pour pr\351l\350vement de sang \340\ndomicile, dans un rayon de 3 km ;\nuniquement pour les laboratoires au sens de\nl'art. 54, al. 3, OAMal\n9704.00 4 Suppl\351ment pour chaque km en plus ;\nuniquement pour les laboratoires au sens de\nl'art. 54, al. 3, OAMal\n9706.00     50   Suppl\351ment pour nuit (de 19 h \340 7 h),\ndimanche et jours f\351ri\351s : par prescription (et\nnon par r\351sultat) ; uniquement pour les\nlaboratoires d'h\364pitaux au sens de l'art. 54,\nal. 1, let. c et al. 2 OAMal et les laboratoires\nau sens de l'art. 54, al. 3, OAMal\n\n109\n\n"
  begin
    result = @parser.parse_page(src, 109)
  end
  expected_first = {
    :code            =>  '9700.00',
    :group         =>  '9700',
    :position        =>  '00',
    :description   => 'Taxe administrative applicable aux demandes externes, par patient et par prescription; uniquement pour les laboratoires d\'hôpitaux au sens de l\'art. 54, al. 1, let c, et al. 2, OAMal, les laboratoires au sens de l\'art. 54, al. 3, OAMal et les officines de pharmaciens au sens de l\'art. 54, al. 1, let. c, OAMal.',
    :taxpoints     =>  12,
    :taxpoint_type =>  nil,
    :list_title      => nil,
    :permission      => nil,
  }
  expected_last = {
    :code            =>  '9706.00',
    :group         =>  '9706',
    :position        =>  '00',
    :description   => 'Supplément pour nuit (de 19 h à 7 h), dimanche et jours fériés : par prescription (et non par résultat); uniquement pour les laboratoires d\'hôpitaux au sens de l\'art. 54, al. 1, let. c et al. 2 OAMal et les laboratoires au sens de l\'art. 54, al. 3, OAMal',
    :taxpoints     =>  50,
    :taxpoint_type =>  nil,
    :list_title      => nil,
    :permission      => nil,
  }
  assert_equal(expected_first, result.first)
  assert_equal(expected_last, result.last)
end

- (Object) test_parse_line__1



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

def test_parse_line__1
  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,
    :permission    =>  nil,
    :taxpoint_type =>  nil,
  }
  assert_equal(expected, result)
end

- (Object) test_parse_line__2



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'ext/analysisparse/test/test_simple_list_parser.rb', line 35

def test_parse_line__2
  src = "9700.00    12  Bearbeitungstaxe f\374r Auftragnehmer von externen Auftr\344gen, pro Patient und Auftrag; nur anwendbar durch Spitallaboratorien nach Artikel 54 Absatz 1 Buchstabe c und Absatz 2 KVV, durch Laboratorien nach Artikel 54 Absatz 3 KVV und durch die Offizin eines Apothekers oder einer Apothekerin nach Artikel 54 Absatz 1 Buchstabe c KVV\n"
  begin
    result = @parser.parse_line(src)
  rescue AmbigousParseException => e
    puts e.inspect
  end
  expected = {
    :group       => '9700',
    :code          => '9700.00',
    :position      => '00',
    :taxpoints   => 12,
    :description =>  'Bearbeitungstaxe für Auftragnehmer von externen Aufträgen, pro Patient und Auftrag; nur anwendbar durch Spitallaboratorien nach Artikel 54 Absatz 1 Buchstabe c und Absatz 2 KVV, durch Laboratorien nach Artikel 54 Absatz 3 KVV und durch die Offizin eines Apothekers oder einer Apothekerin nach Artikel 54 Absatz 1 Buchstabe c KVV',
    :list_title    =>  nil,
    :permission    =>  nil,
    :taxpoint_type =>  nil,
  }
  assert_equal(expected, result)
end

- (Object) test_parse_page__1



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'ext/analysisparse/test/test_simple_list_parser.rb', line 57

def test_parse_page__1
  src = "4.Kapitel:  \334brige\n\n4.1 Allgemeine Positionen\n\nBemerkungen\n\nDiese allgemeinen Positionen d\374rfen nur bei ambulanter Behand-\nlung angewendet werden, bei station\344rer Behandlung sind die\nAnalysen grunds\344tzlich in der Pauschale inbegriffen (Art. 49 KVG).\nIm \344rztlichen Praxislaboratorium d\374rfen diese allgemeinen Positio-\nnen nicht verrechnet werden.\n\nRev.    Pos.-Nr.        TP    Bezeichnung (allgemeine Positionen)\n\n9700.00    12  Bearbeitungstaxe f\374r Auftragnehmer von\nexternen Auftr\344gen, pro Patient und Auftrag;\nnur anwendbar durch Spitallaboratorien\nnach Artikel 54 Absatz 1 Buchstabe c und\nAbsatz 2 KVV, durch Laboratorien nach\nArtikel 54 Absatz 3 KVV und durch die\nOffizin eines Apothekers oder einer\nApothekerin nach Artikel 54 Absatz 1\nBuchstabe c KVV\n9701.00     8    Blutentnahme, Kapillarblut oder\nVenenpunktion; nur anwendbar durch\nSpitallaboratorien nach Artikel 54 Absatz 1\nBuchstabe c und Absatz 2 KVV, durch\nLaboratorien nach Artikel 54 Absatz 3 KVV\nund durch die Offizin eines Apothekers oder\neiner Apothekerin nach Artikel 54 Absatz 1\nBuchstabe c KVV\n9703.00    25  Zuschlag f\374r Entnahme zu Hause, im Umkreis\nvon 3 km; nur anwendbar durch\nLaboratorien nach Artikel 54 Absatz 3 KVV\n9704.00     4    Zuschlag f\374r jeden weiteren km; nur anwendbar durch Laboratorien nach Artikel 54 Absatz 3 KVV\n109\n"
  begin
    result = @parser.parse_page(src,109)
  rescue AmbigousParseException => e
    puts e.inspect
  end
  expected_first = {
    :code          => '9700.00',
    :group       => '9700',
    :position      => '00',
    :taxpoints   => 12,
    :description =>  'Bearbeitungstaxe für Auftragnehmer von externen Aufträgen, pro Patient und Auftrag; nur anwendbar durch Spitallaboratorien nach Artikel 54 Absatz 1 Buchstabe c und Absatz 2 KVV, durch Laboratorien nach Artikel 54 Absatz 3 KVV und durch die Offizin eines Apothekers oder einer Apothekerin nach Artikel 54 Absatz 1 Buchstabe c KVV',
    :list_title    =>  nil,
    :permission    =>  nil,
    :taxpoint_type =>  nil,
  }
  expected_last = {
    :code          => '9704.00',
    :group       => '9704',
    :position      => '00',
    :taxpoints   => 4,
    :description =>  'Zuschlag für jeden weiteren km; nur anwendbar durch Laboratorien nach Artikel 54 Absatz 3 KVV',
    :list_title    =>  nil,
    :permission    =>  nil,
    :taxpoint_type =>  nil,
  }
  expected_size = 4
  assert_equal(expected_size, result.size)
  assert_equal(expected_first, result.first)
  assert_equal(expected_last, result.last)
end