Build Version implementation

This commit is contained in:
Joshua Hare 2025-04-22 10:06:30 +10:00
parent ec75498b29
commit 2cef1be491
23 changed files with 986 additions and 2052 deletions

View File

@ -8,100 +8,172 @@ set SOURCE_CONFIG_DIR=hapi-fhir-setup
set CONFIG_FILE=application.yaml
REM --- Define Paths ---
REM Source path assumes 'hapi-fhir-setup' directory is in the same parent directory as this script
set SOURCE_CONFIG_PATH=..\%SOURCE_CONFIG_DIR%\target\classes\%CONFIG_FILE%
REM Destination path inside the cloned directory's build output
set DEST_CONFIG_PATH=%CLONE_DIR%\target\classes\%CONFIG_FILE%
echo Starting the build and run process...
echo.
REM === CORRECTED: Prompt for Version ===
:GetModeChoice
SET "APP_MODE=" REM Clear the variable first
echo Select Installation Mode:
echo 1. Standalone (Includes local HAPI FHIR Server - Requires Git & Maven)
echo 2. Lite (Excludes local HAPI FHIR Server - No Git/Maven needed)
CHOICE /C 12 /N /M "Enter your choice (1 or 2):"
REM --- Step 0: Clean up previous clone (optional, prevents clone error if dir exists) ---
echo Checking for existing directory: %CLONE_DIR%
if exist "%CLONE_DIR%" (
echo Found existing directory, removing it...
rmdir /s /q "%CLONE_DIR%"
IF ERRORLEVEL 2 (
SET APP_MODE=lite
goto :ModeSet
)
IF ERRORLEVEL 1 (
SET APP_MODE=standalone
goto :ModeSet
)
REM If somehow neither was chosen (e.g., Ctrl+C), loop back
echo Invalid input. Please try again.
goto :GetModeChoice
:ModeSet
IF "%APP_MODE%"=="" (
echo Invalid choice detected after checks. Exiting.
goto :eof
)
echo Selected Mode: %APP_MODE%
echo.
REM === END CORRECTION ===
REM === Conditionally Execute HAPI Setup ===
IF "%APP_MODE%"=="standalone" (
echo Running Standalone setup including HAPI FHIR...
echo.
REM --- Step 0: Clean up previous clone (optional) ---
echo Checking for existing directory: %CLONE_DIR%
if exist "%CLONE_DIR%" (
echo Found existing directory, removing it...
rmdir /s /q "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to remove existing directory: %CLONE_DIR%
goto :error
)
echo Existing directory removed.
) else (
echo Directory does not exist, proceeding with clone.
)
echo.
REM --- Step 1: Clone the HAPI FHIR server repository ---
echo Cloning repository: %REPO_URL% into %CLONE_DIR%...
git clone "%REPO_URL%" "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to remove existing directory: %CLONE_DIR%
echo ERROR: Failed to clone repository. Check Git installation and network connection.
goto :error
)
echo Existing directory removed.
) else (
echo Directory does not exist, proceeding with clone.
)
echo.
echo Repository cloned successfully.
echo.
REM --- Step 1: Clone the HAPI FHIR server repository ---
echo Cloning repository: %REPO_URL% into %CLONE_DIR%...
git clone "%REPO_URL%" "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to clone repository. Check Git installation and network connection.
goto :error
)
echo Repository cloned successfully.
echo.
REM --- Step 2: Navigate into the cloned directory ---
echo Changing directory to %CLONE_DIR%...
cd "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to change directory to %CLONE_DIR%.
goto :error
)
echo Current directory: %CD%
echo.
REM --- Step 2: Navigate into the cloned directory ---
echo Changing directory to %CLONE_DIR%...
cd "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to change directory to %CLONE_DIR%.
goto :error
)
echo Current directory: %CD%
echo.
REM --- Step 3: Build the HAPI server using Maven ---
echo ===> "Starting Maven build (Step 3)...""
cmd /c "mvn clean package -DskipTests=true -Pboot"
echo ===> Maven command finished. Checking error level...
if errorlevel 1 (
echo ERROR: Maven build failed or cmd /c failed
cd ..
goto :error
)
echo Maven build completed successfully. ErrorLevel: %errorlevel%
echo.
REM --- Step 3: Build the HAPI server using Maven ---
echo ===> Starting Maven build (Step 3)...
REM Ensure mvn is in your system PATH
REM Using 'cmd /c "..."' to run Maven in a separate cmd instance
cmd /c "mvn clean package -DskipTests=true -Pboot"
REM Removed period from the end of the next echo statement to avoid syntax error
echo ===> Maven command finished (executed via cmd /c) Checking error level
REM Note: Error level check after cmd /c might reflect the exit code of cmd.exe itself,
REM but typically it passes through the error level of the command run within it (mvn).
if errorlevel 1 (
echo ERROR: Maven build failed or cmd \c failed
echo Check Maven installation and project configuration. Error
REM --- Step 4: Copy the configuration file ---
echo ===> "Starting file copy (Step 4)..."
echo Copying configuration file...
echo Source: %SOURCE_CONFIG_PATH%
echo Destination: target\classes\%CONFIG_FILE%
xcopy "%SOURCE_CONFIG_PATH%" "target\classes\" /Y /I
echo ===> xcopy command finished. Checking error level...
if errorlevel 1 (
echo WARNING: Failed to copy configuration file. Check if the source file exists.
echo The script will continue, but the server might use default configuration.
) else (
echo Configuration file copied successfully. ErrorLevel: %errorlevel%
)
echo.
REM --- Step 5: Navigate back to the parent directory ---
echo ===> "Changing directory back (Step 5)..."
cd ..
if errorlevel 1 (
echo ERROR: Failed to change back to the parent directory. ErrorLevel: %errorlevel%
goto :error
)
echo Current directory: %CD%
echo.
) ELSE (
echo Running Lite setup, skipping HAPI FHIR build...
REM Ensure the hapi-fhir-jpaserver directory doesn't exist or is empty if Lite mode is chosen after a standalone attempt
if exist "%CLONE_DIR%" (
echo Found existing HAPI directory in Lite mode. Removing it to avoid build issues...
rmdir /s /q "%CLONE_DIR%"
)
REM Create empty target directories expected by Dockerfile COPY, even if not used
mkdir "%CLONE_DIR%\target\classes" 2> nul
mkdir "%CLONE_DIR%\custom" 2> nul
REM Create a placeholder empty WAR file to satisfy Dockerfile COPY
echo. > "%CLONE_DIR%\target\ROOT.war"
echo. > "%CLONE_DIR%\target\classes\application.yaml"
echo Placeholder files created for Lite mode build.
echo.
)
REM === Modify docker-compose.yml to set APP_MODE ===
echo Updating docker-compose.yml with APP_MODE=%APP_MODE%...
(
echo version: '3.8'
echo services:
echo fhirflare:
echo build:
echo context: .
echo dockerfile: Dockerfile
echo ports:
echo - "5000:5000"
echo - "8080:8080" # Keep port exposed, even if Tomcat isn't running useful stuff in Lite
echo volumes:
echo - ./instance:/app/instance
echo - ./static/uploads:/app/static/uploads
echo - ./instance/hapi-h2-data/:/app/h2-data # Keep volume mounts consistent
echo - ./logs:/app/logs
echo environment:
echo - FLASK_APP=app.py
echo - FLASK_ENV=development
echo - NODE_PATH=/usr/lib/node_modules
echo - APP_MODE=%APP_MODE%
echo command: supervisord -c /etc/supervisord.conf
) > docker-compose.yml.tmp
REM Check if docker-compose.yml.tmp was created successfully
if not exist docker-compose.yml.tmp (
echo ERROR: Failed to create temporary docker-compose file.
goto :error
)
echo Maven build completed successfully. ErrorLevel: %errorlevel%
echo.
REM --- Step 4: Copy the configuration file ---
echo ===> Starting file copy (Step 4)...
REM Assumes the source file exists at ..\hapi-fhir-setup\target\classes\application.yaml relative to the script's location
REM Copies it into the target\classes directory created by the Maven build.
echo Copying configuration file...
echo Source: %SOURCE_CONFIG_PATH%
echo Destination: target\classes\%CONFIG_FILE%
xcopy "%SOURCE_CONFIG_PATH%" "target\classes\" /Y /I
echo ===> xcopy command finished. Checking error level...
if errorlevel 1 (
echo WARNING: Failed to copy configuration file. Check if the source file exists at the expected location!
echo The script will continue, but the server might use default configuration.
REM Decide if this should be a fatal error (goto :error) or just a warning
REM goto :error
) else (
echo Configuration file copied successfully. ErrorLevel: %errorlevel%
)
echo.
REM --- Step 5: Navigate back to the parent directory ---
echo ===> Changing directory back (Step 5)...
cd ..
if errorlevel 1 (
echo ERROR: Failed to change back to the parent directory. ErrorLevel: %errorlevel%
goto :error
)
echo Current directory: %CD%
REM Replace the original docker-compose.yml
del docker-compose.yml /Q > nul 2>&1
ren docker-compose.yml.tmp docker-compose.yml
echo docker-compose.yml updated successfully.
echo.
REM --- Step 6: Build Docker images ---
echo ===> Starting Docker build (Step 6)...
REM Ensure docker-compose is in your system PATH
docker-compose build --no-cache
if errorlevel 1 (
echo ERROR: Docker Compose build failed. Check Docker installation and docker-compose.yml file. ErrorLevel: %errorlevel%
@ -121,7 +193,7 @@ echo Docker containers started successfully. ErrorLevel: %errorlevel%
echo.
echo ====================================
echo Script finished successfully!
echo Script finished successfully! (Mode: %APP_MODE%)
echo ====================================
goto :eof
@ -134,4 +206,4 @@ exit /b 1
:eof
echo Script execution finished.
pause
pause

27
app.py
View File

@ -32,6 +32,18 @@ app.config['VALIDATE_IMPOSED_PROFILES'] = True
app.config['DISPLAY_PROFILE_RELATIONSHIPS'] = True
app.config['UPLOAD_FOLDER'] = '/app/static/uploads' # For GoFSH output
# <<< ADD THIS CONTEXT PROCESSOR >>>
@app.context_processor
def inject_app_mode():
"""Injects the app_mode into template contexts."""
return dict(app_mode=app.config.get('APP_MODE', 'standalone'))
# <<< END ADD >>>
# Read application mode from environment variable, default to 'standalone'
app.config['APP_MODE'] = os.environ.get('APP_MODE', 'standalone').lower()
logger.info(f"Application running in mode: {app.config['APP_MODE']}")
# --- END mode check ---
# Ensure directories exist and are writable
instance_path = '/app/instance'
packages_path = app.config['FHIR_PACKAGES_DIR']
@ -193,6 +205,15 @@ def view_igs():
site_name='FHIRFLARE IG Toolkit', now=datetime.datetime.now(),
config=app.config)
@app.route('/about')
def about():
"""Renders the about page."""
# The app_mode is automatically injected by the context processor
return render_template('about.html',
title="About", # Optional title for the page
site_name='FHIRFLARE IG Toolkit') # Or get from config
@app.route('/push-igs', methods=['GET'])
def push_igs():
# form = FlaskForm() # OLD - Replace this line
@ -910,7 +931,7 @@ def validate_sample():
packages=packages,
validation_report=None,
site_name='FHIRFLARE IG Toolkit',
now=datetime.datetime.now()
now=datetime.datetime.now(), app_mode=app.config['APP_MODE']
)
# Exempt specific API views defined directly on 'app'
@ -939,12 +960,12 @@ class FhirRequestForm(FlaskForm):
@app.route('/fhir')
def fhir_ui():
form = FhirRequestForm()
return render_template('fhir_ui.html', form=form, site_name='FHIRFLARE IG Toolkit', now=datetime.datetime.now())
return render_template('fhir_ui.html', form=form, site_name='FHIRFLARE IG Toolkit', now=datetime.datetime.now(), app_mode=app.config['APP_MODE'])
@app.route('/fhir-ui-operations')
def fhir_ui_operations():
form = FhirRequestForm()
return render_template('fhir_ui_operations.html', form=form, site_name='FHIRFLARE IG Toolkit', now=datetime.datetime.now())
return render_template('fhir_ui_operations.html', form=form, site_name='FHIRFLARE IG Toolkit', now=datetime.datetime.now(), app_mode=app.config['APP_MODE'])
@app.route('/fhir/<path:subpath>', methods=['GET', 'POST', 'PUT', 'DELETE'])
def proxy_hapi(subpath):

View File

@ -6,15 +6,15 @@ services:
dockerfile: Dockerfile
ports:
- "5000:5000"
- "8080:8080"
- "8080:8080" # Keep port exposed, even if Tomcat isn't running useful stuff in Lite
volumes:
- ./instance:/app/instance
- ./static/uploads:/app/static/uploads
# - ./hapi-fhir-jpaserver/target/h2-data:/app/h2-data
- ./instance/hapi-h2-data/:/app/h2-data
- ./instance/hapi-h2-data/:/app/h2-data # Keep volume mounts consistent
- ./logs:/app/logs
environment:
- FLASK_APP=app.py
- FLASK_ENV=development
- NODE_PATH=/usr/lib/node_modules
command: supervisord -c /etc/supervisord.conf
- APP_MODE=lite
command: supervisord -c /etc/supervisord.conf

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -2,11 +2,3 @@
* Debug mode: off
* Serving Flask app 'app'
* Debug mode: off
* Serving Flask app 'app'
* Debug mode: off
* Serving Flask app 'app'
* Debug mode: off
* Serving Flask app 'app'
* Debug mode: off
* Serving Flask app 'app'
* Debug mode: off

View File

@ -1,3 +1,4 @@
INFO:__main__:Application running in mode: lite
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
@ -17,40 +18,7 @@ INFO:werkzeug:WARNING: This is a development server. Do not use it in a
* Running on http://127.0.0.1:5000
* Running on http://172.18.0.2:5000
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:38:13] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:38:14] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
ERROR:app:Exception on /fsh-converter [GET]
Traceback (most recent call last):
File "/app/venv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/app.py", line 1061, in fsh_converter
response = make_response(render_template( # <<< CORRECTED: Using make_response
^^^^^^^^^^^^^
NameError: name 'make_response' is not defined
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:38:21] "GET /fsh-converter HTTP/1.1" 500 -
INFO:__main__:Application running in mode: lite
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
@ -70,8 +38,35 @@ INFO:werkzeug:WARNING: This is a development server. Do not use it in a
* Running on http://127.0.0.1:5000
* Running on http://172.18.0.2:5000
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:45:38] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:45:38] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:15] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:15] "GET /static/FHIRFLARE.png HTTP/1.1" 200 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:services:Parsed 'hl7.fhir.au.base-5.1.0-preview.tgz' -> name='hl7.fhir.au.base-5.1.0', version='preview'
DEBUG:services:Parsed 'hl7.fhir.au.core-1.1.0-preview.tgz' -> name='hl7.fhir.au.core-1.1.0', version='preview'
DEBUG:services:Parsed 'hl7.fhir.r4.core-4.0.1.tgz' -> name='hl7.fhir.r4.core', version='4.0.1'
DEBUG:services:Parsed 'hl7.fhir.uv.extensions.r4-5.2.0.tgz' -> name='hl7.fhir.uv.extensions.r4', version='5.2.0'
DEBUG:services:Parsed 'hl7.fhir.uv.ipa-1.0.0.tgz' -> name='hl7.fhir.uv.ipa', version='1.0.0'
DEBUG:services:Parsed 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz' -> name='hl7.fhir.uv.smart-app-launch', version='2.0.0'
DEBUG:services:Parsed 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz' -> name='hl7.fhir.uv.smart-app-launch', version='2.1.0'
DEBUG:services:Parsed 'hl7.terminology.r4-5.0.0.tgz' -> name='hl7.terminology.r4', version='5.0.0'
DEBUG:services:Parsed 'hl7.terminology.r4-6.2.0.tgz' -> name='hl7.terminology.r4', version='6.2.0'
DEBUG:__main__:Found packages: [{'name': 'hl7.fhir.au.base', 'version': '5.1.0-preview', 'filename': 'hl7.fhir.au.base-5.1.0-preview.tgz'}, {'name': 'hl7.fhir.au.core', 'version': '1.1.0-preview', 'filename': 'hl7.fhir.au.core-1.1.0-preview.tgz'}, {'name': 'hl7.fhir.r4.core', 'version': '4.0.1', 'filename': 'hl7.fhir.r4.core-4.0.1.tgz'}, {'name': 'hl7.fhir.uv.extensions.r4', 'version': '5.2.0', 'filename': 'hl7.fhir.uv.extensions.r4-5.2.0.tgz'}, {'name': 'hl7.fhir.uv.ipa', 'version': '1.0.0', 'filename': 'hl7.fhir.uv.ipa-1.0.0.tgz'}, {'name': 'hl7.fhir.uv.smart-app-launch', 'version': '2.0.0', 'filename': 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz'}, {'name': 'hl7.fhir.uv.smart-app-launch', 'version': '2.1.0', 'filename': 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz'}, {'name': 'hl7.terminology.r4', 'version': '5.0.0', 'filename': 'hl7.terminology.r4-5.0.0.tgz'}, {'name': 'hl7.terminology.r4', 'version': '6.2.0', 'filename': 'hl7.terminology.r4-6.2.0.tgz'}]
DEBUG:__main__:Errors during package listing: []
DEBUG:__main__:Duplicate groups: {'hl7.fhir.uv.smart-app-launch': ['2.0.0', '2.1.0'], 'hl7.terminology.r4': ['5.0.0', '6.2.0']}
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:33] "GET /view-igs HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:33] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Viewing IG hl7.fhir.au.core-1.1.0#preview: 25 profiles, 17 base resources, 1 optional elements
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:35] "GET /view-ig/1 HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:35] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Attempting to find SD for 'au-core-patient' in hl7.fhir.au.core-1.1.0-preview.tgz
DEBUG:services:Searching for SD matching 'au-core-patient' with profile 'None' in hl7.fhir.au.core-1.1.0-preview.tgz
DEBUG:services:Match found based on exact sd_id: au-core-patient
DEBUG:services:Removing narrative text from resource: StructureDefinition
INFO:services:Found high-confidence match for 'au-core-patient' (package/StructureDefinition-au-core-patient.json), stopping search.
DEBUG:__main__:Found 20 unique IDs in differential.
DEBUG:__main__:Processing 78 snapshot elements to add isInDifferential flag.
DEBUG:__main__:Retrieved 19 Must Support paths for 'au-core-patient' from processed IG DB record.
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:36:42] "GET /get-structure?package_name=hl7.fhir.au.core-1.1.0&package_version=preview&resource_type=au-core-patient&view=snapshot HTTP/1.1" 200 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
@ -85,159 +80,10 @@ DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:45:46] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:45:46] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:45:46] "GET /static/js/lottie.min.js HTTP/1.1" 304 -
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.18.0.2:5000
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:50:05] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:50:06] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:50:13] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:50:13] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:50:13] "GET /static/js/lottie.min.js HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:50:13] "GET /static/animations/loading-dark.json HTTP/1.1" 304 -
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.18.0.2:5000
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:53:18] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:53:18] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:53:18] "GET /static/favicon.ico HTTP/1.1" 304 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:53:24] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:53:24] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:53:24] "GET /static/js/lottie.min.js HTTP/1.1" 304 -
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.18.0.2:5000
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:57:25] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:57:25] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:57:30] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:57:30] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 14:57:30] "GET /static/js/lottie.min.js HTTP/1.1" 304 -
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
DEBUG:__main__:Instance path configuration: /app/instance
DEBUG:__main__:Database URI: sqlite:////app/instance/fhir_ig.db
DEBUG:__main__:Packages path: /app/instance/fhir_packages
DEBUG:__main__:Flask instance folder path: /app/instance
DEBUG:__main__:Directories created/verified: Instance: /app/instance, Packages: /app/instance/fhir_packages
DEBUG:__main__:Attempting to create database tables for URI: sqlite:////app/instance/fhir_ig.db
INFO:__main__:Database tables created successfully (if they didn't exist).
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.18.0.2:5000
INFO:werkzeug:Press CTRL+C to quit
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:00:57] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:00:57] "GET /static/FHIRFLARE.png HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:00:58] "GET /static/js/lottie.min.js HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:00:58] "GET /static/animations/loading-dark.json HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:00:58] "GET /static/favicon.ico HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:37:59] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:37:59] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:37:59] "GET /static/js/lottie.min.js HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:37:59] "GET /static/animations/loading-light.json HTTP/1.1" 304 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
@ -251,12 +97,12 @@ DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Processing input: mode=text, has_file=False, has_text=True, has_alias=False
DEBUG:services:Processed input: ('/tmp/tmp_21icnfn/input.json', None)
DEBUG:__main__:Running GoFSH with input: /tmp/tmp_21icnfn/input.json, output_dir: /app/static/uploads/fsh_output
DEBUG:services:Processed input: ('/tmp/tmpkn9pyg0k/input.json', None)
DEBUG:__main__:Running GoFSH with input: /tmp/tmpkn9pyg0k/input.json, output_dir: /app/static/uploads/fsh_output
DEBUG:services:Wrapper script contents:
#!/bin/bash
exec 3>/dev/null
"gofsh" "/tmp/tmp_21icnfn/input.json" "-o" "/tmp/tmpn9r4c9rl" "-s" "file-per-definition" "-l" "error" </dev/null >/tmp/gofsh_output.log 2>&1
"gofsh" "/tmp/tmpkn9pyg0k/input.json" "-o" "/tmp/tmp37ihga7h" "-s" "file-per-definition" "-l" "error" "-u" "4.3.0" "--dependency" "hl7.fhir.us.core@6.1.0" "--indent" </dev/null >/tmp/gofsh_output.log 2>&1
DEBUG:services:Temp output directory contents before GoFSH: []
DEBUG:services:GoFSH output:
@ -280,18 +126,18 @@ DEBUG:services:GoFSH output:
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Aliases │ │ │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 3 │ │ │ ║
║ │ 1 │ │ │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ║
╠═════════════════════════════════════════════════════════════════╣
║ Not bad, but it cod be batter! 0 Errors 2 Warnings
║ Not bad, but it cod be batter! 0 Errors 1 Warning
╚═════════════════════════════════════════════════════════════════╝
DEBUG:services:GoFSH fishing-trip wrapper script contents:
#!/bin/bash
exec 3>/dev/null
exec >/dev/null 2>&1
"gofsh" "/tmp/tmp_21icnfn/input.json" "-o" "/tmp/tmpllyiv7dp" "-s" "file-per-definition" "-l" "error" "--fshing-trip" </dev/null >/tmp/gofsh_output.log 2>&1
"gofsh" "/tmp/tmpkn9pyg0k/input.json" "-o" "/tmp/tmpb_q8uf73" "-s" "file-per-definition" "-l" "error" "--fshing-trip" "-u" "4.3.0" "--dependency" "hl7.fhir.us.core@6.1.0" "--indent" </dev/null >/tmp/gofsh_output.log 2>&1
DEBUG:services:GoFSH fishing-trip output:
@ -314,24 +160,24 @@ DEBUG:services:GoFSH fishing-trip output:
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Aliases │ │ │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 3 │ │ │ ║
║ │ 1 │ │ │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ║
╠═════════════════════════════════════════════════════════════════╣
Something smells fishy... 0 Errors 2 Warnings
Warnings... Water those about? 0 Errors 1 Warning
╚═════════════════════════════════════════════════════════════════╝
╔═════════════════════════════════════════════════════════════════╗
║ Generating round trip results via SUSHI ║
╚═════════════════════════════════════════════════════════════════╝
info Running SUSHI v3.15.0 (implements FHIR Shorthand specification v3.0.0)
info Arguments:
info /tmp/tmpllyiv7dp
info No output path specified. Output to /tmp/tmpllyiv7dp
info Using configuration file: /tmp/tmpllyiv7dp/sushi-config.yaml
info /tmp/tmpb_q8uf73
info No output path specified. Output to /tmp/tmpb_q8uf73
info Using configuration file: /tmp/tmpb_q8uf73/sushi-config.yaml
warn The FSHOnly property is set to true, so no output specific to IG creation will be generated. The following properties are unused and only relevant for IG creation: id, name. Consider removing these properties from sushi-config.yaml.
File: /tmp/tmpllyiv7dp/sushi-config.yaml
File: /tmp/tmpb_q8uf73/sushi-config.yaml
info Importing FSH text...
info Preprocessed 2 documents with 3 aliases.
info Preprocessed 2 documents with 1 aliases.
info Imported 0 definitions and 1 instances.
info Loaded virtual package sushi-r5forR4#1.0.0 with 7 resources
info Resolved hl7.fhir.uv.tools.r4#latest to concrete version 0.5.0
@ -340,7 +186,8 @@ info Resolved hl7.terminology.r4#latest to concrete version 6.2.0
info Loaded hl7.terminology.r4#6.2.0 with 4323 resources
info Resolved hl7.fhir.uv.extensions.r4#latest to concrete version 5.2.0
info Loaded hl7.fhir.uv.extensions.r4#5.2.0 with 759 resources
info Loaded hl7.fhir.r4.core#4.0.1 with 4581 resources
info Loaded hl7.fhir.us.core#6.1.0 with 210 resources
info Loaded hl7.fhir.r4b.core#4.3.0 with 3497 resources
info Loaded virtual package sushi-local#LOCAL with 0 resources
info Converting FSH to FHIR resources...
info Converted 1 FHIR instances.
@ -361,165 +208,56 @@ info Exporting FSH definitions only. No IG related content will be exported.
| ------------------------------------------------------------- |
| |
===================================================================
| A bit pitchy, but tuna-ble. 0 Errors 1 Warning |
| You might need some Vitamin Sea 0 Errors 1 Warning |
===================================================================
DEBUG:services:Copied files to final output directory: ['sushi-config.yaml', 'input/fsh/aliases.fsh', 'input/fsh/instances/vkc.fsh', 'input/input.json', 'fshing-trip-comparison.html']
INFO:services:GoFSH executed successfully for /tmp/tmp_21icnfn/input.json
DEBUG:__main__:Successfully removed temp directory: /tmp/tmp_21icnfn
DEBUG:services:Copied files to final output directory: ['sushi-config.yaml', 'input/fsh/aliases.fsh', 'input/fsh/instances/discharge-1.fsh', 'input/input.json', 'fshing-trip-comparison.html']
INFO:services:GoFSH executed successfully for /tmp/tmpkn9pyg0k/input.json
DEBUG:__main__:Successfully removed temp directory: /tmp/tmpkn9pyg0k
INFO:__main__:FSH conversion successful
DEBUG:__main__:Returning partial HTML for AJAX POST request.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:02:41] "POST /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:02:41] "GET /static/animations/loading-dark.json HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:40:26] "POST /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:40:26] "GET /static/animations/loading-light.json HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:40:42] "GET /static/uploads/fsh_output/fshing-trip-comparison.html HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:40:59] "GET /fhir-ui-operations HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:41:00] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:27] "GET /fhir HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:27] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:31] "GET /fhir-ui-operations HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:31] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:39] "GET /fhir HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:39] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:48] "GET /validate-sample HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:43:48] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:44:08] "GET / HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:44:08] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Processing input: mode=text, has_file=False, has_text=True, has_alias=False
DEBUG:services:Processed input: ('/tmp/tmp_k0pky49/input.json', None)
DEBUG:__main__:Running GoFSH with input: /tmp/tmp_k0pky49/input.json, output_dir: /app/static/uploads/fsh_output
DEBUG:services:Wrapper script contents:
#!/bin/bash
exec 3>/dev/null
"gofsh" "/tmp/tmp_k0pky49/input.json" "-o" "/tmp/tmpvnwz2fsh" "-s" "file-per-definition" "-l" "error" </dev/null >/tmp/gofsh_output.log 2>&1
DEBUG:services:Temp output directory contents before GoFSH: []
DEBUG:__main__:Scanning packages directory: /app/instance/fhir_packages
DEBUG:__main__:Found 9 .tgz files: ['hl7.fhir.au.base-5.1.0-preview.tgz', 'hl7.fhir.au.core-1.1.0-preview.tgz', 'hl7.fhir.r4.core-4.0.1.tgz', 'hl7.fhir.uv.extensions.r4-5.2.0.tgz', 'hl7.fhir.uv.ipa-1.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz', 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz', 'hl7.terminology.r4-5.0.0.tgz', 'hl7.terminology.r4-6.2.0.tgz']
DEBUG:__main__:Added package: hl7.fhir.au.base#5.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.au.core#1.1.0-preview
DEBUG:__main__:Added package: hl7.fhir.r4.core#4.0.1
DEBUG:__main__:Added package: hl7.fhir.uv.extensions.r4#5.2.0
DEBUG:__main__:Added package: hl7.fhir.uv.ipa#1.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.0.0
DEBUG:__main__:Added package: hl7.fhir.uv.smart-app-launch#2.1.0
DEBUG:__main__:Added package: hl7.terminology.r4#5.0.0
DEBUG:services:GoFSH output:
╔═════════════════════════ GoFSH RESULTS ═════════════════════════╗
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Profiles │ Extensions │ Logicals │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 0 │ 0 │ 0 │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Resources │ ValueSets │ CodeSystems │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 0 │ 0 │ 0 │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Instances │ Invariants │ Mappings │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 1 │ 0 │ 0 │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Aliases │ │ │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 3 │ │ │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ║
╠═════════════════════════════════════════════════════════════════╣
║ Not bad, but it cod be batter! 0 Errors 2 Warnings ║
╚═════════════════════════════════════════════════════════════════╝
DEBUG:__main__:Added package: hl7.terminology.r4#6.2.0
DEBUG:__main__:Set package choices: [('', 'None'), ('hl7.fhir.au.base#5.1.0-preview', 'hl7.fhir.au.base#5.1.0-preview'), ('hl7.fhir.au.core#1.1.0-preview', 'hl7.fhir.au.core#1.1.0-preview'), ('hl7.fhir.r4.core#4.0.1', 'hl7.fhir.r4.core#4.0.1'), ('hl7.fhir.uv.extensions.r4#5.2.0', 'hl7.fhir.uv.extensions.r4#5.2.0'), ('hl7.fhir.uv.ipa#1.0.0', 'hl7.fhir.uv.ipa#1.0.0'), ('hl7.fhir.uv.smart-app-launch#2.0.0', 'hl7.fhir.uv.smart-app-launch#2.0.0'), ('hl7.fhir.uv.smart-app-launch#2.1.0', 'hl7.fhir.uv.smart-app-launch#2.1.0'), ('hl7.terminology.r4#5.0.0', 'hl7.terminology.r4#5.0.0'), ('hl7.terminology.r4#6.2.0', 'hl7.terminology.r4#6.2.0')]
DEBUG:__main__:Handling GET request for FSH converter page.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:03:11] "GET /fsh-converter HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:03:11] "GET /static/FHIRFLARE.png HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:03:11] "GET /static/js/lottie.min.js HTTP/1.1" 200 -
DEBUG:services:GoFSH fishing-trip wrapper script contents:
#!/bin/bash
exec 3>/dev/null
exec >/dev/null 2>&1
"gofsh" "/tmp/tmp_k0pky49/input.json" "-o" "/tmp/tmp_hia6e3c" "-s" "file-per-definition" "-l" "error" "--fshing-trip" </dev/null >/tmp/gofsh_output.log 2>&1
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:03:11] "GET /static/animations/loading-light.json HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:03:12] "GET /static/favicon.ico HTTP/1.1" 200 -
DEBUG:services:GoFSH fishing-trip output:
╔═════════════════════════ GoFSH RESULTS ═════════════════════════╗
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Profiles │ Extensions │ Logicals │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 0 │ 0 │ 0 │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Resources │ ValueSets │ CodeSystems │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 0 │ 0 │ 0 │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Instances │ Invariants │ Mappings │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 1 │ 0 │ 0 │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ╭────────────────────┬───────────────────┬────────────────────╮ ║
║ │ Aliases │ │ │ ║
║ ├────────────────────┼───────────────────┼────────────────────┤ ║
║ │ 3 │ │ │ ║
║ ╰────────────────────┴───────────────────┴────────────────────╯ ║
║ ║
╠═════════════════════════════════════════════════════════════════╣
║ A bit pitchy, but may be tuna-ble. 0 Errors 2 Warnings ║
╚═════════════════════════════════════════════════════════════════╝
╔═════════════════════════════════════════════════════════════════╗
║ Generating round trip results via SUSHI ║
╚═════════════════════════════════════════════════════════════════╝
info Running SUSHI v3.15.0 (implements FHIR Shorthand specification v3.0.0)
info Arguments:
info /tmp/tmp_hia6e3c
info No output path specified. Output to /tmp/tmp_hia6e3c
info Using configuration file: /tmp/tmp_hia6e3c/sushi-config.yaml
warn The FSHOnly property is set to true, so no output specific to IG creation will be generated. The following properties are unused and only relevant for IG creation: id, name. Consider removing these properties from sushi-config.yaml.
File: /tmp/tmp_hia6e3c/sushi-config.yaml
info Importing FSH text...
info Preprocessed 2 documents with 3 aliases.
info Imported 0 definitions and 1 instances.
info Loaded virtual package sushi-r5forR4#1.0.0 with 7 resources
info Resolved hl7.fhir.uv.tools.r4#latest to concrete version 0.5.0
info Loaded hl7.fhir.uv.tools.r4#0.5.0 with 88 resources
info Resolved hl7.terminology.r4#latest to concrete version 6.2.0
info Loaded hl7.terminology.r4#6.2.0 with 4323 resources
info Resolved hl7.fhir.uv.extensions.r4#latest to concrete version 5.2.0
info Loaded hl7.fhir.uv.extensions.r4#5.2.0 with 759 resources
info Loaded hl7.fhir.r4.core#4.0.1 with 4581 resources
info Loaded virtual package sushi-local#LOCAL with 0 resources
info Converting FSH to FHIR resources...
info Converted 1 FHIR instances.
info Exporting FHIR resources as JSON...
info Exported 1 FHIR resources as JSON.
info Exporting FSH definitions only. No IG related content will be exported.
========================= SUSHI RESULTS ===========================
| ------------------------------------------------------------- |
| | Profiles | Extensions | Logicals | Resources | |
| |-------------------------------------------------------------| |
| | 0 | 0 | 0 | 0 | |
| ------------------------------------------------------------- |
| ------------------------------------------------------------- |
| | ValueSets | CodeSystems | Instances | |
| |-------------------------------------------------------------| |
| | 0 | 0 | 1 | |
| ------------------------------------------------------------- |
| |
===================================================================
| Don't get stuck in the doldrums. 0 Errors 1 Warning |
===================================================================
DEBUG:services:Copied files to final output directory: ['sushi-config.yaml', 'input/fsh/aliases.fsh', 'input/fsh/instances/vkc.fsh', 'input/input.json', 'fshing-trip-comparison.html']
INFO:services:GoFSH executed successfully for /tmp/tmp_k0pky49/input.json
DEBUG:__main__:Successfully removed temp directory: /tmp/tmp_k0pky49
INFO:__main__:FSH conversion successful
DEBUG:__main__:Returning partial HTML for AJAX POST request.
INFO:werkzeug:172.18.0.1 - - [18/Apr/2025 15:03:28] "POST /fsh-converter HTTP/1.1" 200 -
DEBUG:services:Parsed 'hl7.fhir.au.base-5.1.0-preview.tgz' -> name='hl7.fhir.au.base-5.1.0', version='preview'
DEBUG:services:Parsed 'hl7.fhir.au.core-1.1.0-preview.tgz' -> name='hl7.fhir.au.core-1.1.0', version='preview'
DEBUG:services:Parsed 'hl7.fhir.r4.core-4.0.1.tgz' -> name='hl7.fhir.r4.core', version='4.0.1'
DEBUG:services:Parsed 'hl7.fhir.uv.extensions.r4-5.2.0.tgz' -> name='hl7.fhir.uv.extensions.r4', version='5.2.0'
DEBUG:services:Parsed 'hl7.fhir.uv.ipa-1.0.0.tgz' -> name='hl7.fhir.uv.ipa', version='1.0.0'
DEBUG:services:Parsed 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz' -> name='hl7.fhir.uv.smart-app-launch', version='2.0.0'
DEBUG:services:Parsed 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz' -> name='hl7.fhir.uv.smart-app-launch', version='2.1.0'
DEBUG:services:Parsed 'hl7.terminology.r4-5.0.0.tgz' -> name='hl7.terminology.r4', version='5.0.0'
DEBUG:services:Parsed 'hl7.terminology.r4-6.2.0.tgz' -> name='hl7.terminology.r4', version='6.2.0'
DEBUG:__main__:Found packages: [{'name': 'hl7.fhir.au.base', 'version': '5.1.0-preview', 'filename': 'hl7.fhir.au.base-5.1.0-preview.tgz'}, {'name': 'hl7.fhir.au.core', 'version': '1.1.0-preview', 'filename': 'hl7.fhir.au.core-1.1.0-preview.tgz'}, {'name': 'hl7.fhir.r4.core', 'version': '4.0.1', 'filename': 'hl7.fhir.r4.core-4.0.1.tgz'}, {'name': 'hl7.fhir.uv.extensions.r4', 'version': '5.2.0', 'filename': 'hl7.fhir.uv.extensions.r4-5.2.0.tgz'}, {'name': 'hl7.fhir.uv.ipa', 'version': '1.0.0', 'filename': 'hl7.fhir.uv.ipa-1.0.0.tgz'}, {'name': 'hl7.fhir.uv.smart-app-launch', 'version': '2.0.0', 'filename': 'hl7.fhir.uv.smart-app-launch-2.0.0.tgz'}, {'name': 'hl7.fhir.uv.smart-app-launch', 'version': '2.1.0', 'filename': 'hl7.fhir.uv.smart-app-launch-2.1.0.tgz'}, {'name': 'hl7.terminology.r4', 'version': '5.0.0', 'filename': 'hl7.terminology.r4-5.0.0.tgz'}, {'name': 'hl7.terminology.r4', 'version': '6.2.0', 'filename': 'hl7.terminology.r4-6.2.0.tgz'}]
DEBUG:__main__:Errors during package listing: []
DEBUG:__main__:Duplicate groups: {'hl7.fhir.uv.smart-app-launch': ['2.0.0', '2.1.0'], 'hl7.terminology.r4': ['5.0.0', '6.2.0']}
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:45:07] "GET /view-igs HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:45:07] "GET /static/FHIRFLARE.png HTTP/1.1" 200 -
DEBUG:__main__:Viewing IG hl7.fhir.au.core-1.1.0#preview: 25 profiles, 17 base resources, 1 optional elements
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:45:13] "GET /view-ig/1 HTTP/1.1" 200 -
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:45:13] "GET /static/FHIRFLARE.png HTTP/1.1" 304 -
DEBUG:__main__:Attempting to find SD for 'au-core-patient' in hl7.fhir.au.core-1.1.0-preview.tgz
DEBUG:services:Searching for SD matching 'au-core-patient' with profile 'None' in hl7.fhir.au.core-1.1.0-preview.tgz
DEBUG:services:Match found based on exact sd_id: au-core-patient
DEBUG:services:Removing narrative text from resource: StructureDefinition
INFO:services:Found high-confidence match for 'au-core-patient' (package/StructureDefinition-au-core-patient.json), stopping search.
DEBUG:__main__:Found 20 unique IDs in differential.
DEBUG:__main__:Processing 78 snapshot elements to add isInDifferential flag.
DEBUG:__main__:Retrieved 19 Must Support paths for 'au-core-patient' from processed IG DB record.
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:45:17] "GET /get-structure?package_name=hl7.fhir.au.core-1.1.0&package_version=preview&resource_type=au-core-patient&view=snapshot HTTP/1.1" 200 -
DEBUG:__main__:Removing narrative text from example 'package/example/Patient-banks-mia-leanne.json'
INFO:werkzeug:172.18.0.1 - - [21/Apr/2025 23:45:32] "GET /get-example?package_name=hl7.fhir.au.core-1.1.0&package_version=preview&filename=package/example/Patient-banks-mia-leanne.json HTTP/1.1" 200 -

View File

@ -1,56 +1,20 @@
2025-04-18 14:38:01,410 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-18 14:38:01,416 INFO supervisord started with pid 1
2025-04-18 14:38:02,423 INFO spawned: 'flask' with pid 7
2025-04-18 14:38:02,429 INFO spawned: 'tomcat' with pid 8
2025-04-18 14:38:12,439 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-18 14:38:32,593 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-18 14:40:50,270 WARN received SIGTERM indicating exit request
2025-04-18 14:40:50,271 INFO waiting for flask, tomcat to die
2025-04-18 14:40:51,200 WARN stopped: tomcat (exit status 143)
2025-04-18 14:40:51,204 WARN stopped: flask (terminated by SIGTERM)
2025-04-18 14:45:28,046 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-18 14:45:28,051 INFO supervisord started with pid 1
2025-04-18 14:45:29,057 INFO spawned: 'flask' with pid 8
2025-04-18 14:45:29,060 INFO spawned: 'tomcat' with pid 9
2025-04-18 14:45:39,314 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-18 14:45:59,118 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-18 14:48:15,641 WARN received SIGTERM indicating exit request
2025-04-18 14:48:15,642 INFO waiting for flask, tomcat to die
2025-04-18 14:48:16,755 WARN stopped: tomcat (exit status 143)
2025-04-18 14:48:16,762 WARN stopped: flask (terminated by SIGTERM)
2025-04-18 14:50:03,021 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-18 14:50:03,030 INFO supervisord started with pid 1
2025-04-18 14:50:04,035 INFO spawned: 'flask' with pid 7
2025-04-18 14:50:04,041 INFO spawned: 'tomcat' with pid 8
2025-04-18 14:50:14,298 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-18 14:50:34,529 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-18 14:51:37,046 WARN received SIGTERM indicating exit request
2025-04-18 14:51:37,047 INFO waiting for flask, tomcat to die
2025-04-18 14:51:38,220 WARN stopped: tomcat (exit status 143)
2025-04-18 14:51:38,225 WARN stopped: flask (terminated by SIGTERM)
2025-04-18 14:53:15,586 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-18 14:53:15,594 INFO supervisord started with pid 1
2025-04-18 14:53:16,598 INFO spawned: 'flask' with pid 7
2025-04-18 14:53:16,601 INFO spawned: 'tomcat' with pid 8
2025-04-18 14:53:27,378 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-18 14:53:47,426 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-18 14:55:41,989 WARN received SIGTERM indicating exit request
2025-04-18 14:55:41,989 INFO waiting for flask, tomcat to die
2025-04-18 14:55:43,011 WARN stopped: tomcat (exit status 143)
2025-04-18 14:55:43,018 WARN stopped: flask (terminated by SIGTERM)
2025-04-18 14:57:22,683 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-18 14:57:22,688 INFO supervisord started with pid 1
2025-04-18 14:57:23,693 INFO spawned: 'flask' with pid 7
2025-04-18 14:57:23,697 INFO spawned: 'tomcat' with pid 8
2025-04-18 14:57:34,418 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-18 14:57:53,722 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-18 14:59:18,910 WARN received SIGTERM indicating exit request
2025-04-18 14:59:18,925 INFO waiting for flask, tomcat to die
2025-04-18 14:59:20,423 WARN stopped: tomcat (exit status 143)
2025-04-18 14:59:20,430 WARN stopped: flask (terminated by SIGTERM)
2025-04-18 15:00:50,025 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-18 15:00:50,043 INFO supervisord started with pid 1
2025-04-18 15:00:51,049 INFO spawned: 'flask' with pid 7
2025-04-18 15:00:51,053 INFO spawned: 'tomcat' with pid 8
2025-04-18 15:01:01,646 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-18 15:01:21,365 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-21 23:28:14,353 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-21 23:28:14,360 INFO supervisord started with pid 1
2025-04-21 23:28:15,369 INFO spawned: 'flask' with pid 8
2025-04-21 23:28:15,377 INFO spawned: 'tomcat' with pid 9
2025-04-21 23:28:26,240 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-21 23:28:46,263 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-21 23:32:40,570 WARN received SIGTERM indicating exit request
2025-04-21 23:32:40,603 INFO waiting for flask, tomcat to die
2025-04-21 23:32:42,242 WARN stopped: tomcat (exit status 143)
2025-04-21 23:32:43,301 WARN stopped: flask (terminated by SIGTERM)
2025-04-21 23:36:02,369 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2025-04-21 23:36:02,377 INFO supervisord started with pid 1
2025-04-21 23:36:03,393 INFO spawned: 'flask' with pid 7
2025-04-21 23:36:03,407 INFO spawned: 'tomcat' with pid 8
2025-04-21 23:36:13,571 INFO success: flask entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2025-04-21 23:36:34,045 INFO success: tomcat entered RUNNING state, process has stayed up for > than 30 seconds (startsecs)
2025-04-21 23:51:48,038 WARN received SIGTERM indicating exit request
2025-04-21 23:51:48,042 INFO waiting for flask, tomcat to die
2025-04-21 23:51:50,438 WARN stopped: tomcat (exit status 143)
2025-04-21 23:51:51,472 WARN stopped: flask (terminated by SIGTERM)

File diff suppressed because it is too large Load Diff

View File

@ -1,259 +1,340 @@
18-Apr-2025 14:38:02.924 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
18-Apr-2025 14:38:02.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
18-Apr-2025 14:38:02.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
18-Apr-2025 14:38:02.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Apr-2025 14:38:02.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
18-Apr-2025 14:38:02.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Apr-2025 14:38:02.931 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
18-Apr-2025 14:38:02.931 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
18-Apr-2025 14:38:02.931 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
18-Apr-2025 14:38:02.931 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
18-Apr-2025 14:38:02.931 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
18-Apr-2025 14:38:02.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Apr-2025 14:38:02.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Apr-2025 14:38:02.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Apr-2025 14:38:02.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Apr-2025 14:38:02.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Apr-2025 14:38:02.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Apr-2025 14:38:02.947 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Apr-2025 14:38:02.947 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Apr-2025 14:38:02.952 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
18-Apr-2025 14:38:02.956 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
18-Apr-2025 14:38:03.277 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:38:03.304 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [599] milliseconds
18-Apr-2025 14:38:03.391 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Apr-2025 14:38:03.392 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
18-Apr-2025 14:38:03.427 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
18-Apr-2025 14:38:17.518 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
18-Apr-2025 14:39:04.055 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [60,627] ms
18-Apr-2025 14:39:04.057 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
18-Apr-2025 14:39:04.087 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [29] ms
18-Apr-2025 14:39:04.096 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:39:04.146 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [60844] milliseconds
18-Apr-2025 14:40:50.273 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:40:50.283 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
18-Apr-2025 14:40:50.970 SEVERE [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [org.springframework.boot.SpringBootExceptionHandler.LoggedExceptionHandlerThreadLocal] (value [org.springframework.boot.SpringBootExceptionHandler$LoggedExceptionHandlerThreadLocal@29edc901]) and a value of type [org.springframework.boot.SpringBootExceptionHandler] (value [org.springframework.boot.SpringBootExceptionHandler@2c8e3172]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
18-Apr-2025 14:40:50.981 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:40:50.993 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:45:29.517 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
18-Apr-2025 14:45:29.521 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
18-Apr-2025 14:45:29.522 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
18-Apr-2025 14:45:29.522 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Apr-2025 14:45:29.522 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
18-Apr-2025 14:45:29.522 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Apr-2025 14:45:29.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
18-Apr-2025 14:45:29.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
18-Apr-2025 14:45:29.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
18-Apr-2025 14:45:29.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
18-Apr-2025 14:45:29.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
18-Apr-2025 14:45:29.532 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Apr-2025 14:45:29.533 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Apr-2025 14:45:29.534 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Apr-2025 14:45:29.534 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Apr-2025 14:45:29.534 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Apr-2025 14:45:29.553 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
18-Apr-2025 14:45:29.557 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
18-Apr-2025 14:45:29.908 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:45:29.937 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [626] milliseconds
18-Apr-2025 14:45:29.997 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Apr-2025 14:45:29.998 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
18-Apr-2025 14:45:30.021 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
18-Apr-2025 14:45:43.372 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
18-Apr-2025 14:46:30.445 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [60,422] ms
18-Apr-2025 14:46:30.448 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
18-Apr-2025 14:46:30.489 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [40] ms
18-Apr-2025 14:46:30.497 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:46:30.524 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [60589] milliseconds
18-Apr-2025 14:48:15.644 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:48:15.649 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
18-Apr-2025 14:48:16.499 SEVERE [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [org.springframework.boot.SpringBootExceptionHandler.LoggedExceptionHandlerThreadLocal] (value [org.springframework.boot.SpringBootExceptionHandler$LoggedExceptionHandlerThreadLocal@68d0e5a1]) and a value of type [org.springframework.boot.SpringBootExceptionHandler] (value [org.springframework.boot.SpringBootExceptionHandler@6bf4dac9]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
18-Apr-2025 14:48:16.515 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:48:16.526 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:50:04.628 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
18-Apr-2025 14:50:04.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
18-Apr-2025 14:50:04.637 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
18-Apr-2025 14:50:04.637 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
18-Apr-2025 14:50:04.637 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
18-Apr-2025 14:50:04.650 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Apr-2025 14:50:04.651 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Apr-2025 14:50:04.651 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Apr-2025 14:50:04.651 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Apr-2025 14:50:04.652 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Apr-2025 14:50:04.653 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Apr-2025 14:50:04.653 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Apr-2025 14:50:04.656 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
18-Apr-2025 14:50:04.661 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
18-Apr-2025 14:50:05.024 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:50:05.054 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [708] milliseconds
18-Apr-2025 14:50:05.116 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Apr-2025 14:50:05.117 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
18-Apr-2025 14:50:05.141 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
18-Apr-2025 14:50:23.688 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
18-Apr-2025 14:51:15.950 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [70,808] ms
18-Apr-2025 14:51:15.956 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
18-Apr-2025 14:51:15.985 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [30] ms
18-Apr-2025 14:51:15.992 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:51:16.020 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [70970] milliseconds
18-Apr-2025 14:51:37.050 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:51:37.058 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
18-Apr-2025 14:51:38.039 SEVERE [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [org.springframework.boot.SpringBootExceptionHandler.LoggedExceptionHandlerThreadLocal] (value [org.springframework.boot.SpringBootExceptionHandler$LoggedExceptionHandlerThreadLocal@1665f69a]) and a value of type [org.springframework.boot.SpringBootExceptionHandler] (value [org.springframework.boot.SpringBootExceptionHandler@67158754]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
18-Apr-2025 14:51:38.047 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:51:38.057 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:53:17.329 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
18-Apr-2025 14:53:17.336 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
18-Apr-2025 14:53:17.336 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
18-Apr-2025 14:53:17.336 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Apr-2025 14:53:17.336 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
18-Apr-2025 14:53:17.336 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Apr-2025 14:53:17.336 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
18-Apr-2025 14:53:17.337 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
18-Apr-2025 14:53:17.337 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
18-Apr-2025 14:53:17.337 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
18-Apr-2025 14:53:17.337 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
18-Apr-2025 14:53:17.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Apr-2025 14:53:17.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Apr-2025 14:53:17.352 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Apr-2025 14:53:17.352 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Apr-2025 14:53:17.352 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
18-Apr-2025 14:53:17.352 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Apr-2025 14:53:17.353 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Apr-2025 14:53:17.354 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Apr-2025 14:53:17.354 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Apr-2025 14:53:17.359 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
18-Apr-2025 14:53:17.364 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
18-Apr-2025 14:53:17.765 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:53:17.807 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [770] milliseconds
18-Apr-2025 14:53:17.902 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Apr-2025 14:53:17.903 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
18-Apr-2025 14:53:17.949 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
18-Apr-2025 14:53:31.647 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
18-Apr-2025 14:54:10.823 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [52,873] ms
18-Apr-2025 14:54:10.824 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
18-Apr-2025 14:54:10.839 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [15] ms
18-Apr-2025 14:54:10.844 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:54:10.883 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [53079] milliseconds
18-Apr-2025 14:55:42.003 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:55:42.011 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
18-Apr-2025 14:55:42.785 SEVERE [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [org.springframework.boot.SpringBootExceptionHandler.LoggedExceptionHandlerThreadLocal] (value [org.springframework.boot.SpringBootExceptionHandler$LoggedExceptionHandlerThreadLocal@4499a303]) and a value of type [org.springframework.boot.SpringBootExceptionHandler] (value [org.springframework.boot.SpringBootExceptionHandler@55a8471b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
18-Apr-2025 14:55:42.796 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:55:42.806 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:57:24.205 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
18-Apr-2025 14:57:24.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
18-Apr-2025 14:57:24.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
18-Apr-2025 14:57:24.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Apr-2025 14:57:24.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
18-Apr-2025 14:57:24.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Apr-2025 14:57:24.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
18-Apr-2025 14:57:24.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
18-Apr-2025 14:57:24.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
18-Apr-2025 14:57:24.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
18-Apr-2025 14:57:24.213 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
18-Apr-2025 14:57:24.225 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Apr-2025 14:57:24.225 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Apr-2025 14:57:24.225 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Apr-2025 14:57:24.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Apr-2025 14:57:24.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
18-Apr-2025 14:57:24.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Apr-2025 14:57:24.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Apr-2025 14:57:24.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
18-Apr-2025 14:57:24.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Apr-2025 14:57:24.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Apr-2025 14:57:24.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Apr-2025 14:57:24.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Apr-2025 14:57:24.227 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Apr-2025 14:57:24.228 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Apr-2025 14:57:24.228 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Apr-2025 14:57:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
18-Apr-2025 14:57:24.238 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
18-Apr-2025 14:57:24.647 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:57:24.679 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [714] milliseconds
18-Apr-2025 14:57:24.756 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Apr-2025 14:57:24.756 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
18-Apr-2025 14:57:24.793 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
18-Apr-2025 14:57:47.875 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
18-Apr-2025 14:58:39.770 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [74,974] ms
18-Apr-2025 14:58:39.772 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
18-Apr-2025 14:58:39.797 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [25] ms
18-Apr-2025 14:58:39.810 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:58:39.865 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [75190] milliseconds
18-Apr-2025 14:59:18.937 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:59:18.944 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
18-Apr-2025 14:59:19.923 SEVERE [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [org.springframework.boot.SpringBootExceptionHandler.LoggedExceptionHandlerThreadLocal] (value [org.springframework.boot.SpringBootExceptionHandler$LoggedExceptionHandlerThreadLocal@831147a]) and a value of type [org.springframework.boot.SpringBootExceptionHandler] (value [org.springframework.boot.SpringBootExceptionHandler@1c2c8399]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
18-Apr-2025 14:59:19.942 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
18-Apr-2025 14:59:19.958 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
18-Apr-2025 15:00:51.636 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
18-Apr-2025 15:00:51.643 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
18-Apr-2025 15:00:51.643 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
18-Apr-2025 15:00:51.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Apr-2025 15:00:51.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
18-Apr-2025 15:00:51.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Apr-2025 15:00:51.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
18-Apr-2025 15:00:51.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
18-Apr-2025 15:00:51.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
18-Apr-2025 15:00:51.645 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
18-Apr-2025 15:00:51.645 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
18-Apr-2025 15:00:51.655 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Apr-2025 15:00:51.655 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Apr-2025 15:00:51.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Apr-2025 15:00:51.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Apr-2025 15:00:51.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Apr-2025 15:00:51.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Apr-2025 15:00:51.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Apr-2025 15:00:51.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Apr-2025 15:00:51.665 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
18-Apr-2025 15:00:51.668 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
18-Apr-2025 15:00:51.974 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Apr-2025 15:00:51.998 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [592] milliseconds
18-Apr-2025 15:00:52.059 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Apr-2025 15:00:52.060 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
18-Apr-2025 15:00:52.081 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
18-Apr-2025 15:01:15.491 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
18-Apr-2025 15:02:15.015 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [82,933] ms
18-Apr-2025 15:02:15.016 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
18-Apr-2025 15:02:15.044 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [29] ms
18-Apr-2025 15:02:15.049 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Apr-2025 15:02:15.126 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [83132] milliseconds
21-Apr-2025 23:28:16.155 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
21-Apr-2025 23:28:16.164 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
21-Apr-2025 23:28:16.164 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
21-Apr-2025 23:28:16.164 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
21-Apr-2025 23:28:16.164 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
21-Apr-2025 23:28:16.164 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
21-Apr-2025 23:28:16.165 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
21-Apr-2025 23:28:16.165 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
21-Apr-2025 23:28:16.165 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
21-Apr-2025 23:28:16.165 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
21-Apr-2025 23:28:16.165 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
21-Apr-2025 23:28:16.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
21-Apr-2025 23:28:16.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
21-Apr-2025 23:28:16.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
21-Apr-2025 23:28:16.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
21-Apr-2025 23:28:16.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
21-Apr-2025 23:28:16.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
21-Apr-2025 23:28:16.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
21-Apr-2025 23:28:16.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
21-Apr-2025 23:28:16.196 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
21-Apr-2025 23:28:16.200 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
21-Apr-2025 23:28:16.564 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:28:16.604 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [733] milliseconds
21-Apr-2025 23:28:16.680 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
21-Apr-2025 23:28:16.680 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
21-Apr-2025 23:28:16.703 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
21-Apr-2025 23:28:16.727 SEVERE [main] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context []
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1637)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1645)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1483)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:717)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103)
at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72)
at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:168)
at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:131)
at java.base/sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:92)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:123)
at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:812)
at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:948)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:292)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:163)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:654)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1902)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:769)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:420)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1620)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:761)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
21-Apr-2025 23:28:16.769 SEVERE [main] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:654)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1902)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:769)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:420)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1620)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:761)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.WarResourceSet@5a5a729f]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:125)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:723)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4159)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4281)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
... 37 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: zip END header not found
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:141)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
... 44 more
Caused by: java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1637)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1645)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1483)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:717)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:138)
... 45 more
21-Apr-2025 23:28:16.773 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [68] ms
21-Apr-2025 23:28:16.774 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
21-Apr-2025 23:28:17.183 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [409] ms
21-Apr-2025 23:28:17.184 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/app]
21-Apr-2025 23:28:17.203 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/app] has finished in [19] ms
21-Apr-2025 23:28:17.208 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:28:17.227 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [623] milliseconds
21-Apr-2025 23:32:40.652 INFO [Thread-1] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:32:40.760 INFO [Thread-1] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
21-Apr-2025 23:32:40.883 INFO [Thread-1] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:32:40.910 INFO [Thread-1] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:36:04.469 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.40
21-Apr-2025 23:36:04.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 17:20:53 UTC
21-Apr-2025 23:36:04.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.40.0
21-Apr-2025 23:36:04.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
21-Apr-2025 23:36:04.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.167.4-microsoft-standard-WSL2
21-Apr-2025 23:36:04.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
21-Apr-2025 23:36:04.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
21-Apr-2025 23:36:04.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.14+7
21-Apr-2025 23:36:04.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
21-Apr-2025 23:36:04.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
21-Apr-2025 23:36:04.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
21-Apr-2025 23:36:04.503 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
21-Apr-2025 23:36:04.503 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
21-Apr-2025 23:36:04.504 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
21-Apr-2025 23:36:04.504 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
21-Apr-2025 23:36:04.504 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
21-Apr-2025 23:36:04.504 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
21-Apr-2025 23:36:04.504 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
21-Apr-2025 23:36:04.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
21-Apr-2025 23:36:04.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
21-Apr-2025 23:36:04.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
21-Apr-2025 23:36:04.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
21-Apr-2025 23:36:04.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
21-Apr-2025 23:36:04.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
21-Apr-2025 23:36:04.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
21-Apr-2025 23:36:04.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
21-Apr-2025 23:36:04.519 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2].
21-Apr-2025 23:36:04.524 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
21-Apr-2025 23:36:05.240 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:36:05.313 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1239] milliseconds
21-Apr-2025 23:36:05.489 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
21-Apr-2025 23:36:05.490 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.40]
21-Apr-2025 23:36:05.551 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
21-Apr-2025 23:36:05.590 SEVERE [main] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context []
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1637)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1645)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1483)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:717)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103)
at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72)
at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:168)
at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:131)
at java.base/sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:92)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:123)
at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:812)
at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:948)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:292)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:163)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:654)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1902)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:769)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:420)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1620)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:761)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
21-Apr-2025 23:36:05.657 SEVERE [main] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:654)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1902)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:769)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:420)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1620)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:761)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.WarResourceSet@d554c5f]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:125)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:723)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4159)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4281)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
... 37 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: zip END header not found
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:141)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
... 44 more
Caused by: java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1637)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1645)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1483)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:717)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:138)
... 45 more
21-Apr-2025 23:36:05.660 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [108] ms
21-Apr-2025 23:36:05.662 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/custom]
21-Apr-2025 23:36:06.431 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/custom] has finished in [769] ms
21-Apr-2025 23:36:06.432 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/app]
21-Apr-2025 23:36:06.468 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/app] has finished in [36] ms
21-Apr-2025 23:36:06.478 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:36:06.561 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1247] milliseconds
21-Apr-2025 23:51:48.137 INFO [Thread-1] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:51:48.297 INFO [Thread-1] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
21-Apr-2025 23:51:48.716 INFO [Thread-1] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
21-Apr-2025 23:51:48.787 INFO [Thread-1] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 449 KiB

BIN
static/FHIRFLARE.png.old Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 222 KiB

BIN
static/favicon.ico.old Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

View File

@ -41,7 +41,7 @@
<svg aria-hidden="true" class="d2h-icon d2h-moved" height="16" title="renamed" version="1.1"
viewBox="0 0 14 16" width="14">
<path d="M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z"></path>
</svg> <a href="#d2h-150321" class="d2h-file-name">../tmp/{tmp_k0pky49/input.json → tmp_hia6e3c/fsh-generated/data}/fsh-index.json</a>
</svg> <a href="#d2h-898460" class="d2h-file-name">../tmp/{tmpkn9pyg0k/input.json → tmpb_q8uf73/fsh-generated/data}/fsh-index.json</a>
<span class="d2h-file-stats">
<span class="d2h-lines-added">+10</span>
<span class="d2h-lines-deleted">-0</span>
@ -50,12 +50,12 @@
</li>
</ol>
</div><div class="d2h-wrapper d2h-light-color-scheme">
<div id="d2h-150321" class="d2h-file-wrapper" data-lang="json">
<div id="d2h-898460" class="d2h-file-wrapper" data-lang="json">
<div class="d2h-file-header">
<span class="d2h-file-name-wrapper">
<svg aria-hidden="true" class="d2h-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12">
<path d="M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z"></path>
</svg> <span class="d2h-file-name">../tmp/{tmp_k0pky49/input.json → tmp_hia6e3c/fsh-generated/data}/fsh-index.json</span>
</svg> <span class="d2h-file-name">../tmp/{tmpkn9pyg0k/input.json → tmpb_q8uf73/fsh-generated/data}/fsh-index.json</span>
<span class="d2h-tag d2h-moved d2h-moved-tag">RENAMED</span></span>
<label class="d2h-file-collapse">
<input class="d2h-file-collapse-input" type="checkbox" name="viewed" value="viewed">
@ -213,7 +213,7 @@
<td class="d2h-ins">
<div class="d2h-code-side-line">
<span class="d2h-code-line-prefix">+</span>
<span class="d2h-code-line-ctn"> &quot;outputFile&quot;: &quot;Condition-vkc.json&quot;,</span>
<span class="d2h-code-line-ctn"> &quot;outputFile&quot;: &quot;Encounter-discharge-1.json&quot;,</span>
</div>
</td>
</tr><tr>
@ -223,7 +223,7 @@
<td class="d2h-ins">
<div class="d2h-code-side-line">
<span class="d2h-code-line-prefix">+</span>
<span class="d2h-code-line-ctn"> &quot;fshName&quot;: &quot;vkc&quot;,</span>
<span class="d2h-code-line-ctn"> &quot;fshName&quot;: &quot;discharge-1&quot;,</span>
</div>
</td>
</tr><tr>
@ -243,7 +243,7 @@
<td class="d2h-ins">
<div class="d2h-code-side-line">
<span class="d2h-code-line-prefix">+</span>
<span class="d2h-code-line-ctn"> &quot;fshFile&quot;: &quot;instances&#x2F;vkc.fsh&quot;,</span>
<span class="d2h-code-line-ctn"> &quot;fshFile&quot;: &quot;instances&#x2F;discharge-1.fsh&quot;,</span>
</div>
</td>
</tr><tr>
@ -263,7 +263,7 @@
<td class="d2h-ins">
<div class="d2h-code-side-line">
<span class="d2h-code-line-prefix">+</span>
<span class="d2h-code-line-ctn"> &quot;endLine&quot;: 15</span>
<span class="d2h-code-line-ctn"> &quot;endLine&quot;: 12</span>
</div>
</td>
</tr><tr>

View File

@ -1,3 +1 @@
Alias: $allergyintolerance-clinical = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical
Alias: $allergyintolerance-verification = http://terminology.hl7.org/CodeSystem/allergyintolerance-verification
Alias: $sct = http://snomed.info/sct
Alias: $v3-ActCode = http://terminology.hl7.org/CodeSystem/v3-ActCode

View File

@ -0,0 +1,12 @@
Instance: discharge-1
InstanceOf: Encounter
Usage: #example
* meta.profile = "http://hl7.org.au/fhir/core/StructureDefinition/au-core-encounter"
* status = #finished
* class = $v3-ActCode#EMER "emergency"
* subject = Reference(Patient/ronny-irvine)
* period
* start = "2023-02-20T06:15:00+10:00"
* end = "2023-02-20T18:19:00+10:00"
* location.location = Reference(Location/murrabit-hospital)
* serviceProvider = Reference(Organization/murrabit-hospital)

View File

@ -1,50 +1 @@
{
"resourceType": "AllergyIntolerance",
"id": "aspirin",
"meta": {
"profile": [
"http://hl7.org.au/fhir/core/StructureDefinition/au-core-allergyintolerance"
]
},
"clinicalStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
"code": "active"
}
],
"text": "Active"
},
"verificationStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
"code": "confirmed"
}
],
"text": "Confirmed"
},
"category": [
"medication"
],
"criticality": "unable-to-assess",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "387458008"
}
],
"text": "Aspirin allergy"
},
"patient": {
"reference": "Patient/hayes-arianne"
},
"recordedDate": "2024-02-10",
"recorder": {
"reference": "PractitionerRole/specialistphysicians-swanborough-erick"
},
"asserter": {
"reference": "PractitionerRole/specialistphysicians-swanborough-erick"
}
}
{"resourceType":"Encounter","id":"discharge-1","meta":{"profile":["http://hl7.org.au/fhir/core/StructureDefinition/au-core-encounter"]},"text":{"status":"generated","div":"<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Encounter discharge-1</b></p><a name=\"discharge-1\"> </a><a name=\"hcdischarge-1\"> </a><a name=\"discharge-1-en-AU\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-au-core-encounter.html\">AU Core Encounter</a></p></div><p><b>status</b>: Finished</p><p><b>class</b>: <a href=\"http://terminology.hl7.org/6.2.0/CodeSystem-v3-ActCode.html#v3-ActCode-EMER\">ActCode EMER</a>: emergency</p><p><b>subject</b>: <a href=\"Patient-ronny-irvine.html\">Ronny Lawrence Irvine Male, DoB: ( DVA Number:\u00a0QX827261)</a></p><p><b>period</b>: 2023-02-20 06:15:00+1000 --&gt; 2023-02-20 18:19:00+1000</p><h3>Locations</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Location</b></td></tr><tr><td style=\"display: none\">*</td><td><a href=\"Location-murrabit-hospital.html\">Location Murrabit Public Hospital</a></td></tr></table><p><b>serviceProvider</b>: <a href=\"Organization-murrabit-hospital.html\">Organization Murrabit Public Hospital</a></p></div>"},"status":"finished","class":{"system":"http://terminology.hl7.org/CodeSystem/v3-ActCode","code":"EMER","display":"emergency"},"subject":{"reference":"Patient/ronny-irvine"},"period":{"start":"2023-02-20T06:15:00+10:00","end":"2023-02-20T18:19:00+10:00"},"location":[{"location":{"reference":"Location/murrabit-hospital"}}],"serviceProvider":{"reference":"Organization/murrabit-hospital"}}

View File

@ -1,6 +1,8 @@
canonical: http://example.org
fhirVersion: 4.0.1
fhirVersion: 4.3.0
FSHOnly: true
applyExtensionMetadataToRoot: false
id: example
name: Example
dependencies:
hl7.fhir.us.core: 6.1.0

66
templates/about.html Normal file
View File

@ -0,0 +1,66 @@
{% extends "base.html" %}
{% block content %}
<div class="px-4 py-5 my-5 text-center">
<img class="d-block mx-auto mb-4" src="{{ url_for('static', filename='FHIRFLARE.png') }}" alt="" width="192" height="192">
<h1 class="display-5 fw-bold text-body-emphasis">About FHIRFLARE IG Toolkit{% if app_mode == 'lite' %} (Lite Version){% endif %}</h1>
<div class="col-lg-8 mx-auto">
<p class="lead mb-4">
A comprehensive toolkit designed for developers and implementers working with FHIR® Implementation Guides (IGs).
</p>
</div>
</div>
<div class="container mt-4">
<div class="row justify-content-center">
<div class="col-lg-10">
<h2>Overview</h2>
<p>The FHIRFLARE IG Toolkit is a web application built to simplify the lifecycle of managing, processing, validating, and deploying FHIR Implementation Guides. It provides a central, user-friendly interface to handle common tasks associated with FHIR IGs, streamlining workflows and improving productivity.</p>
<p>Whether you're downloading the latest IG versions, checking compliance, converting resources to FHIR Shorthand (FSH), or pushing guides to a test server, this toolkit aims to be an essential companion.</p>
{% if app_mode == 'lite' %}
<div class="alert alert-info" role="alert">
<i class="bi bi-info-circle-fill me-2"></i>You are currently running the <strong>Lite Version</strong> of the toolkit. This version excludes the built-in HAPI FHIR server and relies on external FHIR servers for functionalities like the API Explorer and Operations UI. Validation uses local StructureDefinition checks.
</div>
{% else %}
<div class="alert alert-success" role="alert">
<i class="bi bi-check-circle-fill me-2"></i>You are currently running the <strong>Standalone Version</strong> of the toolkit, which includes a built-in HAPI FHIR server (accessible via the `/fhir` proxy) for local validation and exploration.
</div>
{% endif %}
<h2 class="mt-4">Core Features</h2>
<ul>
<li><strong>IG Package Management:</strong> Import FHIR IG packages directly from the registry using various version formats (e.g., `1.1.0-preview`, `current`), with flexible dependency handling (Recursive, Patch Canonical, Tree Shaking). View, process, unload, or delete downloaded packages, with detection of duplicate dependencies.</li>
<li><strong>IG Processing & Viewing:</strong> Extract and display key information from processed IGs, including defined profiles, referenced resource types, must-support elements, and examples. Visualize profile relationships like `compliesWithProfile` and `imposeProfile`.</li>
<li><strong>FHIR Validation:</strong> Validate individual FHIR resources or entire Bundles against the profiles defined within a selected IG. Provides detailed error and warning feedback. (Note: Validation accuracy is still under development, especially for complex constraints).</li>
<li><strong>FHIR Server Interaction:</strong>
<ul>
<li>Push processed IGs (including dependencies) to a target FHIR server with real-time console feedback.</li>
<li>Explore FHIR server capabilities and interact with resources using the "FHIR API Explorer" (GET/POST/PUT/DELETE) and "FHIR UI Operations" pages, supporting both the local HAPI server (in Standalone mode) and external servers.</li>
</ul>
</li>
<li><strong>FHIR Shorthand (FSH) Conversion:</strong> Convert FHIR JSON or XML resources to FSH using the integrated GoFSH tool. Offers advanced options like context package selection, various output styles, FHIR version selection, dependency loading, alias file usage, and round-trip validation ("Fishing Trip") with SUSHI. Includes a loading indicator during conversion.</li>
<li><strong>API Support:</strong> Provides basic API endpoints for programmatic import and push operations.</li>
</ul>
<h2 class="mt-4">Technology</h2>
<p>The toolkit leverages a combination of technologies:</p>
<ul>
<li><strong>Backend:</strong> Python with the Flask web framework and SQLAlchemy for database interaction (SQLite).</li>
<li><strong>Frontend:</strong> HTML, Bootstrap 5 for styling, and JavaScript for interactivity and dynamic content loading. Uses Lottie-Web for animations.</li>
<li><strong>FHIR Tooling:</strong> Integrates GoFSH and SUSHI (via Node.js) for FSH conversion and validation. Utilizes the HAPI FHIR server (in Standalone mode) for robust FHIR validation and operations.</li>
<li><strong>Deployment:</strong> Runs within a Docker container managed by Docker Compose and Supervisor, ensuring a consistent environment.</li>
</ul>
<h2 class="mt-4">Get Involved</h2>
<p>This is an open-source project. Contributions, feedback, and bug reports are welcome!</p>
<ul>
<li><strong>GitHub Repository:</strong> <a href="https://github.com/Sudo-JHare/FHIRFLARE-IG-Toolkit" target="_blank" rel="noopener noreferrer">Sudo-JHare/FHIRFLARE-IG-Toolkit</a></li>
<li><strong>Report an Issue:</strong> <a href="https://github.com/Sudo-JHare/FHIRFLARE-IG-Toolkit/issues/new/choose" target="_blank" rel="noopener noreferrer">Raise an Issue</a></li>
<li><strong>Discussions:</strong> <a href="https://github.com/Sudo-JHare/FHIRFLARE-IG-Toolkit/discussions" target="_blank" rel="noopener noreferrer">Project Discussions</a></li>
</ul>
</div>
</div>
</div>
{% endblock %}

View File

@ -8,7 +8,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css" rel="stylesheet" />
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='favicon.ico') }}">
<title>{% if title %}{{ title }} - {% endif %}{{ site_name }}</title>
<title>{% if app_mode == 'lite' %}(Lite Version) {% endif %}{% if title %}{{ title }} - {% endif %}{{ site_name }}</title>
<style>
/* Default (Light Theme) Styles */
body {
@ -753,7 +753,7 @@ html[data-theme="dark"] .structure-tree-root .list-group-item-warning {
<body class="d-flex flex-column min-vh-100">
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{ url_for('index') }}">{{ site_name }}</a>
<a class="navbar-brand" href="{{ url_for('index') }}">{{ site_name }}{% if app_mode == 'lite' %} (Lite){% endif %}</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

View File

@ -86,6 +86,9 @@
<script>
document.addEventListener('DOMContentLoaded', function() {
console.log("DOMContentLoaded event fired."); // Log when the listener starts
// --- Get DOM Elements & Check Existence ---
const form = document.getElementById('fhirRequestForm');
const sendButton = document.getElementById('sendRequest');
const fhirPath = document.getElementById('fhirPath');
@ -103,29 +106,79 @@ document.addEventListener('DOMContentLoaded', function() {
const copyRequestBodyButton = document.getElementById('copyRequestBody');
const copyResponseHeadersButton = document.getElementById('copyResponseHeaders');
const copyResponseBodyButton = document.getElementById('copyResponseBody');
let useLocalHapi = true;
// Show/hide request body
// --- Element Existence Check ---
let elementsReady = true;
if (!form) { console.error("Element not found: #fhirRequestForm"); elementsReady = false; }
if (!sendButton) { console.error("Element not found: #sendRequest"); elementsReady = false; }
if (!fhirPath) { console.error("Element not found: #fhirPath"); elementsReady = false; }
if (!requestBody) { console.warn("Element not found: #requestBody"); } // Warn only, might be ok if not POST/PUT
if (!requestBodyGroup) { console.warn("Element not found: #requestBodyGroup"); } // Warn only
if (!jsonError) { console.warn("Element not found: #jsonError"); } // Warn only
if (!responseCard) { console.error("Element not found: #responseCard"); elementsReady = false; }
if (!responseStatus) { console.error("Element not found: #responseStatus"); elementsReady = false; }
if (!responseHeaders) { console.error("Element not found: #responseHeaders"); elementsReady = false; }
if (!responseBody) { console.error("Element not found: #responseBody"); elementsReady = false; }
if (!toggleServerButton) { console.error("Element not found: #toggleServer"); elementsReady = false; }
if (!toggleLabel) { console.error("Element not found: #toggleLabel"); elementsReady = false; }
if (!fhirServerUrl) { console.error("Element not found: #fhirServerUrl"); elementsReady = false; }
// Add checks for copy buttons if needed
if (!elementsReady) {
console.error("One or more critical UI elements could not be found. Script execution halted.");
// Optionally display a user-facing error message here
// const errorDisplay = document.getElementById('some-error-area');
// if(errorDisplay) errorDisplay.textContent = "Error initializing UI components.";
return; // Stop script execution if critical elements are missing
}
console.log("All critical elements checked/found.");
// --- State Variable ---
let useLocalHapi = true; // Default state, will be adjusted by Lite mode check
// --- DEFINE FUNCTIONS (as before) ---
function updateServerToggleUI() {
// Add checks inside the function too, just in case
if (!toggleLabel || !fhirServerUrl) {
console.error("updateServerToggleUI: Toggle UI elements became unavailable!");
return;
}
toggleLabel.textContent = useLocalHapi ? 'Use Local HAPI' : 'Use Custom URL';
fhirServerUrl.style.display = useLocalHapi ? 'none' : 'block';
fhirServerUrl.classList.remove('is-invalid');
}
function toggleServer() {
if (appMode === 'lite') return; // Ignore clicks in Lite mode
useLocalHapi = !useLocalHapi;
updateServerToggleUI();
if (useLocalHapi && fhirServerUrl) {
fhirServerUrl.value = '';
}
console.log(`Server toggled: ${useLocalHapi ? 'Local HAPI' : 'Custom URL'}`);
}
function updateRequestBodyVisibility() {
const selectedMethod = document.querySelector('input[name="method"]:checked').value;
const selectedMethod = document.querySelector('input[name="method"]:checked')?.value;
if (!requestBodyGroup || !selectedMethod) return;
requestBodyGroup.style.display = (selectedMethod === 'POST' || selectedMethod === 'PUT') ? 'block' : 'none';
if (selectedMethod !== 'POST' && selectedMethod !== 'PUT') {
requestBody.value = '';
jsonError.style.display = 'none';
if (requestBody) requestBody.value = '';
if (jsonError) jsonError.style.display = 'none';
}
}
// Validate request body (JSON or form-encoded)
function validateRequestBody(method, path) {
// Added check for requestBody existence
if (!requestBody || !jsonError) return method === 'GET' ? null : '';
if (!requestBody.value.trim()) {
requestBody.classList.remove('is-invalid');
jsonError.style.display = 'none';
return method === 'GET' ? null : '';
}
const isSearch = path.endsWith('_search');
if (method === 'POST' && isSearch) {
return requestBody.value; // Allow form-encoded for _search
}
const isSearch = path && path.endsWith('_search');
if (method === 'POST' && isSearch) { return requestBody.value; }
try {
JSON.parse(requestBody.value);
requestBody.classList.remove('is-invalid');
@ -139,165 +192,107 @@ document.addEventListener('DOMContentLoaded', function() {
}
}
// Clean FHIR path
function cleanFhirPath(path) {
if (!path) return '';
const cleaned = path.replace(/^(r4\/|fhir\/)*/i, '').replace(/^\/+|\/+$/g, '');
console.log(`Cleaned path: ${path} -> ${cleaned}`);
return cleaned;
}
// Toggle server
function toggleServer() {
useLocalHapi = !useLocalHapi;
toggleLabel.textContent = useLocalHapi ? 'Use Local HAPI' : 'Use Custom URL';
fhirServerUrl.style.display = useLocalHapi ? 'none' : 'block';
fhirServerUrl.value = '';
console.log(`Server toggled: ${useLocalHapi ? 'Local HAPI' : 'Custom URL'}`);
}
// Copy to clipboard
async function copyToClipboard(text, button) {
if (!text || !button) return;
try {
await navigator.clipboard.writeText(text);
button.innerHTML = '<i class="bi bi-check"></i>';
setTimeout(() => {
button.innerHTML = '<i class="bi bi-clipboard"></i>';
}, 2000);
} catch (err) {
console.error('Copy failed:', err);
alert('Failed to copy to clipboard');
}
const originalIcon = button.innerHTML;
button.innerHTML = '<i class="bi bi-check-lg"></i>';
setTimeout(() => { button.innerHTML = originalIcon; }, 2000);
} catch (err) { console.error('Copy failed:', err); alert('Failed to copy to clipboard'); }
}
// Bind toggle event
toggleServerButton.addEventListener('click', toggleServer);
// --- INITIAL SETUP & MODE CHECK ---
const appMode = '{{ app_mode | default("standalone") | lower }}';
console.log('App Mode:', appMode);
// Bind copy events
copyRequestBodyButton.addEventListener('click', () => {
copyToClipboard(requestBody.value, copyRequestBodyButton);
});
copyResponseHeadersButton.addEventListener('click', () => {
copyToClipboard(responseHeaders.textContent, copyResponseHeadersButton);
});
copyResponseBodyButton.addEventListener('click', () => {
copyToClipboard(responseBody.textContent, copyResponseBodyButton);
});
// Update visibility on method change
methodRadios.forEach(radio => {
radio.addEventListener('change', updateRequestBodyVisibility);
});
// Validate body on input
requestBody.addEventListener('input', () => validateRequestBody(
document.querySelector('input[name="method"]:checked').value,
fhirPath.value
));
// Send request
sendButton.addEventListener('click', async function() {
if (!fhirPath.value.trim()) {
fhirPath.classList.add('is-invalid');
console.log('Path validation failed: empty');
return;
}
fhirPath.classList.remove('is-invalid');
const method = document.querySelector('input[name="method"]:checked').value;
console.log(`Sending request: Method=${method}, Input Path=${fhirPath.value}, Server=${useLocalHapi ? 'Local HAPI' : fhirServerUrl.value}`);
const data = validateRequestBody(method, fhirPath.value);
if ((method === 'POST' || method === 'PUT') && data === null) {
console.log('Body validation failed');
sendButton.disabled = false;
sendButton.textContent = 'Send Request';
return;
}
sendButton.disabled = true;
sendButton.textContent = 'Sending...';
responseCard.style.display = 'none';
const cleanPath = cleanFhirPath(fhirPath.value);
let fetchUrl, headers = {
'Accept': 'application/fhir+json'
};
if (useLocalHapi) {
fetchUrl = `/fhir/${cleanPath}`;
if (method === 'POST' || method === 'PUT') {
headers['Content-Type'] = cleanPath.endsWith('_search') ? 'application/x-www-form-urlencoded' : 'application/fhir+json';
headers['X-CSRFToken'] = '{{ form.csrf_token._value() }}';
if (appMode === 'lite') {
console.log('Lite mode detected: Disabling local HAPI toggle and setting default.');
// Check toggleServerButton again before using
if (toggleServerButton) {
toggleServerButton.disabled = true;
toggleServerButton.title = "Local HAPI is not available in Lite mode";
toggleServerButton.classList.add('disabled');
useLocalHapi = false;
if (fhirServerUrl) {
fhirServerUrl.placeholder = "Enter FHIR Base URL (Local HAPI unavailable)";
}
} else {
if (!fhirServerUrl.value.trim()) {
fhirServerUrl.classList.add('is-invalid');
console.log('Server URL validation failed: empty');
sendButton.disabled = false;
sendButton.textContent = 'Send Request';
return;
}
fhirServerUrl.classList.remove('is-invalid');
fetchUrl = `${fhirServerUrl.value.replace(/\/+$/, '')}/${cleanPath}`;
if (method === 'POST' || method === 'PUT') {
headers['Content-Type'] = cleanPath.endsWith('_search') ? 'application/x-www-form-urlencoded' : 'application/fhir+json';
}
// This console log should have appeared earlier if button was missing
console.error("Lite mode: Could not find toggle server button (#toggleServer) to disable.");
}
} else {
console.log('Standalone mode detected: Enabling local HAPI toggle.');
if (toggleServerButton) {
toggleServerButton.disabled = false;
toggleServerButton.title = "";
toggleServerButton.classList.remove('disabled');
} else {
console.error("Standalone mode: Could not find toggle server button (#toggleServer) to enable.");
}
}
console.log('Fetch details:', {
url: fetchUrl,
method,
headers,
body: data ? data.substring(0, 100) + '...' : null
});
try {
const response = await fetch(fetchUrl, {
method: method,
headers: headers,
body: method === 'GET' ? undefined : data
});
console.log('Response status:', response.status, response.statusText);
const responseHeadersObj = {};
response.headers.forEach((value, key) => responseHeadersObj[key] = value);
const contentType = responseHeadersObj['content-type'] || '';
const text = await response.text();
console.log('Response headers:', responseHeadersObj);
console.log('Response body (first 200 chars):', text.substring(0, 200));
responseCard.style.display = 'block';
responseStatus.textContent = `${response.status} ${response.statusText}`;
responseStatus.className = `badge ${response.status < 300 ? 'bg-success' : response.status < 400 ? 'bg-info' : 'bg-danger'}`;
responseHeaders.textContent = JSON.stringify(responseHeadersObj, null, 2);
if (contentType.includes('application/fhir+json') || contentType.includes('application/json')) {
try {
responseBody.textContent = JSON.stringify(JSON.parse(text), null, 2);
} catch (e) {
console.warn('Failed to parse JSON:', e.message);
responseBody.textContent = text;
}
} else {
responseBody.textContent = text;
}
} catch (error) {
console.error('Fetch error:', error.name, error.message, error.stack);
responseCard.style.display = 'block';
responseStatus.textContent = 'Error';
responseStatus.className = 'badge bg-danger';
responseHeaders.textContent = '';
responseBody.textContent = `Error: ${error.message}`;
} finally {
sendButton.disabled = false;
sendButton.textContent = 'Send Request';
}
});
// Initialize visibility
// --- SET INITIAL UI STATE ---
// Call these *after* the mode check and function definitions
updateServerToggleUI();
updateRequestBodyVisibility();
});
// --- ATTACH EVENT LISTENERS ---
// Server Toggle Button
if (toggleServerButton) { // Check again before adding listener
toggleServerButton.addEventListener('click', toggleServer);
} else {
console.error("Cannot attach listener: Toggle Server Button not found.");
}
// Copy Buttons (Add checks)
if (copyRequestBodyButton && requestBody) { copyRequestBodyButton.addEventListener('click', () => copyToClipboard(requestBody.value, copyRequestBodyButton)); }
if (copyResponseHeadersButton && responseHeaders) { copyResponseHeadersButton.addEventListener('click', () => copyToClipboard(responseHeaders.textContent, copyResponseHeadersButton)); }
if (copyResponseBodyButton && responseBody) { copyResponseBodyButton.addEventListener('click', () => copyToClipboard(responseBody.textContent, copyResponseBodyButton)); }
// Method Radio Buttons
if (methodRadios) {
methodRadios.forEach(radio => { radio.addEventListener('change', updateRequestBodyVisibility); });
}
// Request Body Input Validation
if (requestBody && fhirPath) {
requestBody.addEventListener('input', () => validateRequestBody( document.querySelector('input[name="method"]:checked')?.value, fhirPath.value ));
}
// Send Request Button
if (sendButton && fhirPath && form) { // Added form check for CSRF
sendButton.addEventListener('click', async function() {
// (Keep the existing fetch/send logic here)
// ...
// Ensure you check for element existence inside this handler too if needed, e.g.:
if (!fhirPath.value.trim()) { /* ... */ }
const method = document.querySelector('input[name="method"]:checked')?.value;
if (!method) { /* ... */ }
// ...etc...
// Example: CSRF token retrieval inside handler
const csrfTokenInput = form.querySelector('input[name="csrf_token"]');
const csrfToken = csrfTokenInput ? csrfTokenInput.value : null;
if (useLocalHapi && (method === 'POST' || method === 'PUT') && csrfToken) {
headers['X-CSRFToken'] = csrfToken;
} else if (useLocalHapi && (method === 'POST' || method === 'PUT')) {
console.warn("CSRF token input not found for local request.");
// Potentially alert the user or block the request
}
// ... rest of send logic ...
});
} else {
console.error("Cannot attach listener: Send Request Button, FHIR Path input, or Form element not found.");
}
}); // End DOMContentLoaded Listener
</script>
{% endblock %}

View File

@ -336,6 +336,10 @@ document.addEventListener('DOMContentLoaded', () => {
const swaggerUiContainer = document.getElementById('swagger-ui');
const selectedResourceSpan = document.getElementById('selectedResource');
const queryListContainer = document.getElementById('queryList');
// --- Add checks if desired ---
if (!toggleServerButton || !toggleLabel || !fhirServerUrlInput /* || other critical elements */) {
console.error("Crucial elements missing, stopping script."); return;
}
// --- State Variables ---
let isUsingLocalHapi = true; // Default state
@ -344,6 +348,55 @@ document.addEventListener('DOMContentLoaded', () => {
let fetchedMetadataCache = null;
let operationDefinitionCache = {}; // <<< ADD THIS LINE: Cache for fetched OperationDefinitions
// <<< ADD THIS SECTION: Get App Mode >>>
const appMode = '{{ app_mode | default("standalone") | lower }}'; // Get mode from Flask
console.log(`App Mode (Operations): ${appMode}`);
// <<< END ADD >>>
// --- Helper Function to Update Toggle Button/Input UI (MODIFY THIS FUNCTION) ---
function updateServerToggleUI() {
// Keep checks for elements
if (!toggleLabel || !fhirServerUrlInput || !toggleServerButton) {
console.error("updateServerToggleUI: Required elements missing!");
return;
}
console.log(`updateServerToggleUI: appMode=${appMode}, current isUsingLocalHapi=${isUsingLocalHapi}`); // Debug
// <<< MODIFY THIS WHOLE IF/ELSE BLOCK >>>
if (appMode === 'lite') {
console.log("-> Applying Lite mode UI settings.");
isUsingLocalHapi = false; // Force state
toggleServerButton.disabled = true; // Set disabled attribute
toggleServerButton.classList.add('disabled'); // Add Bootstrap disabled class
// --- ADD !important to pointerEvents ---
toggleServerButton.style.pointerEvents = 'none !important';
// --- END ADD ---
toggleServerButton.setAttribute('aria-disabled', 'true'); // Accessibility
toggleServerButton.title = "Local HAPI is not available in Lite mode"; // Tooltip
toggleLabel.textContent = 'Use Custom URL'; // Set label text
fhirServerUrlInput.style.display = 'block'; // Show custom URL input
fhirServerUrlInput.placeholder = "Enter FHIR Base URL (Local HAPI unavailable)";
} else {
// Standalone mode
console.log("-> Applying Standalone mode UI settings.");
toggleServerButton.disabled = false; // Ensure enabled
toggleServerButton.classList.remove('disabled'); // Remove Bootstrap disabled class
// --- Ensure pointerEvents is auto in standalone ---
toggleServerButton.style.pointerEvents = 'auto';
// --- END ---
toggleServerButton.removeAttribute('aria-disabled'); // Accessibility
toggleServerButton.title = ""; // Clear tooltip
// Set text/display based on current standalone state
toggleLabel.textContent = isUsingLocalHapi ? 'Use Local HAPI' : 'Use Custom URL';
fhirServerUrlInput.style.display = isUsingLocalHapi ? 'none' : 'block';
fhirServerUrlInput.placeholder = "Enter FHIR Base URL e.g., https://hapi.fhir.org/baseR4";
}
fhirServerUrlInput.classList.remove('is-invalid'); // Clear validation state
console.log(`-> updateServerToggleUI finished. Button disabled: ${toggleServerButton.disabled}, pointer-events: ${toggleServerButton.style.pointerEvents}`); // Log pointer-events
// <<< END MODIFICATION >>>
}
// <<< REFINED fetchOperationDefinition >>>
// <<< REFINED fetchOperationDefinition (v3 - Handles Local Proxy Target Correctly) >>>
async function fetchOperationDefinition(definitionUrl) {
@ -427,37 +480,74 @@ document.addEventListener('DOMContentLoaded', () => {
}
// <<< END REFINED fetchOperationDefinition (v3) >>>
// --- Helper Function to Update Toggle Button/Input UI ---
function updateServerToggleUI() {
if (!toggleLabel || !fhirServerUrlInput) {
console.error("Toggle UI elements not found!");
// Keep checks for elements
if (!toggleLabel || !fhirServerUrlInput || !toggleServerButton) {
console.error("updateServerToggleUI: Required elements missing!");
return;
}
toggleLabel.textContent = isUsingLocalHapi ? 'Use Local HAPI' : 'Use Custom URL';
fhirServerUrlInput.style.display = isUsingLocalHapi ? 'none' : 'block';
// Ensure input is cleared *only* when switching TO local
// No clearing needed here, handled in toggleServerSelection if needed
fhirServerUrlInput.classList.remove('is-invalid');
console.log(`updateServerToggleUI: appMode=<span class="math-inline">\{appMode\}, current isUsingLocalHapi\=</span>{isUsingLocalHapi}`); // Debug
if (appMode === 'lite') {
console.log("-> Applying Lite mode UI settings.");
isUsingLocalHapi = false; // Force state
toggleServerButton.disabled = true; // Set disabled attribute
toggleServerButton.classList.add('disabled'); // Add Bootstrap disabled class
// --- ADD !important to pointerEvents ---
toggleServerButton.style.pointerEvents = 'none !important';
// --- END ADD ---
toggleServerButton.setAttribute('aria-disabled', 'true'); // Accessibility
toggleServerButton.title = "Local HAPI is not available in Lite mode"; // Tooltip
toggleLabel.textContent = 'Use Custom URL'; // Set label text
fhirServerUrlInput.style.display = 'block'; // Show custom URL input
fhirServerUrlInput.placeholder = "Enter FHIR Base URL (Local HAPI unavailable)";
} else {
// Standalone mode
console.log("-> Applying Standalone mode UI settings.");
toggleServerButton.disabled = false; // Ensure enabled
toggleServerButton.classList.remove('disabled'); // Remove Bootstrap disabled class
// --- Ensure pointerEvents is auto in standalone ---
toggleServerButton.style.pointerEvents = 'auto';
// --- END ---
toggleServerButton.removeAttribute('aria-disabled'); // Accessibility
toggleServerButton.title = ""; // Clear tooltip
// Set text/display based on current standalone state
toggleLabel.textContent = isUsingLocalHapi ? 'Use Local HAPI' : 'Use Custom URL';
fhirServerUrlInput.style.display = isUsingLocalHapi ? 'none' : 'block';
fhirServerUrlInput.placeholder = "Enter FHIR Base URL e.g., https://hapi.fhir.org/baseR4";
}
// Clear potential validation errors regardless of mode
if(fhirServerUrlInput) fhirServerUrlInput.classList.remove('is-invalid'); // Add check for element existence
console.log(`-> updateServerToggleUI finished. Button disabled: ${toggleServerButton.disabled}, pointer-events: ${toggleServerButton.style.pointerEvents}`); // Log pointer-events
}
// --- Server Toggle Functionality ---
// --- Server Toggle Functionality (REVISED - simplified) ---
function toggleServerSelection() {
isUsingLocalHapi = !isUsingLocalHapi; // Flip the state first
console.log(`toggleServerSelection called. appMode: ${appMode}`); // Debug
// This check prevents state change and subsequent UI update call in Lite mode
if (appMode === 'lite') {
console.log("Server toggle ignored in Lite mode.");
return; // Explicitly do nothing if Lite
}
// Only flip state and update UI if in standalone mode
isUsingLocalHapi = !isUsingLocalHapi;
updateServerToggleUI(); // Update the UI based on the new state
// Clear custom URL input value if we just switched TO local HAPI
if (isUsingLocalHapi) {
// Clear custom URL input value only when switching TO local
// Ensure fhirServerUrlInput exists before trying to access it
if (isUsingLocalHapi && fhirServerUrlInput) {
fhirServerUrlInput.value = '';
}
// Reset application state dependent on the server
// Reset dependent state
if (resourceTypesDisplayDiv) resourceTypesDisplayDiv.style.display = 'none';
if (swaggerUiContainer) swaggerUiContainer.style.display = 'none';
fetchedMetadataCache = null; // Invalidate metadata cache
availableSystemOperations = []; // Clear parsed operations
console.log(`Server toggled: ${isUsingLocalHapi ? 'Local HAPI' : 'Custom URL'}`);
fetchedMetadataCache = null;
availableSystemOperations = [];
operationDefinitionCache = {}; // Clear OpDef cache too
console.log(`Server toggled (Standalone): Now using ${isUsingLocalHapi ? 'Local HAPI' : 'Custom URL'}`);
}
// Add event listener to the toggle button