VitalSignEquipment vs VitalSignsReadings example

Zuzana Bocanski 40 Reputation points
2026-07-01T12:17:27.8233333+00:00

Hi guys,

Is the example on VitalSignsEquipment vs readings accurate? How can it be that if there are readings for M001 on OxygenSaturation if this is a HeartMonitor and also on ReadingID = 3 there is a HeartRate reading even though the EquipmentID is M002 for an OxygenMonitor. Is the example of the streaming measurements correct? If there was a patient ID and then column with reading equipmentID and reading value it would make more sense, or some other structure. Maybe I just didn't get it :D
User's image

This question is related to the following Learning Module

Azure Event Hubs
0 comments No comments

Answer accepted by question author
Jerald Felix 18,760 Reputation points Volunteer Moderator
2026-07-02T00:35:23.01+00:00

Hello Zuzana Bocanski,

Greetings! Thanks for raising this question in the Q&A forum

I pulled up the actual training unit you referenced and compared it against the sample data tables shown in the "Add time series data bindings" section, and you have spotted a real inconsistency in the example, not a misunderstanding on your part.

Here is what the unit shows:

VitalSignEquipment.csv (static, lakehouse)
EquipmentId | PatientId | EquipmentType      | MonitoringStartDate
M001        | 5         | HeartRateMonitor   | 2024-01-15
M002        | 8         | OxygenMonitor      | 2024-01-16

VitalSignsReadings.csv (streaming, eventhouse)
ReadingId | EquipmentId | Timestamp           | HeartRate | OxygenSaturation
1         | M001        | 2024-01-15 08:00:01 | 72        | 98
2         | M001        | 2024-01-15 08:00:06 | 74        | 97
3         | M002        | 2024-01-15 08:00:02 | 68        | 99

You are correct that M001 is typed as a HeartRateMonitor but its readings carry an OxygenSaturation value, and M002 is typed as an OxygenMonitor but its reading carries a HeartRate value. If EquipmentType were meant to constrain which measurement columns are valid, this data would not be internally consistent.

The reason this slipped through is that the unit's actual teaching goal here is narrower than it first appears. The lesson is not trying to model realistic clinical equipment behavior, it is demonstrating the mechanics of a time series binding, specifically that the VitalSignsReadings table has one static linking column (EquipmentId) and multiple time series measurement columns (HeartRate, OxygenSaturation), and that the binding UI lets you assign each column to the correct role. The sample rows were populated to show that both measurement columns can carry values, without the author cross checking that each row's values matched the equipment's declared type. That is a content accuracy gap in the example rather than a flaw in how Fabric IQ bindings actually work.

Your instinct about a better structure is also right, and it is worth stating plainly. A schema like the one you proposed, where each reading row carries PatientId or EquipmentId plus a metric name and a metric value, commonly called an entity attribute value or narrow format, avoids this exact problem because a HeartRateMonitor would simply never emit a row with metric name OxygenSaturation in the first place. The wide format used in the example, with a fixed column per possible measurement type, only makes sense once you assume every piece of equipment can report every measurement type, which contradicts the EquipmentType field the unit also introduces.

To get this corrected in the official content, please use the Suggest a fix link at the bottom of the training unit page, since that routes directly to the content authors on the learn-pr GitHub repository.

Unit page: https://learn.microsoft.com/en-us/training/modules/create-ontology-with-fabric-iq/5-connect-ontology-to-data
Feedback link: bottom of page, "Suggest a fix?"

You can also reference the source YAML directly if you want to open an issue yourself:

https://github.com/MicrosoftDocs/learn-pr/blob/live/learn-pr/wwl-data-ai/create-ontology-with-fabric-iq/5-connect-ontology-to-data.yml

If this answer helps you kindly accept the answer which will help others who have similar questions.

Best Regards,

Jerald Felix.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Oldest

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.