Stream: implementers
Topic: Edmonton symptom assessment system
Aleksandra Pavlyshina (Oct 04 2016 at 13:03):
This is an attempt to represent the ESAS - Edmonton symptom assessment system (assessment scale) in FHIR in order to receive experts reviews and comments.
The FHIR specification says that assessment tools (or scales) are represented as Observations.
ESAS tool is designed to assist in the assessment of: pain, tiredness, nausea, depression, anxiety, drowsiness, appetite, well being, and shortness of breath. The severity at the time of assessment of each symptom is rated from 0 to 10 on a numerical scale; with 0 meaning that the symptom is absent and 10 that it is the worst possible severity. (Information about ESAS taken from here.)
Assumptions that were made:
Observation.code
was taken from SNOMED CT because LOINC does not have code for ESAS.Observation.value[x]
is absent because ESAS does not have total score.- ESAS symptoms are represented as Observation.components. Other possibility would be to represent them as separate Observations and reference them as
Observation.related.type
= has-member. - Reference range is specified only once in parent Observation, not for each component, because it is the same for each symptom.
- Observation.component.codes were mostly taken from SNOMED CT rather than LOINC, because LOINC codes are too specific (e.g. 71757-9 Depression score [M3] is for M3 survey; there are no LOINC codes for Tiredness, Drowsiness) and have normative answer lists.
- Reference range was assumed as 0 {score} = Normal, 1-10 {score} = Abnormal.
- For the Appetite symptom, the
Loss of appetite (finding)
code 79890006 was assumed . Probably it's not correct and should be33911006 | Food appetite, function (observable entity)
or405039009 | Appetite status (observable entity)
. - For well being, the
General body state finding (finding)
code 82832008 was assumed.
Mapping:
Observation | ||
---|---|---|
status |
final | |
category |
survey | (http://hl7.org/fhir/observation-category) |
code |
Edmonton symptom assessment system (assessment scale) | (http://snomed.info/sct, 451021004) |
referenceRange(1) | ||
low |
0 {score} | |
high |
0 {score} | |
meaning |
Normal (qualifier value) (http://snomed.info/sct, 17621005) | |
referenceRange(2) | ||
low |
1 {score} | |
high |
10 {score} | |
meaning |
Abnormal (qualifier value) (http://snomed.info/sct, 263654008) | |
text |
The severity at the time of assessment of each symptom is rated from 0 to 10 on a numerical scale; with 0 meaning that the symptom is absent and 10 that it is the worst possible severity. | |
component(1) | ||
code.coding |
Pain severity - 0-10 verbal numeric rating [Score] - Reported (http://loinc.org, 72514-3) | |
code.text |
Patient perception of pain | |
valueQuantity |
5 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) | |
component(2) | ||
code.coding |
Anxiety (finding) (http://snomed.info/sct, 48694002) | |
code.text |
Patient perception of anxiety | |
valueQuantity |
8 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) | |
component(3) | ||
code.coding |
Dyspnea (finding) (http://snomed.info/sct, 267036007) | |
code.text |
Patient perception of shortness of breath | |
valueQuantity |
0 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Normal (http://hl7.org/fhir/v2/0078, N) | |
component(4) | ||
code.coding |
Nausea (finding) (http://snomed.info/sct, 422587007) | |
code.text |
Patient perception of nausea | |
dataAbsentReason | Unknown (http://hl7.org/fhir/data-absent-reason, unknown) | |
component(5) | ||
code.coding |
Loss of appetite (finding) (http://snomed.info/sct, 79890006) | |
code.text |
Patient perception of appetite | |
valueQuantity |
3 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) | |
component(6) | ||
code.coding |
Depressive disorder (disorder) (http://snomed.info/sct, 35489007) | |
code.text |
Patient perception of depression | |
valueQuantity |
9 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) | |
component(7) | ||
code.coding |
Tiredness symptom (finding) (http://snomed.info/sct, 267031002) | |
code.text |
Patient perception of tiredness | |
valueQuantity |
7 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) | |
component(8) | ||
code.coding |
Drowsy (finding) (http://snomed.info/sct, 271782001) | |
code.text |
Patient perception of drowsiness | |
valueQuantity |
8 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) | |
component(9) | ||
code.coding |
General body state finding (finding) (http://snomed.info/sct, 82832008) | |
code.text |
Patient perception of well being | |
valueQuantity |
8 {score} (http://unitsofmeasure.org, {score}) | |
interpretation |
Abnormal (http://hl7.org/fhir/v2/0078, A) |
Example Observation resource json code.
Lloyd McKenzie (Oct 04 2016 at 13:47):
I think that looks right. You might initially want to capture it as Questionnaire, but for searching/comparison/etc. Observation is correct. Only question for me is whether the components could/should be treated as stand-alone related resources. Would it ever make sense to look at/compare them separately from each other?
Aleksandra Pavlyshina (Oct 06 2016 at 16:58):
Thank you, @Lloyd McKenzie. At the moment, I'm trying to define a Questionnaire for ESAS. And I'm wondering why the Questionnaire resource does not have an answer of type CodableConcept? So that we could map the answer and keep the original answer at the same time.
E.g. our CMO wants to get both qualitative and score answers for symptoms in the application. The answers on the form would be None, Mild, Moderate, Severe, Unbearable for each symptom from the ESAS. They can be mapped to codes:
- 260413007 | None (qualifier value)
- 162468002 | Symptom mild (finding)
- 162469005 | Symptom moderate (finding)
- 162470006 | Symptom severe (finding)
- 162471005 | Symptom very severe (finding).
Should I choose option.valueCoding and lose form answers (None, Mild, Moderate, Severe, Unbearable) or option.valueString (and lose the possible mapping) here?
Lloyd McKenzie (Oct 07 2016 at 04:11):
@Aleksandra Pavlyshina In a QuestionnaireResponse, it's pretty unusual to capture more than one coding for a given response. The QuestionnaireResponse represents what the user actually selected. If you want to identify a mapping between the value set used in a Questionnaire and a more "standard" code, you could use a ConceptMap. But what the user chooses is "moderate", not "162459005" or "Symptom moderate (finding), so that's what we reflect in the QuestionnaireResponse - and is what shows up in the drop down for the Question.
Last updated: Apr 12 2022 at 19:14 UTC