|   |   | 
| 
 | Возраст в днях месяцах и годах - как хранить и как определить в какой промежуток попадает? | ☑ | ||
|---|---|---|---|---|
| 0
    
        RomaH naïve 09.07.19✎ 06:57 | 
        Лаборатория - референсные значения показателей анализов от возраста пациента:
 0-4 дня 4 дня - 2 месяца 2 месяца - 2 года нижняя граница - включая, верхняя исключая как это привести в "машиночитаемый" вид 0-3 дня 4-59 дня 2-24 месяца если так - то на границе 2 и 3 строки есть пересечение и выпадение - в зависимости от даты рождения и даты проведения анализа - 31 день или 28 дней в месяце | |||
| 1
    
        Irbis 09.07.19✎ 07:05 | 
        Если в годах, месяцах, днях то через разность дат и три числа. А можно в граммах, то есть днях. тогда все границы тоже должны быть в днях.     | |||
| 2
    
        Лодырь 09.07.19✎ 07:05 | 
        (0) Задай этот вопрос постановщику задачи.     | |||
| 3
    
        RomaH naïve 09.07.19✎ 07:13 | 
        (1) в днях
 если пациенту нет 2 лет - то норма 9.3 если есть - норма 9.0 задал 730 день для верхней границы (исключая) попался високосный год пациенту еще нет двух лет по календарю, программа думает что есть - показатель 9.2 | |||
| 4
    
        PuhUfa 09.07.19✎ 07:18 | 
        Храни не только границу, но и в каких "единицах" она измеряется.     | |||
| 5
    
        Йохохо 09.07.19✎ 07:20 | 
        (3) это уже не вывод данных, а анализ. Думаю надо делать по ТЗ     | |||
| 6
    
        SleepyHead гуру 09.07.19✎ 07:24 | 
        (2) Вы когда-нибудь с врачами работали? Я работал 4 года, получить четкий ответ просто нереально.     | |||
| 7
    
        Bigbro 09.07.19✎ 07:29 | 
        (6) я работал в медицине. там есть отдел организационно-методической работы, общаться надо с ними а не с врачами. если руководитель адекватный (а это чаще всего так, ибо вся экспертиза висит на этом отделе, а это весьма ответственное дело) - можно легко обсудить все нюансы и выяснить ожидаемое поведение программы. и при високосных годах и когда день рождения пациента на 29 февраля приходится и т.п.     | |||
| 8
    
        Irbis 09.07.19✎ 07:35 | 
        (3) Тут или замуж, или мороженое. Предсьтавь себе что високосный год у 1,5 годовалого пациента взяли анализ 19 февраля. 01.03 он действителен? 
 ТЗ по задаче должно исключить все серые зоны в любом их сочетании. В (7) правильно написали, по ТЗ общаться нужно с методологами, если потребуется экспертное мнение специалиста, они сами ему вопрос поставят и ответ выцарапают. | |||
| 9
    
        Лефмихалыч 09.07.19✎ 07:39 | 
        (0) а зачем это приводить в машиночитаемый вид? Что ты будешь птом с этой машиночитаемостью делать?     | |||
| 10
    
        RomaH naïve 09.07.19✎ 07:42 | 
        (9) автоматически помечать положительный анализ или отрицательный     | |||
| 11
    
        RomaH naïve 09.07.19✎ 07:44 | 
        (9) + вывод референсных значений в печатной форме
 Не просто Сахар 9 мг/л а Сахар 9 мг/л норма - от 8 до 10 мг/л | |||
| 12
    
        Йохохо 09.07.19✎ 07:47 | 
        (10) это не та область где можно думать и пытаться сделать лучше, чем тебе написали в задании     | |||
| 13
    
        RomaH naïve 09.07.19✎ 11:29 | 
        никаких идей?     | |||
| 14
    
        PuhUfa 09.07.19✎ 11:37 | 
        (11) Вы сами анализы делаете?     | |||
| 15
    
        palsergeich 09.07.19✎ 11:38 | 
        (0) Самый простой способ и, скорее всего верный:
 1) Перечисление ТипыГраницДат. где будут 3 значения - 3дня, 2 мес и 2 года 2) РегистрыСведений - границыОсобыхДат. 2Измерения - физлицо(Пациент) + Перечисление ТипыГраницДат Ресурс - Дата 3) При добавлении нового пациента - эти даты заполняются сразу на основании Даты рождения. Не надо это вычисять в полете, високосные года, 28,29,30,31 - наловишь исключений, просто к дате рождения прибавляешь это и хранишь | |||
| 16
    
        Garykom гуру 09.07.19✎ 11:39 | 
        (13) Идея простая - не надо хранить возраст, храни дату и время рождения.     | |||
| 17
    
        palsergeich 09.07.19✎ 11:43 | 
        (15) Добавление месяца - это очень скользкая тема, есть несколько методологий, что такое добавить месяц.
 Но скорее всего платформенный ДобавитьМесяц() - это то что тебе надо, или уточни. | |||
| 18
    
        Asmody 09.07.19✎ 11:45 | 
        (13) Самая правильная идея подробно описана в (7). Надо ходить не на форумы, а к людям, которые это все уже делают десятилетиями "на бумаге".     | |||
| 19
    
        palsergeich 09.07.19✎ 11:45 | 
        (17) 
 0-3 дня 4-59 дня 60 дней-24 месяца Как правило это так, но лучше уточнить у постановщика | |||
| 20
    
        palsergeich 09.07.19✎ 11:45 | 
        (18) Угу     | |||
| 21
    
        RomaH naïve 09.07.19✎ 11:49 | 
        (18) мозг такая странная штука - он понимает что возраст попадает в период описанный фразой "от 40 дней до 2 месяцев"
 а вот как машине это объяснить | |||
| 22
    
        RomaH naïve 09.07.19✎ 11:50 | 
        (15) есть способ проще и 100% верный     | |||
| 23
    
        Garykom гуру 09.07.19✎ 11:50 | 
        (21) Сначала объясни машине из скольких дней состоит 1 месяц.     | |||
| 24
    
        RomaH naïve 09.07.19✎ 11:51 | 
        (23) зачем? машине надо объяснить только каков возраст человека на определенную дату
 это мы умеем | |||
| 25
    
        Garykom гуру 09.07.19✎ 11:52 | 
        (24) ОК перефразирую.
 Кто попадет в интервал "от 60 дней до 2 месяцев" ? | |||
| 26
    
        RomaH naïve 09.07.19✎ 11:52 | 
        периоды возрастов - непрерывны
 верхняя граница не нужна | |||
| 27
    
        RomaH naïve 09.07.19✎ 11:53 | 
        (25) у того у кого возраст будет >= 60 дней, но меньше 2 месяцев     | |||
| 28
    
        RomaH naïve 09.07.19✎ 11:53 | 
        (25) прикинь     | |||
| 29
    
        Sayan_mi 09.07.19✎ 11:53 | 
        По моему проще по верхней границе и разнице дат
 < 4 дн иначе (разница в днях) < 2 мес иначе (разница в месяцах) < 2 лет …. (разница в годах) | |||
| 30
    
        RomaH naïve 09.07.19✎ 11:54 | 
        (25) например родившиеся 1 июля и сдавшие анализ 31 августа     | |||
| 31
    
        Garykom гуру 09.07.19✎ 11:55 | 
        (30) У тебя странное представление о единицах измерения времени.
 Длина месяца в днях = кол-во дней в году / 12 | |||
| 32
    
        RomaH naïve 09.07.19✎ 11:56 | 
        (31) а по-моему - у тебя 
 каков возраст ребенка 31 августа, если он родился 1 июля этого года? | |||
| 33
    
        ice777 09.07.19✎ 11:56 | 
        есть же произвольные периоды.
 ну и функция, дата в периоде или нет, наваять можно. | |||
| 34
    
        ice777 09.07.19✎ 11:56 | 
        (31) это среднемесячное )     | |||
| 35
    
        Garykom гуру 09.07.19✎ 11:57 | 
        (31)+ Для длины года "в днях" выбираю любое подходящее, причем большинство не целые:
 Продолжительность: 346,620047 дня — драконический год, промежуток времени, по истечении которого Солнце возвращается к тому же узлу лунной орбиты. 353, 354 или 355 дней — продолжительность невисокосных лет в некоторых лунно-солнечных календарях. 354,37 дней — лунный год, 12 лунных месяцев; средняя длина года в лунных календарях. 365 дней — невисокосный год во многих солнечных календарях; 31 536 000 с. 365,242199 дня — средний тропический год (усреднённый по всем точкам эклиптики промежуток времени, в течение которого Солнце возвращается в прежнюю позицию относительно эклиптики и земного экватора) на эпоху 2000 года. 365,24220 дня — средний тропический год на эпоху 1900,0. 365,24222 дня — средняя продолжительность года в новоюлианском календаре. 365,24(24) дня — средняя продолжительность года в иранском календаре, разработанном Омаром Хайамом. 365,2424 дня — средний интервал между двумя весенними равноденствиями на эпоху 2000 года. 365,2425 дня (точно) — средняя продолжительность года в григорианском календаре. 365,25 дня (точно) — юлианский год, средняя продолжительность года в юлианском календаре; равен точно 31 557 600 с. 365,2564 дня — сидерический (звёздный) год; период обращения Земли вокруг Солнца относительно неподвижных звёзд. 365,259641 дня — аномалистический год, промежуток времени между двумя последовательными прохождениями Земли через перигелий. 366 дней — високосный год во многих солнечных календарях; 31 622 400 с. 383, 384 или 385 дней — продолжительность високосного года в некоторых лунно-солнечных календарях. 383,9 дня — 13 лунных месяцев; високосный год в некоторых лунно-солнечных календарях. | |||
| 36
    
        Garykom гуру 09.07.19✎ 11:59 | 
        (35)+ И да учти что со временем (веками но мы же надеемся что 1С не сгинет) длина года "в днях" будет меняться.     | |||
| 37
    
        Garykom гуру 09.07.19✎ 12:01 | 
        Так что заводишь периодический РС и пишешь туда свои используемые в настоящее время соответствия между единицами измерения времени.
 А в базе хранишь только дату+время и промежутки в секундах например. | |||
| 38
    
        RomaH naïve 09.07.19✎ 12:01 | 
        (35) так мы сейчас перейдем к пересмотру "догм" - и по имеющимся точкам построим функцию для расчета "правильной" нормы на любой момент времени
 что было-бы правильнее, на мой взгляд, ... но от меня требуют соблюдать "догмы" - заказчик не готов к революции | |||
| 39
    
        Garykom гуру 09.07.19✎ 12:02 | 
        И да в сутках количество секунд оно тоже меняется ))     | |||
| 40
    
        RomaH naïve 09.07.19✎ 12:04 | 
        ладно - решение простое
 хранить нижнюю границу 0 дней 4 дня 15 дней 2 месяца 6 месяцев 2 года 18 лет считаем возраст в трех измерениях и находим максимальную границу которая меньше полученного возраста | |||
| 41
    
        Garykom гуру 09.07.19✎ 12:04 | 
        (38) Ну так выясни требуемые догмы и запиши их в свой РС (37)     | |||
| 42
    
        Garykom гуру 09.07.19✎ 12:05 | 
        Прочитать
 https://ru.wikipedia.org/wiki/Единицы_измерения_времени Хранить время в https://ru.wikipedia.org/wiki/Секунда "Секунда — время, равное 9 192 631 770 периодам излучения, соответствующего переходу между двумя сверхтонкими уровнями основного состояния атома цезия-133." | |||
| 43
    
        Fish гуру 09.07.19✎ 12:06 | 
        А что за лаборатория можно узнать? Чтобы случайно туда не обратиться :))     | |||
| 44
    
        Garykom гуру 09.07.19✎ 12:07 | 
        (42)+ И надеяться что с СТО (от Эйнштейна) столкнуться не придется )) А то задолбаешься поправки вводить в свой РС дополнительно )))     | |||
| 45
    
        PuhUfa 09.07.19✎ 12:08 | 
        (32) >> каков возраст ребенка 31 августа, если он родился 1 июля этого года?
 В днях или месяцах? Не зря в поликлиниках спрашивают возраст "в полных лет", "полных месяцах". Заведи тип границы, день/месяц/год. И если у тебя тип границы день, но считай для проверки вхождения возраст в днях, если тип "месяц", то в месяцах. А вообще это похоже на изобретение велосипеда. Вот я сижу смотрю сейчас у себя приходящие xml с анализами и в них: <Test TestID="TSH"> <Value>2.1791</Value> <NormalValue>0.3500 - 4.9400</NormalValue> <NormalValueMin>0.3500</NormalValueMin> <NormalValueMax>4.9400</NormalValueMax> <ValueDate>2019-07-09</ValueDate> или <Tests><Test TestID="FIBRYNOGEN"> <Value>2.14</Value> <NormalValue>2.00 - 4.00</NormalValue> <NormalValueMin>2.00</NormalValueMin> <NormalValueMax>4.00</NormalValueMax> <ValueDate>2019-07-07</ValueDate> все блин давно посчитано за нас -((( | |||
| 46
    
        RomaH naïve 09.07.19✎ 12:11 | 
        (45) ну так - что бы пришло правильное <NormalValue>2.00 - 4.00</NormalValue>
 должна быть правильная таблица соответствий входящих параметров этим нормам я ж не говорю, что я решаю совсем новую задачу - это давно изобретенный велосипед | |||
| 47
    
        RomaH naïve 09.07.19✎ 12:12 | 
        (45) ну так сколько ребенку полных месяцев 31 августа?     | |||
| 48
    
        kzot 09.07.19✎ 12:12 | 
        Вроде как ЗУП стаж сотрудников давно считать изволит в количестве месяцев и дней, смотрите на рс "НакопленныеСтажиФизическихЛиц" и не изобретайте.     | |||
| 49
    
        RomaH naïve 09.07.19✎ 12:13 | 
        (48) очередной писатель     | |||
| 50
    
        PuhUfa 09.07.19✎ 12:15 | 
        (47) один     | |||
| 51
    
        Лодырь 09.07.19✎ 12:18 | 
        (47) Задумайтесь над вопросом, с чего бы нормативы показателей детей проживших одинаковое количество дней должны отличаться? Потом все же идите к постановщику задачи.     | |||
| 52
    
        Лефмихалыч 09.07.19✎ 12:24 | 
        (13) надо опираться на количество ПОЛНЫХ лет, а всю эту полюбень с августами и сентябрями из головы выкинуть.
 С днями и месяцами такая же петрушка. Високосные нахрен тоже выкинуть из рассмотрения. от одного дня ничего не меняется. | |||
| 53
    
        RomaH naïve 09.07.19✎ 12:27 | 
        (52) да что ж такое-то
 ты рассказываешь как "правильно" посчитать возраст имея дату рождения и дату расчета? - их есть у меня вопрос был - как хранить интервалы в которые этот возраст может входить | |||
| 54
    
        Йохохо 09.07.19✎ 12:30 | 
        0001.01.01 00:00:00     | |||
| 55
    
        Лефмихалыч 09.07.19✎ 18:39 | 
        (53) в целых числах в данном случае     | |||
| 56
    
        Garykom гуру 09.07.19✎ 18:54 | 
        (53) В секундах храни и не выделывайся уже.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |