FHIR Chat · invalid IG parameters being added to IG · IG creation

Stream: IG creation

Topic: invalid IG parameters being added to IG


view this post on Zulip Jean Duteau (Nov 01 2021 at 18:15):

Using IG v1.1.84 with FHIR version 4.0.1, I get an IG resource that has definition.parameters with codes of 'path-resource', 'path-pages', and 'path-tx-cache'.
with FHIR version 4.1.0, I get an IG resource that has invalid definition.parameter.codes: path-liquid, path-qa, path-temp, path-output, apply-jurisdiction, etc.

In both cases, my input IG is the same and doesn't have those codes. There appears to be some fhir version-specific code that causes these parameters to be output even though they are invalid.

view this post on Zulip Grahame Grieve (Nov 01 2021 at 20:44):

I get an IG resource

where?

view this post on Zulip Lloyd McKenzie (Nov 01 2021 at 21:32):

The parameters get inserted by the template process. However, I thought we had a mechanism so the process didn't choke on them...

view this post on Zulip Jean Duteau (Nov 02 2021 at 01:29):

@Grahame Grieve the fhir-spl guide. I’m just switching it over to use R4B and encountered those errors. It’s in the IG that gets produced in output.

@Lloyd McKenzie the validator is complaining about all the codes. I would assume that the templates are the same whether I use 4.0.1 or 4.1.0 so it seems something else isn’t stripping them?

view this post on Zulip Grahame Grieve (Nov 02 2021 at 01:30):

it's in the input or the output?

view this post on Zulip Lloyd McKenzie (Nov 02 2021 at 02:08):

The template puts the content in the input.

view this post on Zulip Jean Duteau (Nov 02 2021 at 02:19):

In the output. When I look out the output/ig.json, all of the improper codes are there. I didn’t look in the temp but my input Ig doesn’t have them

view this post on Zulip Grahame Grieve (Nov 02 2021 at 02:20):

well, then it's not going to be valid. That's according to the specification itself. It's not clear to me what I should do about it

view this post on Zulip Jean Duteau (Nov 02 2021 at 02:32):

What I don’t understand is why I’m getting a different IG depending on which fhirVersion I specify. Why would that matter?

view this post on Zulip Jean Duteau (Nov 02 2021 at 02:32):

@Lloyd McKenzie is there code in the templates that depends on fhirVersion that might be causing this?

view this post on Zulip Lloyd McKenzie (Nov 02 2021 at 02:36):

I don't believe so. To be honest, I'm not sure why it wasn't complaining before.

view this post on Zulip Lloyd McKenzie (Nov 02 2021 at 03:03):

Out of curiosity, do you get the same issue if you try building locally with a publisher from say a month or so ago?

view this post on Zulip Jean Duteau (Nov 02 2021 at 03:12):

I’ll try that later. Just to recap though, specifying 4.0.1 doesn’t give the invalid codes in the Ig while 4.1.0 does.

view this post on Zulip Lloyd McKenzie (Nov 02 2021 at 03:14):

Ah. Maybe we do something special for 4.0 and earlier, but the builder assumes that > 4.0.x is an R5 IG and thus all is good. And you're the first author of an R4B IG.

view this post on Zulip Lloyd McKenzie (Nov 02 2021 at 03:14):

Troublemaker... ;)

view this post on Zulip Jean Duteau (Nov 02 2021 at 03:18):

I take pride in being a troublemaker and pushing the envelope but I think that I got those errors when I put 4.6.0 first.

view this post on Zulip Lloyd McKenzie (Nov 02 2021 at 05:02):

That'd be super weird, because R5 doesn't constrain the set of parameters - it's an unbound string

view this post on Zulip Jean Duteau (Nov 02 2021 at 05:11):

yes, you're right. So temp IG has those parameters for both 4.0.1 and 4.1.0, but 4.0.1 somewhere turns the invalid coded parameters into extensions while 4.1.0 doesn't

view this post on Zulip Jean Duteau (Nov 03 2021 at 03:58):

@Lloyd McKenzie do you have a potential fix to this that I could try?

view this post on Zulip Lloyd McKenzie (Nov 03 2021 at 05:15):

@Grahame Grieve The issue is that VersionUtilities.isR4Ver() determines whether something is an R4 version based on whether the version starts with 4.0 - which means that 4.1.x releases aren't included, which means that R4B stuff is not converted down to R4 from the R5 version that we use internally. Given that (I believe) we don't convert any of the resources that change in R4B, I think it should be safe to change this logic to return true if the version starts with 4.0 or 4.1. Thoughts?

view this post on Zulip Grahame Grieve (Nov 03 2021 at 05:16):

no, don't do that. Because it does matter very much in some places. Instead, add a isR4orR4BVer, and call that where this decision is made

view this post on Zulip Lloyd McKenzie (Nov 03 2021 at 05:45):

The decision is made when spitting out resources - there's no special processing for the ImplementationGuide

view this post on Zulip Jean Duteau (Nov 22 2021 at 17:45):

okay, @Giorgio Cangioli and I have IGs that based on R4B and there might be others. I'm now actively working on this IG and the vast set of errors that are being generated are making it hard to see the real errors that I'm injecting into the IG. Is there something we can do to fix this issue that R4B is considered R5 when spitting out resources? (@Lloyd McKenzie @Grahame Grieve)

view this post on Zulip Grahame Grieve (Nov 29 2021 at 09:41):

they'll go away next release

view this post on Zulip Jean Duteau (Nov 29 2021 at 14:12):

Thx grahame


Last updated: Apr 12 2022 at 19:14 UTC