Hi there,
I have a use case where I need to transfer Oncology data (more precisely tumor data) to FHIR structures. Since there are some deviations from the mCode standard, I have chosen to create my own profiles.
In my case, the user interface has a form where various fields about the tumor are entered. For example, some of them: “TNM Classification type”, “Tumor TNM – value”, “Histological grade of the tumor”, “Date of detection of distant metastases”, “Tumor stage FIGO” and many others - a total of 15 different fields.
I have found that the most appropriate FHIR resource to store these data fields would be Observation. And I also have found the fact that in FHIR, every ‘statement’ that can be made and used independently is put into its own separate instance.
In this case, I would end up with 15 different Observation documents in JSON format, which incurs some data overhead. Is there any way or approach to reduce the number of instances to be created? If I understand correctly, it is not possible to use slice and assemble these 15 elements within one observation.
Multiple Observations is the norm - because any one of those statements might need to be sent and retrieved independently in the future. This does incur some overhead, but it’s balanced by the improved flexibility in use of the data.
How about define a profile specifically for Tumor, and do slicing in “component” element to put various fields about the tumor inside component’s element. Such as this example of Observation profile for BloodPressures that will record the systolic & diastolic measurements. ProfilingAcademyTasks | BloodPresssureLOINC - SIMPLIFIER.NET
Observation.component is intended for information that isn’t stand-alone from each other, it’s not for arbitrary grouping. Most of the examples provided sounded like independent assertions rather than qualifiers or inseparable parts, so using component wouldn’t be appropriate.
Thanks @lloyd for the clear explanation~
Then I want to ask and makesure, I want to create FHIR structuredefinition for storing a skin lesion observation information. The use case is, every time a doctor monitors the development of a lesion regularly, the doctor needs to record these data. There will have user interface of a form where various fields about the lesion are entered. Such as “lesion primary morphology type”, “lesion secondary change type”, “lesion arrangement”, “lesion border”, “lesion color”, “distribution”, “shape”, size and many others - a total of 14 different fields. This information can be used to monitor changes in the condition of the lesion.
Question: are these 14 measurement fields recorded in 14 different observations or recorded in 1 observation of skin lesion with 14 component items?
With something like those, it’s a grey area. It somewhat comes down to how often anyone would ever want to query on or retrieve the values independently. Given that there’s an implementation guide that says “use component”, it would certainly be appropriate to use component.