Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
b9bd237
Update MedComCorePractitionerRole.fsh
SGA-MedCom Nov 17, 2025
47de9e0
Edited version
RikkeVestesen Nov 18, 2025
75243d4
Added 1.. on id
RikkeVestesen Nov 18, 2025
3a9f980
Updated to DkCorePatient in DiagnosticReport
RikkeVestesen Nov 21, 2025
98aa182
Added obligations for MedComCoreContactExtension
RikkeVestesen Nov 25, 2025
f6eead9
Updated observation.subject to reference only DkCorePatient
RikkeVestesen Nov 26, 2025
2da0743
Corrected observation
RikkeVestesen Nov 26, 2025
527480f
Removed comment
RikkeVestesen Nov 26, 2025
edba78a
Removed MS og all individual code choises in Observation
RikkeVestesen Nov 26, 2025
f5ecefd
Removed identifier requirement that it has to be UUIDv4
RikkeVestesen Nov 26, 2025
7d20000
Updated
RikkeVestesen Nov 28, 2025
57bb97f
Updated
RikkeVestesen Nov 28, 2025
50dbd3d
Updated PractitionerRole
RikkeVestesen Dec 1, 2025
5afe5a8
Adde MS to SOR identififer value + system
RikkeVestesen Dec 1, 2025
6e91106
Added medcom local value attachment extension
RikkeVestesen Dec 1, 2025
9d9e553
Updated texts in index and profiles.
RikkeVestesen Dec 2, 2025
61650ec
Updated texts
RikkeVestesen Dec 2, 2025
e2ff4b5
Update StructureDefinition-medcom-core-diagnosticreport-intro.md
RikkeVestesen Dec 3, 2025
af49ad5
Update sushi-config.yaml
RikkeVestesen Dec 3, 2025
66a708e
Update MedComCorePractitioner.fsh
RikkeVestesen Dec 3, 2025
69c6589
Updated careteam and practitionerRole
RikkeVestesen Dec 3, 2025
f9c50c3
Updated dependency to terminology
RikkeVestesen Dec 4, 2025
de60ef7
Updated according to review
RikkeVestesen Dec 10, 2025
2469cca
Corrected version
RikkeVestesen Dec 10, 2025
cf32f11
Testing build-site
RikkeVestesen Dec 11, 2025
8624582
Update sushi-config.yaml
RikkeVestesen Dec 11, 2025
4f9556f
removed test
RikkeVestesen Dec 12, 2025
937971e
Updated based on review
RikkeVestesen Dec 15, 2025
713f13b
Update MedComCorePatient.fsh
RikkeVestesen Dec 15, 2025
a1605cd
Update index.md
RikkeVestesen Dec 15, 2025
51680dc
Corrected wording
RikkeVestesen Jan 5, 2026
6d9b171
Removed MedComMessagingContactPoint from patient telecom
RikkeVestesen Jan 5, 2026
5125cb3
Update sushi-config.yaml
RikkeVestesen Jan 5, 2026
49a0e53
Delete MedComMessagingContactPoint.fsh
RikkeVestesen Jan 6, 2026
7ec5be5
Added sushi ignore errors and added 1.. on text element on profiles
RikkeVestesen Jan 8, 2026
1e4897f
Added 1.. to PractitionerRole code.coding.system and -value
RikkeVestesen Jan 9, 2026
71f43bf
Corrected errors
RikkeVestesen Jan 13, 2026
0054013
Added release notes
RikkeVestesen Jan 13, 2026
b72795d
Corrected release notes
RikkeVestesen Jan 13, 2026
eb57552
Update MedComCoreOrganization.fsh
SGA-MedCom Jan 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ echo ---------------------------------------------------------------
echo.

echo Please select an option:
echo 1. Download or upload publisher
echo 1. Download or update publisher
echo 2. Build IG
echo 3. Build IG - no sushi
echo 4. Build IG - force no TX server
Expand Down
386 changes: 386 additions & 0 deletions _build.new.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,386 @@
@ECHO OFF
setlocal enabledelayedexpansion

SET "dlurl=https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar"
SET "publisher_jar=publisher.jar"
SET "input_cache_path=%CD%\input-cache\"
SET "skipPrompts=false"
SET "upper_path=..\"
SET "scriptdlroot=https://raw.githubusercontent.com/HL7/ig-publisher-scripts/main"
SET "build_bat_url=%scriptdlroot%/_build.bat"
SET "build_sh_url=%scriptdlroot%/_build.sh"



:: Debugging statements to check jar file location
ECHO Checking for publisher.jar in %input_cache_path%
IF EXIST "%input_cache_path%%publisher_jar%" (
SET "jar_location=%input_cache_path%%publisher_jar%"
ECHO Found publisher.jar in input-cache
) ELSE (
ECHO Checking for publisher.jar in %upper_path%
IF EXIST "%upper_path%%publisher_jar%" (
SET "jar_location=%upper_path%%publisher_jar%"
ECHO Found publisher.jar in parent folder
) ELSE (
SET "jar_location=not_found"
SET "default_choice=1"
ECHO publisher.jar not found in input-cache or parent folder
)
)


:: Handle command-line argument to bypass the menu
IF NOT "%~1"=="" (
IF /I "%~1"=="update" SET "userChoice=1"
IF /I "%~1"=="build" SET "userChoice=2"
IF /I "%~1"=="nosushi" SET "userChoice=3"
IF /I "%~1"=="notx" SET "userChoice=4"
IF /I "%~1"=="jekyll" SET "userChoice=5"
IF /I "%~1"=="clean" SET "userChoice=6"
IF /I "%~1"=="exit" SET "userChoice=0"
GOTO executeChoice
)

echo ---------------------------------------------------------------
ECHO Checking internet connection...
PING tx.fhir.org -4 -n 1 -w 4000 >nul 2>&1 && SET "online_status=true" || SET "online_status=false"

IF "%online_status%"=="true" (
ECHO We're online and tx.fhir.org is available.
FOR /F "tokens=2 delims=:" %%a IN ('curl -s https://api.github.com/repos/HL7/fhir-ig-publisher/releases/latest ^| findstr "tag_name"') DO SET "latest_version=%%a"
SET "latest_version=!latest_version:"=!"
SET "latest_version=!latest_version: =!"
SET "latest_version=!latest_version:~0,-1!"
) ELSE (
ECHO We're offline or tx.fhir.org is not available, can only run the publisher without TX...
SET "txoption=-tx n/a"
SET "latest_version=unknown"
SET "default_choice=4"
)

echo ---------------------------------------------------------------


IF NOT "%jar_location%"=="not_found" (
FOR /F "tokens=*" %%i IN ('java "-Dfile.encoding=UTF-8" -jar "%jar_location%" -v 2^>^&1') DO SET "publisher_version=%%i"
SET "publisher_version=!publisher_version:"=!"
ECHO Detected publisher version: !publisher_version!
) ELSE (
SET "publisher_version=unknown"
ECHO publisher.jar location is not found
)

ECHO Publisher version: !publisher_version!; Latest is !latest_version!

IF NOT "%online_status%"=="true" (
ECHO We're offline.
) ELSE (
IF NOT "!publisher_version!"=="!latest_version!" (
ECHO An update is recommended.
SET "default_choice=1"
) ELSE (
ECHO Publisher is up to date.
SET "default_choice=2"
)
)

echo ---------------------------------------------------------------
echo.

echo Please select an option:
echo 1. Download or update publisher
echo 2. Build IG
echo 3. Build IG - no sushi
echo 4. Build IG - force no TX server
echo 5. Jekyll build
echo 6. Clean up temp directories
echo 0. Exit
:: echo [Press Enter for default (%default_choice%) or type an option number:]
echo.

:: Using CHOICE to handle input with timeout
:: ECHO [Enter=Continue, 1-7=Option, 0=Exit]
choice /C 12345670 /N /CS /D %default_choice% /T 5 /M "Choose an option number or wait 5 seconds for default (%default_choice%):"
SET "userChoice=%ERRORLEVEL%"


:executeChoice
echo You selected: %userChoice%

IF "%userChoice%"=="1" GOTO downloadpublisher
IF "%userChoice%"=="2" GOTO publish_once
IF "%userChoice%"=="3" GOTO publish_nosushi
IF "%userChoice%"=="4" GOTO publish_notx
IF "%userChoice%"=="5" GOTO debugjekyll
IF "%userChoice%"=="6" GOTO clean
IF "%userChoice%"=="0" EXIT /B

:end



:debugjekyll
echo Running Jekyll build...
jekyll build -s temp/pages -d output
GOTO end


:clean
echo Cleaning up directories...
if exist ".\input-cache\publisher.jar" (
echo Preserving publisher.jar and removing other files in .\input-cache...
move ".\input-cache\publisher.jar" ".\"
rmdir /s /q ".\input-cache"
mkdir ".\input-cache"
move ".\publisher.jar" ".\input-cache"
) else (
if exist ".\input-cache\" (
rmdir /s /q ".\input-cache"
)
)
if exist ".\temp\" (
rmdir /s /q ".\temp"
echo Removed: .\temp
)
if exist ".\output\" (
rmdir /s /q ".\output"
echo Removed: .\output
)
if exist ".\template\" (
rmdir /s /q ".\template"
echo Removed: .\template
)

GOTO end





:downloadpublisher
ECHO Downloading Publisher...
:processflags
SET ARG=%1
IF DEFINED ARG (
IF "%ARG%"=="-f" SET FORCE=true
IF "%ARG%"=="--force" SET FORCE=true
SHIFT
GOTO processflags
)

FOR %%x IN ("%CD%") DO SET upper_path=%%~dpx

ECHO.
IF NOT EXIST "%input_cache_path%%publisher_jar%" (
IF NOT EXIST "%upper_path%%publisher_jar%" (
SET jarlocation="%input_cache_path%%publisher_jar%"
SET jarlocationname=Input Cache
ECHO IG Publisher is not yet in input-cache or parent folder.
REM we don't use jarlocation below because it will be empty because we're in a bracketed if statement
GOTO create
) ELSE (
ECHO IG Publisher FOUND in parent folder
SET jarlocation="%upper_path%%publisher_jar%"
SET jarlocationname=Parent folder
GOTO upgrade
)
) ELSE (
ECHO IG Publisher FOUND in input-cache
SET jarlocation="%input_cache_path%%publisher_jar%"
SET jarlocationname=Input Cache
GOTO upgrade
)

:create
IF DEFINED FORCE (
MKDIR "%input_cache_path%" 2> NUL
GOTO download
)

IF "%skipPrompts%"=="y" (
SET create=Y
) ELSE (
SET /p create="Download? (Y/N) "
)
IF /I "%create%"=="Y" (
ECHO Will place publisher jar here: %input_cache_path%%publisher_jar%
MKDIR "%input_cache_path%" 2> NUL
GOTO download
)
GOTO done

:upgrade
IF "%skipPrompts%"=="y" (
SET overwrite=Y
) ELSE (
SET /p overwrite="Overwrite %jarlocation%? (Y/N) "
)

IF /I "%overwrite%"=="Y" (
GOTO download
)
GOTO done

:download
ECHO Downloading most recent publisher to %jarlocationname% - it's ~200 MB, so this may take a bit

FOR /f "tokens=4-5 delims=. " %%i IN ('ver') DO SET VERSION=%%i.%%j
IF "%version%" == "10.0" GOTO win10
IF "%version%" == "6.3" GOTO win8.1
IF "%version%" == "6.2" GOTO win8
IF "%version%" == "6.1" GOTO win7
IF "%version%" == "6.0" GOTO vista

ECHO Unrecognized version: %version%
GOTO done

:win10
CALL POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%dlurl%\",\"%jarlocation%\") } else { Invoke-WebRequest -Uri "%dlurl%" -Outfile "%jarlocation%" }

GOTO done

:win7
rem this may be triggering the antivirus - bitsadmin.exe is a known threat
rem CALL bitsadmin /transfer GetPublisher /download /priority normal "%dlurl%" "%jarlocation%"

rem this didn't work in win 10
rem CALL Start-BitsTransfer /priority normal "%dlurl%" "%jarlocation%"

rem this should work - untested
call (New-Object Net.WebClient).DownloadFile('%dlurl%', '%jarlocation%')
GOTO done

:win8.1
:win8
:vista
GOTO done



:done




ECHO.
ECHO Updating scripts
IF "%skipPrompts%"=="y" (
SET updateScripts=Y
) ELSE (
SET /p updateScripts="Update scripts? (Y/N) "
)
IF /I "%updateScripts%"=="Y" (
GOTO scripts
)
GOTO end


:scripts

REM Download all batch files (and this one with a new name)

SETLOCAL DisableDelayedExpansion



:dl_script_1
ECHO Updating _build.sh
call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%build_sh_url%\",\"_build.new.sh\") } else { Invoke-WebRequest -Uri "%build_sh_url%" -Outfile "_build.new.sh" }
if %ERRORLEVEL% == 0 goto upd_script_1
echo "Errors encountered during download: %errorlevel%"
goto dl_script_2
:upd_script_1
start copy /y "_build.new.sh" "_build.sh" ^&^& del "_build.new.sh" ^&^& exit


:dl_script_2
ECHO Updating _build.bat
call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%build_bat_url%\",\"_build.new.bat\") } else { Invoke-WebRequest -Uri "%build_bat_url%" -Outfile "_build.new.bat" }
if %ERRORLEVEL% == 0 goto upd_script_2
echo "Errors encountered during download: %errorlevel%"
goto end
:upd_script_2
start copy /y "_build.new.bat" "_build.bat" ^&^& del "_build.new.bat" ^&^& exit


GOTO end


:publish_once

SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

:: Debugging statements before running publisher
ECHO 1jar_location is: %jar_location%
IF NOT "%jar_location%"=="not_found" (
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% %*
) ELSE (
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
)

GOTO end



:publish_nosushi

SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

:: Debugging statements before running publisher
ECHO 3jar_location is: %jar_location%
IF NOT "%jar_location%"=="not_found" (
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% -no-sushi %*
) ELSE (
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
)

GOTO end


:publish_notx
SET txoption=-tx n/a

SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

:: Debugging statements before running publisher
ECHO 2jar_location is: %jar_location%
IF NOT "%jar_location%"=="not_found" (
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% %*
) ELSE (
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
)

GOTO end




:publish_continuous

SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

:: Debugging statements before running publisher
ECHO Checking %input_cache_path% for publisher.jar
IF EXIST "%input_cache_path%\%publisher_jar%" (
java %JAVA_OPTS% -jar "%input_cache_path%\%publisher_jar%" -ig . %txoption% -watch %*
) ELSE (
ECHO Checking %upper_path% for publisher.jar
IF EXIST "..\%publisher_jar%" (
java %JAVA_OPTS% -jar "..\%publisher_jar%" -ig . %txoption% -watch %*
) ELSE (
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
)
)

GOTO end


:end

:: Pausing at the end


IF NOT "%skipPrompts%"=="true" (
PAUSE
)
Loading