<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
А что-же МКБ-10Б не подключил?
(1).так это не проблема — забить данные в справочник «диагнозы»(списка МКБ в электронном виде не нашел)- давайте список -закачаю 😀
Как то в регистратуре видел подобную прогу(не 1С)…. я так понял стоит дорого. Так, что бери конфу и в больницу пусть покупают)))
(3) Ага, только за «Аналитом» в очередь 🙂 , тем более тут и намека на ОМС нет.
(2) Вот здесь можно взятьhttp://www.sql.ru/forum/actualthread.aspx?tid=228229
(4)спасибо,скачал Слить из дбф дело нехитрое. Можно все дописать и ОМС и другие отчеты — было бы желание у заказчика.
(3) в госбольницах ждут халяву — что управление что-нибудь им купит(хоть счеты), на том будут плеваться, но работать
(4) Я конфу не смотрел, не знаю как там с омс! Думаю можно разработать. Аналит — это конфигурация для медицинских учреждений?
Так эта же бесплатна)))
(1) что-то в этом роде Вы имели ввиду
(7)В принципе да, я об этом говорил.
и очень понравилось у вас в запросе выражение «СостояниеЗубовСрезПоследних», всесляет оптимизм.
А касательно (5) что «в госбольницах ждут халяву — что управление что-нибудь им купит(хоть счеты), на том будут плеваться, но работать» не совсем верно, в МУЗ-ах деньги есть и купить они тоже могут многое, только это очень деликатный процесс.
Все конечно красиво, НО: это более похоже на бухгалтерию, а не регистратуру. Естественно это больше подходит для стоматологов. Для обычной поликлиники это не вариант. К нам приезжало очень много таких халявщиков (это не к автору) которые начинали именно с стоматполиклиники, т.к. бухгалтерию они еще как-нибудь знают, а в медицине полный 0. Ни одна из этих программ не соответствовала потребностям. Все кстати и говорили что можно дописать, но за отдельную плату. А надо рабочую и сразу. Относительно больниц, так там вообще сделать универсальную программу просто практически невозможно, т.к. каждая отдельная больница имеет свою специфику, которую предусмотреть может только штатный программист (из практики). Учтите сразу что изменений будет очень много, а средств на это никто постоянно выделять не будет. Такие программы должны писаться в министерствах и посылаться бесплатно (в смысле за счет бюджета) вниз.
Стоит ли это продолжать, имеет ли оно перспективу? Удачи, но оптимизма не вселяет…
(9) Интересное Ваше мнение — то Вы говорите, что «написать универсальную программу практически невозможно», то «Такие программы должны писаться в министерствах и посылаться бесплатно (в смысле за счет бюджета) вниз» = там такие же программисты (наши, советские) писать будут — только еще проще = набросал программу «общими фразами», продал ее министерству (примеры — написания сайтов некоторым государственным структурам — деньги влупили немеренные, а получили в итоге…..) В результате = работа фирме-изготовителю универсальной программы «пожизненная» на исправлениях и доработках + оплата бюджетными денежками, пользователю (т.е. медучреждению) геморр (бесплатный от вышестояшего министерства)на всю оставшуюся жизнь и плевки в сторону ВСЕХ программистов.
Теперь по делу: да программа не универсальна — написана для частной медицинской фирмы, их пока все устраивает = писал по их словам как им надо было. Вообще мое мнение = хотите чтобы программа любая (кроме счет) работала так, как Вам надо — берите на работу программиста, он без работы не останется и не ждите милости от министерств…………..
Сделал документ Прием(Наряд), провел, не отображается ни в одном отчете.
в чем может быть причина?
почему-то только график приема на рабочем столе не отображается и добавить туда не могу никого из врачей. а так очень даже понравилась конфигурация
(12) сначала надо установить график работы самого учреждения
(11) посмотрите по датам — отчеты на начало выбранного дня
скачал.. сыроватая конечно (по моему мнению), но есть с чего начинать. Спасибо за труды
Понравилось
история болезни в плане удобства использования тестового редактора,вставки изображений.
Излишняя сложность и вложенность запроса формирующего графика приема(для пользователя отражается задержкой формирования графика), наводит на мысль о необходимости изменения структуры данных, оптимизации под часто выполняемые запросы.
(15)кстати запрос оптимизирован (только я не помню — есть ли он в этой конфигурации = если есть ОбщийМодульПовторныхЗапросов — то есть)
(16)
ОбщийМодульПовторныхЗапросов есть.
В нем функция ПостроитьЗапросГрафика(…), которая в цикле формирует текст запроса.
Вопрос оптимальности /не оптимальности творческий, и не однозначный.
Я рассматривал оптимальность запроса не в разрезе составления его текста, а по времени его выполнения. 4-5 сек. наверно много для получаемого объема данных.
Думаю что возможно избавить пользователя от возможности медитировать на изображение песочных часов.
(17) Сделаете лучше — честь и хвала, а поделитесь еще и спасибо скажу.Исходные данные есть, результат известен — дерзайте)))(кстати запрос выполняется только первый раз долго — все последующие разы он не выполняется а результат берется из кэша, что повышает скорость выполнения)
Мальчики помогите! Вроде программа бесплатная, а почему-то, проработав полгода, именно с 1 декабря перестала запускаться, когда меняешь дату компьютера на ноябрь запускается. Что с ней и что делать?
(20) в форме настройки есть кнопка регистрация + справка
Спасибо, что-то не обратила я почему-то внимание на нее)))
И как зарегистрироваться чтоб открыть полную конфигурацию а то там ограничения по работе регистрация + справка не работает при отправке пищит что метод объекта не обнаружен (Создать Wmio)
(23) значит осталась внутренняя ошибка. конфигурация после публикации почти год назад притерпела значительные изменения
Доброго времени суток! У меня тоже так пишет: «Метод объекта не обнаружен (СоздатьWmio)». Можно ли что-то сделать?
Полезно,но исключительно как отправная точка, под каждую поликлинику приодеться переделывать.
Скачал вашу конфигурацию,но она у меня не запускается:(( никаких ошибок при этом не пишет,просто окно закрывается и все! Другие конфигурации при этом стартуют нормально.Платформа 8.2.14
Добрый день! Как зарегистрировать эту конфигурацию при регистрации пишет «Метод объекта не обнаружен (СоздатьWmio)»
В приеме пациентов,если выбрать период год,то программа долго думает и вываливается ошибка «Нехватка памяти»
(29) Да Вы, батенька, наверное, экстремал — нафига выбирать период год (если для отчета — есть отчет, если для постановки на учет больного — не доживет) Вообще-то для года есть там второй график «предварительной записи»
(27) 7fortune, У меня было также, вышел из положения созданием пользователя…
Неплохо бы было еще выложить инструкцию для работы и начального заполнения…
Как все-таки зарегистрировать программу? При попытке отправить письмо пишет: {ОбщийМодуль.ОбщийСервер.Модуль(704)}: Метод объекта не обнаружен (СоздатьWmio)
на базе этой конфигурации сделана другая большая программа Эта конфигурация не обслуживается
Может кому-то и пригодилась бы.
(31) Tezka99, у меня тоже не запускается (( Добавила пользователя, не помогло.
1С медицина поликлиника — вот где ужас для простого пользователя, а порой и для программиста. Сделаете лучше — спрос будет. Юзабилити здесь очень важна, и простота структуры программы для понимания, и однозначность действий, и защита от «дурака» (горький опыт внедрения 1с медицины). Скачаю посмотрю, плюс в любом случае. На первый взгляд ничего.
(36) на основе этой конфигурации сделана новая, специально заточенная для ортапедического салона = работают 3 год — претензий нет Посмотрите конфигурацию «Ежедневник». Если есть «нормальный» интерес = пишите, что-нибудь придумаем…..
(37) клиент ушел, не вынес мук, причем программу сам выбирал и покупал. Но буду иметь ввиду вашу разработку.
Бесплатная конфигурация для медицины, очень интересно, надо посмотреть, судя по скриншотам, вариант очень даже интересный. Нам как раз нужно что то подобное, по сути, запись на прием и оплата. Автору большое спасибо.