diff --git a/library/web/fsl_npm_cache.pas b/library/web/fsl_npm_cache.pas index 8ad59c426..d60340d1f 100644 --- a/library/web/fsl_npm_cache.pas +++ b/library/web/fsl_npm_cache.pas @@ -106,7 +106,6 @@ TFHIRPackageManager = class (TFslObject) procedure work(pct : integer; done : boolean; desc : String); procedure progress(sender : TObject; pct : integer); function check(desc : String) : boolean; - function loadPackageFromCache(folder : String) : TNpmPackage; procedure buildPackageIndex(folder : String); function latestPackageVersion(id: String): String; function isIgnored(s : String): boolean; @@ -137,6 +136,7 @@ TFHIRPackageManager = class (TFslObject) function autoInstallPackage(id, ver : String) : boolean; overload; function latestPublishedVersion(id : String) : String; + function loadPackageFromCache(folder : String) : TNpmPackage; function loadPackage(id : String) : TNpmPackage; overload; function loadPackage(id, ver : String) : TNpmPackage; overload; procedure loadPackage(id, ver : String; resources : Array of String; loadInfo : TPackageLoadingInformation); overload; diff --git a/server/endpoint_txsvr.pas b/server/endpoint_txsvr.pas index cd868495e..b45b2df3a 100644 --- a/server/endpoint_txsvr.pas +++ b/server/endpoint_txsvr.pas @@ -1414,10 +1414,25 @@ procedure TTerminologyFhirServerStorage.loadPackage(pid: String; ignoreEmptyCode i : integer; list : TFslList; pi : TNpmPackageResource; + fileToLoad: string; begin i := 0; - npm := FServerContext.pcm.loadPackage(pid); + +// FEndPoint. +fileToLoad := filePath([FServerContext.pcm.folder,pid]) ; + + + if (FileExists(fileToLoad)) then + try + npm := FServerContext.pcm.loadPackageFromCache(fileToLoad) + except + on e : Exception do + Logging.log('Error loading package from file '+fileToLoad+': '+e.message); + end + else + npm := FServerContext.pcm.loadPackage(pid); + try Logging.start('Load package '+npm.name+'#'+npm.version); try