Ниже представлены несколько вариантов стандартных ЭПМЗ для дерматовенеролога:

1. Консультация дерматовенеролога

Экранная форма:

2020-04-29 20 47 55

 

При выводе на печать для врача:

2020-04-29 20 47 55

 

При выводе на печать для пациента (сокращенный вариант):

2020-04-29 20 47 55

 

2. Осмотр, консультация дерматовенеролога

Экранная форма:

2020-04-29 20 47 55

 

2020-04-29 20 47 55

 

При выводе на печать для пациента (сокращенный вариант):

2020-04-29 20 47 55

 

3. Консультация дерматовенеролога

Экранная форма:

2020-04-29 20 47 55

 

При выводе на печать для врача:

2020-04-29 20 47 55

 

При выводе на печать для пациента (сокращенный вариант):

2020-04-29 20 47 55

 

4. Осмотр, консультация дерматовенеролога

Экранная форма:

2020-04-29 20 47 55

 

При выводе на печать для врача:

2020-04-29 20 47 55

 

При выводе на печать для пациента (сокращенный вариант):

2020-04-29 20 47 55

 

5. Первичный прием дерматолога-косметолога

Экранная форма:

2020-04-29 20 47 55

 

При выводе на печать для врача:

2020-04-29 20 47 55

 

При выводе на печать для пациента (сокращенный вариант):

2020-04-29 20 47 55

 

6. Осмотр дерматовенеролога

Экранная форма:

2020-04-29 20 47 55

 

При выводе на печать для врача:

2020-04-29 20 47 55

 

При выводе на печать для пациента (сокращенный вариант):

2020-04-29 20 47 55

 

Установка PHP (FastCGI) (СЕРВЕР РЕПЛИКАЦИИ)

Запускаем установщик. После нескольких не особо информативных окон нам предложат выбрать веб-сервер и режим работы PHP:

3

 

Далее переходим к выбору компонентов PHP. Если установку PHP производите впервые, лучше оставить значения по умолчанию.

Установка модуля urlrewrite2 для IIS (Сервер репликации)

Запускаем установщик. Установщик предложит установить модуль переопределения веб-адресов urlrewrite.

Веб-сервер IIS (Сервер репликации)

Открываем Панель управления -> Программы -> Включение или отключение компонентов Windows. Находим в списке раздел Службы IIS. Раскрываем его и выбираем нужные компоненты:

2

 

Базовый набор:

Безопасность. Выбираем все компоненты кроме «Проверка подлинности с сопоставлением сертификата …».

Компоненты разработки приложений. CGI, для последующей установки PHP.

Общие функции HTTP. Отмечаем все пункты.

Проверка работоспособности и диагностика. Выбираем «Ведение журнала HTTP» и «Монитор запросов».

Функции повышения быстродействия. Отмечаем все пункты.

Средства управления веб-сайтом. Отмечаем только «Консоль управления IIS».

 

Когда все пункты выбраны, нажимаем Ок. После завершения установки обязательно перезагружаемся!

 

По умолчанию месторасположение веб-сайтов папкаc:\inetpub\wwwroot

Исправить значения счетчиков

Значение счетчиков таблиц сбивается по разным причинам, одной из них может быть, что мы занесли услуги, что то неверно импортировалось и мы удалили из базы (НЕ через интерфейс программы) их. Поэтому текущее значение счетчика будет отличаться от необходимого нам значения. Делаем следующий запрос, где указываем название нашей таблицы

DBCC CHECKIDENT ('имя_вашей_таблицы', RESEED, новое_значение_идентификатора);
GO

ПРИМ: широко используется если база является составляющей реплицируемых таблиц

Проверить значения identity в таблицах базы

Открываем Среду Microsoft Sql Server Management Studio

Если нам необходимо проверить счетчики по всем таблицам, то копируем запрос

select name, IDENT_CURRENT(name)
 from sys.tables
 where type_desc = 'USER_TABLE'
order by name asc

В результате получаем  значения primary key во  всех таблицах базы

В случае, если нам необходимо узнать значение у конкретной таблицы, то можно воспользоваться следующим запросом:

DBCC CHECKIDENT ('имя_вашей_таблицы', NORESEED);
GO

ВАЖНО в клиниках,  где настроены триггеры репликации необходимо чтобы значения входили в тот интервал id, который был изначально настроен для конкретной базы данных

Переместить identity на последнее значение id

ВНИМАНИЕ! Скрипт работает только для клиентов, у которых НЕТ репликации

Заходим в SQL Server и делаем бэкап

Далее выполняем скрипт:

set nocount on;
 declare @id int;
 declare @maxid dt_id;
 declare @name varchar(250);
 declare @i int;
 declare @sql nvarchar(max);
 declare cur cursor local forward_only static for
 select o.id
 , o.name
 from sysobjects o
 join
 syscolumns c on (c.id = o.id)
 and (c.name = 'id')
 and (c.status & 0x80 = 0x80)
 where o.type = 'u'
 order by o.name;
 open cur;
 fetch next from cur into @id, @name;

set @i = 0;
 while (@@fetch_status = 0)
 begin
 set @i = @i + 1;
 print str(@i) + ' ' + str(@id) + ' ' + @name;
 set @sql = N'select @maxid = max(id) from ' + @name;
 exec sp_executesql @sql, N'@maxid int out', @maxid out;
 if @maxid is not null
 dbcc checkident(@name, reseed, @maxid);
 fetch next from cur into @id, @name;
 end;

Отчет прайс-лист (некорректно выводит данные)

Если клиент давний, то необходимо добавить новый отчет по прайсу (есть 2 варианта сплошной и каждая группа с новой строки). А также выполнить скрипт (открыв для этого SQL Server и сделав предварительно резервную копию базы)

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[get_services_list] (
 @GroupId dbo.DT_ID
 )
 RETURNS
 @price_list_table table (GroupCode varchar(200), GroupName varchar(500),
 GroupId integer,
 ServiceCode varchar(200), ServiceName varchar (500), BaseCost money,
 ServiceId integer)
 AS
 BEGIN
 --INSERT INTO @price_list_table(GroupId) VALUES (-555);

IF ((SELECT COUNT(ID) FROM SERVICES WHERE ENABLED = 1 AND GROUPID = @GroupId) > 0)
 BEGIN
 INSERT INTO @price_list_table(GroupCode, GroupName, GroupId, ServiceCode, ServiceName, BaseCost, ServiceId)
 SELECT gs.code, gs.name, gs.id, s.code, s.name, s.basecost, s.id
 FROM groupservices gs
 LEFT JOIN services s ON s.groupid = gs.id
 WHERE gs.enabled = 1
 AND s.enabled = 1
 AND gs.ID = @GroupId
 ORDER BY s.CODE
 END;

IF ((SELECT COUNT(ID) FROM groupservices WHERE ENABLED = 1 AND OWNER = @GroupId) > 0)
 BEGIN
 declare @xGroupId dbo.DT_ID;
 declare group_list cursor local forward_only static
 for select gs.id
 from GROUPSERVICES gs
 where gs.ENABLED = 1 AND gs.OWNER = @GroupId
 order by gs.ID

open group_list;

fetch next from group_list into @xGroupId;

while @@FETCH_STATUS = 0
 begin
 INSERT INTO @price_list_table(GroupCode, GroupName, GroupId, ServiceCode, ServiceName, BaseCost, ServiceId)
 SELECT * FROM dbo.get_services_list(@xGroupId)

fetch next from group_list into @xGroupId;
 --if (@xGroupId > 17)
 -- break
 end;

CLOSE group_list
 DEALLOCATE group_list
 END;
 RETURN;
 END

GO