Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow 6.x versions of FHIR #1517

Merged
merged 4 commits into from
Oct 10, 2024
Merged

Allow 6.x versions of FHIR #1517

merged 4 commits into from
Oct 10, 2024

Conversation

mint-thompson
Copy link
Collaborator

Description:
FHIR version 6 is currently in balloting stages. It does not appear that any code changes are needed yet for allowing an R6 IG. The usual warning about prerelease versions will be shown when one of the ballot versions is used.

Testing Instructions:
The main question here is whether supporting R6 is actually as simple as I think it is. Having looked over information about the R6 ballot changes, I don't think there's anything that will need special handling.

The new datatype RelativeTime is complex enough that it doesn't make sense to try to support assigning it in a single rule. But, it may be worth considering if we want to support checking its invariants. rlt-1 is a very simple check, and rlt-2 isn't too much more complicated. We do something like this for Extensions for their ext-1 invariant.

Related Issue:
#1485

FHIR version 6 is currently in balloting stages. It does not appear that
any code changes are needed yet for allowing an R6 IG. The usual warning
about prerelease versions will be shown when one of the ballot versions
is used.
cmoesel
cmoesel previously approved these changes Sep 26, 2024
Copy link
Member

@cmoesel cmoesel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, that was easier than expected! I tested it out by creating an R6 IG and profiling an element that doesn't exist in R5. It worked! I was even able to run the IG Publisher after.

One of the reasons this is so simple now is that past us thought ahead to this moment and added this:

// Supported Future Pre-Releases and Releases (well, we'll try)
{
regex: /^6\.\d+\.\d+$/,
name: 'R6',
packageId: 'hl7.fhir.r6.core',
isPreRelease: false,
isSupported: true
},
{
regex: /^6\.\d+\.\d+-\S+$/,
name: 'R6',
packageId: 'hl7.fhir.r6.core',
isPreRelease: true,
isSupported: true
},

Anyway, nice job!

Copy link
Collaborator

@jafeltra jafeltra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just left one question about a test, but I might be getting ahead of myself, so let me know what you think.

Comment on lines 429 to 433
it('should allow FHIR R6', () => {
const input = path.join(__dirname, 'fixtures', 'fhir-r6');
const config = readConfig(input);
expect(config.fhirVersion).toEqual(['6.0.0-ballot2']);
});
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what the difference is, but I was also able to use just 6.0.0 as a fhirVersion already. Is it worth adding a test for that? SUSHI recognizes it as a non-preRelease version, thanks to the snippet of code Chris linked.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Getting a package downloaded for 6.0.0 right now is not so good, but either way, I can add a test for when that version is specified.

Copy link
Collaborator

@jafeltra jafeltra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

Copy link
Member

@cmoesel cmoesel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approving!

@mint-thompson mint-thompson merged commit bfbd966 into master Oct 10, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants