Поиск кодов МКБ в произвольной строке диагноза (RSL)

RSL

При разработке очередного модуля ИС Бутово встала задача поиска из произвольной строки диагноза выбрать присутствующие там коды МКБ.

Кодов МКБ есть огромное множество. Структура кода описана так:

В общем случае код это буква с двумя цифрами и через точку, могут быть, ещё две цифры. При этом в диагноз коды внесены иногда не с латинской буквой, а русским аналогом, точка иногда заменена на пробел, количество цифр может быть разное.

В качестве примера приведу произвольный диагноз и выбранные коды:

Как быть?!

От идеи перебора кодов отказался сразу. Интерпретатор RSL такой подход явно не одобрит. Подумал и родился интересный, на мой взгляд, код основанный на замене символов и поиске шаблонов.

В этом фрагменте перебираю записи с диагнозами и текст диагнозов преобразую к виду шаблона кода МБВ, а именно:

  • меняю все возможные буквы (включая русские) кода МКБ на «собаку»
  • меняю все цифры на «решётку»
  • меняю «точку» на «решётку»
  • и наконец, меняю возможные варианты шаблона (буква и несколько цифр) на «червячки»

А дальше всё просто:

Далее, в цикле последовательно «выкусываем» всех червячков — это и есть коды МКБ…

Код программы получился кратким и весьма эффективным. Такой подход может быть использован и для других задач.

Оцените статью
Белов Олег Владимирович