UploadFIG 2023.7.27.4

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global UploadFIG --version 2023.7.27.4                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local UploadFIG --version 2023.7.27.4                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=UploadFIG&version=2023.7.27.4                
nuke :add-package UploadFIG --version 2023.7.27.4                

UploadFIG - Sample FHIR Implementation Guide (FIG) Uploader R4B

This is a quick c# POC to demonstrate how a FHIR Implementation Guide can be downloaded from the web (using either a direct download, or the Firely Package Manager NuGet package) And then upload the executable resource types contained into a FHIR Server.

During the upload step the utility will:

  • GET the resource ID directly
    • compare if the resource has changed (excluding meta.versionId, meta.lastUpdated and text)
    • skip if the resource is the same
  • search for the resource by canonical URL (if it is a canonical resource)
    • verify that there is not another resource on the server already using that canonical URL (hence uploading may cause issues resolving)
    • verify that the version hasn't been messed with

During the processing this utility will:

  • Validate any fhirpath invariants in profiles
  • Validate any search parameters included

Running the utility

Usage:
  UploadFIG [options]

Options:
  -s, --sourcePackagePath <sourcePackagePath>                The explicit path of a package to process (over-rides
                                                             PackageId/Version)
  -fd, --forceDownload                                       Force the download of the package from the source package path
                                                             (If not specified, will use the last downloaded package)
                                                             [default: False]
  -pid, --packageId <packageId>                              The Package ID of the package to upload (from the HL7 FHIR Package
                                                             Registry)
  -pv, --packageVersion <packageVersion>                     The version of the Package to upload (from the HL7 FHIR Package
                                                             Registry)
  -r, --resourceTypes <resourceTypes>                        Which resource types should be processed by the uploader 
                                                             [default: StructureDefinition|ValueSet|CodeSystem|SearchParameter
                                                             |ConceptMap|StructureMap]
  -if, --ignoreFiles <ignoreFiles>                           Any specific files that should be ignored/skipped when processing the
                                                             package
  -ic, --ignoreCanonicals <ignoreCanonicals>                 Any specific Canonical URls that should be ignored/skipped when
                                                             processing the package
  -d, --destinationServerAddress <destinationServerAddress>  The URL of the FHIR Server to upload the package contents to
  -dh, --destinationServerHeaders <destinationServerHeaders> Headers to add to the request to the destination FHIR Server
                                                             e.g. `Authentication: Bearer xxxxxxxxxxx`
  -t, --testPackageOnly                                      Only perform download and static analysis checks on the Package.
                                                             Does not require a DestinationServerAddress, will not try to connect
                                                             to one if provided
                                                             [default: False]
  -cn, --checkAndCleanNarratives                             Check and clean any narratives in the package and remove suspect ones
                                                             (based on the MS FHIR Server's rules)
                                                             [default: False]
  -c, --checkPackageInstallationStateOnly                    Download and check the package and compare with the contents of the
                                                             FHIR Server, but do not update any of the contents of the FHIR Server
                                                             [default: False]
  --includeExamples                                          Also include files in the examples sub-directory
                                                             (Still needs resource type specified)
  --verbose                                                  Provide verbose diagnostic output while processing
                                                             (e.g. Filenames processed)
                                                             [default: False]
  --version                                                  Show version information
  -?, -h, --help                                             Show help and usage information

Examples

Review the SDOH Clinical Care IG Package

Test the pacakge content and not try and upload any data to a server, and will grab the latest version from the HL7 FHIR Package Registry

UploadFIG -pid hl7.fhir.us.sdoh-clinicalcare -t

Verify an installation of the US Core v6.1.0

Check to see if the US Core IG Package v6.1.0 is loaded onto a local server, and if any content has changed

UploadFIG -pid hl7.fhir.us.core -pv 6.1.0 -c -d https://localhost:44348 --verbose

Skip processing of a specific file

UploadFIG -d https://localhost:44348 -pid hl7.fhir.au.base -pv 4.0.0 --verbose -if package/StructureDefinition-medication-brand-name.json

Direct download a specific package

(Note that you should include the forceDownload flag here to ensure that it doesn't use a locally saved file)

UploadFIG -d https://localhost:44348 -s https://example.org/demo-package.tgz -t --verbose --forceDownload

Test a locally built package

UploadFIG -s E:\git\HL7\fhir-sdoh-clinicalcare-publish\output\package.r4b.tgz -t --verbose

Upload AU Base to a Microsoft FHIR Server

(Note the inclusion of the -cn flag to cleanse any narratives that would be otherwise rejected by the Microsoft FHIR Server)

UploadFIG -d https://localhost:44348 -pid hl7.fhir.au.base -pv 4.0.0 -cn

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
2024.4.4.1 2,123 4/4/2024
2024.2.23.1 1,477 2/23/2024
2024.1.11.1 576 1/11/2024
2024.1.3.2 333 1/3/2024
2024.1.3.1 317 1/3/2024
2023.12.15.2 265 12/15/2023
2023.12.15.1 225 12/15/2023
2023.11.22.1 353 11/22/2023
2023.11.8.1 266 11/8/2023
2023.11.6.1 300 11/6/2023
2023.10.24.1 313 10/24/2023
2023.10.10.1 376 10/9/2023
2023.10.9.1 351 10/9/2023
2023.10.7.2 243 10/7/2023
2023.10.7.1 391 10/7/2023
2023.9.22.2 286 9/21/2023
2023.9.22.1 368 9/21/2023
2023.9.21.1 239 9/20/2023
2023.8.18.1 358 8/18/2023
2023.8.11.2 299 8/11/2023
2023.8.11.1 243 8/11/2023
2023.8.4.3 197 8/4/2023
2023.8.4.2 170 8/4/2023
2023.8.4.1 173 8/4/2023
2023.8.3.16 175 8/3/2023
2023.8.3.15 191 8/3/2023
2023.8.2.2 200 8/2/2023
2023.8.2.1 217 8/2/2023
2023.8.1.1 160 8/1/2023
2023.7.28.3 175 7/28/2023
2023.7.28.2 199 7/28/2023
2023.7.28.1 214 7/28/2023
2023.7.27.4 190 7/27/2023
2023.7.27.3 184 7/27/2023
2023.7.27.2 172 7/26/2023
2023.7.27.1 180 7/26/2023
2023.7.19.4 182 7/19/2023
2023.7.19.3 186 7/19/2023