FHIR R4 ресурс для predicted outcomes субъекта с вероятностями и rationale. Spec verbatim:

“This resource captures predicted outcomes for a patient or population on the basis of source information.”

FHIR R4 RiskAssessment, Scope and Usage

Spec классифицирует RA как “specialized type of observation” — структурированный output про future likelihoods (cardiovascular risk score на 10 лет, recurrence probability, infection-rate prediction). Это не assessment текущего состояния пациента — для этого ClinicalImpression.

Status в BloodGPT: не используется, entity-страница как research-reference. Рассматривался как кандидат для hosting’а V2.5 rich-output (BG-1323) — отвергнут из-за фундаментального semantic mismatch: V2.5 содержит assessment текущего состояния (clinicalInterpretation, found/missing context, reasoning), а не predicted outcomes. См. fhir-clinical-impression и текущую сессию обсуждения. Может стать актуальным если когда-нибудь добавим predictive items (ASCVD 10-year score, recurrence probability и т.п.) — каждый predictive score станет одной RA, на которую ссылается parent CI через prognosisReference[].

Ключевые поля

RiskAssessment
├── status, subject, occurrence, performer
├── basedOn, parent                  ← chain links
├── condition                        ← Reference(Condition) — diagnostic context
├── method                           ← CodeableConcept — how the risk was assessed
├── code                             ← CodeableConcept — type of risk (e.g. cardiovascular)
├── basis[]                          ← Reference(Any) — source data (type-permissive!)
├── prediction[]                     (0..*)
│   ├── outcome                      ← CodeableConcept — what outcome (e.g. "myocardial infarction")
│   ├── probabilityDecimal | probabilityRange  ← numeric likelihood (≤ 100)
│   ├── qualitativeRisk              ← CodeableConcept — low | moderate | high | extreme
│   ├── relativeRisk                 ← decimal — subject risk ÷ population risk
│   ├── whenPeriod | whenRange       ← timeframe of prediction
│   └── rationale                    ← string — explanation
├── mitigation                       ← string — actions to reduce risk
└── note[]

basis[]Reference(Any) (закрытого type-list нет). Spec прямо: “Because so many resources can potentially be used, no limit is placed on what resources can be sent in RiskAssessment.basis.”

qualitativeRisk — стандартный value set risk-probability: negligible | low | moderate | high | certain. Внимание: это про likelihood predicted outcome, не про urgency current state — поэтому наш triage enum (urgent_doctor / routine_doctor / monitor_patient / ok_in_context) в qualitativeRisk не маппится корректно. См. parameter-triage-codes.

Boundary с ClinicalImpression

Spec не даёт прямого compare-paragraph, но взаимосвязь зафиксирована структурно: CI → RA через prognosisReference[] (0..*). То есть RA — это complementary component для prognostic части assessment’а, не его замена.

Различие по смыслу:

ClinicalImpressionRiskAssessment
Про чтоclinical assessment текущего состояния (SOAP “A”)predicted future outcomes
Outputsummary, finding, problemprediction[] с probability/qualitativeRisk
Когдаclinician смотрит на пациента и формирует opinionформальная prediction по data/scoring/model
Reference у V2.5хост для clinicalInterpretation/reasoning/found-missing contextвозможный parallel resource если добавим predictive items

Spec явно (на странице CI): “This resource is called ‘ClinicalImpression’ rather than ‘ClinicalAssessment’ to avoid confusion with the recording of assessment tools such as Apgar score.” Apgar и подобные scoring tools идут в Observation, не в CI и не в RA. RA — для probabilistic predictions с outcome+probability shape, не для всех scoring tools.

Когда станет актуальным для нас

Триггеры на создание RA-инстанса в наших pipelines:

  • Добавление validated risk-score (ASCVD 10-year, FRAX 10-year fracture risk, MELD, HEART, Wells DVT) — каждый score становится одной RA с code=score-type, prediction[].outcome=event, prediction[].probabilityDecimal=0.07, prediction[].whenPeriod=10y.
  • Predictive lab interpretation: “учитывая trend ferritin последних 6 анализов и текущий Hb, вероятность развития железодефицитной анемии в ближайшие 3 месяца — 60%“. Это prediction, не текущий assessment — RA.
  • Recurrence probability после treatment.

Пока в pipeline’е таких items нет, RA не создаём.

Gotchas

  • basis не принимает MessageHeader / Bundle / OperationOutcome — несмотря на Reference(Any), spec предупреждает что некоторые типы будут nonsensical.
  • prediction[].probability ≤ 100 — constraint валидаторов на decimal/Range.
  • qualitativeRisk value set bound = extensible — можно расширить, но стандарт risk-probability рекомендован.
  • R5 vs R4 — структура prediction[] стабильна, но basis semantics уточнены в R5.

Связано

  • fhir-clinical-impression — assessment-родитель, ссылается на RA через prognosisReference[]
  • fhir-observation — для scoring tools без probability shape (Apgar, range-detection, простые scores)
  • parameter-triage-codes — наш triage enum, не маппится на qualitativeRisk (severity vs likelihood mismatch)
  • fhir-modeling-ai-content — общие принципы маппинга AI-output

Источники

Источники: 1 2.

Сноски

  1. FHIR R4 RiskAssessment, accessed 2026-05-17, https://hl7.org/fhir/R4/riskassessment.html.

  2. Value set risk-probability, accessed 2026-05-17, http://hl7.org/fhir/R4/valueset-risk-probability.html.