FHIR Chat · Edmonton symptom assessment system · implementers

Stream: implementers

Topic: Edmonton symptom assessment system


view this post on Zulip 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 be 33911006 | Food appetite, function (observable entity) or 405039009 | 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.

view this post on Zulip 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?

view this post on Zulip 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?

view this post on Zulip 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