Observation Resource for Genomic Sequencing Results


I am currently working on developing a service that converts genomic lab test results
into fhir resources and storing them in fhir repository.

I am still new to this healthcare related documentation work flow and so I don’t have much knowledge or understanding of how MEDICAL INFORMATION is stored in FHIR concept.

I also can’t say I have a clear grasp on how to populate or build Observation resource types but after long and confusing days of searching I think I got some idea on how they might be?

I would like to ask for help in confirming my understanding and what I have built as an Observation resource (for genomics) is correct (in terms of containing necessary information in determining genomic test result).

{“resourceType”:“Observation”,“id”:“c16453be-d0a7…”,“meta”:{“versionId”:“1”,“lastUpdated”:“2021-06-23T02:47:39.989+00:00”},“identifier”:[{“system”:“PROGRAM SYSTEM ID”,“value”:“SOME VALUE”}],“status”:“final”,“category”:[{“coding”:[{“system”:“http://terminology.hl7.org/CodeSystem/observation-category",“code”:“laboratory”,“display”:“Laboratory”}]}],“code”:{“coding”:[{“system”:“https://loinc.org/84413-4/”,“code”:“84413-4”,“display”:"Genotype Display Name”}]},“subject”:{“reference”:“Patient/73f9a30…”},“issued”:“2021-06-22T16:46:45+00:00”,“valueString”:“TT”,“method”:{“coding”:[{“system”:“https://loinc.org/81304-8/",“code”:“LA26398-0”,“display”:“Sequencing”}]},“specimen”:{“reference”:"Specimen/2d2…”},“component”:[{“code”:{“coding”:[{“system”:“https://loinc.org”,“code”:“81255-2”,“display”:“dbSNP [ID]”}]},“valueCodeableConcept”:{“coding”:[{“system”:“http://www.ncbi.nlm.nih.gov/SNP",“code”:"rs10411210”}]}}]}

Short explanation regarding the Observation resource above:

  1. I have decided to categorize the observation resource as GENOTYPE to show the result of gene sequencing lab test result as genotype.

  2. I have also decided to reference the RS number that is usually used in genomic publications (at least in my country) which is from NCBI with RS numbers (Thus, I added LOINC codes to represent that it is of NCBI)

  3. I also categorized this observation process as laboratory procedure


  1. Is it valid to store above structure as is
  2. Is it okay to reference NORMAL ALLELE in component section and reference this Observation resource in Diagnostic Report Resource as RESULT element?



Have you taken a look at the Genomic Reporting IG? (http://build.fhir.org/ig/HL7/genomics-reporting)

Thank you for your response @lloyd !

Yes, I haev read the Genomic Reporting IG from HL7 site.
Like the link, for structure, you would have genomic findings (Haplotypes, Genotypes, Variant separated observations each) → observation implications → observation overall interpretation → diagnostic report.

The reason for my question is because of the yet unclear understanding of the “Observation.component” element when storing genomic data.
From my understanding, component element is used to store any related data (as a codeableconcept to have code systme, code, and display value) to further clarify the Resource.

What I wanted to clarify is if the above understanding is correct, then can I add all kinds of related data into the component element (I doubt this is the correct way since you would want a resource to be as clear as possible and holding ONE type of data - as in context should point to one kind of outcome)


The intention of ‘component’ is to allow conveying qualifying information for a complex structure (e.g. the organism for which sensitivity is being evaluated) or multiple parts of a multi-part Observation where the parts aren’t usefully separable (e.g. the pieces of an APGAR)

It’s not used for something that is determined at a different time, nor is it used for information that can be evaluated separately (e.g. white blood cell count vs. hemoglobin in a blood panel).

If you’re modeling anything in the genomics space that isn’t covered by the Genomics Reporting IG, I’d strongly encourage raising the issue on the Genomics group’s Zulip stream - https://chat.fhir.org/#narrow/stream/179197-genomics

1 Like

Thank you @lloyd for the awesome help!

So all resources, not limited to just Observation, should be logically correct.
As in all relating data that is stored in the resource need to be within the scope of the resource and should only hold single context.


I think that’s a true statement, but it’s also a pretty fuzzy one. My best advice is that if you’re ever unsure about whether something should be captured as an Observation.component or as a separate Observation instance is to raise the question with the community.

1 Like

Will do!

Thanks for clearing things out!