Stream: ig publishing requirements
Topic: new fragment - table of MS elements
Eric Haas (Nov 18 2021 at 04:47):
adding this to wish list see https://chat.fhir.org/#narrow/stream/179252-IG-creation/topic/table.20of.20MS.20elements.20being.20produced.3F
Lloyd McKenzie (Nov 18 2021 at 14:11):
Within a profile? Across all profiles? To what purpose? How is this distinct from the existing MS view?
Eric Haas (Nov 18 2021 at 16:00):
across ig like this: https://hackmd.io/CdjEs6YKSI6fFACKqvCDRA (but ignoring the flavors)
Lloyd McKenzie (Nov 18 2021 at 16:26):
And who's the consumer? What's the use-case for this view?
Eric Haas (Nov 18 2021 at 17:41):
the implementers who want to know what is must support, the testers who want to test for must support. and this is not a view this is a handy download like a csv or technical artifact.
Eric Haas (Nov 18 2021 at 17:42):
I would like a fragment produced but no view created like the lists
Lloyd McKenzie (Nov 18 2021 at 21:58):
I understand wanting to know it (and we have it already on a per profile basis), but I don't understand wanting to know it across all profiles...
Grahame Grieve (Nov 18 2021 at 22:32):
for a typical IG it would be very long
Lloyd McKenzie (Nov 18 2021 at 23:12):
And if your profiles exist in a hierarchy, there'd be a lot of redundancy too...
My experience is that QA folks like the Excel views (which currently are already pre-filtered to the mustSupport elements)
Eric Haas (Nov 19 2021 at 06:16):
yes it is a long table but is handy to have all the ms in one place if you are trying to review. I will create for US Core and put in as a download and get feedback.
Josh Mandel (Nov 19 2021 at 13:56):
I agree with Eric that having this information available in one page is useful
Lloyd McKenzie (Nov 19 2021 at 15:40):
Why MS and not other information?
Josh Mandel (Nov 19 2021 at 15:43):
I didn't say this was to the exclusion of other info -- but "MS" plus required elements is a pretty good way to get a handle on the minimu requirements for mapping data into a set of profiles.
Lloyd McKenzie (Nov 19 2021 at 15:49):
If we're going to a dump, why not just dump all of the metadata into a CSV/Excel file and people can then filter on what they want?
Lloyd McKenzie (Nov 19 2021 at 15:50):
A super long HTML table is pretty useless, in my opinion...
Jose Costa Teixeira (Nov 19 2021 at 18:06):
unless you put some fancy javascript that allows people to filter on what they want...
Jose Costa Teixeira (Nov 19 2021 at 18:07):
(which fwiw i don't think is a good solution for where things need to be "printable"...)
Lloyd McKenzie (Nov 19 2021 at 18:36):
You'll never hit the degree of 'fancy' that people get for free when the open it in Excel (or Google docs or whatever)
Josh Mandel (Nov 19 2021 at 18:37):
Or the degree of "easy" that people get for free when the content is right there in the spec. I thought we've long since agreed there is not one "best for everyone" way to present this material, so why not broadly enable the things editors want to use in their work?
Lloyd McKenzie (Nov 19 2021 at 18:51):
I'm not saying it shouldn't be produced in the spec. I'm saying that a link to a CSV and/or Excel file is far more useful to everyone who's going to want a cross-artifact listing than an HTML table. HTML tables are going to be too long, too wide and too limiting (regardless of what Javascript we throw at it). If we have a downloadable file, I think there's zero utility to also having an HTML table.
Josh Mandel (Nov 19 2021 at 18:53):
I think there's zero utility to also having an HTML table.
I hear this as "zero utility for Lloyd", but everyone gets to define their own utility function. I'm hearing Eric say he finds utility, which seems fair.
Grahame Grieve (Nov 19 2021 at 19:39):
otoh, we then get to argue about a bunch of things like, is this diff or snapshot based?
Lloyd McKenzie (Nov 20 2021 at 03:36):
My question for Eric is whether his target users would find equal or more utility in a spreadsheet with all the information from all the models. (I know all the testers and analysts I've worked with would.)
Eric Haas (Nov 20 2021 at 06:18):
@Lloyd McKenzie Yes you are right the build already produces csv files for the profiles. ( which I forgot :rolling_eyes: ) These would work for my use case if they were all appended together into one big csv . So my request is a single downloadable artifact of one table with all the profiles. I will create for US Core as an example and add as a downloadable artifact. Thanks for digging into this.
Also I am not really that interested in an html table although others may be
Jose Costa Teixeira (Nov 20 2021 at 08:04):
A CSV export and an excel export and much more magic would be available with a bit of JavaScript. We don't need to build that functionality from scratch
Jose Costa Teixeira (Nov 20 2021 at 08:05):
If we have a single CSV file we just throw it at a DataTable and the rest is done for us
Lloyd McKenzie (Nov 20 2021 at 15:05):
We could use Javascript magic, but given that the publisher can already spit them out, may as well let the publisher spit out the combined files too. That'd be more elegant. (And I'm not sure how to combine multiple Excel worksheets into one, removing excess header rows using Javascript...)
Lloyd McKenzie (Nov 20 2021 at 15:07):
We want this for StructureDefinitions. Do we want one file for everything? One file for profiles and a separate one for logical models? Do we want files for CodeSystems or ValueSet expansions too?
Eric Haas (Nov 20 2021 at 20:18):
I added this feature in US Core - http://build.fhir.org/ig/HL7/US-Core/downloads.html
thanks again @Lloyd McKenzie for getting me to see this obvious solution and @Grahame Grieve for making it so easy.
my aggregation code is here - but assume is useless for the build since is all Pandas and Python.
@GG I discovered a 2 deep issues:
1) with the snapshot generator - my diff for US Core Organization I had a redundant mapping and it resulted in a repeated mapping in the snapshot....
# ==== US Core Organization profile snapshot for Organization.identifier element =====
mustSupport: true
isModifier: false
isSummary: true
mapping:
- identity: w5
map: FiveWs.identifier
- identity: v2
map: XON.10 / XON.3
- identity: rim
map: '.scopes[Role](classCode=IDENT)'
- identity: servd #<<<<<<<<<<<<<<<< Repeats !
map: ./Identifiers
- identity: servd #<<<<<<<<<<<<<<<< Repeats !
map: n/a
- id: Organization.identifier.id
path: Organization.identifier.id
#...
# ==== US Core Organization profile diff for Organization.identifier element =====
- id: Organization.identifier
path: Organization.identifier
slicing:
discriminator:
- type: pattern
path: $this
rules: open
comment: NPI preferred.
mustSupport: true
mapping: #<<<<<< redundant mapping in the diff
- identity: servd
map: n/a
# ....
2) the data doesn't seem to match the header in the columns starting at or around column 27:
Github issues?
Lloyd McKenzie (Nov 21 2021 at 01:48):
Can you submit a Git issue for us to add it to the publisher in general?
Last updated: Apr 12 2022 at 19:14 UTC