API реестра — для разработчиков — Dentum
ODIN · API

API реестра — для разработчиков

Машинный вход в открытый реестр ODIN: REST + DICOMweb (STOW-RS / QIDO-RS / WADO-RS). На пилоте токены выдаются вручную.

Аутентификация

REST: заголовок X-Registry-Token в каждом запросе (пилотный токен).

DICOMweb: HTTP Basic (пилотные логин/пароль). Наружу открыт только /dicom-web/ — admin-API Orthanc не экспонирован.

Получить токен — через заявку в пилот →

REST-endpoint’ы

POST/api/registry/casebaseline-кейс caseFormV0 → { study_uuid }
POST/api/registry/uploadresumable upload (tus-core: create → HEAD offset → PATCH append)
POST/api/registry/predict{ study_uuid } → CDSS percentile vs cohort (research prototype)
POST/api/registry/outcome{ study_uuid, outcome, marginal_bone_loss_mm?, outcome_date? }
GET/api/registry/chainhash-chain audit (data passport v0)
GET/api/registry/healthliveness

DICOMweb (для PACS)

POST/dicom-web/studiesSTOW-RS: multipart/related; type="application/dicom"
GET/dicom-web/studies?PatientID={study_uuid}QIDO-RS: поиск по study_uuid
GET/dicom-web/studies/{study}/metadataWADO-RS metadata (application/dicom+json)

Контракт: PatientID = study_uuid кейса (создаётся в реестре заранее). 2D-рентген: IO / DX / PX / CR. CT/CBCT принимаются и дефейсятся ДО записи на диск: мягкие ткани (<150 HU) заменяются воздухом — изоповерхность лица не существует, кость/зубы/импланты сохраняются (мягкотканная диагностика теряется — это цена, честно). Требования: несжатый transfer syntax, MONOCHROME2, калиброванные HU; иначе отказ.

curl -u "pilot-user:pilot-pass" \
  -X POST https://dentum.uz/dicom-web/studies \
  -H 'Content-Type: multipart/related; type="application/dicom"; boundary=B' \
  -H 'Accept: application/dicom+json' \
  --data-binary @stow-body.bin

Исследовательский доступ (T1)

Через OAuth2 + DUA-клик: обезличенный экспорт FHIR R4 и OMOP CDM v5.4. T3-федерация (FedAvg с подписанными апдейтами) — при ≥2 клиниках.

POST/api/registry/oauth/tokenOAuth2 client-credentials → Bearer (после DUA-accept)
POST/api/registry/dua/acceptclick-through DUA для скоупа T1
GET/api/registry/fhir/{Resource}FHIR R4 ndjson/Bundle (Patient/Observation/…) — Bearer T1
GET/api/registry/fhir/metadataFHIR CapabilityStatement (публично)
GET/api/registry/omop/{table}OMOP CDM v5.4 ndjson (person/condition_occurrence/…) — Bearer T1

Де-идентификация (ДО первой записи на диск)

  • Подмножество PS3.15 Basic Profile: PII-теги удаляются (имена, адреса, учреждение, серийники оборудования, комментарии и др.), AccessionNumber/StudyID бланкуются
  • Все private-теги, overlay- (60xx) и curve- (50xx) группы удаляются
  • Все UID детерминированно ремапятся в пространство 2.25 (SHA-256 + соль реестра) — связность серий сохраняется, обратной связи с PACS клиники нет
  • StudyDate/StudyTime сохраняются (без них исходы 6/12 мес бессмысленны)
  • Очистки пикселей нет: снимки с BurnedInAnnotation=YES отклоняются
  • CBCT/CT: дефейсинг мягкотканной абляцией (<150 HU → воздух) до записи на диск; форма костей остаётся — остаточный риск декларируется в DUA уровня T2

OpenAPI-заготовка (YAML) → ·T0 stats → ·Data dictionary → ·Open tier T0 →

Записаться

AI-ассистент в Telegram подберёт клинику и запишет вас за минуту — 24/7.

Продолжить в Telegram

Мгновенно · AI · 24/7

или
Нет Telegram?

Свяжемся в Telegram или по телефону в рабочие часы (9:00–19:00).