FHIR R4 ресурс для predicted outcomes субъекта с вероятностями и rationale. Spec verbatim:
“This resource captures predicted outcomes for a patient or population on the basis of source information.”
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’а, не его замена.
Различие по смыслу:
| ClinicalImpression | RiskAssessment | |
|---|---|---|
| Про что | clinical assessment текущего состояния (SOAP “A”) | predicted future outcomes |
| Output | summary, finding, problem | prediction[] с 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.qualitativeRiskvalue set bound =extensible— можно расширить, но стандартrisk-probabilityрекомендован.- R5 vs R4 — структура
prediction[]стабильна, ноbasissemantics уточнены в 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
Источники
Сноски
-
FHIR R4 RiskAssessment, accessed 2026-05-17, https://hl7.org/fhir/R4/riskassessment.html. ↩
-
Value set
risk-probability, accessed 2026-05-17, http://hl7.org/fhir/R4/valueset-risk-probability.html. ↩