From 96d5f68f701603c161765ff205853a26f98115b2 Mon Sep 17 00:00:00 2001 From: Mael PRIOUR <101335975+M-Priour@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:08:21 +0200 Subject: [PATCH 01/32] Template termino --- config.json | 30 ++- content/assets/css/style-ans.css | 87 ++++++- includes/fragment-base-navtabs.html | 110 +++++++++ includes/fragment-css.html | 1 + includes/fragment-footer.html | 2 +- includes/fragment-igTable.html | 3 + includes/fragment-intro.html | 15 ++ includes/fragment-modelType.html | 9 + includes/fragment-notes.html | 14 ++ includes/fragment-onto.html | 21 ++ includes/fragment-pageTable.html | 19 ++ includes/fragment-pagebegin.html | 2 +- includes/fragment-pageend.html | 305 ++++++++++++------------ includes/fragment-profile-navtabs.html | 120 ++++++++++ includes/fragment-resourceTable.html | 111 +++++++++ includes/fragment-simpletable.html | 32 +++ includes/template-page-md.html | 44 ++++ includes/template-page.html | 19 ++ layouts/layout-canonical-testing.html | 59 +++++ layouts/layout-canonical.html | 47 ++++ layouts/layout-changehistory.html | 21 ++ layouts/layout-codesystem.html | 49 ++++ layouts/layout-examplescenario.html | 50 ++++ layouts/layout-ext.html | 209 ++++++++++++++++ layouts/layout-histoire.html | 24 ++ layouts/layout-instance-base.html | 39 +++ layouts/layout-instance-format.html | 36 +++ layouts/layout-profile-definitions.html | 51 ++++ layouts/layout-profile-examples.html | 41 ++++ layouts/layout-profile-format.html | 39 +++ layouts/layout-profile-history.html | 21 ++ layouts/layout-profile-mappings.html | 27 +++ layouts/layout-profile-testing.html | 59 +++++ layouts/layout-profile.html | 302 +++++++++++++++++++++++ layouts/layout-telechargement.html | 45 ++++ layouts/layout-valueset.html | 97 ++++++++ 36 files changed, 1999 insertions(+), 161 deletions(-) create mode 100644 includes/fragment-base-navtabs.html create mode 100644 includes/fragment-css.html create mode 100644 includes/fragment-igTable.html create mode 100644 includes/fragment-intro.html create mode 100644 includes/fragment-modelType.html create mode 100644 includes/fragment-notes.html create mode 100644 includes/fragment-onto.html create mode 100644 includes/fragment-pageTable.html create mode 100644 includes/fragment-profile-navtabs.html create mode 100644 includes/fragment-resourceTable.html create mode 100644 includes/fragment-simpletable.html create mode 100644 includes/template-page-md.html create mode 100644 includes/template-page.html create mode 100644 layouts/layout-canonical-testing.html create mode 100644 layouts/layout-canonical.html create mode 100644 layouts/layout-changehistory.html create mode 100644 layouts/layout-codesystem.html create mode 100644 layouts/layout-examplescenario.html create mode 100644 layouts/layout-ext.html create mode 100644 layouts/layout-histoire.html create mode 100644 layouts/layout-instance-base.html create mode 100644 layouts/layout-instance-format.html create mode 100644 layouts/layout-profile-definitions.html create mode 100644 layouts/layout-profile-examples.html create mode 100644 layouts/layout-profile-format.html create mode 100644 layouts/layout-profile-history.html create mode 100644 layouts/layout-profile-mappings.html create mode 100644 layouts/layout-profile-testing.html create mode 100644 layouts/layout-profile.html create mode 100644 layouts/layout-telechargement.html create mode 100644 layouts/layout-valueset.html diff --git a/config.json b/config.json index 8df3c66..d9878d5 100644 --- a/config.json +++ b/config.json @@ -34,7 +34,15 @@ "name": "change-history", "description": "Resource Change History", "isHistory": true - } + }, + { + "name": "telechargement", + "description": " telechargement" + }, + { + "name": "histoire", + "description": "histoire" + } ], "_formats-documentation": "Lists the formats in the order format-specific pages should be generated. (Note that suppressed formats won't appear, even if listed here.)", "formats": [ @@ -143,20 +151,28 @@ "template-format": "template/layouts/layout-instance-format.html", "template-testing": "template/layouts/layout-canonical-testing.html", "template-change-history": "template/layouts/layout-changehistory.html", + "template-telechargement": "template/layouts/layout-telechargement.html", + "template-histoire": "template/layouts/layout-histoire.html", "base": "{{[type]}}-{{[id]}}.html", "format": "{{[type]}}-{{[id]}}.{{[fmt]}}.html", "testing": "{{[type]}}-{{[id]}}-testing.html", - "change-history": "{{[type]}}-{{[id]}}.change.history.html" + "change-history": "{{[type]}}-{{[id]}}.change.history.html", + "telechargement": "{{[type]}}-{{[id]}}.tel.html", + "histoire": "{{[type]}}-{{[id]}}.histoire.html" }, "ValueSet": { "template-base": "template/layouts/layout-valueset.html", "template-format": "template/layouts/layout-instance-format.html", "template-testing": "template/layouts/layout-canonical-testing.html", "template-change-history": "template/layouts/layout-changehistory.html", + "template-telechargement": "template/layouts/layout-telechargement.html", + "template-histoire": "template/layouts/layout-histoire.html", "base": "{{[type]}}-{{[id]}}.html", "format": "{{[type]}}-{{[id]}}.{{[fmt]}}.html", "testing": "{{[type]}}-{{[id]}}-testing.html", - "change-history": "{{[type]}}-{{[id]}}.change.history.html" + "change-history": "{{[type]}}-{{[id]}}.change.history.html", + "telechargement": "{{[type]}}-{{[id]}}.tel.html", + "histoire": "{{[type]}}-{{[id]}}.histoire.html" }, "ActivityDefinition": { "template-base": "template/layouts/layout-canonical.html", @@ -193,10 +209,12 @@ "template-format": "template/layouts/layout-instance-format.html", "template-testing": "template/layouts/layout-canonical-testing.html", "template-change-history": "template/layouts/layout-changehistory.html", + "template-histoire": "template/layouts/layout-histoire.html", "base": "{{[type]}}-{{[id]}}.html", "format": "{{[type]}}-{{[id]}}.{{[fmt]}}.html", "testing": "{{[type]}}-{{[id]}}-testing.html", - "change-history": "{{[type]}}-{{[id]}}.change.history.html" + "change-history": "{{[type]}}-{{[id]}}.change.history.html", + "histoire": "{{[type]}}-{{[id]}}.histoire.html" }, "ExampleScenario": { "template-base": "template/layouts/layout-examplescenario.html", @@ -273,10 +291,12 @@ "template-format": "template/layouts/layout-instance-format.html", "template-testing": "template/layouts/layout-canonical-testing.html", "template-change-history": "template/layouts/layout-changehistory.html", + "template-histoire": "template/layouts/layout-histoire.html", "base": "{{[type]}}-{{[id]}}.html", "format": "{{[type]}}-{{[id]}}.{{[fmt]}}.html", "testing": "{{[type]}}-{{[id]}}-testing.html", - "change-history": "{{[type]}}-{{[id]}}.change.history.html" + "change-history": "{{[type]}}-{{[id]}}.change.history.html", + "histoire": "{{[type]}}-{{[id]}}.histoire.html" }, "OperationDefinition": { "template-base": "template/layouts/layout-canonical.html", diff --git a/content/assets/css/style-ans.css b/content/assets/css/style-ans.css index 941674d..bb04fd9 100644 --- a/content/assets/css/style-ans.css +++ b/content/assets/css/style-ans.css @@ -125,7 +125,6 @@ video { -webkit-padding-before: 0; -webkit-padding-after: 0; border: 0; - font: inherit; margin: 0; /* padding: 0;*/ vertical-align: baseline; @@ -171,6 +170,7 @@ select { iframe { border: 0; } + [class*="svg-icon"] { stroke-width: 0; stroke: currentColor; @@ -5469,7 +5469,8 @@ a.btn--style1.btn--white { } .table thead td, .table thead th { - background-color: #f8f9fb; + background-color: #464c6d; + color : white; border-bottom-width: 0; } .table caption + tbody tr:first-child td, @@ -10189,3 +10190,85 @@ a[class*="border"]:hover { border-color: var(--gray-700) !important; } /*# sourceMappingURL=style-ans.css.map */ +.columns-3 { + -moz-column-count: 3; + -moz-column-gap: 10px; + -webkit-column-count: 3; + /* -webkit-column-gap: 10px; */ + /* column-count: 3; */ + /* column-gap: 10px; */ +} + tr[visible='false'], +.no-result{ + display:none; +} + + tr[visible='true']{ + display:table-row; +} + +.counter{ + padding:8px; + color:#ccc; +} +#terminologit-search-content-valueset-cld.accordion-group { + border: none; +} + + +#terminologit-search-content-valueset-cld.accordion-group { + border: none; +} + + + +#terminologit-search-content-valueset-cld .accordion-heading .accordion-toggle { + display: -webkit-inline-box; + padding: 0px; + margin-left: 5px; + position: absolute; + color: var(--btn-text-color); +} + +#orig .accordion-heading .accordion-toggle { + display: -webkit-inline-box; + padding: 0px; + margin-left: 5px; + position: absolute; + color: var(--btn-text-color); +} + +.accordion-toggle .gg-chevron-down { + box-sizing: border-box; + position: relative; + display: block; + transform: scale(var(--ggs,1)); + width: 22px; + height: 22px; + border: 2px solid transparent; + border-radius: 100px; + transition: all 0.5s; +} +.gg-chevron-down::before { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + width: 10px; + height: 10px; + border-bottom: 2px solid; + border-right: 2px solid; + transform: rotate(45deg); + left: 4px; + top: 2px +} + +.rotate-toggle.gg-chevron-down { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + transform: rotate(180deg); +} + +table.codes td { + font-size : 10px; +} \ No newline at end of file diff --git a/includes/fragment-base-navtabs.html b/includes/fragment-base-navtabs.html new file mode 100644 index 0000000..1997c66 --- /dev/null +++ b/includes/fragment-base-navtabs.html @@ -0,0 +1,110 @@ +{% assign excludexml = site.data.info.excludexml | downcase | slice: 0 %} +{% assign excludejson = site.data.info.excludejson | downcase | slice: 0 %} +{% assign excludettl = site.data.info.excludettl | downcase | slice: 0 %} +{% assign excludelogbinaryformat = site.data.info.excludelogbinaryformat | downcase | slice: 0 %} +{% assign resource_ = include.type| append: '/'| append: include.id %} +{% assign has_history = site.data.resources[resource_].['history'] %} +{% if site.data.resources[resource_].sourceTail contains "#" %} +{% assign contained_resource = 'y' %} +{% endif %} +{% if excludelogbinaryformat == 'y' and site.data.artifacts[page.path].type == 'Binary' %} +{% assign profile_path = site.data.artifacts[page.path].exampleOf.url %} +{% assign profile_structure = site.data.structuredefinitions | where: "path", profile_path | first %} +{% if profile_structure.kind == 'logical' %} +{% assign suppressformat = 'y' %} +{% endif %} +{% endif %} + + diff --git a/includes/fragment-css.html b/includes/fragment-css.html new file mode 100644 index 0000000..9462186 --- /dev/null +++ b/includes/fragment-css.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/includes/fragment-footer.html b/includes/fragment-footer.html index 2112973..bd06d3b 100644 --- a/includes/fragment-footer.html +++ b/includes/fragment-footer.html @@ -1,4 +1,4 @@ Liens: Table des matières | QA | Historique des versions -{% for feedbacklink in site.data.features.feedback %}{% if feedbacklink.dashboard %} | {{feedbacklink.dashboard.label}}{% endif %}{% endfor %} +{% for feedbacklink in site.data.features.feedback %}{% if feedbacklink.dashboard %} | {{feedbacklink.dashboard.label}}{% endif %}{% endfor %} \ No newline at end of file diff --git a/includes/fragment-igTable.html b/includes/fragment-igTable.html new file mode 100644 index 0000000..0ddec6d --- /dev/null +++ b/includes/fragment-igTable.html @@ -0,0 +1,3 @@ +{% assign resource_ = igId %} +{% assign table_prefix = 'IG' %} +{% include fragment-resourceTable.html %} \ No newline at end of file diff --git a/includes/fragment-intro.html b/includes/fragment-intro.html new file mode 100644 index 0000000..670286a --- /dev/null +++ b/includes/fragment-intro.html @@ -0,0 +1,15 @@ +{% assign intro = site.data.pages[page.path].intro %} +{% if intro != null %} +{% if site.data.pages[page.path].intro-type == 'xml' %} +
+{% include {{intro}} type=include.type id=include.id %} +
+{% else %} +{% capture intro-content %} +{% include {{intro}} type=include.type id=include.id %} +{% endcapture %} +
+{{ intro-content | markdownify }} +
+{% endif %} +{% endif %} diff --git a/includes/fragment-modelType.html b/includes/fragment-modelType.html new file mode 100644 index 0000000..a1adee8 --- /dev/null +++ b/includes/fragment-modelType.html @@ -0,0 +1,9 @@ +{% if site.data.structuredefinitions[include.id].type == 'Extension' %} + {% assign modelType = 'Extension' %} +{% elsif site.data.structuredefinitions[include.id].kind == 'logical' %} + {% assign modelType = 'Logical Model' %} +{% elsif site.data.structuredefinitions[include.id].kind == 'resource' %} + {% assign modelType = 'Resource Profile' %} +{% else %} + {% assign modelType = 'Data Type Profile' %} +{% endif %} diff --git a/includes/fragment-notes.html b/includes/fragment-notes.html new file mode 100644 index 0000000..380081b --- /dev/null +++ b/includes/fragment-notes.html @@ -0,0 +1,14 @@ +{% assign notes = site.data.pages[page.path].notes %} +{% if notes != null %} +

Notes:

+{% if site.data.pages[page.path].notes-type == 'xml' %} +{% include {{notes}} type=include.type id=include.id %} +{% else %} +{% capture note-content %} +{% include {{notes}} type=include.type id=include.id %} +{% endcapture %} +
+{{ note-content | markdownify }} +
+{% endif %} +{% endif %} diff --git a/includes/fragment-onto.html b/includes/fragment-onto.html new file mode 100644 index 0000000..76aaee1 --- /dev/null +++ b/includes/fragment-onto.html @@ -0,0 +1,21 @@ + +
+

+ Recherche en live sur le SMT +

+
+ Indiquer un mot clé puis taper sur "enter" : + +
+
+
+                    Requête sur le SMT
+                
+
+
+ +
+
+
+ + diff --git a/includes/fragment-pageTable.html b/includes/fragment-pageTable.html new file mode 100644 index 0000000..5d5f0dd --- /dev/null +++ b/includes/fragment-pageTable.html @@ -0,0 +1,19 @@ +{% if site.data.pages[page.path].status or site.data.pages[page.path].fmm %} + + + {% if site.data.pages[page.path].status %} + + {% endif %} + {% if site.data.pages[page.path].fmm %} + + {% endif %} + +
+ Page standards status: {{site.data.pages[page.path].status|capitalize}} + {% if site.data.pages[page.path].normativeVersion %} + (from v{{site.data.pages[page.path].normativeVersion}}) + {% endif %} + + Maturity Level: {{site.data.pages[page.path].fmm}} +
+{% endif %} \ No newline at end of file diff --git a/includes/fragment-pagebegin.html b/includes/fragment-pagebegin.html index e5db4fc..e4ad4d5 100644 --- a/includes/fragment-pagebegin.html +++ b/includes/fragment-pagebegin.html @@ -118,4 +118,4 @@
-
+
\ No newline at end of file diff --git a/includes/fragment-pageend.html b/includes/fragment-pageend.html index e8dd4dd..256b6ac 100644 --- a/includes/fragment-pageend.html +++ b/includes/fragment-pageend.html @@ -1,177 +1,178 @@ -
-
-
-
+
+ + + - - + + {% if includetabscripts %} - + {% endif %} - - - - - - + - - + + + + + + + + - + + + + + + - - + + \ No newline at end of file diff --git a/includes/fragment-profile-navtabs.html b/includes/fragment-profile-navtabs.html new file mode 100644 index 0000000..403c0a9 --- /dev/null +++ b/includes/fragment-profile-navtabs.html @@ -0,0 +1,120 @@ +{% assign excludexml = site.data.info.excludexml | downcase | slice: 0 %} +{% assign excludejson = site.data.info.excludejson | downcase | slice: 0 %} +{% assign excludettl = site.data.info.excludettl | downcase | slice: 0 %} +{% assign excludemaps = site.data.info.excludemap | downcase | slice: 0 %} +{% assign excludeexamples = site.data.info.excludeexample | downcase | slice: 0 %} +{% assign sd_type = site.data.structuredefinitions.[include.id].type %} +{% assign resource_ = include.type| append: '/'| append: include.id %} +{% assign has_history = site.data.resources[resource_].['history'] %} +{% assign basepath = include.type | append: '-' | append: include.id | append: '.html' %} +{% assign example_count = site.data.pages[basepath].examples.size %} +{% if site.data.resources[resource_].source contains "#" %} +{% assign contained_resource = 'y' %} +{% endif %} + + diff --git a/includes/fragment-resourceTable.html b/includes/fragment-resourceTable.html new file mode 100644 index 0000000..7469424 --- /dev/null +++ b/includes/fragment-resourceTable.html @@ -0,0 +1,111 @@ + +{% if site.data.resources[resource_].url != nil %} + + + + +{% endif %} + +{% capture newJurisdictions %} +{% for jurisdiction in site.data.resources[resource_].jurisdictions %} +{% assign foundRes = false %} +{% for igjur in site.data.resources[igId].jurisdictions %} +{% if igjur.name == jurisdiction.name %} +{% assign foundRes = true %} +{% break %} +{% endif %} +{% endfor %} +{% if foundRes == false %} +{% if jurisdiction.flag %} + {{jurisdiction.name}} flag +{% elsif jurisdiction.code %} + {{jurisdiction.code}} +{% else %} + {{jurisdiction.name}} +{% endif %} +{% endif %} +{% endfor %} +{% endcapture %} +{% assign trimmedJurisdictions = newJurisdictions | strip %} + +{% assign colspan = 1 %} +{% if site.data.resources[resource_].status.fmm == nil %} + {% assign colspan = colspan | plus: 1 %} +{% endif %} +{% if site.data.resources[igId].status.owner == site.data.resources[resource_].status.owner %} + {% assign colspan = colspan | plus: 1 %} +{% endif %} +{% if trimmedJurisdictions == "" %} + {% assign colspan = colspan | plus: 1 %} +{% endif %} + +{% if site.data.resources[resource_].status.fmm %} + +{% endif %} +{% if site.data.resources[igId].status.owner != site.data.resources[resource_].status.owner and site.data.resources[resource_].status.owner != nil %} + +{% endif %} +{% if trimmedJurisdictions != "" %} + +{% endif %} + + +{% if site.data.resources[resource_].identifiers %} + + + +{% endif %} +{% if site.data.resources[resource_].keywords %} + + + +{% endif %} +{% if site.data.resources[resource_].contexts %} + + + +{% endif %} +{%if site.data.resources[resource_].copyright %} + + + +{% endif %} +
Official URL: {{site.data.resources[resource_].url}}Version: + {{site.data.resources[resource_].version}}
+ {% if site.data.resources[resource_].status.standards-status %} + + {% if table_prefix != nil %} + {{table_prefix}} + {% endif %} + Standards status: + {{site.data.resources[resource_].status.standards-status|capitalize}} + {% if site.data.resources[resource_].status.normativeVersion %} + (from v{{site.data.resources[resource_].status.normativeVersion}}) + {% endif %} + {% else %} + {{site.data.resources[resource_].status.status}} + {% if site.data.resources[resource_].date %} + as of {{site.data.resources[resource_].date | date: "%Y-%m-%d"}} + {% endif %} + {% endif %} + + Maturity Level: {{site.data.resources[resource_].status.fmm}} + {% if site.data.resources[resource_].status.fmmSource %} + * + {% endif %} + + Responsible: +{% if site.data.resources[resource_].status.link %} + {{site.data.resources[resource_].status.owner}} +{% else %} + {{site.data.resources[resource_].status.owner}} +{% endif %} + + Realm: {{trimmedJurisdictions}} + Computable Name: {{site.data.resources[resource_].name}}
+ Other Identifiers: {{site.data.resources[resource_].identifiers}} +
+ Keywords: {{site.data.resources[resource_].keywords}} +
{{site.data.resources[resource_].contexts | prepend: '*Usage:*' | markdownify}}
{{site.data.resources[resource_].copyright | prepend: "*Copyright/Legal*: " | markdownify}}
\ No newline at end of file diff --git a/includes/fragment-simpletable.html b/includes/fragment-simpletable.html new file mode 100644 index 0000000..796b385 --- /dev/null +++ b/includes/fragment-simpletable.html @@ -0,0 +1,32 @@ +{% if site.data.resources[resource_].status.status or site.data.resources[resource_].status.standards-status %} + + +{% if site.data.resources[resource_].status.fmm %} + {% assign colspan = 1 %} +{% else %} + {% assign colspan = 2 %} +{% endif %} + +{% if site.data.resources[resource_].status.fmm %} + +{% endif %} + +
+ {% if site.data.resources[resource_].status.standards-status %} + Page standards status: {{site.data.resources[resource_].status.standards-status|capitalize}} + {% if site.data.resources[resource_].status.normativeVersion %} + (from v{{site.data.resources[resource_].status.normativeVersion}}) + {% endif %} + {% else %} + {{site.data.resources[resource_].status.status}} + {% if site.data.resources[resource_].date %} + as of {{site.data.resources[resource_].date | date: "%Y-%m-%d"}} + {% endif %} + {% endif %} + + Maturity Level: {{site.data.resources[resource_].status.fmm}} + {% if site.data.resources[resource_].status.fmmSource %} + * + {% endif %} +
+{% endif %} \ No newline at end of file diff --git a/includes/template-page-md.html b/includes/template-page-md.html new file mode 100644 index 0000000..e269a82 --- /dev/null +++ b/includes/template-page-md.html @@ -0,0 +1,44 @@ +{% include fragment-pagebegin.html %} + +
+

Publish Box goes here

+

{{site.data.pages[page.path].title | escape_once}}

+ {% assign path = page.path | split: '.html' %} + +{% capture toc-content %} +
+{:toc} +* This will not be displayed +
+{% include {{path}}.md %} +{% endcapture %} + +{% if page.path == 'index.html' %} +{% include fragment-igTable.html %} +{% endif %} +{% include fragment-pageTable.html %} + +{% capture no-toc-content %} +
+ +
+{% include {{path}}.md %} +{% endcapture %} + +{% assign teststring = no-toc-content | markdownify | remove: '###### ' | remove: '##### '| remove: '#### ' | replace: " +{% include fragment-pageend.html %} diff --git a/includes/template-page.html b/includes/template-page.html new file mode 100644 index 0000000..5ccafc7 --- /dev/null +++ b/includes/template-page.html @@ -0,0 +1,19 @@ +{% include fragment-pagebegin.html %} + +
+

Publish Box goes here

+

{{site.data.pages[page.path].title | escape_once}}

+ {% if page.path == 'index.html' %} + {% include fragment-igTable.html %} + {% endif %} + {% include fragment-pageTable.html %} + {% assign path = page.path | split: '.html' %} + {% include {{path}}.xml %} +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-canonical-testing.html b/layouts/layout-canonical-testing.html new file mode 100644 index 0000000..70e8585 --- /dev/null +++ b/layouts/layout-canonical-testing.html @@ -0,0 +1,59 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='testing' %} + +

{{[type]}}: {{site.data.pages[page.path].title | escape_once}} +{% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %} +

+ +{% include fragment-simpletable.html %} + +{% assign basepath = page.path | replace: '-testing.html', '.html' %} + + +{% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +

Test Plans

+{% if site.data.pages[basepath].testplans.size > 0 %} + + + {% for testplan in site.data.pages[basepath].testplans %} + + + + {% endfor %} + +
+ {{testplan.title | escape_once}} +
+{% else %} +

No test plans are currently available for the {{id}} {{[type]}}.

+{% endif %} + +

Test Scripts

+{% if site.data.pages[basepath].testscripts.size > 0 %} + + + {% for testscript in site.data.pages[basepath].testscripts %} + + + + {% endfor %} + +
+ {{testscript.title | escape_once}} +
+{% else %} +

No test scripts are currently available for the {{id}} {{[type]}}.

+{% endif %} + + +{% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +{%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-canonical.html b/layouts/layout-canonical.html new file mode 100644 index 0000000..4725afb --- /dev/null +++ b/layouts/layout-canonical.html @@ -0,0 +1,47 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + + +

{{[type]}}: {{site.data.pages[page.path].title | escape_once}} +{% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %} +

+ +{% include fragment-resourceTable.html %} + +{%if site.data.resources[resource_].description %} +

+{{site.data.resources[resource_].description|markdownify}} +

+{% endif %} +{%if site.data.resources[resource_].purpose %} +

+{{site.data.resources[resource_].purpose|markdownify}} +

+{% endif %} + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + +{% unless example %} + {% if '{{[type]}}' == 'CapabilityStatement' %} +

+ Raw OpenAPI-Swagger Definition file | Download +

+ {% endif %} +{% endunless %} + + {% include {{[type]}}-{{[id]}}-html.xhtml %} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + + {%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-changehistory.html b/layouts/layout-changehistory.html new file mode 100644 index 0000000..7351bce --- /dev/null +++ b/layouts/layout-changehistory.html @@ -0,0 +1,21 @@ +--- +--- + + + + +{% include fragment-pagebegin.html %} + +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='history' %} + + +

{{type}}: {{[title]}} - Change History

+

History of changes for {{[id]}} {{type | downcase}}.

+ + {%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-codesystem.html b/layouts/layout-codesystem.html new file mode 100644 index 0000000..8a3070c --- /dev/null +++ b/layouts/layout-codesystem.html @@ -0,0 +1,49 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + +

CodeSystem: {% if site.data.resources[resource_].title %} + {{ site.data.resources[resource_].title | escape_once}} + {% else %} + {{ site.data.resources[resource_].name | escape_once}} + {% endif %} +{% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %} +

+ +{% include fragment-resourceTable.html %} +{%if site.data.resources[resource_].description %} +

+{{site.data.resources[resource_].description|markdownify}} +

+{% endif %}{%if site.data.resources[resource_].purpose %} +

+{{site.data.resources[resource_].purpose|markdownify}} +

+{% endif %} +
+ + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +

+ This Code system is referenced in the content logical definition of the following value sets: +

+ + {% include {{[type]}}-{{[id]}}-xref.xhtml %} + + {% include {{[type]}}-{{[id]}}-content.xhtml %} +
+ {% if site.data.resources[resource_].contained != nil %} +

Contained resources

+ {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} + {% endif %} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + + {%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-examplescenario.html b/layouts/layout-examplescenario.html new file mode 100644 index 0000000..e96d81f --- /dev/null +++ b/layouts/layout-examplescenario.html @@ -0,0 +1,50 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + + +

{{[type]}}: {{site.data.pages[page.path].title | escape_once}} +{% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %} +

+ +{% include fragment-resourceTable.html %} + +{%if site.data.resources[resource_].description %} +

+{{site.data.resources[resource_].description|markdownify}} +

+{% endif %} +{%if site.data.resources[resource_].purpose %} +

+{{site.data.resources[resource_].purpose|markdownify}} +

+{% endif %} + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + +

Actors

+ {% include {{[type]}}-{{[id]}}-actor-table.xhtml %} + + +

Diagram

+ {% include {{[type]}}-{{[id]}}-process-diagram.xhtml %} + + +

Processes

+ {% include {{[type]}}-{{[id]}}-processes.xhtml %} + + +

Instances

+ {% include {{[type]}}-{{[id]}}-instance-table.xhtml %} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + + {%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-ext.html b/layouts/layout-ext.html new file mode 100644 index 0000000..1701da1 --- /dev/null +++ b/layouts/layout-ext.html @@ -0,0 +1,209 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + +

Extension: {{site.data.pages[page.path].title | escape_once}} +{% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %} +

+ +{% include fragment-resourceTable.html %} +{%if site.data.resources[resource_].description %} +{{site.data.resources[resource_].description|markdownify}} +{% endif %}{%if site.data.resources[resource_].purpose %} +{{site.data.resources[resource_].purpose|markdownify}} +{% endif %} + +

Context of Use

+

This extension may be used on the following {{site.data.structuredefinitions['{{[id]}}'].contextType}} element(s):

+
    + {% for context in site.data.structuredefinitions['{{[id]}}'].contexts %} +
  • {{context.type}} {{context.expression}}
  • + {% endfor %} +
+ + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +

Usage info

+ {%include StructureDefinition-{{[id]}}-sd-xref.xhtml%} + + + +

Formal Views of Extension Content

+

+ Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work. +

+
+ + +
+
+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ + {%include StructureDefinition-{{[id]}}-summary.xhtml%} +
+
+
+ +
+
+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ {%include StructureDefinition-{{[id]}}-diff.xhtml%} +
+
+
+ +
+
+
+ {%include StructureDefinition-{{[id]}}-snapshot.xhtml%} +
+
+
+{% unless excludexml == 'y' %} + +{% endunless %} +{% unless excludejson == 'y' %} + +{% endunless %} +{% unless excludettl == 'y' %} + +{% endunless %} + +
+
+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ {%include StructureDefinition-{{[id]}}-summary-all.xhtml%} +
+
+
+

+ Differential View +

+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ {%include StructureDefinition-{{[id]}}-diff-all.xhtml%} +
+
+
+

+ Snapshot View +

+
+ {%include StructureDefinition-{{[id]}}-snapshot-all.xhtml%} +
+
+{% unless excludexml == 'y' %} + +{% endunless %} +{% unless excludejson == 'y' %} + +{% endunless %} +{% unless excludettl == 'y' %} + +{% endunless %} +
+
+

 

+

Other representations of profile: CSV, Excel, Schematron +

+ + + {%include StructureDefinition-{{[id]}}-tx.xhtml%} + +{% capture invariants %} + {% include StructureDefinition-{{[id]}}-inv.xhtml %} +{% endcapture %} + +{% unless invariants.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv.xhtml %} +{% endunless%} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-histoire.html b/layouts/layout-histoire.html new file mode 100644 index 0000000..a87664f --- /dev/null +++ b/layouts/layout-histoire.html @@ -0,0 +1,24 @@ +--- +--- + + + + +{% include fragment-pagebegin.html %} + +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='histoire' %} + + +

{{[type]}}: {{[title]}} - Histoire

+ + +
+ Pas d'historique pour cette ressource + +
+ +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-instance-base.html b/layouts/layout-instance-base.html new file mode 100644 index 0000000..6a678c5 --- /dev/null +++ b/layouts/layout-instance-base.html @@ -0,0 +1,39 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ + {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + + +{% if site.data.artifacts[page.path].example %} + {% assign example = 'Example ' %} +{% endif %} +{% assign prefix = site.data.artifacts[page.path].type %} +

{{example}}{{prefix}}: {{site.data.pages[page.path].title | escape_once}}

+ +{% include fragment-simpletable.html %} +{% unless example %} + {% if '{{[type]}}' == 'CapabilityStatement' %} +

+ Raw OpenAPI-Swagger Definition file | Download +

+ {% endif %} +{% endunless %} + + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + {% include {{[type]}}-{{[id]}}-html.xhtml %} + + {% if site.data.resources[resource_].contained != nil %} +

Contained resources

+ {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} + {% endif %} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-instance-format.html b/layouts/layout-instance-format.html new file mode 100644 index 0000000..3839d1c --- /dev/null +++ b/layouts/layout-instance-format.html @@ -0,0 +1,36 @@ +--- +--- + +{% if '{{[fmt]}}' == 'xml' %} +{% assign section = '7' %} +{% elsif '{{[fmt]}}' == 'json' %} +{% assign section = '8' %} +{% else %} +{% assign section = '9' %} +{% endif %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='{{[fmt]}}' %} + + +{% if site.data.artifacts[page.path].example %} + {% assign example = 'Example ' %} +{% endif %} +{% assign prefix = site.data.artifacts[page.path].type %} +

{{example}}{{prefix}}: {{site.data.pages[page.path].title | escape_once}}

+{% include fragment-simpletable.html %} + +

Raw {{[fmt]}} | Download

+ + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + {% include {{[type]}}-{{[name]}}.xhtml %} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% include fragment-pageend.html %} diff --git a/layouts/layout-profile-definitions.html b/layouts/layout-profile-definitions.html new file mode 100644 index 0000000..df41200 --- /dev/null +++ b/layouts/layout-profile-definitions.html @@ -0,0 +1,51 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='definition' %} + + +

{{modelType}}: {{[title]}} - Detailed Descriptions

+{% include fragment-simpletable.html %} + +

Definitions for the {{[id]}} {{modelType | downcase}}.

+ + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +
+ + +
+ {%include StructureDefinition-{{[id]}}-dict-diff.xhtml%} +
+ +
+ {%include StructureDefinition-{{[id]}}-dict-key.xhtml%} +
+ +
+ {%include StructureDefinition-{{[id]}}-dict.xhtml%} +
+
+ + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-profile-examples.html b/layouts/layout-profile-examples.html new file mode 100644 index 0000000..a0be207 --- /dev/null +++ b/layouts/layout-profile-examples.html @@ -0,0 +1,41 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='example' %} + + +

{{modelType}}: {{[title]}} - Examples

+{% include fragment-simpletable.html %} + + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +{% assign basepath = page.path | replace: '-examples.html', '.html' %} +{% if site.data.pages[basepath].examples.size > 0 %} +

Examples for the {{[id]}} Profile.

+ + + {% for example in site.data.pages[basepath].examples %} + + + + {% endfor %} + +
+ {{example.title | escape_once}} +
+{% else %} +

No examples are currently available for the {{id}} Profile.

+{% endif %} + + +{% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-profile-format.html b/layouts/layout-profile-format.html new file mode 100644 index 0000000..56f53f1 --- /dev/null +++ b/layouts/layout-profile-format.html @@ -0,0 +1,39 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% assign format = page.path | split: '.html'| first | split: '.' | last %} + +{% if format == 'xml' %} +{% assign section = '7' %} +{% elsif format == 'json' %} +{% assign section = '8' %} +{% else %} +{% assign section = '9' %} +{% endif %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active=format %} + + +

{{modelType}}: {{[title]}} - {{format | upcase}} Profile

+{% include fragment-simpletable.html %} + +

{{format | upcase}} representation of the {{[id]}} {{modelType | downcase }}.

+ +

Raw {{format}} | Download

+ + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + {%include StructureDefinition-{{[id]}}-{{format}}-html.xhtml%} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-profile-history.html b/layouts/layout-profile-history.html new file mode 100644 index 0000000..cb16f7f --- /dev/null +++ b/layouts/layout-profile-history.html @@ -0,0 +1,21 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% include fragment-pagebegin.html %} + +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='history' %} + + +

{{modelType}}: {{[title]}} - Change History

+{% include fragment-simpletable.html %} +

Changes in the {{[id]}} {{modelType | downcase}}.

+ + {%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-profile-mappings.html b/layouts/layout-profile-mappings.html new file mode 100644 index 0000000..c76a1e2 --- /dev/null +++ b/layouts/layout-profile-mappings.html @@ -0,0 +1,27 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='mapping' %} + + +

{{modelType}}: {{[title]}} - Mappings

+{% include fragment-simpletable.html %} + +

Mappings for the {{[id]}} {{modelType | downcase }}.

+ + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + {%include StructureDefinition-{{[id]}}-maps.xhtml%} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-profile-testing.html b/layouts/layout-profile-testing.html new file mode 100644 index 0000000..2856dd1 --- /dev/null +++ b/layouts/layout-profile-testing.html @@ -0,0 +1,59 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='testing' %} + + +

{{modelType}}: {{[title]}} - Testing

+{% include fragment-simpletable.html %} + +{% assign basepath = page.path | replace: '-testing.html', '.html' %} + + +{% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +

Test Plans

+{% if site.data.pages[basepath].testplans.size > 0 %} + + + {% for testplan in site.data.pages[basepath].testplans %} + + + + {% endfor %} + +
+ {{testplan.title | escape_once}} +
+{% else %} +

No test plans are currently available for the {{id}} Profile.

+{% endif %} + +

Test Scripts

+{% if site.data.pages[basepath].testscripts.size > 0 %} + + + {% for testscript in site.data.pages[basepath].testscripts %} + + + + {% endfor %} + +
+ {{testscript.title | escape_once}} +
+{% else %} +

No test scripts are currently available for the {{id}} Profile.

+{% endif %} + + +{% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-profile.html b/layouts/layout-profile.html new file mode 100644 index 0000000..0756b0c --- /dev/null +++ b/layouts/layout-profile.html @@ -0,0 +1,302 @@ +--- +--- + +{% include fragment-modelType.html id='{{[id]}}' %} + +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + + +

{{modelType}}: +{% if site.data.structuredefinitions["{{[id]}}"].abstract == true %} + {{site.data.pages[page.path].title | escape_once}} +{% else %} + {{site.data.pages[page.path].title}} +{% endif %} +{% if site.data.resources[resource_].experimental == true or site.data.structuredefinitions["{{[id]}}"].abstract == true %}({% endif %} +{% if site.data.structuredefinitions["{{[id]}}"].abstract == true %}Abstract{% endif %} +{% if site.data.resources[resource_].experimental == true %}Experimental{% endif %} +{% if site.data.resources[resource_].experimental == true or site.data.structuredefinitions["{{[id]}}"].abstract == true %}){% endif %} +

+ +{% include fragment-resourceTable.html %} +{%if site.data.resources[resource_].description %} +

+{{site.data.resources[resource_].description|markdownify}} +

+{% endif %}{%if site.data.resources[resource_].purpose %} +

+{{site.data.resources[resource_].purpose|markdownify}} +

+{% endif %} + + + +{% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + +{%include StructureDefinition-{{[id]}}-sd-xref.xhtml%} + + + +

Formal Views of Profile Content

+

+ Description of Profiles, Differentials, Snapshots and how the different presentations work. +

+
+ + +
+
+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ {%include StructureDefinition-{{[id]}}-diff.xhtml%} + + + {%include StructureDefinition-{{[id]}}-tx-diff.xhtml%} + + {% capture invariantsdiff %} + {% include StructureDefinition-{{[id]}}-inv-diff.xhtml %} + {% endcapture %} + + {% unless invariantsdiff.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv-diff.xhtml %} + {% endunless%} +
+
+
+ +
+
+
+ {%include StructureDefinition-{{[id]}}-snapshot-by-key.xhtml%} + + {%include StructureDefinition-{{[id]}}-tx-key.xhtml%} + + {% capture invariantskey %} + {% include StructureDefinition-{{[id]}}-inv-key.xhtml %} + {% endcapture %} + + {% unless invariantskey.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv-key.xhtml %} + {% endunless%} +
+
+
+ +
+
+
+ {%include StructureDefinition-{{[id]}}-snapshot.xhtml%} + + {%include StructureDefinition-{{[id]}}-tx.xhtml%} + + {% capture invariants %} + {% include StructureDefinition-{{[id]}}-inv.xhtml %} + {% endcapture %} + + {% unless invariants.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv.xhtml %} + {% endunless%} +
+
+
+{% unless excludexml == 'y' %} + +{% endunless %} +{% unless excludejson == 'y' %} + +{% endunless %} +{% unless excludettl == 'y' %} + +{% endunless %} + +
+
+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ + {%include StructureDefinition-{{[id]}}-summary.xhtml%} +
+
+
+ +
+
+

+ Differential View +

+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ {%include StructureDefinition-{{[id]}}-diff-all.xhtml%} + + {%include StructureDefinition-{{[id]}}-tx-diff.xhtml%} + + {% capture invariantsdiff %} + {% include StructureDefinition-{{[id]}}-inv-diff.xhtml %} + {% endcapture %} + + {% unless invariantsdiff.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv-diff.xhtml %} + {% endunless%} +
+
+
+

+ Key Elements View +

+
+ {%include StructureDefinition-{{[id]}}-snapshot-by-key-all.xhtml%} + + {%include StructureDefinition-{{[id]}}-tx-key.xhtml%} + + {% capture invariantskey %} + {% include StructureDefinition-{{[id]}}-inv-key.xhtml %} + {% endcapture %} + + {% unless invariantskey.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv-key.xhtml %} + {% endunless%} +
+
+
+

+ Snapshot View +

+
+ {%include StructureDefinition-{{[id]}}-snapshot-all.xhtml%} + + {%include StructureDefinition-{{[id]}}-tx.xhtml%} + + {% capture invariants %} + {% include StructureDefinition-{{[id]}}-inv.xhtml %} + {% endcapture %} + + {% unless invariants.size <= 218 %} + + + {% include StructureDefinition-{{[id]}}-inv.xhtml %} + {% endunless%} +
+
+{% unless excludexml == 'y' %} + +{% endunless %} +{% unless excludejson == 'y' %} + +{% endunless %} +{% unless excludettl == 'y' %} + +{% endunless %} +
+

This structure is derived from {{site.data.structuredefinitions['{{[id]}}'].basename}} +

+
+ {%include StructureDefinition-{{[id]}}-summary-all.xhtml%} +
+
+
+
+

 

+

Other representations of profile: CSV, Excel{% unless modelType == 'Logical Model' %}, Schematron +{% endunless %} +

+ + {% if site.data.resources[resource_].contained != nil %} +

Contained resources

+ {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} + {% endif %} + + +{% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-telechargement.html b/layouts/layout-telechargement.html new file mode 100644 index 0000000..3a47359 --- /dev/null +++ b/layouts/layout-telechargement.html @@ -0,0 +1,45 @@ +--- +--- + + + + +{% include fragment-pagebegin.html %} + +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='tel' %} + + +

{{[type]}}: {{[title]}} - Telechargement

+
+
+ + + + + + + + + + + + + + + + + + + + + + +
csv Fichier csv (.tabs)
svs Fichier xml (Sharing Value Sets)
fhir Fichier Fhir Json
fhir Fichier Fhir Xml
+ +
+ +
+{% assign includetabscripts = 'true' %} +{% include fragment-pageend.html %} diff --git a/layouts/layout-valueset.html b/layouts/layout-valueset.html new file mode 100644 index 0000000..d3bc76e --- /dev/null +++ b/layouts/layout-valueset.html @@ -0,0 +1,97 @@ +--- +--- +{% include fragment-pagebegin.html %} +
+

Publish Box goes here

+ {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} + +

ValueSet: {% if site.data.resources[resource_].title %} + {{ site.data.resources[resource_].title | escape_once}} + {% else %} + {{ site.data.resources[resource_].name | escape_once}} + {% endif %} + + +{% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %} +

+{% include fragment-resourceTable.html %} +{%if site.data.resources[resource_].description %} +

+{{site.data.resources[resource_].description|markdownify}} +

+{% endif %}{%if site.data.resources[resource_].purpose %} +

+{{site.data.resources[resource_].purpose|markdownify}} +

+{% endif %} +
+

+ References +

+ {%include {{[type]}}-{{[id]}}-xref.xhtml%} + + + + + + {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} + + {% include fragment-onto.html type='{{[type]}}' id='{{[id]}}' %} + + + + +
+ {%include {{[type]}}-{{[id]}}-cld.xhtml%} +
+ +

 

+ +

Expansion

+ + {%include {{[type]}}-{{[id]}}-expansion.xhtml%} + +
+

+ Explanation of the columns that may appear on this page: +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
LevelA few code lists that FHIR defines are hierarchical - each code is assigned a level. + In this scheme, some codes are under other codes, and imply that the code they are under also applies
SystemThe source of the definition of the code (when the value set draws in codes defined elsewhere)
CodeThe code (used as the code in the resource instance)
DisplayThe display (used in the display element of a Coding). If there is no display, implementers should not simply display the code, but map the concept into their application
DefinitionAn explanation of the meaning of the concept
CommentsAdditional notes about how to use the code
+
+ {% if site.data.resources[resource_].contained != nil %} +

Contained resources

+ {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} + {% endif %} + + + {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} + + {%include {{[type]}}-{{[id]}}-history.xhtml%} + +
+{% include fragment-pageend.html %} From 0acac499e0369d6b66e69fa3531dfec6f27fde99 Mon Sep 17 00:00:00 2001 From: Mael PRIOUR <101335975+M-Priour@users.noreply.github.com> Date: Sun, 13 Oct 2024 18:06:39 +0200 Subject: [PATCH 02/32] ajout de ontoNOs --- content/assets/js/addOnto.js | 203 +++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 content/assets/js/addOnto.js diff --git a/content/assets/js/addOnto.js b/content/assets/js/addOnto.js new file mode 100644 index 0000000..c8c111a --- /dev/null +++ b/content/assets/js/addOnto.js @@ -0,0 +1,203 @@ +$(document).ready(function(){ + + + + if ( $("#divHistoire").length ) { + $('#divHistoire').html('
Histoire Version Demande Resultat Date
'); + + + $.ajax({ + type: 'get', + url: "https://smt.esante.gouv.fr/fhir/" + $('#typeValue').val() + "/" + $('#idValue').val() + "/_history?_summary=true", + contentType: 'application/json', + dataType:"json", + }) + .done((data) => { + + if (data.entry != null) { + $.each(data.entry, function (i, obj) { + var content = '' ; + content += ''+ obj.resource.meta.versionId +'' + obj.resource.version +'' + obj.request.method +' ' + obj.response.status + ' '+ obj.response.lastModified +''; + content += ''; + $('#idHistoire').append(content); + + + content ='
OperationCheminNomPrécédent Valeur
'; + console.log("https://smt.esante.gouv.fr/fhir/" + obj.id + "/$diff"); + $('#idHistoire').append(content); + $.ajax({ + type: 'get', + url: "https://smt.esante.gouv.fr/fhir/" + obj.id + "/$diff", + contentType: 'application/json', + dataType:"json", + }) + .done((data) => { + if (data.parameter != null) { + $.each(data.parameter, function (i, obj2) { + var operation = ""; + var chemin = ""; + var nom = ""; + var precedent =""; + var valeur =""; + $.each(obj2.part, function (ipart, objPart) { + if(Object.values(objPart)[0] == "type") + operation = Object.values(objPart)[1]; + if(Object.values(objPart)[0] == "path") + chemin = Object.values(objPart)[1]; + if(Object.values(objPart)[0] == "name") + nom = Object.values(objPart)[1]; + if(Object.values(objPart)[0] == "value") + valeur = Object.values(objPart)[1]; + if(Object.values(objPart)[0] == "previousValue") + precedent = Object.values(objPart)[1]; + }); + content = '' + operation +'' + chemin +' ' + nom+ ' '+ precedent +'' + valeur + ''; + $('#histoire'+obj.resource.meta.versionId).append(content); + + + }); + } + }); + + }); + + } + }) + .fail((err) => { + console.error(err); + }) + .always(() => { + }); + + + + + + }; + + + + + + + + + + + + + + $("#terminologit-search-content-valueset-cld").addClass("accordion-group"); + //$("#terminologit-search-content-valueset-cld").attr("id","logical-definition-accordion-group"); + var logicalDefHeading = $("#terminologit-search-content-valueset-cld").find("#logical-definition-cld"); + $(logicalDefHeading).addClass("accordion-heading"); + $(logicalDefHeading).append(''); + $(logicalDefHeading).next().addClass("accordion-body collapse"); + $(logicalDefHeading).next().attr('id', 'logical-definition-cld-collapse'); + + $('.gg-chevron-down').each(function () { + $(this).click(function () { + jQuery(this).toggleClass("rotate-toggle"); + }); + }); + + + $(window).scroll(function () { + if ($(this).scrollTop() > 50) { + $('#back-to-top').fadeIn(); + } else { + $('#back-to-top').fadeOut(); + } + }); + // scroll body to 0px on click + $('#back-to-top').click(function () { + $('#back-to-top').tooltip('hide'); + $('body,html').animate({ + scrollTop: 0 + }, 800); + return false; + }); + + $('#back-to-top').tooltip('show'); + + + $('#ontoSearch').on( "change", function() { + $('#resultOnto').html("Recherche ..."); + $('#counterOnto').html(""); + resultOnto + $.ajax({ + type: 'get', + url: "https://smt.esante.gouv.fr/fhir//ValueSet/$expand?_format=json&url=" + ($('i:contains("Official URL")').next()).contents().eq(0).text() + "&filter=" + $('#ontoSearch').val(), + contentType: 'application/json', + dataType:"json", + }) + .done((data) => { + $('#resultOnto').html(""); + $('#counterOnto').html(data.expansion.total + ' item'); + if (data.expansion.contains != null) { + $('#resultOnto').html('
CodeSystemDisplay
'); + $.each(data.expansion.contains, function (i, obj) { + var content = '' ; + content += '' + obj.code +'' + obj.system+'' + obj.display+''; + content += ''; + $('#bodyOntoTable').append(content); + }); + } + }) + .fail((err) => { + console.error(err); + }) + .always(() => { + $('#requeteOnto').html("GET https://smt.esante.gouv.fr/fhir//ValueSet/$expand?_format=json&url=" + ($('i:contains("Official URL")').next()).contents().eq(0).text() + "&filter=" + $('#ontoSearch').val()); + }); + }); + + + + $('#orig').find('table.codes').each(function(indextable) { + if($(this).find("tr").length ==1) { + $(this).parent().hide(); + } + $('
').insertBefore($(this)); + firstTr = $(this).find('tr:first').remove() + firstTr.find('td').contents().unwrap().wrap('') + $(this).prepend($('').append(firstTr)) + $(this).addClass("results"+indextable); + $(this).addClass("table-striped"); + + $(".search"+indextable).keyup(function () { + var searchTerm = $(".search"+indextable).val(); + var listItem = $('.results'+indextable +' tbody').children('tr'); + var searchSplit = searchTerm.replace(/ /g, "'):containsi('") + + $.extend($.expr[':'], {'containsi': function(elem, i, match, array){ + return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; + } + }); + + $(".results"+indextable +" tbody tr").not(":containsi('" + searchSplit + "')").each(function(e){ + $(this).attr('visible','false'); + }); + + $(".results"+indextable +" tbody tr:containsi('" + searchSplit + "')").each(function(e){ + $(this).attr('visible','true'); + }); + + if(searchSplit=="") { + $(".results"+indextable +" tbody tr").attr('visible','true'); + $('.counter'+indextable).text(""); + } + + var jobCount = $('.results'+indextable +' tbody tr[visible="true"]').length; + $('.counter'+indextable).text(jobCount + ' item'); + + if(jobCount == '0') {$('.no-result').show();} + else {$('.no-result').hide();} + }); + + }); + + + if($("table.codes").find('tr:eq(0) th:eq(4)').text()=='dateFin') + $("table.codes tr td:nth-child(5):not(:empty)").parent().children().css("background-color","#E69215"); + }); \ No newline at end of file From f22169c66432fe11b647a8885841afecb6ff3fc7 Mon Sep 17 00:00:00 2001 From: Mael PRIOUR <101335975+M-Priour@users.noreply.github.com> Date: Sun, 13 Oct 2024 18:10:24 +0200 Subject: [PATCH 03/32] Bug sur le svs --- layouts/layout-telechargement.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/layout-telechargement.html b/layouts/layout-telechargement.html index 3a47359..cc2a668 100644 --- a/layouts/layout-telechargement.html +++ b/layouts/layout-telechargement.html @@ -23,7 +23,7 @@

{{[type]}}: {{[title]}} - Telechargement

- svs + svs Fichier xml (Sharing Value Sets) From ac52107df4fda25d8206a6b02acbe212bc418dbe Mon Sep 17 00:00:00 2001 From: Mael PRIOUR <101335975+M-Priour@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:13:05 +0200 Subject: [PATCH 04/32] Update layout-valueset.html --- layouts/layout-valueset.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layouts/layout-valueset.html b/layouts/layout-valueset.html index d3bc76e..9e2ebb7 100644 --- a/layouts/layout-valueset.html +++ b/layouts/layout-valueset.html @@ -24,7 +24,7 @@

ValueSet: {% if site.data.resources[resource_].title %} {{site.data.resources[resource_].purpose|markdownify}}

{% endif %} -
+

References

@@ -37,7 +37,7 @@

ValueSet: {% if site.data.resources[resource_].title %} {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %} {% include fragment-onto.html type='{{[type]}}' id='{{[id]}}' %} - +
From 7c1f01a311304c2b45def06b4ca704be8f7388b4 Mon Sep 17 00:00:00 2001 From: Mael PRIOUR <101335975+M-Priour@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:31:28 +0200 Subject: [PATCH 05/32] Update fragment-resourceTable.html --- includes/fragment-resourceTable.html | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/includes/fragment-resourceTable.html b/includes/fragment-resourceTable.html index 7469424..87d05d7 100644 --- a/includes/fragment-resourceTable.html +++ b/includes/fragment-resourceTable.html @@ -7,7 +7,7 @@ {{site.data.resources[resource_].version}}
'); + + $.each(data.items, function (i, obj) { + var content = '' ; + content += ''+ obj.state +' ' + obj.title +'' + obj.user.login + '' + obj.created_at + ''; + content += ''; + $('#idDemande').append(content); + + + + + + }); + + } + }) + .fail((err) => { + console.error(err); + }) + .always(() => { + }); + + + + + + + + + + } + + + if ( $("#divHistoire").length ) { $('#divHistoire').html('
Histoire Version Demande Resultat Date
'); diff --git a/includes/fragment-base-navtabs.html b/includes/fragment-base-navtabs.html index 1997c66..c7ca574 100644 --- a/includes/fragment-base-navtabs.html +++ b/includes/fragment-base-navtabs.html @@ -93,6 +93,16 @@ {% endif %} +{% if include.active == 'demande' %} +
  • + Demande +
  • +{% else %} +
  • + Demande +
  • +{% endif %} + {% if include.type =="CodeSystem" or include.type =="ValueSet" %} {% if include.active == 'tel' %}
  • @@ -107,4 +117,10 @@ + + + + + + diff --git a/includes/fragment-footer.html b/includes/fragment-footer.html index bd06d3b..4f0de48 100644 --- a/includes/fragment-footer.html +++ b/includes/fragment-footer.html @@ -1,4 +1,4 @@ Liens: Table des matières | QA | Historique des versions -{% for feedbacklink in site.data.features.feedback %}{% if feedbacklink.dashboard %} | {{feedbacklink.dashboard.label}}{% endif %}{% endfor %} \ No newline at end of file +{% for feedbacklink in site.data.features.feedback %}{% if feedbacklink.dashboard %} | {{feedbacklink.dashboard.label}}{% endif %}{% endfor %} \ No newline at end of file diff --git a/layouts/layout-demande.html b/layouts/layout-demande.html index 7760682..2d5f031 100644 --- a/layouts/layout-demande.html +++ b/layouts/layout-demande.html @@ -1,6 +1,6 @@ --- --- - + @@ -8,7 +8,7 @@

    Publish Box goes here

    - {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='histoire' %} + {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='demande' %}

    {{[type]}}: {{[title]}} - Demande

    From 5e00915ecc9c986c1af45281c9fd875791002d02 Mon Sep 17 00:00:00 2001 From: mael priour Date: Sun, 2 Feb 2025 17:07:00 +0100 Subject: [PATCH 27/32] Gestion de l'historique --- content/assets/js/addOnto.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/assets/js/addOnto.js b/content/assets/js/addOnto.js index 7f2c8f1..d1161d5 100644 --- a/content/assets/js/addOnto.js +++ b/content/assets/js/addOnto.js @@ -104,7 +104,7 @@ $(document).ready(function(){ if(Object.values(objPart)[0] == "previousValue") precedent = Object.values(objPart)[1]; }); - content = '' + operation +'' + chemin +' ' + nom+ ' '+ precedent +'' + valeur + ''; + content = '' + operation +'' + chemin +' ' + nom+ ' '+ valeur +'' + precedent + ''; $('#histoire'+obj.resource.meta.versionId).append(content); From cb98c98c54d2ec57ea871a275fd18f6a616cd4d1 Mon Sep 17 00:00:00 2001 From: Mael PRIOUR <101335975+M-Priour@users.noreply.github.com> Date: Tue, 11 Mar 2025 18:24:37 +0100 Subject: [PATCH 28/32] Update addOnto.js --- content/assets/js/addOnto.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/assets/js/addOnto.js b/content/assets/js/addOnto.js index d1161d5..f4e03ea 100644 --- a/content/assets/js/addOnto.js +++ b/content/assets/js/addOnto.js @@ -300,7 +300,8 @@ $(document).ready(function(){ if($("table.codes").find('tr:eq(0) th:eq(5)').text()=='dateFin') $("table.codes tr td:nth-child(6):not(:empty)").parent().children().css("background-color","#E69215"); - + $("table.codes tr td:contains(Deprecated)").parent().children().css("background-color","#E69215"); + $("#orig").find("code").css("background-color","#464c6d"); $("#orig").find("code").css("color","white"); $("#orig").find("code").css("font-weight","bolder"); From 2a8d91c49ce20dee45c304f1814a4a458abfe08c Mon Sep 17 00:00:00 2001 From: Nicolas Riss <48218773+nriss@users.noreply.github.com> Date: Wed, 29 Oct 2025 10:44:54 +0100 Subject: [PATCH 29/32] ajout trad fr --- layouts/layout-codesystem.html | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/layouts/layout-codesystem.html b/layouts/layout-codesystem.html index 8a3070c..552e094 100644 --- a/layouts/layout-codesystem.html +++ b/layouts/layout-codesystem.html @@ -5,11 +5,7 @@

    Publish Box goes here

    {% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %} -

    CodeSystem: {% if site.data.resources[resource_].title %} - {{ site.data.resources[resource_].title | escape_once}} - {% else %} - {{ site.data.resources[resource_].name | escape_once}} - {% endif %} +

    CodeSystem: {{site.data.pages[page.path].title | escape_once}} {% if site.data.resources[resource_].experimental == true %}(Experimental){% endif %}

    @@ -23,20 +19,19 @@

    CodeSystem: {% if site.data.resources[resource_].title %} {{site.data.resources[resource_].purpose|markdownify}}

    {% endif %} -
    {% include fragment-intro.html type='{{[type]}}' id='{{[id]}}' %}

    - This Code system is referenced in the content logical definition of the following value sets: + Cette terminologie de référence (CodeSystem) est référencé dans la définition de contenu des jeux de valeurs (ValueSet) suivants :

    {% include {{[type]}}-{{[id]}}-xref.xhtml %} {% include {{[type]}}-{{[id]}}-content.xhtml %} -
    + {% if site.data.resources[resource_].contained != nil %} -

    Contained resources

    +

    Ressources contenues

    {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} {% endif %} @@ -46,4 +41,4 @@

    Contained resources

    {%include {{[type]}}-{{[id]}}-history.xhtml%}
    -{% include fragment-pageend.html %} +{% include fragment-pageend.html %} \ No newline at end of file From 113d65599d95de1150d72c5a563dabb717e34f9a Mon Sep 17 00:00:00 2001 From: mael priour Date: Sat, 15 Nov 2025 16:32:01 +0100 Subject: [PATCH 30/32] MAJ du template --- content/assets/js/addOnto.js | 4 ++-- includes/fragment-base-navtabs.html | 19 +++++++++++-------- layouts/layout-codesystem.html | 15 ++++++++------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/content/assets/js/addOnto.js b/content/assets/js/addOnto.js index f4e03ea..96b7bf8 100644 --- a/content/assets/js/addOnto.js +++ b/content/assets/js/addOnto.js @@ -302,10 +302,10 @@ $(document).ready(function(){ $("table.codes tr td:nth-child(6):not(:empty)").parent().children().css("background-color","#E69215"); $("table.codes tr td:contains(Deprecated)").parent().children().css("background-color","#E69215"); - $("#orig").find("code").css("background-color","#464c6d"); + $("#orig").find("code").css("background-color","#c7cef1ff"); $("#orig").find("code").css("color","white"); $("#orig").find("code").css("font-weight","bolder"); - $("#orig").find("code").css("font-size","14px"); + $("#orig").find("code").css("font-size","10px"); diff --git a/includes/fragment-base-navtabs.html b/includes/fragment-base-navtabs.html index c7ca574..9c195b3 100644 --- a/includes/fragment-base-navtabs.html +++ b/includes/fragment-base-navtabs.html @@ -93,16 +93,19 @@
  • {% endif %} -{% if include.active == 'demande' %} -
  • - Demande -
  • -{% else %} -
  • - Demande -
  • +{% if include.type =="CodeSystem" or include.type =="ValueSet" or include.type =="ConceptMap" %} + {% if include.active == 'demande' %} +
  • + Demande +
  • + {% else %} +
  • + Demande +
  • + {% endif %} {% endif %} + {% if include.type =="CodeSystem" or include.type =="ValueSet" %} {% if include.active == 'tel' %}
  • diff --git a/layouts/layout-codesystem.html b/layouts/layout-codesystem.html index 552e094..e8e0489 100644 --- a/layouts/layout-codesystem.html +++ b/layouts/layout-codesystem.html @@ -28,13 +28,14 @@

    CodeSystem: {{site.data.pages[page.path].title | escape_once}} {% include {{[type]}}-{{[id]}}-xref.xhtml %} - {% include {{[type]}}-{{[id]}}-content.xhtml %} - - {% if site.data.resources[resource_].contained != nil %} -

    Ressources contenues

    - {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} - {% endif %} - +
    + {% include {{[type]}}-{{[id]}}-content.xhtml %} + + {% if site.data.resources[resource_].contained != nil %} +

    Ressources contenues

    + {% include {{[type]}}-{{[id]}}-contained-index.xhtml %} + {% endif %} +
    {% include fragment-notes.html type='{{[type]}}' id='{{[id]}}' %} From 6f73c1f1a370bbc4bcaf6deeef9f629f5c6a8408 Mon Sep 17 00:00:00 2001 From: mael priour Date: Sat, 22 Nov 2025 15:20:56 +0100 Subject: [PATCH 31/32] =?UTF-8?q?Preservation=20des=20prori=C3=A9t=C3=A9?= =?UTF-8?q?=20de=20la=20ligne=20d'en-ete=20des=20tableaux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/assets/js/addOnto.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/content/assets/js/addOnto.js b/content/assets/js/addOnto.js index 96b7bf8..13a7284 100644 --- a/content/assets/js/addOnto.js +++ b/content/assets/js/addOnto.js @@ -211,9 +211,16 @@ $(document).ready(function(){ if($(this).find("tr").length ==1) { $(this).parent().hide(); } - $('
    ').insertBefore($(this)); + $('
    ').insertBefore($(this)); firstTr = $(this).find('tr:first').remove() - firstTr.find('td').contents().unwrap().wrap('') + firstTr.find('td').each(function() { + var $td = $(this); + var $th = $('').html($td.html()); + $.each(this.attributes, function() { + $th.attr(this.name, this.value); + }); + $td.replaceWith($th); + }) $(this).prepend($('').append(firstTr)) $(this).addClass("results"+indextable); $(this).addClass("table-striped"); @@ -254,9 +261,16 @@ $(document).ready(function(){ if($(this).find("tr").length ==1) { $(this).parent().hide(); } - $('
    ').insertBefore($(this)); + $('
    ').insertBefore($(this)); firstTr = $(this).find('tr:first').remove() - firstTr.find('td').contents().unwrap().wrap('') + firstTr.find('td').each(function() { + var $td = $(this); + var $th = $('').html($td.html()); + $.each(this.attributes, function() { + $th.attr(this.name, this.value); + }); + $td.replaceWith($th); + }) $(this).prepend($('').append(firstTr)) $(this).addClass("results"+indextable); $(this).addClass("table-striped"); From 9382495210b88ddd6a678adc45f4ad7197288cfd Mon Sep 17 00:00:00 2001 From: mael priour Date: Sun, 23 Nov 2025 15:45:56 +0100 Subject: [PATCH 32/32] Amelioration du script js --- content/assets/js/addOnto.js | 728 +++++++++++++++++++++-------------- 1 file changed, 438 insertions(+), 290 deletions(-) diff --git a/content/assets/js/addOnto.js b/content/assets/js/addOnto.js index 13a7284..8e5156b 100644 --- a/content/assets/js/addOnto.js +++ b/content/assets/js/addOnto.js @@ -1,329 +1,477 @@ -var url = new URL($('#newissue').attr('href')); -url.searchParams.set('title', $('#idValue').val() ); -$('#newissue').attr('href',url) +/** + * addOnto_bis.js - Version améliorée + * Améliorations: code factorisé, animations, meilleure UX, tri des colonnes + */ +// ============================================================================ +// UTILITY FUNCTIONS +// ============================================================================ +/** + * Debounce function pour limiter les appels fréquents + */ +function debounce(func, delay) { + let timeoutId; + return function(...args) { + clearTimeout(timeoutId); + timeoutId = setTimeout(() => func.apply(this, args), delay); + }; +} +/** + * Formate une date ISO en format lisible + */ +function formatDate(isoDate) { + if (!isoDate) return ''; + const date = new Date(isoDate); + const options = { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }; + return date.toLocaleDateString('fr-FR', options); +} -$(document).ready(function(){ +/** + * Crée un badge de statut coloré + */ +function createStatusBadge(status) { + const statusLower = status.toLowerCase(); + let badgeClass = 'badge'; + let style = ''; + if (statusLower === 'open') { + style = 'background-color: #28a745; color: white; padding: 3px 8px; border-radius: 3px; font-size: 11px;'; + } else if (statusLower === 'closed') { + style = 'background-color: #dc3545; color: white; padding: 3px 8px; border-radius: 3px; font-size: 11px;'; + } else { + style = 'background-color: #6c757d; color: white; padding: 3px 8px; border-radius: 3px; font-size: 11px;'; + } - if ( $("#divDemande").length ) { - - - $.ajax({ - type: 'get', - url: "https://api.github.com/search/issues?q=is:issue " + $('#idValue').val() + " repo:ansforge/IG-terminologie-de-sante", - contentType: 'application/json', - dataType:"json", - }) - .done((data) => { - - if (data.items != null) { - $('#divDemande').html('
    Titre Auteur Date
    '); - - $.each(data.items, function (i, obj) { - var content = '' ; - content += ''+ obj.state +' ' + obj.title +'' + obj.user.login + '' + obj.created_at + ''; - content += ''; - $('#idDemande').append(content); - - - - - - }); - - } - }) - .fail((err) => { - console.error(err); - }) - .always(() => { - }); - - - + return '' + status + ''; +} +/** + * Ajoute un spinner de chargement + */ +function addLoadingSpinner(element) { + $(element).html('

    Chargement...

    '); +} +/** + * Surligne les termes de recherche dans le texte + */ +function highlightSearchTerm(text, searchTerm) { + if (!searchTerm) return text; + const regex = new RegExp('(' + searchTerm.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ')', 'gi'); + return text.replace(regex, '$1'); +} +/** + * Transforme les TD en TH pour la première ligne (en-tête) + */ +function convertFirstRowToHeader(firstTr) { + firstTr.find('td').each(function() { + var $td = $(this); + var $th = $('').html($td.html()); + // Copier tous les attributs sauf background-color + $.each(this.attributes, function() { + $th.attr(this.name, this.value); + }); + // Enlever background-color du style + var style = $th.attr('style'); + if (style) { + style = style.replace(/background-color\s*:[^;]+;?/gi, '').trim(); + if (style) { + $th.attr('style', style); + } else { + $th.removeAttr('style'); + } + } - } + $td.replaceWith($th); + }); + return firstTr; +} +/** + * Initialise la recherche avec filtrage et animations + */ +function initializeTableSearch(tableSelector, indextable) { + // Fonction de recherche avec debounce + const performSearch = debounce(function() { + var searchTerm = $(".search" + indextable).val(); + var searchSplit = searchTerm.replace(/ /g, "'):containsi('"); + $.extend($.expr[':'], {'containsi': function(elem, i, match, array){ + return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; + }}); - if ( $("#divHistoire").length ) { - $('#divHistoire').html('
    Histoire Version Demande Resultat Date
    '); - - - $.ajax({ - type: 'get', - url: "https://smt.esante.gouv.fr/fhir/" + $('#typeValue').val() + "/" + $('#idValue').val() + "/_history?_summary=true", - contentType: 'application/json', - dataType:"json", - }) - .done((data) => { - - if (data.entry != null) { - $.each(data.entry, function (i, obj) { - var content = '' ; - content += ''+ obj.resource.meta.versionId +'' + obj.resource.version +'' + obj.request.method +' ' + obj.response.status + ' '+ obj.response.lastModified +''; - content += ''; - $('#idHistoire').append(content); - - - content ='
    OperationCheminNomValeur Précédent
    '; - console.log("https://smt.esante.gouv.fr/fhir/" + obj.id + "/$diff"); - $('#idHistoire').append(content); - $.ajax({ - type: 'get', - url: "https://smt.esante.gouv.fr/fhir/" + obj.id + "/$diff", - contentType: 'application/json', - dataType:"json", - }) - .done((data) => { - if (data.parameter != null) { - $.each(data.parameter, function (i, obj2) { - var operation = ""; - var chemin = ""; - var nom = ""; - var precedent =""; - var valeur =""; - $.each(obj2.part, function (ipart, objPart) { - if(Object.values(objPart)[0] == "type") - operation = Object.values(objPart)[1]; - if(Object.values(objPart)[0] == "path") - chemin = Object.values(objPart)[1]; - if(Object.values(objPart)[0] == "name") - nom = Object.values(objPart)[1]; - if(Object.values(objPart)[0] == "value") - valeur = Object.values(objPart)[1]; - if(Object.values(objPart)[0] == "previousValue") - precedent = Object.values(objPart)[1]; - }); - content = '' + operation +'' + chemin +' ' + nom+ ' '+ valeur +'' + precedent + ''; - $('#histoire'+obj.resource.meta.versionId).append(content); - - - }); - } - }); - - }); - - } - }) - .fail((err) => { - console.error(err); - }) - .always(() => { - }); - - - - - - }; - - - - - - - - - - - - - - $("#terminologit-search-content-valueset-cld").addClass("accordion-group"); - //$("#terminologit-search-content-valueset-cld").attr("id","logical-definition-accordion-group"); - var logicalDefHeading = $("#terminologit-search-content-valueset-cld").find("#logical-definition-cld"); - $(logicalDefHeading).addClass("accordion-heading"); - $(logicalDefHeading).append(''); - $(logicalDefHeading).next().addClass("accordion-body collapse in"); - $(logicalDefHeading).next().attr('id', 'logical-definition-cld-collapse'); - - $('.gg-chevron-down').each(function () { - $(this).click(function () { - jQuery(this).toggleClass("rotate-toggle"); - }); + // Cacher les lignes non correspondantes avec animation + $(".results" + indextable + " tbody tr").not(":containsi('" + searchSplit + "')").each(function(e){ + $(this).attr('visible','false').fadeOut(150); + }); + + // Afficher les lignes correspondantes avec animation + $(".results" + indextable + " tbody tr:containsi('" + searchSplit + "')").each(function(e){ + $(this).attr('visible','true').fadeIn(150); }); - - - $(window).scroll(function () { - if ($(this).scrollTop() > 50) { - $('#back-to-top').fadeIn(); + + if(searchSplit == "") { + $(".results" + indextable + " tbody tr").attr('visible','true').fadeIn(150); + $('.counter' + indextable).text(""); + } + + var jobCount = $('.results' + indextable + ' tbody tr[visible="true"]').length; + + if (jobCount === 0) { + $('.counter' + indextable).html('Aucun résultat trouvé'); + } else { + $('.counter' + indextable).html('' + jobCount + ' résultat' + (jobCount > 1 ? 's' : '') + ''); + } + }, 300); // Délai de 300ms + + $(".search" + indextable).on('keyup', performSearch); +} + +/** + * Ajoute la fonctionnalité de tri aux colonnes + */ +function addColumnSorting(tableSelector, indextable) { + var $table = $(tableSelector); + + $table.find('thead th').each(function(index) { + $(this).css({ + 'cursor': 'pointer', + 'user-select': 'none', + 'position': 'relative' + }); + + // Ajouter une icône de tri + if (!$(this).find('.sort-icon').length) { + $(this).append(' '); + } + + $(this).on('click', function() { + var $th = $(this); + var columnIndex = $th.index(); + var ascending = $th.data('sort-asc') !== false; + + // Récupérer toutes les lignes + var rows = $table.find('tbody tr').get(); + + rows.sort(function(a, b) { + var aVal = $(a).find('td').eq(columnIndex).text().trim().toLowerCase(); + var bVal = $(b).find('td').eq(columnIndex).text().trim().toLowerCase(); + + // Essayer de convertir en nombre + var aNum = parseFloat(aVal); + var bNum = parseFloat(bVal); + + if (!isNaN(aNum) && !isNaN(bNum)) { + return ascending ? aNum - bNum : bNum - aNum; + } + + if (ascending) { + return aVal.localeCompare(bVal); } else { - $('#back-to-top').fadeOut(); + return bVal.localeCompare(aVal); } }); - // scroll body to 0px on click - $('#back-to-top').click(function () { - $('#back-to-top').tooltip('hide'); - $('body,html').animate({ - scrollTop: 0 - }, 800); + + // Réinsérer les lignes triées + $.each(rows, function(index, row) { + $table.find('tbody').append(row); + }); + + // Mettre à jour l'icône + $table.find('thead th .sort-icon').html('⇅').css('color', '#999'); + $th.find('.sort-icon').html(ascending ? '↑' : '↓').css('color', '#697097'); + + // Inverser l'ordre pour le prochain clic + $th.data('sort-asc', !ascending); + }); + }); +} + +/** + * Configure un tableau avec recherche, tri et animations + */ +function setupEnhancedTable(selector, indextable) { + var $table = $(selector); + + if ($table.find("tr").length == 1) { + $table.parent().hide(); + return; + } + + // Ajouter le champ de recherche + $('
    ').insertBefore($table); + + // Convertir la première ligne en en-tête + var firstTr = $table.find('tr:first').remove(); + firstTr = convertFirstRowToHeader(firstTr); + $table.prepend($('').append(firstTr)); + $table.addClass("results" + indextable); + $table.addClass("table-striped"); + + // Ajouter les animations CSS + $table.find('tbody tr').css('transition', 'opacity 0.15s ease-in-out'); + + // Initialiser la recherche + initializeTableSearch($table, indextable); + + // Ajouter le tri des colonnes + addColumnSorting(".results" + indextable, indextable); +} + +/** + * Colore les lignes deprecated dans table.codes + */ +function highlightDeprecatedRows() { + $("table.codes").each(function() { + var statusColumnIndex = -1; + $(this).find('tr:eq(0) th').each(function(index) { + if ($(this).text().toLowerCase() === 'status') { + statusColumnIndex = index; return false; + } + }); + + if (statusColumnIndex !== -1) { + $(this).find('tbody tr').each(function() { + var statusCell = $(this).find('td:eq(' + statusColumnIndex + ')'); + if (statusCell.text().toLowerCase() === 'deprecated') { + $(this).children().css({ + "background-color": "#E69215", + "transition": "background-color 0.3s ease" + }); + } }); - - $('#back-to-top').tooltip('show'); - - - $('#ontoSearch').on( "change", function() { - $('#resultOnto').html("Recherche ..."); - $('#counterOnto').html(""); - resultOnto - $.ajax({ - type: 'get', - url: "https://smt.esante.gouv.fr/fhir//ValueSet/" + $('#idValue').val() + "/$expand?_format=json&filter=" + $('#ontoSearch').val(), - contentType: 'application/json', - dataType:"json", - }) + } + }); +} + +// ============================================================================ +// MAIN INITIALIZATION +// ============================================================================ + +var url = new URL($('#newissue').attr('href')); +url.searchParams.set('title', $('#idValue').val()); +$('#newissue').attr('href', url); + +$(document).ready(function(){ + + // ======================================================================== + // GitHub Issues + // ======================================================================== + if ($("#divDemande").length) { + addLoadingSpinner('#divDemande'); + + $.ajax({ + type: 'get', + url: "https://api.github.com/search/issues?q=is:issue " + $('#idValue').val() + " repo:ansforge/IG-terminologie-de-sante", + contentType: 'application/json', + dataType: "json", + }) .done((data) => { - $('#resultOnto').html(""); - $('#counterOnto').html(data.expansion.total + ' item'); - if (data.expansion.contains != null) { - $('#resultOnto').html('
    CodeSystemDisplay
    '); - $.each(data.expansion.contains, function (i, obj) { - var content = '' ; - content += '' + obj.code +'' + obj.system+'' + obj.display+''; - content += ''; - $('#bodyOntoTable').append(content); - }); - } + if (data.items != null && data.items.length > 0) { + $('#divDemande').html('
    Statut Titre Auteur Date
    '); + + $.each(data.items, function(i, obj) { + var content = ''; + content += '' + createStatusBadge(obj.state) + ''; + content += ' ' + obj.title + ''; + content += '' + obj.user.login + ''; + content += '' + formatDate(obj.created_at) + ''; + content += ''; + $('#idDemande').append(content); + }); + } else { + $('#divDemande').html('
    Aucune issue trouvée
    '); + } }) .fail((err) => { - console.error(err); - }) - .always(() => { - $('#requeteOnto').html("GET https://smt.esante.gouv.fr/fhir/ValueSet/"+ $('#idValue').val() + "/$expand?_format=json&&filter=" + $('#ontoSearch').val()); + console.error(err); + $('#divDemande').html('
    ❌ Erreur lors du chargement des issues
    '); }); - }); - - - - $('#orig').find('table').not(".grid").each(function(indextable) { - if($(this).find("tr").length ==1) { - $(this).parent().hide(); } - $('
    ').insertBefore($(this)); - firstTr = $(this).find('tr:first').remove() - firstTr.find('td').each(function() { - var $td = $(this); - var $th = $('').html($td.html()); - $.each(this.attributes, function() { - $th.attr(this.name, this.value); - }); - $td.replaceWith($th); + + // ======================================================================== + // History + // ======================================================================== + if ($("#divHistoire").length) { + $('#divHistoire').html('
    Histoire Version Demande Resultat Date
    '); + + $.ajax({ + type: 'get', + url: "https://smt.esante.gouv.fr/fhir/" + $('#typeValue').val() + "/" + $('#idValue').val() + "/_history?_summary=true", + contentType: 'application/json', + dataType: "json", }) - $(this).prepend($('').append(firstTr)) - $(this).addClass("results"+indextable); - $(this).addClass("table-striped"); - - $(".search"+indextable).keyup(function () { - var searchTerm = $(".search"+indextable).val(); - var listItem = $('.results'+indextable +' tbody').children('tr'); - var searchSplit = searchTerm.replace(/ /g, "'):containsi('") - - $.extend($.expr[':'], {'containsi': function(elem, i, match, array){ - return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; - } - }); - - $(".results"+indextable +" tbody tr").not(":containsi('" + searchSplit + "')").each(function(e){ - $(this).attr('visible','false'); - }); - - $(".results"+indextable +" tbody tr:containsi('" + searchSplit + "')").each(function(e){ - $(this).attr('visible','true'); - }); - - if(searchSplit=="") { - $(".results"+indextable +" tbody tr").attr('visible','true'); - $('.counter'+indextable).text(""); - } - - var jobCount = $('.results'+indextable +' tbody tr[visible="true"]').length; - $('.counter'+indextable).text(jobCount + ' item'); - - if(jobCount == '0') {$('.no-result').show();} - else {$('.no-result').hide();} - }); - - }); - - $('#origConceptMap').find('table').each(function(indextable) { - if($(this).find("tr").length ==1) { - $(this).parent().hide(); - } - $('
    ').insertBefore($(this)); - firstTr = $(this).find('tr:first').remove() - firstTr.find('td').each(function() { - var $td = $(this); - var $th = $('').html($td.html()); - $.each(this.attributes, function() { - $th.attr(this.name, this.value); - }); - $td.replaceWith($th); + .done((data) => { + if (data.entry != null) { + $.each(data.entry, function(i, obj) { + var content = ''; + content += '' + obj.resource.meta.versionId + ''; + content += '' + obj.resource.version + ''; + content += '' + obj.request.method + ''; + content += ' ' + obj.response.status + ''; + content += ' ' + formatDate(obj.response.lastModified) + ''; + content += ''; + $('#idHistoire').append(content); + + content = '
    OperationCheminNomValeurPrécédent
    '; + $('#idHistoire').append(content); + + $.ajax({ + type: 'get', + url: "https://smt.esante.gouv.fr/fhir/" + obj.id + "/$diff", + contentType: 'application/json', + dataType: "json", + }) + .done((data) => { + if (data.parameter != null) { + $.each(data.parameter, function(i, obj2) { + var operation = ""; + var chemin = ""; + var nom = ""; + var precedent = ""; + var valeur = ""; + + $.each(obj2.part, function(ipart, objPart) { + if (Object.values(objPart)[0] == "type") + operation = Object.values(objPart)[1]; + if (Object.values(objPart)[0] == "path") + chemin = Object.values(objPart)[1]; + if (Object.values(objPart)[0] == "name") + nom = Object.values(objPart)[1]; + if (Object.values(objPart)[0] == "value") + valeur = Object.values(objPart)[1]; + if (Object.values(objPart)[0] == "previousValue") + precedent = Object.values(objPart)[1]; + }); + + content = '' + operation + '' + chemin + ' ' + nom + ' ' + valeur + '' + precedent + ''; + $('#histoire' + obj.resource.meta.versionId).append(content); + }); + } + }); + }); + } }) - $(this).prepend($('').append(firstTr)) - $(this).addClass("results"+indextable); - $(this).addClass("table-striped"); - - $(".search"+indextable).keyup(function () { - var searchTerm = $(".search"+indextable).val(); - var listItem = $('.results'+indextable +' tbody').children('tr'); - var searchSplit = searchTerm.replace(/ /g, "'):containsi('") - - $.extend($.expr[':'], {'containsi': function(elem, i, match, array){ - return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; + .fail((err) => { + console.error(err); + }); + } + + // ======================================================================== + // Accordion & Back to Top + // ======================================================================== + $("#terminologit-search-content-valueset-cld").addClass("accordion-group"); + var logicalDefHeading = $("#terminologit-search-content-valueset-cld").find("#logical-definition-cld"); + $(logicalDefHeading).addClass("accordion-heading"); + $(logicalDefHeading).append(''); + $(logicalDefHeading).next().addClass("accordion-body collapse in"); + $(logicalDefHeading).next().attr('id', 'logical-definition-cld-collapse'); + + $('.gg-chevron-down').each(function() { + $(this).click(function() { + jQuery(this).toggleClass("rotate-toggle"); + }); + }); + + $(window).scroll(function() { + if ($(this).scrollTop() > 50) { + $('#back-to-top').fadeIn(); + } else { + $('#back-to-top').fadeOut(); } - }); - - $(".results"+indextable +" tbody tr").not(":containsi('" + searchSplit + "')").each(function(e){ - $(this).attr('visible','false'); - }); - - $(".results"+indextable +" tbody tr:containsi('" + searchSplit + "')").each(function(e){ - $(this).attr('visible','true'); - }); - - if(searchSplit=="") { - $(".results"+indextable +" tbody tr").attr('visible','true'); - $('.counter'+indextable).text(""); - } - - var jobCount = $('.results'+indextable +' tbody tr[visible="true"]').length; - $('.counter'+indextable).text(jobCount + ' item'); - - if(jobCount == '0') {$('.no-result').show();} - else {$('.no-result').hide();} - }); - }); + $('#back-to-top').click(function() { + $('#back-to-top').tooltip('hide'); + $('body,html').animate({ + scrollTop: 0 + }, 800); + return false; + }); + + $('#back-to-top').tooltip('show'); + + // ======================================================================== + // ValueSet Search + // ======================================================================== + $('#ontoSearch').on("change", function() { + addLoadingSpinner('#resultOnto'); + $('#counterOnto').html(""); - - if($("table.codes").find('tr:eq(0) th:eq(4)').text()=='dateFin') - $("table.codes tr td:nth-child(5):not(:empty)").parent().children().css("background-color","#E69215"); + $.ajax({ + type: 'get', + url: "https://smt.esante.gouv.fr/fhir//ValueSet/" + $('#idValue').val() + "/$expand?_format=json&filter=" + $('#ontoSearch').val(), + contentType: 'application/json', + dataType: "json", + }) + .done((data) => { + $('#resultOnto').html(""); - if($("table.codes").find('tr:eq(0) th:eq(5)').text()=='dateFin') - $("table.codes tr td:nth-child(6):not(:empty)").parent().children().css("background-color","#E69215"); - $("table.codes tr td:contains(Deprecated)").parent().children().css("background-color","#E69215"); - - $("#orig").find("code").css("background-color","#c7cef1ff"); - $("#orig").find("code").css("color","white"); - $("#orig").find("code").css("font-weight","bolder"); - $("#orig").find("code").css("font-size","10px"); - + if (data.expansion.contains != null && data.expansion.contains.length > 0) { + $('#counterOnto').html('' + data.expansion.total + ' résultat' + (data.expansion.total > 1 ? 's' : '') + ''); + $('#resultOnto').html('
    CodeSystemDisplay
    '); + + $.each(data.expansion.contains, function(i, obj) { + var content = ''; + content += '' + obj.code + ''; + content += '' + obj.system + ''; + content += '' + obj.display + ''; + content += ''; + $('#bodyOntoTable').append(content); + }); + } else { + $('#resultOnto').html('
    Aucun résultat trouvé
    '); + $('#counterOnto').html('0 résultat'); + } + }) + .fail((err) => { + console.error(err); + $('#resultOnto').html('
    ❌ Erreur lors de la recherche
    '); + }) + .always(() => { + $('#requeteOnto').html("GET https://smt.esante.gouv.fr/fhir/ValueSet/" + $('#idValue').val() + "/$expand?_format=json&&filter=" + $('#ontoSearch').val()); + }); + }); + // ======================================================================== + // Enhanced Table Setup - #orig + // ======================================================================== + var tableIndex = 0; + $('#orig').find('table').not(".grid").each(function() { + setupEnhancedTable(this, tableIndex); + tableIndex++; + }); - + // ======================================================================== + // Enhanced Table Setup - #origConceptMap + // ======================================================================== + $('#origConceptMap').find('table').each(function() { + setupEnhancedTable(this, tableIndex); + tableIndex++; }); + // ======================================================================== + // Highlight Deprecated Rows + // ======================================================================== + highlightDeprecatedRows(); + + // ======================================================================== + // Code Styling + // ======================================================================== + $("#orig").find("code").css({ + "background-color": "#c7cef1ff", + "color": "white", + "font-weight": "bolder", + "font-size": "10px", + "padding": "2px 4px", + "border-radius": "3px" + }); +});