I suggest that the maximum rate is not an item that you would store per
se, but rather the result of a query on observations stored with an
(exercise) procedure.
The table of recommended maximum heart rates during exercise according
to age would be in an instruction.
When building a stress exam (stress test or stress echocardiography), it
is needed to evaluate a "theoretical max heart rate" value (say 220 -
age in years), in order to stop the stress in time.
The percentage of the actually reached heart rate vs theoretical heart
rate is also recorded.
It would seem strange to me not to record all this information.
My suggestion is not to talk about a ‘maximum’ heart rate, but about the heart rate at a certain level of exercise, since like you said: a maximum heart rate is theoretical.
You can look at the bloodpressure archetype to see how can be dealt with values under different physiological conditions.
I suggest that the maximum rate is not an item that you would store per
se, but rather the result of a query on observations stored with an
(exercise) procedure.
I like the idea of storing the data somehow within some structure
indicating the context of an exercise procedure. I
have found in snomed the following
Exercise tolerance test (procedure)
Progressive exercise test (procedure)
Progressive exercise test on bicycle (procedure)
Progressive exercise test on treadmill (procedure)
They seem to me to be the right type of codes for the testing used.
I now am having problems putting the archetypes together, using
one of these codes and the set of heart rate data returned from the
heart monitor.
The
openEHR-EHR-ACTION.procedure.v1draft (ACTION)
can have its child
openEHR-EHR-ITEM_TREE.procedure.v1draft
coded to one of the snomed codes. But this then has no spots for
heart rate OBSERVATION data associated?
I could put the ACTION and the OBSERVATION into
some sort of coded document container (SECTION), but
this doesn't seem semantically strong enough to me to show that the
observation was a result of the procedure?
By Stef's suggestion, I could be looking at putting a code for
the exercise level in the 'state' for the heart rate OBSERVATION
archetype (blood pressure has coded exertion and exercise
level here - I'm not sure the codes in blood pressure express
exactly what I want but I could imagine have one of
'during exhaustive exercise' or something). Is this a good approach?
How would I go about getting the heart rate archetype changed
(assuming this is the correct way to go)? Do we have any governance
procedures around the archetypes yet?
We now have a reason to provide a cluster for exercise related state - to share this between the heart rate and bp and possibly other archetypes. So I would suggest that we think about the state as a cluster. It would seem that there is the idea of a category of exercise - maximal or some such. We need to hear from people who are experts in this area (Omer may have some answers).
So I would suggest that the investigation is a stress test - it will be a composition probably as a report. I do not think it will be recorded as a procedure in the EHR - but it can be. I would see recording the action (from a request) that the order was completed as the main form.
It will contain measurements of BP and Heart rate. Each will have state data on exercise level. This should be a cluster archetype which is about the level of exercise at a point in time.
So my suggestion is that we go for a cluster on exercise level for use in State on a few observations. Who has the data that will need to be entered.
% of Maximal for age is like a percentile chart in weight or height (normal). At the moment the normal range can be added to the data point. I am not sure that we have the idea of percentile as part of this - the closest thing is the normal_status attribute which provides a means of stating whether the level is very high or low as for HL7 v2. We could extend this to include the idea of percentiles based on normal range (eg 25 if 25% of people have a level at or below this level). The idea of maximal heart rate for age is a reference range and can be added to the peak heart rate - with a percentage as part of the normal_status.
The alternative is adding data points for these measurements - which is not a great problem but would mean adding to the weight and height archetypes.
I agree with Sam.
States. Protocols are Cluster archetypes that can be/will be re-used in ENTRY Archetypes..
Are there more?
Demographics/Localisations, …
Gerard
– –
Gerard Freriks, MD
Huigsloterdijk 378
2158 LR Buitenkaag
The Netherlands
I would think that this theoretical heart rate should indeed be stored. It
is similar to the final score for Apgar - something that is actually
calculated in the application but may be needed to be recorded to provide
state data for context and accurate interpretation.
It is quite different to the actual maximal heart rate that can also be
recorded by using the event model in an OBSERVATION and the mathematical
functions incorporated in the interval functionality.
It is quite different to the actual maximal heart rate that can also be
recorded by using the event model in an OBSERVATION and the mathematical
functions incorporated in the interval functionality.
Hi Heather, thanks for the input. Ignoring the theoretical heart rate
estimates for the moment, how would you use the event model to
indicate that the heart rate is not just the maximum of this particular
observation, but the maximal under an exertion test (i.e. the maximum
heart rate recorded whilst _walking_ on a treadmill is still a maximum,
but is semantically different than this, which indicates a maximum
heart rate at maximum possible exertion).
Would the trick be to indicate somehow in the 'protocol' the specific
snomed code for the exertion test being undertaken? Is there any standardised
structures for protocol sections in any current archetypes? Is this something
that would be better specified in a template - the ExertionTestHeartRate
template which limits the protocol to a specific set of snomed coded
procedures?
I think Sam was suggesting archetyping the 'state' (using a Exercise cluster),
but we would need some continuous measure of exertion (which I'm not sure
we have - it becomes a bit recursive because people use heart rate for measuring
exertion!) - or else I guess we could just have two 'state' events - one
at the start indicating rest and one at the end indicating 'maximum
exertion' (not
a numeric value, just codes).
You don’t like sticking to the easy stuff, do you! I have more questions than answers, but it may help to get us to the final answer…
My first thought is to find out more about the ‘person state with event series’ in the archetype editor - I haven’t used it for any modeling to date.
Sam/Thomas/others, can you clarify if this is correct/feasible - as I understand it the RM allows for the recording of independent state events which might be useful for this scenario.
I have a very limited understanding of an exercise test itself (despite puffing and blowing through one myself - but I wasn’t really focusing on more that staying upright at the time). My assumption is that Work is a known or calculable (ie treadmill/exercise bikes can calculate/approximate the KJ being burned), and the heart rate can be measured at corresponding points in time to the work measurement.
Are there particular ‘events’ or timings that are measured during the test? - eg initial, one minute, two minute etc or resting, X KJ, Y KJ, Z KJ etc? Any informed or intelligent input here will be appreciated!!!
And re your other points:
· I don’t think SCT per se will make the difference here - it still needs to be bound to an appropriately placed archetype element of the correct data type.
· Protocols can be modeled as anywhere else in the Editor - add in cluster headings, slots and cluster archetypes if need be. To date they have generally been a flat list, but there is increasing need for a reusable clusters, eg for exercise levels, that can be used in heart rate, BP etc.
But the Maximal Heart Rate as a figure not to exceed under stress, expressed in the State cluster, is part of a plan, a protocol, that stipulates that in a test, that has bee ordered, that under certain conditions the test must be halted.
GF
– –
Gerard Freriks, MD
Huigsloterdijk 378
2158 LR Buitenkaag
The Netherlands
It is quite different to the actual maximal heart rate that can also be
recorded by using the event model in an OBSERVATION and the mathematical
functions incorporated in the interval functionality.
Hi Heather, thanks for the input. Ignoring the theoretical heart rate
estimates for the moment, how would you use the event model to
indicate that the heart rate is not just the maximum of this particular
observation, but the maximal under an exertion test (i.e. the maximum
heart rate recorded whilst _walking_ on a treadmill is still a maximum,
but is semantically different than this, which indicates a maximum
heart rate at maximum possible exertion).
for this you use either Event.state or Observation.state. The former
allows you to state what the state of the patient is for each time
point, i.e. the patien state samples are exactly the same time points
and durations as the data (HR) samples. With the latter, you can have an
independent time series representing the treadmill exertion, e.g. as
speed or kcal over time - this lets you draw two graphs, but simple
mathematical interpolation is required to express the value pair of
specific time points which don't happen to have samples in the series.
Would the trick be to indicate somehow in the 'protocol' the specific
snomed code for the exertion test being undertaken?
you would do this just to state the fact that a treadmill test of some
kind is being done
Is there any standardised
structures for protocol sections in any current archetypes? Is this something
that would be better specified in a template - the ExertionTestHeartRate
template which limits the protocol to a specific set of snomed coded
procedures?
I would think this belongs in a sports medicine archetype
I think Sam was suggesting archetyping the 'state' (using a Exercise cluster),
but we would need some continuous measure of exertion (which I'm not sure
we have - it becomes a bit recursive because people use heart rate for measuring
exertion!) - or else I guess we could just have two 'state' events - one
at the start indicating rest and one at the end indicating 'maximum
exertion' (not
a numeric value, just codes).
well it depends on whether you have some independent variable
representing exertion such as treadmill speed (and maybe tilt), or maybe
the machine calculates theoretical kcal rate to keep up with it, as gym
machines seem to do. If you do, then you do one of the above 'state'
approaches + 'protocol'; if you are simply stating the fact that a
treadmill is being used, but not supplying any data then you just use
the 'protocol' attrnbte on its own.
If you have a look at both the Data Structures and EHR Information
Models, you will see diagrams of the kinds of structures I mention above.
As Thomas says - if you want a constant data feed of state data then there is a construct for this in the observation class. It will involve generating a specialised archetype.
Sam