- Julia должна быть запущена с правами админа! Иначе IBox не поднимется
- Сборка бокса лежит в директории: Y:\Yuly\IBox .Но надо сохранить где-то локально, иначе не запустится
- dat - файл не загружен в репозиторий, поэтому в локальную копию его надо положить самостоятельно. Тесты написаны под oxy115829.dat Скопировать с сервера: X:\БазаСпиро\oxy115829.dat в директорию, на каторой запускается сервер
- Если не было ручных правок, то все запросы передаются в бокс без изменений. Если был ручные правки сегментов QRS, то запрос к ним (точнее, началу и ширине) направляется в создаваемый на сервере объект, который содержит измененные сегменты. Важно! Объект ищется по именни группы - если использовать имя QRS при создании правок, то все последующие запросы тоже должны содержать имя группы QRS, а не Mark/QRS или что-то еще.
В julia REPL:
] add [email protected]:YuliyaCl/helloIBox.jl.git
] activate .
using helloIBox
using Sockets
using HTTP
localIP = Sockets.localhost
port = 8080
pathToIBox = "C:/Temp/IBox/IBoxLauncher.exe" #здесь, конечно, надо свой адрес указать
start_server(""; localIP = localIP, port = port) #стартуем сервер-посредник
"http://$localIP:$port/api/runIBox?res=oxy115829.dat&IBox_port=8888&IBox_path=$pathToIBox&IBox_host=$localIP" #запускаем бокс
У Бокса конфигурация по умолчанию с классификатором - ConfigClsWebApi, разметка 000. Однако, можно в параметрах задать иную конфигурацию/имя разметки, а также выбрать открытие разметки по ее имени. Для этого в запросе указываются параметры: config=ИмяКонфигурации; resName=Имя разметки; arg=Доп.Строка в консоль запуска. Например:
#запускаем бокс с конфигом БЕЗ классификатора и пишем в разметку 111
"http://$localIP:$port/api/runIBox?res=oxy115829.dat&IBox_port=8888&IBox_path=$pathToIBox&IBox_host=$localIP&config=IBTestWebApi&resName=111"
#запуск "открыть бокс с разметкой 111", откроется уже имеющаяся разметка что бы там ни было - не надо ждать прогона
"http://$localIP:$port/api/runIBox?res=oxy115829.dat&IBox_port=8888&IBox_path=$pathToIBox&IBox_host=$localIP&config=IBOpen&resName=111&arg=-open"
"http://$localIP:$port/api/Close"
"http://$localIP:$port/api/closeServer"
Многие данные записаны по неописательным именам (например, каналы ЭКГ: Ecg,Ecg_1 ... и тд).Чтобы получить тег данных (например, имя канала), используйте getDataTag
"http://$localIP:$port/api/getDataTag?res=oxy115829.dat&dataName=Ecg_2"
Возвращает структуру данных в JSON-формате
"http://$localIP:$port/api/getDataTree"
Возвращает дерево в JSON-формате. В name содержится имя класс/подкласса, так же есть QPoint, попавшие в этот узел/лист, и кол-во элементов. Данные зачитываются из бокса, в обход правок (если таковые были)
"http://$localIP:$port/api/getQRStree"
Индексы в наборах данных идут от 0. Если не заданы to и count, то берутся ВСЕ элементы набора. from-to/count в ЭЛЕМЕНТАХ МАССИВА
#запрос частоты дискретизации:
"http://$localIP:$port/api/getData?res=oxy115829.dat&dataName=Freq&index=0&from=0&count=1
#запрос 1-го отведения ЭКГ. Чтобы запрасить 1-й канал, то надо указать index=0
"http://$localIP:$port/api/getData?res=oxy115829.dat&dataName=EcgRecalc&index=0&from=0&count=20"
#запрос 2-го отведения ЭКГ, через нижнее подчеркивание можно задавать индекс для данных
"http://$localIP:$port/api/getData?res=oxy115829.dat&dataName=EcgRecalc_1&from=0&count=20"
#запрос первых 30 WidthQRS
"http://$localIP:$port/api/getData?res=oxy115829.dat&dataName=WidthQRS&index=0&from=0&count=30"
При запросе с getStructData ВСЕГДА from-to/count в ТОЧКАХ ИСХОДНОГО СИГНАЛА
#точки Q и ширина QRS в интервале с 100 по 120 (отсчеты исходного сигнала)
"http://$localIP:$port/api/getStructData?res=oxy115829.dat&dataName=QRS&fields=QPoint,WidthQRS&index=0&from=100&count=20"
Просто выбираем 4 филда fields=QPoint,WidthQRS,ClassQRS,SubClassQRS. Предворительно их тип определяется по /api/getType
"http://$localIP:$port/api/getStructData?res=oxy115829.dat&dataName=QRS&fields=QPoint,WidthQRS,ClassQRS,SubClassQRS&from=1&to=300"
Сейчас доступно и протестировано только для QRS (добавить/удалить). Надо положить в body запроса JSON-файл с содержанием:
{
"chName": "QRS",
"targetData": "/Mark/QRS/",
"command": {
"id": "ADD_SEGMENT",
"args": {
"ibeg": [10, 30, 50],
"iend": [20, 45, 55],
"type": "QRS"
}
},
"fromto": [1, 150]
}
Более подробно о правках тут: https://docs.google.com/document/d/1311ZdQOyz3U6YEF1_FFphtpP3f7o4t_DD-u-7KdMMG4/edit Сам текст запроса (+ JSON в боди):
"http://$localIP:$port/api/manualChange?res=oxy115829.dat"
Любую ручную правку можно отменить, и вернуть назад отмену. Это реализуется простыми запросами без параметров (тесты проходит, но еще могут быть косяки)
"http://$localIP:$port/api/undo"
"http://$localIP:$port/api/redo"