|
|
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Доброго всем и безлимитного! Возникла такая проблема. В БД по медикаментам есть записи типа: Антиполицай,таб,№2 Антиполицай таб № 2 Антиполицай, таб № 2 Естественно для железяки это разные названия, но фактчески одно и тоже. Как привязать к единому названию, может запрос какой-то сформулировать или как? Ума не приложу. Парсинг возможен но очень не хотелось бы, потому что вариантов написания уйма... Помогите советом или решением, очень надо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2007, 23:56 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
DelphinariumАнтиполицай,таб,№2 нет решений, кроме ненужных за нужные деньги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 01:40 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Эти все названия записаны в одной колонке в БД ? У Кодда есть 1 НФ, которая говорит, что данные в одном столбце в БД должны быть атомарны! То есть, грубо говоря, фамилимя и адрес клиента должны хранится в разных столбцах (ну или имя и фиамилия клиента). Насколько я понял, в данном примере данные должны хранится в 3 столбцах. Код: plaintext 1. 2. 3. А выполняя запрос, вы просто соединяете нужные вам столбцы в БД, используя нужный символ разделителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 01:44 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Baykin IlyaЭти все названия записаны в одной колонке в БД ? У Кодда есть 1 НФ, которая говорит, что данные в одном столбце в БД должны быть атомарны! То есть, грубо говоря, фамилимя и адрес клиента должны хранится в разных столбцах (ну или имя и фиамилия клиента). Насколько я понял, в данном примере данные должны хранится в 3 столбцах. Код: plaintext 1. 2. 3. А выполняя запрос, вы просто соединяете нужные вам столбцы в БД, используя нужный символ разделителя. не хочу Вас поучать, но все же... поближе к жизни, подальше от бульварной прессы. Это только мое мнение, так сказать имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 01:53 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
DelphinariumДоброго всем и безлимитного! Возникла такая проблема. В БД по медикаментам есть записи типа: Антиполицай,таб,№2 Антиполицай таб № 2 Антиполицай, таб № 2 Естественно для железяки это разные названия, но фактчески одно и тоже. Как привязать к единому названию, может запрос какой-то сформулировать или как? Ума не приложу. Парсинг возможен но очень не хотелось бы, потому что вариантов написания уйма... Помогите советом или решением, очень надо!!! 1. сгруппируйте первично по некоторой функции сходства 2. предоставьте утилиту, которая дат возможность пользователю выбрать основное значение и дубликаты 3. Удалите дубликаты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 07:14 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Парсинг к сожалению невозможен :( , в смысле, что бесполезен. Придётся посадить человека, который выправит этот ваш справочник, как посоветовал drev А на будущее попробуйте использовать штрих-коды, для того что бы в справочнике не плодились названия-дублёры... (хотя всё равно же будут ;) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 17:30 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
> Помогите советом или решением, очень надо!!! Немедленно уволить архитектора этой поделки. Нанять нормального человека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 17:45 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Решать Вашу проблему имеет смысл если только Вы готовы поработать и привести данные к 3 нормальной форме. Иначе - все будет впустую (никто из разработчикао БД не производит нормализацию специально - если Вы знаете что такое нормальные формы - структуры получаются хорошие практически сами собой - и это не бульварные романы или как там у Вас). Если Вы готовы - пожалуйте. Добавьте в "отвратительную" таблицу суррогатный ключ. Создайте, наконец, боее-менее хорошую таблицу. Создайте перекодировочную таблицу которая переводит сурогатный ключ в ключ хорошей таблицы. Дальше работа практически ручная. Можно рекомендовать добавить в исходную таблицу сторковое поле, в которое переписать наименование без пробелов, точек, запятых, тире и тому подобных символов. Это поможет сравнить несравнимое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 19:39 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Delphinarium Помогите советом или решением, очень надо!!! Увы, вас ждёт тупая ручная работа. Для выявления такого рода дублей я пользовался следующей методой. 1. Писал функцию f, которая преобразует большинство дубликатов к такому виду, чтобы в результате агрегирования в большинстве случаев строки с дубликатами располагались в одной группе. Группа, в которую входит более одного уникального названия является подозрительной. В частости Вам можо в функции f удалить из названий все пробелы и пунктуацию, символы типа № и т.п., поднять регистр. select f(dd), count(distinct dd) from t where <отбираем подмножество, на котором функция f хорошо работает> group by f(dd) having count(distinct dd) > 1 2. Из полученного списка удаляем ложные срабатывания, остальные преобразуем в команды update. 3. Просто получаем упорядоченный список всех (или подмножества) значений и просматриваем его глазами на предмет невыявленных косяков. Опять таки сортировать можно не только тупо по исходному значению но и по функции от него. Например в такой функции можно отбросить или переместить префиксы, и т.п. подстроки, в которых встречается больше всего ошибок и на передние позиции поместить наиболее "стабильные" подстроки. Для просмотра можно написать процедуру, которая будет оценивать похожесть каждой следующей строки в списке на предыдыщую и выдавать похожие строки. В ощем такая вот процедура... Могу ещё добавить, что качество данных зависит от их использования. Если единообразное написание названий медикаментов не является критичным для функционирования вашего бизнеса, то хоть убейся, ошибки будут накапливаться. Для устранения ошибок нужна обратная связь. Хорошо, когда она является естественной, т.е. есть люди или механизмы которые в процессе полезной работы выявляют и исправляют ошибки. Если таких людей нет, то придётся заниматься этой работой в рамках непроизводственных процессов. Так сказать, периодически проверять и восстанавливать целостность БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 21:08 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Baykin IlyaЭти все названия записаны в одной колонке в БД ? У Кодда есть 1 НФ, которая говорит, что данные в одном столбце в БД должны быть атомарны! То есть, грубо говоря, фамилимя и адрес клиента должны хранится в разных столбцах (ну или имя и фиамилия клиента). Насколько я понял, в данном примере данные должны хранится в 3 столбцах. Код: plaintext 1. 2. 3. А выполняя запрос, вы просто соединяете нужные вам столбцы в БД, используя нужный символ разделителя. Как то вы плохо читали Кодда. Если у автора домен является множеством именно таких вот назнаний медикаментов, то и нарушения атомарности в этом нет, поскольку атрибут содержит только одно полное название медикамента. Точно так же, если в предметной области не выделены домены Фамилия и Имя (т.е. они не нужны как таковые, а требуется полное имя человека), то и создавать отдельные столбцы тоже нет надобности. Паконец, у автора не стоит задача перекраивать БД, а если и встанет, то чистка данных всё равно потребуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 21:33 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
DelphinariumВозникла такая проблема. В БД по медикаментам есть записи типа: Антиполицай,таб,№2 Антиполицай таб № 2 Антиполицай, таб № 2 Проведи анализ - если у тебя действительно разделителем является запятая всегда и везде - тебе повезло - от этого ипляши ... а вообще в ветеке по SQL Server уже подобный вопрос от пользователя "Аленочка" был - можешь поискать - там много интересного было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 03:33 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
всё в мире сделано до нас http://www.sql.ru/forum/actualthread.aspx?tid=319685&pg=4&hl=xml?#2960843 /topic/319685&pg=5&hl=xml#2961028 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 11:27 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Кроме приведения БД к нормальности есть еще проблема ОРГАНИЗАЦИИ ввода и контроля данных. Можно слишком пережать процедуру, вводить данные будет сложно и люди будут этого боятся. Можно, наоборот, предоставить полную свободу, когда появляются приведеные строки. Организовать по ходу процедуры ненавязчивую проверку, старающуюся подобрать подходящие данные, вовремя переспросить или промолчать - это искусство. ОЧЕНЬ полезно периодически перетряхивать справочники, выявлять и давить дубликаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 08:58 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
К слову. Как бывший фармацевт ;-) утверждаю, что писать "Антиполицай таб №2" - неверно. Надо писать "Антиполицай таб N2", потому что это не символ "Номер", а сокращение от латинского Numero (в количестве). Бе-бе-бе ;-) ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 23:04 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
> Надо писать "Антиполицай таб N2" Правильно. Внимание, вопрос: какая дополнительная структура данных нужна, чтобы можно было адекватно регистрировать "Антиполицай таб N2"? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 01:51 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Уж не про единый ли городской классификатор уважаемый guest_20040621 сейчас говорит? Или про "Гармед" от фирмы "Гарант" (там типичнейшая схема "звезда" была)? ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 19:37 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
> не про единый ли городской классификатор Нет. Боюсь, я не видел устраивавшей меня реализации. Вопрос - теоретический. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 20:57 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Надо писать "Антиполицай таб N2" Правильно. Внимание, вопрос: какая дополнительная структура данных нужна, чтобы можно было адекватно регистрировать "Антиполицай таб N2"? ;) Иметь set всех названий вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 21:08 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
guest_20040621> не про единый ли городской классификатор Нет. Боюсь, я не видел устраивавшей меня реализации. Вопрос - теоретический.Ну... на теоретический вопрос, боюсь, я ответа дать не смогу. Тут ведь много сугубо практических факторов вмешивается. О них и буду рассуждать. Вот взять, например, популярный фармацевтический справочник Видаль. За основу, в смысле, взять. Так там только одних классификаций лекарственных препаратов несколько штук разных. По фармакологической группе, по фармакокинетической, по еще каким-то признакам (сейчас уже не вспомню, каким именно, давно вышел из этого бизнеса). Далее, есть производители, торговые (брендовые, патентованные) наименования, "общечеловеческое" название (хорошо если активный компонент в таблетке один, а если несколько?), аналоги других производителей, формы выпуска, типы упаковки, дозировка, количество доз в упаковке и т.д. Ну а на практике многое из этого для описания номенклатуры оказывается ненужным. Например, я никогда не мог отличить блистера от контурно-ячейковой упаковки - да даже и аптекам, наверное, один хрен, в блистерах таблетки или в контурных ячейках. Если речь идет о таких ходовых и дешевых препаратах обязательного ассортимента, как активированный уголь, то, конечно, у клиентов аптек может быть предпочитаемый производитель, но при отсутствии у дистрибутора этих таблеток аптека возьмет уголь любого другого производителя. Если же речь идет о брендовых препаратах, которые производятся строго в одной форме, дозировке и упаковке, то для описания вообще может оказаться достаточно только наименования. А если это аэрозоль 50 мл, то на упаковке может также стоять пометка "200 доз" - так это можно указать, а можно и опустить, провизоры и сами знают, сколько там доз. На практике все дистрибуторы пришли к тому, что препараты в их прайсах называются примерно одинаково, наименование состоит из примерно одного и того же (в общем, неполного, с точки зрения Видаля, но достаточного для ведения бизнеса) набора сегментов. В их справочниках позиций сегменты, как правило, располагаются в одном и том же порядке, но заводятся с отличиями, например, таб - таб. - табл., наличие/отсутствие пробелов и т.д. Я всегда был сторонником того, чтобы крупные дистрибуторы договорились о принятии единого справочника (хотя бы того же ЕГК, за неимением чего-то лучшего). Это бы дало возможность во многом облегчить жизнь всем игрокам на этом рынке, ну и ИТ-шникам, в том числе. Даже выступал с этим призывом на одной из конференций, устроенной одним из крупных региональных игроков, куда пришли представители "большой четверки" фармдистрибуторов (состава того момента, с тех пор прошло уже более 5 лет). К сожалению, в ответ на этот призыв народ покивал-покивал, с тем и разошлись. А для сравнения номенклатуры с конкурентами я поступал примерно как сказал mcureenab - имел простой set всех названий, который регулярно дополнялся, а маркетологи проставляли соответствие новых вхождений с несколько урезанной версией ЕГК. Поскольку препараты нашей компании также обязательно сопоставлялись с этим справочником, этого было вполне достаточно. Ну а для снижения уровня помех я перед сравнением формировал "ключ" по хитрому алгоритму с отбрасыванием незначащих символов и конвертированием кириллицы в латиницу (последнее зачем-то надо было, сейчас уже не помню, зачем, вроде, практика показала, что такой ключ для моих условий давал более надежное сравнение), ну и кое-какими еще семантическими приемами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 00:55 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Urri, я полагал, что Вы будете рассуждать в контексте упаковок, форм выпуска и дозировок. С именами, аналогами, действующими веществами все просто. А вопрос назвал теоретическим с тем, чтобы попробовать обобщить понятие "упаковка" с целью унификации использования (в частности, с ограничением в виде "форма выпуска"). В свою очередь, для того, чтобы иметь возможность сравнения эффективной стоимости в пересчете на действующее вещество. > для сравнения номенклатуры Да, это понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 01:28 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
guest_20040621 > для сравнения номенклатуры Да, это понятно. Так вопрос в том и заключался. А всякие расчёты-пересчёты это как бы не в тему, тем более, что содержимое упаковки может быть очень слабо связано с её названием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 19:09 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
Чисто теоретически, и такой вопрос имеет право на существование. Но я, если откровенно, не до конца его понял. Прошу точнее поставить задачу, а там и потеоретизируем. ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 23:33 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
> Чисто теоретически Как раз наоборот, с практической точки зрения. ;) > точнее поставить задачу Какой из препаратов имеет наименьшую стоимость действующего вещества (остальные условия для простоты можно опустить)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:10 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
С практической точки зрения это бесполезная информация ;-) Ну кому от этого польза будет, знать, что вот в этой пачке ацетилсалициловой кислоты 1 ее грамм стоит дешевле, чем в другой? А если та, другая - проверено - не помогает? (Вспомним Жванецкого, CH3C2H5 на пару - не помогает). Впрочем, стоп! Нет, все-таки можно практически эту задачку применить. Представим, у нас гособеспечение льготников по обязательному списку, а государство возмещает по фиксированным ценам, вот тут-то исполнителю гособеспечения для максимализации своей прибыли и надо минимизировать цену за дозу. И, кстати, задача с упаковкой и правда может вылезти. Например, государство положило льготнику 20 доз на рецепт, а минимальная стоимость оказалась в пачке с 30 таблетками. Ну, можно раздеребанить пачку на 3 блистера по 10 таблеток - и льготникам отдавать по 2 блистера на рецепт. Ну и миллиграммы разные тоже могут быть - не помирать же больному, если нет доз по 400 мг, но есть дозы по 200 мг - их просто надо взять вдвое больше. Но потом задача отчитаться возникает - покупали-то по 30 таблеток, а реализовывали по 20. А тут - дроби могут появиться. Количество полученного в результате округлений может стать не равным количеству реализованного. Короче говоря, чтоб дробей не было (количественных, суммы все равно скорее всего округлять придется), можно основной единицей измерения в информационной системе принимать как раз 1 дозу (или большее количество доз, но только когда их нельзя поделить и использовать отдельно - т.е. не делимую на более мелкие элементы). А оборот строить на производных единицах, которыми и являются пачки. Таким образом, наша задача вырождается опять-таки в пересчеты ЕИ. А это мы уже обсуждали, в другом топике. ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 02:15 |
|
||
|
Привязка к единому названию
|
|||
|---|---|---|---|
|
#18+
> Ну кому от этого польза будет Любому, у кого будут такие данные. Курс лечения - х условных единиц действующего вещества, оптимальными с точки зрения цены будут [] препараты. > если та, другая - проверено - не помогает? Цена - не единственный критерий, я это специально подчеркнул. > можно основной единицей измерения в информационной системе принимать как раз 1 дозу Боюсь, что нельзя. Вопрос - он только на вид простой. ;) Нужны дополнительные суррогатные единицы. > задача вырождается опять-таки в пересчеты ЕИ Да нет, едиными классификаторами даже не пахнет. Фишка в том, что критерии оценки могут быть сколь угодно сложными. Причем, для ЛС наиболее простое и очевидное решение. ;) Вот с диагностикой, например, все будет сильно интереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 02:50 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34973720&tid=1544142]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 489ms |

| 0 / 0 |
