ООО “Территориально-ориентированные информационные
системы”
Программный комплекс
«Hospital»
Internet-регистратор
версия 3.02
Руководство администратора
07.5575865.0002-01 92 11
г. Красноярск 2009
Аннотация
Данный документ содержит сведения, необходимые для установки, настройки и поддержки работоспособности модуля «Internet-регистратор», предназначенного для удаленной записи на прием к врачу. В руководстве приведены описание web-сервиса и порядок его установки.
Оглавление
1. Системные требования. - 4 -
2. Регистрация COM-объектов сервиса. - 4 -
3. Файлы описания веб-сервиса. - 4 -
3.1. Создание. - 5 -
3.2. Модификация файла описания веб-сервиса. - 10 -
4. Создание и настройка веб-узла. - 11 -
4.1. Создание веб-узла. - 11 -
4.2. Настройка веб-узла. - 15 -
5. Web-публикация. - 18 -
Приложение 1. Функции веб-сервиса. - 19 -
Приложение 2. Коды ошибок. - 23 -
1. Системные требования
· Windows 2000/XP Professional/Server 2003;
· ISS;
· MS SOAP Toolkit;
· Выход в интернет, наличие статического «белого» ip-адреса, соответствующая настройка маршрутизирующих устройств.
2. Регистрация COM-объектов сервиса
Эта процедура производится автоматически при установке ПО «Hospital».
При необходимости можно самостоятельно зарегистрировать COM-объекты, выполнив в командной строке regsvr32 vguztaskqueue.dll (regsvr32 “c:\program files\common files\vguz\vguztaskqueue.dll”).

Рисунок 1
3. Файлы описания веб-сервиса
После установки ПО «Hospital» в папке C:\Program Files\Vguz\Web Services\Prerecord содержатся файлы prerecord. wsdl, prerecord. wsml и prerecord. wgen:
· prerecord. wsdl – файл описания веб-сервиса;
· prerecord. wsml – файл описывающий, привязку веб-сервиса к COM-объекту;
· prerecord. wgen – сохраненная конфигурация генератора WSDL.
Файлы prerecord. wsdl и prerecord. wsml должны размещаться в одной папке, их наличие обязательно для функционирования сервиса. В предустановленном файле prerecord. wsdl значение атрибута location элемента soap:address нужно изменить на действительный адрес размещения веб-сервиса (см. Модификация файла описания веб-сервиса).
3.1. Создание
Файлы описания веб-сервиса при необходимости можно сгенерировать с помощью программы WSDL Generator, входящей в состав MS SOAP Toolkit[1] (Главное меню\Программы\Microsoft SOAP Toolkit Version 3\WSDL Generator):

Рисунок 2
Установите галочку “Load settings from configuration file” и выберите файл конфигурации prerecord. wsdl (опционально). В этом случае значения полей в последующих шагах будут взяты из выбранного файла.

Рисунок 3
Введите имя сервиса, выберите файл c COM-объектом сервиса (vguztaskqueue. dll).

Рисунок 4
Выберите методы, которые будут доступны через веб-сервис (только те, что представлены ниже):
· taskprerecord
o getspecialities
o getdoctors
o getdates
o gettime
o record
o authentication

Рисунок 5
Укажите URI (http://server[:port]/[virtual dir]) – ресурс, по которому веб-сервис будет доступен извне.

Рисунок 6
Далее.

Рисунок 7
Укажите папки, в которых будут сохранены сгенерированные файлы.

Рисунок 8
Готово.

Рисунок 9
Примеры файлов см. в Приложении 1.
3.2. Модификация файла описания веб-сервиса
В файле описания веб-сервиса. wsdl (по сути это XML-документ) значение атрибута location элемента soap:address должно соответствовать действительному адресу размещения веб-сервиса (ip-адрес или доменное имя; порт, если он отличен от 80; виртуальный каталог, если имеется; файл. wsdl: http://адрес[:порт]/[виртуальный каталог]файл. wsdl)!
…
<service name="prerecord">
<port name="taskprerecordSoapPort" binding="wsdlns:taskprerecordSoapBinding">
<soap:address location="http://80.94.58.96:82/prerecord. wsdl" />
</port>
</service>
…
В случае изменения адреса, по которому предоставляется доступ к веб-сервису извне, обязательно должны быть внесены соответствующие изменения в файл. wsdl. Отредактировать файл можно в Блокноте или ином текстовом редакторе.
4. Создание и настройка веб-узла
Создать веб-узел (виртуальный каталог) или изменить параметры созданного ранее можно с помощью Диспетчера служб IIS (Internet Information Service; Администрирование\Диспетчер служб IIS).
Приведенное ниже описание строится на основе IIS версии 6.0.
В более ранних версиях IIS процедура аналогична. Можно модифицировать веб-узел по умолчанию, либо создать виртуальный каталог; обязательно сопоставить расширение. wsdl c обработчиком ISAPI – C:\Program Files\Common Files\MSSoap\Binaries\SOAPIS30.DLL.
4.1. Создание веб-узла


Рисунок 10

Рисунок 11
Введите название веб-узла.

Рисунок 12
Если необходимо, измените адрес и порт.

Рисунок 13
Введите путь до папки, в которой находятся файлы описания веб-сервиса (prerecord. wsdl, prerecord. wsml).

Рисунок 14
Установите разрешения на чтение и запуск сценариев.

Рисунок 15
Готово.

Рисунок 16
4.2. Настройка веб-узла
В свойствах веб-узла во вкладке «Домашний каталог» нажмите «Настройка…»

Рисунок 17
«Сопоставление расширений» – «Добавить…»

Рисунок 18
Исполняемый файл: C:\Progra~1\Common~1\MSSoap\Binaries\SOAPIS30.dll (для IIS 6.0 именно в таком формате);
Расширение: .wsdl.

Рисунок 19
OK.

Рисунок 20
Необходимо добавить расширение веб-службы[2].

![]()
Рисунок 21
Имя расширения может быть любым. SOAP, например. В требуемые файлы добавить C:\Progra~1\Common~1\MSSoap\Binaries\SOAPIS30.dll (именно в таком формате). Установить состояние «Разрешено».

Рисунок 22
5. Web-публикация
Публикация сервисов удаленной записи требует регистрации на специализированном сайте, например: www. web-registratura. ru. После прохождения регистрации активизируются сервисы удаленной записи, медицинское учреждение включается в общий перечень учреждений, публикуемых на сайте. И получает индивидуальную ссылку, которая может быть размещена на персональном сайте медицинского учреждения.
Приложение 1. Функции веб-сервиса
GetClinics(@Data)
Возвращает список медицинских учреждений.
Параметры
Data содержит идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен GetClinics() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="11" data="Городская поликлиника №1" comment=""/>
<row id="12" data="Городская поликлиника №2" comment=""/>
<row id="13" data="Городская поликлиника №3" comment=", стр. 34"/>
</root>
GetServices(Clinic, @Data)
Возвращает список доступных услуг.
Параметры
Clinic содержит идентификатор медицинского учреждения.
Data содержит идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен GetServices() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="1" data="Запись на прием к врачу" comment=""/>
<row id="2" data="Вызов врача на дом" comment=""/>
<row id="3" data="Запись на обследование" comment=""/>
</root>
Authenticate(Clinic, Document1, Document2, @Data)
Идентифицирует пациента в базе данных медицинского учреждения.
Параметры
Clinic идентификатор медицинского учреждения.
Document1 номер паспорта или др. удостоверяющего личность документа (без серии)
Document2 номер полиса медицинского страхования (без серии)
Data идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Authenticate() возвращает 0, если пациент опознан в базе данных медицинского учреждения и ему доступна услуга удаленной записи. Иначе возвращается код ошибки.
Пример возвращаемого XML-документа
<root>
<row id="_2MJ188GOT" data="" comment=""/>
</root>
GetSpecialities (Clinic, Service, @Data)
Возвращает список специальностей врачей. Перечень формируется по данным МУ - по фактически занятым ставкам, с учетом признака «разрешена удаленная запись на прием к врачу».
Параметры
Clinic идентификатор медицинского учреждения.
Service идентификатор выбранной услуги
Data идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен GetSpecialities() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="asd341" data="терапевт" comment=""/>
<row id="asd634" data="хирург" comment=""/>
</root>
GetDoctors (Clinic, Service, Speciality, @Data)
Возвращает список врачей выбранной специальности.
Параметры
Clinic идентификатор медицинского учреждения.
Service идентификатор выбранной услуги
Speciality идентификатор врачебной специальности
Data идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен GetDoctors() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="" data="(любой доктор)" comment=""/>
<row id="asf445" data="" comment="уч. 7"/>
<row id="asf446" data="" comment=""/>
</root>
GetDates (Clinic, Service, Speciality, Doctor, @Data)
Возвращает список доступных дат обслуживания для выбранного врача.
Параметры
Clinic идентификатор медицинского учреждения.
Service идентификатор выбранной услуги
Speciality идентификатор врачебной специальности
Doctor идентификатор врача
Data идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен GetDates() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="20090401" data="ср 1 апреля 2009" comment="08:00-17:50"/>
<row id="20090402" data="чт 2 апреля 2009" comment="08:20-16:00"/>
</root>
GetTime (Clinic, Service, Speciality, Doctor, Date, @Data)
Возвращает список доступных дат обслуживания (приема) для выбранного врача.
Параметры
Clinic идентификатор медицинского учреждения.
Service идентификатор выбранной услуги
Speciality идентификатор врачебной специальности
Doctor идентификатор врача
Date дата приема
Data идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен GetTime() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="815" data="8:15" comment=""/>
<row id="1005" data="10:05" comment=""/>
<row id="1230" data="12:30" comment=""/>
</root>
Record (Clinic, Service, Speciality, Doctor, Date, Time, Patient, @Data)
Регистрирует запись на прием в БД медицинского учреждения.
Параметры
Clinic идентификатор медицинского учреждения.
Service идентификатор выбранной услуги
Speciality идентификатор врачебной специальности
Doctor идентификатор врача
Date дата приема
Time время приема
Patient идентификатор пациента
Data идентификатор клиента, выполнившего запрос. Параметр передается по ссылке. После выполнения запроса данный параметр содержит XML-строку – результат запроса.
Возвращаемое значение
Если запрос благополучно выполнен Record() возвращает 0, иначе – код ошибки.
Пример возвращаемого XML-документа
Запись пациента на прием выполнена:
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="PIS2MA0Z9EF002" data="" comment="
<br> <b>ТАЛОН НА ПРИЕМ К ВРАЧУ</b>
<br>
<br>Дата: 01.04.2009
<br>Время: 12:30
<br>Врач: инфекционист
<br>Кабинет: 26
<br>Для отмены записи на прием позвоните по телефону 2555555
"/>
</root>
Атрибут id содержит идентификатор записи, и может использоваться для печати штрих-кода.
Неудача при регистрации записи на прием к врачу:
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<row id="" data="Ошибка соединения." comment=" Вы уже записаны на прием: 01.04.2009 12:30, хирург Федоров запись к одному специалисту в течение дня запрещена."/>
</root>
Приложение 2. Коды ошибок
Код | Описание |
11 | Отсутствует номер документа или полиса ОМС. |
12 | Извините, Ваша амбулаторная карта не найдена. Возможно, была допущена ошибка при вводе номера полиса ОМС или паспорта. |
13 | Извините, Вы не прикреплены к данному медицинскому учреждению. Запись на прием невозможна. |
20 | Извините, это время уже занято. Выберите другое время приема. |
21 | Вы уже записаны на прием: <<>> Повторная запись к одному специалисту в течение дня запрещена. |
22 | Вы уже записаны на прием: <<>> Интервал между записями к разным врачам не может быть меньше 15 минут. |
23 | Непредвиденная ошибка. |
30 | Недоступен список специалистов. |
31 | Извините, удаленная запись к специалистам запрещена. |
40 | Извините, недоступен список врачей. Повторите запрос позже. |
41 | Извините, удаленная запись к врачам запрещена. |
50 | Извините, недоступен список дат. Повторите запрос позже. |
51 | Извините, нет записи на ближайшие даты. |
60 | Извините, недоступен список времени посещений. Повторите запрос позже. |
[1] http://www. google. ru/search? q=soap+toolkit+download – первый результат.
[2] Только для IIS 6.0


