Данни и научна работа
LOSPOR съхранява периоперативни данни за клинична документация, одит, лично портфолио и деидентифицирани / псевдонимизирани набори от данни за научна работа. Отделната услуга lospor-api отговаря за каноничния договор с PostgreSQL и API; уеб, мобилните и PWA клиентите привеждат данните си към същите имена на полета и библиотеки преди записа.
Какви данни събира LOSPOR?
Предоперативни данни
-
Демографски данни: възраст, пол, ръст, тегло, индекс на телесна маса, кръвна група, Rh фактор.
-
Диагноза: код по МКБ-10 с наименования на английски и на български.
-
Планирана операция: групата на операцията и по избор точната операция по ICD-10-PCS, избрана от клинициста в нея. Операция, внесена от болнична система, запазва до себе си кода на болницата (например по КСМП) и формулировката ѝ.
-
Придружаващи заболявания: етикети с код по МКБ-10 и наименования на английски и български.
-
Редове с медикаментозна анамнеза и алергии към медикаменти, включително
Medication.kind = CURRENTилиALLERGY. -
Рискови скорове: ASA, RCRI, Apfel, STOP-BANG и съставните им елементи.
Съставните елементи имат три стойности: да, не и незададен. Критерий, който никой не е задал на пациента, се съхранява като null, а не като отрицателен отговор, и не се брои към скора — така скорът е долна граница, когато част от критериите му никога не са били зададени. Анализите, които приемат null за „не“, броят нещо, което регистърът не е измерил; съставните елементи се изнасят именно за да ви бъде достъпно това разграничение.
Скоровете се съхраняват и изнасят като точки (RCRI 0–6, Apfel 0–4, STOP-BANG 0–8, POVOC, COLDS, PAED). Степента на риск е прочит на точките по една препоръка, затова се добавя при показване и никога не се замразява в данните. Процентът на риска по POVOC и рискът по Gupta (MICA) се изчисляват при износа от входните им данни и не се съхраняват.
-
Предложение за ASA: класът, предложен от правилата въз основа на кодираните заболявания и ИТМ, правилата, които са го определили, и версията на таблицата с правила, записани до избрания от клинициста клас.
-
Планирана анестезия (по желание): техники, устройства и инструменти за дихателния път, катетри и планирана вентилация след операцията.
-
Гладуване при деца: по едно указание за всеки вид прием, в часове преди операцията, с правилото, по което е дадено.
-
Предоперативни документи: всеки отпечатан екземпляр на съгласието записва варианта и отпечатъка на текста си, оформлението и, при оформление C, описаните техники.
-
Оценка на дихателния път: Mallampati, отваряне на устата, тиреоментално разстояние, подвижност на шията, ULBT, Cormack–Lehane, анамнеза за труден дихателен път и особености на дихателния път.
-
Клинични бележки със свободен текст, където са нужни: бележки за екипа, доклад от физикалния преглед, бележки за дихателния път. Те са с ограничен брой знаци. В облачната услуга идентифициращ текст в тях се отказва при записа. В болничния уред се съхранява така, както е въведен, в болницата, а свободният текст се почиства от имена, дати, ЕГН, дълги номера и имейл адреси всеки път, когато напуска уреда: при OMOP и научните експорти, при доставката към Central и в изпратеното към AI съветника. Кодираните полета (диагнози, процедури, списъци с медикаменти и алергии) излизат без промяна.
-
Жизнени показатели: артериално налягане, сърдечна честота, SpO₂, температура, дихателна честота, включително отметки за невъзможност за измерване, където са налични.
-
Лабораторни резултати: канонично име на изследването, стойност, разчетена числова стойност, канонична мерна единица, код по LOINC, референтен интервал, отметка за отклонение, източник и време, където е налично.
Предоперативни въпроси
Всеки въпрос от предоперативния каталог се записва и като един ред с отговор
за случай (PreopAssessmentAnswer) и научната работа и OMOP четат именно
тези редове. Това включва и базовите въпроси зад стандартните контроли, чиито
полета във формуляра остават като копие за съвместимост.
- Въпрос, включен за случая, има ред:
YES,NO,UNKNOWN,NOT_APPLICABLEилиNOT_ASKED, когато е бил във формуляра и е останал празен. Изключен въпрос няма ред, така че „не е бил във формуляра“ и „оставен празен“ остават различими. - Всеки ред записва кой е отговорил: клиницистът или прието предложение от болничната документация, заедно с правилото и записа, от който идва.
- Отговор, даден преди болницата да изключи въпроса, се запазва; отговор, записан докато въпросът е изключен, се запазва и се отбелязва като такъв.
- Редовете на финализиран случай не могат да се променят.
Интраоперативни данни
- Времена: началото и краят на анестезията като моменти във времето, с часовата зона на случая, месеца на случая и продължителността.
- Техники, позиция, средства за дихателния път, режими на вентилация, методи на мониториране.
- Редове за съдов достъп с място, размер, мерна единица, дълбочина, брой лумени и отметка за вече съществуващ.
- Редове за премедикация по фаза: предния ден или сутринта преди операцията. Всеки ред носи медикамента, неговия ATC код по СЗО, дозата, мерната единица и пътя; няма час.
- Лекарствените инфузии записват двете скорости: дозовата и, когато
концентрацията на спринцовката е известна, скоростта на помпата в mL/h с
концентрацията. Таргетно-контролираната инфузия записва модела си, мястото
(Cp или Ce), превключвателя за опиоид, всяка цел и общото по самата помпа,
когато е въведено. Вкараните чрез инфузии милилитри се съхраняват като
infusionsMlи влизат в баланса на течностите. - Времева ос само с добавяне: жизнени показатели, кръвна захар от серум или периферия, болусни медикаменти, начало/промяна на скоростта/спиране на инфузии, начало и спиране на вливания, начало и спиране на инхалационни агенти, промени в потока на свежата газова смес и клинични събития.
- Поток на свежата газова смес във времето: FGF в L/min, носещ газ, FiO₂, изчислена фракция на въздуха и изчислена фракция на N₂O. FiO₂ се ограничава между 21 и 100%; само кислород означава FiO₂ 100%.
- Вливания, диуреза, кръвни продукти, усложнения и бележки към събитията.
Следоперативни данни
- Компоненти и сбор на скора по Aldrete.
- Жизнени показатели при събуждане: систолно и диастолно артериално налягане, сърдечна честота, SpO₂, температура.
- Болка по NRS, PONV, насочване, списък за предаване, усложнения и бележки.
Какво не се съхранява?
Следното съзнателно никога не се качва и не се съхранява:
- Име на пациента.
- Национален идентификационен номер / ЕГН.
- Номер на история на заболяването или идентификационен номер на пациента.
- Дата на раждане; вместо нея се съхранява възрастта към момента на операцията. (Датата и часът на анестезията се съхраняват, защото картата е времева ос.)
- Имена на хирург, анестезиолог или сестра като структурирани полета.
- В облачната услуга — свободен текст, който задейства откривателя на лични данни на сървъра.
В протокола за печат полетата за самоличност на пациента остават празни. Клиницистите ги попълват на ръка след печат, ако са нужни за местния хартиен запис.
Канонични библиотеки
LOSPOR използва споделени библиотеки на сървъра, а не твърдо зададени списъци във всяко приложение.
| Библиотека | Източник на истината | Използва се за |
|---|---|---|
| МКБ-10 | Icd10Code, Icd10Synonym | диагнози и придружаващи заболявания |
| Лаборатория/LOINC | LabLoinc и каноничен код на изследването | сканиране с изкуствен интелект, ръчно въвеждане, износ |
| Медикаменти/ATC/INN | Atc, Drug, редове с медикаменти от библиотеката с опции | медикаментозна анамнеза, алергии, интраоперативни медикаменти и инфузии |
| Опции на приложението | OptionLibrary | техники, дихателен път, вентилация, мониториране, позиция, вливания, събития, насочване, предаване, числови диапазони |
| Речник Athena/OMOP | OmopConcept, OmopVocabulary, връзки, предшественици, синоними | локално определяне на стандартни понятия |
| Карта на понятията | ConceptMap | запазване на изходния код и наименование, метод и увереност на съответствието, състояние на прегледа и идентификатори по OMOP, където са известни |
Наименованията по МКБ-10 на английски и на български са метаданни за един и същ код. Те не са дублирани клинични понятия.
Слоеве от данни за научна работа
LOSPOR пази съвместими JSON/кеш данни за приложенията, но изследователските заявки трябва да използват нормализираните редове, където има такива.
| Клинични данни | Таблица | Колони за научна работа |
|---|---|---|
| Диагнози | PreopDiagnosis | код по МКБ, наименования, изходен речник и код, идентификатор по OMOP при съответствие |
| Операции | PreopProcedure | код, група, област, изходно съответствие |
| Придружаващи заболявания | Comorbidity | код по МКБ-10, наименования, изходно съответствие |
| Лаборатория | LabResult | числова стойност, канонична единица, LOINC, интервали, отметка за отклонение, изходно съответствие |
| Медикаменти/алергии | Medication | вид, идентификатор на медикамента, INN, ATC, доза, път, изходно съответствие |
| Съдов достъп | VascularAccess | място, размер, единица, дълбочина, лумени, отметка за вече съществуващ |
| Премедикация | PremedicationAdministration | фаза, изходно име, INN, ATC, доза, път |
| Усложнения | CaseComplication | раздел, наименование, бележка, време, изходно съответствие |
| Избори | CaseSelection | раздел, категория, стойност, изходно съответствие |
| Интраоперативна времева ос | CaseEvent | вид на събитието, време, типизирани колони за показатели/газове/медикаменти/вливания/агенти, произход |
| Липсващи данни | ClinicalFieldStatus | ключ на полето, наличие, източник, версия на източника |
CaseEvent е само за добавяне. Редакциите заменят по-старите редове, а изтриванията оставят надгробни редове, така че текущата графика може да бъде изведена от активните редове, като историята се запазва за одит.
Липсващи данни и произход
Износите за научна работа трябва да различават липсващи данни от отрицателни данни. ClinicalFieldStatus записва дали ключовите полета са:
PRESENTABSENTUNKNOWNNOT_APPLICABLENOT_DOCUMENTED
Нормализираните редове носят и метаданни за източника и произхода, като въведено от потребител, източник уеб или мобилно, сканиране с изкуствен интелект, попълване назад, миграция или релационна синхронизация, където са налични. Обхватът на състоянията на полетата е съзнателно широк, така че нормализираните редове да могат да служат като авторитет за научната работа и износа, докато JSON на интерфейса остава кеш за съвместимост.
Износ по OMOP
Износът по OMOP е изследователски износ, ориентиран към OMOP CDM v5.4. Той вече чете нормализираните редове и активните редове със събития, вместо необработени наследени блокове.
Износът включва:
- мястото на грижа като отделна таблица, към която посещението препраща чрез
care_site_id - лице и период на наблюдение, кореновите таблици на CDM
- посещение
- състояния от диагнозите и придружаващите заболявания. Код по МКБ-10, който OMOP разделя на няколко понятия (E11.2: захарен диабет тип 2 и бъбречно увреждане вследствие на него), се изнася с по един ред за всяко понятие и с една и съща изходна стойност
- операции от всяка планирана операция, анестезиологичната техника, съдовия достъп, поставянето на инструментален дихателен път и преливането на всяка единица кръв. Планираната операция носи стандартното си понятие само когато клиницистът е избрал точната операция по ICD-10-PCS; група сама по себе си се изнася с понятие 0 и с групата в изходната стойност
- редове с измервания за предоперативните и следоперативните показатели,
лабораторните изследвания, интраоперативните показатели, кръвната захар и
настройките на газовете, с
value_source_valueза резултати, които лабораторията е съобщила като текст, иrange_low/range_highза референтния интервал, спрямо който резултатът е преценен - редове с приложени медикаменти за медикаментозната анамнеза, болусните
медикаменти, премедикацията, агентите, инфузиите и венозните вливания, с
drug_exposure_end_date, съчетан със събитията за спиране при продължителните приложения. Вливането се кодира като клиничния препарат в дадената концентрация, по ръчно проверена таблица, защото вливанията споделят ATC кодове (физиологичният разтвор, разтворът на Hartmann и Plasma-Lyte са всички B05BB01). Премедикацията се датира предния ден (D-1) или в деня на операцията - редове с изделия за инструменталните средства за дихателния път и за всяка
единица кръв, като единицата носи понятието на продукта и обема си като
quantityв mL (unit_concept_id8587). Събирането на собствена кръв няма понятие за продукт и се изнася като процедура по автотрансфузия, с обема като наблюдение - наблюдения за ASA, скоровете, изборите, усложненията, предаването, насочването, предоперативната анамнеза и прегледа на дихателния път, средствата за дихателния път и вентилацията, лекарствените алергии и другите понятия, специфични за приложението
Клиничните въпроси с да/не се изнасят и при записано „не“, не само при „да“. Липсата на ред означава, че въпросът никога не е бил зададен, което е различно твърдение за пациента от отрицателна находка.
Алергията се изнася като наблюдение, никога като приложен медикамент. Вещество, към което пациентът реагира, не е вещество, което му е било дадено.
Датите и часовете са по часовника на операционната.
- Дати: всяка
*_dateе местната календарна дата в часовата зона на случая. - Часове: всяко
*_datetimeе местният час с отместването спрямо UTC, например2026-06-02T01:30:00+03:00за случай, започнал в 01:30 в София. Това е същият момент като UTC времето, който се чете като часовника в операционната. - Без зона: случай, който не е записал часовата си зона, е в UTC.
Таргетно-контролираната инфузия се изнася като едно приложение на медикамент:
- Доза: даденото количество, което е общото по самата помпа, когато е въведено, а иначе изчислението на модела.
- До нея, наблюдения: моделът (
LOSPOR:TCI_MODEL), мястото, превключвателят за опиоид, всяка цел (LOSPOR:TCI_TARGET) и двете общи количества, изчисленото и по помпата. - mL без спринцовка: общо по помпата в mL без концентрация на
спринцовката не може да се превърне в количество и се запазва като
LOSPOR:TCI_TOTAL_PUMP_ML.
Обем на инфузиите. Милилитрите от лекарствените инфузии се изнасят като
LOSPOR:DRUG_INFUSIONS_ML, със скоростта на помпата и концентрацията на
всяка инфузия.
Известните идентификатори по OMOP се съхраняват и изнасят там, където съответствието е уверено установено. Понятието се фиксира при записа на случая, така че двукратният износ на един случай дава един и същ файл, а приключен случай никога не се пренаписва при промяна на речниците.
Изследователските номера, от които LOSPOR се нуждае, се доставят с всяко издание, така че едно заведение изнася стандартни понятия, без да внася каквато и да е терминология: операциите по ICD-10-PCS, идентификаторите по OMOP на кодовете по МКБ-10 на LOSPOR, кодовете по LOINC на лабораторните му изследвания и целите в RxNorm на ATC кодовете на каталожните му медикаменти. За SNOMED CT се доставят само номерата на понятията по OMOP, никога кодове или описания по SNOMED. Българските национални разширения по МКБ-10 нямат собствено понятие и се изнасят като изходни кодове; те не заемат понятието на родителския си код. Филтриран внос на CSV от Athena все пак може да обогати съответствията през локалните таблици с речника на OMOP и има предимство там, където разрешава код. Иначе LOSPOR изнася изходния речник, изходния код и изходните наименования с изрично състояние само-източник или без съответствие. Измислени идентификатори по OMOP не се използват.
Всеки износ включва манифест с версия на приложението и схемата, версия на картата на понятията, брой редове, обобщение на съответствията, бележки за деидентификацията и предупреждения за качеството. Манифест v2 при управляваните износи замразява и родителските клинични, събитийни и релационни ревизии, както и всяка ревизия на раздел за всеки приключен случай. Износите от приложението предупреждават, вместо да блокират, когато има съответствия само от източника, липсващи редове за състояние на полетата, точни времеви отметки или връзка със заведение. Файловете за изтегляне се пазят 30 дни по подразбиране; контролната им сума, броят редове, версията на източника и одитната история остават след изтичането на файла.
Заявка по OMOP, която отговаря на повече от 5000 случая, се отхвърля с HTTP 422
и съобщава броя на отговарящите случаи, ограничението и complete: false.
LOSPOR никога не връща първите 5000 случая, все едно са пълният набор от данни.
Стеснете износа или използвайте бъдещия процес за възобновяем износ от заведение
към център за по-големи кохорти.
Деидентификация / псевдонимизация
Всеки случай получава генериран код, например 2026-0001. Това е видимият псевдоним на ниво случай, използван в интерфейса и в износите.
Вътрешно LOSPOR съхранява оперативната връзка, необходима за контрол на достъпа, одит, управление и качество на научната работа: идентификатор на потребителя, идентификатор на заведението, времеви отметки, информация за ролите и одита и моментни снимки при приключване. Това не са идентификатори на пациенти, но означават, че данните на LOSPOR трябва да се описват като деидентифицирани / псевдонимизирани, а не като напълно анонимизирани.
Средства за качество на данните
Сървърната част включва инструменти за проверки при издаване и за научна работа:
scripts/seed-vocabularies.tsзарежда МКБ-10, синонимите от ICD-10CM, ATC и редовете с медикаменти.scripts/seed-athena-vocabularies.ts --filtered-losporвнася само локалните редове от Athena/OMOP, нужни на LOSPOR, за съответствия, подкрепени от речник.scripts/seed-lab-loinc.tsзарежда каноничния каталог с лаборатория и LOINC.scripts/seed-option-library.tsзарежда споделените библиотеки с опции на приложението.scripts/seed-concept-maps.tsзарежда местните двуезични карти на понятията и ги обогатява от Athena, когато е достъпна.scripts/backfill-relational.tsизгражда наново нормализираните редове и типизираните колони със събития от съществуващите случаи.scripts/data-quality-report.tsотчита релационните отклонения, понятията без съответствие или само от източника, невалидните диапазони, невъзможните времеви отметки и липсващите ключови изследователски полета.scripts/wipe-dev-clinical-data.tsможе да изтрие клиничните данни в средата за разработка, като запази профилите, заведенията, речниците, библиотеките с опции и конфигурацията.
Достъп за научна работа
Самостоятелният браузър на базата данни на LOSPOR предоставя управлявани заявки по кохорти, сравнения, преглед на псевдонимизирани случаи, преглед на качеството на данните, сравнителен анализ, запазени кохорти и пълни одитирани износи. Той използва проекции само за четене през /v1/research/* и никога не се свързва пряко с оперативните таблици. Вижте Браузър за научна работа.
Цитиране на LOSPOR
Ако използвате данни от LOSPOR в публикация, цитирайте:
LOSPOR - Large Open Source Perioperative Register. Достъпен на https://lospor.org. Лицензиран под AGPL-3.0.