|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
добрый день. Есть курсоры pacient, sluch и curs1. Курсор pacient имеет основные поля agep, dr,npolis,spolis. Для каждого пациента из этого курсора имеются случаи которые хранятся в sluch. Основные поля npolis,spolis, ds0,ds1,ds2. Поля ds0,ds1,ds2 это коды МКБ. Нужно проверить соответствие кода МКБ возрасту пациента. в курсоре pacient agep - это поле возраст. Проверка соответствия кода МКБ показана ниже: Есть курсор curs1 там поле code - КОД МКБ, age возраст, и поле compr - содержит знаки <,>,=. если в curs1 поле age=1 а поле compr=">=" то значение в поле code соответствует пациенту возраст которого больше или равен 1 год Задача проверить соответствие кода МКБ для каждого случая возрасту пациента. помогите разобраться с логикой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 11:43 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Сделай свою функцию и передавай туда возраст пациента, условие, возраст ограничения. А внутри проверяй и возвращай результат проверки. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
ЗЫ alltrim() и == использованы не случайно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 11:55 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Dima T, Usl это переменная или какое-то условие типа? у меня вроде идет в curs1 по полям age и compr условия. если age=10 к примеру и compr=">" то для таких пациентов код МКБ допустим Z000 это поле code ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:08 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
А понял что значит Usl.. сейчас попробую разобраться в вашей функции ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:28 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
не до конца понял. Ваша функция проверяет два условия и последнее otherwise выполняется если ни один из case не выполнился получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:32 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Дима1991добрый день. Есть курсоры pacient, sluch и curs1. Курсор pacient имеет основные поля agep, dr,npolis,spolis. Для каждого пациента из этого курсора имеются случаи которые хранятся в sluch. Основные поля npolis,spolis, ds0,ds1,ds2. Поля ds0,ds1,ds2 это коды МКБ. Нужно проверить соответствие кода МКБ возрасту пациента. в курсоре pacient agep - это поле возраст. Проверка соответствия кода МКБ показана ниже: Есть курсор curs1 там поле code - КОД МКБ, age возраст, и поле compr - содержит знаки <,>,=. если в curs1 поле age=1 а поле compr=">=" то значение в поле code соответствует пациенту возраст которого больше или равен 1 год Задача проверить соответствие кода МКБ для каждого случая возрасту пациента. помогите разобраться с логикой задачи. Ну и что это, опять очередной курсовой проект ? "А голова нужна исключительно чтобы ею есть". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:35 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
CheckMKB в моем примере это пользовательская функция. tnAgep, tcUsl, tnAgeUsl - параметры. Сохрани эту функцию в процедурный файл, или в файл CheckMKB.prg (без первой строки кода) и вызывай со своими параметрами: if CheckMKB(pacient.agep, curs1.compr, curs1.age) ? 'Подходит' else ? 'Не подходит' endif PS Ты бы книжку какую-нибудь почитал по фоксу. Судя по твоим постам ты в элементарных вещах путаешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:37 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
reware, нет это не курсовая, по работе это.. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:37 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
я по ходу учусь.. в свободное время читаю ведь ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:38 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Дима1991не до конца понял. Ваша функция проверяет два условия и последнее otherwise выполняется если ни один из case не выполнился получается? Хэлп почитай про DO CASE Читай книжку. Хотя бы синтаксис основных команд изучи. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:42 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:44 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
tanglir, не взрывай мозг начинающим ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:45 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Правда, тут одна функция не на том месте поставлена... ну да это уже мелочи )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:45 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Dima T, сделал как ты говоришь. Мне нужно знаешь как: первый случай когда поле compr=">=". Надо проверить равно ли compr ">=" если равно проверить возраст пациента больше или равен возрасту в curs1. Если больше то получается возраст пациента удовлетворяет условию проверки возраста. как я понимаю и потом надо проверить коды МКБ из sluch которые удовлетворяют этому возрасту что ли? тут немного путаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:46 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
tanglir Код: sql 1. 2. 3. 4. 5. 6. 7.
Что-то сразу не заметил, не будет это работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:47 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Dima T, это я-то взрываю? А зачем передавать в функцию tcUsl и tnAgeUsl, если достаточно одного tcCode (код случая), всё остальное она сама должна считать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:48 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Dima TЧто-то сразу не заметил, не будет это работать.Ладно, ладно: Код: sql 1. 2. 3. 4. 5. 6. 7.
, так сойдёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:52 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
а нельзя сделать так как я говорю проверить первый случай поле compr если равно ">=" проверить возраст и потом код МКБ проверить и если соответствует вывести в курсор потом второе условие где compr="<" ? возможно ваши коды делают это но не все понимаю в них ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:53 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
tanglir, откуда usl? это у меня курсоры sluch,pacient и hediag (таблица), но я поле code в нем сделал тами: Z00.0 и вывел в курсор. А usl это другой курсор он тоже у меня есть но для него наверное отдельно надо проверять ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:56 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Дима1991и потом код МКБ проверитьТак я что-то не понял, мы что проверяем? Вроде бы код у нас уже есть, и нужно проверить возраст... а тут выясняется, что ещё и код проверять надо, что ли? Мой пример соединяет услуги и пациентов по номерам полисов (первый джойн). После чего для каждой пары "пациент-услуга" проверяет соответствие кода МКБ возрасту пациента (icase) Чтобы это проверить, надо лезть в таблицу hediag, для чего и служит второй джойн. Он - левый(left), чтобы в случае, когда в услуге указан несуществующй код МКБ, пара "пациент-услуга" не потерялась (для таких пар результат проверки будет NULL). Дима1991tanglir, откуда usl? это у меня курсоры sluch,pacient и hediagу вас же надо проверять usl.ds и sluch.ds1,ds2,ds3. Я написал для usl, но для случаев код будет тот же самый, только заменить таблицу и имена полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 13:03 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
tanglirDima T, это я-то взрываю? А зачем передавать в функцию tcUsl и tnAgeUsl, если достаточно одного tcCode (код случая), всё остальное она сама должна считать. Развернутый код проще понимается, несмотря на его объем и избыточность. Операции простейшие, можно построчно проследить что в какой последовательности происходит. А когда решение всей задачи свернуто в одну строчку с непривычки можно мозг сломать пока поймешь что когда произойдет. Может я и не прав. Проехали. tanglir Код: sql 1. 2. 3. 4. 5. 6. 7.
, так сойдёт? Нет :) Код: sql 1.
== вернет .F. если длина сравниваемых строк разная. Я ж не просто так alltrim() у себя добавил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 13:07 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
tanglir, вообще задача такова. опишу с самого начала. был xml Файл из него получили три курсора pacient, usl и sluch: пациенты, услуги и случаи. Для одного случая несколько услуг может быть. Задача такая стоит: проверить Соответствие кода МКБ возрасту пациента. Соответствие кода МКБ возрасту представлено в файле Hediag.dbf (в нем коды МКБ хранятся без точки, разделяющей подрубрики), пример на скриншоте: тут выложу скрин таблицы hediag Поля age и compr определяют возрастное условие. Определение возраста пациента нужно проводить на день даты исследования. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 13:09 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
возраст пациентов определил сразу после получения курсоров и занес в поле pacient.age. теперь есть курсоры и возрасты.. дальше темный лес ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 13:11 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
pacient.agep вернее ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 13:13 |
|
проверить соответствие кода
|
|||
---|---|---|---|
#18+
Дима1991тут выложу скрин таблицы hediag Ты лучше примеры в виде кода выкладывай, без ненужных деталей. Как то так: Код: sql 1. 2. 3.
чтоб можно было скопировать и запустить. Кстати откуда у тебя hediag взялся? Изначально была речь о pacient, sluch и curs1 вот их и выложи. По 3-4 строчки каждый. И пиши чего в итоге хочешь получить. А то все мутно и непонятно у тебя, мысли твои никто читать не умеет, телепаты на каникулах :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 13:24 |
|
|
start [/forum/topic.php?desktop=1&fid=41&tid=1583362]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 432ms |
0 / 0 |