Observation - symptoms and triggers

Currently we have 2 data points that needs to be tracked under Observation, see below for examples

symptoms - cough,shortnessOfBreath, difficultyBreathing,cough,activityLimitations,chestTightness

triggers - exercise, tobacco,airPollution,smellsOrScents

We are planning to capture these as follows -
components.code.text - Symptom(s)
valueString - cough,shortnessOfBreath,difficultyBreathing,cough,activityLimitations,chestTightness

components.code.text - Trigger(s)
valueString: exercise, tobacco,airPollution,smellsOrScents

Can you please provide guidance which elements under Observation can house this information? I would really appreciate if you could get the response at the earliest.

Thanks in advance!

Your proposed solution makes it impossible for other systems to understand the data without prior knowledge of how to parse the valueString property. Aditionally, other systems will not know which symptoms and triggers are valid for your application.

For our app, we implemented the symptoms as individual observations, expressing them as ratios on a scale of 1 to 100 per symptom.

Here is a small example. I don’t claim that it is perfect so any feedback is welcome.

	"resourceType": "Observation",
	"status": "final",
	"code": {
		"coding": [
				"system": "http://snomed.info/sct",
				"code": "49727002",
				"display": "Cough"
	"subject": {
		"reference": "Patient/<PatientID>",
		"type": "Patient"
	"effectivePeriod": {
		"start": "2014-09-27T18:30:49+02:00",
		"end": "2014-09-28T18:30:49+02:00"
	"valueRatio": {
		"numerator": {
			"value": 0
		"denominator": {
			"value": 100

I haven’t implemented trigger factors yet, but it should be straight forward. The most challenging part is probably finding the most suitable code in SNOMED-CT.

The implementation seems correct from your perspective, but how would you link this observation to the show it is connected to the original observation.

They go hand in hand. For example - asthma attack got triggered due to exercise and symptom is difficultyBreathing.

Please review and provide a response

You can link Observations together using the ‘observation-sequelTo’ extension - so you can say what came first.

I have never used extensions before, so just to get clarity will this be considered as a new element in the resource?

There’s an example here: http://build.fhir.org/observation-example-genetics-5.json.html

This example is very helpful!

thank you