Раздел API
Медицинское оборудование
Модуль «Медицинское оборудование»: анализаторы по HL7 v2 (MLLP) и ASTM E1381/E1394. Результаты с хранением 30 дней, длинный опрос и подтверждение получения (событие lab.result), задания анализатору (worklist) и их статус, эмулятор анализатора. Нужен модуль lab в ключе (кроме эмулятора).
| POST | /api/v1/lab/results/ack | Подтвердить получение результатов |
| GET | /api/v1/lab/orders | Задания |
| POST | /api/v1/lab/orders | Задание анализатору |
| POST | /api/v1/lab/analyzers/{number}/resend | Передать ждущие задания ещё раз |
| POST | /api/v1/lab/analyzers/{number}/emulate | Результат от эмулятора |
| GET | /api/v1/lab/results | Результаты |
| GET | /api/v1/lab/results/{id} | Результат |
| GET | /api/v1/lab/analyzers | Анализаторы |
| DELETE | /api/v1/lab/orders/{analyzer}/{sampleId} | Удалить задание |
Подтвердить получение результатов#
/api/v1/lab/results/ackМИС сохранила результаты — они больше не попадут в undelivered
Тело запроса application/json обязательное
Поля · Ack
idsмассив string uuid
{
"ids": [
"3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11"
]
}Ответ 200 application/json
Поля · Acked
acknowledgedinteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/lab/results/ack' \
-H 'Content-Type: application/json' \
--data '{"ids":["3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11"]}'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/lab/results/ack' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42' \
-H 'Content-Type: application/json' \
--data '{"ids":["3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11"]}'Задания#
/api/v1/lab/ordersНовые первыми; status — QUEUED, SENT или DONE
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
analyzer | query | integer int32 | |
status | query | string | |
limit | query | integer int32 |
Ответ 200 application/json
Поля · OrderList
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/lab/orders'curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/orders' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Задание анализатору#
/api/v1/lab/ordersWorklist: какие тесты сделать по образцу. HL7 — агент сразу передаёт ORM^O01; ASTM — передаёт заданием или отвечает им на запрос анализатора по штрихкоду. status: SENT, QUEUED (ждёт связи или запроса), DONE (пришёл результат)
Тело запроса application/json обязательное
Поля · OrderRequest
analyzerinteger int32sampleIdstringpatientPatient4 поля · Patient
idstringnamestringbirthDatestringsexstring
testsмассив stringprioritystring
{
"analyzer": 1,
"sampleId": "string",
"patient": {
"id": "string",
"name": "string",
"birthDate": "string",
"sex": "string"
},
"tests": [
"string"
],
"priority": "string"
}Ответ 200 application/json
Поля · Order
analyzerinteger int32sampleIdstringpatientPatient4 поля · Patient
idstringnamestringbirthDatestringsexstring
testsмассив stringprioritystringstatusstringcreatedAtstring date-timesentAtstring date-time
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/lab/orders' \
-H 'Content-Type: application/json' \
--data '{"analyzer":1,"sampleId":"string","patient":{"id":"string","name":"string","birthDate":"string","sex":"string"},"tests":["string"],"priority":"string"}'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/lab/orders' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42' \
-H 'Content-Type: application/json' \
--data '{"analyzer":1,"sampleId":"string","patient":{"id":"string","name":"string","birthDate":"string","sex":"string"},"tests":["string"],"priority":"string"}'Передать ждущие задания ещё раз#
/api/v1/lab/analyzers/{number}/resendВсе задания анализатора со статусом QUEUED
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
numberобязательный | path | integer int32 |
Ответ 200 application/json
Поля · Resent
queuedinteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/lab/analyzers/1/resend'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/lab/analyzers/1/resend' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Результат от эмулятора#
/api/v1/lab/analyzers/{number}/emulateТолько эмулятор анализатора: результат по образцу без задания, приходит событием lab.result как от настоящего
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
numberобязательный | path | integer int32 |
Тело запроса application/json
Поля · Emulate
sampleIdstringpatientPatient4 поля · Patient
idstringnamestringbirthDatestringsexstring
testsмассив string
{
"sampleId": "string",
"patient": {
"id": "string",
"name": "string",
"birthDate": "string",
"sex": "string"
},
"tests": [
"string"
]
}Ответ 200 application/json
Поля · Result
validbooleanerrorsмассив Issue8 полей · Issue
codestringseveritystringзначения:ERRORWARNINGatstring date-timeregisterinteger int32terminalinteger int32fdinteger int64amountinteger int64messagestring
warningsмассив Issue8 полей · Issue
codestringseveritystringзначения:ERRORWARNINGatstring date-timeregisterinteger int32terminalinteger int32fdinteger int64amountinteger int64messagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/lab/analyzers/1/emulate' \
-H 'Content-Type: application/json' \
--data '{"sampleId":"string","patient":{"id":"string","name":"string","birthDate":"string","sex":"string"},"tests":["string"]}'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/lab/analyzers/1/emulate' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42' \
-H 'Content-Type: application/json' \
--data '{"sampleId":"string","patient":{"id":"string","name":"string","birthDate":"string","sex":"string"},"tests":["string"]}'Результаты#
/api/v1/lab/resultsСтарые первыми. undelivered=true — ещё не подтверждённые МИС (забрать и подтвердить POST /api/v1/lab/results/ack); since — полученные позже (ISO 8601); wait — ждать новый результат до стольких секунд (длинный опрос, до 60); raw=true — с исходным сообщением анализатора
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
analyzer | query | integer int32 | |
sampleId | query | string | |
since | query | string date-time | |
undelivered | query | boolean | |
raw | query | boolean | |
limit | query | integer int32 | |
wait | query | integer int32 |
Ответ 200 application/json
Поля · ResultList
resultsмассив Result3 поля · Result
validbooleanerrorsмассив Issue8 полей · Issue
codestringseveritystringзначения:ERRORWARNINGatstring date-timeregisterinteger int32terminalinteger int32fdinteger int64amountinteger int64messagestring
warningsмассив Issue8 полей · Issue
codestringseveritystringзначения:ERRORWARNINGatstring date-timeregisterinteger int32terminalinteger int32fdinteger int64amountinteger int64messagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/lab/results'curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/results' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Результат#
/api/v1/lab/results/{id}С исходным сообщением анализатора
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
idобязательный | path | string uuid |
Ответ 200 application/json
Поля · Result
validbooleanerrorsмассив Issue8 полей · Issue
codestringseveritystringзначения:ERRORWARNINGatstring date-timeregisterinteger int32terminalinteger int32fdinteger int64amountinteger int64messagestring
warningsмассив Issue8 полей · Issue
codestringseveritystringзначения:ERRORWARNINGatstring date-timeregisterinteger int32terminalinteger int32fdinteger int64amountinteger int64messagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/lab/results/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11'curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/results/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Анализаторы#
/api/v1/lab/analyzersПротокол, связь, сколько сообщений принято и заданий ждёт передачи
Ответ 200 application/json
Поля · AnalyzerList
licensedbooleananalyzersмассив AnalyzerInfo7 полей · AnalyzerInfo
numberinteger int32namestringtypestringprotocolstringactivebooleanconnectedbooleaninfoсловарь → любое значение
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/lab/analyzers'curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/analyzers' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Удалить задание#
/api/v1/lab/orders/{analyzer}/{sampleId}Отмена исследования: анализатор больше не получит его в ответ на запрос
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
analyzerобязательный | path | integer int32 | |
sampleIdобязательный | path | string |
Ответ 200
Без тела.
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X DELETE 'http://localhost:7790/api/v1/lab/orders/1/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11'curl -X DELETE 'https://cloud.hw-connector.ru/agent/api/v1/lab/orders/1/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'