Skip to content

Commit 6cc96d8

Browse files
Sections cda (#116)
* MAJ des profils fsh des sections * Renommage du profil FRActProcedureDocument (#112) * MAJ des ids des profils sections CDA * MAJ ressources CDA section * MAJ sections FR-Resultats
1 parent ef6ad91 commit 6cc96d8

32 files changed

Lines changed: 1084 additions & 91 deletions

_build.bat

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,34 @@ IF EXIST "%input_cache_path%%publisher_jar%" (
2525
) ELSE (
2626
SET "jar_location=not_found"
2727
SET "default_choice=1"
28+
SET "default_reason=publisher not found"
2829
ECHO publisher.jar not found in input-cache or parent folder
2930
)
3031
)
3132

3233

3334
:: Handle command-line argument to bypass the menu
34-
IF NOT "%~1"=="" (
35-
IF /I "%~1"=="update" SET "userChoice=1"
36-
IF /I "%~1"=="build" SET "userChoice=2"
37-
IF /I "%~1"=="nosushi" SET "userChoice=3"
38-
IF /I "%~1"=="notx" SET "userChoice=4"
39-
IF /I "%~1"=="jekyll" SET "userChoice=5"
40-
IF /I "%~1"=="clean" SET "userChoice=6"
41-
IF /I "%~1"=="exit" SET "userChoice=0"
42-
GOTO executeChoice
43-
)
35+
:: Known first arguments select a menu option; anything else is passed through to the publisher
36+
SET "extraArgs="
37+
IF "%~1"=="" GOTO showMenu
38+
IF /I "%~1"=="update" SET "userChoice=1" & GOTO parseExtra
39+
IF /I "%~1"=="build" SET "userChoice=2" & GOTO parseExtra
40+
IF /I "%~1"=="nosushi" SET "userChoice=3" & GOTO parseExtra
41+
IF /I "%~1"=="notx" SET "userChoice=4" & GOTO parseExtra
42+
IF /I "%~1"=="jekyll" SET "userChoice=5" & GOTO parseExtra
43+
IF /I "%~1"=="clean" SET "userChoice=6" & GOTO parseExtra
44+
IF /I "%~1"=="exit" SET "userChoice=0" & GOTO parseExtra
45+
:: Unknown first arg - default to build, pass all args through
46+
SET "userChoice=2"
47+
GOTO collectArgs
48+
:parseExtra
49+
SHIFT
50+
:collectArgs
51+
IF "%~1"=="" GOTO executeChoice
52+
SET "extraArgs=!extraArgs! %1"
53+
SHIFT
54+
GOTO collectArgs
55+
:showMenu
4456

4557
echo ---------------------------------------------------------------
4658
ECHO Checking internet connection...
@@ -53,10 +65,14 @@ IF "%online_status%"=="true" (
5365
SET "latest_version=!latest_version: =!"
5466
SET "latest_version=!latest_version:~0,-1!"
5567
) ELSE (
56-
ECHO We're offline or tx.fhir.org is not available, can only run the publisher without TX...
68+
ECHO.
69+
ECHO *** WARNING: Working offline - this is not the normal mode.
70+
ECHO Some features (e.g. terminology rendering) will not work.
71+
ECHO.
5772
SET "txoption=-tx n/a"
5873
SET "latest_version=unknown"
5974
SET "default_choice=4"
75+
SET "default_reason=working offline"
6076
)
6177

6278
echo ---------------------------------------------------------------
@@ -79,9 +95,11 @@ IF NOT "%online_status%"=="true" (
7995
IF NOT "!publisher_version!"=="!latest_version!" (
8096
ECHO An update is recommended.
8197
SET "default_choice=1"
98+
SET "default_reason=newer version available"
8299
) ELSE (
83100
ECHO Publisher is up to date.
84101
SET "default_choice=2"
102+
SET "default_reason=publisher is up to date"
85103
)
86104
)
87105

@@ -96,12 +114,9 @@ echo 4. Build IG - force no TX server
96114
echo 5. Jekyll build
97115
echo 6. Clean up temp directories
98116
echo 0. Exit
99-
:: echo [Press Enter for default (%default_choice%) or type an option number:]
100117
echo.
101118

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

107122

@@ -115,15 +130,12 @@ IF "%userChoice%"=="4" GOTO publish_notx
115130
IF "%userChoice%"=="5" GOTO debugjekyll
116131
IF "%userChoice%"=="6" GOTO clean
117132
IF "%userChoice%"=="0" EXIT /B
118-
119-
:end
120-
121-
133+
GOTO endscript
122134

123135
:debugjekyll
124136
echo Running Jekyll build...
125137
jekyll build -s temp/pages -d output
126-
GOTO end
138+
GOTO endscript
127139

128140

129141
:clean
@@ -152,10 +164,7 @@ GOTO end
152164
echo Removed: .\template
153165
)
154166

155-
GOTO end
156-
157-
158-
167+
GOTO endscript
159168

160169

161170
:downloadpublisher
@@ -198,7 +207,7 @@ IF DEFINED FORCE (
198207
GOTO download
199208
)
200209

201-
IF "%skipPrompts%"=="y" (
210+
IF "%skipPrompts%"=="true" (
202211
SET create=Y
203212
) ELSE (
204213
SET /p create="Download? (Y/N) "
@@ -211,7 +220,7 @@ IF /I "%create%"=="Y" (
211220
GOTO done
212221

213222
:upgrade
214-
IF "%skipPrompts%"=="y" (
223+
IF "%skipPrompts%"=="true" (
215224
SET overwrite=Y
216225
) ELSE (
217226
SET /p overwrite="Overwrite %jarlocation%? (Y/N) "
@@ -265,15 +274,15 @@ GOTO done
265274

266275
ECHO.
267276
ECHO Updating scripts
268-
IF "%skipPrompts%"=="y" (
277+
IF "%skipPrompts%"=="true" (
269278
SET updateScripts=Y
270279
) ELSE (
271280
SET /p updateScripts="Update scripts? (Y/N) "
272281
)
273282
IF /I "%updateScripts%"=="Y" (
274283
GOTO scripts
275284
)
276-
GOTO end
285+
GOTO endscript
277286

278287

279288
:scripts
@@ -299,27 +308,28 @@ ECHO Updating _build.bat
299308
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" }
300309
if %ERRORLEVEL% == 0 goto upd_script_2
301310
echo "Errors encountered during download: %errorlevel%"
302-
goto end
311+
goto endscript
303312
:upd_script_2
304313
start copy /y "_build.new.bat" "_build.bat" ^&^& del "_build.new.bat" ^&^& exit
305314

306315

307-
GOTO end
316+
GOTO endscript
308317

309318

310319
:publish_once
311320

312321
SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
313322

314323
:: Debugging statements before running publisher
315-
ECHO 1jar_location is: %jar_location%
324+
ECHO jar_location is: %jar_location%
316325
IF NOT "%jar_location%"=="not_found" (
317-
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% %*
326+
ECHO IG Publisher FOUND, Publishing...
327+
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% %extraArgs%
318328
) ELSE (
319329
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
320330
)
321331

322-
GOTO end
332+
GOTO endscript
323333

324334

325335

@@ -328,14 +338,14 @@ GOTO end
328338
SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
329339

330340
:: Debugging statements before running publisher
331-
ECHO 3jar_location is: %jar_location%
341+
ECHO jar_location is: %jar_location%
332342
IF NOT "%jar_location%"=="not_found" (
333-
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% -no-sushi %*
343+
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% -no-sushi %extraArgs%
334344
) ELSE (
335345
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
336346
)
337347

338-
GOTO end
348+
GOTO endscript
339349

340350

341351
:publish_notx
@@ -344,43 +354,33 @@ SET txoption=-tx n/a
344354
SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
345355

346356
:: Debugging statements before running publisher
347-
ECHO 2jar_location is: %jar_location%
357+
ECHO jar_location is: %jar_location%
348358
IF NOT "%jar_location%"=="not_found" (
349-
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% %*
359+
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% %extraArgs%
350360
) ELSE (
351361
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
352362
)
353363

354-
GOTO end
355-
356-
364+
GOTO endscript
357365

358366

359367
:publish_continuous
360368

361369
SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
362370

363-
:: Debugging statements before running publisher
364-
ECHO Checking %input_cache_path% for publisher.jar
365-
IF EXIST "%input_cache_path%\%publisher_jar%" (
366-
java %JAVA_OPTS% -jar "%input_cache_path%\%publisher_jar%" -ig . %txoption% -watch %*
371+
ECHO jar_location is: %jar_location%
372+
IF NOT "%jar_location%"=="not_found" (
373+
java %JAVA_OPTS% -jar "%jar_location%" -ig . %txoption% -watch %extraArgs%
367374
) ELSE (
368-
ECHO Checking %upper_path% for publisher.jar
369-
IF EXIST "..\%publisher_jar%" (
370-
java %JAVA_OPTS% -jar "..\%publisher_jar%" -ig . %txoption% -watch %*
371-
) ELSE (
372-
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
373-
)
375+
ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
374376
)
375377

376-
GOTO end
378+
GOTO endscript
377379

378380

379-
:end
381+
:endscript
380382

381383
:: Pausing at the end
382-
383-
384384
IF NOT "%skipPrompts%"=="true" (
385385
PAUSE
386386
)

input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRActLMCDAFHIR.fsh renamed to input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRProcedureLMCDAFHIR.fsh

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
Instance: FRActLMCDAFHIR
1+
Instance: FRProcedureLMCDAFHIR
22
InstanceOf: ConceptMap
33
Usage: #definition
4-
Title: "Mapping FRLMActe → FRCDAActe → FRProcedureActDocument"
5-
Description: "Mapping des éléments du modèle métier FRLMActe vers le profil CDA FRCDAActe, puis vers le profil FHIR FRProcedureActDocument."
4+
Title: "Mapping FRLMActe → FRCDAActe → FRProcedureDocument"
5+
Description: "Mapping des éléments du modèle métier FRLMActe vers le profil CDA FRCDAActe, puis vers le profil FHIR FRProcedureDocument."
66

77
* title = "Mapping Métier/CDA/FHIR : \"Acte\""
88
* status = #draft
@@ -90,102 +90,102 @@ Description: "Mapping des éléments du modèle métier FRLMActe vers le profil
9090

9191
// Groupe Mapping 2 : CDA → FHIR
9292
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-acte"
93-
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-procedure-act-document"
93+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-procedure-document"
9494

9595
/* Element racine */
9696
* group[=].element[+].code = #FRCDAActe
97-
* group[=].element[=].target.code = #FRProcedureActDocument
97+
* group[=].element[=].target.code = #FRProcedureDocument
9898
* group[=].element[=].target.equivalence = #equivalent
9999

100100
/* Identifiant */
101101
* group[=].element[+].code = #FRCDAActe.id
102-
* group[=].element[=].target.code = #FRProcedureActDocument.identifier
102+
* group[=].element[=].target.code = #FRProcedureDocument.identifier
103103
* group[=].element[=].target.equivalence = #equivalent
104104
* group[=].element[=].target.comment = "L'élément id en CDA devient identifier en FHIR."
105105

106106
/* Code de l'acte */
107107
* group[=].element[+].code = #FRCDAActe.code
108-
* group[=].element[=].target.code = #FRProcedureActDocument.code
108+
* group[=].element[=].target.code = #FRProcedureDocument.code
109109
* group[=].element[=].target.equivalence = #equivalent
110110
* group[=].element[=].target.comment = "Le code CDA correspond au code FHIR."
111111

112112
/* Date effectiveTime */
113113
* group[=].element[+].code = #FRCDAActe.effectiveTime
114-
* group[=].element[=].target.code = #FRProcedureActDocument.performed[x]
114+
* group[=].element[=].target.code = #FRProcedureDocument.performed[x]
115115
* group[=].element[=].target.equivalence = #equivalent
116116
* group[=].element[=].target.comment = "effectiveTime → performedDateTime ou performedPeriod."
117117

118118
/* Texte narratif */
119119
* group[=].element[+].code = #FRCDAActe.text
120-
* group[=].element[=].target.code = #FRProcedureActDocument.note
120+
* group[=].element[=].target.code = #FRProcedureDocument.note
121121
* group[=].element[=].target.equivalence = #equivalent
122122
* group[=].element[=].target.comment = "text CDA devient note/annotation FHIR."
123123

124124
/* Statut */
125125
* group[=].element[+].code = #FRCDAActe.statusCode
126-
* group[=].element[=].target.code = #FRProcedureActDocument.status
126+
* group[=].element[=].target.code = #FRProcedureDocument.status
127127
* group[=].element[=].target.equivalence = #equivalent
128128
* group[=].element[=].target.comment = "statusCode CDA → status FHIR."
129129

130130
/* Référence interne DM */
131131
* group[=].element[+].code = #FRCDAActe.entryRelationship:frReferenceInterneDM
132-
* group[=].element[=].target.code = #FRProcedureActDocument.usedReference
132+
* group[=].element[=].target.code = #FRProcedureDocument.usedReference
133133
* group[=].element[=].target.equivalence = #equivalent
134134
* group[=].element[=].target.comment = "DM référencé dans usedReference."
135135

136136
/* Observations liées aux scores */
137137
* group[=].element[+].code = #FRCDAActe.entryRelationship:frSimpleObservationScores
138-
* group[=].element[=].target.code = #FRProcedureActDocument.partOf
138+
* group[=].element[=].target.code = #FRProcedureDocument.partOf
139139
* group[=].element[=].target.equivalence = #equivalent
140140
* group[=].element[=].target.comment = "Les observations liées aux scores deviennent partOf."
141141

142142
/* Performers / Informant / Participant */
143143
* group[=].element[+].code = #FRCDAActe.performer
144-
* group[=].element[=].target.code = #FRProcedureActDocument.performer.actor.extension:Intervenant
144+
* group[=].element[=].target.code = #FRProcedureDocument.performer.actor.extension:Intervenant
145145
* group[=].element[=].target.equivalence = #equivalent
146146

147147
* group[=].element[+].code = #FRCDAActe.informant
148-
* group[=].element[=].target.code = #FRProcedureActDocument.performer.actor.extension:Informateur
148+
* group[=].element[=].target.code = #FRProcedureDocument.performer.actor.extension:Informateur
149149
* group[=].element[=].target.equivalence = #equivalent
150150

151151
* group[=].element[+].code = #FRCDAActe.participant
152-
* group[=].element[=].target.code = #FRProcedureActDocument.performer.actor.extension:Participant
152+
* group[=].element[=].target.code = #FRProcedureDocument.performer.actor.extension:Participant
153153
* group[=].element[=].target.equivalence = #equivalent
154154

155155
/* Motif de l'acte */
156156
* group[=].element[+].code = #FRCDAActe.entryRelationship:frReferenceInterneMotifActe
157-
* group[=].element[=].target.code = #FRProcedureActDocument.reasonReference
157+
* group[=].element[=].target.code = #FRProcedureDocument.reasonReference
158158
* group[=].element[=].target.equivalence = #equivalent
159159
* group[=].element[=].target.comment = "Motif de l'acte en CDA correspond à reasonReference en FHIR."
160160

161161
/* Rencontre associée */
162162
* group[=].element[+].code = #FRCDAActe.entryRelationship:frReferenceInterneCirconstances
163-
* group[=].element[=].target.code = #FRProcedureActDocument.encounter
163+
* group[=].element[=].target.code = #FRProcedureDocument.encounter
164164
* group[=].element[=].target.equivalence = #equivalent
165165
* group[=].element[=].target.comment = "Référence de contexte CDA → Encounter FHIR."
166166

167167
/* Difficulté */
168168
* group[=].element[+].code = #FRCDAActe.entryRelationship:frSimpleObservationDifficulte
169-
* group[=].element[=].target.code = #FRProcedureActDocument.extension:difficulte
169+
* group[=].element[=].target.code = #FRProcedureDocument.extension:difficulte
170170
* group[=].element[=].target.equivalence = #equivalent
171171

172172
/* author → recorder */
173173
* group[=].element[+].code = #FRCDAActe.author
174-
* group[=].element[=].target.code = #FRProcedureActDocument.recorder.extension:author
174+
* group[=].element[=].target.code = #FRProcedureDocument.recorder.extension:author
175175
* group[=].element[=].target.equivalence = #equivalent
176176
* group[=].element[=].target.comment = "author CDA → recorder FHIR."
177177

178178
/* Priorité */
179179
* group[=].element[+].code = #FRCDAActe.priorityCode
180-
* group[=].element[=].target.code = #FRProcedureActDocument.extension:priority
180+
* group[=].element[=].target.code = #FRProcedureDocument.extension:priority
181181
* group[=].element[=].target.equivalence = #equivalent
182182

183183
/* Localisation anatomique */
184184
* group[=].element[+].code = #FRCDAActe.targetSiteCode
185-
* group[=].element[=].target.code = #FRProcedureActDocument.bodySite.TargetSiteCode
185+
* group[=].element[=].target.code = #FRProcedureDocument.bodySite.TargetSiteCode
186186
* group[=].element[=].target.equivalence = #equivalent
187187

188188
/* Voie d'abord */
189189
* group[=].element[+].code = #FRCDAActe.approachSiteCode
190-
* group[=].element[=].target.code = #FRProcedureActDocument.bodySite.ApproachSiteCode
190+
* group[=].element[=].target.code = #FRProcedureDocument.bodySite.ApproachSiteCode
191191
* group[=].element[=].target.equivalence = #equivalent

0 commit comments

Comments
 (0)