Stream: genomics
Topic: IG profile naming conventions don't follow FHIR guidance
Kevin Power (Jun 21 2019 at 18:01):
I was doing some QA clean-up on the IG today, and one error that is all over is this:
StructureDefinition/obs-base: StructureDefinition
warning
Name should be usable as an identifier for the module by machine processing applications such as code generation [name.matches('A-Z{0,254}')]
It seems our choice of '-' conflicts with this warning. From a review of other IG's, it seems that the most common way to name profiles is camel case.
I logged GF#22728. I am going to suggest this is something we fix before we publish. Comments welcome.
Kevin Power (Jun 24 2019 at 14:37):
@James Jones I won't be able to make the FHIR subgroup call today, but can we add GF#22728 to the agenda for discussion? I am curious what the group thinks.
Jamie Jones (Jun 24 2019 at 14:40):
Yes we can go over it, but I'd be very surprised if this is something anyone objects to. Seems like something we just need to adopt and inform everyone as happening to get our QA down to code.
Kevin Power (Jun 27 2019 at 16:17):
As part of this conversation, I wanted to propose some new "better" names for our profiles. Welcome thoughts/suggestions:
https://docs.google.com/spreadsheets/d/1n9db4SnSXuGBod4aQmvhJWDEEtMgqBIS2SOXYDm1bBU/edit#gid=0
Jamie Jones (Jun 27 2019 at 17:59):
Looks pretty good to me, only ones I'm not sure on are 'ObservationRecommendedAction' and 'ReportRecommendedAction'
Jamie Jones (Jun 27 2019 at 18:36):
Also I think with GF#19840 the extension obs-focus is no longer used by any profiles so we may be able to just remove it from the list of artifacts
Kevin Power (Jun 27 2019 at 18:53):
Yea, we have two extensions - one from DR and one from Obs. I will see about combining those (I took the lazy way out at first).
Kevin Power (Jun 27 2019 at 18:53):
And good call on 'obs-focus' ...
Kevin Power (Jun 27 2019 at 19:18):
Regarding the two 'Recommended Actions' - the two are defined with different resources they could reference:
Observation.RecommendedAction = Reference(Task,ServiceRequest,MedicationRequest)
DiagnosticReport.RecommendedAction = Reference(Task|ServiceRequest|MedicationRequest|RequestGroup|CarePlan|DeviceRequest|NutritionOrder|SupplyRequest)
I would tend to say we should just use it as defined on DiagnosticReport in Observation as well. Any concerns?
Jamie Jones (Jun 27 2019 at 19:20):
I am all for aligning them in the draft (the larger list looks better to me just in case)
Kevin Power (Jun 27 2019 at 19:54):
Yea, I think I would rather start broader and narrow down. But not sure they will all be needed :slight_smile:
Kevin Power (Jun 27 2019 at 23:10):
FYI to all - After some things looked weird, I did some additional checking, and It seems that Extensions do have slightly different guidance:
Per this
Code: String - required. This is the string that must be sent after the extension.uri and the '#' in an instance when identifying this particular extension. E.g. For the extension "http://hl7.org/fhir/Profile/iso-21090#nullFlavor", the "code" would be "nullFlavor". **These should generally be lower-camel-case strings**. If the extension is part of another extension, the convention is to use string concatenation. E.g. "relationParent.type" as the code for the "type" characteristic of the "relationParent" extension.
Now, this will cause us to get the same warnings on the extension StructureDefinition names - but I was noticing that it was causing all the 'attribute' names everywhere we used these extensions to have upper-camel-case (matching the name), whereas all other attributes seem to follow the lower-camel-case approach. So, had to pick an option, and I choose to make the attribute names look more consistent and leave the warnings. In case this comes up again, I wanted to document it somewhere. It is certainly possible I am missing something, so welcome any and all feedback.
Last updated: Apr 12 2022 at 19:14 UTC