Для кого данный документ
Сервис интеграции предоставляет интерфейс для формирования и заказа лабораторных результатов, а также получения результатов.
Данный документ описывает интеграцию для разработчиков. Все запросы являются запросами SOAP.
Предусловие
Разработчики интеграционного модуля должны выполнить следующие шаги:
- Получить тестовый API у SIROCA Technology.
- Утвердить тип авторизации.
- Получить логин, пароль, client_id (идентификатор приложения системе Siroca), MisID (идентификатор МИС в системе Siroca) для работы с API.
- Получить контракты для работы.
- Реализовать взаимодействие с API.
- Провести тестирование.
|
Окружение |
Адрес API |
|
Тестовое |
http://{host}/LisService.svc |
/GetToken
Нужно передать следующие параметры:
Параметры для получения токена
|
Параметр |
Тип данных |
Обязательность |
|
login |
String |
True |
|
password |
String |
True |
|
client_id |
String |
True |
В ответ должна прийти модель AccessToken:
|
Поле |
Тип данных |
Описание |
|
access_token |
String |
Токен доступа |
|
message |
String |
Сообщение |
|
manager_id |
Int |
Не используется |
|
life_time_seconds |
Int |
Время жизни в секундах |
Пример запроса и получения токена
Чтобы получить токен, нужно сделать SOAP запрос на метод
http://tempuri.org/ILisService/GetToken
В Body у модели должна быть подобная структура:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:GetToken>
<tem:login>ЛОГИН</tem:login>
<tem:password>ПАРОЛЬ</tem:password>
<tem:client_id>АЙДИ ОТПРАВИТЕЛЯ ПРИЛОЖЕНИЯ</tem:client_id>
</tem:GetToken>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetTokenResponse xmlns="http://tempuri.org/">
<GetTokenResult xmlns:a="http://schemas.datacontract.org/2004/07/Ais.Business" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:access_token>d20iddf83jvh837py14t</a:access_token>
<a:life_time_seconds>86400</a:life_time_seconds>
<a:manager_id>0</a:manager_id>
<a:message/>
</GetTokenResult>
</GetTokenResponse>
</s:Body>
</s:Envelope>
POST /CreateOrder2
Метод принимает следующие параметры:
Параметры создания заказа
|
Параметр |
Тип данных |
Обязательность |
|
Order |
OrderCreateRequest |
True |
|
Token |
String |
True |
Модели, использующиеся при создании заказа:
|
Свойство |
Тип данных |
Обязательность |
Описание |
|
OrderNumber |
String |
True |
Номер заявки из внешней системы |
|
Person |
Person |
True |
Клиент |
|
Sender |
String |
True |
Код системы отправителя |
|
MisID |
Long |
True |
Идентификатор внешнего сервиса в ЛИС |
|
FinanceSourceCode |
String |
False |
Источник финансирования |
|
Researches |
List<OrderRequestResearch> |
True |
Список исследований, должна быть хотя бы 1 услуга |
|
Materials |
List<Material> |
False |
Материалы в направлении |
|
IsCito |
Bool |
True |
Признак срочности |
|
Comment |
String |
False |
Комментарий врача |
|
IdRecievePunkt |
Int |
False |
Пункт забора |
|
SenderFuncStructureID |
Long |
False |
Код функционального подразделения отправителя |
|
Nurse |
Person |
True, если в заказе есть услуги COVID |
Медсестра, которая произвела забор БМ |
|
IsResident |
Bool |
False |
Является ли клиент резидентом страны (по умолчанию - True) |
|
HasCovidSimptoms |
Bool |
False |
Имеются ли симптомы COVID |
|
MessageType |
MessageType |
True |
Тип сообщения |
Person
|
Свойство |
Тип данных |
Обязательность |
Описание |
|
MisID |
String |
True |
Не используется |
|
Code |
String |
True |
ИИН клиента. Если он задан, то производит поиск существующего клиента, иначе создается клиент |
|
LastName |
String |
True |
Фамилия |
|
FirstName |
String |
True |
Имя |
|
SecondName |
String |
False |
Отчество |
|
BirthDate |
DateTime |
True |
Дата рождения |
|
SexID |
SexType |
True |
Пол |
|
IsUnknownPerson |
bool |
True |
Не используется |
|
Telephone |
String |
False |
Телефон |
|
|
String |
False |
Почта |
|
Address |
String |
False |
Адрес |
|
JobInfo |
String |
False |
Информация о месте работы |
Еnum
|
Название |
Значение |
Описание |
|
Female |
2 |
Женщина |
|
Male |
3 |
Мужчина |
MessageType - enum
|
Название |
Значение |
Описание |
|
CreateOrderRequest |
0 |
Запрос на создание заказа |
|
CreateOrderResponse |
1 |
Ответ на запрос на создание заказа |
|
RemoveOrderRequest |
2 |
Запрос на аннулирование заказа |
|
RemoveOrderResponse |
3 |
Ответ на запрос на аннулирование заказа |
|
OrderStatusRequest |
4 |
Запрос статуса заказа |
|
OrderStatusResponse |
5 |
Ответ на запрос статуса заказа |
|
OrderResultsRequest |
6 |
Запрос результатов заказа |
|
OrderResultsResponse |
7 |
Ответ на запрос результатов заказа |
|
OrderNextResultRequest |
8 |
Запрос на получение следующего готового заказа |
|
OrderNextResultResponse |
9 |
Ответ за запрос на получение следующего готового заказа |
|
OrderResultSuccessDeliveredRequest |
10 |
Запрос на подтверждение получения результатов |
|
OrderResultSuccessDeliveredResponse |
11 |
Ответ на запрос на подтверждение получения результатов |
|
ContainerStatusResponse |
14 |
Запрос на статус контейнера |
OrderRequestResearch
|
Свойство |
Тип данных |
Обязательность |
Описание |
|
ServiceCode |
String |
True |
Код исследования |
|
ParameterId |
Long |
False |
Не используется |
|
ReferralExternalId |
String |
False |
Не используется |
|
Notification |
String |
False |
Не используется |
Material
|
Свойство |
Тип данных |
Обязательность |
Описание |
|
MaterialNumber |
String |
True |
Штрихкод биоматериала |
|
MaterialTypeID |
String |
True |
Код биоматериала |
|
TakeDate |
DateTime |
True |
Дата взятия биомат. |
|
TakePlace |
String |
True |
Адрес взятия |
|
Researches |
List<OrderRequestResearch> |
True |
Список исследований |
В ответ должна прийти следующая модель OrderCreateResponse:
|
Поле |
Тип данных |
Описание |
|
MisID |
Long |
Идентификатор МИС |
|
OrderNumber |
String |
Номер заявки |
|
LisID |
Long |
Идентификатор направления в ЛИС |
|
Warnings |
List<String> |
Предупреждения/ошибки |
|
GeneratedContainers |
List<MContainers> |
Сгенерированные контейнера |
|
Code |
ResponseCode |
Код ответа. 0 – Успешно, 1 – Ошибка, 2 – Истек токен, 3 – не используется, 4 – Заказ аннулирован |
|
Error |
String |
Текст ошибки |
MContainers
|
Поле |
Тип данных |
Описание |
|
Id |
Int |
Идентификтор типа контейнера |
|
Name |
String |
Название типа контейнера |
|
Barcode |
Long |
Штрихкод |
|
Warnings |
List<String> |
Предупреждения/ошибки |
|
GeneratedContainers |
List<MContainers> |
Сгенерированные контейнера |
|
Biomaterial |
String |
Биоматериал |
|
DestinationPunktName |
String |
Название пункта назначения |
Пример запроса создания заказа
http://tempuri.org/ILisService/CreateOrder2
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ais="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService">
<soapenv:Header/>
<soapenv:Body>
<tem:CreateOrder2>
<tem:Order>
<ais:MessageType>CreateOrderRequest</ais:MessageType>
<ais:Sender>SENDER NUMBER</ais:Sender>
<ais:Comment>COMMENT</ais:Comment>
<ais:HasCovidSimptoms>0</ais:HasCovidSimptoms>
<ais:IdRecievePunkt>1</ais:IdRecievePunkt>
<ais:IsCito>0</ais:IsCito>
<ais:IsResident>0</ais:IsResident>
<ais:MisID>0</ais:MisID>
<ais:OrderNumber>123456</ais:OrderNumber>
<ais:Person>
<ais:BirthDate>2021-09-21T03:21:53.699Z</ais:BirthDate>
<ais:CitizenshipID>0</ais:CitizenshipID>
<ais:Code>IIN</ais:Code>
<ais:FirstName>Test</ais:FirstName>
<ais:IsUnknownPerson>0</ais:IsUnknownPerson>
<ais:LastName>Testov</ais:LastName>
<ais:MisID>0</ais:MisID>
<ais:PersonAge>18</ais:PersonAge>
<ais:SexID>Male</ais:SexID>
</ais:Person>
<ais:Researches>
<!--Zero or more repetitions:-->
<ais:OrderRequestResearch>
<ais:ServiceCode>09-017</ais:ServiceCode>
</ais:OrderRequestResearch>
</ais:Researches>
</tem:Order>
<tem:token>d20iddf83jvh837py14t</tem:token>
</tem:CreateOrder2>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateOrder2Response xmlns="http://tempuri.org/">
<CreateOrder2Result xmlns:a="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Date>2022-04-07T09:12:43.0819648+06:00</a:Date>
<a:MessageType>CreateOrderResponse</a:MessageType>
<a:Sender>SENDER</a:Sender>
<a:Code>Success</a:Code>
<a:Error i:nil="true"/>
<a:GeneratedContainers i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/Ais.Business"/>
<a:LisID>10038664</a:LisID>
<a:MisID>0</a:MisID>
<a:OrderNumber>123456</a:OrderNumber>
<a:Warnings xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
</CreateOrder2Result>
</CreateOrder2Response>
</s:Body>
</s:Envelope>
/GetOrderStatus2
Метод принимает следующие параметры:
Параметры GetOrderStatus2
|
Параметр |
Тип данных |
Обязательность |
|
Request |
OrderRequest |
True |
|
Token |
String |
True |
OrderRequest
|
Свойство |
Тип данных |
Обязательность |
Описание |
|
OrderNumber |
String |
True |
Номер заявки из внешней системы |
|
MisID |
Long |
False |
Идентификатор внешней системы |
|
LisID |
Long |
True |
Идентификатор заявки в ЛИС |
|
Sender |
String |
True |
Код системы отправителя |
|
MessageType |
MessageType |
True |
Тип сообщения |
В ответ должна прийти следующая модель OrderStatusResponse:
OrderStatusResponse
|
Поле |
Тип данных |
Описание |
|
MisID |
Long |
Идентификатор внешней системы |
|
OrderNumber |
String |
Номер заявки |
|
LisID |
Long |
Идентификатор направления в ЛИС |
|
Status |
OrderStatusForExternalSystem |
Статус |
|
Code |
ResponseCode |
Код ответа |
|
Error |
String |
Ошибка |
OrderStatusForExternalSystem
|
Название |
Значение |
Описание |
|
OrderNotFound |
0 |
Заказ не найден |
|
NoMaterial |
1 |
Нет материала |
|
HasMaterial |
2 |
Материал собран |
|
TaskMustClarify |
3 |
Задание требует уточнения |
|
TasksCreated |
4 |
Задание сформировано |
|
HasHalfResults |
5 |
Получены неполные результаты |
|
HasPreResults |
6 |
Получены предварительные результаты |
|
ResultsHalfApproved |
7 |
Результаты утверждены частично |
|
OrderComplete |
8 |
Заказ выполнен |
|
OrderClosed |
9 |
Заказ закрыт |
|
ResultsIssuedToPatient |
10 |
Результаты выданы пациенту |
|
ResultsSendedToSenderSystem |
11 |
Результаты отправлены системе отправителю |
|
OrderIsCanceled |
12 |
Выбраковка всех исследований заказа |
Пример запроса получения статуса заказа
http://tempuri.org/ILisService/GetOrderStatus2
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ais="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService">
<soapenv:Header/>
<soapenv:Body>
<tem:GetOrderStatus2>
<tem:request>
<ais:MessageType>OrderStatusRequest</ais:MessageType>
<ais:Sender>SENDER</ais:Sender>
<ais:LisID>10038664</ais:LisID>
<ais:MisID>0</ais:MisID>
<ais:OrderNumber>123456</ais:OrderNumber>
</tem:request>
<tem:token>d20iddf83jvh837py14t</tem:token>
</tem:GetOrderStatus2>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetOrderStatus2Response xmlns="http://tempuri.org/">
<GetOrderStatus2Result xmlns:a="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Date>2022-04-07T09:20:44.1662271+06:00</a:Date>
<a:MessageType>OrderStatusResponse</a:MessageType>
<a:Sender i:nil="true"/>
<a:Code>Success</a:Code>
<a:Error i:nil="true"/>
<a:LisID>10038664</a:LisID>
<a:MisID>0</a:MisID>
<a:OrderNumber>123456</a:OrderNumber>
<a:Status>TasksCreated</a:Status>
</GetOrderStatus2Result>
</GetOrderStatus2Response>
</s:Body>
</s:Envelope>
/RemoveOrder2
Метод принимает следующие параметры:
Параметры GetOrderStatus2
|
Параметр |
Тип данных |
Обязательность |
|
Request |
OrderRequest |
True |
|
Token |
String |
True |
В ответ должна прийти модель OrderResponse:
OrderResponse
|
Поле |
Тип данных |
Описание |
|
MisID |
Long |
Идентификатор внешней системы |
|
OrderNumber |
String |
Номер заявки |
|
LisID |
Long |
Идентификатор направления в ЛИС |
|
Code |
ResponseCode |
Код ответа |
|
Error |
String |
Ошибка |
Пример запроса RemoveOrder2
http://tempuri.org/ILisService/RemoveOrder2
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ais="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService">
<soapenv:Header/>
<soapenv:Body>
<tem:RemoveOrder2>
<tem:request>
<ais:MessageType>RemoveOrderRequest</ais:MessageType>
<ais:Sender>SENDER</ais:Sender>
<ais:LisID>10038664</ais:LisID>
<ais:MisID>0</ais:MisID>
<ais:OrderNumber>123456</ais:OrderNumber>
</tem:request>
<tem:token>d20iddf83jvh837py14t</tem:token>
</tem:RemoveOrder2>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<RemoveOrder2Response xmlns="http://tempuri.org/">
<RemoveOrder2Result xmlns:a="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Date>2022-04-07T09:28:58.733834+06:00</a:Date>
<a:MessageType>RemoveOrderResponse</a:MessageType>
<a:Sender i:nil="true"/>
<a:Code>Success</a:Code>
<a:Error/>
<a:LisID>10038664</a:LisID>
<a:MisID>0</a:MisID>
<a:OrderNumber>123456</a:OrderNumber>
</RemoveOrder2Result>
</RemoveOrder2Response>
</s:Body>
</s:Envelope>
/GetOrderResults2
Метод принимает следующие параметры:
Параметры GetOrderResults2
|
Параметр |
Тип данных |
Обязательность |
|
Request |
OrderRequest |
True |
|
Token |
String |
True |
В ответ должна прийти следующая модель OrderResultResponse:
Параметры OrderResultResponse
|
Поле |
Тип данных |
Описание |
|
MisID |
Long |
Идентификатор внешней системы |
|
OrderNumber |
String |
Номер заявки |
|
LisID |
Long |
Идентификатор направления в ЛИС |
|
Code |
ResponseCode |
Код ответа |
|
Error |
String |
Ошибка |
|
ReceiveDate |
DateTime |
Дата получения/регистрации |
|
PersonFIO |
String |
ФИО клиента |
|
IsManual |
Bool |
Не используется |
|
SenderFuncStructureID |
Long |
Код функционального подразделения отправителя |
|
SenderPostID |
Long |
Код врача отправителя |
|
OrderStatus |
OrderStatusForExternalSystem |
Статус заказа |
|
Person |
Person |
Информация о пациенте |
|
Researches |
List<OrderRequestResearch> |
Исследования в заказе |
|
Materials |
List<Material> |
Материалы в направлении |
|
OrderResultXML |
String |
Результат в XML |
|
OrderResultFileID |
long |
Не используется |
|
OrderResultDate |
DateTime |
Дата формирования результата |
|
OrderResultFile |
Byte[] |
Pdf-файл c результатами |
|
ApprovedPostOriginalID |
String |
ID врача в СУР |
|
ExtInfo |
List<KmisAssayData> |
Данные исследования |
Пример запроса получение результатов по номеру заказа
http://tempuri.org/ILisService/GetOrderResult2
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ais="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService">
<soapenv:Header/>
<soapenv:Body>
<tem:GetOrderResults2>
<tem:request>
<ais:MessageType>OrderResultsRequest</ais:MessageType>
<ais:Sender>SENDER</ais:Sender>
<ais:LisID>8962157</ais:LisID>
<ais:MisID>0</ais:MisID>
<ais:OrderNumber>2003670502202151125478</ais:OrderNumber>
</tem:request>
<tem:token>d20iddf83jvh837py14t</tem:token>
</tem:GetOrderResults2>
</soapenv:Body>
</soapenv:Envelope>
Метод возвращает следующий готовый результат отправителю. После получения результатов, внешней системе следует отправлять Подтверждение о получении результатов в виде метода
/SaveOrderResultSuccessDelivered2
Последовательность представлена ниже.
/GetOrderNextResults2
Принимает следующие параметры:
Параметры для GetOrderNextResults2
|
Параметр |
Тип данных |
Обязательность |
|
Request |
RequestBase |
True |
|
Token |
String |
True |
RequestBase
|
Свойство |
Тип данных |
Обязательность |
Описание |
|
Sender |
String |
True |
Код системы отправителя |
|
MessageType |
MessageType |
True |
Тип сообщения |
В ответ должна прийти модель OrderResultResponse.
Пример запроса получения следующего готового заказа отправителя
http://tempuri.org/ILisService/GetOrderNextResult2
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ais="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService">
<soapenv:Header/>
<soapenv:Body>
<tem:GetOrderNextResult2>
<tem:request>
<ais:MessageType>OrderNextResultRequest</ais:MessageType>
<ais:Sender>Sender</ais:Sender>
</tem:request>
<tem:token>d20iddf83jvh837py14t</tem:token>
</tem:GetOrderNextResult2>
</soapenv:Body>
</soapenv:Envelope>
/SaveOrderResultSuccessDelivered2
Принимает следующие параметры:
Параметры для GetOrderNextResults2
|
Параметр |
Тип данных |
Обязательность |
|
Request |
OrderRequest |
True |
|
Token |
String |
True |
В ответ должна прийти следующая модель ResponseBase:
ResponseBase
|
Свойство |
Тип данных |
Описание |
|
Code |
ResponseCode |
Код ответа |
|
Error |
String |
Ошибка |
Пример запроса для подтверждения получения результатов
http://tempuri.org/ILisService/SaveOrderResultSuccessDelivered2
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ais="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService">
<soapenv:Header/>
<soapenv:Body>
<tem:SaveOrderResultSuccessDelivered2>
<tem:request>
<ais:MessageType>OrderResultSuccessDeliveredRequest</ais:MessageType>
<ais:Sender>SENDER</ais:Sender>
<ais:LisID>10038664</ais:LisID>
<ais:MisID>0</ais:MisID>
<ais:OrderNumber>123456</ais:OrderNumber>
</tem:request>
<tem:token>d20iddf83jvh837py14t</tem:token>
</tem:SaveOrderResultSuccessDelivered2>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SaveOrderResultSuccessDelivered2Response xmlns="http://tempuri.org/">
<SaveOrderResultSuccessDelivered2Result xmlns:a="http://schemas.datacontract.org/2004/07/Ais.Business.Models.LisService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Date>2022-04-07T10:01:18.763194+06:00</a:Date>
<a:MessageType>OrderResultSuccessDeliveredResponse</a:MessageType>
<a:Sender>SENDER</a:Sender>
<a:Code>Success</a:Code>
<a:Error i:nil="true"/>
</SaveOrderResultSuccessDelivered2Result>
</SaveOrderResultSuccessDelivered2Response>
</s:Body>
</s:Envelope>
english
українська
русский
uzbek tili