From 456113f828be535f912e55c2f5adea6dc07804f1 Mon Sep 17 00:00:00 2001 From: Julia Afeltra Date: Wed, 21 Feb 2024 11:48:52 -0500 Subject: [PATCH] Update automatic dependencies loaded based on FHIR version --- src/utils/FSHHelpers.js | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/utils/FSHHelpers.js b/src/utils/FSHHelpers.js index 899750af..5d0505a4 100644 --- a/src/utils/FSHHelpers.js +++ b/src/utils/FSHHelpers.js @@ -242,17 +242,33 @@ function addCoreFHIRVersionAndAutomaticDependencies(dependencies, coreFHIRVersio if (!hasCoreFHIR) { dependenciesToAdd.push(coreFHIRPackage); } - const terminologyPkg = { packageId: 'hl7.terminology.r4', version: 'latest', isAutomatic: true }; - const hasTerminology = hasDependency(dependencies, terminologyPkg, true); - if (!hasTerminology) { - dependenciesToAdd.push(terminologyPkg); + const toolsPkg = { packageId: 'hl7.fhir.uv.tools', version: 'latest', isAutomatic: true }; + const hasTools = hasDependency(dependencies, toolsPkg, true); + if (!hasTools) { + dependenciesToAdd.push(toolsPkg); } if (coreFHIRPackage.version.match(/^5\.0\.\d+$/)) { - const extensionPkg = { packageId: 'hl7.fhir.uv.extensions', version: 'latest', isAutomatic: true }; + const extensionPkg = { packageId: 'hl7.fhir.uv.extensions.r5', version: 'latest', isAutomatic: true }; const hasExtensions = hasDependency(dependencies, extensionPkg, true); + const terminologyPkg = { packageId: 'hl7.terminology.r5', version: 'latest', isAutomatic: true }; + const hasTerminology = hasDependency(dependencies, terminologyPkg, true); if (!hasExtensions) { dependenciesToAdd.push(extensionPkg); } + if (!hasTerminology) { + dependenciesToAdd.push(terminologyPkg); + } + } else if (coreFHIRPackage.version.match(/^4\.0\.1$/) || coreFHIRPackage.version.match(/^4\.3\.\d+$/)) { + const extensionPkg = { packageId: 'hl7.fhir.uv.extensions.r4', version: 'latest', isAutomatic: true }; + const hasExtensions = hasDependency(dependencies, extensionPkg, true); + const terminologyPkg = { packageId: 'hl7.terminology.r4', version: 'latest', isAutomatic: true }; + const hasTerminology = hasDependency(dependencies, terminologyPkg, true); + if (!hasExtensions) { + dependenciesToAdd.push(extensionPkg); + } + if (!hasTerminology) { + dependenciesToAdd.push(terminologyPkg); + } } return dependenciesToAdd; }