Stream: cda to fhir
Topic: Translating V3 CD to FHIR CodeableConcept
Alexander Henket (Sep 27 2021 at 09:45):
This is specifically about display(Name). There is a significant difference between V3 and FHIR:
V3 displayName
A name or title for the code, under which the sending system shows the code value to its users.
FHIR coding.display
The display is a human display for the text defined by the system - it is not intended for computation.
So in converting V3 to FHIR: do I have to check every displayName in V3 before I submit that as Coding.display? Or is it not so bad to just convert V3 displayName to Coding.display?
John Moehrke (Sep 27 2021 at 12:40):
what is the "significant difference" you perceive? I am not saying that I think they are identical, just wanting to think through your specific point.
Arianne van de Wetering (Sep 27 2021 at 14:53):
@John Moehrke: The V3 display is not a textual representation as defined by the codesystem, although it will have the same semantic meaning.
However, mapping such a display to FHIR coding.display will result in FHIR validators complaining the display does not adhere to the display as defined by the codesystem, which is in fact a correct complaint given the FHIR requirements.
Lloyd McKenzie (Sep 27 2021 at 14:59):
FHIR allows coding.display to be any designation defined by the code system or the value set
Arianne van de Wetering (Sep 27 2021 at 15:01):
Lloyd McKenzie said:
FHIR allows coding.display to be any designation defined by the code system or the value set
Still, whatever a V3 system sends ('A name or title for the code, under which the sending system shows the code value to its users.') may still differ from codesystem designations. For example because context is implicit in the system, but explicit in the code. Or because a particular user group names stuff slightly different from other user groups, even though the semantic meaning is the same.
Lloyd McKenzie (Sep 27 2021 at 15:34):
Right, but you can treat those as having come from a system-specific value set, which is still kosher from FHIR's perspective - and you can't validate against a value set when you don't know what it is. Which is why the terminology server only issues warnings when the Coding.display doesn't match the designations it has from that code system.
Lloyd McKenzie (Sep 27 2021 at 15:34):
In short - I don't see any conversion issue from v3 to FHIR here.
Pieter Edelman (Sep 28 2021 at 07:44):
Wait ... if there's a _required_ ValueSet binding, shouldn't the display
align with one of the designation in this ValueSet (or underlying CodeSystem)?
Lloyd McKenzie (Sep 28 2021 at 14:30):
Value set binding doesn't mean that the bound value set is the one used for data capture. You'll get a warning, but it's not an error.
Alexander Henket (Sep 28 2021 at 15:15):
If V3.displayName and Coding.display may essentially be regarded as equivalent, then apparently just about any string could be supplied in those places. Which makes me wonder: why is reporting differences with what the validator thinks it knows about the legal display values even a warning? Would "info" not suffice (if at all)?
Alexander Henket (Sep 28 2021 at 15:19):
The thing is: too many warnings of the type "well you really don't have to look at these" makes you ignore potentially useful warnings over time. A warning should really be worth looking at.
Lloyd McKenzie (Sep 28 2021 at 15:42):
It's a warning because it might be an error - requires human review to determine.
Lloyd McKenzie (Sep 28 2021 at 15:43):
An 'info' message is known to not be an error.
Alexander Henket (Sep 29 2021 at 05:39):
My point is: you cannot know if it is an error, because basically any string coming from the sender is acceptable as long as that is what the user saw/picked or what the system derived from what was recorded. The number of warnings against mismatches in our context is relatively high thus leading to reduced sight on what is really important. "Info" would be a way of saying "I found a mismatch" without implying it is wrong. Yes it might be, but after initial development phase where you connect the dots: unlikely.
In the validator/IG Publisher I can suppress certain warnings. I guess what you are saying is, is that the way to go is to filter warnings?
Grahame Grieve (Sep 29 2021 at 19:05):
catching up on this....
Grahame Grieve (Sep 29 2021 at 19:07):
I don't agree with @Lloyd McKenzie on this one. The definitions are different in an important regard. FHIR corresponds more closely to v2:
This is the corresponding text assigned by the coding system to the identifier.
Grahame Grieve (Sep 29 2021 at 19:10):
My answers to the original question:
do I have to check every displayName in V3 before I submit that as Coding.display?
You don't have to do anything. But you'll get warnings if you don't, and the CDA document isn't using the print names etc that are correct in FHIR. Or you can get a list of what the CDA document source is using, and publish that as a profile + value set, and bingo, it's fine.
Or is it not so bad to just convert V3 displayName to Coding.display?
That depends
Lloyd McKenzie (Sep 29 2021 at 20:15):
@Grahame Grieve - I'm pretty sure the validator allows designations defined by the value set to appear in Coding.display. Do we need to clarify the definition?
@Alexander Henket - A human might know what value set(s) were in play and thus be able to tell. Even if they don't, they can at least detect gross copy & paste errors (which is a common thing we pick up when validating examples in IGs).
Grahame Grieve (Sep 29 2021 at 20:21):
the definition should be improved to talk about value set defined displays, yes
Lloyd McKenzie (Sep 30 2021 at 00:42):
Alexander Henket (Oct 01 2021 at 06:07):
Interesting twist :-) So where FHIR says "system" it should actually read "the system or whatever we pre-agreed on in a value set". This means that were V3 systems today send whatever their software system was configured with (could be the original system, could be a GPs preferred term, we don't know) should be regarded as CodeableConcept.text, unless we include knowledge of acceptable terms in ValueSets as part of the IG. Finally we could just copy displayName into display and ignore the warnings after inspection of a couple of them just to be sure.
The thing here is that on scale it is not very feasible to start collecting what people have in their systems. It is also not very feasible to start saying that what they have in their systems should be replaced with 'official terms' upon sending it out in FHIR, if only because they originally send V3 where this is all fine.
Lloyd McKenzie (Oct 01 2021 at 17:04):
The key thing is that 'display' is expected to be system managed, never user-entered.
John Moehrke (Oct 01 2021 at 17:33):
CodeableConcept.text would be the text the user actually saw. Another advantage of CodeableConcept vs Coding.
Alexander Henket (Oct 04 2021 at 09:37):
That system is usually configurable by doctors who enter their preferred terms for existing codes thus overriding 'official' system terms. I cannot know on the outside in a mapping about every code coming by what the status of the V3 display is.
Last updated: Apr 12 2022 at 19:14 UTC