HW agent API 2.28.0

Раздел 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}Удалить задание

Подтвердить получение результатов#

POST/api/v1/lab/results/ack

МИС сохранила результаты — они больше не попадут в undelivered

Тело запроса application/json обязательное

Поля · Ack
  • idsмассив string uuid
JSON
{
  "ids": [
    "3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11"
  ]
}

Ответ 200 application/json

Поля · Acked
  • acknowledgedinteger int32

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl -X POST 'http://localhost:7790/api/v1/lab/results/ack' \
  -H 'Content-Type: application/json' \
  --data '{"ids":["3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11"]}'
curl
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"]}'

Задания#

GET/api/v1/lab/orders

Новые первыми; status — QUEUED, SENT или DONE

Параметры

ИмяГдеТипОписание
analyzerqueryinteger int32
statusquerystring
limitqueryinteger int32

Ответ 200 application/json

Поля · OrderList
  • ordersмассив Order
    8 полей · Order
    • analyzerinteger int32
    • sampleIdstring
    • patientPatient
      4 поля · Patient
      • idstring
      • namestring
      • birthDatestring
      • sexstring
    • testsмассив string
    • prioritystring
    • statusstring
    • createdAtstring date-time
    • sentAtstring date-time

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'http://localhost:7790/api/v1/lab/orders'
curl
curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/orders' \
  -H 'X-Api-Key: hwk_…' \
  -H 'X-Device-Id: 42'

Задание анализатору#

POST/api/v1/lab/orders

Worklist: какие тесты сделать по образцу. HL7 — агент сразу передаёт ORM^O01; ASTM — передаёт заданием или отвечает им на запрос анализатора по штрихкоду. status: SENT, QUEUED (ждёт связи или запроса), DONE (пришёл результат)

Тело запроса application/json обязательное

Поля · OrderRequest
  • analyzerinteger int32
  • sampleIdstring
  • patientPatient
    4 поля · Patient
    • idstring
    • namestring
    • birthDatestring
    • sexstring
  • testsмассив string
  • prioritystring
JSON
{
  "analyzer": 1,
  "sampleId": "string",
  "patient": {
    "id": "string",
    "name": "string",
    "birthDate": "string",
    "sex": "string"
  },
  "tests": [
    "string"
  ],
  "priority": "string"
}

Ответ 200 application/json

Поля · Order
  • analyzerinteger int32
  • sampleIdstring
  • patientPatient
    4 поля · Patient
    • idstring
    • namestring
    • birthDatestring
    • sexstring
  • testsмассив string
  • prioritystring
  • statusstring
  • createdAtstring date-time
  • sentAtstring date-time

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
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
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"}'

Передать ждущие задания ещё раз#

POST/api/v1/lab/analyzers/{number}/resend

Все задания анализатора со статусом QUEUED

Параметры

ИмяГдеТипОписание
numberобязательныйpathinteger int32

Ответ 200 application/json

Поля · Resent
  • queuedinteger int32

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl -X POST 'http://localhost:7790/api/v1/lab/analyzers/1/resend'
curl
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'

Результат от эмулятора#

POST/api/v1/lab/analyzers/{number}/emulate

Только эмулятор анализатора: результат по образцу без задания, приходит событием lab.result как от настоящего

Параметры

ИмяГдеТипОписание
numberобязательныйpathinteger int32

Тело запроса application/json

Поля · Emulate
  • sampleIdstring
  • patientPatient
    4 поля · Patient
    • idstring
    • namestring
    • birthDatestring
    • sexstring
  • testsмассив string
JSON
{
  "sampleId": "string",
  "patient": {
    "id": "string",
    "name": "string",
    "birthDate": "string",
    "sex": "string"
  },
  "tests": [
    "string"
  ]
}

Ответ 200 application/json

Поля · Result
  • validboolean
  • errorsмассив Issue
    8 полей · Issue
    • codestring
    • severitystring
      значения: ERROR WARNING
    • atstring date-time
    • registerinteger int32
    • terminalinteger int32
    • fdinteger int64
    • amountinteger int64
    • messagestring
  • warningsмассив Issue
    8 полей · Issue
    • codestring
    • severitystring
      значения: ERROR WARNING
    • atstring date-time
    • registerinteger int32
    • terminalinteger int32
    • fdinteger int64
    • amountinteger int64
    • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
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
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"]}'

Результаты#

GET/api/v1/lab/results

Старые первыми. undelivered=true — ещё не подтверждённые МИС (забрать и подтвердить POST /api/v1/lab/results/ack); since — полученные позже (ISO 8601); wait — ждать новый результат до стольких секунд (длинный опрос, до 60); raw=true — с исходным сообщением анализатора

Параметры

ИмяГдеТипОписание
analyzerqueryinteger int32
sampleIdquerystring
sincequerystring date-time
undeliveredqueryboolean
rawqueryboolean
limitqueryinteger int32
waitqueryinteger int32

Ответ 200 application/json

Поля · ResultList
  • resultsмассив Result
    3 поля · Result
    • validboolean
    • errorsмассив Issue
      8 полей · Issue
      • codestring
      • severitystring
        значения: ERROR WARNING
      • atstring date-time
      • registerinteger int32
      • terminalinteger int32
      • fdinteger int64
      • amountinteger int64
      • messagestring
    • warningsмассив Issue
      8 полей · Issue
      • codestring
      • severitystring
        значения: ERROR WARNING
      • atstring date-time
      • registerinteger int32
      • terminalinteger int32
      • fdinteger int64
      • amountinteger int64
      • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'http://localhost:7790/api/v1/lab/results'
curl
curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/results' \
  -H 'X-Api-Key: hwk_…' \
  -H 'X-Device-Id: 42'

Результат#

GET/api/v1/lab/results/{id}

С исходным сообщением анализатора

Параметры

ИмяГдеТипОписание
idобязательныйpathstring uuid

Ответ 200 application/json

Поля · Result
  • validboolean
  • errorsмассив Issue
    8 полей · Issue
    • codestring
    • severitystring
      значения: ERROR WARNING
    • atstring date-time
    • registerinteger int32
    • terminalinteger int32
    • fdinteger int64
    • amountinteger int64
    • messagestring
  • warningsмассив Issue
    8 полей · Issue
    • codestring
    • severitystring
      значения: ERROR WARNING
    • atstring date-time
    • registerinteger int32
    • terminalinteger int32
    • fdinteger int64
    • amountinteger int64
    • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'http://localhost:7790/api/v1/lab/results/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11'
curl
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'

Анализаторы#

GET/api/v1/lab/analyzers

Протокол, связь, сколько сообщений принято и заданий ждёт передачи

Ответ 200 application/json

Поля · AnalyzerList
  • licensedboolean
  • analyzersмассив AnalyzerInfo
    7 полей · AnalyzerInfo
    • numberinteger int32
    • namestring
    • typestring
    • protocolstring
    • activeboolean
    • connectedboolean
    • infoсловарь → любое значение

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'http://localhost:7790/api/v1/lab/analyzers'
curl
curl 'https://cloud.hw-connector.ru/agent/api/v1/lab/analyzers' \
  -H 'X-Api-Key: hwk_…' \
  -H 'X-Device-Id: 42'

Удалить задание#

DELETE/api/v1/lab/orders/{analyzer}/{sampleId}

Отмена исследования: анализатор больше не получит его в ответ на запрос

Параметры

ИмяГдеТипОписание
analyzerобязательныйpathinteger int32
sampleIdобязательныйpathstring

Ответ 200

Без тела.

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl -X DELETE 'http://localhost:7790/api/v1/lab/orders/1/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11'
curl
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'