From 684905019b1101be5a3f8bd3472ec13e1900d5da Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Thu, 8 Feb 2024 12:35:18 +0100 Subject: [PATCH 01/36] ospo readme --- .github/CODE_OF_CONDUCT.md | 50 ++++++++++ .github/LICENSE.md | 194 +++++++++++++++++++++++++++++++++++++ .github/SECURITY.md | 6 ++ README.md | 47 ++++++++- 4 files changed, 292 insertions(+), 5 deletions(-) create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/LICENSE.md create mode 100644 .github/SECURITY.md diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..1835dbda --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,50 @@ +## Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +### Our Standards + +Examples of behavior that contributes to creating a positive environment include: +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Calls for violence, vilification and advertising +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +### Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at OSPO@gematik.de. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +### Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ \ No newline at end of file diff --git a/.github/LICENSE.md b/.github/LICENSE.md new file mode 100644 index 00000000..0984e3fd --- /dev/null +++ b/.github/LICENSE.md @@ -0,0 +1,194 @@ +Apache License +============== + +_Version 2.0, January 2004_ +_<>_ + +# TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +## 1. Definitions + +“License” shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +“Licensor” shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +“Legal Entity” shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, “control” means **(i)** the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the +outstanding shares, or **(iii)** beneficial ownership of such entity. + +“You” (or “Your”) shall mean an individual or Legal Entity exercising +permissions granted by this License. + +“Source” form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +“Object” form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +“Work” shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +“Derivative Works” shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +“Contribution” shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +“submitted” means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as “Not a Contribution.” + +“Contributor” shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +## 2. Grant of Copyright License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +## 3. Grant of Patent License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +## 4. Redistribution + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +* **(a)** You must give any other recipients of the Work or Derivative Works a copy of +this License; and +* **(b)** You must cause any modified files to carry prominent notices stating that You +changed the files; and +* **(c)** You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +## 5. Submission of Contributions + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +## 6. Trademarks + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +## 7. Disclaimer of Warranty + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +## 8. Limitation of Liability + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +## 9. Accepting Warranty or Additional Liability + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +_END OF TERMS AND CONDITIONS_ + +# APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets `[]` replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same “printed page” as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 00000000..9e1731f4 --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,6 @@ +# Security Policy + +Since this software is not a productive version, please submit an issue or pull request for any bugs or vulnerabilities you find. + +In case of a responsible disclosure, please follow instructions +on https://www.gematik.de/datensicherheit#c1227. diff --git a/README.md b/README.md index 33a610da..35674f65 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,45 @@ -# ISiK-Basismodul-Stufe-3 +
-Siehe [Basismodul Stufe 3](https://simplifier.net/isik-basis-v3) +# ISiK-Basis -# ImplementationGuides +
+ Table of Contents +
    +
  1. + About The Project + +
  2. +
  3. License
  4. +
  5. Contact
  6. +
+
-Dieser Branch enthält .html Versionen der ImplementationGuides vorangegangener Versionen. -Zur Übersicht der Versionen: https://gematik.github.io/spec-ISiK-Basismodul/index.html +## About The Project + +For full information and details, see [Simplifier Project Page for ISiK Basis Stufe 4](https://simplifier.net/isik-basis-v4) + +### Release Notes +See [ReleaseNotes.md](/ImplementationGuide/markdown/ReleaseNotes.md) for all information regarding the (newest) releases. + +## License + +Copyright 2024 gematik GmbH + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. + +See the [LICENSE](./LICENSE) for the specific language governing permissions and limitations under the License. + +Unless required by applicable law the software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise. + +The software is the result of research and development activities, therefore not necessarily quality assured and without the character of a liable product. For this reason, gematik does not provide any support or other user assistance (unless otherwise stated in individual cases and without justification of a legal obligation). Furthermore, there is no claim to further development and adaptation of the results to a more current state of the art. + +Gematik may remove published results temporarily or permanently from the place of publication at any time without prior notice or justification. + +## Contact + +**Team Data – ISiK and ISiP** + +For issues and requests please refer to: +https://service.gematik.de/servicedesk/customer/portal/16 \ No newline at end of file From d1e6efd83fdafeb9519f684739ad973774b23270 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Thu, 8 Feb 2024 13:52:21 +0100 Subject: [PATCH 02/36] apache license details --- .github/{LICENSE.md => APACHE_LICENSE.md} | 0 LICENSE.md | 13 +++++++++++++ README.md | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) rename .github/{LICENSE.md => APACHE_LICENSE.md} (100%) create mode 100644 LICENSE.md diff --git a/.github/LICENSE.md b/.github/APACHE_LICENSE.md similarity index 100% rename from .github/LICENSE.md rename to .github/APACHE_LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..bbe15e0f --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,13 @@ +## License + +Copyright 2024 gematik GmbH + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. + +See the [APACHE_LICENSE.md](.github/APACHE_LICENSE.md) for the specific language governing permissions and limitations under the License. + +Unless required by applicable law the software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise. + +The software is the result of research and development activities, therefore not necessarily quality assured and without the character of a liable product. For this reason, gematik does not provide any support or other user assistance (unless otherwise stated in individual cases and without justification of a legal obligation). Furthermore, there is no claim to further development and adaptation of the results to a more current state of the art. + +Gematik may remove published results temporarily or permanently from the place of publication at any time without prior notice or justification. \ No newline at end of file diff --git a/README.md b/README.md index 35674f65..4379fea8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Copyright 2024 gematik GmbH Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. -See the [LICENSE](./LICENSE) for the specific language governing permissions and limitations under the License. +See the [APACHE_LICENSE.md](.github/APACHE_LICENSE.md) for the specific language governing permissions and limitations under the License. Unless required by applicable law the software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise. From 1c42d1dc1e7bfbbe8d22a692ce15280757508950 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Fri, 9 Feb 2024 16:38:06 +0100 Subject: [PATCH 03/36] update for NoteJS 20 --- .github/workflows/RenderAllDiagrams.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/RenderAllDiagrams.yml b/.github/workflows/RenderAllDiagrams.yml index ee949a78..e01d80ed 100644 --- a/.github/workflows/RenderAllDiagrams.yml +++ b/.github/workflows/RenderAllDiagrams.yml @@ -23,15 +23,15 @@ jobs: # Installs Java distribution for running the plantUML jar - name: Install Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17' + java-version: '21' check-latest: true # Install graphviz for plantuml - name: Setup Graphviz - uses: ts-graphviz/setup-graphviz@v1 + uses: ts-graphviz/setup-graphviz@v2 # Download plantUML jar - name: Download plantuml file From e5f57f456a75a8a2c41cbca5bdc83bb7248d1391 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Mon, 19 Feb 2024 16:14:43 +0100 Subject: [PATCH 04/36] restructure IG --- .github/workflows/main.yml | 4 +- ...ementierungsleitfaden_ISiKBasismodul.json} | 47 ++++++++++++++---- .../markdown/Datenobjekte/Datenobjekte.md | 2 +- .../Kontakt_Motivation.md | 12 ++--- .../Zusammenfassung/Informationsmodell.md | 17 +++++++ .../InteraktionenUndSearchTypes.md | 18 +++++++ .../markdown/Zusammenfassung/UseCases.md | 13 +++++ Material/images/Composition-Bundle.png | Bin 339745 -> 0 bytes .../Encounter-Modell-Abrechnung.png | Bin .../Encounter-Modell-Fallnummer.png | Bin .../{ => Encounter}/Encounter-Modell-ISiK.png | Bin .../{ => Encounter}/Encounter-Modell-MII.png | Bin .../Encounter-Modell-Medizinisch.png | Bin .../{ => Encounter}/Encounter-Modelle.png | Bin Resources/sushi-config.yaml | 2 +- 15 files changed, 96 insertions(+), 19 deletions(-) rename ImplementationGuide/{ImplementierungsleitfadenIsiK_basismodul.json => Implementierungsleitfaden_ISiKBasismodul.json} (92%) create mode 100644 ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md create mode 100644 ImplementationGuide/markdown/Zusammenfassung/InteraktionenUndSearchTypes.md create mode 100644 ImplementationGuide/markdown/Zusammenfassung/UseCases.md delete mode 100644 Material/images/Composition-Bundle.png rename Material/images/{ => Encounter}/Encounter-Modell-Abrechnung.png (100%) rename Material/images/{ => Encounter}/Encounter-Modell-Fallnummer.png (100%) rename Material/images/{ => Encounter}/Encounter-Modell-ISiK.png (100%) rename Material/images/{ => Encounter}/Encounter-Modell-MII.png (100%) rename Material/images/{ => Encounter}/Encounter-Modell-Medizinisch.png (100%) rename Material/images/{ => Encounter}/Encounter-Modelle.png (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ceae92b3..8158ed58 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,7 +25,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 # Java and .NET are already installed on ubuntu-latest @@ -47,7 +47,7 @@ jobs: EXPECTED_FAILS: VALIDATION_CONFORMANCE_DOTNET VALIDATION_CONFORMANCE_JAVA VALIDATION_EXAMPLES_JAVA - name: Add & Commit - uses: EndBug/add-and-commit@v7 + uses: EndBug/add-and-commit@v9 with: committer_name: GitHub Actions Bot committer_email: ActionBot@github.com diff --git a/ImplementationGuide/ImplementierungsleitfadenIsiK_basismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json similarity index 92% rename from ImplementationGuide/ImplementierungsleitfadenIsiK_basismodul.json rename to ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index 38f2c19a..2e323047 100644 --- a/ImplementationGuide/ImplementierungsleitfadenIsiK_basismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -1,13 +1,13 @@ { "resourceType": "ImplementationGuide", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ImplementationGuide/ISiK-Basismodul", + "url": "https://gematik.de/fhir/isik/v4/Basismodul/ImplementationGuide/ISiK-Basismodul", "version": "4.0.0-rc", - "name": "Implementierungsleitfaden ISiK-Basismodul Stufe 3", + "name": "Implementierungsleitfaden ISiK-Basismodul", "status": "draft", "fhirVersion": [ "4.0.1" ], - "packageId": "de.gematik.isik-basismodul-stufe3", + "packageId": "de.gematik.isik-basismodul", "definition": { "resource": [ { @@ -21,15 +21,44 @@ "title": "Einführung", "generation": "markdown", "page": [ - { - "nameUrl": "ImplementationGuide/markdown/ReleaseNotes.md", - "title": "Release Notes", - "generation": "markdown" - }, { "nameUrl": "ImplementationGuide/markdown/Motivation.md", "title": "Motivation", - "generation": "markdown" + "generation": "markdown", + "page": [ + { + "nameUrl": "ImplementationGuide/markdown/ReleaseNotes.md", + "title": "ReleaseNotes", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/DecisionLog.md", + "title": "Decision Log", + "generation": "markdown" + } + ] + }, + { + "nameUrl": "ImplementationGuide/markdown/Zusammenfassung.md", + "title": "Zusammenfassung", + "generation": "markdown", + "page": [ + { + "nameUrl": "ImplementationGuide/markdown/Zusammenfassung/UseCases.md", + "title": "Anwendungsfälle (Use Cases)", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md", + "title": "Informationsmodell", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Zusammenfassung/InteraktionenUndSearchTypes.md", + "title": "Interaktionen Und SearchTypes", + "generation": "markdown" + } + ] }, { "nameUrl": "ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen.md", diff --git a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md index 6b5151e0..34fa9056 100644 --- a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md +++ b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md @@ -2,4 +2,4 @@ In den folgenden Unterkapiteln werden die ISiK-Datenobjekte, die in dem vereinfachten Informationsmodell dargestellt sind, und ihre FHIR-Spezifikation beschrieben. -Vereinfachtes Infomodell +Vereinfachtes Infomodell diff --git a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md index 1d1888aa..25b3ad89 100644 --- a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md +++ b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md @@ -21,11 +21,11 @@ Der stationäre Aufenthalt oder der ambulante Kontakt eines Patienten in einer G * **Abrechnungsfall (Account):** Der Fall, im Sinne einer Gruppierung von medizinischen Leistungen, die in einem gemeinsamen Kontext abgerechnet werden, sind in FHIR durch die Ressource Account repräsentiert. Ein Abrechnungsfall kann mehrere Encounter umfassen (z.B. vorstationärer Besuch, stationärer Aufenthalt und nachstationäre Besuche) -{{render:Material/Images/Encounter-Modell-Abrechnung.png}} +{{render:Material/Images/Encounter/Encounter-Modell-Abrechnung.png}} * **Medizinischer Fall (EpisodeOfCare):** Der medizinische Fall gruppiert Informationen, die im Kontext einer gemeinsamen (Dauer-)Diagnose stehen und wird in FHIR durch die EpisodeOfCare dargestellt. -{{render:Material/Images/Encounter-Modell-Medizinisch.png}} +{{render:Material/Images/Encounter/Encounter-Modell-Medizinisch.png}} --- @@ -43,7 +43,7 @@ Als Kontakt des Patienten mit konkreten Servicestellen, wie z.B. Radiologie oder Zur Unterscheidung der verschiedenen Kontaktebenen wird in der MI-I eine Codierung in `Encounter.type` verwendet. Die Hierarchie der Encounter wird über die `Encounter.partOf`-Relation hergestellt. Ambulante Besuche werden in dem Modell derzeit noch nicht berücksichtigt. -{{render:Material/Images/Encounter-Modell-MII.png}} +{{render:Material/Images/Encounter/Encounter-Modell-MII.png}} --- @@ -51,7 +51,7 @@ Zur Unterscheidung der verschiedenen Kontaktebenen wird in der MI-I eine Codieru Für die Ausbaustufe 2 und 3 des ISiK Basismoduls werden alle zuvor genannten Sichtweise und Modelle berücksichtigt: -{{render:Material/Images/Encounter-Modelle.png}} +{{render:Material/Images/Encounter/Encounter-Modelle.png}} Verpflichtend umzusetzen ist für die bestätigungsrelevanten Systeme der Account, im Sinne der Gruppierung einzelner Besuche, zu einem gemeinsamen (Abrechnungs-)Fall sowie der Encounter der Ebene "Abteilungskontakt" im Sinne des Modells der Medizininformatikinitiative. @@ -61,7 +61,7 @@ Wichtig sind dabei jedoch folgende Punkte zu beachten: * Encounter im ISiK-Kontext sind stets als "Abteilungskontakte, im Sinne der MI-I mit dem entsprechenden `Encounter.type`-Code, zu kennzeichnen. * jegliche im ISiK-Basis-Modul, als auch in anderen ISiK-Modulen definierte Ressourcen, die über einen Encounter-Kontext verfügen, müssen auf einen ISiK-Encounter (Abteilungskontakt) referenzieren. -{{render:Material/Images/Encounter-Modell-ISiK.png}} +{{render:Material/Images/Encounter/Encounter-Modell-ISiK.png}} --- @@ -80,6 +80,6 @@ Um insbesondere Subsysteme von der Pflicht zu entbinden, die Account-Ressource z |---------|---------------------| | {{render:Material/Images/IG_Warning}} | Die Abbildung der Fallnummer als Identifier des Accounts ist abweichend von der im Basismodul Stufe 1 festgelegten Abbildung der Fallnummer als Identifier des Encounters. Diese Änderung ist erforderlich, da die Fallnummer nicht geeignet ist, einen Encounter eindeutig zu identifizieren. Der Encounter kann weiterhin einen von der Abrechnungsfallnummer unabhänigen Identifier enthalten (z.B. "Aufnahmenummer", Bewegungsnummer). Dieser identifiziert eineindeutig den jeweiligen Kontakt.| -{{render:Material/Images/Encounter-Modell-Fallnummer.png}} +{{render:Material/Images/Encounter/Encounter-Modell-Fallnummer.png}} --- diff --git a/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md b/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md new file mode 100644 index 00000000..e44f8348 --- /dev/null +++ b/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md @@ -0,0 +1,17 @@ +# Übersicht +Im Folgenden wird ein grafischer Überblick über alle in diesem Modul profilierten Ressourcen gegeben. +Da es sich um eine Zusammenfassung handelt, werden nur folgende Profile und Felder dargestellt: +* Profile und Extenstion, die im Modul Terminplanung enstanden sind. +* Profile und Extenstion, die im Modul Terminplanung zwingend benötigt werden. In vereinfachter Form, mit Verweis auf den Ursprung. +* Felder, die unterstüzt werden MÜSSEN (Must Support). +* Die Elemente (Unterfelder) haben, die unterstüzt werden MÜSSEN (Must Support). +* Nur Unter-Elemente (MS) bis zu zweiten oder dritten Tiefe, abhängig von Umfang und Systematik. D.h. Keine bedingten Wiederholungen (repeat) oder Rekursionen (part-of). + + +## Ressourcen Diagramm + +Ressourcen Diagram + +## Informationsmodell Diagramm + +Informationsmodell \ No newline at end of file diff --git a/ImplementationGuide/markdown/Zusammenfassung/InteraktionenUndSearchTypes.md b/ImplementationGuide/markdown/Zusammenfassung/InteraktionenUndSearchTypes.md new file mode 100644 index 00000000..7fd48d1e --- /dev/null +++ b/ImplementationGuide/markdown/Zusammenfassung/InteraktionenUndSearchTypes.md @@ -0,0 +1,18 @@ +# Interaktionen und Search Types + +## Dokumentenserver +Das bestätigungsrelevante System nimmt die Rolle des Dokumentenservers ein. Ein Dokumentenserver nimmt Dokumente von Clients zur Speicherung/Archivierung/Verwaltung entgegen und erlaubt Clients die Suche nach und den Abruf von Dokumenten. + +## (Webbasierter/Mobiler) Client +Clients können Dokumente von einem Dokumentenserver abfragen, um sie z.B. einem Anwender anzuzeigen. Dabei können sie die für die Server verpflichtend festgelegten Suchkriterien beliebig kombinieren. +Clients sind nicht verpflichtet, alle von den Servern geforderten Suchkriterien zu unterstützen. + +# Search Includes and Reverse Includes + +Damit diese Akteure sinnvoll miteinander kommunizieren, wird im Folgenden ein grafischer Überblick über die in diesem Modul zu inlduierenden Suchparameter und Operationen gegeben. +Da es sich um eine Zusammenfassung handelt, gelten Bedingungen für die gezeigten Inhalte: +* Alle Must-Support Elemente einer Componente müssen von den entsprechenden Systemen suchbar sein. Diese sind hier nicht erneut aufgezählt. +* Ein Doppelpunkt meint den Zugriff auf ein Element des beinhaltenden Profils. +* Das Elemente hinter einem Doppelpunkt besitzt wiederum die Sucharameter (alle Must-Support Elemente!), die hier in die Suchsyntax zu inkludieren sind. + +Searchtypes \ No newline at end of file diff --git a/ImplementationGuide/markdown/Zusammenfassung/UseCases.md b/ImplementationGuide/markdown/Zusammenfassung/UseCases.md new file mode 100644 index 00000000..424aa40f --- /dev/null +++ b/ImplementationGuide/markdown/Zusammenfassung/UseCases.md @@ -0,0 +1,13 @@ +# Übersicht +Im Folgenden wird ein grafischer Überblick über möglichst in diesem Modul abgedeckten Anwednungsfälle gegeben. +Da es sich um eine Zusammenfassung handelt, werden nur folgende Use Case und dafür hinreichende Funktionen dargestellt: +* Allgemeine und intuitiv verständliche Use Cases. +* * Kombinationen und weitere Details sind möglich. +* * Übergreifende Use Cases und und ihre Sub Use Cases können in einem separaten Diagram auf den entsprechenden Seiten gefunden werden. +* Allgemeine und intuitiv Adverse Use Cases. Diese gilt es zu vermeiden. +* In den Funktionen werde triviale Suchen einer Ressoruce anhand ihrer eigenen Properties nicht dargestelt, z.B. Suche einer Ressoruce anhand der ID, Name, Code usw. + + +## Use Case Diagramm + +Use Case Diagrams \ No newline at end of file diff --git a/Material/images/Composition-Bundle.png b/Material/images/Composition-Bundle.png deleted file mode 100644 index aa0c6fd139fb9676cd49b1f9973db0f6642cc228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339745 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œ-k7{nYHJ_=4fK& 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 JP3Pb9+X&JDbglhYaQ6E-kJE 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

~@Iiz+M8Fd3xLPA^sZ7q5f%z0y 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 T-LphJT{+|Fce>`( Date: Mon, 19 Feb 2024 15:17:23 +0000 Subject: [PATCH 05/36] auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) --- .../Account-AbrechnungsfallAmbulant.json | 2 +- .../resources/Bundle-ISiKBundle-Example.json | 4 ++-- .../CodeSystem-CodeSystemExample.json | 2 +- .../Composition-composition-blutdruck.json | 2 +- ...Condition-BehandlungsDiagnoseFreitext.json | 2 +- ...mple-condition-ausrufezeichen-primaer.json | 2 +- ...le-condition-ausrufezeichen-sekundaer.json | 2 +- ...Example-condition-kreuz-stern-primaer.json | 2 +- ...ample-condition-kreuz-stern-sekundaer.json | 2 +- ...ion-MittelgradigeIntelligenzminderung.json | 2 +- .../Coverage-CoverageGesetzlich.json | 2 +- .../resources/Coverage-CoveragePrivat.json | 2 +- .../Encounter-Fachabteilungskontakt.json | 2 +- .../Patient-PatientinMusterfrau.json | 2 +- .../Practitioner-PractitionerWalterArzt.json | 2 +- .../resources/Procedure-Appendektomie.json | 2 +- ...atedPerson-ISiKAngehoerigerMustermann.json | 2 +- .../SearchParameter-Encounter-date-start.json | 2 +- .../SearchParameter-Encounter-end-date.json | 2 +- ...ructureDefinition-ISiKAbrechnungsfall.json | 6 +++--- .../StructureDefinition-ISiKAngehoeriger.json | 8 ++++---- ...StructureDefinition-ISiKBerichtBundle.json | 6 +++--- ...ctureDefinition-ISiKBerichtSubSysteme.json | 4 ++-- .../StructureDefinition-ISiKBinary.json | 2 +- .../StructureDefinition-ISiKCodeSystem.json | 2 +- .../StructureDefinition-ISiKDiagnose.json | 6 +++--- ...ion-ISiKKontaktGesundheitseinrichtung.json | 20 +++++++++---------- .../StructureDefinition-ISiKPatient.json | 8 ++++---- ...finition-ISiKPersonImGesundheitsberuf.json | 4 ++-- .../StructureDefinition-ISiKProzedur.json | 10 +++++----- .../StructureDefinition-ISiKValueSet.json | 2 +- ...SiKVersicherungsverhaeltnisGesetzlich.json | 2 +- ...KVersicherungsverhaeltnisSelbstzahler.json | 2 +- ...finition-identifier-abrechnungsnummer.json | 4 ++-- .../resources/ValueSet-DiagnosesSCT.json | 2 +- .../ValueSet-ISiKAccountIdentifierType.json | 2 +- .../resources/ValueSet-ISiKAccountType.json | 2 +- .../ValueSet-ISiKLocationPhysicalType.json | 2 +- .../ValueSet-ISiKValueSetExample.json | 2 +- .../ValueSet-ProzedurenCodesSCT.json | 2 +- .../ValueSet-ProzedurenKategorieSCT.json | 2 +- 41 files changed, 70 insertions(+), 70 deletions(-) diff --git a/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json b/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json index b01c441d..ce7f3550 100644 --- a/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json +++ b/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json @@ -3,7 +3,7 @@ "id": "AbrechnungsfallAmbulant", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAbrechnungsfall" ] }, "identifier": [ diff --git a/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json b/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json index f5bdd982..30b506c4 100644 --- a/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json +++ b/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json @@ -3,7 +3,7 @@ "id": "ISiKBundle-Example", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtBundle" ] }, "type": "document", @@ -27,7 +27,7 @@ "id": "composition-blutdruck", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" ] }, "status": "final", diff --git a/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json b/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json index 4e5e56d7..21be1c29 100644 --- a/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json +++ b/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json @@ -3,7 +3,7 @@ "id": "CodeSystemExample", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKCodeSystem" ] }, "version": "4.0.0-rc", diff --git a/Resources/fsh-generated/resources/Composition-composition-blutdruck.json b/Resources/fsh-generated/resources/Composition-composition-blutdruck.json index 76fc6a8e..5d02b935 100644 --- a/Resources/fsh-generated/resources/Composition-composition-blutdruck.json +++ b/Resources/fsh-generated/resources/Composition-composition-blutdruck.json @@ -3,7 +3,7 @@ "id": "composition-blutdruck", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" ] }, "status": "final", diff --git a/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json b/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json index d98d35df..bcc510cc 100644 --- a/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json +++ b/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json @@ -3,7 +3,7 @@ "id": "BehandlungsDiagnoseFreitext", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json index fbf03d61..bc106c06 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-ausrufezeichen-primaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json index 7425dc39..ae48139b 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-ausrufezeichen-sekundaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" ] }, "extension": [ diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json index 65166f9a..de896972 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-kreuz-stern-primaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json index a4bcdcfa..a8ee3a65 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-kreuz-stern-sekundaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" ] }, "extension": [ diff --git a/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json b/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json index 072fa3a3..b6c0222c 100644 --- a/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json +++ b/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json @@ -3,7 +3,7 @@ "id": "MittelgradigeIntelligenzminderung", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json b/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json index 8765e898..e6290bf5 100644 --- a/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json +++ b/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json @@ -3,7 +3,7 @@ "id": "CoverageGesetzlich", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich" ] }, "type": { diff --git a/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json b/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json index 480bd83f..02aa74da 100644 --- a/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json +++ b/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json @@ -3,7 +3,7 @@ "id": "CoveragePrivat", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" ] }, "type": { diff --git a/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json b/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json index 8b091bce..068ba19f 100644 --- a/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json +++ b/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json @@ -3,7 +3,7 @@ "id": "Fachabteilungskontakt", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" ] }, "type": [ diff --git a/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json b/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json index 40ed7ceb..8629e1d3 100644 --- a/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json +++ b/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json @@ -3,7 +3,7 @@ "id": "PatientinMusterfrau", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" ] }, "identifier": [ diff --git a/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json b/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json index 75e29d14..c0138eea 100644 --- a/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json +++ b/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json @@ -4,7 +4,7 @@ "meta": { "source": "http://krankenhaus.de", "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" ] }, "name": [ diff --git a/Resources/fsh-generated/resources/Procedure-Appendektomie.json b/Resources/fsh-generated/resources/Procedure-Appendektomie.json index 0b47b908..9ee073e4 100644 --- a/Resources/fsh-generated/resources/Procedure-Appendektomie.json +++ b/Resources/fsh-generated/resources/Procedure-Appendektomie.json @@ -3,7 +3,7 @@ "id": "Appendektomie", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" ] }, "extension": [ diff --git a/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json b/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json index 248ad70c..30a7a165 100644 --- a/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json +++ b/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json @@ -3,7 +3,7 @@ "id": "ISiKAngehoerigerMustermann", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" ] }, "patient": { diff --git a/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json b/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json index 1485dbfa..97d7f112 100644 --- a/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json +++ b/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json @@ -1,7 +1,7 @@ { "resourceType": "SearchParameter", "id": "Encounter-date-start", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/SearchParameter/Encounter-date-start", + "url": "https://gematik.de/fhir/isik/Basismodul/SearchParameter/Encounter-date-start", "description": "The actual start date of the Encounter (Backport from R5). The parameter cannot repeat or have multiple values.", "version": "4.0.0-rc", "status": "draft", diff --git a/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json b/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json index 3fb2b75d..0bdd4a6b 100644 --- a/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json +++ b/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json @@ -1,7 +1,7 @@ { "resourceType": "SearchParameter", "id": "Encounter-end-date", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/SearchParameter/Encounter-end-date", + "url": "https://gematik.de/fhir/isik/Basismodul/SearchParameter/Encounter-end-date", "description": "The actual end date of the Encounter (Backport from R5). The parameter cannot repeat or have multiple values.", "version": "4.0.0-rc", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json index 9333d711..06b24f85 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKAbrechnungsfall", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAbrechnungsfall", "version": "4.0.0-rc", "name": "ISiKAbrechnungsfall", "status": "draft", @@ -80,7 +80,7 @@ { "code": "Identifier", "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/identifier-abrechnungsnummer" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/identifier-abrechnungsnummer" ] } ], @@ -123,7 +123,7 @@ "mustSupport": true, "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKAccountType" + "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountType" } }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json index b54251f2..f71ae88d 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKAngehoeriger", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger", "version": "4.0.0-rc", "name": "ISiKAngehoeriger", "status": "draft", @@ -43,7 +43,7 @@ "severity": "error", "human": "Falls die Geschlechtsangabe 'other' gewählt wird, muss die amtliche Differenzierung per Extension angegeben werden", "expression": "gender.exists() and gender='other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" } ] }, @@ -126,7 +126,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" } ], "mustSupport": true @@ -214,7 +214,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" } ], "mustSupport": true diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json index 785e8c59..5b7f9825 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKBerichtBundle", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtBundle", "version": "4.0.0-rc", "name": "ISiKBerichtBundle", "title": "ISiKBerichtBundle", @@ -49,7 +49,7 @@ "severity": "error", "human": "All referenced Resources must be contained in the Bundle", "expression": "Bundle.entry.descendants().reference.distinct().subsetOf(%context.entry.fullUrl)", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtBundle" } ] }, @@ -128,7 +128,7 @@ { "code": "Composition", "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" ] } ] diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json index f06f7975..0fa02c71 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKBerichtSubSysteme", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme", "version": "4.0.0-rc", "name": "ISiKBerichtSubSysteme", "status": "draft", @@ -160,7 +160,7 @@ "severity": "warning", "human": "KDL-Code ungültig", "expression": "matches('^[A-Z]{2}[0-9]{6}$')", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" } ] }, diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json index 85ed61c7..14ec448a 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKBinary", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBinary", "version": "4.0.0-rc", "name": "ISiKBinary", "title": "ISiKBinary", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json index abb7a074..018e409c 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKCodeSystem", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKCodeSystem", "version": "4.0.0-rc", "name": "ISiKCodeSystem", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json index 011ef373..86fd4ea2 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKDiagnose", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose", "version": "4.0.0-rc", "name": "ISiKDiagnose", "status": "draft", @@ -58,7 +58,7 @@ "severity": "error", "human": "Falls eine kodierte Diagnose vorliegt muss angegeben werden durch welchen Kontakt diese Dokumentation erfolgte.", "expression": "code.coding.exists() implies encounter.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" } ] }, @@ -103,7 +103,7 @@ "severity": "error", "human": "Entweder MUSS eine kodierte Diagnose vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt.", "expression": "coding.exists().not() implies text.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" } ], "mustSupport": true diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json index 2ca5e55b..00434a15 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKKontaktGesundheitseinrichtung", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung", "version": "4.0.0-rc", "name": "ISiKKontaktGesundheitseinrichtung", "status": "draft", @@ -48,56 +48,56 @@ "severity": "error", "human": "Abgeschlossene, ambulante Kontakte sollten einen Start-Zeitpunkt angeben", "expression": "status = 'finished' and class = 'AMB' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-2", "severity": "error", "human": "Abgeschlossene, stationäre Kontakte sollten einen Start- und End-Zeitpunkt angeben", "expression": "status = 'finished' and class = 'IMP' implies period.start.exists() and period.end.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-3", "severity": "error", "human": "Geplante Kontakte sollten keinen Start- oder End-Zeitpunkt angeben", "expression": "status = 'planned' implies period.exists().not()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-4", "severity": "warning", "human": "Geplante Kontakte sollten die Extensions für den geplanten Start- oder End-Zeitpunkt verwenden", "expression": "status = 'planned' implies extension.where(url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedStartDate').exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-5", "severity": "error", "human": "In-Durchführung befindliche Kontakte sollten einen Start-Zeitpunkt angeben", "expression": "status = 'in-progress' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-6", "severity": "error", "human": "Kontakte mit Abwesenheitsstatus sollten einen Start-Zeitpunkt angeben", "expression": "status = 'onleave' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-7", "severity": "warning", "human": "Kontakte mit unbekannten Status sollten einen Start-Zeitpunkt angeben", "expression": "status = 'unknown' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-8", "severity": "error", "human": "Die Rolle der assoziierten Diagnose(n) darf nicht 'Billing' sein", "expression": "diagnosis.use.all(coding.code != 'billing')", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" } ] }, @@ -570,7 +570,7 @@ "path": "Encounter.location.physicalType", "binding": { "strength": "extensible", - "valueSet": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" + "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKLocationPhysicalType" } }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json index c7f10e22..98d19396 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKPatient", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient", "version": "4.0.0-rc", "name": "ISiKPatient", "status": "draft", @@ -53,7 +53,7 @@ "severity": "error", "human": "Falls die Geschlechtsangabe 'other' gewählt wird, muss die amtliche Differenzierung per Extension angegeben werden", "expression": "gender.exists() and gender='other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" } ] }, @@ -472,7 +472,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" } ], "mustSupport": true @@ -560,7 +560,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" } ], "mustSupport": true diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json index 3adcd72d..7a9cd3c5 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKPersonImGesundheitsberuf", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf", "version": "4.0.0-rc", "name": "ISiKPersonImGesundheitsberuf", "status": "draft", @@ -48,7 +48,7 @@ "severity": "error", "human": "Die amtliche Differenzierung der Geschlechtsangabe 'other' darf nur gefüllt sein, wenn das Geschlecht 'other' angegeben ist", "expression": "gender='other' or gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').empty()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" } ] }, diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json index 3fdff072..1291541b 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKProzedur", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur", "version": "4.0.0-rc", "name": "ISiKProzedur", "status": "draft", @@ -48,14 +48,14 @@ "severity": "error", "human": "Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden", "expression": "code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" }, { "key": "proc-ISiK-2", "severity": "error", "human": "Falls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werden", "expression": "code.coding.exists() implies category.coding.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" } ] }, @@ -142,14 +142,14 @@ "severity": "error", "human": "Falls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden. Liegt die Prozedur nicht kodiert vor SOLL Freitext angegeben werden.", "expression": "coding.exists() implies coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" }, { "key": "proc-ISiK-3", "severity": "error", "human": "Entweder MUSS eine kodierte Prozedur vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt.", "expression": "coding.exists().not() implies text.exists()", - "source": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" } ], "mustSupport": true diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json index 7e0f3850..b024f17b 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKValueSet", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKValueSet", "version": "4.0.0-rc", "name": "ISiKValueSet", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json index 567d0685..f2b3e92b 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKVersicherungsverhaeltnisGesetzlich", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich", "version": "4.0.0-rc", "name": "ISiKVersicherungsverhaeltnisGesetzlich", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json index f05e0cfa..a796ad84 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKVersicherungsverhaeltnisSelbstzahler", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler", "version": "4.0.0-rc", "name": "ISiKVersicherungsverhaeltnisSelbstzahler", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json b/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json index 6404e751..96f31ca4 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json +++ b/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "identifier-abrechnungsnummer", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/identifier-abrechnungsnummer", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/identifier-abrechnungsnummer", "version": "4.0.0-rc", "name": "IdentifierAbrechnungsnummer", "title": "Identifier-Profil für die Abbildung einer Abrechnungsnummer (\"Fallnummer\") ", @@ -49,7 +49,7 @@ }, "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKAccountIdentifierType" + "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountIdentifierType" } }, { diff --git a/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json b/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json index 21a0754b..cd6561c3 100644 --- a/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json +++ b/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json @@ -4,7 +4,7 @@ "name": "DiagnosesSCT", "id": "DiagnosesSCT", "description": "Enthaelt alle SNOMED Clinical finding, Event und Situation with explicit context codes", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/DiagnosesSCT", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/DiagnosesSCT", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json b/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json index 8385a267..5ebb3526 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json @@ -4,7 +4,7 @@ "name": "ISiKAccountIdentifierType", "id": "ISiKAccountIdentifierType", "title": "ISiKAccountIdentifierType", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKAccountIdentifierType", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountIdentifierType", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json b/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json index 65aa313e..87960207 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json @@ -4,7 +4,7 @@ "name": "ISiKAccountType", "id": "ISiKAccountType", "title": "ISiKAccountType", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKAccountType", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountType", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json b/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json index b5b67010..e4c9e1fe 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json @@ -3,7 +3,7 @@ "status": "draft", "name": "ISiKLocationPhysicalType", "id": "ISiKLocationPhysicalType", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKLocationPhysicalType", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json b/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json index 1adb1b2a..1cfdc2b2 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json @@ -3,7 +3,7 @@ "id": "ISiKValueSetExample", "meta": { "profile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet" + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKValueSet" ] }, "useContext": [ diff --git a/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json b/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json index 0343b57c..28a5d76e 100644 --- a/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json +++ b/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json @@ -4,7 +4,7 @@ "name": "ProzedurenCodesSCT", "id": "ProzedurenCodesSCT", "description": "Enthaelt alle SNOMED Procedure Codes", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenCodesSCT", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ProzedurenCodesSCT", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json b/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json index cd455845..7819bde3 100644 --- a/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json +++ b/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json @@ -4,7 +4,7 @@ "name": "ProzedurenKategorieSCT", "id": "ProzedurenKategorieSCT", "description": "Enthaelt alle SNOMED Codes für ein Mapping der OPS Klassentitel", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenKategorieSCT", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ProzedurenKategorieSCT", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", From b24e99df3b1c58a2156db71ef7750cb2e6c49a48 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Mon, 19 Feb 2024 19:07:15 +0100 Subject: [PATCH 06/36] progress on bessere IGs --- Material/images/src/plantuml/infomodell.puml | 144 +++++++++++++ .../images/src/plantuml/resourcediagram.puml | 199 ++++++++++++++++++ .../images/src/plantuml/search_includes.puml | 93 ++++++++ Material/images/src/plantuml/usecases.puml | 55 +++++ 4 files changed, 491 insertions(+) create mode 100644 Material/images/src/plantuml/infomodell.puml create mode 100644 Material/images/src/plantuml/resourcediagram.puml create mode 100644 Material/images/src/plantuml/search_includes.puml create mode 100644 Material/images/src/plantuml/usecases.puml diff --git a/Material/images/src/plantuml/infomodell.puml b/Material/images/src/plantuml/infomodell.puml new file mode 100644 index 00000000..f8489c2f --- /dev/null +++ b/Material/images/src/plantuml/infomodell.puml @@ -0,0 +1,144 @@ +@startuml dummy +' package Dummy{ +' entity Entität01 { +' optionales Attribut +' **optionales fettes Attribut** +' * **vorgeschriebens fettes Attribut** +' } +' +' entity Entität01 { +' optionales Attribut : text +' **optionales fettes Attribut** nummer <> +' * **vorgeschriebens fettes Attribut** +' } +' Entität01 }|..|| Entität02 +' Entität03 }o..o| Entität04 +' Entität05 ||--o{ Entität06 +' Entität07 |o--|| Entität08 +' } +@enduml + + +' TODO: +' Vervollständigen im Sinne von: https://github.com/gematik/spec-ISiK-Medikation/blob/rc/main-stufe-4/Material/docs/Medikation%20Abgleich%20bestehende%20Spezifikationen.xlsx + +@startuml infomodell +'verhindere Probleme mit gewinkelten Krähenfüßen +'skinparam linetype ortho + +'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient +'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle +'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle + +'together ISiK_DokumentenAustausch { + class ISiKDokumentenMetadaten <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-dokumentenaustausch-v3/isikdokumentenmetadaten ISiK Dokumenten Metadaten]] + } + + class ISiKDokumentenSuchergebnisse <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-dokumentenaustausch-v3/isikdokumentensuchergebnisse ISiK Dokumenten Suchergebnisse]] + } + + class ISiKConfidentialityCodes <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-dokumentenaustausch-v3/ISiKConfidentialityCodes/ ISiK Confidentiality Codes]] + } +'} + +'together DE_Basisprofile_R4 { + class IHEXDShealthcareFacilityTypeCode <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656621 IHEXDS Healthcare Facility Type Code]] + } + class IHEXDSpracticeSettingCode <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656622 IHEXDS Practice Setting Code]] + } + class IHEXDStypeCode <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656623 IHEXDS Type Code]] + } + class IHEXDSclassCode <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656617 IHEXDS Class Code]] + } + class IHEXDSeventCodeList <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656619 IHEXDS Event Code List]] + } + class IHEXDSformatCodeDE <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656620 IHEXDS Format Code]] + } +'} + + +class vsKDL as "valueset-kdl-2022" <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/dvmd.kdl.r4.2022/2022.1.2/files/773899 Valueset KDL 2022]] +} + +'together ISiK_Basis { + class ISiKPatient <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikpatient ISiK Patient]] + } + class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]] + } + class ISiKPractitioner <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]] + } + class ISiKAngehoeriger <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikangehoeriger ISiK Angehoeriger]] + } +'} + +'Realtions + +'diamonds +together { +<> MultiRef_PracPatRel +MultiRef_PracPatRel -- ISiKPractitioner +MultiRef_PracPatRel -- ISiKPatient +MultiRef_PracPatRel -- ISiKAngehoeriger +<> MultiRef_KDLXDS +MultiRef_KDLXDS -- vsKDL +MultiRef_KDLXDS -- IHEXDStypeCode +} + +'Relations +ISiKDokumentenSuchergebnisse::DocumentReference -down- " 1..1 " ISiKDokumentenMetadaten + + +ISiKDokumentenMetadaten::type -- " 1..1 " MultiRef_KDLXDS +ISiKDokumentenMetadaten::category -- " 0..1 " IHEXDSclassCode + +ISiKDokumentenMetadaten::subject --> " 1..1 " ISiKPatient +ISiKDokumentenMetadaten::author <--> " 0..1 " MultiRef_PracPatRel +ISiKDokumentenMetadaten::securityLabel -up- " 1..* "ISiKConfidentialityCodes +ISiKDokumentenMetadaten::content -- " 1..1 " IHEXDSformatCodeDE +ISiKDokumentenMetadaten::encounter -- " 0..1 " ISiKKontaktGesundheitseinrichtung +ISiKDokumentenMetadaten::context -- " 1..1 " IHEXDSeventCodeList +ISiKDokumentenMetadaten::context -- " 1..1 " IHEXDShealthcareFacilityTypeCode +ISiKDokumentenMetadaten::context -- " 1..1 " IHEXDSpracticeSettingCode + + +' namespace dummy { +' class Foo { +' + field1 +' + field2 +' } +' class Bar { +' + field3 +' + field4 +' } +' Foo::field1 --> Bar::field3 : foo +' Foo::field2 --> Bar::field4 : bar +' } +@enduml \ No newline at end of file diff --git a/Material/images/src/plantuml/resourcediagram.puml b/Material/images/src/plantuml/resourcediagram.puml new file mode 100644 index 00000000..4df21894 --- /dev/null +++ b/Material/images/src/plantuml/resourcediagram.puml @@ -0,0 +1,199 @@ +@startuml dummy +' package Dummy{ +' entity Entität01 { +' optionales Attribut +' **optionales fettes Attribut** +' * **vorgeschriebens fettes Attribut** +' } +' +' entity Entität01 { +' optionales Attribut : text +' **optionales fettes Attribut** nummer <> +' * **vorgeschriebens fettes Attribut** +' } +' Entität01 }|..|| Entität02 +' Entität03 }o..o| Entität04 +' Entität05 ||--o{ Entität06 +' Entität07 |o--|| Entität08 +' } +@enduml + + +' TODO: +' Vervollständigen im Sinne von: https://github.com/gematik/spec-ISiK-Medikation/blob/rc/main-stufe-4/Material/docs/Medikation%20Abgleich%20bestehende%20Spezifikationen.xlsx + +@startuml resourcediagram +'verhindere Probleme mit gewinkelten Krähenfüßen +'skinparam linetype ortho + +'Namespace enhancement +set separator none + +'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient +'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle +'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle + +namespace ISiK_Basis { + class identifierAbrechnungsnummer <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/identifierabrechnungsnummer Identifier-Profil]] für die "Fallnummer" + } + 'ISiKMedikation::itemReference --> ISiKMedikation + + class ISiKAbrechnungsfall <<(P,#8DA5C4)>>{ + id + extension : **ExtensionAbrechnungsDiagnoseProzedur** + |_ AbrechnungsDiagnoseProzedur + identifier + |_ Abrechnungsnummer : **identifierAbrechnungsnummer** + |_ type : **ISiKAccountIdentifierType** + |_ system + |_ value + status : AccountStatus + type : **ISiKAccountType** + subject : Reference ( **Patient**) + coverage + |_ extension : **ExtensionAbrechnungsart** + |_ Abrechnungsart + |_ coverage + } + + class ISiKAngehoeriger <<(P,#8DA5C4)>>{ + patient : Reference ( **Patient**) + name : HumanName, deutsches Basisprofil + address S Σ 0..* Address + |_ Strassenanschrift S Σ I 0..* Adresse, deutsches BasisprofilPattern + |_ extension I 0..* Extension + |_ Stadtteil + |_ type S Σ 1..1 codeBindingFixed Value + |_ line S Σ 1..3 string + |_ extension I 0..* Extension + |_ Strasse S I 0..1 Extension(string) + |_ Hausnummer S I 0..1 Extension(string) + |_ Adresszusatz S I 0..1 Extension(string) + |_ Postfach + |_ city S Σ 1..1 string + |_ district Σ 0..0 string + |_ state Σ 0..1 stringBinding + |_ postalCode S Σ 1..1 string + |_ country S Σ 1..1 stringBinding + |_ period Σ I 0..1 Period + |_ Postfach S Σ I 0..* Adresse, deutsches BasisprofilPattern + |_ type S Σ 1..1 codeBindingFixed Value + |_ line S Σ 1..3 string + |_ extension I 0..* Extension + |_ Strasse S I 0..1 Extension(string) + |_ Hausnummer S I 0..1 Extension(string) + |_ Adresszusatz S I 0..1 Extension(string) + |_ Postfach + |_ city + |_ district + |_ postalCode + |_ country + } + + namespace ValueSets { + class ISiKAccountIdentifierType <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikaccountidentifiertype ISiK Account Identifier Type]] + Includes codes from the code System + [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/80925 v2.0203]] + -- + **AN** displays-as **Account Number** + } + class ISiKAccountType <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikaccounttype ISiK Account Type]] + Includes codes from the code System + [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/80998 v3.ActCode]] + -- + **AMB** displays-as **ambulatory** + **IMP** displays-as **inpatient encounter** + } + } +} + + +namespace DE_Basisprofile_R4 { + class Basisprofile_Modul <<(M,#FFAAAA)>>{ + Dokumentation auf HL7 Org + [[https://simplifier.net/basisprofil-de-r4 Basisprofil DE (RE4)]] + } + + class ExtensionAbrechnungsDiagnoseProzedur <<(E,#7A8495)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656773 Fallbezogene Abrechnungsrelevanz \nvon Diagnosen und Prozeduren]] + } + + class ExtensionAbrechnungsart <<(E,#7A8495)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656772 Abrechnungsart]] + } + + class gender-amtlich-de <<(E,#7A8495)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656672 Administratives Geschlecht 'other']] + } + + class gender-amtlich-de <<(E,#7A8495)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656672 Administratives Geschlecht 'other']] + } + + class gender-amtlich-de <<(E,#7A8495)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656672 Administratives Geschlecht 'other']] + } + +} + +namespace HL7_FHIR_R4_Core { + class Foundation_Modul <<(M,#FFAAAA)>>{ + Dokumentation auf HL7 Org + [[https://hl7.org/fhir/R4/ HL7 FHIR R4 Core Foundation]] + } + class AccountStatus <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/82308 Account Status]] + Includes all codes from the underlying code System + [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/81890 Account Status]] + } +} + +namespace ISiK_Basis { + class Basismodul_Stufe_3 <<(M,#FFDC36)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/~introduction ISiK Basis Stufe 3]] + } + class ISiKPatient <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikpatient ISiK Patient]] + } + class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]] + } + class ISiKPractitioner <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]] + } + class ISiKAngehoeriger <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikangehoeriger ISiK Angehoeriger]] + } +} + + +'namespace dummy { +' class Foo { +' + field1 +' + field2 +' } +' class Bar { +' + field3 +' + field4 +' } +' Foo::field1 --> Bar::field3 : foo +' Foo::field2 --> Bar::field4 : bar +'} +@enduml \ No newline at end of file diff --git a/Material/images/src/plantuml/search_includes.puml b/Material/images/src/plantuml/search_includes.puml new file mode 100644 index 00000000..89d87547 --- /dev/null +++ b/Material/images/src/plantuml/search_includes.puml @@ -0,0 +1,93 @@ + +@startuml searchtypes_interaction +left to right direction +'skinparam packageStyle cloud +skinparam linetype ortho + + +folder CSt_MedInfo as "Systeme mit dem Charakter der \n Medikationsinformation" { + component _MedInfo [ + **ISiK MedikationsInformation** + ==== + Suche anhand von + * ** :** medication + * ** :** patient + * ** :** context + ] + + component CStAll_MedikationsListe [ + **ISiK MedikationsListe** + ==== + Suche anhand von + * ** :** medication + * ** :** patient + * ** :** context + ] + 'component "ISiK MedikationsListe" + component "ISiK Medikament" + component "ISiK Patient" + component "ISiK Kontakt Gesundheitseinrichtung" + component "ISiK Person im Gesundheitsberuf" + +} + +folder CSt_MedAll as "Alle Systeme mit MedikationsCharakter" { + component CStAll_Medikament [ + **ISiK Medikament** + ==== + Suche anhand von + * ** :** ingredient + ] + component CStAll_Patient [ + **ISiK Patient** + ==== + Finde alle zugehörigen + * Encounter ** via ** :patient + * Encounter ** via ** subject + ] + component CStAll_KontaktGesundheitseinrichtung [ + **ISiK Kontakt Gesundheitseinrichtung** + ==== + Suche anhand von + * ** :** patient + * ** :** subject + * ** :** part-of + Finde alle zugehörigen + * Encounter ** via ** part-of + ] + component "ISiK Person im Gesundheitsberuf" +} +'CSt_MedInfo --> CStAll_MedikationsListe +folder CSt_MedVerab as "Systeme mit dem Charakter der \n Medikationsverabreichung" { + component _MedVerab [ + **ISiK MedikationsVerabreichung** + ==== + Suche anhand von + * ** :** medication + * ** :** patient + * ** :** context + * ** :** performer + ] + component "ISiK Medikament " + component "ISiK Patient " + component "ISiK Kontakt Gesundheitseinrichtung " + component "ISiK Person im Gesundheitsberuf " +} + +folder CSt_MedVerord as "Systeme mit dem Charakter der \n Medikationsverordnung" { + component _MedVerord [ + **ISiK MedikationsVerordnung** + ==== + Suche anhand von + * ** :** medication + * ** :** patient + * ** :** encounter + * ** :** requester + ] + component "ISiK Medikament " + component "ISiK Patient " + component "ISiK Kontakt Gesundheitseinrichtung " + component "ISiK Person im Gesundheitsberuf " +} + +@enduml \ No newline at end of file diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml new file mode 100644 index 00000000..44fee640 --- /dev/null +++ b/Material/images/src/plantuml/usecases.puml @@ -0,0 +1,55 @@ +'@startuml usecases +'usecase Medikation as " +' = Medikation +' +' ___ +' Some text +' === Neu-Verordnung +' Other text +' === Anpassung +' Information +' === Abgabe +'" +'@enduml + +@startuml usecases +left to right direction +'skinparam packageStyle cloud +'skinparam linetype ortho + +'actor :FHIR Repository: as DB << Application >> +actor :Heilberufler: +actor :Versicherter: +storage adverseUC as "Adverse Use Case" { + storage (Verwechslung){ + (Metainformationen) + (Zuordnung) + (Dokumenttyp) + } + (Merhfachdokumentation) + (Dokumentationslücken) + (Nicht-Verfügbarkeit) + (Verlust) +} + +storage gnrlUC as "Allgemein" { + (Information) + (Erstellung) + (Aktualisierung) + (Digitalisierung) + (Strukturierung) + (Archivierung) + storage booKUC as "Dokumentenübermittlung"{ + (Übernahme) + (Verarbeitung) + (Einsicht) + (Prüfung) + } +} + +Heilberufler --> gnrlUC +Versicherter --> Information + +'fncts --> adverseUC : mitigates +'fncts --> gnrlUC : enables +@enduml \ No newline at end of file From 0d1b76561ee926ac7519d28b15d58da8c90635c4 Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Mon, 19 Feb 2024 18:09:11 +0000 Subject: [PATCH 07/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/dummy.svg | 1 + Material/images/diagrams/infomodell.svg | 1 + Material/images/diagrams/resourcediagram.svg | 1 + Material/images/diagrams/searchtypes_interaction.svg | 1 + Material/images/diagrams/usecases.svg | 1 + 5 files changed, 5 insertions(+) create mode 100644 Material/images/diagrams/dummy.svg create mode 100644 Material/images/diagrams/infomodell.svg create mode 100644 Material/images/diagrams/resourcediagram.svg create mode 100644 Material/images/diagrams/searchtypes_interaction.svg create mode 100644 Material/images/diagrams/usecases.svg diff --git a/Material/images/diagrams/dummy.svg b/Material/images/diagrams/dummy.svg new file mode 100644 index 00000000..768a604c --- /dev/null +++ b/Material/images/diagrams/dummy.svg @@ -0,0 +1 @@ +Welcome to PlantUML! You can start with a simple UML Diagram like: Bob->Alice: Hello Or class Example You will find more information about PlantUML syntax onhttps://plantuml.com (Details by typinglicensekeyword)      \ No newline at end of file diff --git a/Material/images/diagrams/infomodell.svg b/Material/images/diagrams/infomodell.svg new file mode 100644 index 00000000..bee59e6b --- /dev/null +++ b/Material/images/diagrams/infomodell.svg @@ -0,0 +1 @@ +ISiKDokumentenMetadatenDocumentReferenceDokumentation auf SimplifierISiK Dokumenten MetadatenISiKDokumentenSuchergebnisseBundleDokumentation auf SimplifierISiK Dokumenten SuchergebnisseISiKConfidentialityCodesValueSetDokumentation auf SimplifierISiK Confidentiality CodesIHEXDShealthcareFacilityTypeCodeValueSetDokumentation auf SimplifierIHEXDS Healthcare Facility Type CodeIHEXDSpracticeSettingCodeValueSetDokumentation auf SimplifierIHEXDS Practice Setting CodeIHEXDStypeCodeValueSetDokumentation auf SimplifierIHEXDS Type CodeIHEXDSclassCodeValueSetDokumentation auf SimplifierIHEXDS Class CodeIHEXDSeventCodeListValueSetDokumentation auf SimplifierIHEXDS Event Code ListIHEXDSformatCodeDEValueSetDokumentation auf SimplifierIHEXDS Format Codevalueset-kdl-2022ValueSetDokumentation auf SimplifierValueset KDL 2022ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAngehoerigerRelatedPersonDokumentation auf SimplifierISiK Angehoeriger1..11..10..11..10..11..*1..10..11..11..11..1 \ No newline at end of file diff --git a/Material/images/diagrams/resourcediagram.svg b/Material/images/diagrams/resourcediagram.svg new file mode 100644 index 00000000..a3f6f2da --- /dev/null +++ b/Material/images/diagrams/resourcediagram.svg @@ -0,0 +1 @@ +ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonname : HumanName, deutsches BasisprofiladdressS Σ0..*AddressStrassenanschriftS Σ I0..*Adresse, deutsches BasisprofilPatternextensionI0..*ExtensionStadtteiltypeS Σ1..1codeBindingFixed ValuelineS Σ1..3stringextensionI0..*ExtensionPostfachcityS Σ1..1stringdistrictΣ0..0stringstateΣ0..1stringBindingpostalCodeS Σ1..1stringcountryS Σ1..1stringBindingperiodΣ I0..1PeriodPostfachS Σ I0..*Adresse, deutsches BasisprofilPatterntypeS Σ1..1codeBindingFixed ValuelineS Σ1..3stringextensionI0..*ExtensionPostfachcity districtpostalCodecountryDokumentation auf SimplifierISiK Angehoerigerpatient : Reference (Patient)StrasseS I0..1Extension(string)HausnummerS I0..1Extension(string)AdresszusatzS I0..1Extension(string)StrasseS I0..1Extension(string)HausnummerS I0..1Extension(string)AdresszusatzS I0..1Extension(string)Basismodul_Stufe_3Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'Dokumentation auf SimplifierAdministratives Geschlecht 'other'Dokumentation auf SimplifierAdministratives Geschlecht 'other'Foundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount Status \ No newline at end of file diff --git a/Material/images/diagrams/searchtypes_interaction.svg b/Material/images/diagrams/searchtypes_interaction.svg new file mode 100644 index 00000000..4d496159 --- /dev/null +++ b/Material/images/diagrams/searchtypes_interaction.svg @@ -0,0 +1 @@ +Systeme mit dem Charakter derMedikationsinformationAlle Systeme mit MedikationsCharakterSysteme mit dem Charakter derMedikationsverabreichungSysteme mit dem Charakter derMedikationsverordnungISiK MedikationsInformationSuche anhand von:medication:patient:contextISiK MedikationsListeSuche anhand von:medication:patient:contextISiK MedikamentISiK PatientISiK Kontakt GesundheitseinrichtungISiK Person im GesundheitsberufISiK MedikamentSuche anhand von:ingredientISiK PatientFinde alle zugehörigenEncountervia:patientEncounterviasubjectISiK Kontakt GesundheitseinrichtungSuche anhand von:patient:subject:part-ofFinde alle zugehörigenEncounterviapart-ofISiK MedikationsVerabreichungSuche anhand von:medication:patient:context:performerISiK MedikamentISiK PatientISiK Kontakt GesundheitseinrichtungISiK Person im GesundheitsberufISiK MedikationsVerordnungSuche anhand von:medication:patient:encounter:requesterISiK MedikamentISiK PatientISiK Kontakt GesundheitseinrichtungISiK Person im Gesundheitsberuf \ No newline at end of file diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg new file mode 100644 index 00000000..59625183 --- /dev/null +++ b/Material/images/diagrams/usecases.svg @@ -0,0 +1 @@ +Adverse Use CaseVerwechslungAllgemeinDokumentenübermittlungMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustMetainformationenZuordnungDokumenttypInformationErstellungAktualisierungDigitalisierungStrukturierungArchivierungÜbernahmeVerarbeitungEinsichtPrüfungHeilberuflerVersicherter \ No newline at end of file From 605bb1356e2c838c6d077d5a611469a7e9b84c89 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Tue, 20 Feb 2024 12:32:01 +0100 Subject: [PATCH 08/36] progress UC --- .../Zusammenfassung/Informationsmodell.md | 10 ++- .../images/src/plantuml/resourcediagram.puml | 70 ++++++++----------- Material/images/src/plantuml/usecases.puml | 62 +++++++++++----- 3 files changed, 83 insertions(+), 59 deletions(-) diff --git a/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md b/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md index e44f8348..a833a2ca 100644 --- a/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md +++ b/ImplementationGuide/markdown/Zusammenfassung/Informationsmodell.md @@ -1,17 +1,23 @@ # Übersicht Im Folgenden wird ein grafischer Überblick über alle in diesem Modul profilierten Ressourcen gegeben. Da es sich um eine Zusammenfassung handelt, werden nur folgende Profile und Felder dargestellt: -* Profile und Extenstion, die im Modul Terminplanung enstanden sind. -* Profile und Extenstion, die im Modul Terminplanung zwingend benötigt werden. In vereinfachter Form, mit Verweis auf den Ursprung. +* Profile und Extenstion, die im Basismodul enstanden sind. +* Profile und Extenstion, die im Basismodul zwingend benötigt werden. In vereinfachter Form, mit Verweis auf den Ursprung. * Felder, die unterstüzt werden MÜSSEN (Must Support). +* * Datentypen, die im ISiK-Kontext enstanden, festgelegt oder eingeschränkt wurden, sind als **Fett** gekennzeichnet. * Die Elemente (Unterfelder) haben, die unterstüzt werden MÜSSEN (Must Support). * Nur Unter-Elemente (MS) bis zu zweiten oder dritten Tiefe, abhängig von Umfang und Systematik. D.h. Keine bedingten Wiederholungen (repeat) oder Rekursionen (part-of). + ## Ressourcen Diagramm Ressourcen Diagram +## Vereinfachtes Informationsmodell Diagramm + +Vereinfachtes Infomodell + ## Informationsmodell Diagramm Informationsmodell \ No newline at end of file diff --git a/Material/images/src/plantuml/resourcediagram.puml b/Material/images/src/plantuml/resourcediagram.puml index 4df21894..c21673d3 100644 --- a/Material/images/src/plantuml/resourcediagram.puml +++ b/Material/images/src/plantuml/resourcediagram.puml @@ -60,36 +60,32 @@ namespace ISiK_Basis { class ISiKAngehoeriger <<(P,#8DA5C4)>>{ patient : Reference ( **Patient**) - name : HumanName, deutsches Basisprofil - address S Σ 0..* Address - |_ Strassenanschrift S Σ I 0..* Adresse, deutsches BasisprofilPattern - |_ extension I 0..* Extension - |_ Stadtteil - |_ type S Σ 1..1 codeBindingFixed Value - |_ line S Σ 1..3 string - |_ extension I 0..* Extension - |_ Strasse S I 0..1 Extension(string) - |_ Hausnummer S I 0..1 Extension(string) - |_ Adresszusatz S I 0..1 Extension(string) - |_ Postfach - |_ city S Σ 1..1 string - |_ district Σ 0..0 string - |_ state Σ 0..1 stringBinding - |_ postalCode S Σ 1..1 string - |_ country S Σ 1..1 stringBinding - |_ period Σ I 0..1 Period - |_ Postfach S Σ I 0..* Adresse, deutsches BasisprofilPattern - |_ type S Σ 1..1 codeBindingFixed Value - |_ line S Σ 1..3 string - |_ extension I 0..* Extension - |_ Strasse S I 0..1 Extension(string) - |_ Hausnummer S I 0..1 Extension(string) - |_ Adresszusatz S I 0..1 Extension(string) - |_ Postfach - |_ city - |_ district - |_ postalCode - |_ country + name : HumanName // deutsches Basisprofil + address : Address + |_ Strassenanschrift : Adresse // deutsches BasisprofilPattern + |_ extension + |_ Stadtteil + |_ type : AddressType.both + |_ line + |_ extension + |_ Strasse + |_ Hausnummer + |_ Adresszusatz + |_ Postfach + |_ city + |_ postalCode + |_ country + |_ Postfach : Adresse // deutsches BasisprofilPattern + |_ type : AddressType.postal + |_ line + |_ extension + |_ Strasse + |_ Hausnummer + |_ Adresszusatz + |_ Postfach + |_ city + |_ postalCode + |_ country } namespace ValueSets { @@ -135,14 +131,14 @@ namespace DE_Basisprofile_R4 { [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656672 Administratives Geschlecht 'other']] } - class gender-amtlich-de <<(E,#7A8495)>>{ + class humanname-de-basis <<(E,#7A8495)>>{ Dokumentation auf Simplifier - [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656672 Administratives Geschlecht 'other']] + [[https://simplifier.net/packages/de.basisprofil.r4/1.5.0-alpha6/files/2338720 HumanName, deutsches Basisprofil]] } - class gender-amtlich-de <<(E,#7A8495)>>{ + class address-de-basis <<(E,#7A8495)>>{ Dokumentation auf Simplifier - [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656672 Administratives Geschlecht 'other']] + [[https://simplifier.net/packages/de.basisprofil.r4/1.5.0-alpha6/files/2338610 Adresse, deutsches Basisprofil]] } } @@ -161,7 +157,7 @@ namespace HL7_FHIR_R4_Core { } namespace ISiK_Basis { - class Basismodul_Stufe_3 <<(M,#FFDC36)>>{ + class Basismodul_Stufe_4 <<(M,#FFDC36)>>{ Dokumentation auf Simplifier [[https://simplifier.net/isik-basis-v3/~introduction ISiK Basis Stufe 3]] } @@ -177,10 +173,6 @@ namespace ISiK_Basis { Dokumentation auf Simplifier [[https://simplifier.net/isik-basis-v3/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]] } - class ISiKAngehoeriger <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v3/isikangehoeriger ISiK Angehoeriger]] - } } diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml index 44fee640..06de4bfa 100644 --- a/Material/images/src/plantuml/usecases.puml +++ b/Material/images/src/plantuml/usecases.puml @@ -20,11 +20,38 @@ left to right direction 'actor :FHIR Repository: as DB << Application >> actor :Heilberufler: actor :Versicherter: -storage adverseUC as "Adverse Use Case" { +:FHIR Repository: as FhirRepo << Technical User >> +:Client: as Client << Technical User >> + +storage gnrlUC as "Allgemein" { + (Versorgung) + (Administration) + (Digitalisierung) + (Dokumentation) + (Abrechnung) + (Strukturierung) + (Organisationsstruktur) + (Archivierung) + (Delegation) + (Konsultation) + (Transparenz) + storage patientUC as "Patienten-Management"{ + (Aufnahme) + (Behandlungs-Journey) + (Entlassung) + (Überleitung) + (Information) + (Einbeziehung \nAngehöriger) + (Einsichtnahme) + } +} + +storage adverseUC as "Adverse Use Cases" { storage (Verwechslung){ - (Metainformationen) - (Zuordnung) - (Dokumenttyp) + (Patient) + (Fall) + (Diagnose) + (Ort-Zeit) } (Merhfachdokumentation) (Dokumentationslücken) @@ -32,23 +59,22 @@ storage adverseUC as "Adverse Use Case" { (Verlust) } -storage gnrlUC as "Allgemein" { - (Information) - (Erstellung) - (Aktualisierung) - (Digitalisierung) - (Strukturierung) - (Archivierung) - storage booKUC as "Dokumentenübermittlung"{ - (Übernahme) - (Verarbeitung) - (Einsicht) - (Prüfung) - } +storage techUC as "Technical Use Case" { + (Synchronisation) + (Performance & \nDatensparsamkeit) + (Wechsel führendes System) + (Kommunikation) + (Eindeutigkeit) + (Grundlagen-Ressourcen) } + + Heilberufler --> gnrlUC -Versicherter --> Information +Versicherter --> patientUC + +FhirRepo --> techUC +Client --> techUC 'fncts --> adverseUC : mitigates 'fncts --> gnrlUC : enables From edc89f7c7054f901c5866699539761a84cfb9c9a Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Tue, 20 Feb 2024 11:33:08 +0000 Subject: [PATCH 09/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/resourcediagram.svg | 2 +- Material/images/diagrams/usecases.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Material/images/diagrams/resourcediagram.svg b/Material/images/diagrams/resourcediagram.svg index a3f6f2da..4ffe2886 100644 --- a/Material/images/diagrams/resourcediagram.svg +++ b/Material/images/diagrams/resourcediagram.svg @@ -1 +1 @@ -ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonname : HumanName, deutsches BasisprofiladdressS Σ0..*AddressStrassenanschriftS Σ I0..*Adresse, deutsches BasisprofilPatternextensionI0..*ExtensionStadtteiltypeS Σ1..1codeBindingFixed ValuelineS Σ1..3stringextensionI0..*ExtensionPostfachcityS Σ1..1stringdistrictΣ0..0stringstateΣ0..1stringBindingpostalCodeS Σ1..1stringcountryS Σ1..1stringBindingperiodΣ I0..1PeriodPostfachS Σ I0..*Adresse, deutsches BasisprofilPatterntypeS Σ1..1codeBindingFixed ValuelineS Σ1..3stringextensionI0..*ExtensionPostfachcity districtpostalCodecountryDokumentation auf SimplifierISiK Angehoerigerpatient : Reference (Patient)StrasseS I0..1Extension(string)HausnummerS I0..1Extension(string)AdresszusatzS I0..1Extension(string)StrasseS I0..1Extension(string)HausnummerS I0..1Extension(string)AdresszusatzS I0..1Extension(string)Basismodul_Stufe_3Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'Dokumentation auf SimplifierAdministratives Geschlecht 'other'Dokumentation auf SimplifierAdministratives Geschlecht 'other'Foundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount Status \ No newline at end of file +ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryBasismodul_Stufe_4Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount Status \ No newline at end of file diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg index 59625183..5b3fe28b 100644 --- a/Material/images/diagrams/usecases.svg +++ b/Material/images/diagrams/usecases.svg @@ -1 +1 @@ -Adverse Use CaseVerwechslungAllgemeinDokumentenübermittlungMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustMetainformationenZuordnungDokumenttypInformationErstellungAktualisierungDigitalisierungStrukturierungArchivierungÜbernahmeVerarbeitungEinsichtPrüfungHeilberuflerVersicherter \ No newline at end of file +AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinbeziehungAngehörigerEinsichtnahmeMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file From d5f02f918a4669aa087210c778d3d8dea3d4d083 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Tue, 20 Feb 2024 13:34:34 +0100 Subject: [PATCH 10/36] zusammenfassung md --- ImplementationGuide/markdown/Zusammenfassung.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 ImplementationGuide/markdown/Zusammenfassung.md diff --git a/ImplementationGuide/markdown/Zusammenfassung.md b/ImplementationGuide/markdown/Zusammenfassung.md new file mode 100644 index 00000000..ada6e671 --- /dev/null +++ b/ImplementationGuide/markdown/Zusammenfassung.md @@ -0,0 +1,11 @@ +# Motivation + +Die Landschaft informationstechnischer Systeme in Krankenhäusern ist enorm heterogen. Für die Patientenverwaltung und -abrechnung, die medizinische Dokumentation, die Laborverwaltung, die Blutbank bis hin zum Dokumentenarchiv werden verschiedene, auf das jeweilige Fachgebiet spezialisierte Systeme verwendet. Es besteht daher der Bedarf, diese Systeme über ihren Primärzweck hinaus sinnvoll zu integrieren. Ein Szenario ist beispielsweise die Abrechnung der im Krankenhaus erbrachten Leistungen. Aus den ursprünglich in verschiedenen Spezialsystemen erfassten Informationen werden die für die Abrechnung relevanten Informationen an ein Abrechnungssystem gesendet und dort zur Rechnungslegung weiterverarbeitet. + +Herausforderungen stellen dabei die Vielzahl der Schnittstellen von informationstechnischen Systemen im Krankenhaus sowie zusätzliche Anforderungen für die Nutzung in mobilen Anwendungen dar. Durch die Festlegung und Verwendung von offenen und standardisierten Schnittstellen können diese Herausforderungen effizienter angenommen werden. + +Im Folgenden leiten wir - die gematik GmbH - her, warum die bestehenden Integrationsansätze im Krankenhaus noch unzureichend sind und durch die im Bestätigungsverfahren „Interoperabler Datenaustausch durch Informationssysteme im Krankenhaus“ (ISiK) spezifizierten Ansätze ergänzt werden, um die Vielzahl sinnvoller Integrationsszenarien effizient abzudecken. + +# Grafische Zusammenfassung des Implementations Guides + +{{index:current}} \ No newline at end of file From 3bb36bc59cf38da04521c6b09562edcd178c8c3e Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Thu, 22 Feb 2024 13:35:13 +0100 Subject: [PATCH 11/36] progress IG patient includes --- ...lementierungsleitfaden_ISiKBasismodul.json | 5 ++ .../markdown/Patient/Patient_Includes.md | 71 +++++++++++++++++++ ...ebergreifendeFestlegungen_Suchparameter.md | 9 +-- .../markdown/Zusammenfassung.md | 2 +- Material/images/src/plantuml/usecases.puml | 3 + 5 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 ImplementationGuide/markdown/Patient/Patient_Includes.md diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index 2e323047..47994136 100644 --- a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -154,6 +154,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/Patient/Patient_Includes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/Patient/Patient_Beispiele.md", "title": "Beispiele", diff --git a/ImplementationGuide/markdown/Patient/Patient_Includes.md b/ImplementationGuide/markdown/Patient/Patient_Includes.md new file mode 100644 index 00000000..e35a1f66 --- /dev/null +++ b/ImplementationGuide/markdown/Patient/Patient_Includes.md @@ -0,0 +1,71 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```Patient``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + +1. Der verkette Suchparameter ```Composition:patient``` unterstüzt den Anwendungsfall: + + Um eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Grundlagen-Funktion}} zu ermöglichen, in der für einen Patienten all seine Dokumenten-Kontexte identifizierte werden können. + +1. Der verkette Suchparameter ```Composition:subject``` unterstüzt den Anwendungsfall: + + Um eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Grundlagen-Funktion}} zu ermöglichen, in der für eine Person all ihre Dokumenten-Kontexte identifizierte werden können. + +1. Der verkette Suchparameter ```Composition:author``` unterstüzt den Anwendungsfall: + + Um eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Grundlagen-Funktion}} zu ermöglichen, in der für einen Urheber all seine Dokumenten-Kontexte identifizierte werden können. + +1. Der verkette Suchparameter ```Condition:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu all seine Diagnosen zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Condition:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu all ihre zugehörigen Diagnosen zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Procedure:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu all seine Behandlungsprozeduren zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Procedure:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu all ihre zugehörigen Behandlungsprozeduren zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Encounter:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die komplette Fallhistorie mit allen Kontakten zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Encounter:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die komplette Fallhistorie mit allen Kontakten zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Account:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die komplette Abrechnungshistorie mit allen Kosten zu finden und eine falsche {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} auszuschließen. + +1. Der verkette Suchparameter ```Account:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die komplette Abrechnungshistorie mit allen Kosten zu finden und eine falsche {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} auszuschließen. + +1. Der verkette Suchparameter ```Coverage:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten das korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnis}} zuzuzordnen und eine korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} zu gewährtleisten. + +1. Der verkette Suchparameter ```Coverage:subscriber``` unterstüzt den Anwendungsfall: + + Um für einen Versicherungsnehmer das korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnis}} zuzuzordnen und eine korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} zu gewährtleisten. + +1. Der verkette Suchparameter ```Coverage:beneficiary``` unterstüzt den Anwendungsfall: + + Um für eine versicherte Person das korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnis}} zuzuzordnen und eine korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} zu gewährtleisten. + +1. Der verkette Suchparameter ```Coverage:payor``` unterstüzt den Anwendungsfall: + + Um für einen zahlendes Unternehmen alle betreuten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnisse}} zuzuzordnen und eine korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} zu gewährtleisten. + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md index 4cb12b99..4f82f333 100644 --- a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md +++ b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md @@ -89,7 +89,7 @@ Diese Suche gibt alle Patienten zurück zum Client, welche innerhalb `Procedure. ``[base]/Patient?_has:Procedure:patient:encounter.identifier=12345`` Diese Suche gibt alle Patienten zurück zum Client, welche innerhalb `Procedure.subject` auf einen Patienten verweisen und einen deren Procedure auf einen Encounter verweist z.B. mit der Aufnahmenummer '1234-5'. -``[base]/Procedure?_has:Encounter:diagnosis:diagnosis:Condition.code=http://fhir.de/CodeSystem/bfarm/icd-10-gm|F16.1`` +``[base]/Procedure?_has:Encounter:diagnosis:Condition.code=http://fhir.de/CodeSystem/bfarm/icd-10-gm|F16.1`` Diese Suche gibt alle Prozeduren zurück zum Client, welche innerhalb `Encounter.diagnosis.condition` auf einen Encounter verweisen, der wiederrum mit einer Condition verlinkt ist mit dem ICD-10-GM Code 'F16.1'. ## Verpflichtende Suchparameter (Alle Datenobjekte) @@ -109,7 +109,8 @@ Folgende Suchparameter MÜSSEN für alle bestätigungsrelevante Datenojekte impl * ``_has`` - - Siehe Abschnitt "Allgemeine Hinweise zu Suchparametern". + - Für Beispiele, siehe oben Abschnitt "Allgemeine Hinweise zu Suchparametern". + - Anwendungshinweise: Weitere Informationen zur Suche nach "_has" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reverse Chaining"](https://www.hl7.org/fhir/R4/search.html#has). * ``_count`` @@ -123,7 +124,7 @@ Folgende Suchparameter MÜSSEN für alle bestätigungsrelevante Datenojekte impl * ``_include`` - Beispiele: ``GET [base]/Encounter?_include=Patient:subject`` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_tag" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Including other resources in result"](https://www.hl7.org/fhir/R4/search.html#revinclude). + - Anwendungshinweise: Weitere Informationen zur Suche nach "_include" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Including other resources in result"](https://www.hl7.org/fhir/R4/search.html#revinclude). - Alle Referenzen für die ein Chaining unterstützt wird MUSS auch der _include-Parameter implementiert werden. Alle unterstützten Include-Referenzen MÜSSEN im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` angegeben werden. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}}. Der ```:iterate``` Modifier KANN unterstützt werden. @@ -131,7 +132,7 @@ Folgende Suchparameter MÜSSEN für alle bestätigungsrelevante Datenojekte impl * ``_revinclude`` - Beispiele: ``GET [base]/Patient?_revinclude=Encounter:subject`` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_tag" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Including other resources in result"](https://www.hl7.org/fhir/R4/search.html#revinclude). + - Anwendungshinweise: Weitere Informationen zur Suche nach "_revinclude" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Including other resources in result"](https://www.hl7.org/fhir/R4/search.html#revinclude). - Alle Referenzen für die ein Chaining unterstützt wird MUSS auch der _include-Parameter implementiert werden. Alle unterstützten Include-Referenzen MÜSSEN im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben werden. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}}. Der ```:iterate``` Modifier KANN unterstützt werden. diff --git a/ImplementationGuide/markdown/Zusammenfassung.md b/ImplementationGuide/markdown/Zusammenfassung.md index ada6e671..22095251 100644 --- a/ImplementationGuide/markdown/Zusammenfassung.md +++ b/ImplementationGuide/markdown/Zusammenfassung.md @@ -6,6 +6,6 @@ Herausforderungen stellen dabei die Vielzahl der Schnittstellen von informations Im Folgenden leiten wir - die gematik GmbH - her, warum die bestehenden Integrationsansätze im Krankenhaus noch unzureichend sind und durch die im Bestätigungsverfahren „Interoperabler Datenaustausch durch Informationssysteme im Krankenhaus“ (ISiK) spezifizierten Ansätze ergänzt werden, um die Vielzahl sinnvoller Integrationsszenarien effizient abzudecken. -# Grafische Zusammenfassung des Implementations Guides +# Grafische Zusammenfassung des Implementation Guides {{index:current}} \ No newline at end of file diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml index 06de4bfa..9d86fa4b 100644 --- a/Material/images/src/plantuml/usecases.puml +++ b/Material/images/src/plantuml/usecases.puml @@ -29,12 +29,15 @@ storage gnrlUC as "Allgemein" { (Digitalisierung) (Dokumentation) (Abrechnung) + (Wirtschaftlichkeit) + (Versicherungsverhältnis) (Strukturierung) (Organisationsstruktur) (Archivierung) (Delegation) (Konsultation) (Transparenz) + (Information &\nHistorie) storage patientUC as "Patienten-Management"{ (Aufnahme) (Behandlungs-Journey) From ea672337b387dcaa3a1c830e3e6ff828236951b5 Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Thu, 22 Feb 2024 12:37:51 +0000 Subject: [PATCH 12/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/usecases.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg index 5b3fe28b..48572d5a 100644 --- a/Material/images/diagrams/usecases.svg +++ b/Material/images/diagrams/usecases.svg @@ -1 +1 @@ -AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinbeziehungAngehörigerEinsichtnahmeMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file +AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinbeziehungAngehörigerEinsichtnahmeMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file From 571e46501b393bcb6180106c1c6f34fdc88098ef Mon Sep 17 00:00:00 2001 From: Alexander Zautke Date: Mon, 26 Feb 2024 13:27:20 +0100 Subject: [PATCH 13/36] Update Deutsche Basisprofile v1.5.0 --- Resources/sushi-config.yaml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index 30ea70d8..76d8e8c9 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -3,6 +3,6 @@ fhirVersion: 4.0.1 FSHOnly: true applyExtensionMetadataToRoot: false dependencies: - de.basisprofil.r4: 1.4.0 + de.basisprofil.r4: 1.5.0-ballot hl7.fhir.r4.core: 4.0.1 hl7.fhir.extensions.r5: 4.0.1 diff --git a/package.json b/package.json index 55add887..f2fa8f3c 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,6 @@ "4.0.1" ], "dependencies": { - "de.basisprofil.r4": "1.4.0" + "de.basisprofil.r4": "1.5.0-ballot" } } \ No newline at end of file From 8f9c1ea9e649e34a34edaded8e1056bb5405458b Mon Sep 17 00:00:00 2001 From: alexzautke Date: Mon, 26 Feb 2024 12:31:42 +0000 Subject: [PATCH 14/36] auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) --- .../StructureDefinition-ISiKPatient.json | 1 - ...finition-ISiKPersonImGesundheitsberuf.json | 5 --- ...SiKVersicherungsverhaeltnisGesetzlich.json | 32 +++++++++++++++++++ ...KVersicherungsverhaeltnisSelbstzahler.json | 32 +++++++++++++++++++ 4 files changed, 64 insertions(+), 6 deletions(-) diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json index 98d19396..7be424ec 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json @@ -307,7 +307,6 @@ "id": "Patient.name:Name.prefix.extension:prefix-qualifier", "path": "Patient.name.prefix.extension", "sliceName": "prefix-qualifier", - "max": "1", "mustSupport": true }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json index 7a9cd3c5..680d7038 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json @@ -462,11 +462,6 @@ ], "mustSupport": true }, - { - "id": "Practitioner.gender.extension:Geschlecht-Administrativ.extension", - "path": "Practitioner.gender.extension.extension", - "max": "0" - }, { "id": "Practitioner.gender.extension:Geschlecht-Administrativ.value[x]", "path": "Practitioner.gender.extension.value[x]", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json index f2b3e92b..e7c2d1c5 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json @@ -10,6 +10,38 @@ "publisher": "gematik GmbH", "description": "Dieses Profil ermöglicht die Darstellung eines gesetzlichen Versicherungsverhältnisses in ISiK Szenarien.", "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "cdanetv4", + "uri": "http://www.cda-adc.ca/en/services/cdanet/", + "name": "Canadian Dental Association eclaims standard" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "cpha3pharm", + "uri": "http://www.pharmacists.ca/", + "name": "Canadian Pharmacy Associaiton eclaims standard" + } + ], "kind": "resource", "abstract": false, "type": "Coverage", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json index a796ad84..de9ebc77 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json @@ -10,6 +10,38 @@ "publisher": "gematik GmbH", "description": "Dieses Profil ermöglicht Selbstzahler Szenarien in ISiK.", "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "cdanetv4", + "uri": "http://www.cda-adc.ca/en/services/cdanet/", + "name": "Canadian Dental Association eclaims standard" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "cpha3pharm", + "uri": "http://www.pharmacists.ca/", + "name": "Canadian Pharmacy Associaiton eclaims standard" + } + ], "kind": "resource", "abstract": false, "type": "Coverage", From 9adb63db47cf91e82f0d8909e41b78d232f0c67f Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Thu, 29 Feb 2024 18:00:01 +0100 Subject: [PATCH 15/36] renamned CSt and remove optional search parameter due to ambiguity --- ImplementationGuide/markdown/ReleaseNotes.md | 2 +- ...=> ISiKCapabilityStatementBasisServer.fsh} | 40 ------------------- Resources/input/fsh/index.txt | 2 +- 3 files changed, 2 insertions(+), 42 deletions(-) rename Resources/input/fsh/{ISiKCapabilityStatement.fsh => ISiKCapabilityStatementBasisServer.fsh} (94%) diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index c30a3092..5a91bccf 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -53,7 +53,7 @@ Datum: 30.05.2023 * Allgemein: Vorgaben zur Herkunftsausweisung/Provenance (meta.tag) gelockert * update provenance constraints by @f-peverali in https://github.com/gematik/spec-ISiK-Basismodul/pull/263 -* ISiKCapabilityStatement: Read Shall für Composition entfernt +* ISiKCapabilityStatementBasisServer: Read Shall für Composition entfernt * fix capability for Composition #259 by @f-peverali in https://github.com/gematik/spec-ISiK-Basismodul/pull/260 * ISiKAbrechnungsfall: * Änderung des Codierungs-Pattern, Value Set hinzugefügt und Beispiel angepasst diff --git a/Resources/input/fsh/ISiKCapabilityStatement.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh similarity index 94% rename from Resources/input/fsh/ISiKCapabilityStatement.fsh rename to Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index c0aaabab..bd0df968 100644 --- a/Resources/input/fsh/ISiKCapabilityStatement.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -60,11 +60,6 @@ Usage: #definition * rest.resource[=].searchParam[=].type = #string * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY * rest.resource[=].searchParam[=].name = "address" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/individual-address" * rest.resource[=].searchParam[=].type = #string @@ -214,11 +209,6 @@ Usage: #definition * rest.resource[=].searchParam[=].name = "service-provider" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Encounter-service-provider" * rest.resource[=].searchParam[=].type = #reference -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri * rest.resource[=].searchInclude = "Encounter:patient" * rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation * rest.resource[=].searchInclude[=].extension.valueCode = #SHALL @@ -283,11 +273,6 @@ Usage: #definition * rest.resource[=].searchParam[=].name = "patient" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-patient" * rest.resource[=].searchParam[=].type = #reference -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri * rest.resource[+].extension.url = $capabilitystatement-expectation @@ -337,11 +322,6 @@ Usage: #definition * rest.resource[=].searchParam[=].type = #reference * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY * rest.resource[=].searchParam[=].name = "category" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Condition-category" * rest.resource[=].searchParam[=].type = #token @@ -407,11 +387,6 @@ Usage: #definition * rest.resource[=].searchParam[=].name = "date" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-date" * rest.resource[=].searchParam[=].type = #date -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri * rest.resource[=].searchInclude = "Procedure:patient" * rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation * rest.resource[=].searchInclude[=].extension.valueCode = #SHALL @@ -470,11 +445,6 @@ Usage: #definition * rest.resource[=].searchParam[=].name = "subscriber" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Coverage-subscriber" * rest.resource[=].searchParam[=].type = #reference -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri * rest.resource[=].searchInclude = "Coverage:subscriber" * rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation * rest.resource[=].searchInclude[=].extension.valueCode = #SHALL @@ -514,11 +484,6 @@ Usage: #definition * rest.resource[=].searchParam[=].type = #string * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY * rest.resource[=].searchParam[=].name = "address" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/individual-address" * rest.resource[=].searchParam[=].type = #string @@ -588,11 +553,6 @@ Usage: #definition * rest.resource[=].searchParam[=].type = #token * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #MAY -* rest.resource[=].searchParam[=].name = "_profile" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-profile" -* rest.resource[=].searchParam[=].type = #uri -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #MAY * rest.resource[=].searchParam[=].name = "name" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Practitioner-name" * rest.resource[=].searchParam[=].type = #string diff --git a/Resources/input/fsh/index.txt b/Resources/input/fsh/index.txt index baecd2c7..f6138f79 100644 --- a/Resources/input/fsh/index.txt +++ b/Resources/input/fsh/index.txt @@ -3,7 +3,7 @@ Example-condition-ausrufezeichen-primaer Instance ISiKDiagnose.fsh Example-condition-ausrufezeichen-sekundaer Instance ISiKDiagnose.fsh Example-condition-kreuz-stern-primaer Instance ISiKDiagnose.fsh Example-condition-kreuz-stern-sekundaer Instance ISiKDiagnose.fsh -ISiK-capabilityStatement-basis-server Instance ISiKCapabilityStatement.fsh +ISiK-capabilityStatement-basis-server Instance ISiKCapabilityStatementBasisServer.fsh ISiK-docBundle-1 Invariant ISiKBerichtBundle.fsh ISiK-enc-1 Invariant ISiKKontaktGesundheitseinrichtung.fsh ISiKAngehoeriger Profile ISiKAngehoeriger.fsh From c0b0b73d8bb8e4800d178e67534a019d5441e214 Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Thu, 29 Feb 2024 17:01:40 +0000 Subject: [PATCH 16/36] auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) --- ...nt-ISiKCapabilityStatementBasisServer.json | 88 ------------------- 1 file changed, 88 deletions(-) diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json index 9a7aef5b..9d6044aa 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json @@ -153,17 +153,6 @@ "definition": "http://hl7.org/fhir/SearchParameter/Patient-name", "type": "string" }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" - }, { "extension": [ { @@ -545,17 +534,6 @@ "name": "service-provider", "definition": "http://hl7.org/fhir/SearchParameter/Encounter-service-provider", "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" } ], "searchInclude": [ @@ -734,17 +712,6 @@ "name": "patient", "definition": "http://hl7.org/fhir/SearchParameter/clinical-patient", "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" } ] }, @@ -857,17 +824,6 @@ "definition": "http://fhir.de/SearchParameter/Condition-related", "type": "reference" }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" - }, { "extension": [ { @@ -1044,17 +1000,6 @@ "name": "date", "definition": "http://hl7.org/fhir/SearchParameter/clinical-date", "type": "date" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" } ], "searchInclude": [ @@ -1211,17 +1156,6 @@ "name": "subscriber", "definition": "http://hl7.org/fhir/SearchParameter/Coverage-subscriber", "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" } ], "searchInclude": [ @@ -1330,17 +1264,6 @@ "definition": "http://hl7.org/fhir/SearchParameter/RelatedPerson-name", "type": "string" }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" - }, { "extension": [ { @@ -1520,17 +1443,6 @@ "definition": "http://hl7.org/fhir/SearchParameter/individual-gender", "type": "token" }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "MAY" - } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "uri" - }, { "extension": [ { From e6fa54ba2662a8121a046f9af5fc95a61492bf49 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Thu, 29 Feb 2024 18:25:29 +0100 Subject: [PATCH 17/36] ambiguous MAY searchparameter corrected --- .../Abrechnungsfall_Interaktionen.md | 8 -------- .../markdown/Diagnose/Diagnose_Interaktionen.md | 8 -------- .../Kontakt_Interaktionen.md | 8 -------- .../markdown/Patient/Patient_Interaktionen.md | 8 -------- .../PersonImGesundheitsberuf_Interaktionen.md | 8 -------- .../markdown/Prozedur/Prozedur_Interaktionen.md | 8 -------- .../UebergreifendeFestlegungen_Suchparameter.md | 8 -------- .../Versicherungsverhaeltnis_Interaktionen.md | 16 ---------------- 8 files changed, 72 deletions(-) diff --git a/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Interaktionen.md b/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Interaktionen.md index ad508d02..67b9f7db 100644 --- a/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Interaktionen.md +++ b/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Interaktionen.md @@ -44,12 +44,4 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Account.subject" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). -1. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Account?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). - --- diff --git a/ImplementationGuide/markdown/Diagnose/Diagnose_Interaktionen.md b/ImplementationGuide/markdown/Diagnose/Diagnose_Interaktionen.md index d613b501..5e5d43e4 100644 --- a/ImplementationGuide/markdown/Diagnose/Diagnose_Interaktionen.md +++ b/ImplementationGuide/markdown/Diagnose/Diagnose_Interaktionen.md @@ -64,14 +64,6 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Condition.related" finden sich im [Leitfaden Basis DE (R4) - Abschnitt "Diagnosen (Condition) - Doppel-/Mehrfachkodierte ICD-Codes"](https://ig.fhir.de/basisprofile-de/1.2.0/Ressourcen-DiagnosenCondition.html). -1. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Condition?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). - 1. Der Suchparameter "category" KANN unterstützt werden: Beispiele: diff --git a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Interaktionen.md b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Interaktionen.md index 70405003..7a031dcb 100644 --- a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Interaktionen.md +++ b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Interaktionen.md @@ -114,13 +114,5 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Encounter.serviceProvider" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). -1. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Encounter?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). - --- diff --git a/ImplementationGuide/markdown/Patient/Patient_Interaktionen.md b/ImplementationGuide/markdown/Patient/Patient_Interaktionen.md index 7fe6ff8b..e64dd511 100644 --- a/ImplementationGuide/markdown/Patient/Patient_Interaktionen.md +++ b/ImplementationGuide/markdown/Patient/Patient_Interaktionen.md @@ -78,14 +78,6 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Patient.name" finden sich in der [FHIR-Basisspezifikation - Abschnitt "String Search"](https://hl7.org/fhir/R4/search.html#string). -1. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Patient?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). - 1. Der Suchparameter "address" KANN unterstützt werden: Beispiele diff --git a/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Interaktionen.md b/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Interaktionen.md index 07d77d58..97a37b42 100644 --- a/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Interaktionen.md +++ b/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Interaktionen.md @@ -46,14 +46,6 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Practitioner.name" finden sich in der [FHIR-Basisspezifikation - Abschnitt "String Search"](https://hl7.org/fhir/R4/search.html#string). -1. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Practitioner?_profile=``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://www.hl7.org/fhir/R4/search.html#all). - 1. Der Suchparameter "address" KANN unterstützt werden: Beispiele: diff --git a/ImplementationGuide/markdown/Prozedur/Prozedur_Interaktionen.md b/ImplementationGuide/markdown/Prozedur/Prozedur_Interaktionen.md index e8e7637b..82ce263c 100644 --- a/ImplementationGuide/markdown/Prozedur/Prozedur_Interaktionen.md +++ b/ImplementationGuide/markdown/Prozedur/Prozedur_Interaktionen.md @@ -72,12 +72,4 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Dieser Suchparameter ist für die Umsetzung des IHE QEDm Profils verpflichtend. -1. Der Suchparameter für "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Procedure?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all) - --- diff --git a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md index 4f82f333..176d3529 100644 --- a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md +++ b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md @@ -137,14 +137,6 @@ Folgende Suchparameter MÜSSEN für alle bestätigungsrelevante Datenojekte impl Der ```:iterate``` Modifier KANN unterstützt werden. - -Folgende Suchparameter KÖNNEN für alle bestätigungsrelevante Datenojekte implementiert werden: - -* ``_profile`` - - - Beispiele: ``GET [base]/Patient?_profile=https://gematik.de/fhir/ISiK/v3/StructureDefinition/ISiKPatient`` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). - Die aufgelisteten Suchparameter MÜSSEN entsprechend der Vorgaben für das CapabilityStatement pro Ressource aufgelistet werden. ## Best Practice Empfehlungen für Standard-Suchfilter diff --git a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md index 3216c70f..057b8246 100644 --- a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md +++ b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md @@ -62,14 +62,6 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Coverage.payor" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). -8. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Coverage?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://www.hl7.org/fhir/R4/search.html#all). - #### Profil ISiKVersicherungsverhaeltnisSelbstzahler 1. Der Suchparameter "_id" MUSS unterstützt werden: @@ -120,12 +112,4 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "Coverage.type" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). -1. Der Suchparameter "_profile" KANN unterstützt werden: - - Beispiele: - - ```GET [base]/Coverage?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://www.hl7.org/fhir/R4/search.html#all). - --- \ No newline at end of file From 2f1922afad82b149404e2bc1c536360f1d2906a5 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Thu, 29 Feb 2024 19:11:09 +0100 Subject: [PATCH 18/36] progress IG encounter includes --- .../Kontakt_Includes.md | 32 +++++++++++++++++++ Material/images/src/plantuml/usecases.puml | 3 ++ 2 files changed, 35 insertions(+) create mode 100644 ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md diff --git a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md new file mode 100644 index 00000000..f59da3d8 --- /dev/null +++ b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md @@ -0,0 +1,32 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```Encounter``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + + +1. Der verkette Suchparameter ```Encounter:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu den aktuell vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fall}} identifizieren zu können {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + +1. Der verkette Suchparameter ```Encounter:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} den aktuell zugehörigen Kontakt identifizieren zu können auszuschließen. + +1. Der verkette Suchparameter ```Encounter:part-of``` unterstüzt den Anwendungsfall: + + Um einem Kontakt eindeutig als Teil einer {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Behandlugsjourney}} identifizieren zu können. + +1. Der verkette Suchparameter ```Encounter:diagnosis``` unterstüzt den Anwendungsfall: + + Um bei einem vorliegenden Fall {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu all die zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnosen}} zu finden. + +1. Der verkette Suchparameter ```Encounter:account``` unterstüzt den Anwendungsfall: + + Um bei einem vorliegenden Fall die korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindAbrechnungeutig}} mit all den erbrachten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Leistungen}} zuordnen zu können. + +--- \ No newline at end of file diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml index 9d86fa4b..c5033e38 100644 --- a/Material/images/src/plantuml/usecases.puml +++ b/Material/images/src/plantuml/usecases.puml @@ -46,6 +46,8 @@ storage gnrlUC as "Allgemein" { (Information) (Einbeziehung \nAngehöriger) (Einsichtnahme) + (Diagnostizieren) + (Leistungserbringung) } } @@ -54,6 +56,7 @@ storage adverseUC as "Adverse Use Cases" { (Patient) (Fall) (Diagnose) + (Behandlung) (Ort-Zeit) } (Merhfachdokumentation) From d47e2200f2d26761dd7f7034eac7c12763de3a3c Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Thu, 29 Feb 2024 18:12:59 +0000 Subject: [PATCH 19/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/usecases.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg index 48572d5a..7f10f53a 100644 --- a/Material/images/diagrams/usecases.svg +++ b/Material/images/diagrams/usecases.svg @@ -1 +1 @@ -AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinbeziehungAngehörigerEinsichtnahmeMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file +AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinbeziehungAngehörigerEinsichtnahmeDiagnostizierenLeistungserbringungMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseBehandlungOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file From b668a8702af8a975d170a1894c022bd89fc23495 Mon Sep 17 00:00:00 2001 From: Stefan Lang Date: Thu, 29 Feb 2024 19:30:19 +0100 Subject: [PATCH 20/36] Allergyintolerance sl (#369) * Erstfassung AllergyIntolerance * allergyintolerance canonicals adjusted --------- Co-authored-by: Stefan Lang Co-authored-by: Max Theilig --- ...lementierungsleitfaden_ISiKBasismodul.json | 37 ++ ...keit_AnmerkungenZuDenMustSupportFeldern.md | 12 + .../AllergieUnvertraeglichkeit_Beispiele.md | 5 + ...llergieUnvertraeglichkeit_Interaktionen.md | 62 +++ ...ergieUnvertraeglichkeit_Kompatibilitaet.md | 10 + .../AllergieUnvertraeglichkeit_Motivation.md | 7 + .../AllergieUnvertraeglichkeit_Profil.md | 27 + ...Datenobjekte_AllergieUnvertraeglichkeit.md | 3 + ...iKAllergieUnvertraeglichkeitBeispiel1.json | 84 ++++ ...nition-ISiKAllergieUnvertraeglichkeit.json | 471 ++++++++++++++++++ .../fsh/ISiKAllergieUnvertraeglichkeit.fsh | 128 +++++ Resources/input/fsh/aliases.fsh | 4 +- 12 files changed, 849 insertions(+), 1 deletion(-) create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_AnmerkungenZuDenMustSupportFeldern.md create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Beispiele.md create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Interaktionen.md create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Kompatibilitaet.md create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Motivation.md create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Profil.md create mode 100644 ImplementationGuide/markdown/Datenobjekte/Datenobjekte_AllergieUnvertraeglichkeit.md create mode 100644 Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json create mode 100644 Resources/input/fsh/ISiKAllergieUnvertraeglichkeit.fsh diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index 47994136..5c8baad7 100644 --- a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -277,6 +277,43 @@ } ] }, + { + "nameUrl": "ImplementationGuide/markdown/Datenobjekte/Datenobjekte_AllergieUnvertraeglichkeit.md", + "title": "Allergie/Unverträglichkeit (AllergyIntolerance)", + "generation": "markdown", + "page": [ + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Motivation.md", + "title": "Motivation", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Kompatibilitaet.md", + "title": "Kompatibilität", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Profil.md", + "title": "Profil", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_AnmerkungenZuDenMustSupportFeldern.md", + "title": "Anmerkungen zu den Must-Support Feldern", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Interaktionen.md", + "title": "Interaktionen", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Beispiele.md", + "title": "Beispiele", + "generation": "markdown" + } + ] + }, { "nameUrl": "ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Prozedur.md", "title": "Prozedur (Procedure)", diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_AnmerkungenZuDenMustSupportFeldern.md new file mode 100644 index 00000000..fca58a31 --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_AnmerkungenZuDenMustSupportFeldern.md @@ -0,0 +1,12 @@ +### Anmerkungen zu den Must-Support-Feldern + +@```from + StructureDefinition +where + url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit' +for differential.element +where mustSupport = true + and short.exists() +select + Feldname: id, Kurzbeschreibung: short, Hinweise: comment +``` diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Beispiele.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Beispiele.md new file mode 100644 index 00000000..92b62207 --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Beispiele.md @@ -0,0 +1,5 @@ +### Beispiel + +Valides Beispiel Allergie/Unverträglichkeit: + +{{json:ISiKAllergieUnvertraeglichkeitBeispiel1}} diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Interaktionen.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Interaktionen.md new file mode 100644 index 00000000..b3c0ff3b --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Interaktionen.md @@ -0,0 +1,62 @@ +### Interaktionen + +Für die Ressource AllergyIntolerance MUSS die REST-Interaktion "READ" implementiert werden. + +Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Kombination: + +1. Der Suchparameter "_id" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?_id=test``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). + +1. Der Suchparameter "clinical-status" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?clinical-status=active``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "AllergyIntolerance.clinicalStatus" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). + + Dieser Suchparameter ist für die Umsetzung des IHE QEDm Profils verpflichtend. + +1. Der Suchparameter "patient" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?patient=Patient/123``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "AllergyIntolerance.subject" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). + +1. Der Suchparameter "onset" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?onset=2015-01-01T12:00:23Z+02:00``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "AllergyIntolerance.onset[x]" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Date Search"](https://hl7.org/fhir/R4/search.html#date). + +1. Der Suchparameter "date" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?date=2015-01-01T12:00:23Z+02:00``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "AllergyIntolerance.recordedDate" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Date Search"](https://hl7.org/fhir/R4/search.html#date). + +1. Der Suchparameter "category" KANN unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?category=environment``` + +1. Der Suchparameter "type" KANN unterstützt werden: + + Beispiele: + + ```GET [base]/AllergyIntolerance?type=allergy``` + + +--- diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Kompatibilitaet.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Kompatibilitaet.md new file mode 100644 index 00000000..a6905a40 --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Kompatibilitaet.md @@ -0,0 +1,10 @@ +### Kompatibilität + + +Für das Profil ISiKAllergieUnvertraeglichkeit wird eine Kompatibilität mit folgenden Profilen angestrebt; allerdings kann nicht sichergestellt werden, dass Instanzen, die gegen ISiKAllergieUnvertraeglichkeit valide sind, auch valide sind gegen: +* [das Profil KBV_PR_Base_AllergyIntolerance der KBV](https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_AllergyIntolerance) +* [das Profil EMDAF_PR_AllergyIntolerance der GEVKO](https://fhir.gevko.de/StructureDefinition/EMDAF_PR_AllergyIntolerance) +* [das Profil AllergyIntolerance-uv-ips der International Patient Summary](http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips) + +Hinweise zu Inkompatibilitäten können über die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden. +--- diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Motivation.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Motivation.md new file mode 100644 index 00000000..6eed8e00 --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Motivation.md @@ -0,0 +1,7 @@ +### Motivation + +Die Möglichkeit, auf eine Übersicht der Allergien und Unverträglichkeiten eines Patienten zuzugreifen, ist eine wichtige Funktionen im klinischen Behandlungsablauf. Dies gilt insbesondere, aber nicht ausschließlich, im Bereich der Arzneimitteltherapiesicherheit. + +In FHIR werden Allergien und Unverträglichkeiten mit der [AllergyIntolerance](https://hl7.org/fhir/R4/allergyintolerance.html)-Ressource repräsentiert. + +--- diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Profil.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Profil.md new file mode 100644 index 00000000..e9f89b0b --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Profil.md @@ -0,0 +1,27 @@ +### Profil + +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit, hybrid}} + +--- + +**Terminology Bindings** + +@``` +from StructureDefinition +where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit' ) +for differential.element +select +Path: path, +join binding.where(valueSet.exists()) +{ + Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))), + Strength: strength, + URL: valueSet +} +``` + +--- diff --git a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_AllergieUnvertraeglichkeit.md b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_AllergieUnvertraeglichkeit.md new file mode 100644 index 00000000..a8d6d731 --- /dev/null +++ b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_AllergieUnvertraeglichkeit.md @@ -0,0 +1,3 @@ +## Allergie/Unverträglichkeit [(AllergyIntolerance)](https://hl7.org/fhir/R4/allergyintolerance.html) + +--- diff --git a/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json b/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json new file mode 100644 index 00000000..6a48a1e1 --- /dev/null +++ b/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json @@ -0,0 +1,84 @@ +{ + "resourceType": "AllergyIntolerance", + "id": "ISiKAllergieUnvertraeglichkeitBeispiel1", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit" + ] + }, + "clinicalStatus": { + "coding": [ + { + "code": "active", + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "code": "confirmed", + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" + } + ] + }, + "type": "allergy", + "category": [ + "environment" + ], + "criticality": "low", + "code": { + "coding": [ + { + "code": "256262001", + "system": "http://snomed.info/sct", + "display": "Betula pendula pollen" + } + ] + }, + "patient": { + "reference": "Patient/PatientinMusterfrau" + }, + "onsetDateTime": "1987", + "recordedDate": "2011-05-12", + "recorder": { + "display": "Dr. Martin Mustermann" + }, + "asserter": { + "display": "Dr. Berta Beispiel" + }, + "note": [ + { + "authorReference": { + "reference": "Practitioner/PractitionerWalterArzt" + }, + "time": "2024-02-20T14:34:12+01:00", + "text": "Patientin berichtet von einer leichten Verschlimmerung in den letzten 3 Jahren." + } + ], + "reaction": [ + { + "manifestation": [ + { + "coding": [ + { + "code": "162367006", + "system": "http://snomed.info/sct", + "display": "Sneezing symptom" + } + ] + } + ], + "severity": "moderate", + "exposureRoute": { + "coding": [ + { + "code": "14910006", + "system": "http://snomed.info/sct", + "display": "Inspiration" + } + ] + } + } + ] +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json new file mode 100644 index 00000000..57a760e8 --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json @@ -0,0 +1,471 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKAllergieUnvertraeglichkeit", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit", + "version": "4.0.0-rc", + "name": "ISiKAllergieUnvertraeglichkeit", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "description": "Diese Profil ermöglicht die Dokumentation von Allergien und Unverträglichkeiten in ISiK Szenarien.", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + } + ], + "kind": "resource", + "abstract": false, + "type": "AllergyIntolerance", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/AllergyIntolerance", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "AllergyIntolerance.clinicalStatus", + "path": "AllergyIntolerance.clinicalStatus", + "short": "klinischer Status", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.clinicalStatus.coding", + "path": "AllergyIntolerance.clinicalStatus.coding", + "min": 1, + "max": "1", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.clinicalStatus.coding.system", + "path": "AllergyIntolerance.clinicalStatus.coding.system", + "min": 1, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.clinicalStatus.coding.code", + "path": "AllergyIntolerance.clinicalStatus.coding.code", + "min": 1, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.verificationStatus", + "path": "AllergyIntolerance.verificationStatus", + "short": "Verifikationsstatus", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.verificationStatus.coding", + "path": "AllergyIntolerance.verificationStatus.coding", + "min": 1, + "max": "1", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.verificationStatus.coding.system", + "path": "AllergyIntolerance.verificationStatus.coding.system", + "min": 1, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.verificationStatus.coding.code", + "path": "AllergyIntolerance.verificationStatus.coding.code", + "min": 1, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.type", + "path": "AllergyIntolerance.type", + "short": "Type (Allergie oder Unverträglichkeit)", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.category", + "path": "AllergyIntolerance.category", + "short": "Kategorie", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.criticality", + "path": "AllergyIntolerance.criticality", + "short": "Kritikalität", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code", + "path": "AllergyIntolerance.code", + "short": "Benennung der Allergie/Unverträglichkeit", + "min": 1, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding", + "path": "AllergyIntolerance.code.coding", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "min": 1, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:snomed-ct", + "path": "AllergyIntolerance.code.coding", + "sliceName": "snomed-ct", + "min": 1, + "max": "1", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:snomed-ct.system", + "path": "AllergyIntolerance.code.coding.system", + "fixedUri": "http://snomed.info/sct", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:snomed-ct.code", + "path": "AllergyIntolerance.code.coding.code", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:snomed-ct.display", + "path": "AllergyIntolerance.code.coding.display", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:ask", + "path": "AllergyIntolerance.code.coding", + "sliceName": "ask", + "min": 0, + "max": "1", + "type": [ + { + "code": "Coding", + "profile": [ + "http://fhir.de/StructureDefinition/CodingASK" + ] + } + ], + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:ask.system", + "path": "AllergyIntolerance.code.coding.system", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:ask.code", + "path": "AllergyIntolerance.code.coding.code", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:ask.display", + "path": "AllergyIntolerance.code.coding.display", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:atc", + "path": "AllergyIntolerance.code.coding", + "sliceName": "atc", + "min": 0, + "max": "1", + "type": [ + { + "code": "Coding", + "profile": [ + "http://fhir.de/StructureDefinition/CodingATC" + ] + } + ], + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:atc.system", + "path": "AllergyIntolerance.code.coding.system", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:atc.version", + "path": "AllergyIntolerance.code.coding.version", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:atc.code", + "path": "AllergyIntolerance.code.coding.code", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.coding:atc.display", + "path": "AllergyIntolerance.code.coding.display", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.code.text", + "path": "AllergyIntolerance.code.text", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.patient", + "path": "AllergyIntolerance.patient", + "short": "Patient (Referenz)", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.encounter", + "path": "AllergyIntolerance.encounter", + "short": "Aufenthalt, bei dem die Allergie/Unverträglichkeit festgestellt wurde (nicht notwendigerweise der aktuelle Aufenthalt!)", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.onset[x]", + "path": "AllergyIntolerance.onset[x]", + "slicing": { + "discriminator": [ + { + "type": "type", + "path": "$this" + } + ], + "ordered": false, + "rules": "open" + }, + "short": "Beginn-Zeitpunkt", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.onset[x]:onsetDateTime", + "path": "AllergyIntolerance.onset[x]", + "sliceName": "onsetDateTime", + "min": 0, + "max": "1", + "type": [ + { + "code": "dateTime" + } + ], + "mustSupport": true + }, + { + "id": "AllergyIntolerance.onset[x]:onsetAge", + "path": "AllergyIntolerance.onset[x]", + "sliceName": "onsetAge", + "min": 0, + "max": "1", + "type": [ + { + "code": "Age" + } + ], + "mustSupport": true + }, + { + "id": "AllergyIntolerance.onset[x]:onsetString", + "path": "AllergyIntolerance.onset[x]", + "sliceName": "onsetString", + "min": 0, + "max": "1", + "type": [ + { + "code": "string" + } + ], + "mustSupport": true + }, + { + "id": "AllergyIntolerance.recordedDate", + "path": "AllergyIntolerance.recordedDate", + "short": "", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.recorder", + "path": "AllergyIntolerance.recorder", + "short": "Person/Rolle, die die Information dokumentiert", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.recorder.reference", + "path": "AllergyIntolerance.recorder.reference", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.recorder.display", + "path": "AllergyIntolerance.recorder.display", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.asserter", + "path": "AllergyIntolerance.asserter", + "short": "Person/Rolle, die die Allergie/Unverträglichkeit festgestellt hat", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.asserter.reference", + "path": "AllergyIntolerance.asserter.reference", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.asserter.display", + "path": "AllergyIntolerance.asserter.display", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.note", + "path": "AllergyIntolerance.note", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.note.author[x]", + "path": "AllergyIntolerance.note.author[x]", + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Practitioner", + "http://hl7.org/fhir/StructureDefinition/Patient", + "http://hl7.org/fhir/StructureDefinition/RelatedPerson", + "http://hl7.org/fhir/StructureDefinition/Organization" + ] + } + ], + "mustSupport": true + }, + { + "id": "AllergyIntolerance.note.author[x].reference", + "path": "AllergyIntolerance.note.author[x].reference", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.note.author[x].display", + "path": "AllergyIntolerance.note.author[x].display", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.note.time", + "path": "AllergyIntolerance.note.time", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.note.text", + "path": "AllergyIntolerance.note.text", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction", + "path": "AllergyIntolerance.reaction", + "short": "Unerwünschte Reaktion", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.manifestation", + "path": "AllergyIntolerance.reaction.manifestation", + "short": "Manifestation der Reaktion", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.manifestation.coding", + "path": "AllergyIntolerance.reaction.manifestation.coding", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.manifestation.coding:snomed-ct", + "path": "AllergyIntolerance.reaction.manifestation.coding", + "sliceName": "snomed-ct", + "min": 0, + "max": "1", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.manifestation.coding:snomed-ct.system", + "path": "AllergyIntolerance.reaction.manifestation.coding.system", + "fixedUri": "http://snomed.info/sct", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.manifestation.coding:snomed-ct.code", + "path": "AllergyIntolerance.reaction.manifestation.coding.code", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.manifestation.text", + "path": "AllergyIntolerance.reaction.manifestation.text", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.severity", + "path": "AllergyIntolerance.reaction.severity", + "short": "Schweregrad der Reaktion", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.exposureRoute", + "path": "AllergyIntolerance.reaction.exposureRoute", + "short": "Expositionsweg", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.exposureRoute.coding", + "path": "AllergyIntolerance.reaction.exposureRoute.coding", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.exposureRoute.coding:snomed-ct", + "path": "AllergyIntolerance.reaction.exposureRoute.coding", + "sliceName": "snomed-ct", + "min": 0, + "max": "1", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.exposureRoute.coding:snomed-ct.system", + "path": "AllergyIntolerance.reaction.exposureRoute.coding.system", + "fixedUri": "http://snomed.info/sct", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.exposureRoute.coding:snomed-ct.code", + "path": "AllergyIntolerance.reaction.exposureRoute.coding.code", + "mustSupport": true + }, + { + "id": "AllergyIntolerance.reaction.exposureRoute.text", + "path": "AllergyIntolerance.reaction.exposureRoute.text", + "mustSupport": true + } + ] + } +} diff --git a/Resources/input/fsh/ISiKAllergieUnvertraeglichkeit.fsh b/Resources/input/fsh/ISiKAllergieUnvertraeglichkeit.fsh new file mode 100644 index 00000000..066ead2d --- /dev/null +++ b/Resources/input/fsh/ISiKAllergieUnvertraeglichkeit.fsh @@ -0,0 +1,128 @@ +Profile: ISiKAllergieUnvertraeglichkeit +Parent: AllergyIntolerance +Id: ISiKAllergieUnvertraeglichkeit +Description: "Diese Profil ermöglicht die Dokumentation von Allergien und Unverträglichkeiten in ISiK Szenarien." +* insert Meta +* clinicalStatus MS + * ^short = "klinischer Status" + * coding 1..1 MS + * system 1..1 MS + * code 1..1 MS +* verificationStatus MS + * ^short = "Verifikationsstatus" + * coding 1..1 MS + * system 1..1 MS + * code 1..1 MS +* type MS + * ^short = "Type (Allergie oder Unverträglichkeit)" +* category MS + * ^short = "Kategorie" +* criticality MS + * ^short = "Kritikalität" +* code 1.. MS + * ^short = "Benennung der Allergie/Unverträglichkeit" + * coding MS + * ^slicing.discriminator.type = #pattern + * ^slicing.discriminator.path = "$this" + * ^slicing.rules = #open + * coding contains + snomed-ct 1..1 MS and + ask 0..1 MS and + atc 0..1 MS + * coding[snomed-ct] MS + * system MS + * system = "http://snomed.info/sct" (exactly) + * code MS + * display MS + * coding[ask] MS + * coding[ask] only CodingASK + * system MS + * code MS + * display MS + * coding[atc] MS + * coding[atc] only CodingATC + * system MS + * version MS + * code MS + * display MS + * text MS +* patient MS + * ^short = "Patient (Referenz)" +* encounter MS + * ^short = "Aufenthalt, bei dem die Allergie/Unverträglichkeit festgestellt wurde (nicht notwendigerweise der aktuelle Aufenthalt!)" +* onset[x] MS + * ^short = "Beginn-Zeitpunkt" +* onsetDateTime MS +* onsetAge MS +* onsetString MS +* recordedDate MS + * ^short = "" +* recorder MS + * ^short = "Person/Rolle, die die Information dokumentiert" + * reference MS + * display MS +* asserter MS + * ^short = "Person/Rolle, die die Allergie/Unverträglichkeit festgestellt hat" + * reference MS + * display MS +* note MS + * author[x] MS + * author[x] only Reference + * authorReference MS + * reference MS + * display MS + * time MS + * text MS +* reaction MS + * ^short = "Unerwünschte Reaktion" + * manifestation MS + * ^short = "Manifestation der Reaktion" + * coding MS + * ^slicing.discriminator.type = #pattern + * ^slicing.discriminator.path = "$this" + * ^slicing.rules = #open + * coding contains + snomed-ct 0..1 MS + * coding[snomed-ct] MS + * system MS + * system = "http://snomed.info/sct" (exactly) + * code MS + * text MS + * severity MS + * ^short = "Schweregrad der Reaktion" + * exposureRoute MS + * ^short = "Expositionsweg" + * coding MS + * ^slicing.discriminator.type = #pattern + * ^slicing.discriminator.path = "$this" + * ^slicing.rules = #open + * coding contains + snomed-ct 0..1 MS + * coding[snomed-ct] MS + * system MS + * system = "http://snomed.info/sct" (exactly) + * code MS + * text MS + +Instance: ISiKAllergieUnvertraeglichkeitBeispiel1 +InstanceOf: ISiKAllergieUnvertraeglichkeit +Usage: #example +* clinicalStatus = $vsAllergyIntoleranceClinicalStatus#active +* verificationStatus = $vsAllergyIntoleranceVerificationStatus#confirmed +* type = #allergy +* category = #environment +* criticality = #low +* code = $sct#256262001 "Betula pendula pollen" +* patient = Reference(PatientinMusterfrau) +* onsetDateTime = "1987" +* recordedDate = 2011-05-12 +* recorder.display = "Dr. Martin Mustermann" +* asserter.display = "Dr. Berta Beispiel" +* note + * authorReference = Reference(PractitionerWalterArzt) + * time = 2024-02-20T14:34:12+01:00 + * text = "Patientin berichtet von einer leichten Verschlimmerung in den letzten 3 Jahren." +* reaction + * manifestation = $sct#162367006 "Sneezing symptom" + * severity = #moderate + * exposureRoute = $sct#14910006 "Inspiration" diff --git a/Resources/input/fsh/aliases.fsh b/Resources/input/fsh/aliases.fsh index 1e6d55f3..84142538 100644 --- a/Resources/input/fsh/aliases.fsh +++ b/Resources/input/fsh/aliases.fsh @@ -35,4 +35,6 @@ Alias: $KBV_VS_Base_Practitioner_Speciality = https://fhir.kbv.de/ValueSet/KBV_V Alias: $ProzedurenCodesSCT = https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenCodesSCT Alias: $capabilitystatement-expectation = http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation Alias: $kvid10 = http://fhir.de/sid/gkv/kvid-10 -Alias: $kvnr30 = http://fhir.de/sid/gkv/kvnr-30 \ No newline at end of file +Alias: $kvnr30 = http://fhir.de/sid/gkv/kvnr-30 +Alias: $vsAllergyIntoleranceClinicalStatus = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical +Alias: $vsAllergyIntoleranceVerificationStatus = http://terminology.hl7.org/CodeSystem/allergyintolerance-verification From 0ab5cdf0891bde715d03bac168166932f464b214 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Fri, 1 Mar 2024 17:33:20 +0100 Subject: [PATCH 21/36] progress bessere IG Includes und Allergy --- ...lementierungsleitfaden_ISiKBasismodul.json | 35 +++++++++++ .../AllergieUnvertraeglichkeit_Includes.md | 24 ++++++++ .../Angehoeriger/Angehoeriger_Includes.md | 23 ++++++++ .../markdown/Diagnose/Diagnose_Includes.md | 27 +++++++++ .../Kontakt_Includes.md | 15 +++-- .../markdown/Prozedur/Prozedur_Includes.md | 27 +++++++++ .../Versicherungsverhaeltnis_Includes.md | 26 +++++++++ Material/images/src/plantuml/usecases.puml | 6 +- .../ISiKCapabilityStatementBasisServer.fsh | 58 +++++++++++++++++++ 9 files changed, 236 insertions(+), 5 deletions(-) create mode 100644 ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md create mode 100644 ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Includes.md create mode 100644 ImplementationGuide/markdown/Diagnose/Diagnose_Includes.md create mode 100644 ImplementationGuide/markdown/Prozedur/Prozedur_Includes.md create mode 100644 ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Includes.md diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index 5c8baad7..692c0d64 100644 --- a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -196,6 +196,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Inlcudes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Beispiele.md", "title": "Beispiele", @@ -233,6 +238,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Includes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Beispiele.md", "title": "Beispiele", @@ -270,6 +280,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/Diagnose/Diagnose_Includes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/Diagnose/Diagnose_Beispiele.md", "title": "Beispiele", @@ -307,6 +322,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Beispiele.md", "title": "Beispiele", @@ -344,6 +364,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/Prozedur/Prozedur_Includes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/Prozedur/Prozedur_Beispiele.md", "title": "Beispiele", @@ -381,6 +406,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Includes.md", + "title": "Verkettete Suchparameter", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Beispiele.md", "title": "Beispiele", @@ -418,6 +448,11 @@ "title": "Interaktionen", "generation": "markdown" }, + { + "nameUrl": "ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Includes.md", + "title": "Beispiele", + "generation": "markdown" + }, { "nameUrl": "ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Beispiele.md", "title": "Beispiele", diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md new file mode 100644 index 00000000..6ffe214d --- /dev/null +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md @@ -0,0 +1,24 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```AllergyIntolerance``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + + +1. Der verkette Suchparameter ```AllergyIntolerance:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Allergien und Intoleranzen}} identifizieren zu können und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fehlbehandlung}} auszuschließen. + +1. Der verkette Suchparameter ```AllergyIntolerance:encounter``` unterstüzt den Anwendungsfall: + + Um einem Kontakt eindeutig als Ursprung einer {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Allergie-Diagnose}} zuordnen zu können. + +1. Der verkette Suchparameter ```Encounter:diagnosis``` unterstüzt den Anwendungsfall: + + Um bei einer vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Allergie-Diagnose}} eines Patienten alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Kontakte}} zurodnen zu können. + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Includes.md b/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Includes.md new file mode 100644 index 00000000..0a884cdc --- /dev/null +++ b/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Includes.md @@ -0,0 +1,23 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```RelatedPerson``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + +1. Der verkette Suchparameter ```RelatedPerson:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} seinen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Angehörigen}} identifizieren und einbeziehen zu können. + +1. Der verkette Suchparameter ```Coverage:subscriber``` unterstüzt den Anwendungsfall: + + Um für ein bekanntes {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnis}} alle zugehörigen Versicherungsnehmer finden zu können, z.B. die Eltern zur Familienversicherung. + +1. Der verkette Suchparameter ```Coverage:payor``` unterstüzt den Anwendungsfall: + + Um für ein bekanntes {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnis}} alle zugehörigen, auch private, Beitragszahler finden zu können, z.B. die Gesellschaft hinter einer betrieblichen Krankenzusatzversicherung. + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Diagnose/Diagnose_Includes.md b/ImplementationGuide/markdown/Diagnose/Diagnose_Includes.md new file mode 100644 index 00000000..d12994d8 --- /dev/null +++ b/ImplementationGuide/markdown/Diagnose/Diagnose_Includes.md @@ -0,0 +1,27 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```Condition``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + +1. Der verkette Suchparameter ```Condition:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnosen}} identifizieren zu können und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fehlbehandlung}} auszuschließen. + +1. Der verkette Suchparameter ```Condition:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die aktuell zugehörige {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnose}} identifizieren zu können. + +1. Der verkette Suchparameter ```Condition:encounter``` unterstüzt den Anwendungsfall: + + Um einem Kontakt eindeutig als Ursprung einer {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnose}} zuordnen zu können. + +1. Der verkette Suchparameter ```Encounter:diagnosis``` unterstüzt den Anwendungsfall: + + Um bei einer vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnose}} eines Patienten alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Kontakte}} zurodnen zu können. + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md index f59da3d8..e613f999 100644 --- a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md +++ b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Includes.md @@ -11,11 +11,11 @@ Die verketteten Suchparameter des Profils ```Encounter``` hängen wie folgt mit 1. Der verkette Suchparameter ```Encounter:patient``` unterstüzt den Anwendungsfall: - Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu den aktuell vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fall}} identifizieren zu können {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} alle aktuell vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fälle}} identifizieren zu können und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. 1. Der verkette Suchparameter ```Encounter:subject``` unterstüzt den Anwendungsfall: - Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} den aktuell zugehörigen Kontakt identifizieren zu können auszuschließen. + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} den aktuell zugehörigen Kontakt identifizieren zu können. 1. Der verkette Suchparameter ```Encounter:part-of``` unterstüzt den Anwendungsfall: @@ -23,10 +23,17 @@ Die verketteten Suchparameter des Profils ```Encounter``` hängen wie folgt mit 1. Der verkette Suchparameter ```Encounter:diagnosis``` unterstüzt den Anwendungsfall: - Um bei einem vorliegenden Fall {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} zu all die zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnosen}} zu finden. + Um bei einer vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnose}} zu alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fälle}} zu finden. 1. Der verkette Suchparameter ```Encounter:account``` unterstüzt den Anwendungsfall: - Um bei einem vorliegenden Fall die korrekte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindAbrechnungeutig}} mit all den erbrachten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Leistungen}} zuordnen zu können. + Um bei einer vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Abrechnung}} den entsprechenden Fall mit all den erbrachten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Leistungen}} zuordnen zu können. +1. Der verkette Suchparameter ```Encounter:part-of``` unterstüzt den Anwendungsfall: + + Um für einen Kontakt {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Teilkontakte}} der kompletten Behandlugsjourney identifizieren und zuordnen zu können. + +1. Der verkette Suchparameter ```Condition:encounter``` unterstüzt den Anwendungsfall: + + Um für eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Diagnose}} die komplette Fallhistorie mit allen Kontakten zu finden und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Verwechslung}} auszuschließen. --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Prozedur/Prozedur_Includes.md b/ImplementationGuide/markdown/Prozedur/Prozedur_Includes.md new file mode 100644 index 00000000..96f417c7 --- /dev/null +++ b/ImplementationGuide/markdown/Prozedur/Prozedur_Includes.md @@ -0,0 +1,27 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```Procedure``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + +1. Der verkette Suchparameter ```Procedure:patient``` unterstüzt den Anwendungsfall: + + Um für einen Patienten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die aktuell anstehende {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Behandlungsprozedur}} identifizieren zu können und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fehlbehandlung}} auszuschließen. + +1. Der verkette Suchparameter ```Procedure:subject``` unterstüzt den Anwendungsfall: + + Um für eine Person {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:eindeutig}} die aktuell anstehende {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Untersuchungsprozedur}} identifizieren zu können und eine {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Fehldiagnose}} auszuschließen. + +1. Der verkette Suchparameter ```Procedure:encounter``` unterstüzt den Anwendungsfall: + + Um einem Kontakt eindeutig zu einer {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Behandlung}} zuordnen zu können. + +1. Der verkette Suchparameter ```Encounter:diagnosis``` unterstüzt den Anwendungsfall: + + Um bei einer vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Untersuchung}} im Rahmen einer Diagnose eines Patienten alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Kontakte}} zuordnen zu können. + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Includes.md b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Includes.md new file mode 100644 index 00000000..62ec6537 --- /dev/null +++ b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Includes.md @@ -0,0 +1,26 @@ +### Verkettete Suchparameter (Chaining und Reverse Chaining) + +Für Suchparameter vom Typ 'Reference' MÜSSEN die Festlegungen für [Chaining](https://hl7.org/fhir/R4/search.html#chaining) und [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has) verpflichtend implementiert werden. Chaining und Reverse Chaining MUSS für alle Suchparameter über alle Ebenen und Datenobjekte hinweg (potentiell in Kombination) unterstützt werden. + +Alle zu unterstützenden verketteten Suchparameter auf den entsprechenden Referenzen sind im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchInclude``` bzw. ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} + +Weitere Informationen und Beispiele zur Suche nach verketteten Parametern finden sich in {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md, text:diesem IG unter Suchparameter}} und in der FHIR-Basisspezifikation im [Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining) und im [Abschnitt "Reverse Chaining"](https://hl7.org/fhir/R4/search.html#has). + +Die verketteten Suchparameter des Profils ```Coverage``` hängen wie folgt mit den festgelegten {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Anwendungsfällen (Use Cases)}} zusammen: + +1. Der verkette Suchparameter ```Coverage:subscriber``` unterstüzt den Anwendungsfall: + + Um bei einer anwesenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Person}} alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnisse}} zuordnen zu können, auch für Eltern mit Familienversicherung der Kinder. + +1. Der verkette Suchparameter ```Coverage:patient``` unterstüzt den Anwendungsfall: + + Um bei einem {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Patienten}} alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnisse}} zuordnen zu können. + +1. Der verkette Suchparameter ```Coverage:payor``` unterstüzt den Anwendungsfall: + + Um bei einer existierenden Gesellschaft alle übernommenen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnisse}} zuordnen zu können, z.B. bei einer betrieblichen Krankenzusatzversicherung durch den Arbeitgeber. + +1. Der verkette Suchparameter ```Coverage:beneficiary``` unterstüzt den Anwendungsfall: + + Um für eine versicherte {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Person}} alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Versicherungsverhältnisse}} zuordnen zu können, z.B. für die Familienversicherung der GKV für Kinder. +--- \ No newline at end of file diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml index c5033e38..cd2dd2f7 100644 --- a/Material/images/src/plantuml/usecases.puml +++ b/Material/images/src/plantuml/usecases.puml @@ -38,16 +38,20 @@ storage gnrlUC as "Allgemein" { (Konsultation) (Transparenz) (Information &\nHistorie) + (Einbeziehung \nAngehöriger) + (Organ- und \nGewebespende) storage patientUC as "Patienten-Management"{ + (Kontakt) (Aufnahme) (Behandlungs-Journey) (Entlassung) (Überleitung) (Information) - (Einbeziehung \nAngehöriger) (Einsichtnahme) (Diagnostizieren) (Leistungserbringung) + (Allergie \nund Inteloranzen) + (Schwangerschaft) } } diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index bd0df968..d52b3fe4 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -339,6 +339,64 @@ Usage: #definition * rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL + +* rest.resource[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].extension.valueCode = #SHALL +* rest.resource[=].type = #AllergyIntolerance +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit" +* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation +* rest.resource[=].interaction[=].extension.valueCode = #SHALL +* rest.resource[=].interaction[=].code = #read +* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].interaction[=].extension.valueCode = #SHALL +* rest.resource[=].interaction[=].code = #search-type +* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "_id" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id" +* rest.resource[=].searchParam[=].type = #token +//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +//* rest.resource[=].searchParam[=].name = "clinical-status" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-clinical-status" +//* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "patient" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-patient" +* rest.resource[=].searchParam[=].type = #reference +//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +//* rest.resource[=].searchParam[=].name = "encounter" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-encounter" +//* rest.resource[=].searchParam[=].type = #reference +//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +//* rest.resource[=].searchParam[=].name = "recorded-date" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-recorded-date" +//* rest.resource[=].searchParam[=].type = #date +//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchParam[=].extension.valueCode = #MAY +//* rest.resource[=].searchParam[=].name = "category" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-category" +//* rest.resource[=].searchParam[=].type = #token +//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchParam[=].extension.valueCode = #MAY +//* rest.resource[=].searchParam[=].name = "criticality" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-criticality" +//* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchInclude = "AllergyIntolerance:patient" +* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL +* rest.resource[=].searchInclude[+] = "AllergyIntolerance:encounter" +* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL +* rest.resource[=].searchRevInclude = "Encounter:diagnosis" +* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL +* rest.resource[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].extension.valueCode = #SHALL + * rest.resource[=].type = #Procedure * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation From 2aafa133fa2c507494a9403b2219c4913f9a05ba Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Fri, 1 Mar 2024 16:34:34 +0000 Subject: [PATCH 22/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/usecases.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg index 7f10f53a..9546953d 100644 --- a/Material/images/diagrams/usecases.svg +++ b/Material/images/diagrams/usecases.svg @@ -1 +1 @@ -AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinbeziehungAngehörigerEinsichtnahmeDiagnostizierenLeistungserbringungMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseBehandlungOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file +AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieEinbeziehungAngehörigerOrgan- undGewebespendeKontaktAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinsichtnahmeDiagnostizierenLeistungserbringungAllergieund InteloranzenSchwangerschaftMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseBehandlungOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file From 5bd90179d7578f59a3b7f23386caf6f4fa510ad9 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Fri, 1 Mar 2024 17:58:56 +0100 Subject: [PATCH 23/36] update rc with tc3.0.4 --- ...fall_AnmerkungenZuDenMustSupportFeldern.md | 2 +- .../BerichtSubsystem_Interaktionen.md | 2 + ImplementationGuide/markdown/DecisionLog.md | 18 + ...nose_AnmerkungenZuDenMustSupportFeldern.md | 2 +- .../Katalog/CodeSystem_Interaktionen.md | 39 +- .../markdown/Katalog/CodeSystem_Motivation.md | 12 +- ...eruf_AnmerkungenZuDenMustSupportFeldern.md | 4 - ImplementationGuide/markdown/ReleaseNotes.md | 11 + .../ValueSet/ValueSet_Interaktionen.md | 13 +- ...tnis_AnmerkungenZuDenMustSupportFeldern.md | 5 +- .../Versicherungsverhaeltnis_Interaktionen.md | 7 - README.md | 2 +- Resources/fsh-generated/fsh-index.json | 402 ++++++++++++++++++ Resources/fsh-generated/fsh-index.txt | 51 +++ ...nt-ISiKCapabilityStatementBasisServer.json | 102 +---- .../Coverage-CoverageGesetzlich.json | 14 - ...ructureDefinition-ISiKAbrechnungsfall.json | 3 +- ...ion-ISiKKontaktGesundheitseinrichtung.json | 3 + ...finition-ISiKPersonImGesundheitsberuf.json | 10 +- ...SiKVersicherungsverhaeltnisGesetzlich.json | 92 ---- Resources/input/fsh/ISiKAbrechnungsfall.fsh | 4 +- .../ISiKCapabilityStatementBasisServer.fsh | 28 +- .../fsh/ISiKKontaktGesundheitseinrichtung.fsh | 3 + .../fsh/ISiKPersonImGesundheitsberuf.fsh | 5 +- ...ISiKVersicherungsverhaeltnisGesetzlich.fsh | 22 - 25 files changed, 536 insertions(+), 320 deletions(-) create mode 100644 Resources/fsh-generated/fsh-index.json create mode 100644 Resources/fsh-generated/fsh-index.txt diff --git a/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_AnmerkungenZuDenMustSupportFeldern.md index 0048e909..c525a091 100644 --- a/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_AnmerkungenZuDenMustSupportFeldern.md +++ b/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_AnmerkungenZuDenMustSupportFeldern.md @@ -6,7 +6,7 @@ ### `Account.identifier` -**Bedeutung:** Der Account muss die Aufnahmenummer des dazugehörigen Encounters enthalten. +**Bedeutung:** Der Account muss die Abrechnungsnummer des referenzierenden Kontaktes (Encounter) enthalten. Dies entspricht dem Wert des Elements Encounter.account.identifier. ### `Account.status` diff --git a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md index 04e2bcc1..bcc26cbb 100644 --- a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md +++ b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md @@ -19,6 +19,8 @@ Unterscheidungshinweis: Informationen zu Interaktionen mit Dokument-Binaries fin ### Verarbeitung des Dokumentes +**Hinweis:** Die nachfolgenden Regeln für die Verarbeitung eines Dokumentes gelten nur für Document-Bundles die an den oben genannten Endpunkt gesendet werden. Weitere ISiK-Module können Regeln für die Verarbeitung von anderen Bundle-Typen (z.B. 'transaction') aufstellen. + In der aktuellen Ausbaustufe von ISiK MUSS ein empfangenes Dokument in folgenden Schritten verarbeitet werden: 1. Extraktion der Patient-Ressource aus dem Bundle und Herstellung des Patientenbezuges anhand eines eindeutigen Identifiers ('Patient.identifier') oder ähnlich identifizieren Merkmalen diff --git a/ImplementationGuide/markdown/DecisionLog.md b/ImplementationGuide/markdown/DecisionLog.md index e5ab113a..3f82d9dd 100644 --- a/ImplementationGuide/markdown/DecisionLog.md +++ b/ImplementationGuide/markdown/DecisionLog.md @@ -1,5 +1,23 @@ # Decision Log + +Datum 27.02. +* Problem: Die MUSS-Anforderungen im Kontext von ISIKKatalog scheinen zu umfassend zu sein. +* Lösung: Schwächung der Anforderungen für das Profil als ganzes: + * Ressource ISIKKatalog als optional kennzeichnen (im Capability Statement). Alle anderen Suchparameter entfernen - genauso für IG. Nur für diese bleiben Test-Cases (optional) erhalten. + * Nur die Suchparameter "_id" Und "url" sind MUSS-Anforderungen (auch nur, wenn die Ressource optional unterstützt wird), da ein bekanntes Codesystem abrufbar sein sollte, wenn die Ressource an sich unterstützt wird. + *Anmerkungen und MUST-SUpport Felder bleiben unberührt (SOLL). + +---- +Version Technical Correction 3.0.4 + +* Problem: In der [Extension Abrechnungsart](http://fhir.de/StructureDefinition/ExtensionAbrechnungsDiagnoseProzedur) ist eine eindeutige Zuweisung zwischen Use und Referenz nicht möglich aufgrund der Kardinalität von Use - (vergleiche ANFISK-206) + * Option zur Lösung: + * Die Extension sollte in ISiK auf 0..* gesetzt werden + * In den Basisprofilen sollte die Extension angepasst werden, sodass Use auf 0..1 gesetzt wird + * ggf. erneute Prüfung der Codes unter "Use" prüfen + + ---- Version: Technical Correction 3.0.2 diff --git a/ImplementationGuide/markdown/Diagnose/Diagnose_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/Diagnose/Diagnose_AnmerkungenZuDenMustSupportFeldern.md index 8fdc5ae3..72cd0382 100644 --- a/ImplementationGuide/markdown/Diagnose/Diagnose_AnmerkungenZuDenMustSupportFeldern.md +++ b/ImplementationGuide/markdown/Diagnose/Diagnose_AnmerkungenZuDenMustSupportFeldern.md @@ -45,7 +45,7 @@ Die Freitextdiagnose darf nur alleinstehend angegeben werden, solange keine kodi **Hinweise:** -Eine Verlinkung der Referenz auf den dazugehörigen Kontakt SOLLTE auf die Ebene des Einrichtungskontaktes erfolgen, falls die Kontaktebene (Encounter.type) kodiert wird. +Eine Verlinkung der Referenz auf den dazugehörigen Kontakt SOLL auf die Ebene des Abteilungskontaktes (entsprechend ISiKKontaktGesundheitseinrichtung) erfolgen. Bei der Auswahl des Kontaktes ist zu beachten, dass mehrere Encounter-Ressourcen mit identischen Aufnahmenummer-Identifiern existieren können (Abbildung Vor- und nachstationäre Kontakte). ### `Condition.recordedDate` diff --git a/ImplementationGuide/markdown/Katalog/CodeSystem_Interaktionen.md b/ImplementationGuide/markdown/Katalog/CodeSystem_Interaktionen.md index 4196437a..bec9df1b 100644 --- a/ImplementationGuide/markdown/Katalog/CodeSystem_Interaktionen.md +++ b/ImplementationGuide/markdown/Katalog/CodeSystem_Interaktionen.md @@ -1,10 +1,10 @@ ### Interaktionen -Für die Ressource CodeSystem MUSS die REST-Interaktion "READ" implementiert werden. +Für die Ressource CodeSystem MUSS die REST-Interaktion "READ" implementiert werden, falls die Resource CodeSystem umgesetzt wird. Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Kombination: -1. Der Suchparameter "_id" MUSS unterstützt werden: +1. Der Suchparameter "_id" MUSS unterstützt werden, falls die Resource CodeSystem umgesetzt wird: Beispiele: @@ -12,7 +12,7 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). -1. Der Suchparameter "url" MUSS unterstützt werden: +1. Der Suchparameter "url" MUSS unterstützt werden, falls die Resource CodeSystem umgesetzt wird: Beispiele: @@ -20,37 +20,4 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "CodeSystem.url" finden sich in der [FHIR-Basisspezifikation - Abschnitt "uri"](https://www.hl7.org/fhir/R4/search.html#uri). -1. Der Suchparameter "name" MUSS unterstützt werden: - - Beispiele: - - ```GET [base]/CodeSystem?name=TestCodeSystem``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "CodeSystem.name" finden sich in der [FHIR-Basisspezifikation - Abschnitt "String Search"](https://hl7.org/fhir/R4/search.html#string). - -1. Der Suchparameter "status" MUSS unterstützt werden: - - Beispiele: - - ```GET [base]/CodeSystem?status=active``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "CodeSystem.status" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search""](https://hl7.org/fhir/R4/search.html#token). - - -1. Der Suchparameter "version" MUSS unterstützt werden: - - Beispiele: - - ```GET [base]/CodeSystem?version=1.0.0``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "CodeSystem.version" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). - -1. Der Suchparameter "content-mode" MUSS unterstützt werden: - - Beispiele: - - ```GET [base]/CodeSystem?content-mode=complete``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "CodeSystem.content" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). - --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Katalog/CodeSystem_Motivation.md b/ImplementationGuide/markdown/Katalog/CodeSystem_Motivation.md index bdabb341..21465881 100644 --- a/ImplementationGuide/markdown/Katalog/CodeSystem_Motivation.md +++ b/ImplementationGuide/markdown/Katalog/CodeSystem_Motivation.md @@ -1,6 +1,16 @@ ### Motivation -ISiK erlaubt in diversen Kontexten die Erweiterung der Kodierung durch Krankenhaus- / Systeminterne Kodierungen. +#### Katalog +ISiK erlaubt in diversen Kontexten die Erweiterung der Kodierung durch Krankenhaus-/Systeminterne Kodierungen. Das Profil ISiKKatalog (CodeSystem) als Profil erlaubt die Repräsentation der dazugehörigen Codes und Displaywerte. + Eine maschinenlesbare Repräsentation dieser Kodierungen erlaubt es Clients dazugehörige Anzeigetext und Definitionen zu verarbeiten. +Ein Codesystem eignet sich auch dazu, auf dessen Basis definierte [ValueSets zu expandieren](https://hl7.org/fhir/R4/valueset-operation-expand.html). +Da ISiKValueSet expandierte Valuesets vorsieht, ist eine dynamische Expansion in der Regel nicht erforderlich. +Darüber hinausgehend ist ein Use Case im Kontext der Katalogabfrage folgender: Ein Client möchte eine Expansion neu generieren (z.B. mit anderen Expansionen-Parametern), um das ValueSet beispielsweise in einer anderen Sprache auszugeben. + +#### Normativer Status und Bestätigung + +Dieses Profil MUSS im Rahmen der Bestätigung NICHT unterstützt werden. Falls das Profil unterstützt werden soll, MÜSSEN die hier definierten Festlegungen greifen (auch im Bestätigungsverfahren). + --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_AnmerkungenZuDenMustSupportFeldern.md index 03c0f301..a3eb1989 100644 --- a/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_AnmerkungenZuDenMustSupportFeldern.md +++ b/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_AnmerkungenZuDenMustSupportFeldern.md @@ -28,8 +28,4 @@ Während die Deutschen Basisprofile hier die Abkürzung LANR verwenden, ist im K **Bedeutung:** Geburtsdatum. Ist das Geburtsdatum des Arztes bekannt, MUSS es bereitgestellt werden. -### `Practitioner.qualification` - -**Bedeutung:** Ärztliche Qualifikation(en). Es MÜSSEN die Qualifikationen des Arztes bereitgestellt werden, um nach Ärzten einer Qualifikation zu suchen oder sie bspw. in Dokumenten anzuzeigen. - --- diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 5a91bccf..4a99483e 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -4,6 +4,17 @@ Im Rahmen der ISiK-Veröffentlichungen wird das [Semantic Versioning](https://se Die erste Ziffer X bezeichnet ein Major-Release und regelt die Gültigkeit von Releases. Die dritte Ziffer Y (Release x.0.y) bezeichnet eine technische Korrektur und versioniert kleinere Änderungen (Packages) während eines Jahres, z. B. 1.0.1. +Version: 3.0.4 + +Datum: 1.3.2024 + +* Entfernen der Festlegungen zum .identifier in ISiKVersicherungsverhaeltnisGesetzlich: https://github.com/gematik/spec-ISiK-Basismodul/pull/362 +* Korrektur der Anforderung zur Encounter-Kontaktebene: https://github.com/gematik/spec-ISiK-Basismodul/pull/363 +* Hinweis zur Nutzung des Suchparameter "context-type-value" hinzugefügt: https://github.com/gematik/spec-ISiK-Basismodul/pull/367 +* Änderung der Anforderung zu KANN für Profil ISIKKatalog: https://github.com/gematik/spec-ISiK-Basismodul/pull/367 +* Lockerung für Extension Kardinalität in Account zu ..* und hinzufügen einer Beschreibung: https://github.com/gematik/spec-ISiK-Basismodul/pull/366 + + ---- Version: 3.0.3 diff --git a/ImplementationGuide/markdown/ValueSet/ValueSet_Interaktionen.md b/ImplementationGuide/markdown/ValueSet/ValueSet_Interaktionen.md index 25450180..86a258b2 100644 --- a/ImplementationGuide/markdown/ValueSet/ValueSet_Interaktionen.md +++ b/ImplementationGuide/markdown/ValueSet/ValueSet_Interaktionen.md @@ -51,6 +51,17 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko ```GET [base]/ValueSet?context-type-value=http://terminology.hl7.org/CodeSystem/usage-context-type|focus$http://hl7.org/fhir/resource-types|Encounter``` + + Mit dieser Abfrage können hausinterne Kataloge anhand des Ressource-Typs ermittelt werden. Diese Informationen sind u.a. relevant im Kontext von: + - Hausinternen Prozeduren/Diagnosen-Codes + - Kodierung von Encounter-Informationen (z.B. Wahlleistungen, Orttypen) + + Use Cases im Zusammenhang: + + (A) Zur Konfigurationszeit können passende ValueSets von einem Server spezifisch für einen Ressourcentyp abgerufen und vorbereitend auf eine Systemintegration begutachtet bzw. in Client-Systeme eingebunden werden. In diesem Sinne wird die Abfrage im Kontext der [Terminvereinbarung durch einen Termin-Requestor genutzt](https://simplifier.net/guide/isik-terminplanung-v3/ImplementationGuide-markdown-Datenobjekte-Operations?version=current). + + (B) Zur Laufzeit können spezifische ValueSets synchronisiert bzw. direkt in die Eingabemasken von Clients eingebunden werden. + Anwendungshinweise: Weitere Informationen zur Suche nach "CodeSystem.useContext" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Composite Search Parameters"](https://www.hl7.org/fhir/R4/search.html#composite). ---- \ No newline at end of file +--- diff --git a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_AnmerkungenZuDenMustSupportFeldern.md index 52f20ff6..d849a75d 100644 --- a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_AnmerkungenZuDenMustSupportFeldern.md +++ b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_AnmerkungenZuDenMustSupportFeldern.md @@ -2,10 +2,9 @@ #### Das Profil ISiKVersicherungsverhaeltnisGesetzlich -### `Coverage.identifier:KrankenversichertenID` +### `Coverage.identifier` -**Bedeutung:** Der unveränderliche, 10-stellige Teil der Krankenversichertennummer zur Identifikation des Versicherten, die Krankenversicherten-ID. -**Hinweise:** Dieser identifier ist zur eindeutigen Identifikation des gesetzlich Versicherten nötig, in den von diesem Profil unterstützten Anwendungsszenarien, siehe [Beschreibung der Deutschen Basisprofile](https://ig.fhir.de/basisprofile-de/1.2.0/GesetzlicheKrankenversichertennummer10-stelligeKVID-Identifier.html). +**Hinweise:** Grundsätzlich ist zu beachten, dass das Versicherungsverhältnis für die gesetzliche Versicherung durch die 30-stellige KVNR identifiziert wird. Die 10-stellige KVNR ist hingegen ein Identifier für das Datenobjekt Patient. Siehe {{pagelink:ImplementationGuide/markdown/Patient_Profil.md, text:Datenobjekt - Patient}}. Es wird in ISiK davon ausgegangen, dass die 30-stellige KVNR nicht in bestätigungrelevanten Systemen geführt wird, sodass diese nicht als zuverlässiger Identifier für das Versicherungsverhältnis verwendbar ist. Bei einer Suche nach einem Versicherungsverhältnis SOLLTE dieses per Chaining auf das Datenobjekt Patient ermittelt werden. ### `Coverage.status` diff --git a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md index 057b8246..6281f544 100644 --- a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md +++ b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Interaktionen.md @@ -14,13 +14,6 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://hl7.org/fhir/R4/search.html#all). -2. Der Suchparameter "identifier" zur Suche nach einer Krankenversicherten-ID MUSS unterstützt werden: - - Beispiele: - - ```GET [base]/Coverage?identifier=http://fhir.de/CodeSystem/identifier-type-de-basis|0123456789``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "Coverage.identifier" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). 3. Der Suchparameter "status" MUSS unterstützt werden: diff --git a/README.md b/README.md index 4379fea8..3d0f9f93 100644 --- a/README.md +++ b/README.md @@ -42,4 +42,4 @@ Gematik may remove published results temporarily or permanently from the place o **Team Data – ISiK and ISiP** For issues and requests please refer to: -https://service.gematik.de/servicedesk/customer/portal/16 \ No newline at end of file +https://service.gematik.de/servicedesk/customer/portal/16 diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json new file mode 100644 index 00000000..400a4ab7 --- /dev/null +++ b/Resources/fsh-generated/fsh-index.json @@ -0,0 +1,402 @@ +[ + { + "outputFile": "Account-AbrechnungsfallAmbulant.json", + "fshName": "AbrechnungsfallAmbulant", + "fshType": "Instance", + "fshFile": "ISiKAbrechnungsfall.fsh", + "startLine": 43, + "endLine": 55 + }, + { + "outputFile": "Binary-Binary-JPEG-Example-short.json", + "fshName": "Binary-JPEG-Example-short", + "fshType": "Instance", + "fshFile": "ISiKBinary.fsh", + "startLine": 17, + "endLine": 21 + }, + { + "outputFile": "Binary-Binary-JPEG-Example.json", + "fshName": "Binary-JPEG-Example", + "fshType": "Instance", + "fshFile": "ISiKBinary.fsh", + "startLine": 30, + "endLine": 34 + }, + { + "outputFile": "Binary-Binary-PDF-Example-short.json", + "fshName": "Binary-PDF-Example-short", + "fshType": "Instance", + "fshFile": "ISiKBinary.fsh", + "startLine": 23, + "endLine": 28 + }, + { + "outputFile": "Binary-Binary-PDF-Example.json", + "fshName": "Binary-PDF-Example", + "fshType": "Instance", + "fshFile": "ISiKBinary.fsh", + "startLine": 36, + "endLine": 41 + }, + { + "outputFile": "Bundle-ISiKBundle-Example.json", + "fshName": "ISiKBundle-Example", + "fshType": "Instance", + "fshFile": "ISiKBerichtBundle.fsh", + "startLine": 24, + "endLine": 38 + }, + { + "outputFile": "CapabilityStatement-ISiKCapabilityStatementBasisServer.json", + "fshName": "ISiKCapabilityStatementBasisServer", + "fshType": "Instance", + "fshFile": "ISiKCapabilityStatement.fsh", + "startLine": 1, + "endLine": 668 + }, + { + "outputFile": "CodeSystem-CodeSystemExample.json", + "fshName": "CodeSystemExample", + "fshType": "Instance", + "fshFile": "ISiKCodeSystem.fsh", + "startLine": 17, + "endLine": 27 + }, + { + "outputFile": "Composition-composition-blutdruck.json", + "fshName": "composition-blutdruck", + "fshType": "Instance", + "fshFile": "ISiKBerichtSubSysteme.fsh", + "startLine": 66, + "endLine": 83 + }, + { + "outputFile": "Condition-BehandlungsDiagnoseFreitext.json", + "fshName": "BehandlungsDiagnoseFreitext", + "fshType": "Instance", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 123, + "endLine": 130 + }, + { + "outputFile": "Condition-Example-condition-ausrufezeichen-primaer.json", + "fshName": "Example-condition-ausrufezeichen-primaer", + "fshType": "Instance", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 57, + "endLine": 66 + }, + { + "outputFile": "Condition-Example-condition-ausrufezeichen-sekundaer.json", + "fshName": "Example-condition-ausrufezeichen-sekundaer", + "fshType": "Instance", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 68, + "endLine": 81 + }, + { + "outputFile": "Condition-Example-condition-kreuz-stern-primaer.json", + "fshName": "Example-condition-kreuz-stern-primaer", + "fshType": "Instance", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 83, + "endLine": 95 + }, + { + "outputFile": "Condition-Example-condition-kreuz-stern-sekundaer.json", + "fshName": "Example-condition-kreuz-stern-sekundaer", + "fshType": "Instance", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 97, + "endLine": 110 + }, + { + "outputFile": "Condition-MittelgradigeIntelligenzminderung.json", + "fshName": "MittelgradigeIntelligenzminderung", + "fshType": "Instance", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 112, + "endLine": 121 + }, + { + "outputFile": "Coverage-CoverageGesetzlich.json", + "fshName": "CoverageGesetzlich", + "fshType": "Instance", + "fshFile": "ISiKVersicherungsverhaeltnisGesetzlich.fsh", + "startLine": 43, + "endLine": 52 + }, + { + "outputFile": "Coverage-CoveragePrivat.json", + "fshName": "CoveragePrivat", + "fshType": "Instance", + "fshFile": "ISiKVersicherungsverhaeltnisSelbstzahler.fsh", + "startLine": 16, + "endLine": 22 + }, + { + "outputFile": "Encounter-Fachabteilungskontakt.json", + "fshName": "Fachabteilungskontakt", + "fshType": "Instance", + "fshFile": "ISiKKontaktGesundheitseinrichtung.fsh", + "startLine": 136, + "endLine": 173 + }, + { + "outputFile": "Encounter-FachabteilungskontaktMinimal.json", + "fshName": "FachabteilungskontaktMinimal", + "fshType": "Instance", + "fshFile": "ISiKBerichtBundle.fsh", + "startLine": 55, + "endLine": 68 + }, + { + "outputFile": "Patient-PatientinMusterfrau.json", + "fshName": "PatientinMusterfrau", + "fshType": "Instance", + "fshFile": "ISiKPatient.fsh", + "startLine": 108, + "endLine": 158 + }, + { + "outputFile": "Patient-PatientinMusterfrauMinimal.json", + "fshName": "PatientinMusterfrauMinimal", + "fshType": "Instance", + "fshFile": "ISiKBerichtBundle.fsh", + "startLine": 41, + "endLine": 53 + }, + { + "outputFile": "Practitioner-PractitionerWalterArzt.json", + "fshName": "PractitionerWalterArzt", + "fshType": "Instance", + "fshFile": "ISiKPersonImGesundheitsberuf.fsh", + "startLine": 93, + "endLine": 128 + }, + { + "outputFile": "Procedure-Appendektomie.json", + "fshName": "Appendektomie", + "fshType": "Instance", + "fshFile": "ISiKProzedur.fsh", + "startLine": 52, + "endLine": 65 + }, + { + "outputFile": "RelatedPerson-ISiKAngehoerigerMustermann.json", + "fshName": "ISiKAngehoerigerMustermann", + "fshType": "Instance", + "fshFile": "ISiKAngehoeriger.fsh", + "startLine": 47, + "endLine": 57 + }, + { + "outputFile": "SearchParameter-Encounter-date-start.json", + "fshName": "Encounter-date-start", + "fshType": "Instance", + "fshFile": "ISiKKontaktGesundheitseinrichtung.fsh", + "startLine": 216, + "endLine": 234 + }, + { + "outputFile": "SearchParameter-Encounter-end-date.json", + "fshName": "Encounter-end-date", + "fshType": "Instance", + "fshFile": "ISiKKontaktGesundheitseinrichtung.fsh", + "startLine": 236, + "endLine": 254 + }, + { + "outputFile": "StructureDefinition-ISiKAbrechnungsfall.json", + "fshName": "ISiKAbrechnungsfall", + "fshType": "Profile", + "fshFile": "ISiKAbrechnungsfall.fsh", + "startLine": 1, + "endLine": 29 + }, + { + "outputFile": "StructureDefinition-ISiKAngehoeriger.json", + "fshName": "ISiKAngehoeriger", + "fshType": "Profile", + "fshFile": "ISiKAngehoeriger.fsh", + "startLine": 1, + "endLine": 45 + }, + { + "outputFile": "StructureDefinition-ISiKBerichtBundle.json", + "fshName": "ISiKBerichtBundle", + "fshType": "Profile", + "fshFile": "ISiKBerichtBundle.fsh", + "startLine": 1, + "endLine": 22 + }, + { + "outputFile": "StructureDefinition-ISiKBerichtSubSysteme.json", + "fshName": "ISiKBerichtSubSysteme", + "fshType": "Profile", + "fshFile": "ISiKBerichtSubSysteme.fsh", + "startLine": 1, + "endLine": 64 + }, + { + "outputFile": "StructureDefinition-ISiKBinary.json", + "fshName": "ISiKBinary", + "fshType": "Profile", + "fshFile": "ISiKBinary.fsh", + "startLine": 1, + "endLine": 15 + }, + { + "outputFile": "StructureDefinition-ISiKCodeSystem.json", + "fshName": "ISiKCodeSystem", + "fshType": "Profile", + "fshFile": "ISiKCodeSystem.fsh", + "startLine": 1, + "endLine": 15 + }, + { + "outputFile": "StructureDefinition-ISiKDiagnose.json", + "fshName": "ISiKDiagnose", + "fshType": "Profile", + "fshFile": "ISiKDiagnose.fsh", + "startLine": 1, + "endLine": 55 + }, + { + "outputFile": "StructureDefinition-ISiKKontaktGesundheitseinrichtung.json", + "fshName": "ISiKKontaktGesundheitseinrichtung", + "fshType": "Profile", + "fshFile": "ISiKKontaktGesundheitseinrichtung.fsh", + "startLine": 1, + "endLine": 120 + }, + { + "outputFile": "StructureDefinition-ISiKPatient.json", + "fshName": "ISiKPatient", + "fshType": "Profile", + "fshFile": "ISiKPatient.fsh", + "startLine": 1, + "endLine": 106 + }, + { + "outputFile": "StructureDefinition-ISiKPersonImGesundheitsberuf.json", + "fshName": "ISiKPersonImGesundheitsberuf", + "fshType": "Profile", + "fshFile": "ISiKPersonImGesundheitsberuf.fsh", + "startLine": 1, + "endLine": 89 + }, + { + "outputFile": "StructureDefinition-ISiKProzedur.json", + "fshName": "ISiKProzedur", + "fshType": "Profile", + "fshFile": "ISiKProzedur.fsh", + "startLine": 1, + "endLine": 50 + }, + { + "outputFile": "StructureDefinition-ISiKValueSet.json", + "fshName": "ISiKValueSet", + "fshType": "Profile", + "fshFile": "ISiKValueSet.fsh", + "startLine": 1, + "endLine": 22 + }, + { + "outputFile": "StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json", + "fshName": "ISiKVersicherungsverhaeltnisGesetzlich", + "fshType": "Profile", + "fshFile": "ISiKVersicherungsverhaeltnisGesetzlich.fsh", + "startLine": 1, + "endLine": 41 + }, + { + "outputFile": "StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json", + "fshName": "ISiKVersicherungsverhaeltnisSelbstzahler", + "fshType": "Profile", + "fshFile": "ISiKVersicherungsverhaeltnisSelbstzahler.fsh", + "startLine": 1, + "endLine": 14 + }, + { + "outputFile": "StructureDefinition-PlannedEndDate.json", + "fshName": "PlannedEndDate", + "fshType": "Extension", + "fshFile": "ISiKKontaktGesundheitseinrichtung.fsh", + "startLine": 130, + "endLine": 134 + }, + { + "outputFile": "StructureDefinition-PlannedStartDate.json", + "fshName": "PlannedStartDate", + "fshType": "Extension", + "fshFile": "ISiKKontaktGesundheitseinrichtung.fsh", + "startLine": 123, + "endLine": 127 + }, + { + "outputFile": "StructureDefinition-identifier-abrechnungsnummer.json", + "fshName": "IdentifierAbrechnungsnummer", + "fshType": "Profile", + "fshFile": "ISiKAbrechnungsfall.fsh", + "startLine": 31, + "endLine": 41 + }, + { + "outputFile": "ValueSet-DiagnosesSCT.json", + "fshName": "DiagnosesSCT", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 1, + "endLine": 8 + }, + { + "outputFile": "ValueSet-ISiKAccountIdentifierType.json", + "fshName": "ISiKAccountIdentifierType", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 42, + "endLine": 46 + }, + { + "outputFile": "ValueSet-ISiKAccountType.json", + "fshName": "ISiKAccountType", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 35, + "endLine": 40 + }, + { + "outputFile": "ValueSet-ISiKLocationPhysicalType.json", + "fshName": "ISiKLocationPhysicalType", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 27, + "endLine": 32 + }, + { + "outputFile": "ValueSet-ISiKValueSetExample.json", + "fshName": "ISiKValueSetExample", + "fshType": "Instance", + "fshFile": "ISiKValueSet.fsh", + "startLine": 24, + "endLine": 37 + }, + { + "outputFile": "ValueSet-ProzedurenCodesSCT.json", + "fshName": "ProzedurenCodesSCT", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 10, + "endLine": 14 + }, + { + "outputFile": "ValueSet-ProzedurenKategorieSCT.json", + "fshName": "ProzedurenKategorieSCT", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 16, + "endLine": 25 + } +] diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt new file mode 100644 index 00000000..2e5147fc --- /dev/null +++ b/Resources/fsh-generated/fsh-index.txt @@ -0,0 +1,51 @@ +Output File Name Type FSH File Lines +Account-AbrechnungsfallAmbulant.json AbrechnungsfallAmbulant Instance ISiKAbrechnungsfall.fsh 43 - 55 +Binary-Binary-JPEG-Example-short.json Binary-JPEG-Example-short Instance ISiKBinary.fsh 17 - 21 +Binary-Binary-JPEG-Example.json Binary-JPEG-Example Instance ISiKBinary.fsh 30 - 34 +Binary-Binary-PDF-Example-short.json Binary-PDF-Example-short Instance ISiKBinary.fsh 23 - 28 +Binary-Binary-PDF-Example.json Binary-PDF-Example Instance ISiKBinary.fsh 36 - 41 +Bundle-ISiKBundle-Example.json ISiKBundle-Example Instance ISiKBerichtBundle.fsh 24 - 38 +CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatement.fsh 1 - 668 +CodeSystem-CodeSystemExample.json CodeSystemExample Instance ISiKCodeSystem.fsh 17 - 27 +Composition-composition-blutdruck.json composition-blutdruck Instance ISiKBerichtSubSysteme.fsh 66 - 83 +Condition-BehandlungsDiagnoseFreitext.json BehandlungsDiagnoseFreitext Instance ISiKDiagnose.fsh 123 - 130 +Condition-Example-condition-ausrufezeichen-primaer.json Example-condition-ausrufezeichen-primaer Instance ISiKDiagnose.fsh 57 - 66 +Condition-Example-condition-ausrufezeichen-sekundaer.json Example-condition-ausrufezeichen-sekundaer Instance ISiKDiagnose.fsh 68 - 81 +Condition-Example-condition-kreuz-stern-primaer.json Example-condition-kreuz-stern-primaer Instance ISiKDiagnose.fsh 83 - 95 +Condition-Example-condition-kreuz-stern-sekundaer.json Example-condition-kreuz-stern-sekundaer Instance ISiKDiagnose.fsh 97 - 110 +Condition-MittelgradigeIntelligenzminderung.json MittelgradigeIntelligenzminderung Instance ISiKDiagnose.fsh 112 - 121 +Coverage-CoverageGesetzlich.json CoverageGesetzlich Instance ISiKVersicherungsverhaeltnisGesetzlich.fsh 43 - 52 +Coverage-CoveragePrivat.json CoveragePrivat Instance ISiKVersicherungsverhaeltnisSelbstzahler.fsh 16 - 22 +Encounter-Fachabteilungskontakt.json Fachabteilungskontakt Instance ISiKKontaktGesundheitseinrichtung.fsh 136 - 173 +Encounter-FachabteilungskontaktMinimal.json FachabteilungskontaktMinimal Instance ISiKBerichtBundle.fsh 55 - 68 +Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 108 - 158 +Patient-PatientinMusterfrauMinimal.json PatientinMusterfrauMinimal Instance ISiKBerichtBundle.fsh 41 - 53 +Practitioner-PractitionerWalterArzt.json PractitionerWalterArzt Instance ISiKPersonImGesundheitsberuf.fsh 93 - 128 +Procedure-Appendektomie.json Appendektomie Instance ISiKProzedur.fsh 52 - 65 +RelatedPerson-ISiKAngehoerigerMustermann.json ISiKAngehoerigerMustermann Instance ISiKAngehoeriger.fsh 47 - 57 +SearchParameter-Encounter-date-start.json Encounter-date-start Instance ISiKKontaktGesundheitseinrichtung.fsh 216 - 234 +SearchParameter-Encounter-end-date.json Encounter-end-date Instance ISiKKontaktGesundheitseinrichtung.fsh 236 - 254 +StructureDefinition-ISiKAbrechnungsfall.json ISiKAbrechnungsfall Profile ISiKAbrechnungsfall.fsh 1 - 29 +StructureDefinition-ISiKAngehoeriger.json ISiKAngehoeriger Profile ISiKAngehoeriger.fsh 1 - 45 +StructureDefinition-ISiKBerichtBundle.json ISiKBerichtBundle Profile ISiKBerichtBundle.fsh 1 - 22 +StructureDefinition-ISiKBerichtSubSysteme.json ISiKBerichtSubSysteme Profile ISiKBerichtSubSysteme.fsh 1 - 64 +StructureDefinition-ISiKBinary.json ISiKBinary Profile ISiKBinary.fsh 1 - 15 +StructureDefinition-ISiKCodeSystem.json ISiKCodeSystem Profile ISiKCodeSystem.fsh 1 - 15 +StructureDefinition-ISiKDiagnose.json ISiKDiagnose Profile ISiKDiagnose.fsh 1 - 55 +StructureDefinition-ISiKKontaktGesundheitseinrichtung.json ISiKKontaktGesundheitseinrichtung Profile ISiKKontaktGesundheitseinrichtung.fsh 1 - 120 +StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 106 +StructureDefinition-ISiKPersonImGesundheitsberuf.json ISiKPersonImGesundheitsberuf Profile ISiKPersonImGesundheitsberuf.fsh 1 - 89 +StructureDefinition-ISiKProzedur.json ISiKProzedur Profile ISiKProzedur.fsh 1 - 50 +StructureDefinition-ISiKValueSet.json ISiKValueSet Profile ISiKValueSet.fsh 1 - 22 +StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVersicherungsverhaeltnisGesetzlich Profile ISiKVersicherungsverhaeltnisGesetzlich.fsh 1 - 41 +StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 +StructureDefinition-PlannedEndDate.json PlannedEndDate Extension ISiKKontaktGesundheitseinrichtung.fsh 130 - 134 +StructureDefinition-PlannedStartDate.json PlannedStartDate Extension ISiKKontaktGesundheitseinrichtung.fsh 123 - 127 +StructureDefinition-identifier-abrechnungsnummer.json IdentifierAbrechnungsnummer Profile ISiKAbrechnungsfall.fsh 31 - 41 +ValueSet-DiagnosesSCT.json DiagnosesSCT ValueSet valueSets.fsh 1 - 8 +ValueSet-ISiKAccountIdentifierType.json ISiKAccountIdentifierType ValueSet valueSets.fsh 42 - 46 +ValueSet-ISiKAccountType.json ISiKAccountType ValueSet valueSets.fsh 35 - 40 +ValueSet-ISiKLocationPhysicalType.json ISiKLocationPhysicalType ValueSet valueSets.fsh 27 - 32 +ValueSet-ISiKValueSetExample.json ISiKValueSetExample Instance ISiKValueSet.fsh 24 - 37 +ValueSet-ProzedurenCodesSCT.json ProzedurenCodesSCT ValueSet valueSets.fsh 10 - 14 +ValueSet-ProzedurenKategorieSCT.json ProzedurenKategorieSCT ValueSet valueSets.fsh 16 - 25 \ No newline at end of file diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json index 9d6044aa..34a29935 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json @@ -1460,107 +1460,7 @@ "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "type": "CodeSystem", - "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem" - ], - "interaction": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "read" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "search-type" - } - ], - "searchParam": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "_id", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-id", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "url", - "definition": "http://hl7.org/fhir/SearchParameter/conformance-url", - "type": "uri" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "name", - "definition": "http://hl7.org/fhir/SearchParameter/conformance-name", - "type": "string" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "status", - "definition": "http://hl7.org/fhir/SearchParameter/conformance-status", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "version", - "definition": "http://hl7.org/fhir/SearchParameter/conformance-version", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "content-mode", - "definition": "http://hl7.org/fhir/SearchParameter/CodeSystem-content-mode", - "type": "token" - } - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } ], "type": "ValueSet", diff --git a/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json b/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json index e6290bf5..afb738de 100644 --- a/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json +++ b/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json @@ -31,20 +31,6 @@ "display": "Eine Gesundheitskasse" } ], - "identifier": [ - { - "type": { - "coding": [ - { - "code": "GKV", - "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" - } - ] - }, - "system": "http://fhir.de/sid/gkv/kvid-10", - "value": "A234567890" - } - ], "status": "active", "beneficiary": { "reference": "Patient/PatientinMusterfrau" diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json index 06b24f85..d26ef44f 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json @@ -43,8 +43,9 @@ "id": "Account.extension:AbrechnungsDiagnoseProzedur", "path": "Account.extension", "sliceName": "AbrechnungsDiagnoseProzedur", + "comment": "In dieser Extension SOLL das 'Use' Element nur einfach verwendet werden, um eine eindeutige Zuweisung (1 zu N) gegenüber dem Element 'Referenz' zu gewährleisten.", "min": 0, - "max": "1", + "max": "*", "type": [ { "code": "Extension", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json index 00434a15..8bf558ad 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json @@ -601,6 +601,7 @@ { "id": "Encounter.location:Zimmer.physicalType", "path": "Encounter.location.physicalType", + "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", "min": 1, "patternCodeableConcept": { "coding": [ @@ -640,6 +641,7 @@ { "id": "Encounter.location:Bett.physicalType", "path": "Encounter.location.physicalType", + "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", "min": 1, "patternCodeableConcept": { "coding": [ @@ -679,6 +681,7 @@ { "id": "Encounter.location:Station.physicalType", "path": "Encounter.location.physicalType", + "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", "min": 1, "patternCodeableConcept": { "coding": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json index 7a9cd3c5..6c32d2db 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json @@ -489,13 +489,9 @@ "mustSupport": true }, { - "id": "Practitioner.qualification.code.coding", - "path": "Practitioner.qualification.code.coding", - "min": 1, - "binding": { - "strength": "preferred", - "valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_Base_Practitioner_Speciality" - } + "id": "Practitioner.qualification.code", + "path": "Practitioner.qualification.code", + "comment": "Zur Kodierung der Qualifikation ist das entsprechende [ValueSet der KBV](https://fhir.kbv.de/ValueSet/KBV_VS_Base_Practitioner_Speciality) zu empfehlen." } ] } diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json index f2b3e92b..68a728c8 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json @@ -22,98 +22,6 @@ "path": "Coverage", "definition": "Kostenübernahme im Rahmen eines gesetzlichen Versicherungsverhältnisses in Deutschland." }, - { - "id": "Coverage.identifier", - "path": "Coverage.identifier", - "slicing": { - "discriminator": [ - { - "type": "pattern", - "path": "$this" - } - ], - "rules": "open" - }, - "short": "Primärer Identifier der Versicherung", - "definition": "Ein gesetzliches Versicherungsverhältnis sollte stets durch die eindeutige 30-stellige Versicherungsnummer identifiziert werden. Ist diese nicht bekannt, so kann die 10-stellige KrankenversichertenID stattdessen verwendet werden. Diese ist aber nur in Verbindung mit dem Payor eindeutig einem Versicherungsverhältnis zuordenbar", - "mustSupport": true - }, - { - "id": "Coverage.identifier:Versicherungsnummer", - "path": "Coverage.identifier", - "sliceName": "Versicherungsnummer", - "min": 0, - "max": "1", - "patternIdentifier": { - "type": { - "coding": [ - { - "code": "GKV", - "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" - } - ] - }, - "system": "http://fhir.de/sid/gkv/kvnr-30" - } - }, - { - "id": "Coverage.identifier:Versicherungsnummer.type", - "path": "Coverage.identifier.type", - "min": 1, - "mustSupport": true - }, - { - "id": "Coverage.identifier:Versicherungsnummer.system", - "path": "Coverage.identifier.system", - "mustSupport": true - }, - { - "id": "Coverage.identifier:Versicherungsnummer.value", - "path": "Coverage.identifier.value", - "mustSupport": true - }, - { - "id": "Coverage.identifier:KrankenversichertenID", - "path": "Coverage.identifier", - "sliceName": "KrankenversichertenID", - "min": 0, - "max": "1", - "type": [ - { - "code": "Identifier", - "profile": [ - "http://fhir.de/StructureDefinition/identifier-kvid-10" - ] - } - ], - "patternIdentifier": { - "type": { - "coding": [ - { - "code": "GKV", - "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" - } - ] - }, - "system": "http://fhir.de/sid/gkv/kvid-10" - } - }, - { - "id": "Coverage.identifier:KrankenversichertenID.type", - "path": "Coverage.identifier.type", - "min": 1, - "mustSupport": true - }, - { - "id": "Coverage.identifier:KrankenversichertenID.system", - "path": "Coverage.identifier.system", - "mustSupport": true - }, - { - "id": "Coverage.identifier:KrankenversichertenID.value", - "path": "Coverage.identifier.value", - "mustSupport": true - }, { "id": "Coverage.status", "path": "Coverage.status", diff --git a/Resources/input/fsh/ISiKAbrechnungsfall.fsh b/Resources/input/fsh/ISiKAbrechnungsfall.fsh index 79a951d8..4e9ad87e 100644 --- a/Resources/input/fsh/ISiKAbrechnungsfall.fsh +++ b/Resources/input/fsh/ISiKAbrechnungsfall.fsh @@ -4,7 +4,9 @@ Id: ISiKAbrechnungsfall Description: "Dieses Profil beschreibt die Gruppierung von medizinischen Leistungen in ISiK-Szenarien" * insert Meta * extension MS -* extension contains http://fhir.de/StructureDefinition/ExtensionAbrechnungsDiagnoseProzedur named AbrechnungsDiagnoseProzedur 0..1 MS +* extension contains http://fhir.de/StructureDefinition/ExtensionAbrechnungsDiagnoseProzedur named AbrechnungsDiagnoseProzedur 0..* MS +* extension[AbrechnungsDiagnoseProzedur] + * ^comment = "In dieser Extension SOLL das 'Use' Element nur einfach verwendet werden, um eine eindeutige Zuweisung (1 zu N) gegenüber dem Element 'Referenz' zu gewährleisten." * id MS * identifier 1.. MS * ^slicing.discriminator.type = #pattern diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index d52b3fe4..7b2bbc69 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -615,14 +615,14 @@ Usage: #definition * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Practitioner-name" * rest.resource[=].searchParam[=].type = #string * rest.resource[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].extension.valueCode = #SHALL +* rest.resource[=].extension.valueCode = #MAY * rest.resource[=].type = #CodeSystem * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation -* rest.resource[=].interaction[=].extension.valueCode = #SHALL +* rest.resource[=].interaction[=].extension.valueCode = #MAY * rest.resource[=].interaction[=].code = #read * rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].interaction[=].extension.valueCode = #SHALL +* rest.resource[=].interaction[=].extension.valueCode = #MAY * rest.resource[=].interaction[=].code = #search-type * rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #SHALL @@ -634,28 +634,6 @@ Usage: #definition * rest.resource[=].searchParam[=].name = "url" * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/conformance-url" * rest.resource[=].searchParam[=].type = #uri -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -* rest.resource[=].searchParam[=].name = "name" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/conformance-name" -* rest.resource[=].searchParam[=].type = #string -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -* rest.resource[=].searchParam[=].name = "status" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/conformance-status" -* rest.resource[=].searchParam[=].type = #token -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -* rest.resource[=].searchParam[=].name = "version" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/conformance-version" -* rest.resource[=].searchParam[=].type = #token -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -* rest.resource[=].searchParam[=].name = "content-mode" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/CodeSystem-content-mode" -* rest.resource[=].searchParam[=].type = #token -* rest.resource[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #ValueSet * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation diff --git a/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh b/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh index fcdd22ba..7d93a862 100644 --- a/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh +++ b/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh @@ -100,18 +100,21 @@ Description: "Dieses Profil ermöglicht die Herstellung eines Fallbezuges welche * display 1.. MS * physicalType 1..1 MS * physicalType = http://terminology.hl7.org/CodeSystem/location-physical-type#wa + * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" * location[Zimmer] * location 1.. MS * identifier 1.. MS * display 1.. MS * physicalType 1..1 MS * physicalType = http://terminology.hl7.org/CodeSystem/location-physical-type#ro + * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" * location[Bett] * location 1.. MS * identifier 1.. MS * display 1.. MS * physicalType 1..1 MS * physicalType = http://terminology.hl7.org/CodeSystem/location-physical-type#bd + * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" * serviceProvider MS * identifier 1.. MS * display 1.. MS diff --git a/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh b/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh index b6cea8bf..0fed9a12 100644 --- a/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh +++ b/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh @@ -86,8 +86,9 @@ Description: "Dieses Profil ermöglicht die Nutzung von in Gesundheitsberufen t * ^slicing.discriminator.path = "url" * ^slicing.rules = #open * birthDate.extension contains $data-absent-reason named Data-Absent-Reason 0..1 MS -* qualification.code.coding 1.. -* qualification.code.coding from $KBV_VS_Base_Practitioner_Speciality (preferred) +* qualification.code ^comment = "Zur Kodierung der Qualifikation ist das entsprechende [ValueSet der KBV](https://fhir.kbv.de/ValueSet/KBV_VS_Base_Practitioner_Speciality) zu empfehlen." + + Instance: PractitionerWalterArzt InstanceOf: ISiKPersonImGesundheitsberuf diff --git a/Resources/input/fsh/ISiKVersicherungsverhaeltnisGesetzlich.fsh b/Resources/input/fsh/ISiKVersicherungsverhaeltnisGesetzlich.fsh index 7bd80e28..cfb69769 100644 --- a/Resources/input/fsh/ISiKVersicherungsverhaeltnisGesetzlich.fsh +++ b/Resources/input/fsh/ISiKVersicherungsverhaeltnisGesetzlich.fsh @@ -4,25 +4,6 @@ Id: ISiKVersicherungsverhaeltnisGesetzlich Description: "Dieses Profil ermöglicht die Darstellung eines gesetzlichen Versicherungsverhältnisses in ISiK Szenarien." * insert Meta * . ^definition = "Kostenübernahme im Rahmen eines gesetzlichen Versicherungsverhältnisses in Deutschland." -* identifier MS - * ^slicing.discriminator.type = #pattern - * ^slicing.discriminator.path = "$this" - * ^slicing.rules = #open - * ^short = "Primärer Identifier der Versicherung" - * ^definition = "Ein gesetzliches Versicherungsverhältnis sollte stets durch die eindeutige 30-stellige Versicherungsnummer identifiziert werden. Ist diese nicht bekannt, so kann die 10-stellige KrankenversichertenID stattdessen verwendet werden. Diese ist aber nur in Verbindung mit dem Payor eindeutig einem Versicherungsverhältnis zuordenbar" -* identifier contains Versicherungsnummer ..1 and KrankenversichertenID ..1 -* identifier[Versicherungsnummer] - * ^patternIdentifier.type = $identifier-type-de-basis#GKV - * ^patternIdentifier.system = $kvnr30 - * type 1.. MS - * system MS - * value MS -* identifier[KrankenversichertenID] only IdentifierKvid10 - * ^patternIdentifier.type = $identifier-type-de-basis#GKV - * ^patternIdentifier.system = $kvid10 - * type 1.. MS - * system MS - * value MS * status MS * type MS * ^comment = "28.07.2017 (zulip): TC Konsens bzgl. Verwendung eines eigenen ValueSets anstelle des im Standrad definierten preferred bindings, da die dortigen Codes nicht passen." @@ -62,9 +43,6 @@ Description: "Dieses Profil ermöglicht die Darstellung eines gesetzlichen Versi Instance: CoverageGesetzlich InstanceOf: ISiKVersicherungsverhaeltnisGesetzlich Usage: #example -* identifier[KrankenversichertenID] - * system = "http://fhir.de/sid/gkv/kvid-10" - * value = "A234567890" * status = #active * type = $versicherungsart-de-basis#GKV * beneficiary = Reference(PatientinMusterfrau) From 4e337a5c8c4cc88d9d14bdf8f7b831ba172f2fd3 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Fri, 1 Mar 2024 18:34:57 +0100 Subject: [PATCH 24/36] progress besser IG resourcedigaram --- .../AllergieUnvertraeglichkeit_Includes.md | 4 - .../images/src/plantuml/resourcediagram.puml | 89 +++++++++++++++++++ .../ISiKCapabilityStatementBasisServer.fsh | 9 +- 3 files changed, 92 insertions(+), 10 deletions(-) diff --git a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md index 6ffe214d..db89761d 100644 --- a/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md +++ b/ImplementationGuide/markdown/AllergieUnvertraeglichkeit/AllergieUnvertraeglichkeit_Includes.md @@ -17,8 +17,4 @@ Die verketteten Suchparameter des Profils ```AllergyIntolerance``` hängen wie f Um einem Kontakt eindeutig als Ursprung einer {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Allergie-Diagnose}} zuordnen zu können. -1. Der verkette Suchparameter ```Encounter:diagnosis``` unterstüzt den Anwendungsfall: - - Um bei einer vorliegenden {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Allergie-Diagnose}} eines Patienten alle zugehörigen {{pagelink:ImplementationGuide/markdown/Zusammenfassung/UseCases.md, text:Kontakte}} zurodnen zu können. - --- \ No newline at end of file diff --git a/Material/images/src/plantuml/resourcediagram.puml b/Material/images/src/plantuml/resourcediagram.puml index c21673d3..a89e88c1 100644 --- a/Material/images/src/plantuml/resourcediagram.puml +++ b/Material/images/src/plantuml/resourcediagram.puml @@ -88,6 +88,69 @@ namespace ISiK_Basis { |_ country } + class ISiKAllergieUnvertraeglichkeit <<(P,#8DA5C4)>>{ + clinicalStatus : **AllergyIntoleranceClinicalStatusCodes** + |_ coding + |_ system + |_ code + verificationStatus : **AllergyIntoleranceVerificationStatusCodes** + |_ coding + |_ system + |_ code + type : **AllergyIntoleranceType** + category : **AllergyIntoleranceCategory** + criticality : **AllergyIntoleranceCriticality** + code + |_ coding + |_ snomed-ct + |_ system : http://snomed.info/sct + |_ code + |_ display + |_ ask : http://fhir.de/StructureDefinition/**CodingASK** + |_ system + |_ code + |_ display + |_ atc : http://fhir.de/StructureDefinition/**CodingATC** + |_ system + |_ version + |_ code + |_ display + |_ text + patient : Reference (**Patient**) + encounter : Reference (**Encounter**) + onset[x] + |_ onsetDateTime + |_ onsetAge + |_ onsetString + recordedDate : dateTime + recorder : Reference (**Practitioner** | PractitionerRole | \n**Patient** | RelatedPerson) + |_ reference + |_ display + asserter : Reference (**Patient** | **RelatedPerson** | \n**Practitioner** | PractitionerRole) + |_ reference + |_ display + note : Annotation + |_ author[x] + |_ reference + |_ display + |_ time + |_ text + reaction + |_ manifestation + |_ coding + |_ snomed-ct + |_ system : http://snomed.info/sct + |_ code + |_ text + |_ severity + |_ exposureRoute + |_ coding + |_ snomed-ct + |_ system : http://snomed.info/sct + |_ code + |_ text + } + namespace ValueSets { class ISiKAccountIdentifierType <<(V,#8DA5C4)>>{ Dokumentation auf Simplifier @@ -154,6 +217,32 @@ namespace HL7_FHIR_R4_Core { Includes all codes from the underlying code System [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/81890 Account Status]] } + + class AllergyIntoleranceCriticality <<(V,#8DA5C4)>>{ + Dokumentation auf HL7 Org + [[https://hl7.org/fhir/R4/valueset-allergy-intolerance-criticality.html Allergy Intolerance Criticality]] + Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-allergy-intolerance-criticality.html Code System of Criticality]] + } + class AllergyIntoleranceVerificationStatus <<(V,#8DA5C4)>>{ + Dokumentation auf HL7 Org + [[https://www.hl7.org/fhir/R4/valueset-allergyintolerance-verification.html Allergy Intolerance Verification Status]] + Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://www.hl7.org/fhir/R4/codesystem-allergyintolerance-verification.html Code System of Verification Status]] + } + class AllergyIntoleranceClinicalStatus <<(V,#8DA5C4)>>{ + Dokumentation auf HL7 Org + [[https://www.hl7.org/fhir/R4/valueset-allergyintolerance-clinical.html Allergy Intolerance Clinical Status]] + Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://www.hl7.org/fhir/R4/codesystem-allergyintolerance-clinical.html Code System of Clinical Status]] + } + class ReactionEventSeverity <<(V,#8DA5C4)>> { + Dokumentation auf HL7 Org + [[https://hl7.org/fhir/R4/valueset-reaction-event-severity.html Reaction Eventu Severity]] + Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-reaction-event-severity.html Code System of Severity]] + } + class ObservationCategory <<(V,#8DA5C4)>>{ + Dokumentation auf HL7 Org + [[https://hl7.org/fhir/R4/valueset-observation-category.html Observation Category]] + Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-observation-category.html Code System of Observation Category]] + } } namespace ISiK_Basis { diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index 7b2bbc69..9386c39f 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -343,7 +343,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #AllergyIntolerance -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -391,11 +391,8 @@ Usage: #definition * rest.resource[=].searchInclude[+] = "AllergyIntolerance:encounter" * rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation * rest.resource[=].searchInclude[=].extension.valueCode = #SHALL -* rest.resource[=].searchRevInclude = "Encounter:diagnosis" -* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL -* rest.resource[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].extension.valueCode = #SHALL +//* rest.resource[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Procedure * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" From 8f315a5d4dd1668c382bf6e447ef07e58a177c53 Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Fri, 1 Mar 2024 17:36:14 +0000 Subject: [PATCH 25/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/resourcediagram.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Material/images/diagrams/resourcediagram.svg b/Material/images/diagrams/resourcediagram.svg index 4ffe2886..0c370f21 100644 --- a/Material/images/diagrams/resourcediagram.svg +++ b/Material/images/diagrams/resourcediagram.svg @@ -1 +1 @@ -ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryBasismodul_Stufe_4Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount Status \ No newline at end of file +ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryISiKAllergieUnvertraeglichkeitAllergyIntoleranceclinicalStatus :AllergyIntoleranceClinicalStatusCodescodingsystemcodeverificationStatus :AllergyIntoleranceVerificationStatusCodescodingsystemcodetype :AllergyIntoleranceTypecategory :AllergyIntoleranceCategorycriticality :AllergyIntoleranceCriticalitycodecodingsnomed-ctsystem : http://snomed.info/sctcodedisplayask : http://fhir.de/StructureDefinition/CodingASKsystemcodedisplayatc : http://fhir.de/StructureDefinition/CodingATCsystemversioncodedisplaytextpatient : Reference (Patient)encounter : Reference (Encounter)onset[x]onsetDateTimeonsetAgeonsetStringrecordedDate : dateTimerecorder : Reference (Practitioner| PractitionerRole |Patient| RelatedPerson)referencedisplayasserter: Reference (Patient|RelatedPerson|Practitioner| PractitionerRole)referencedisplaynote : Annotationauthor[x]referencedisplaytimetextreactionmanifestationcodingsnomed-ctsystem : http://snomed.info/sctcodetextseverityexposureRoutecodingsnomed-ctsystem : http://snomed.info/sctcodetextBasismodul_Stufe_4Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount StatusAllergyIntoleranceCriticalityValueSetDokumentation auf HL7 OrgAllergy Intolerance CriticalityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of CriticalityAllergyIntoleranceVerificationStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Verification StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Verification StatusAllergyIntoleranceClinicalStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Clinical StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Clinical StatusReactionEventSeverityValueSetDokumentation auf HL7 OrgReaction Eventu SeverityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of SeverityObservationCategoryValueSetDokumentation auf HL7 OrgObservation CategoryDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Observation Category \ No newline at end of file From c6a8e49d238417369d317fb719b8f50ccfba2acd Mon Sep 17 00:00:00 2001 From: Patrick Werner Date: Tue, 5 Mar 2024 10:53:30 +0100 Subject: [PATCH 26/36] feat: added Schwangerschaftsstatus, SS-ET, Raucher & Alkoholabususstatus (#378) * feat: added Schwangerschaftsstatus, SS-ET, Raucher & Alkoholabususstatus * try fix for Capability Statement * typo fixes & .category added --------- Co-authored-by: Max Theilig --- Resources/fsh-generated/fsh-index.json | 100 ++++++++++++- Resources/fsh-generated/fsh-index.txt | 114 ++++++++------- ...Observation-ISiKAlkoholAbususBeispiel.json | 24 +++ ...Observation-ISiKRaucherStatusBeispiel.json | 24 +++ ...ftErwarteterEntbindungsterminBeispiel.json | 24 +++ ...on-ISiKSchwangerschaftsstatusBeispiel.json | 36 +++++ ...StructureDefinition-ISiKAlkoholAbusus.json | 125 ++++++++++++++++ ...StructureDefinition-ISiKRaucherStatus.json | 125 ++++++++++++++++ ...ngerschaftErwarteterEntbindungstermin.json | 108 ++++++++++++++ ...Definition-ISiKSchwangerschaftsstatus.json | 138 ++++++++++++++++++ .../ValueSet-SchwangerschaftEtMethodeVS.json | 33 +++++ .../ValueSet-SchwangerschaftsstatusVS.json | 33 +++++ .../ISiKCapabilityStatementBasisServer.fsh | 96 ++++++------ .../fsh/ISiKLebenszustandOberservations.fsh | 97 ++++++++++++ Resources/input/fsh/valueSets.fsh | 15 ++ 15 files changed, 991 insertions(+), 101 deletions(-) create mode 100644 Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json create mode 100644 Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json create mode 100644 Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json create mode 100644 Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json create mode 100644 Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json create mode 100644 Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json create mode 100644 Resources/input/fsh/ISiKLebenszustandOberservations.fsh diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json index 400a4ab7..8272c857 100644 --- a/Resources/fsh-generated/fsh-index.json +++ b/Resources/fsh-generated/fsh-index.json @@ -7,6 +7,14 @@ "startLine": 43, "endLine": 55 }, + { + "outputFile": "AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json", + "fshName": "ISiKAllergieUnvertraeglichkeitBeispiel1", + "fshType": "Instance", + "fshFile": "ISiKAllergieUnvertraeglichkeit.fsh", + "startLine": 107, + "endLine": 128 + }, { "outputFile": "Binary-Binary-JPEG-Example-short.json", "fshName": "Binary-JPEG-Example-short", @@ -51,9 +59,9 @@ "outputFile": "CapabilityStatement-ISiKCapabilityStatementBasisServer.json", "fshName": "ISiKCapabilityStatementBasisServer", "fshType": "Instance", - "fshFile": "ISiKCapabilityStatement.fsh", + "fshFile": "ISiKCapabilityStatementBasisServer.fsh", "startLine": 1, - "endLine": 668 + "endLine": 683 }, { "outputFile": "CodeSystem-CodeSystemExample.json", @@ -151,6 +159,38 @@ "startLine": 55, "endLine": 68 }, + { + "outputFile": "Observation-ISiKAlkoholAbususBeispiel.json", + "fshName": "ISiKAlkoholAbususBeispiel", + "fshType": "Instance", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 66, + "endLine": 74 + }, + { + "outputFile": "Observation-ISiKRaucherStatusBeispiel.json", + "fshName": "ISiKRaucherStatusBeispiel", + "fshType": "Instance", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 89, + "endLine": 97 + }, + { + "outputFile": "Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json", + "fshName": "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel", + "fshType": "Instance", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 43, + "endLine": 51 + }, + { + "outputFile": "Observation-ISiKSchwangerschaftsstatusBeispiel.json", + "fshName": "ISiKSchwangerschaftsstatusBeispiel", + "fshType": "Instance", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 20, + "endLine": 28 + }, { "outputFile": "Patient-PatientinMusterfrau.json", "fshName": "PatientinMusterfrau", @@ -215,6 +255,22 @@ "startLine": 1, "endLine": 29 }, + { + "outputFile": "StructureDefinition-ISiKAlkoholAbusus.json", + "fshName": "ISiKAlkoholAbusus", + "fshType": "Profile", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 53, + "endLine": 64 + }, + { + "outputFile": "StructureDefinition-ISiKAllergieUnvertraeglichkeit.json", + "fshName": "ISiKAllergieUnvertraeglichkeit", + "fshType": "Profile", + "fshFile": "ISiKAllergieUnvertraeglichkeit.fsh", + "startLine": 1, + "endLine": 105 + }, { "outputFile": "StructureDefinition-ISiKAngehoeriger.json", "fshName": "ISiKAngehoeriger", @@ -295,6 +351,30 @@ "startLine": 1, "endLine": 50 }, + { + "outputFile": "StructureDefinition-ISiKRaucherStatus.json", + "fshName": "ISiKRaucherStatus", + "fshType": "Profile", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 76, + "endLine": 87 + }, + { + "outputFile": "StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json", + "fshName": "ISiKSchwangerschaftErwarteterEntbindungstermin", + "fshType": "Profile", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 30, + "endLine": 41 + }, + { + "outputFile": "StructureDefinition-ISiKSchwangerschaftsstatus.json", + "fshName": "ISiKSchwangerschaftsstatus", + "fshType": "Profile", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 1, + "endLine": 18 + }, { "outputFile": "StructureDefinition-ISiKValueSet.json", "fshName": "ISiKValueSet", @@ -398,5 +478,21 @@ "fshFile": "valueSets.fsh", "startLine": 16, "endLine": 25 + }, + { + "outputFile": "ValueSet-SchwangerschaftEtMethodeVS.json", + "fshName": "SchwangerschaftEtMethodeVS", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 56, + "endLine": 62 + }, + { + "outputFile": "ValueSet-SchwangerschaftsstatusVS.json", + "fshName": "SchwangerschaftsstatusVS", + "fshType": "ValueSet", + "fshFile": "valueSets.fsh", + "startLine": 48, + "endLine": 54 } ] diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt index 2e5147fc..efbd8c9a 100644 --- a/Resources/fsh-generated/fsh-index.txt +++ b/Resources/fsh-generated/fsh-index.txt @@ -1,51 +1,63 @@ -Output File Name Type FSH File Lines -Account-AbrechnungsfallAmbulant.json AbrechnungsfallAmbulant Instance ISiKAbrechnungsfall.fsh 43 - 55 -Binary-Binary-JPEG-Example-short.json Binary-JPEG-Example-short Instance ISiKBinary.fsh 17 - 21 -Binary-Binary-JPEG-Example.json Binary-JPEG-Example Instance ISiKBinary.fsh 30 - 34 -Binary-Binary-PDF-Example-short.json Binary-PDF-Example-short Instance ISiKBinary.fsh 23 - 28 -Binary-Binary-PDF-Example.json Binary-PDF-Example Instance ISiKBinary.fsh 36 - 41 -Bundle-ISiKBundle-Example.json ISiKBundle-Example Instance ISiKBerichtBundle.fsh 24 - 38 -CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatement.fsh 1 - 668 -CodeSystem-CodeSystemExample.json CodeSystemExample Instance ISiKCodeSystem.fsh 17 - 27 -Composition-composition-blutdruck.json composition-blutdruck Instance ISiKBerichtSubSysteme.fsh 66 - 83 -Condition-BehandlungsDiagnoseFreitext.json BehandlungsDiagnoseFreitext Instance ISiKDiagnose.fsh 123 - 130 -Condition-Example-condition-ausrufezeichen-primaer.json Example-condition-ausrufezeichen-primaer Instance ISiKDiagnose.fsh 57 - 66 -Condition-Example-condition-ausrufezeichen-sekundaer.json Example-condition-ausrufezeichen-sekundaer Instance ISiKDiagnose.fsh 68 - 81 -Condition-Example-condition-kreuz-stern-primaer.json Example-condition-kreuz-stern-primaer Instance ISiKDiagnose.fsh 83 - 95 -Condition-Example-condition-kreuz-stern-sekundaer.json Example-condition-kreuz-stern-sekundaer Instance ISiKDiagnose.fsh 97 - 110 -Condition-MittelgradigeIntelligenzminderung.json MittelgradigeIntelligenzminderung Instance ISiKDiagnose.fsh 112 - 121 -Coverage-CoverageGesetzlich.json CoverageGesetzlich Instance ISiKVersicherungsverhaeltnisGesetzlich.fsh 43 - 52 -Coverage-CoveragePrivat.json CoveragePrivat Instance ISiKVersicherungsverhaeltnisSelbstzahler.fsh 16 - 22 -Encounter-Fachabteilungskontakt.json Fachabteilungskontakt Instance ISiKKontaktGesundheitseinrichtung.fsh 136 - 173 -Encounter-FachabteilungskontaktMinimal.json FachabteilungskontaktMinimal Instance ISiKBerichtBundle.fsh 55 - 68 -Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 108 - 158 -Patient-PatientinMusterfrauMinimal.json PatientinMusterfrauMinimal Instance ISiKBerichtBundle.fsh 41 - 53 -Practitioner-PractitionerWalterArzt.json PractitionerWalterArzt Instance ISiKPersonImGesundheitsberuf.fsh 93 - 128 -Procedure-Appendektomie.json Appendektomie Instance ISiKProzedur.fsh 52 - 65 -RelatedPerson-ISiKAngehoerigerMustermann.json ISiKAngehoerigerMustermann Instance ISiKAngehoeriger.fsh 47 - 57 -SearchParameter-Encounter-date-start.json Encounter-date-start Instance ISiKKontaktGesundheitseinrichtung.fsh 216 - 234 -SearchParameter-Encounter-end-date.json Encounter-end-date Instance ISiKKontaktGesundheitseinrichtung.fsh 236 - 254 -StructureDefinition-ISiKAbrechnungsfall.json ISiKAbrechnungsfall Profile ISiKAbrechnungsfall.fsh 1 - 29 -StructureDefinition-ISiKAngehoeriger.json ISiKAngehoeriger Profile ISiKAngehoeriger.fsh 1 - 45 -StructureDefinition-ISiKBerichtBundle.json ISiKBerichtBundle Profile ISiKBerichtBundle.fsh 1 - 22 -StructureDefinition-ISiKBerichtSubSysteme.json ISiKBerichtSubSysteme Profile ISiKBerichtSubSysteme.fsh 1 - 64 -StructureDefinition-ISiKBinary.json ISiKBinary Profile ISiKBinary.fsh 1 - 15 -StructureDefinition-ISiKCodeSystem.json ISiKCodeSystem Profile ISiKCodeSystem.fsh 1 - 15 -StructureDefinition-ISiKDiagnose.json ISiKDiagnose Profile ISiKDiagnose.fsh 1 - 55 -StructureDefinition-ISiKKontaktGesundheitseinrichtung.json ISiKKontaktGesundheitseinrichtung Profile ISiKKontaktGesundheitseinrichtung.fsh 1 - 120 -StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 106 -StructureDefinition-ISiKPersonImGesundheitsberuf.json ISiKPersonImGesundheitsberuf Profile ISiKPersonImGesundheitsberuf.fsh 1 - 89 -StructureDefinition-ISiKProzedur.json ISiKProzedur Profile ISiKProzedur.fsh 1 - 50 -StructureDefinition-ISiKValueSet.json ISiKValueSet Profile ISiKValueSet.fsh 1 - 22 -StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVersicherungsverhaeltnisGesetzlich Profile ISiKVersicherungsverhaeltnisGesetzlich.fsh 1 - 41 -StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 -StructureDefinition-PlannedEndDate.json PlannedEndDate Extension ISiKKontaktGesundheitseinrichtung.fsh 130 - 134 -StructureDefinition-PlannedStartDate.json PlannedStartDate Extension ISiKKontaktGesundheitseinrichtung.fsh 123 - 127 -StructureDefinition-identifier-abrechnungsnummer.json IdentifierAbrechnungsnummer Profile ISiKAbrechnungsfall.fsh 31 - 41 -ValueSet-DiagnosesSCT.json DiagnosesSCT ValueSet valueSets.fsh 1 - 8 -ValueSet-ISiKAccountIdentifierType.json ISiKAccountIdentifierType ValueSet valueSets.fsh 42 - 46 -ValueSet-ISiKAccountType.json ISiKAccountType ValueSet valueSets.fsh 35 - 40 -ValueSet-ISiKLocationPhysicalType.json ISiKLocationPhysicalType ValueSet valueSets.fsh 27 - 32 -ValueSet-ISiKValueSetExample.json ISiKValueSetExample Instance ISiKValueSet.fsh 24 - 37 -ValueSet-ProzedurenCodesSCT.json ProzedurenCodesSCT ValueSet valueSets.fsh 10 - 14 -ValueSet-ProzedurenKategorieSCT.json ProzedurenKategorieSCT ValueSet valueSets.fsh 16 - 25 \ No newline at end of file +Output File Name Type FSH File Lines +Account-AbrechnungsfallAmbulant.json AbrechnungsfallAmbulant Instance ISiKAbrechnungsfall.fsh 43 - 55 +AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json ISiKAllergieUnvertraeglichkeitBeispiel1 Instance ISiKAllergieUnvertraeglichkeit.fsh 107 - 128 +Binary-Binary-JPEG-Example-short.json Binary-JPEG-Example-short Instance ISiKBinary.fsh 17 - 21 +Binary-Binary-JPEG-Example.json Binary-JPEG-Example Instance ISiKBinary.fsh 30 - 34 +Binary-Binary-PDF-Example-short.json Binary-PDF-Example-short Instance ISiKBinary.fsh 23 - 28 +Binary-Binary-PDF-Example.json Binary-PDF-Example Instance ISiKBinary.fsh 36 - 41 +Bundle-ISiKBundle-Example.json ISiKBundle-Example Instance ISiKBerichtBundle.fsh 24 - 38 +CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatementBasisServer.fsh 1 - 683 +CodeSystem-CodeSystemExample.json CodeSystemExample Instance ISiKCodeSystem.fsh 17 - 27 +Composition-composition-blutdruck.json composition-blutdruck Instance ISiKBerichtSubSysteme.fsh 66 - 83 +Condition-BehandlungsDiagnoseFreitext.json BehandlungsDiagnoseFreitext Instance ISiKDiagnose.fsh 123 - 130 +Condition-Example-condition-ausrufezeichen-primaer.json Example-condition-ausrufezeichen-primaer Instance ISiKDiagnose.fsh 57 - 66 +Condition-Example-condition-ausrufezeichen-sekundaer.json Example-condition-ausrufezeichen-sekundaer Instance ISiKDiagnose.fsh 68 - 81 +Condition-Example-condition-kreuz-stern-primaer.json Example-condition-kreuz-stern-primaer Instance ISiKDiagnose.fsh 83 - 95 +Condition-Example-condition-kreuz-stern-sekundaer.json Example-condition-kreuz-stern-sekundaer Instance ISiKDiagnose.fsh 97 - 110 +Condition-MittelgradigeIntelligenzminderung.json MittelgradigeIntelligenzminderung Instance ISiKDiagnose.fsh 112 - 121 +Coverage-CoverageGesetzlich.json CoverageGesetzlich Instance ISiKVersicherungsverhaeltnisGesetzlich.fsh 43 - 52 +Coverage-CoveragePrivat.json CoveragePrivat Instance ISiKVersicherungsverhaeltnisSelbstzahler.fsh 16 - 22 +Encounter-Fachabteilungskontakt.json Fachabteilungskontakt Instance ISiKKontaktGesundheitseinrichtung.fsh 136 - 173 +Encounter-FachabteilungskontaktMinimal.json FachabteilungskontaktMinimal Instance ISiKBerichtBundle.fsh 55 - 68 +Observation-ISiKAlkoholAbususBeispiel.json ISiKAlkoholAbususBeispiel Instance ISiKLebenszustandOberservations.fsh 66 - 74 +Observation-ISiKRaucherStatusBeispiel.json ISiKRaucherStatusBeispiel Instance ISiKLebenszustandOberservations.fsh 89 - 97 +Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel Instance ISiKLebenszustandOberservations.fsh 43 - 51 +Observation-ISiKSchwangerschaftsstatusBeispiel.json ISiKSchwangerschaftsstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 20 - 28 +Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 108 - 158 +Patient-PatientinMusterfrauMinimal.json PatientinMusterfrauMinimal Instance ISiKBerichtBundle.fsh 41 - 53 +Practitioner-PractitionerWalterArzt.json PractitionerWalterArzt Instance ISiKPersonImGesundheitsberuf.fsh 93 - 128 +Procedure-Appendektomie.json Appendektomie Instance ISiKProzedur.fsh 52 - 65 +RelatedPerson-ISiKAngehoerigerMustermann.json ISiKAngehoerigerMustermann Instance ISiKAngehoeriger.fsh 47 - 57 +SearchParameter-Encounter-date-start.json Encounter-date-start Instance ISiKKontaktGesundheitseinrichtung.fsh 216 - 234 +SearchParameter-Encounter-end-date.json Encounter-end-date Instance ISiKKontaktGesundheitseinrichtung.fsh 236 - 254 +StructureDefinition-ISiKAbrechnungsfall.json ISiKAbrechnungsfall Profile ISiKAbrechnungsfall.fsh 1 - 29 +StructureDefinition-ISiKAlkoholAbusus.json ISiKAlkoholAbusus Profile ISiKLebenszustandOberservations.fsh 53 - 64 +StructureDefinition-ISiKAllergieUnvertraeglichkeit.json ISiKAllergieUnvertraeglichkeit Profile ISiKAllergieUnvertraeglichkeit.fsh 1 - 105 +StructureDefinition-ISiKAngehoeriger.json ISiKAngehoeriger Profile ISiKAngehoeriger.fsh 1 - 45 +StructureDefinition-ISiKBerichtBundle.json ISiKBerichtBundle Profile ISiKBerichtBundle.fsh 1 - 22 +StructureDefinition-ISiKBerichtSubSysteme.json ISiKBerichtSubSysteme Profile ISiKBerichtSubSysteme.fsh 1 - 64 +StructureDefinition-ISiKBinary.json ISiKBinary Profile ISiKBinary.fsh 1 - 15 +StructureDefinition-ISiKCodeSystem.json ISiKCodeSystem Profile ISiKCodeSystem.fsh 1 - 15 +StructureDefinition-ISiKDiagnose.json ISiKDiagnose Profile ISiKDiagnose.fsh 1 - 55 +StructureDefinition-ISiKKontaktGesundheitseinrichtung.json ISiKKontaktGesundheitseinrichtung Profile ISiKKontaktGesundheitseinrichtung.fsh 1 - 120 +StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 106 +StructureDefinition-ISiKPersonImGesundheitsberuf.json ISiKPersonImGesundheitsberuf Profile ISiKPersonImGesundheitsberuf.fsh 1 - 89 +StructureDefinition-ISiKProzedur.json ISiKProzedur Profile ISiKProzedur.fsh 1 - 50 +StructureDefinition-ISiKRaucherStatus.json ISiKRaucherStatus Profile ISiKLebenszustandOberservations.fsh 76 - 87 +StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json ISiKSchwangerschaftErwarteterEntbindungstermin Profile ISiKLebenszustandOberservations.fsh 30 - 41 +StructureDefinition-ISiKSchwangerschaftsstatus.json ISiKSchwangerschaftsstatus Profile ISiKLebenszustandOberservations.fsh 1 - 18 +StructureDefinition-ISiKValueSet.json ISiKValueSet Profile ISiKValueSet.fsh 1 - 22 +StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVersicherungsverhaeltnisGesetzlich Profile ISiKVersicherungsverhaeltnisGesetzlich.fsh 1 - 41 +StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 +StructureDefinition-PlannedEndDate.json PlannedEndDate Extension ISiKKontaktGesundheitseinrichtung.fsh 130 - 134 +StructureDefinition-PlannedStartDate.json PlannedStartDate Extension ISiKKontaktGesundheitseinrichtung.fsh 123 - 127 +StructureDefinition-identifier-abrechnungsnummer.json IdentifierAbrechnungsnummer Profile ISiKAbrechnungsfall.fsh 31 - 41 +ValueSet-DiagnosesSCT.json DiagnosesSCT ValueSet valueSets.fsh 1 - 8 +ValueSet-ISiKAccountIdentifierType.json ISiKAccountIdentifierType ValueSet valueSets.fsh 42 - 46 +ValueSet-ISiKAccountType.json ISiKAccountType ValueSet valueSets.fsh 35 - 40 +ValueSet-ISiKLocationPhysicalType.json ISiKLocationPhysicalType ValueSet valueSets.fsh 27 - 32 +ValueSet-ISiKValueSetExample.json ISiKValueSetExample Instance ISiKValueSet.fsh 24 - 37 +ValueSet-ProzedurenCodesSCT.json ProzedurenCodesSCT ValueSet valueSets.fsh 10 - 14 +ValueSet-ProzedurenKategorieSCT.json ProzedurenKategorieSCT ValueSet valueSets.fsh 16 - 25 +ValueSet-SchwangerschaftEtMethodeVS.json SchwangerschaftEtMethodeVS ValueSet valueSets.fsh 56 - 62 +ValueSet-SchwangerschaftsstatusVS.json SchwangerschaftsstatusVS ValueSet valueSets.fsh 48 - 54 \ No newline at end of file diff --git a/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json new file mode 100644 index 00000000..4497237e --- /dev/null +++ b/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json @@ -0,0 +1,24 @@ +{ + "resourceType": "Observation", + "id": "ISiKAlkoholAbususBeispiel", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus" + ] + }, + "code": { + "coding": [ + { + "code": "15167005", + "system": "http://snomed.info/sct", + "display": "Schädlicher Gebrauch von Alkohol" + } + ] + }, + "status": "final", + "subject": { + "reference": "Patient/PatientinMusterfrau" + }, + "effectiveDateTime": "2024-01-01", + "valueBoolean": false +} diff --git a/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json new file mode 100644 index 00000000..7bc83283 --- /dev/null +++ b/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json @@ -0,0 +1,24 @@ +{ + "resourceType": "Observation", + "id": "ISiKRaucherStatusBeispiel", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus" + ] + }, + "code": { + "coding": [ + { + "code": "77176002", + "system": "http://snomed.info/sct", + "display": "Smoker" + } + ] + }, + "status": "final", + "subject": { + "reference": "Patient/PatientinMusterfrau" + }, + "effectiveDateTime": "2024-01-01", + "valueBoolean": true +} diff --git a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json new file mode 100644 index 00000000..86d691d0 --- /dev/null +++ b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json @@ -0,0 +1,24 @@ +{ + "resourceType": "Observation", + "id": "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin" + ] + }, + "code": { + "coding": [ + { + "code": "11779-6", + "system": "http://loinc.org", + "display": "Delivery date Estimated from last menstrual period" + } + ] + }, + "status": "final", + "subject": { + "reference": "Patient/PatientinMusterfrau" + }, + "effectiveDateTime": "2024-01-01", + "valueDateTime": "2024-08-01" +} diff --git a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json new file mode 100644 index 00000000..bb6d3225 --- /dev/null +++ b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json @@ -0,0 +1,36 @@ +{ + "resourceType": "Observation", + "id": "ISiKSchwangerschaftsstatusBeispiel", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus" + ] + }, + "code": { + "coding": [ + { + "code": "82810-3", + "system": "http://loinc.org" + } + ] + }, + "status": "final", + "subject": { + "reference": "Patient/PatientinMusterfrau" + }, + "effectiveDateTime": "2024-01-01", + "valueCodeableConcept": { + "coding": [ + { + "code": "LA15173-0", + "system": "http://loinc.org", + "display": "Pregnant" + } + ] + }, + "hasMember": [ + { + "reference": "Observation/ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel" + } + ] +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json new file mode 100644 index 00000000..40d72221 --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json @@ -0,0 +1,125 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKAlkoholAbusus", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus", + "version": "4.0.0-rc", + "name": "ISiKAlkoholAbusus", + "title": "ISiK Alkohol Abusus", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Observation.category", + "path": "Observation.category", + "patternCodeableConcept": { + "coding": [ + { + "code": "social-history", + "system": "http://hl7.org/fhir/secondary-finding" + } + ] + } + }, + { + "id": "Observation.code", + "path": "Observation.code", + "patternCodeableConcept": { + "coding": [ + { + "code": "15167005", + "system": "http://snomed.info/sct" + } + ] + }, + "mustSupport": true + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.subject.reference", + "path": "Observation.subject.reference", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "slicing": { + "discriminator": [ + { + "type": "type", + "path": "$this" + } + ], + "ordered": false, + "rules": "open" + }, + "min": 1 + }, + { + "id": "Observation.value[x]:valueBoolean", + "path": "Observation.value[x]", + "sliceName": "valueBoolean", + "min": 1, + "max": "1", + "type": [ + { + "code": "boolean" + } + ], + "mustSupport": true + } + ] + } +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json new file mode 100644 index 00000000..ae42d7b5 --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json @@ -0,0 +1,125 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKRaucherStatus", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus", + "version": "4.0.0-rc", + "name": "ISiKRaucherStatus", + "title": "ISiK Raucherstatus", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Observation.category", + "path": "Observation.category", + "patternCodeableConcept": { + "coding": [ + { + "code": "social-history", + "system": "http://hl7.org/fhir/secondary-finding" + } + ] + } + }, + { + "id": "Observation.code", + "path": "Observation.code", + "patternCodeableConcept": { + "coding": [ + { + "code": "77176002", + "system": "http://snomed.info/sct" + } + ] + }, + "mustSupport": true + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.subject.reference", + "path": "Observation.subject.reference", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "slicing": { + "discriminator": [ + { + "type": "type", + "path": "$this" + } + ], + "ordered": false, + "rules": "open" + }, + "min": 1 + }, + { + "id": "Observation.value[x]:valueBoolean", + "path": "Observation.value[x]", + "sliceName": "valueBoolean", + "min": 1, + "max": "1", + "type": [ + { + "code": "boolean" + } + ], + "mustSupport": true + } + ] + } +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json new file mode 100644 index 00000000..ba28750e --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json @@ -0,0 +1,108 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKSchwangerschaftErwarteterEntbindungstermin", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin", + "version": "4.0.0-rc", + "name": "ISiKSchwangerschaftErwarteterEntbindungstermin", + "title": "ISiK Schwangerschaft - Erwarteter Entbindungstermin", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Observation.code", + "path": "Observation.code", + "mustSupport": true, + "binding": { + "strength": "required", + "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftEtMethodeVS" + } + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.subject.reference", + "path": "Observation.subject.reference", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "slicing": { + "discriminator": [ + { + "type": "type", + "path": "$this" + } + ], + "ordered": false, + "rules": "open" + } + }, + { + "id": "Observation.value[x]:valueDateTime", + "path": "Observation.value[x]", + "sliceName": "valueDateTime", + "min": 0, + "max": "1", + "type": [ + { + "code": "dateTime" + } + ], + "mustSupport": true + } + ] + } +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json new file mode 100644 index 00000000..a5a060b5 --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json @@ -0,0 +1,138 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKSchwangerschaftsstatus", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus", + "version": "4.0.0-rc", + "name": "ISiKSchwangerschaftsstatus", + "title": "ISiK Schwangerschaftsstatus", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "description": "Schwangerschaftsstatus einer Patientin", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Observation.code", + "path": "Observation.code", + "patternCodeableConcept": { + "coding": [ + { + "code": "82810-3", + "system": "http://loinc.org" + } + ] + }, + "mustSupport": true + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.subject.reference", + "path": "Observation.subject.reference", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "slicing": { + "discriminator": [ + { + "type": "type", + "path": "$this" + } + ], + "ordered": false, + "rules": "open" + } + }, + { + "id": "Observation.value[x]:valueCodeableConcept", + "path": "Observation.value[x]", + "sliceName": "valueCodeableConcept", + "min": 0, + "max": "1", + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "binding": { + "strength": "required", + "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftsstatusVS" + } + }, + { + "id": "Observation.hasMember", + "path": "Observation.hasMember", + "short": "Erwartetes Geburtsdatum", + "definition": "Eine Referenz auf die ErwartetesGeburtsdatum Observation", + "type": [ + { + "code": "Reference", + "targetProfile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin" + ] + } + ], + "mustSupport": true + }, + { + "id": "Observation.hasMember.reference", + "path": "Observation.hasMember.reference", + "min": 1, + "mustSupport": true + } + ] + } +} diff --git a/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json new file mode 100644 index 00000000..009e8ac5 --- /dev/null +++ b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json @@ -0,0 +1,33 @@ +{ + "resourceType": "ValueSet", + "status": "draft", + "name": "SchwangerschaftEtMethodeVS", + "id": "SchwangerschaftEtMethodeVS", + "title": "Schwangerschaft Erwarteter Entbindungstermin Methode", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftEtMethodeVS", + "version": "4.0.0-rc", + "experimental": false, + "publisher": "gematik GmbH", + "date": "2024-01-16", + "compose": { + "include": [ + { + "system": "http://loinc.org", + "concept": [ + { + "code": "11778-8", + "display": "Delivery date Estimated" + }, + { + "code": "11779-6", + "display": "Delivery date Estimated from last menstrual period" + }, + { + "code": "11780-4", + "display": "Delivery date Estimated from ovulation date" + } + ] + } + ] + } +} diff --git a/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json new file mode 100644 index 00000000..7ed44299 --- /dev/null +++ b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json @@ -0,0 +1,33 @@ +{ + "resourceType": "ValueSet", + "status": "draft", + "name": "SchwangerschaftsstatusVS", + "id": "SchwangerschaftsstatusVS", + "title": "Schwangerschaftsstatus Valueset", + "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftsstatusVS", + "version": "4.0.0-rc", + "experimental": false, + "publisher": "gematik GmbH", + "date": "2024-01-16", + "compose": { + "include": [ + { + "system": "http://loinc.org", + "concept": [ + { + "code": "LA15173-0", + "display": "Pregnant" + }, + { + "code": "LA26683-5", + "display": "Not pregnant" + }, + { + "code": "LA4489-6", + "display": "Unknown" + } + ] + } + ] + } +} diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index 9386c39f..8fb77321 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -340,59 +340,59 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL -* rest.resource[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].extension.valueCode = #SHALL -* rest.resource[=].type = #AllergyIntolerance -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit" -* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation -* rest.resource[=].interaction[=].extension.valueCode = #SHALL -* rest.resource[=].interaction[=].code = #read -* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].interaction[=].extension.valueCode = #SHALL -* rest.resource[=].interaction[=].code = #search-type -* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -* rest.resource[=].searchParam[=].name = "_id" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id" -* rest.resource[=].searchParam[=].type = #token -//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +//* rest.resource[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].extension.valueCode = #SHALL +//* rest.resource[=].type = #AllergyIntolerance +//* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit" +//* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation +//* rest.resource[=].interaction[=].extension.valueCode = #SHALL +//* rest.resource[=].interaction[=].code = #read +//* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation +//* rest.resource[=].interaction[=].extension.valueCode = #SHALL +//* rest.resource[=].interaction[=].code = #search-type +//* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation //* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -//* rest.resource[=].searchParam[=].name = "clinical-status" -//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-clinical-status" +//* rest.resource[=].searchParam[=].name = "_id" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id" //* rest.resource[=].searchParam[=].type = #token -* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -* rest.resource[=].searchParam[=].name = "patient" -* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-patient" -* rest.resource[=].searchParam[=].type = #reference +////* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +////* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +////* rest.resource[=].searchParam[=].name = "clinical-status" +////* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-clinical-status" +////* rest.resource[=].searchParam[=].type = #token //* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation //* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -//* rest.resource[=].searchParam[=].name = "encounter" -//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-encounter" +//* rest.resource[=].searchParam[=].name = "patient" +//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-patient" //* rest.resource[=].searchParam[=].type = #reference -//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -//* rest.resource[=].searchParam[=].extension.valueCode = #SHALL -//* rest.resource[=].searchParam[=].name = "recorded-date" -//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-recorded-date" -//* rest.resource[=].searchParam[=].type = #date -//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -//* rest.resource[=].searchParam[=].extension.valueCode = #MAY -//* rest.resource[=].searchParam[=].name = "category" -//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-category" -//* rest.resource[=].searchParam[=].type = #token -//* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation -//* rest.resource[=].searchParam[=].extension.valueCode = #MAY -//* rest.resource[=].searchParam[=].name = "criticality" -//* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-criticality" -//* rest.resource[=].searchParam[=].type = #token -* rest.resource[=].searchInclude = "AllergyIntolerance:patient" -* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL -* rest.resource[=].searchInclude[+] = "AllergyIntolerance:encounter" -* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation -* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL -//* rest.resource[+].extension.url = $capabilitystatement-expectation -//* rest.resource[=].extension.valueCode = #SHALL +////* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +////* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +////* rest.resource[=].searchParam[=].name = "encounter" +////* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-encounter" +////* rest.resource[=].searchParam[=].type = #reference +////* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +////* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +////* rest.resource[=].searchParam[=].name = "recorded-date" +////* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-recorded-date" +////* rest.resource[=].searchParam[=].type = #date +////* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +////* rest.resource[=].searchParam[=].extension.valueCode = #MAY +////* rest.resource[=].searchParam[=].name = "category" +////* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-category" +////* rest.resource[=].searchParam[=].type = #token +////* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +////* rest.resource[=].searchParam[=].extension.valueCode = #MAY +////* rest.resource[=].searchParam[=].name = "criticality" +////* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-criticality" +////* rest.resource[=].searchParam[=].type = #token +//* rest.resource[=].searchInclude = "AllergyIntolerance:patient" +//* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL +//* rest.resource[=].searchInclude[+] = "AllergyIntolerance:encounter" +//* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation +//* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL +////* rest.resource[+].extension.url = $capabilitystatement-expectation +////* rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Procedure * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" diff --git a/Resources/input/fsh/ISiKLebenszustandOberservations.fsh b/Resources/input/fsh/ISiKLebenszustandOberservations.fsh new file mode 100644 index 00000000..ef444875 --- /dev/null +++ b/Resources/input/fsh/ISiKLebenszustandOberservations.fsh @@ -0,0 +1,97 @@ +Profile: ISiKSchwangerschaftsstatus +Parent: Observation +Id: ISiKSchwangerschaftsstatus +Title: "ISiK Schwangerschaftsstatus" +Description: "Schwangerschaftsstatus einer Patientin" +* insert Meta +* code MS +* code = $loinc#82810-3 +* subject 1.. MS +* subject.reference 1.. MS +* effective[x] 1..1 MS +* valueCodeableConcept MS +* valueCodeableConcept from SchwangerschaftsstatusVS +* hasMember only Reference(ISiKSchwangerschaftErwarteterEntbindungstermin) +* hasMember MS +* hasMember ^short = "Erwartetes Geburtsdatum" +* hasMember ^definition = "Eine Referenz auf die ErwartetesGeburtsdatum Observation" +* hasMember.reference 1.. MS + +Instance: ISiKSchwangerschaftsstatusBeispiel +InstanceOf: ISiKSchwangerschaftsstatus +Usage: #example +Title: "ISiKSchwangerschaftsstatusBeispiel" +* status = #final +* subject = Reference(PatientinMusterfrau) +* effectiveDateTime = "2024-01-01" +* valueCodeableConcept = $loinc#LA15173-0 "Pregnant" +* hasMember = Reference(ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel) + +Profile: ISiKSchwangerschaftErwarteterEntbindungstermin +Parent: Observation +Id: ISiKSchwangerschaftErwarteterEntbindungstermin +Title: "ISiK Schwangerschaft - Erwarteter Entbindungstermin" +* insert Meta +* code MS +* code from SchwangerschaftEtMethodeVS +* subject 1.. MS +* subject.reference 1.. MS +* effective[x] 1..1 MS +* valueDateTime only dateTime +* valueDateTime MS + +Instance: ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel +InstanceOf: ISiKSchwangerschaftErwarteterEntbindungstermin +Usage: #example +Title: "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel" +* code = $loinc#11779-6 "Delivery date Estimated from last menstrual period" +* status = #final +* subject = Reference(PatientinMusterfrau) +* effectiveDateTime = "2024-01-01" +* valueDateTime = "2024-08-01" + +Profile: ISiKAlkoholAbusus +Parent: Observation +Id: ISiKAlkoholAbusus +Title: "ISiK Alkohol Abusus" +* insert Meta +* category = ObservationCategoryCodes#social-history +* code MS +* code = $sct#15167005 +* subject 1.. MS +* subject.reference 1.. MS +* effective[x] 1..1 MS +* valueBoolean 1.. MS + +Instance: ISiKAlkoholAbususBeispiel +InstanceOf: ISiKAlkoholAbusus +Usage: #example +Title: "ISiKAlkoholAbususBeispiel" +* code = $sct#15167005 "Schädlicher Gebrauch von Alkohol" +* status = #final +* subject = Reference(PatientinMusterfrau) +* effectiveDateTime = "2024-01-01" +* valueBoolean = false + +Profile: ISiKRaucherStatus +Parent: Observation +Id: ISiKRaucherStatus +Title: "ISiK Raucherstatus" +* insert Meta +* category = ObservationCategoryCodes#social-history +* code MS +* code = $sct#77176002 +* subject 1.. MS +* subject.reference 1.. MS +* effective[x] 1..1 MS +* valueBoolean 1.. MS + +Instance: ISiKRaucherStatusBeispiel +InstanceOf: ISiKRaucherStatus +Usage: #example +Title: "ISiKRaucherStatusBeispiel" +* code = $sct#77176002 "Smoker" +* status = #final +* subject = Reference(PatientinMusterfrau) +* effectiveDateTime = "2024-01-01" +* valueBoolean = true \ No newline at end of file diff --git a/Resources/input/fsh/valueSets.fsh b/Resources/input/fsh/valueSets.fsh index ee585794..edcd071e 100644 --- a/Resources/input/fsh/valueSets.fsh +++ b/Resources/input/fsh/valueSets.fsh @@ -45,3 +45,18 @@ Title: "ISiKAccountIdentifierType" * insert Meta * $v2-0203#AN "Account number" +ValueSet: SchwangerschaftsstatusVS +Id: SchwangerschaftsstatusVS +Title: "Schwangerschaftsstatus Valueset" +* insert Meta +* $loinc#LA15173-0 "Pregnant" +* $loinc#LA26683-5 "Not pregnant" +* $loinc#LA4489-6 "Unknown" + +ValueSet: SchwangerschaftEtMethodeVS +Id: SchwangerschaftEtMethodeVS +Title: "Schwangerschaft Erwarteter Entbindungstermin Methode" +* insert Meta +* $loinc#11778-8 "Delivery date Estimated" +* $loinc#11779-6 "Delivery date Estimated from last menstrual period" +* $loinc#11780-4 "Delivery date Estimated from ovulation date" \ No newline at end of file From eabe265776ce8f5d1223eb43e0fe019705e610a6 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Tue, 5 Mar 2024 11:01:29 +0100 Subject: [PATCH 27/36] typo fix --- ...ustandOberservations.fsh => ISiKLebenszustandObservations.fsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Resources/input/fsh/{ISiKLebenszustandOberservations.fsh => ISiKLebenszustandObservations.fsh} (100%) diff --git a/Resources/input/fsh/ISiKLebenszustandOberservations.fsh b/Resources/input/fsh/ISiKLebenszustandObservations.fsh similarity index 100% rename from Resources/input/fsh/ISiKLebenszustandOberservations.fsh rename to Resources/input/fsh/ISiKLebenszustandObservations.fsh From af92491a08e42a0c7906a413ae7105168c85a361 Mon Sep 17 00:00:00 2001 From: Patrick Werner Date: Mon, 11 Mar 2024 08:40:37 +0100 Subject: [PATCH 28/36] feat: added Lebenszustand mardown descriptions (#379) * feat: added Schwangerschaftsstatus, SS-ET, Raucher & Alkoholabususstatus * try fix for Capability Statement * typo fixes & .category added * feat: added Lebenszustand mardown descriptions feat: added Lebenszustand intermediate profile * auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) * removed merge artifact * feat: add Stillzustand (PTDATA-847) * feat: added Observations to CapStatement fix: typo in UebergreifendeFestlegungen_Suchparameter.md --------- Co-authored-by: Max Theilig Co-authored-by: patrick-werner --- ...tand_AnmerkungenZuDenMustSupportFeldern.md | 27 +++ .../Lebenszustand/Lebenszustand_Beispiele.md | 21 ++ .../Lebenszustand_Interaktionen.md | 107 ++++++++++ .../Lebenszustand_Kompatibilitaet.md | 10 + .../Lebenszustand/Lebenszustand_Motivation.md | 8 + .../Lebenszustand/Lebenszustand_Profil.md | 158 ++++++++++++++ ...ebergreifendeFestlegungen_Suchparameter.md | 2 +- Resources/fsh-generated/fsh-index.json | 52 +++-- Resources/fsh-generated/fsh-index.txt | 19 +- ...nt-ISiKCapabilityStatementBasisServer.json | 196 ++++++++++++++++++ .../Observation-ISiKStillstatusBeispiel.json | 24 +++ ...StructureDefinition-ISiKAlkoholAbusus.json | 43 +--- ...StructureDefinition-ISiKLebensZustand.json | 96 +++++++++ ...StructureDefinition-ISiKRaucherStatus.json | 43 +--- ...ngerschaftErwarteterEntbindungstermin.json | 41 +--- ...Definition-ISiKSchwangerschaftsstatus.json | 27 +-- .../StructureDefinition-ISiKStillstatus.json | 77 +++++++ .../ISiKCapabilityStatementBasisServer.fsh | 94 ++++++++- ...sh => ISiKLebenszustandOberservations.fsh} | 65 ++++-- 19 files changed, 920 insertions(+), 190 deletions(-) create mode 100644 ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md create mode 100644 ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Beispiele.md create mode 100644 ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md create mode 100644 ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Kompatibilitaet.md create mode 100644 ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Motivation.md create mode 100644 ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Profil.md create mode 100644 Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json create mode 100644 Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json rename Resources/input/fsh/{ISiKLebenszustandObservations.fsh => ISiKLebenszustandOberservations.fsh} (72%) diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md new file mode 100644 index 00000000..f1b08f10 --- /dev/null +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md @@ -0,0 +1,27 @@ +### Anmerkungen zu den Must-Support-Feldern + +### `Observation.category` + +**Bedeutung:** Kategorie-Code der die Untersuchung kategorisiert. + +### `Observation.code` + +**Bedeutung:** Code der die Untersuchung repräsentiert und kodiert. + +### `Observation.subject` + +**Bedeutung:** Ein Patientenbezug der Observation MUSS stets zum Zwecke der Nachvollziehbarkeit und Datenintegrität vorliegen. + +### `Observation.effective[x]` + +**Bedeutung:** Klinisch relevanter Zeitpunkt/Zeitspanne für die Observation. + +### `Observation.value[x] (valueDateTime, valueBoolean)` + +**Bedeutung:** Erfasster Wert der Observation. Es müssen Datum und boolesche Werte supportet werden. + +### `Observation.hasMember` + +**Bedeutung:** Weitere Observation die mit dieser Observation gemeinsam zu betrachten ist. + +--- diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Beispiele.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Beispiele.md new file mode 100644 index 00000000..d655c264 --- /dev/null +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Beispiele.md @@ -0,0 +1,21 @@ +### Beispiele + +Schwangerschaftsstatus: + +{{json:ISiKSchwangerschaftsstatusBeispiel}} + +Erwarteter Entbindungstermin: + +{{json:ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel}} + +Alkoholabusus: + +{{json:ISiKAlkoholAbususBeispiel}} + +Raucherstatus: + +{{json:ISiKRaucherStatusBeispiel}} + +Stillstatus: + +{{json:ISiKStillstatusBeispiel}} \ No newline at end of file diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md new file mode 100644 index 00000000..8afc53ed --- /dev/null +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md @@ -0,0 +1,107 @@ +### Interaktionen + +Für die Ressource Practitioner MUSS die REST-Interaktion "READ" implementiert werden. + +Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Kombination: + +1. Der Suchparameter "_id" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/Observation?_id=1234567890``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://www.hl7.org/fhir/R4/search.html#all). + +1. Der Suchparameter "status" MUSS unterstützt werden: + + Beispiel: + + ``` GET [base]/Observation?status=http://hl7.org/fhir/observation-status|final``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "status" + finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). + +1. Der Suchparameter "category" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/Observation?category=http://terminology.hl7.org/CodeSystem/observation-category|social-history``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "Observation.category" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). + +1. Der Suchparameter "code" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/Observation?code=http://terminology.hl7.org/CodeSystem/observation-category|social-history``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "Observation.category" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token). + +1. Der Suchparameter "patient" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/Observation?patient=Patient/123``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "Condition.subject" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). + + Dieser Suchparameter ist für die Umsetzung des IHE QEDm Profils verpflichtend. + +1. Der Suchparameter "subject" MUSS unterstützt werden: + + Beispiele: + + ```GET [base]/Observation?subject=Patient/123``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "Condition.subject" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). + +1. Der Suchparameter "date" MUSS unterstützt werden: + + Beispiel: + + ``` GET [base]/Observation?date=ge2013-01-14&date=le2021-12-31``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "date" + finden sich in der [FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"](https://www.hl7.org/fhir/R4/search.html#all). + +1. Der Suchparameter "combo-code" MUSS unterstützt werden: + + Beispiel: + + ```GET [base]/Observation?combo-code=85354-9``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "combo-code" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token"](https://www.hl7.org/fhir/R4/search.html#token). + +1. Der Suchparameter "combo-code-value-quantity" MUSS unterstützt werden: + + Beispiel: + + ```GET [base]/Observation?combo-code-value-quantity=http://loinc.org|8480-6$120|http://unitsofmeasure.org|mm[Hg]``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "combo-code-value-quantity" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Composite Search Parameters"](https://www.hl7.org/fhir/R4/search.html#combining). + +1. Der Suchparameter "component-code" MUSS unterstützt werden: + + Beispiel: + + ```GET [base]/Observation?component-code=http://loinc.org|85354-9``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "component-code" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token"](https://www.hl7.org/fhir/R4/search.html#token). + +1. Der Suchparameter "encounter" MUSS unterstützt werden: + + Beispiel: + + ```GET [base]/Observation?encounter=Encounter/234``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "encounter" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). + +1. Der Suchparameter "encounter" MUSS unterstützt werden: + + Beispiel: + + ```GET [base]/Observation?encounter=Encounter/234``` + + Anwendungshinweise: Weitere Informationen zur Suche nach "encounter" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). + +--- diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Kompatibilitaet.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Kompatibilitaet.md new file mode 100644 index 00000000..7ed37a1e --- /dev/null +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Kompatibilitaet.md @@ -0,0 +1,10 @@ +### Kompatibilität + +Für Schwangerschaftsstatus & Erwarteter Geburtstermin wird eine Kompatibilität mit folgenden **IPS** Profilen angestrebt: +* [IPS Resource Profile: Observation - Pregnancy: EDD](https://hl7.org/fhir/uv/ips/STU1.1/StructureDefinition-Observation-pregnancy-edd-uv-ips.html). +* [IPS Resource Profile: Observation - Pregnancy: status](https://hl7.org/fhir/uv/ips/STU1.1/StructureDefinition-Observation-pregnancy-status-uv-ips.html) + +Hinweise zu Inkompatibilitäten können über die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden.. + +--- + diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Motivation.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Motivation.md new file mode 100644 index 00000000..697bf901 --- /dev/null +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Motivation.md @@ -0,0 +1,8 @@ +### Motivation + +Viele medizinischen Entscheidungen benötigen Informationen zu den Lebensumständen eines Patienten. Hierzu gehören eine aktuelle Schwangerschaft, Raucherstatus sowie der Alkoholabususstatus. +Motivierender use-case zur Einführung dieser Profile ist der Arzneimitteltherapiesicherheit (AMTS) use-case. + +In FHIR werden Untersuchungen, bzw. Beobachtungen als [`Observation`](https://hl7.org/fhir/R4/observation.html)-Ressource repräsentiert. + +--- diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Profil.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Profil.md new file mode 100644 index 00000000..e091f14a --- /dev/null +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Profil.md @@ -0,0 +1,158 @@ +### Profil + +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus, hybrid}} + +--- + +**Constraints** + +Folgende FHIRPath-Constraints sind im Profil zu beachten: + +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus' for differential.element.constraint select key, severity, human, expression``` + +--- + +**Terminology Bindings** + +@``` +from StructureDefinition +where url in ('https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus' ) +for differential.element +select +Path: path, +join binding.where(valueSet.exists()) +{ + Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))), + Strength: strength, + URL: valueSet +} +``` +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin, hybrid}} + +--- + +**Constraints** + +Folgende FHIRPath-Constraints sind im Profil zu beachten: + +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin' for differential.element.constraint select key, severity, human, expression``` + +--- + +**Terminology Bindings** + +@``` +from StructureDefinition +where url in ('https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin' ) +for differential.element +select +Path: path, +join binding.where(valueSet.exists()) +{ + Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))), + Strength: strength, + URL: valueSet +} +``` +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus, hybrid}} + +--- + +**Constraints** + +Folgende FHIRPath-Constraints sind im Profil zu beachten: + +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus' for differential.element.constraint select key, severity, human, expression``` + +--- + +**Terminology Bindings** + +@``` +from StructureDefinition +where url in ('https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus' ) +for differential.element +select +Path: path, +join binding.where(valueSet.exists()) +{ + Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))), + Strength: strength, + URL: valueSet +} +``` +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus, hybrid}} + +--- + +**Constraints** + +Folgende FHIRPath-Constraints sind im Profil zu beachten: + +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus' for differential.element.constraint select key, severity, human, expression``` + +--- + +**Terminology Bindings** + +@``` +from StructureDefinition +where url in ('https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus' ) +for differential.element +select +Path: path, +join binding.where(valueSet.exists()) +{ + Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))), + Strength: strength, + URL: valueSet +} +``` +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus, hybrid}} + +--- + +**Constraints** + +Folgende FHIRPath-Constraints sind im Profil zu beachten: + +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus' for differential.element.constraint select key, severity, human, expression``` + +--- + +**Terminology Bindings** + +@``` +from StructureDefinition +where url in ('https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus' ) +for differential.element +select +Path: path, +join binding.where(valueSet.exists()) +{ + Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))), + Strength: strength, + URL: valueSet +} +``` +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md index 176d3529..329ccbdf 100644 --- a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md +++ b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Suchparameter.md @@ -133,7 +133,7 @@ Folgende Suchparameter MÜSSEN für alle bestätigungsrelevante Datenojekte impl - Beispiele: ``GET [base]/Patient?_revinclude=Encounter:subject`` - Anwendungshinweise: Weitere Informationen zur Suche nach "_revinclude" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Including other resources in result"](https://www.hl7.org/fhir/R4/search.html#revinclude). - - Alle Referenzen für die ein Chaining unterstützt wird MUSS auch der _include-Parameter implementiert werden. Alle unterstützten Include-Referenzen MÜSSEN im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben werden. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}}. + - Alle Referenzen für die ein Chaining unterstützt wird MUSS auch der _revinclude-Parameter implementiert werden. Alle unterstützten Revinclude-Referenzen MÜSSEN im CapabilityStatement unter ```CapabilityStatement.rest.resource.searchRevInclude``` angegeben werden. Siehe {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}}. Der ```:iterate``` Modifier KANN unterstützt werden. diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json index 8272c857..162ac27a 100644 --- a/Resources/fsh-generated/fsh-index.json +++ b/Resources/fsh-generated/fsh-index.json @@ -61,7 +61,7 @@ "fshType": "Instance", "fshFile": "ISiKCapabilityStatementBasisServer.fsh", "startLine": 1, - "endLine": 683 + "endLine": 775 }, { "outputFile": "CodeSystem-CodeSystemExample.json", @@ -164,8 +164,8 @@ "fshName": "ISiKAlkoholAbususBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 66, - "endLine": 74 + "startLine": 69, + "endLine": 77 }, { "outputFile": "Observation-ISiKRaucherStatusBeispiel.json", @@ -180,16 +180,24 @@ "fshName": "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 43, - "endLine": 51 + "startLine": 49, + "endLine": 57 }, { "outputFile": "Observation-ISiKSchwangerschaftsstatusBeispiel.json", "fshName": "ISiKSchwangerschaftsstatusBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 20, - "endLine": 28 + "startLine": 30, + "endLine": 38 + }, + { + "outputFile": "Observation-ISiKStillstatusBeispiel.json", + "fshName": "ISiKStillstatusBeispiel", + "fshType": "Instance", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 109, + "endLine": 118 }, { "outputFile": "Patient-PatientinMusterfrau.json", @@ -260,8 +268,8 @@ "fshName": "ISiKAlkoholAbusus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 53, - "endLine": 64 + "startLine": 59, + "endLine": 67 }, { "outputFile": "StructureDefinition-ISiKAllergieUnvertraeglichkeit.json", @@ -327,6 +335,14 @@ "startLine": 1, "endLine": 120 }, + { + "outputFile": "StructureDefinition-ISiKLebensZustand.json", + "fshName": "ISiKLebensZustand", + "fshType": "Profile", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 1, + "endLine": 13 + }, { "outputFile": "StructureDefinition-ISiKPatient.json", "fshName": "ISiKPatient", @@ -356,7 +372,7 @@ "fshName": "ISiKRaucherStatus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 76, + "startLine": 79, "endLine": 87 }, { @@ -364,16 +380,24 @@ "fshName": "ISiKSchwangerschaftErwarteterEntbindungstermin", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 30, - "endLine": 41 + "startLine": 40, + "endLine": 47 }, { "outputFile": "StructureDefinition-ISiKSchwangerschaftsstatus.json", "fshName": "ISiKSchwangerschaftsstatus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 1, - "endLine": 18 + "startLine": 16, + "endLine": 28 + }, + { + "outputFile": "StructureDefinition-ISiKStillstatus.json", + "fshName": "ISiKStillstatus", + "fshType": "Profile", + "fshFile": "ISiKLebenszustandOberservations.fsh", + "startLine": 99, + "endLine": 107 }, { "outputFile": "StructureDefinition-ISiKValueSet.json", diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt index efbd8c9a..ce12da82 100644 --- a/Resources/fsh-generated/fsh-index.txt +++ b/Resources/fsh-generated/fsh-index.txt @@ -6,7 +6,7 @@ Binary-Binary-JPEG-Example.json Binary- Binary-Binary-PDF-Example-short.json Binary-PDF-Example-short Instance ISiKBinary.fsh 23 - 28 Binary-Binary-PDF-Example.json Binary-PDF-Example Instance ISiKBinary.fsh 36 - 41 Bundle-ISiKBundle-Example.json ISiKBundle-Example Instance ISiKBerichtBundle.fsh 24 - 38 -CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatementBasisServer.fsh 1 - 683 +CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatementBasisServer.fsh 1 - 775 CodeSystem-CodeSystemExample.json CodeSystemExample Instance ISiKCodeSystem.fsh 17 - 27 Composition-composition-blutdruck.json composition-blutdruck Instance ISiKBerichtSubSysteme.fsh 66 - 83 Condition-BehandlungsDiagnoseFreitext.json BehandlungsDiagnoseFreitext Instance ISiKDiagnose.fsh 123 - 130 @@ -19,10 +19,11 @@ Coverage-CoverageGesetzlich.json Coverag Coverage-CoveragePrivat.json CoveragePrivat Instance ISiKVersicherungsverhaeltnisSelbstzahler.fsh 16 - 22 Encounter-Fachabteilungskontakt.json Fachabteilungskontakt Instance ISiKKontaktGesundheitseinrichtung.fsh 136 - 173 Encounter-FachabteilungskontaktMinimal.json FachabteilungskontaktMinimal Instance ISiKBerichtBundle.fsh 55 - 68 -Observation-ISiKAlkoholAbususBeispiel.json ISiKAlkoholAbususBeispiel Instance ISiKLebenszustandOberservations.fsh 66 - 74 +Observation-ISiKAlkoholAbususBeispiel.json ISiKAlkoholAbususBeispiel Instance ISiKLebenszustandOberservations.fsh 69 - 77 Observation-ISiKRaucherStatusBeispiel.json ISiKRaucherStatusBeispiel Instance ISiKLebenszustandOberservations.fsh 89 - 97 -Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel Instance ISiKLebenszustandOberservations.fsh 43 - 51 -Observation-ISiKSchwangerschaftsstatusBeispiel.json ISiKSchwangerschaftsstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 20 - 28 +Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel Instance ISiKLebenszustandOberservations.fsh 49 - 57 +Observation-ISiKSchwangerschaftsstatusBeispiel.json ISiKSchwangerschaftsstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 30 - 38 +Observation-ISiKStillstatusBeispiel.json ISiKStillstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 109 - 118 Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 108 - 158 Patient-PatientinMusterfrauMinimal.json PatientinMusterfrauMinimal Instance ISiKBerichtBundle.fsh 41 - 53 Practitioner-PractitionerWalterArzt.json PractitionerWalterArzt Instance ISiKPersonImGesundheitsberuf.fsh 93 - 128 @@ -31,7 +32,7 @@ RelatedPerson-ISiKAngehoerigerMustermann.json ISiKAng SearchParameter-Encounter-date-start.json Encounter-date-start Instance ISiKKontaktGesundheitseinrichtung.fsh 216 - 234 SearchParameter-Encounter-end-date.json Encounter-end-date Instance ISiKKontaktGesundheitseinrichtung.fsh 236 - 254 StructureDefinition-ISiKAbrechnungsfall.json ISiKAbrechnungsfall Profile ISiKAbrechnungsfall.fsh 1 - 29 -StructureDefinition-ISiKAlkoholAbusus.json ISiKAlkoholAbusus Profile ISiKLebenszustandOberservations.fsh 53 - 64 +StructureDefinition-ISiKAlkoholAbusus.json ISiKAlkoholAbusus Profile ISiKLebenszustandOberservations.fsh 59 - 67 StructureDefinition-ISiKAllergieUnvertraeglichkeit.json ISiKAllergieUnvertraeglichkeit Profile ISiKAllergieUnvertraeglichkeit.fsh 1 - 105 StructureDefinition-ISiKAngehoeriger.json ISiKAngehoeriger Profile ISiKAngehoeriger.fsh 1 - 45 StructureDefinition-ISiKBerichtBundle.json ISiKBerichtBundle Profile ISiKBerichtBundle.fsh 1 - 22 @@ -40,12 +41,14 @@ StructureDefinition-ISiKBinary.json ISiKBin StructureDefinition-ISiKCodeSystem.json ISiKCodeSystem Profile ISiKCodeSystem.fsh 1 - 15 StructureDefinition-ISiKDiagnose.json ISiKDiagnose Profile ISiKDiagnose.fsh 1 - 55 StructureDefinition-ISiKKontaktGesundheitseinrichtung.json ISiKKontaktGesundheitseinrichtung Profile ISiKKontaktGesundheitseinrichtung.fsh 1 - 120 +StructureDefinition-ISiKLebensZustand.json ISiKLebensZustand Profile ISiKLebenszustandOberservations.fsh 1 - 13 StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 106 StructureDefinition-ISiKPersonImGesundheitsberuf.json ISiKPersonImGesundheitsberuf Profile ISiKPersonImGesundheitsberuf.fsh 1 - 89 StructureDefinition-ISiKProzedur.json ISiKProzedur Profile ISiKProzedur.fsh 1 - 50 -StructureDefinition-ISiKRaucherStatus.json ISiKRaucherStatus Profile ISiKLebenszustandOberservations.fsh 76 - 87 -StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json ISiKSchwangerschaftErwarteterEntbindungstermin Profile ISiKLebenszustandOberservations.fsh 30 - 41 -StructureDefinition-ISiKSchwangerschaftsstatus.json ISiKSchwangerschaftsstatus Profile ISiKLebenszustandOberservations.fsh 1 - 18 +StructureDefinition-ISiKRaucherStatus.json ISiKRaucherStatus Profile ISiKLebenszustandOberservations.fsh 79 - 87 +StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json ISiKSchwangerschaftErwarteterEntbindungstermin Profile ISiKLebenszustandOberservations.fsh 40 - 47 +StructureDefinition-ISiKSchwangerschaftsstatus.json ISiKSchwangerschaftsstatus Profile ISiKLebenszustandOberservations.fsh 16 - 28 +StructureDefinition-ISiKStillstatus.json ISiKStillstatus Profile ISiKLebenszustandOberservations.fsh 99 - 107 StructureDefinition-ISiKValueSet.json ISiKValueSet Profile ISiKValueSet.fsh 1 - 22 StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVersicherungsverhaeltnisGesetzlich Profile ISiKVersicherungsverhaeltnisGesetzlich.fsh 1 - 41 StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json index 34a29935..7a9a2840 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json @@ -1579,6 +1579,202 @@ "supportedProfile": [ "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "type": "Observation", + "supportedProfile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus" + ], + "_supportedProfile": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + } + ], + "interaction": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "code": "read" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "code": "search-type" + } + ], + "searchParam": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "_id", + "definition": "http://hl7.org/fhir/SearchParameter/Resource-id", + "type": "token" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "status", + "definition": "http://hl7.org/fhir/SearchParameter/Observation-status", + "type": "token" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "category", + "definition": "http://hl7.org/fhir/SearchParameter/Observation-category", + "type": "token" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "code", + "definition": "http://hl7.org/fhir/SearchParameter/clinical-code", + "type": "token" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "patient", + "definition": "http://hl7.org/fhir/SearchParameter/clinical-patient", + "type": "reference" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "subject", + "definition": "http://hl7.org/fhir/SearchParameter/Observation-subject", + "type": "reference" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "date", + "definition": "http://hl7.org/fhir/SearchParameter/clinical-date", + "type": "date" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "combo-code", + "definition": "http://hl7.org/fhir/SearchParameter/Observation-combo-code", + "type": "token" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "combo-code-value-quantity", + "definition": "http://hl7.org/fhir/SearchParameter/Observation-combo-code-value-quantity", + "type": "composite" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "component-code", + "definition": "http://hl7.org/fhir/SearchParameter/Observation-component-code", + "type": "token" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ], + "name": "encounter", + "definition": "http://hl7.org/fhir/SearchParameter/clinical-encounter", + "type": "reference" + } + ], + "searchInclude": [ + "Observation:encounter", + "Observation:patient", + "Observation:subject" + ], + "_searchInclude": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + } + ] } ] } diff --git a/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json new file mode 100644 index 00000000..2a676b2c --- /dev/null +++ b/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json @@ -0,0 +1,24 @@ +{ + "resourceType": "Observation", + "id": "ISiKStillstatusBeispiel", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus" + ] + }, + "code": { + "coding": [ + { + "code": "1260078007", + "system": "http://snomed.info/sct", + "display": "Maternal breastfeeding" + } + ] + }, + "status": "final", + "subject": { + "reference": "Patient/PatientinMusterfrau" + }, + "effectiveDateTime": "2024-01-01", + "valueBoolean": true +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json index 40d72221..81e5893a 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json @@ -45,7 +45,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ @@ -71,54 +71,17 @@ "system": "http://snomed.info/sct" } ] - }, - "mustSupport": true - }, - { - "id": "Observation.subject", - "path": "Observation.subject", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.subject.reference", - "path": "Observation.subject.reference", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.effective[x]", - "path": "Observation.effective[x]", - "min": 1, - "mustSupport": true + } }, { "id": "Observation.value[x]", "path": "Observation.value[x]", - "slicing": { - "discriminator": [ - { - "type": "type", - "path": "$this" - } - ], - "ordered": false, - "rules": "open" - }, - "min": 1 - }, - { - "id": "Observation.value[x]:valueBoolean", - "path": "Observation.value[x]", - "sliceName": "valueBoolean", "min": 1, - "max": "1", "type": [ { "code": "boolean" } - ], - "mustSupport": true + ] } ] } diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json new file mode 100644 index 00000000..985495f5 --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json @@ -0,0 +1,96 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKLebensZustand", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "version": "4.0.0-rc", + "name": "ISiKLebensZustand", + "title": "ISiKLebensZustand", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "description": "Basisprofil für ISiKLebensZustand Observation", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Observation.status", + "path": "Observation.status", + "mustSupport": true + }, + { + "id": "Observation.code", + "path": "Observation.code", + "mustSupport": true + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.subject.reference", + "path": "Observation.subject.reference", + "min": 1, + "mustSupport": true + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "min": 1, + "type": [ + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "mustSupport": true + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "mustSupport": true + } + ] + } +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json index ae42d7b5..b7a8d8b4 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json @@ -45,7 +45,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ @@ -71,54 +71,17 @@ "system": "http://snomed.info/sct" } ] - }, - "mustSupport": true - }, - { - "id": "Observation.subject", - "path": "Observation.subject", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.subject.reference", - "path": "Observation.subject.reference", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.effective[x]", - "path": "Observation.effective[x]", - "min": 1, - "mustSupport": true + } }, { "id": "Observation.value[x]", "path": "Observation.value[x]", - "slicing": { - "discriminator": [ - { - "type": "type", - "path": "$this" - } - ], - "ordered": false, - "rules": "open" - }, - "min": 1 - }, - { - "id": "Observation.value[x]:valueBoolean", - "path": "Observation.value[x]", - "sliceName": "valueBoolean", "min": 1, - "max": "1", "type": [ { "code": "boolean" } - ], - "mustSupport": true + ] } ] } diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json index ba28750e..b9cf13b5 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json @@ -45,63 +45,26 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ { "id": "Observation.code", "path": "Observation.code", - "mustSupport": true, "binding": { "strength": "required", "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftEtMethodeVS" } }, - { - "id": "Observation.subject", - "path": "Observation.subject", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.subject.reference", - "path": "Observation.subject.reference", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.effective[x]", - "path": "Observation.effective[x]", - "min": 1, - "mustSupport": true - }, { "id": "Observation.value[x]", "path": "Observation.value[x]", - "slicing": { - "discriminator": [ - { - "type": "type", - "path": "$this" - } - ], - "ordered": false, - "rules": "open" - } - }, - { - "id": "Observation.value[x]:valueDateTime", - "path": "Observation.value[x]", - "sliceName": "valueDateTime", - "min": 0, - "max": "1", "type": [ { "code": "dateTime" } - ], - "mustSupport": true + ] } ] } diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json index a5a060b5..5ac8dd27 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json @@ -2,13 +2,9 @@ "resourceType": "StructureDefinition", "id": "ISiKSchwangerschaftsstatus", "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus", - "version": "4.0.0-rc", "name": "ISiKSchwangerschaftsstatus", "title": "ISiK Schwangerschaftsstatus", "status": "draft", - "experimental": false, - "date": "2024-01-16", - "publisher": "gematik GmbH", "description": "Schwangerschaftsstatus einer Patientin", "fhirVersion": "4.0.1", "mapping": [ @@ -46,7 +42,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ @@ -60,26 +56,7 @@ "system": "http://loinc.org" } ] - }, - "mustSupport": true - }, - { - "id": "Observation.subject", - "path": "Observation.subject", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.subject.reference", - "path": "Observation.subject.reference", - "min": 1, - "mustSupport": true - }, - { - "id": "Observation.effective[x]", - "path": "Observation.effective[x]", - "min": 1, - "mustSupport": true + } }, { "id": "Observation.value[x]", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json new file mode 100644 index 00000000..0a14530f --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json @@ -0,0 +1,77 @@ +{ + "resourceType": "StructureDefinition", + "id": "ISiKStillstatus", + "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus", + "version": "4.0.0-rc", + "name": "ISiKStillstatus", + "title": "ISiKStillstatus", + "status": "draft", + "experimental": false, + "date": "2024-01-16", + "publisher": "gematik GmbH", + "description": "Profil zur Abbildung ob gestillt/Muttermilch abgepumpt und gefüttert wird", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Observation.code", + "path": "Observation.code", + "patternCodeableConcept": { + "coding": [ + { + "code": "1260078007", + "system": "http://snomed.info/sct" + } + ] + } + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "min": 1, + "type": [ + { + "code": "boolean" + } + ] + } + ] + } +} diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index 8fb77321..8152daf3 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -13,7 +13,7 @@ Usage: #definition * format[0] = #application/fhir+xml * format[+] = #application/fhir+json * rest.mode = #server -* rest.resource[0].extension.url = $capabilitystatement-expectation +* rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Patient * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" @@ -677,6 +677,98 @@ Usage: #definition * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Bundle * rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" + +* rest.resource[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].extension.valueCode = #SHALL +* rest.resource[=].type = #Observation +* rest.resource[=].supportedProfile = Canonical(ISiKLebensZustand) + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].supportedProfile = Canonical(ISiKSchwangerschaftsstatus) + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].supportedProfile = Canonical(ISiKSchwangerschaftErwarteterEntbindungstermin) + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].supportedProfile = Canonical(ISiKAlkoholAbusus) + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].supportedProfile = Canonical(ISiKRaucherStatus) + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].supportedProfile = Canonical(ISiKStillstatus) + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].interaction[=].extension.valueCode = #SHALL +* rest.resource[=].interaction[=].code = #read +* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].interaction[=].extension.valueCode = #SHALL +* rest.resource[=].interaction[=].code = #search-type +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "_id" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id" +* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "status" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Observation-status" +* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "category" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Observation-category" +* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "code" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-code" +* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "patient" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-patient" +* rest.resource[=].searchParam[=].type = #reference +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "subject" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Observation-subject" +* rest.resource[=].searchParam[=].type = #reference +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "date" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-date" +* rest.resource[=].searchParam[=].type = #date +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "combo-code" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Observation-combo-code" +* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "combo-code-value-quantity" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Observation-combo-code-value-quantity" +* rest.resource[=].searchParam[=].type = #composite +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "component-code" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Observation-component-code" +* rest.resource[=].searchParam[=].type = #token +* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].searchParam[=].extension.valueCode = #SHALL +* rest.resource[=].searchParam[=].name = "encounter" +* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/clinical-encounter" +* rest.resource[=].searchParam[=].type = #reference +* rest.resource[=].searchInclude[+] = "Observation:encounter" + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].searchInclude[+] = "Observation:patient" + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL +* rest.resource[=].searchInclude[+] = "Observation:subject" + * extension.url = $capabilitystatement-expectation + * extension.valueCode = #SHALL * document.extension.url = $capabilitystatement-expectation * document.extension.valueCode = #SHALL * document.mode = #consumer diff --git a/Resources/input/fsh/ISiKLebenszustandObservations.fsh b/Resources/input/fsh/ISiKLebenszustandOberservations.fsh similarity index 72% rename from Resources/input/fsh/ISiKLebenszustandObservations.fsh rename to Resources/input/fsh/ISiKLebenszustandOberservations.fsh index ef444875..c60363df 100644 --- a/Resources/input/fsh/ISiKLebenszustandObservations.fsh +++ b/Resources/input/fsh/ISiKLebenszustandOberservations.fsh @@ -1,14 +1,24 @@ -Profile: ISiKSchwangerschaftsstatus +Profile: ISiKLebensZustand Parent: Observation -Id: ISiKSchwangerschaftsstatus -Title: "ISiK Schwangerschaftsstatus" -Description: "Schwangerschaftsstatus einer Patientin" +Id: ISiKLebensZustand +Title: "ISiKLebensZustand" +Description: "Basisprofil für ISiKLebensZustand Observation" * insert Meta +* status MS * code MS -* code = $loinc#82810-3 * subject 1.. MS -* subject.reference 1.. MS + * reference 1.. MS * effective[x] 1..1 MS +* effective[x] only dateTime or Period +* value[x] MS + + +Profile: ISiKSchwangerschaftsstatus +Parent: ISiKLebensZustand +Id: ISiKSchwangerschaftsstatus +Title: "ISiK Schwangerschaftsstatus" +Description: "Schwangerschaftsstatus einer Patientin" +* code = $loinc#82810-3 * valueCodeableConcept MS * valueCodeableConcept from SchwangerschaftsstatusVS * hasMember only Reference(ISiKSchwangerschaftErwarteterEntbindungstermin) @@ -28,16 +38,12 @@ Title: "ISiKSchwangerschaftsstatusBeispiel" * hasMember = Reference(ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel) Profile: ISiKSchwangerschaftErwarteterEntbindungstermin -Parent: Observation +Parent: ISiKLebensZustand Id: ISiKSchwangerschaftErwarteterEntbindungstermin Title: "ISiK Schwangerschaft - Erwarteter Entbindungstermin" * insert Meta -* code MS * code from SchwangerschaftEtMethodeVS -* subject 1.. MS -* subject.reference 1.. MS -* effective[x] 1..1 MS -* valueDateTime only dateTime +* value[x] only dateTime * valueDateTime MS Instance: ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel @@ -51,16 +57,13 @@ Title: "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel" * valueDateTime = "2024-08-01" Profile: ISiKAlkoholAbusus -Parent: Observation +Parent: ISiKLebensZustand Id: ISiKAlkoholAbusus Title: "ISiK Alkohol Abusus" * insert Meta * category = ObservationCategoryCodes#social-history -* code MS * code = $sct#15167005 -* subject 1.. MS -* subject.reference 1.. MS -* effective[x] 1..1 MS +* value[x] only boolean * valueBoolean 1.. MS Instance: ISiKAlkoholAbususBeispiel @@ -74,16 +77,13 @@ Title: "ISiKAlkoholAbususBeispiel" * valueBoolean = false Profile: ISiKRaucherStatus -Parent: Observation +Parent: ISiKLebensZustand Id: ISiKRaucherStatus Title: "ISiK Raucherstatus" * insert Meta * category = ObservationCategoryCodes#social-history -* code MS * code = $sct#77176002 -* subject 1.. MS -* subject.reference 1.. MS -* effective[x] 1..1 MS +* value[x] only boolean * valueBoolean 1.. MS Instance: ISiKRaucherStatusBeispiel @@ -94,4 +94,25 @@ Title: "ISiKRaucherStatusBeispiel" * status = #final * subject = Reference(PatientinMusterfrau) * effectiveDateTime = "2024-01-01" +* valueBoolean = true + +Profile: ISiKStillstatus +Parent: ISiKLebensZustand +Id: ISiKStillstatus +Title: "ISiKStillstatus" +Description: "Profil zur Abbildung ob gestillt/Muttermilch abgepumpt und gefüttert wird" +* insert Meta +* code = $sct#1260078007 +* value[x] only boolean +* valueBoolean 1.. MS + +Instance: ISiKStillstatusBeispiel +InstanceOf: ISiKStillstatus +Usage: #example +Title: "ISiKStillstatusBeispiel" +Description: "ISiKStillstatusBeispiel" +* code = $sct#1260078007 "Maternal breastfeeding" +* status = #final +* subject = Reference(PatientinMusterfrau) +* effectiveDateTime = "2024-01-01" * valueBoolean = true \ No newline at end of file From 4e460ec998282cfe756c7d316ac75dcdf0a8741d Mon Sep 17 00:00:00 2001 From: Alexander Zautke Date: Mon, 11 Mar 2024 09:17:08 +0100 Subject: [PATCH 29/36] Verwende IdentifierAbrechnungsnummer aus den Deutschen Basisprofilen (#381) * Verwende IdentifierAbrechnungsnummer aus den Deutschen Basisprofilen * auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) * add releasenotes --------- Co-authored-by: alexzautke Co-authored-by: f-peverali <112709306+f-peverali@users.noreply.github.com> --- ImplementationGuide/markdown/ReleaseNotes.md | 7 ++ ...ructureDefinition-ISiKAbrechnungsfall.json | 2 +- ...finition-identifier-abrechnungsnummer.json | 67 ------------------- .../ValueSet-ISiKAccountIdentifierType.json | 25 ------- Resources/input/fsh/ISiKAbrechnungsfall.fsh | 12 ---- Resources/input/fsh/valueSets.fsh | 6 -- 6 files changed, 8 insertions(+), 111 deletions(-) delete mode 100644 Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json delete mode 100644 Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 4a99483e..baeb103b 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -4,6 +4,13 @@ Im Rahmen der ISiK-Veröffentlichungen wird das [Semantic Versioning](https://se Die erste Ziffer X bezeichnet ein Major-Release und regelt die Gültigkeit von Releases. Die dritte Ziffer Y (Release x.0.y) bezeichnet eine technische Korrektur und versioniert kleinere Änderungen (Packages) während eines Jahres, z. B. 1.0.1. +Version: 4.0.0-rc + +Datum: 11.03.2024 (WIP) + +* Ersetzen des ISiK-spezifischen Profils für IdentifierAbrechnungsnummer mit Profil aus Basisprofil-DE https://github.com/gematik/spec-ISiK-Basismodul/pull/381 + + Version: 3.0.4 Datum: 1.3.2024 diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json index d26ef44f..a40f22f5 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json @@ -81,7 +81,7 @@ { "code": "Identifier", "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/identifier-abrechnungsnummer" + "http://fhir.de/StructureDefinition/identifier-abrechnungsnummer" ] } ], diff --git a/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json b/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json deleted file mode 100644 index 96f31ca4..00000000 --- a/Resources/fsh-generated/resources/StructureDefinition-identifier-abrechnungsnummer.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "resourceType": "StructureDefinition", - "id": "identifier-abrechnungsnummer", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/identifier-abrechnungsnummer", - "version": "4.0.0-rc", - "name": "IdentifierAbrechnungsnummer", - "title": "Identifier-Profil für die Abbildung einer Abrechnungsnummer (\"Fallnummer\") ", - "status": "draft", - "experimental": false, - "date": "2024-01-16", - "publisher": "gematik GmbH", - "description": "Identifier-Profil für die Abbildung einer organisationsspezifischen Abrechnungsnummer (\"Fallnummer\")", - "fhirVersion": "4.0.1", - "mapping": [ - { - "identity": "v2", - "uri": "http://hl7.org/v2", - "name": "HL7 v2 Mapping" - }, - { - "identity": "rim", - "uri": "http://hl7.org/v3", - "name": "RIM Mapping" - }, - { - "identity": "servd", - "uri": "http://www.omg.org/spec/ServD/1.0/", - "name": "ServD" - } - ], - "kind": "complex-type", - "abstract": false, - "type": "Identifier", - "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Identifier", - "derivation": "constraint", - "differential": { - "element": [ - { - "id": "Identifier.type", - "path": "Identifier.type", - "min": 1, - "patternCodeableConcept": { - "coding": [ - { - "code": "AN", - "system": "http://terminology.hl7.org/CodeSystem/v2-0203" - } - ] - }, - "binding": { - "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountIdentifierType" - } - }, - { - "id": "Identifier.system", - "path": "Identifier.system", - "min": 1 - }, - { - "id": "Identifier.value", - "path": "Identifier.value", - "min": 1 - } - ] - } -} diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json b/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json deleted file mode 100644 index 5ebb3526..00000000 --- a/Resources/fsh-generated/resources/ValueSet-ISiKAccountIdentifierType.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "resourceType": "ValueSet", - "status": "draft", - "name": "ISiKAccountIdentifierType", - "id": "ISiKAccountIdentifierType", - "title": "ISiKAccountIdentifierType", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountIdentifierType", - "version": "4.0.0-rc", - "experimental": false, - "publisher": "gematik GmbH", - "date": "2024-01-16", - "compose": { - "include": [ - { - "system": "http://terminology.hl7.org/CodeSystem/v2-0203", - "concept": [ - { - "code": "AN", - "display": "Account number" - } - ] - } - ] - } -} diff --git a/Resources/input/fsh/ISiKAbrechnungsfall.fsh b/Resources/input/fsh/ISiKAbrechnungsfall.fsh index 4e9ad87e..4230726e 100644 --- a/Resources/input/fsh/ISiKAbrechnungsfall.fsh +++ b/Resources/input/fsh/ISiKAbrechnungsfall.fsh @@ -28,18 +28,6 @@ Description: "Dieses Profil beschreibt die Gruppierung von medizinischen Leistun * extension contains http://fhir.de/StructureDefinition/ExtensionAbrechnungsart named Abrechnungsart 1..1 MS * coverage MS -Profile: IdentifierAbrechnungsnummer -Parent: Identifier -Id: identifier-abrechnungsnummer -Title: "Identifier-Profil für die Abbildung einer Abrechnungsnummer (\"Fallnummer\") " -Description: "Identifier-Profil für die Abbildung einer organisationsspezifischen Abrechnungsnummer (\"Fallnummer\")" -* insert Meta -* type 1.. -* type = $v2-0203#AN -* type from ISiKAccountIdentifierType (required) -* system 1.. -* value 1.. - Instance: AbrechnungsfallAmbulant InstanceOf: ISiKAbrechnungsfall Usage: #example diff --git a/Resources/input/fsh/valueSets.fsh b/Resources/input/fsh/valueSets.fsh index edcd071e..502a80cf 100644 --- a/Resources/input/fsh/valueSets.fsh +++ b/Resources/input/fsh/valueSets.fsh @@ -39,12 +39,6 @@ Title: "ISiKAccountType" * $v3-ActCode#AMB "ambulatory" * $v3-ActCode#IMP "inpatient encounter" -ValueSet: ISiKAccountIdentifierType -Id: ISiKAccountIdentifierType -Title: "ISiKAccountIdentifierType" -* insert Meta -* $v2-0203#AN "Account number" - ValueSet: SchwangerschaftsstatusVS Id: SchwangerschaftsstatusVS Title: "Schwangerschaftsstatus Valueset" From b434bdb49756ed00abcd3ea2aee77757742501d3 Mon Sep 17 00:00:00 2001 From: Alexander Zautke Date: Mon, 11 Mar 2024 14:56:20 +0100 Subject: [PATCH 30/36] Feature/kvid10 slice patient identifier (#382) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Füge Slice für Patient.identifier mit KVZ10 Kodierung hinzu, VersichertenId-GKV ist deprecated * Fix example * Fix build * Fix build * Fix build * auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) * Update Resources/input/fsh/ISiKPatient.fsh * auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) * add releasenotes * add decision --------- Co-authored-by: alexzautke Co-authored-by: f-peverali <112709306+f-peverali@users.noreply.github.com> Co-authored-by: f-peverali --- ImplementationGuide/markdown/DecisionLog.md | 5 +++ ImplementationGuide/markdown/ReleaseNotes.md | 4 ++ .../Patient-PatientinMusterfrau.json | 2 +- .../StructureDefinition-ISiKPatient.json | 44 +++++++++++++++++++ Resources/input/fsh/ISiKPatient.fsh | 14 ++++-- Resources/sushi-config.yaml | 2 +- package.json | 2 +- 7 files changed, 67 insertions(+), 6 deletions(-) diff --git a/ImplementationGuide/markdown/DecisionLog.md b/ImplementationGuide/markdown/DecisionLog.md index 3f82d9dd..317e562a 100644 --- a/ImplementationGuide/markdown/DecisionLog.md +++ b/ImplementationGuide/markdown/DecisionLog.md @@ -1,5 +1,10 @@ # Decision Log +11.3. +* Problem: Zum Kontext des Problems rund um spezifische Profile für Versicherten-IDs für GKV und PKV siehe https://chat.fhir.org/#narrow/stream/179183-german-.28d-a-ch.29/topic/Community-Feedback.20zum.20PKV-Identifier (bzw. PTData-718) +VersichertenId-GKV +* Lösung: siehe https://github.com/gematik/spec-ISiK-Basismodul/pull/382 + Datum 27.02. * Problem: Die MUSS-Anforderungen im Kontext von ISIKKatalog scheinen zu umfassend zu sein. diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index baeb103b..57ae3ec3 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -4,12 +4,16 @@ Im Rahmen der ISiK-Veröffentlichungen wird das [Semantic Versioning](https://se Die erste Ziffer X bezeichnet ein Major-Release und regelt die Gültigkeit von Releases. Die dritte Ziffer Y (Release x.0.y) bezeichnet eine technische Korrektur und versioniert kleinere Änderungen (Packages) während eines Jahres, z. B. 1.0.1. + + Version: 4.0.0-rc Datum: 11.03.2024 (WIP) * Ersetzen des ISiK-spezifischen Profils für IdentifierAbrechnungsnummer mit Profil aus Basisprofil-DE https://github.com/gematik/spec-ISiK-Basismodul/pull/381 +* Abkündigen der Slices zu VersichertenId-GKV und ersetzen mit generischer Versicherten-ID : https://github.com/gematik/spec-ISiK-Basismodul/pull/382/files +---- Version: 3.0.4 diff --git a/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json b/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json index 8629e1d3..fc0ea710 100644 --- a/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json +++ b/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json @@ -23,7 +23,7 @@ "type": { "coding": [ { - "code": "GKV", + "code": "KVZ10", "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" } ] diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json index 7be424ec..474ceca8 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json @@ -77,10 +77,54 @@ "min": 1, "mustSupport": true }, + { + "id": "Patient.identifier:VersichertenId", + "path": "Patient.identifier", + "sliceName": "VersichertenId", + "comment": "Die als 'KVZ10' kodierte Versichertennummer gilt für alle Krankenversichertennummern, unabhängig, ob es sich um GKV, PKV oder Sonderkostenträger handelt.", + "min": 0, + "max": "1", + "type": [ + { + "code": "Identifier", + "profile": [ + "http://fhir.de/StructureDefinition/identifier-kvid-10" + ] + } + ], + "patternIdentifier": { + "type": { + "coding": [ + { + "code": "KVZ10", + "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" + } + ] + } + }, + "mustSupport": true + }, + { + "id": "Patient.identifier:VersichertenId.type", + "path": "Patient.identifier.type", + "min": 1, + "mustSupport": true + }, + { + "id": "Patient.identifier:VersichertenId.system", + "path": "Patient.identifier.system", + "mustSupport": true + }, + { + "id": "Patient.identifier:VersichertenId.value", + "path": "Patient.identifier.value", + "mustSupport": true + }, { "id": "Patient.identifier:VersichertenId-GKV", "path": "Patient.identifier", "sliceName": "VersichertenId-GKV", + "comment": "Die Verwendung der 'GKV'-Kodierung einer Versichertennummer ist abgekündigt. Bitte den 'VersichertenId'-Slice verwenden.", "min": 0, "max": "1", "type": [ diff --git a/Resources/input/fsh/ISiKPatient.fsh b/Resources/input/fsh/ISiKPatient.fsh index 5802ab10..7cd90b3d 100644 --- a/Resources/input/fsh/ISiKPatient.fsh +++ b/Resources/input/fsh/ISiKPatient.fsh @@ -11,11 +11,19 @@ Description: "Dieses Profil beschreibt die Nutzung von administrativen Patienten * ^slicing.discriminator.path = "$this" * ^slicing.rules = #open * identifier contains + VersichertenId 0..1 MS and VersichertenId-GKV 0..1 MS and Patientennummer 1..* MS and Versichertennummer_PKV 0..1 +* identifier[VersichertenId] only IdentifierKvid10 + * ^patternIdentifier.type = $identifier-type-de-basis#KVZ10 + * ^comment = "Die als 'KVZ10' kodierte Versichertennummer gilt für alle Krankenversichertennummern, unabhängig, ob es sich um GKV, PKV oder Sonderkostenträger handelt." + * type 1.. MS + * system MS + * value MS * identifier[VersichertenId-GKV] only IdentifierKvid10 * ^patternIdentifier.type = $identifier-type-de-basis#GKV + * ^comment = "Die Verwendung der 'GKV'-Kodierung einer Versichertennummer ist abgekündigt. Bitte den 'VersichertenId'-Slice verwenden." * type 1.. MS * system MS * value MS @@ -108,9 +116,9 @@ Description: "Dieses Profil beschreibt die Nutzung von administrativen Patienten Instance: PatientinMusterfrau InstanceOf: ISiKPatient Usage: #example -* identifier[VersichertenId-GKV].type = $identifier-type-de-basis#GKV -* identifier[VersichertenId-GKV].system = "http://fhir.de/sid/gkv/kvid-10" -* identifier[VersichertenId-GKV].value = "A123456789" +* identifier[VersichertenId].type = $identifier-type-de-basis#KVZ10 +* identifier[VersichertenId].system = "http://fhir.de/sid/gkv/kvid-10" +* identifier[VersichertenId].value = "A123456789" * identifier[Patientennummer].type = $v2-0203#MR * identifier[Patientennummer].system = "https://fhir.krankenhaus.example/sid/PID" * identifier[Patientennummer].value = "TestPID" diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index 76d8e8c9..20d9625c 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -3,6 +3,6 @@ fhirVersion: 4.0.1 FSHOnly: true applyExtensionMetadataToRoot: false dependencies: - de.basisprofil.r4: 1.5.0-ballot + de.basisprofil.r4: 1.5.0-ballot2 hl7.fhir.r4.core: 4.0.1 hl7.fhir.extensions.r5: 4.0.1 diff --git a/package.json b/package.json index f2fa8f3c..fda67616 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,6 @@ "4.0.1" ], "dependencies": { - "de.basisprofil.r4": "1.5.0-ballot" + "de.basisprofil.r4": "1.5.0-ballot2" } } \ No newline at end of file From 38e57af56936a1b39192b7f68e74a78d511769d1 Mon Sep 17 00:00:00 2001 From: Patrick Werner Date: Mon, 11 Mar 2024 16:49:44 +0100 Subject: [PATCH 31/36] Fix/canonical to new format (#383) * feat: added Schwangerschaftsstatus, SS-ET, Raucher & Alkoholabususstatus * try fix for Capability Statement * typo fixes & .category added * feat: added Lebenszustand mardown descriptions feat: added Lebenszustand intermediate profile * auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) * removed merge artifact * feat: add Stillzustand (PTDATA-847) * feat: added Observations to CapStatement fix: typo in UebergreifendeFestlegungen_Suchparameter.md * fix: set correct canonical String for package/module * fix: set correct canonical String for package/module --------- Co-authored-by: Max Theilig Co-authored-by: patrick-werner --- ...lementierungsleitfaden_ISiKBasismodul.json | 2 +- .../Abrechnungsfall/Abrechnungsfall_Profil.md | 6 ++-- .../Angehoeriger/Angehoeriger_Profil.md | 6 ++-- .../BerichtSubsystem_Interaktionen.md | 2 +- .../BerichtSubsystem_Profil.md | 4 +-- .../markdown/Binary/Binary_Profil.md | 4 +-- .../markdown/CapabilityStatement.md | 6 ++-- .../markdown/Diagnose/Diagnose_Profil.md | 8 ++--- .../markdown/Katalog/CodeSystem_Profil.md | 4 +-- .../Kontakt_Profil.md | 8 ++--- .../markdown/Patient/Patient_Profil.md | 6 ++-- .../PersonImGesundheitsberuf_Profil.md | 6 ++-- .../markdown/Prozedur/Prozedur_Profil.md | 8 ++--- .../markdown/ValueSet/ValueSet_Profil.md | 4 +-- .../Versicherungsverhaeltnis_Profil.md | 8 ++--- Resources/fsh-generated/fsh-index.json | 28 ++++----------- Resources/fsh-generated/fsh-index.txt | 8 ++--- .../Account-AbrechnungsfallAmbulant.json | 2 +- ...iKAllergieUnvertraeglichkeitBeispiel1.json | 2 +- .../resources/Bundle-ISiKBundle-Example.json | 4 +-- ...nt-ISiKCapabilityStatementBasisServer.json | 36 +++++++++---------- .../CodeSystem-CodeSystemExample.json | 2 +- .../Composition-composition-blutdruck.json | 2 +- ...Condition-BehandlungsDiagnoseFreitext.json | 2 +- ...mple-condition-ausrufezeichen-primaer.json | 2 +- ...le-condition-ausrufezeichen-sekundaer.json | 2 +- ...Example-condition-kreuz-stern-primaer.json | 2 +- ...ample-condition-kreuz-stern-sekundaer.json | 2 +- ...ion-MittelgradigeIntelligenzminderung.json | 2 +- .../Coverage-CoverageGesetzlich.json | 2 +- .../resources/Coverage-CoveragePrivat.json | 2 +- .../Encounter-Fachabteilungskontakt.json | 2 +- ...Observation-ISiKAlkoholAbususBeispiel.json | 2 +- ...Observation-ISiKRaucherStatusBeispiel.json | 2 +- ...ftErwarteterEntbindungsterminBeispiel.json | 2 +- ...on-ISiKSchwangerschaftsstatusBeispiel.json | 2 +- .../Observation-ISiKStillstatusBeispiel.json | 2 +- .../Patient-PatientinMusterfrau.json | 2 +- .../Practitioner-PractitionerWalterArzt.json | 2 +- .../resources/Procedure-Appendektomie.json | 2 +- ...atedPerson-ISiKAngehoerigerMustermann.json | 2 +- .../SearchParameter-Encounter-date-start.json | 2 +- .../SearchParameter-Encounter-end-date.json | 2 +- ...ructureDefinition-ISiKAbrechnungsfall.json | 4 +-- ...StructureDefinition-ISiKAlkoholAbusus.json | 4 +-- ...nition-ISiKAllergieUnvertraeglichkeit.json | 2 +- .../StructureDefinition-ISiKAngehoeriger.json | 8 ++--- ...StructureDefinition-ISiKBerichtBundle.json | 6 ++-- ...ctureDefinition-ISiKBerichtSubSysteme.json | 4 +-- .../StructureDefinition-ISiKBinary.json | 2 +- .../StructureDefinition-ISiKCodeSystem.json | 2 +- .../StructureDefinition-ISiKDiagnose.json | 8 ++--- ...ion-ISiKKontaktGesundheitseinrichtung.json | 26 +++++++------- ...StructureDefinition-ISiKLebensZustand.json | 2 +- .../StructureDefinition-ISiKPatient.json | 8 ++--- ...finition-ISiKPersonImGesundheitsberuf.json | 4 +-- .../StructureDefinition-ISiKProzedur.json | 14 ++++---- ...StructureDefinition-ISiKRaucherStatus.json | 4 +-- ...ngerschaftErwarteterEntbindungstermin.json | 6 ++-- ...Definition-ISiKSchwangerschaftsstatus.json | 8 ++--- .../StructureDefinition-ISiKStillstatus.json | 4 +-- .../StructureDefinition-ISiKValueSet.json | 2 +- ...SiKVersicherungsverhaeltnisGesetzlich.json | 2 +- ...KVersicherungsverhaeltnisSelbstzahler.json | 2 +- .../resources/ValueSet-DiagnosesSCT.json | 2 +- .../resources/ValueSet-ISiKAccountType.json | 2 +- .../ValueSet-ISiKLocationPhysicalType.json | 2 +- .../ValueSet-ISiKValueSetExample.json | 2 +- .../ValueSet-ProzedurenCodesSCT.json | 2 +- .../ValueSet-ProzedurenKategorieSCT.json | 2 +- .../ValueSet-SchwangerschaftEtMethodeVS.json | 2 +- .../ValueSet-SchwangerschaftsstatusVS.json | 2 +- .../ISiKCapabilityStatementBasisServer.fsh | 34 +++++++++--------- .../fsh/ISiKKontaktGesundheitseinrichtung.fsh | 6 ++-- Resources/input/fsh/aliases.fsh | 6 ++-- Resources/input/fsh/ruleset.fsh | 4 +-- Resources/sushi-config.yaml | 2 +- project.yaml | 2 +- 78 files changed, 190 insertions(+), 208 deletions(-) diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index 692c0d64..b9b50275 100644 --- a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -1,6 +1,6 @@ { "resourceType": "ImplementationGuide", - "url": "https://gematik.de/fhir/isik/v4/Basismodul/ImplementationGuide/ISiK-Basismodul", + "url": "https://gematik.de/fhir/isik/ImplementationGuide/ISiK-Basismodul", "version": "4.0.0-rc", "name": "Implementierungsleitfaden ISiK-Basismodul", "status": "draft", diff --git a/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Profil.md b/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Profil.md index f99ab7ef..eb05874a 100644 --- a/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Profil.md +++ b/ImplementationGuide/markdown/Abrechnungsfall/Abrechnungsfall_Profil.md @@ -1,10 +1,10 @@ ### Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall, hybrid}} Weitere Hinweise zu den Abgrenzungen der Begrifflichkeiten Fall und Kontakt finden sie unter [Deutsche Basisprofile - Abschnitt Ambulanter/stationärer Fall / Kontakt (Encounter)](https://ig.fhir.de/basisprofile-de/1.2.0/Ressourcen-AmbulanterStationaererFall.html). @@ -14,7 +14,7 @@ Weitere Hinweise zu den Abgrenzungen der Begrifflichkeiten Fall und Kontakt find @``` from StructureDefinition -where url in ('https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall' ) +where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall' ) for differential.element select Path: path, diff --git a/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Profil.md b/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Profil.md index 26ec4d54..761b0014 100644 --- a/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Profil.md +++ b/ImplementationGuide/markdown/Angehoeriger/Angehoeriger_Profil.md @@ -1,11 +1,11 @@ ## Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger, hybrid}} -@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger' for differential.element.constraint select key, severity, human, expression``` +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger' for differential.element.constraint select key, severity, human, expression``` --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md index bcc26cbb..92643adc 100644 --- a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md +++ b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md @@ -13,7 +13,7 @@ Das Bundle dient der Aggregation aller Ressourcen, die Bestandteil des Dokumente Falls die im Dokumenten-Bundle enthaltene Patient-Ressource und/oder Encounter-Ressource nicht anhand der Business-Identifier oder anderer Matching-Kriterien im empfangenden System gefunden werden kann (d.h. der Patient oder der Encounter existiert im empfangenden System noch nicht), MUSS als Antwort der HTTP Status Code "422 - Unprocessable Entity" zurückgegeben werden. Im Body der Response ist eine OperationOutcome zurückzugeben, welche ein Issue mit dem Verweis auf die nicht auflösbare Referenz enthält. Zur Kodierung von OperationOutcome.issue.code MUSS als Code ["processing"](https://hl7.org/fhir/R4/codesystem-issue-type.html) verwendet werden. Das Bundle muss folgendem Profil entsprechen: -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle, hybrid}} Unterscheidungshinweis: Informationen zu Interaktionen mit Dokument-Binaries finden sich im Modul [ISiK Dokumentenaustausch - Abgrenzung zu ISiK Stufe 2](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Modul-Dokumentenaustausch-Stufe-3/ImplementationGuide-markdown-AkteureUndInteraktionen?version=current#ImplementationGuide-markdown-AkteureUndInteraktionen-ErzeugenVonMetadaten). diff --git a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Profil.md b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Profil.md index eef61172..92b173ef 100644 --- a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Profil.md +++ b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Profil.md @@ -1,9 +1,9 @@ ### Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme, hybrid}} --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Binary/Binary_Profil.md b/ImplementationGuide/markdown/Binary/Binary_Profil.md index a8b2fbd2..5277f4db 100644 --- a/ImplementationGuide/markdown/Binary/Binary_Profil.md +++ b/ImplementationGuide/markdown/Binary/Binary_Profil.md @@ -1,9 +1,9 @@ ### Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKBinary' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKBinary, hybrid}} --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/CapabilityStatement.md b/ImplementationGuide/markdown/CapabilityStatement.md index ce39aa97..3071b042 100644 --- a/ImplementationGuide/markdown/CapabilityStatement.md +++ b/ImplementationGuide/markdown/CapabilityStatement.md @@ -16,8 +16,8 @@ Die Verwendung der [CapabilityStatement-Expectation](https://hl7.org/fhir/R4/ext ## CapabilityStatement (Requirement) ISiK -Canonical: ```https://gematik.de/fhir/isik/v3/Basismodul/CapabilityStatement/core-server``` +Canonical: ```https://gematik.de/fhir/isik/CapabilityStatement/core-server``` -[Link Simplifier Profil Übersicht](https://gematik.de/fhir/isik/v3/Basismodul/CapabilityStatement/basis-server) +[Link Simplifier Profil Übersicht](https://gematik.de/fhir/isik/CapabilityStatement/basis-server) -{{render:https://gematik.de/fhir/isik/v3/Basismodul/CapabilityStatement/basis-server}} +{{render:https://gematik.de/fhir/isik/CapabilityStatement/basis-server}} diff --git a/ImplementationGuide/markdown/Diagnose/Diagnose_Profil.md b/ImplementationGuide/markdown/Diagnose/Diagnose_Profil.md index 9fd023e2..0fa2e7a3 100644 --- a/ImplementationGuide/markdown/Diagnose/Diagnose_Profil.md +++ b/ImplementationGuide/markdown/Diagnose/Diagnose_Profil.md @@ -1,10 +1,10 @@ ### Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose, hybrid}} --- @@ -12,7 +12,7 @@ from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul Folgende FHIRPath-Constraints sind im Profil zu beachten: -@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose' for differential.element.constraint select key, severity, human, expression``` +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose' for differential.element.constraint select key, severity, human, expression``` --- @@ -20,7 +20,7 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten: @``` from StructureDefinition -where url in ('https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose' ) +where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose' ) for differential.element select Path: path, diff --git a/ImplementationGuide/markdown/Katalog/CodeSystem_Profil.md b/ImplementationGuide/markdown/Katalog/CodeSystem_Profil.md index db9a29ed..c90560a2 100644 --- a/ImplementationGuide/markdown/Katalog/CodeSystem_Profil.md +++ b/ImplementationGuide/markdown/Katalog/CodeSystem_Profil.md @@ -1,8 +1,8 @@ ### FHIR-Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKCodeSystem' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKCodeSystem, hybrid}} --- diff --git a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Profil.md b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Profil.md index 0d47f419..9ef05487 100644 --- a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Profil.md +++ b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Profil.md @@ -1,10 +1,10 @@ ### Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung, hybrid}} **Bei Abbildung von Versorgungsstellenkontakten** @@ -22,7 +22,7 @@ Hinweis: Ein Versorgungsstellenkontakt endet zugleich nicht notwendigerweise mit Folgende FHIRPath-Constraints sind im Profil zu beachten: -@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung' for differential.element.constraint select key, severity, human, expression``` +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung' for differential.element.constraint select key, severity, human, expression``` Weitere Hinweise zu den Abgrenzungen der Begrifflichkeiten Fall und Kontakt finden sie unter [Deutsche Basisprofile - Abschnitt Ambulanter/stationärer Fall / Kontakt (Encounter)](https://ig.fhir.de/basisprofile-de/1.2.0/Ressourcen-AmbulanterStationaererFall.html). @@ -32,7 +32,7 @@ Weitere Hinweise zu den Abgrenzungen der Begrifflichkeiten Fall und Kontakt find @``` from StructureDefinition -where url in ('https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung' ) +where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung' ) for differential.element select Path: path, diff --git a/ImplementationGuide/markdown/Patient/Patient_Profil.md b/ImplementationGuide/markdown/Patient/Patient_Profil.md index 3947e065..8c547a0d 100644 --- a/ImplementationGuide/markdown/Patient/Patient_Profil.md +++ b/ImplementationGuide/markdown/Patient/Patient_Profil.md @@ -1,12 +1,12 @@ ### FHIR-Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient, hybrid}} Folgende FHIRPath-Constraints sind im Profil zu beachten: -@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient' for differential.element.constraint select key, severity, human, expression``` +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient' for differential.element.constraint select key, severity, human, expression``` --- diff --git a/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Profil.md b/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Profil.md index a68784e5..6da6cf3c 100644 --- a/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Profil.md +++ b/ImplementationGuide/markdown/PersonImGesundheitsberuf/PersonImGesundheitsberuf_Profil.md @@ -4,7 +4,7 @@ from StructureDefinition where url = '3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf, hybrid}} --- @@ -12,7 +12,7 @@ from StructureDefinition where url = '3/Basismodul/StructureDefinition/ISiKPerso Folgende FHIRPath-Constraints sind im Profil zu beachten: -@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf' for differential.element.constraint select key, severity, human, expression``` +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf' for differential.element.constraint select key, severity, human, expression``` --- @@ -20,7 +20,7 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten: @``` from StructureDefinition -where url in ('https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf' ) +where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf' ) for differential.element select Path: path, diff --git a/ImplementationGuide/markdown/Prozedur/Prozedur_Profil.md b/ImplementationGuide/markdown/Prozedur/Prozedur_Profil.md index c4fdced0..3692b8a2 100644 --- a/ImplementationGuide/markdown/Prozedur/Prozedur_Profil.md +++ b/ImplementationGuide/markdown/Prozedur/Prozedur_Profil.md @@ -1,10 +1,10 @@ ### Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur, hybrid}} --- @@ -12,7 +12,7 @@ from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul Folgende FHIRPath-Constraints sind im Profil zu beachten: -@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur' for differential.element.constraint select key, severity, human, expression``` +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur' for differential.element.constraint select key, severity, human, expression``` --- @@ -20,7 +20,7 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten: @``` from StructureDefinition -where url in ('https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur' ) +where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur' ) for differential.element select Path: path, diff --git a/ImplementationGuide/markdown/ValueSet/ValueSet_Profil.md b/ImplementationGuide/markdown/ValueSet/ValueSet_Profil.md index e1f696fc..85e69fb1 100644 --- a/ImplementationGuide/markdown/ValueSet/ValueSet_Profil.md +++ b/ImplementationGuide/markdown/ValueSet/ValueSet_Profil.md @@ -1,8 +1,8 @@ ### FHIR-Profil @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet, hybrid}} --- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Profil.md b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Profil.md index a76afba6..13673b56 100644 --- a/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Profil.md +++ b/ImplementationGuide/markdown/Versicherungsverhaeltnis/Versicherungsverhaeltnis_Profil.md @@ -3,18 +3,18 @@ #### Profil ISiKVersicherungsverhaeltnisGesetzlich @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich, hybrid}} #### Profil ISiKVersicherungsverhaeltnisSelbstzahler @``` -from StructureDefinition where url = 'https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler' select Name: name, Canonical: url +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler' select Name: name, Canonical: url ``` -{{tree:https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler, hybrid}} +{{tree:https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler, hybrid}} --- diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json index 162ac27a..aa326544 100644 --- a/Resources/fsh-generated/fsh-index.json +++ b/Resources/fsh-generated/fsh-index.json @@ -4,8 +4,8 @@ "fshName": "AbrechnungsfallAmbulant", "fshType": "Instance", "fshFile": "ISiKAbrechnungsfall.fsh", - "startLine": 43, - "endLine": 55 + "startLine": 31, + "endLine": 43 }, { "outputFile": "AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json", @@ -439,14 +439,6 @@ "startLine": 123, "endLine": 127 }, - { - "outputFile": "StructureDefinition-identifier-abrechnungsnummer.json", - "fshName": "IdentifierAbrechnungsnummer", - "fshType": "Profile", - "fshFile": "ISiKAbrechnungsfall.fsh", - "startLine": 31, - "endLine": 41 - }, { "outputFile": "ValueSet-DiagnosesSCT.json", "fshName": "DiagnosesSCT", @@ -455,14 +447,6 @@ "startLine": 1, "endLine": 8 }, - { - "outputFile": "ValueSet-ISiKAccountIdentifierType.json", - "fshName": "ISiKAccountIdentifierType", - "fshType": "ValueSet", - "fshFile": "valueSets.fsh", - "startLine": 42, - "endLine": 46 - }, { "outputFile": "ValueSet-ISiKAccountType.json", "fshName": "ISiKAccountType", @@ -508,15 +492,15 @@ "fshName": "SchwangerschaftEtMethodeVS", "fshType": "ValueSet", "fshFile": "valueSets.fsh", - "startLine": 56, - "endLine": 62 + "startLine": 50, + "endLine": 56 }, { "outputFile": "ValueSet-SchwangerschaftsstatusVS.json", "fshName": "SchwangerschaftsstatusVS", "fshType": "ValueSet", "fshFile": "valueSets.fsh", - "startLine": 48, - "endLine": 54 + "startLine": 42, + "endLine": 48 } ] diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt index ce12da82..60e65cc8 100644 --- a/Resources/fsh-generated/fsh-index.txt +++ b/Resources/fsh-generated/fsh-index.txt @@ -1,5 +1,5 @@ Output File Name Type FSH File Lines -Account-AbrechnungsfallAmbulant.json AbrechnungsfallAmbulant Instance ISiKAbrechnungsfall.fsh 43 - 55 +Account-AbrechnungsfallAmbulant.json AbrechnungsfallAmbulant Instance ISiKAbrechnungsfall.fsh 31 - 43 AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json ISiKAllergieUnvertraeglichkeitBeispiel1 Instance ISiKAllergieUnvertraeglichkeit.fsh 107 - 128 Binary-Binary-JPEG-Example-short.json Binary-JPEG-Example-short Instance ISiKBinary.fsh 17 - 21 Binary-Binary-JPEG-Example.json Binary-JPEG-Example Instance ISiKBinary.fsh 30 - 34 @@ -54,13 +54,11 @@ StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVer StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 StructureDefinition-PlannedEndDate.json PlannedEndDate Extension ISiKKontaktGesundheitseinrichtung.fsh 130 - 134 StructureDefinition-PlannedStartDate.json PlannedStartDate Extension ISiKKontaktGesundheitseinrichtung.fsh 123 - 127 -StructureDefinition-identifier-abrechnungsnummer.json IdentifierAbrechnungsnummer Profile ISiKAbrechnungsfall.fsh 31 - 41 ValueSet-DiagnosesSCT.json DiagnosesSCT ValueSet valueSets.fsh 1 - 8 -ValueSet-ISiKAccountIdentifierType.json ISiKAccountIdentifierType ValueSet valueSets.fsh 42 - 46 ValueSet-ISiKAccountType.json ISiKAccountType ValueSet valueSets.fsh 35 - 40 ValueSet-ISiKLocationPhysicalType.json ISiKLocationPhysicalType ValueSet valueSets.fsh 27 - 32 ValueSet-ISiKValueSetExample.json ISiKValueSetExample Instance ISiKValueSet.fsh 24 - 37 ValueSet-ProzedurenCodesSCT.json ProzedurenCodesSCT ValueSet valueSets.fsh 10 - 14 ValueSet-ProzedurenKategorieSCT.json ProzedurenKategorieSCT ValueSet valueSets.fsh 16 - 25 -ValueSet-SchwangerschaftEtMethodeVS.json SchwangerschaftEtMethodeVS ValueSet valueSets.fsh 56 - 62 -ValueSet-SchwangerschaftsstatusVS.json SchwangerschaftsstatusVS ValueSet valueSets.fsh 48 - 54 \ No newline at end of file +ValueSet-SchwangerschaftEtMethodeVS.json SchwangerschaftEtMethodeVS ValueSet valueSets.fsh 50 - 56 +ValueSet-SchwangerschaftsstatusVS.json SchwangerschaftsstatusVS ValueSet valueSets.fsh 42 - 48 \ No newline at end of file diff --git a/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json b/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json index ce7f3550..ed6acb4e 100644 --- a/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json +++ b/Resources/fsh-generated/resources/Account-AbrechnungsfallAmbulant.json @@ -3,7 +3,7 @@ "id": "AbrechnungsfallAmbulant", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAbrechnungsfall" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall" ] }, "identifier": [ diff --git a/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json b/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json index 6a48a1e1..1cc5bd3a 100644 --- a/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json +++ b/Resources/fsh-generated/resources/AllergyIntolerance-ISiKAllergieUnvertraeglichkeitBeispiel1.json @@ -3,7 +3,7 @@ "id": "ISiKAllergieUnvertraeglichkeitBeispiel1", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json b/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json index 30b506c4..88a597a8 100644 --- a/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json +++ b/Resources/fsh-generated/resources/Bundle-ISiKBundle-Example.json @@ -3,7 +3,7 @@ "id": "ISiKBundle-Example", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtBundle" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" ] }, "type": "document", @@ -27,7 +27,7 @@ "id": "composition-blutdruck", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" ] }, "status": "final", diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json index 7a9a2840..6bab2ef5 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json @@ -1,14 +1,14 @@ { "resourceType": "CapabilityStatement", "id": "ISiKCapabilityStatementBasisServer", - "url": "https://gematik.de/fhir/isik/v3/Basismodul/CapabilityStatement/basis-server", + "url": "https://gematik.de/fhir/isik/CapabilityStatement/basis-server", "version": "4.0.0-rc", "status": "draft", "experimental": false, "publisher": "gematik GmbH", "date": "2024-01-16", "implementationGuide": [ - "https://gematik.de/fhir/isik/v3/Basismodul/ImplementationGuide|4.0.0-rc" + "https://gematik.de/fhir/isik/ImplementationGuide|4.0.0-rc" ], "name": "ISiKCapabilityStatementBasisServer", "title": "ISiK CapabilityStatement Basis Server", @@ -53,7 +53,7 @@ ], "type": "Patient", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" ], "interaction": [ { @@ -369,7 +369,7 @@ ], "type": "Encounter", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" ], "interaction": [ { @@ -499,7 +499,7 @@ } ], "name": "date-start", - "definition": "https://gematik.de/fhir/isik/v3/Basismodul/SearchParameter/Encounter-date-start", + "definition": "https://gematik.de/fhir/isik/SearchParameter/Encounter-date-start", "type": "date" }, { @@ -510,7 +510,7 @@ } ], "name": "end-date", - "definition": "https://gematik.de/fhir/isik/v3/Basismodul/SearchParameter/Encounter-end-date", + "definition": "https://gematik.de/fhir/isik/SearchParameter/Encounter-end-date", "type": "date" }, { @@ -635,7 +635,7 @@ ], "type": "Account", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall" ], "interaction": [ { @@ -724,7 +724,7 @@ ], "type": "Condition", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ], "interaction": [ { @@ -890,7 +890,7 @@ ], "type": "Procedure", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" ], "interaction": [ { @@ -1056,8 +1056,8 @@ ], "type": "Coverage", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich", - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich", + "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" ], "interaction": [ { @@ -1208,7 +1208,7 @@ ], "type": "RelatedPerson", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger" ], "interaction": [ { @@ -1354,7 +1354,7 @@ ], "type": "Practitioner", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf" ], "interaction": [ { @@ -1465,7 +1465,7 @@ ], "type": "ValueSet", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet" ], "interaction": [ { @@ -1565,7 +1565,7 @@ ], "type": "Composition", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" ] }, { @@ -1577,7 +1577,7 @@ ], "type": "Bundle", "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" ] }, { @@ -1589,7 +1589,7 @@ ], "type": "Observation", "supportedProfile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKStillstatus" ], "_supportedProfile": [ { @@ -1788,7 +1788,7 @@ } ], "mode": "consumer", - "profile": "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" + "profile": "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" } ] } diff --git a/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json b/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json index 21be1c29..6adcbdcb 100644 --- a/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json +++ b/Resources/fsh-generated/resources/CodeSystem-CodeSystemExample.json @@ -3,7 +3,7 @@ "id": "CodeSystemExample", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKCodeSystem" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKCodeSystem" ] }, "version": "4.0.0-rc", diff --git a/Resources/fsh-generated/resources/Composition-composition-blutdruck.json b/Resources/fsh-generated/resources/Composition-composition-blutdruck.json index 5d02b935..c6d5d5ec 100644 --- a/Resources/fsh-generated/resources/Composition-composition-blutdruck.json +++ b/Resources/fsh-generated/resources/Composition-composition-blutdruck.json @@ -3,7 +3,7 @@ "id": "composition-blutdruck", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" ] }, "status": "final", diff --git a/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json b/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json index bcc510cc..621665a9 100644 --- a/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json +++ b/Resources/fsh-generated/resources/Condition-BehandlungsDiagnoseFreitext.json @@ -3,7 +3,7 @@ "id": "BehandlungsDiagnoseFreitext", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json index bc106c06..16f53e22 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-primaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-ausrufezeichen-primaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json index ae48139b..de95468b 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-ausrufezeichen-sekundaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-ausrufezeichen-sekundaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ] }, "extension": [ diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json index de896972..310b175b 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-primaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-kreuz-stern-primaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json index a8ee3a65..2df4b405 100644 --- a/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json +++ b/Resources/fsh-generated/resources/Condition-Example-condition-kreuz-stern-sekundaer.json @@ -3,7 +3,7 @@ "id": "Example-condition-kreuz-stern-sekundaer", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ] }, "extension": [ diff --git a/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json b/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json index b6c0222c..d31f3be7 100644 --- a/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json +++ b/Resources/fsh-generated/resources/Condition-MittelgradigeIntelligenzminderung.json @@ -3,7 +3,7 @@ "id": "MittelgradigeIntelligenzminderung", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" ] }, "clinicalStatus": { diff --git a/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json b/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json index afb738de..c8a4f448 100644 --- a/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json +++ b/Resources/fsh-generated/resources/Coverage-CoverageGesetzlich.json @@ -3,7 +3,7 @@ "id": "CoverageGesetzlich", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich" ] }, "type": { diff --git a/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json b/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json index 02aa74da..a5969ccc 100644 --- a/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json +++ b/Resources/fsh-generated/resources/Coverage-CoveragePrivat.json @@ -3,7 +3,7 @@ "id": "CoveragePrivat", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" ] }, "type": { diff --git a/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json b/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json index 068ba19f..ff582927 100644 --- a/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json +++ b/Resources/fsh-generated/resources/Encounter-Fachabteilungskontakt.json @@ -3,7 +3,7 @@ "id": "Fachabteilungskontakt", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" ] }, "type": [ diff --git a/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json index 4497237e..2c52355c 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json @@ -3,7 +3,7 @@ "id": "ISiKAlkoholAbususBeispiel", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKAlkoholAbusus" ] }, "code": { diff --git a/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json index 7bc83283..fb862297 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json @@ -3,7 +3,7 @@ "id": "ISiKRaucherStatusBeispiel", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKRaucherStatus" ] }, "code": { diff --git a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json index 86d691d0..1b702513 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json @@ -3,7 +3,7 @@ "id": "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin" ] }, "code": { diff --git a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json index bb6d3225..a9e701d4 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json @@ -3,7 +3,7 @@ "id": "ISiKSchwangerschaftsstatusBeispiel", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKSchwangerschaftsstatus" ] }, "code": { diff --git a/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json index 2a676b2c..a246743b 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json @@ -3,7 +3,7 @@ "id": "ISiKStillstatusBeispiel", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKStillstatus" ] }, "code": { diff --git a/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json b/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json index fc0ea710..492e97cf 100644 --- a/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json +++ b/Resources/fsh-generated/resources/Patient-PatientinMusterfrau.json @@ -3,7 +3,7 @@ "id": "PatientinMusterfrau", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" ] }, "identifier": [ diff --git a/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json b/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json index c0138eea..e4a35a26 100644 --- a/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json +++ b/Resources/fsh-generated/resources/Practitioner-PractitionerWalterArzt.json @@ -4,7 +4,7 @@ "meta": { "source": "http://krankenhaus.de", "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf" ] }, "name": [ diff --git a/Resources/fsh-generated/resources/Procedure-Appendektomie.json b/Resources/fsh-generated/resources/Procedure-Appendektomie.json index 9ee073e4..3e83c0f5 100644 --- a/Resources/fsh-generated/resources/Procedure-Appendektomie.json +++ b/Resources/fsh-generated/resources/Procedure-Appendektomie.json @@ -3,7 +3,7 @@ "id": "Appendektomie", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" ] }, "extension": [ diff --git a/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json b/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json index 30a7a165..a2c1dc37 100644 --- a/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json +++ b/Resources/fsh-generated/resources/RelatedPerson-ISiKAngehoerigerMustermann.json @@ -3,7 +3,7 @@ "id": "ISiKAngehoerigerMustermann", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger" ] }, "patient": { diff --git a/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json b/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json index 97d7f112..83b294d7 100644 --- a/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json +++ b/Resources/fsh-generated/resources/SearchParameter-Encounter-date-start.json @@ -1,7 +1,7 @@ { "resourceType": "SearchParameter", "id": "Encounter-date-start", - "url": "https://gematik.de/fhir/isik/Basismodul/SearchParameter/Encounter-date-start", + "url": "https://gematik.de/fhir/isik/SearchParameter/Encounter-date-start", "description": "The actual start date of the Encounter (Backport from R5). The parameter cannot repeat or have multiple values.", "version": "4.0.0-rc", "status": "draft", diff --git a/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json b/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json index 0bdd4a6b..fb44ad2f 100644 --- a/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json +++ b/Resources/fsh-generated/resources/SearchParameter-Encounter-end-date.json @@ -1,7 +1,7 @@ { "resourceType": "SearchParameter", "id": "Encounter-end-date", - "url": "https://gematik.de/fhir/isik/Basismodul/SearchParameter/Encounter-end-date", + "url": "https://gematik.de/fhir/isik/SearchParameter/Encounter-end-date", "description": "The actual end date of the Encounter (Backport from R5). The parameter cannot repeat or have multiple values.", "version": "4.0.0-rc", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json index a40f22f5..b168b898 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAbrechnungsfall.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKAbrechnungsfall", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAbrechnungsfall", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall", "version": "4.0.0-rc", "name": "ISiKAbrechnungsfall", "status": "draft", @@ -124,7 +124,7 @@ "mustSupport": true, "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountType" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/ISiKAccountType" } }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json index 81e5893a..7e90576c 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAlkoholAbusus.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKAlkoholAbusus", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAlkoholAbusus", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAlkoholAbusus", "version": "4.0.0-rc", "name": "ISiKAlkoholAbusus", "title": "ISiK Alkohol Abusus", @@ -45,7 +45,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "baseDefinition": "https://gematik.de/fhir/isik/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json index 57a760e8..07e7a61e 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAllergieUnvertraeglichkeit.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKAllergieUnvertraeglichkeit", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit", "version": "4.0.0-rc", "name": "ISiKAllergieUnvertraeglichkeit", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json index f71ae88d..d16c8395 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKAngehoeriger.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKAngehoeriger", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger", "version": "4.0.0-rc", "name": "ISiKAngehoeriger", "status": "draft", @@ -43,7 +43,7 @@ "severity": "error", "human": "Falls die Geschlechtsangabe 'other' gewählt wird, muss die amtliche Differenzierung per Extension angegeben werden", "expression": "gender.exists() and gender='other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger" } ] }, @@ -126,7 +126,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger" } ], "mustSupport": true @@ -214,7 +214,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKAngehoeriger" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger" } ], "mustSupport": true diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json index 5b7f9825..d7bdbb26 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtBundle.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKBerichtBundle", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtBundle", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle", "version": "4.0.0-rc", "name": "ISiKBerichtBundle", "title": "ISiKBerichtBundle", @@ -49,7 +49,7 @@ "severity": "error", "human": "All referenced Resources must be contained in the Bundle", "expression": "Bundle.entry.descendants().reference.distinct().subsetOf(%context.entry.fullUrl)", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtBundle" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" } ] }, @@ -128,7 +128,7 @@ { "code": "Composition", "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" ] } ] diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json index 0fa02c71..48b4a7e2 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKBerichtSubSysteme.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKBerichtSubSysteme", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme", "version": "4.0.0-rc", "name": "ISiKBerichtSubSysteme", "status": "draft", @@ -160,7 +160,7 @@ "severity": "warning", "human": "KDL-Code ungültig", "expression": "matches('^[A-Z]{2}[0-9]{6}$')", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" } ] }, diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json index 14ec448a..c469446d 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKBinary.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKBinary", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKBinary", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKBinary", "version": "4.0.0-rc", "name": "ISiKBinary", "title": "ISiKBinary", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json index 018e409c..acefcd1a 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKCodeSystem.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKCodeSystem", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKCodeSystem", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKCodeSystem", "version": "4.0.0-rc", "name": "ISiKCodeSystem", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json index 86fd4ea2..bb284b7e 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDiagnose.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKDiagnose", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose", "version": "4.0.0-rc", "name": "ISiKDiagnose", "status": "draft", @@ -58,7 +58,7 @@ "severity": "error", "human": "Falls eine kodierte Diagnose vorliegt muss angegeben werden durch welchen Kontakt diese Dokumentation erfolgte.", "expression": "code.coding.exists() implies encounter.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" } ] }, @@ -103,7 +103,7 @@ "severity": "error", "human": "Entweder MUSS eine kodierte Diagnose vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt.", "expression": "coding.exists().not() implies text.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKDiagnose" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" } ], "mustSupport": true @@ -200,7 +200,7 @@ "mustSupport": true, "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/DiagnosesSCT" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/DiagnosesSCT" } }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json index 8bf558ad..656d7166 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKKontaktGesundheitseinrichtung.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKKontaktGesundheitseinrichtung", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung", "version": "4.0.0-rc", "name": "ISiKKontaktGesundheitseinrichtung", "status": "draft", @@ -48,56 +48,56 @@ "severity": "error", "human": "Abgeschlossene, ambulante Kontakte sollten einen Start-Zeitpunkt angeben", "expression": "status = 'finished' and class = 'AMB' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-2", "severity": "error", "human": "Abgeschlossene, stationäre Kontakte sollten einen Start- und End-Zeitpunkt angeben", "expression": "status = 'finished' and class = 'IMP' implies period.start.exists() and period.end.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-3", "severity": "error", "human": "Geplante Kontakte sollten keinen Start- oder End-Zeitpunkt angeben", "expression": "status = 'planned' implies period.exists().not()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-4", "severity": "warning", "human": "Geplante Kontakte sollten die Extensions für den geplanten Start- oder End-Zeitpunkt verwenden", "expression": "status = 'planned' implies extension.where(url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedStartDate').exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-5", "severity": "error", "human": "In-Durchführung befindliche Kontakte sollten einen Start-Zeitpunkt angeben", "expression": "status = 'in-progress' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-6", "severity": "error", "human": "Kontakte mit Abwesenheitsstatus sollten einen Start-Zeitpunkt angeben", "expression": "status = 'onleave' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-7", "severity": "warning", "human": "Kontakte mit unbekannten Status sollten einen Start-Zeitpunkt angeben", "expression": "status = 'unknown' implies period.start.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" }, { "key": "ISiK-enc-8", "severity": "error", "human": "Die Rolle der assoziierten Diagnose(n) darf nicht 'Billing' sein", "expression": "diagnosis.use.all(coding.code != 'billing')", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" } ] }, @@ -570,7 +570,7 @@ "path": "Encounter.location.physicalType", "binding": { "strength": "extensible", - "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKLocationPhysicalType" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType" } }, { @@ -601,7 +601,7 @@ { "id": "Encounter.location:Zimmer.physicalType", "path": "Encounter.location.physicalType", - "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", + "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType", "min": 1, "patternCodeableConcept": { "coding": [ @@ -641,7 +641,7 @@ { "id": "Encounter.location:Bett.physicalType", "path": "Encounter.location.physicalType", - "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", + "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType", "min": 1, "patternCodeableConcept": { "coding": [ @@ -681,7 +681,7 @@ { "id": "Encounter.location:Station.physicalType", "path": "Encounter.location.physicalType", - "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType", + "comment": "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType", "min": 1, "patternCodeableConcept": { "coding": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json index 985495f5..c5a7b4fb 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKLebensZustand", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKLebensZustand", "version": "4.0.0-rc", "name": "ISiKLebensZustand", "title": "ISiKLebensZustand", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json index 474ceca8..c3065f1d 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKPatient", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient", "version": "4.0.0-rc", "name": "ISiKPatient", "status": "draft", @@ -53,7 +53,7 @@ "severity": "error", "human": "Falls die Geschlechtsangabe 'other' gewählt wird, muss die amtliche Differenzierung per Extension angegeben werden", "expression": "gender.exists() and gender='other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" } ] }, @@ -515,7 +515,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" } ], "mustSupport": true @@ -603,7 +603,7 @@ "severity": "warning", "human": "The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2.", "expression": "country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPatient" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" } ], "mustSupport": true diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json index 80484a7b..3310e9e9 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPersonImGesundheitsberuf.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKPersonImGesundheitsberuf", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf", "version": "4.0.0-rc", "name": "ISiKPersonImGesundheitsberuf", "status": "draft", @@ -48,7 +48,7 @@ "severity": "error", "human": "Die amtliche Differenzierung der Geschlechtsangabe 'other' darf nur gefüllt sein, wenn das Geschlecht 'other' angegeben ist", "expression": "gender='other' or gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').empty()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf" } ] }, diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json index 1291541b..016678e7 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKProzedur.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKProzedur", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur", "version": "4.0.0-rc", "name": "ISiKProzedur", "status": "draft", @@ -48,14 +48,14 @@ "severity": "error", "human": "Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden", "expression": "code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" }, { "key": "proc-ISiK-2", "severity": "error", "human": "Falls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werden", "expression": "code.coding.exists() implies category.coding.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" } ] }, @@ -117,7 +117,7 @@ "mustSupport": true, "binding": { "strength": "preferred", - "valueSet": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenKategorieSCT" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT" } }, { @@ -142,14 +142,14 @@ "severity": "error", "human": "Falls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden. Liegt die Prozedur nicht kodiert vor SOLL Freitext angegeben werden.", "expression": "coding.exists() implies coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" }, { "key": "proc-ISiK-3", "severity": "error", "human": "Entweder MUSS eine kodierte Prozedur vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt.", "expression": "coding.exists().not() implies text.exists()", - "source": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKProzedur" + "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" } ], "mustSupport": true @@ -218,7 +218,7 @@ "mustSupport": true, "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenCodesSCT" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT" } }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json index b7a8d8b4..092a6584 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKRaucherStatus.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKRaucherStatus", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKRaucherStatus", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKRaucherStatus", "version": "4.0.0-rc", "name": "ISiKRaucherStatus", "title": "ISiK Raucherstatus", @@ -45,7 +45,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "baseDefinition": "https://gematik.de/fhir/isik/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json index b9cf13b5..47fd1eb2 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKSchwangerschaftErwarteterEntbindungstermin", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin", "version": "4.0.0-rc", "name": "ISiKSchwangerschaftErwarteterEntbindungstermin", "title": "ISiK Schwangerschaft - Erwarteter Entbindungstermin", @@ -45,7 +45,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "baseDefinition": "https://gematik.de/fhir/isik/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ @@ -54,7 +54,7 @@ "path": "Observation.code", "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftEtMethodeVS" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/SchwangerschaftEtMethodeVS" } }, { diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json index 5ac8dd27..cd0c7a2a 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKSchwangerschaftsstatus.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKSchwangerschaftsstatus", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftsstatus", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKSchwangerschaftsstatus", "name": "ISiKSchwangerschaftsstatus", "title": "ISiK Schwangerschaftsstatus", "status": "draft", @@ -42,7 +42,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "baseDefinition": "https://gematik.de/fhir/isik/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ @@ -86,7 +86,7 @@ "mustSupport": true, "binding": { "strength": "required", - "valueSet": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftsstatusVS" + "valueSet": "https://gematik.de/fhir/isik/ValueSet/SchwangerschaftsstatusVS" } }, { @@ -98,7 +98,7 @@ { "code": "Reference", "targetProfile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKSchwangerschaftErwarteterEntbindungstermin" ] } ], diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json index 0a14530f..3bad0a68 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKStillstatus.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKStillstatus", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKStillstatus", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKStillstatus", "version": "4.0.0-rc", "name": "ISiKStillstatus", "title": "ISiKStillstatus", @@ -46,7 +46,7 @@ "kind": "resource", "abstract": false, "type": "Observation", - "baseDefinition": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKLebensZustand", + "baseDefinition": "https://gematik.de/fhir/isik/StructureDefinition/ISiKLebensZustand", "derivation": "constraint", "differential": { "element": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json index b024f17b..e37d7812 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKValueSet.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKValueSet", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKValueSet", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet", "version": "4.0.0-rc", "name": "ISiKValueSet", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json index 0394ad71..918dee97 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKVersicherungsverhaeltnisGesetzlich", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich", "version": "4.0.0-rc", "name": "ISiKVersicherungsverhaeltnisGesetzlich", "status": "draft", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json index de9ebc77..7bc0efcf 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json @@ -1,7 +1,7 @@ { "resourceType": "StructureDefinition", "id": "ISiKVersicherungsverhaeltnisSelbstzahler", - "url": "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler", + "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler", "version": "4.0.0-rc", "name": "ISiKVersicherungsverhaeltnisSelbstzahler", "status": "draft", diff --git a/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json b/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json index cd6561c3..8c10a87d 100644 --- a/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json +++ b/Resources/fsh-generated/resources/ValueSet-DiagnosesSCT.json @@ -4,7 +4,7 @@ "name": "DiagnosesSCT", "id": "DiagnosesSCT", "description": "Enthaelt alle SNOMED Clinical finding, Event und Situation with explicit context codes", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/DiagnosesSCT", + "url": "https://gematik.de/fhir/isik/ValueSet/DiagnosesSCT", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json b/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json index 87960207..54766dcc 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKAccountType.json @@ -4,7 +4,7 @@ "name": "ISiKAccountType", "id": "ISiKAccountType", "title": "ISiKAccountType", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKAccountType", + "url": "https://gematik.de/fhir/isik/ValueSet/ISiKAccountType", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json b/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json index e4c9e1fe..cb4e2def 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKLocationPhysicalType.json @@ -3,7 +3,7 @@ "status": "draft", "name": "ISiKLocationPhysicalType", "id": "ISiKLocationPhysicalType", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ISiKLocationPhysicalType", + "url": "https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json b/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json index 1cfdc2b2..cbd352fb 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKValueSetExample.json @@ -3,7 +3,7 @@ "id": "ISiKValueSetExample", "meta": { "profile": [ - "https://gematik.de/fhir/isik/Basismodul/StructureDefinition/ISiKValueSet" + "https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet" ] }, "useContext": [ diff --git a/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json b/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json index 28a5d76e..d3e01d38 100644 --- a/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json +++ b/Resources/fsh-generated/resources/ValueSet-ProzedurenCodesSCT.json @@ -4,7 +4,7 @@ "name": "ProzedurenCodesSCT", "id": "ProzedurenCodesSCT", "description": "Enthaelt alle SNOMED Procedure Codes", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ProzedurenCodesSCT", + "url": "https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json b/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json index 7819bde3..dbab006a 100644 --- a/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json +++ b/Resources/fsh-generated/resources/ValueSet-ProzedurenKategorieSCT.json @@ -4,7 +4,7 @@ "name": "ProzedurenKategorieSCT", "id": "ProzedurenKategorieSCT", "description": "Enthaelt alle SNOMED Codes für ein Mapping der OPS Klassentitel", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/ProzedurenKategorieSCT", + "url": "https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json index 009e8ac5..a7b46ab5 100644 --- a/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json +++ b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftEtMethodeVS.json @@ -4,7 +4,7 @@ "name": "SchwangerschaftEtMethodeVS", "id": "SchwangerschaftEtMethodeVS", "title": "Schwangerschaft Erwarteter Entbindungstermin Methode", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftEtMethodeVS", + "url": "https://gematik.de/fhir/isik/ValueSet/SchwangerschaftEtMethodeVS", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json index 7ed44299..7a99116c 100644 --- a/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json +++ b/Resources/fsh-generated/resources/ValueSet-SchwangerschaftsstatusVS.json @@ -4,7 +4,7 @@ "name": "SchwangerschaftsstatusVS", "id": "SchwangerschaftsstatusVS", "title": "Schwangerschaftsstatus Valueset", - "url": "https://gematik.de/fhir/isik/Basismodul/ValueSet/SchwangerschaftsstatusVS", + "url": "https://gematik.de/fhir/isik/ValueSet/SchwangerschaftsstatusVS", "version": "4.0.0-rc", "experimental": false, "publisher": "gematik GmbH", diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index 8152daf3..e67ba56a 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -16,7 +16,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Patient -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -137,7 +137,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Encounter -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKKontaktGesundheitseinrichtung" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -192,12 +192,12 @@ Usage: #definition * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #SHALL * rest.resource[=].searchParam[=].name = "date-start" -* rest.resource[=].searchParam[=].definition = "https://gematik.de/fhir/isik/v3/Basismodul/SearchParameter/Encounter-date-start" +* rest.resource[=].searchParam[=].definition = "https://gematik.de/fhir/isik/SearchParameter/Encounter-date-start" * rest.resource[=].searchParam[=].type = #date * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #SHALL * rest.resource[=].searchParam[=].name = "end-date" -* rest.resource[=].searchParam[=].definition = "https://gematik.de/fhir/isik/v3/Basismodul/SearchParameter/Encounter-end-date" +* rest.resource[=].searchParam[=].definition = "https://gematik.de/fhir/isik/SearchParameter/Encounter-end-date" * rest.resource[=].searchParam[=].type = #date * rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation * rest.resource[=].searchParam[=].extension.valueCode = #MAY @@ -241,7 +241,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Account -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAbrechnungsfall" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKAbrechnungsfall" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -278,7 +278,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Condition -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKDiagnose" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -343,7 +343,7 @@ Usage: #definition //* rest.resource[+].extension.url = $capabilitystatement-expectation //* rest.resource[=].extension.valueCode = #SHALL //* rest.resource[=].type = #AllergyIntolerance -//* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAllergieUnvertraeglichkeit" +//* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit" //* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation //* rest.resource[=].interaction[=].extension.valueCode = #SHALL //* rest.resource[=].interaction[=].code = #read @@ -395,7 +395,7 @@ Usage: #definition ////* rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Procedure -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -457,8 +457,8 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Coverage -* rest.resource[=].supportedProfile[0] = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich" -* rest.resource[=].supportedProfile[+] = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" +* rest.resource[=].supportedProfile[0] = "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisGesetzlich" +* rest.resource[=].supportedProfile[+] = "https://gematik.de/fhir/isik/StructureDefinition/ISiKVersicherungsverhaeltnisSelbstzahler" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -515,7 +515,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #RelatedPerson -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -569,7 +569,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Practitioner -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -614,7 +614,7 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #MAY * rest.resource[=].type = #CodeSystem -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKCodeSystem" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKCodeSystem" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #MAY * rest.resource[=].interaction[=].code = #read @@ -632,7 +632,7 @@ Usage: #definition * rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/conformance-url" * rest.resource[=].searchParam[=].type = #uri * rest.resource[=].type = #ValueSet -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKValueSet" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet" * rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation * rest.resource[=].interaction[=].extension.valueCode = #SHALL * rest.resource[=].interaction[=].code = #read @@ -672,11 +672,11 @@ Usage: #definition * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #MAY * rest.resource[=].type = #Composition -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtSubSysteme" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL * rest.resource[=].type = #Bundle -* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" * rest.resource[+].extension.url = $capabilitystatement-expectation * rest.resource[=].extension.valueCode = #SHALL @@ -772,4 +772,4 @@ Usage: #definition * document.extension.url = $capabilitystatement-expectation * document.extension.valueCode = #SHALL * document.mode = #consumer -* document.profile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBerichtBundle" +* document.profile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" diff --git a/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh b/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh index 7d93a862..a71aafaa 100644 --- a/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh +++ b/Resources/input/fsh/ISiKKontaktGesundheitseinrichtung.fsh @@ -100,21 +100,21 @@ Description: "Dieses Profil ermöglicht die Herstellung eines Fallbezuges welche * display 1.. MS * physicalType 1..1 MS * physicalType = http://terminology.hl7.org/CodeSystem/location-physical-type#wa - * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" + * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType" * location[Zimmer] * location 1.. MS * identifier 1.. MS * display 1.. MS * physicalType 1..1 MS * physicalType = http://terminology.hl7.org/CodeSystem/location-physical-type#ro - * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" + * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType" * location[Bett] * location 1.. MS * identifier 1.. MS * display 1.. MS * physicalType 1..1 MS * physicalType = http://terminology.hl7.org/CodeSystem/location-physical-type#bd - * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ISiKLocationPhysicalType" + * ^comment = "Die Kodierung in diesem Slice entstammt folgendem Valueset - gelistet unter .location.(All slices.)physicalType: https://gematik.de/fhir/isik/ValueSet/ISiKLocationPhysicalType" * serviceProvider MS * identifier 1.. MS * display 1.. MS diff --git a/Resources/input/fsh/aliases.fsh b/Resources/input/fsh/aliases.fsh index 84142538..93f91ec2 100644 --- a/Resources/input/fsh/aliases.fsh +++ b/Resources/input/fsh/aliases.fsh @@ -29,10 +29,10 @@ Alias: $Abrechnungsart = http://fhir.de/CodeSystem/dkgev/Abrechnungsart Alias: $alpha-id = http://fhir.de/ValueSet/bfarm/alpha-id Alias: $condition-related = http://hl7.org/fhir/StructureDefinition/condition-related Alias: $data-absent-reason = http://hl7.org/fhir/StructureDefinition/data-absent-reason -Alias: $diagnosesSCT = https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/DiagnosesSCT -Alias: $ProzedurenKategorieSCT = https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenKategorieSCT +Alias: $diagnosesSCT = https://gematik.de/fhir/isik/ValueSet/DiagnosesSCT +Alias: $ProzedurenKategorieSCT = https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT Alias: $KBV_VS_Base_Practitioner_Speciality = https://fhir.kbv.de/ValueSet/KBV_VS_Base_Practitioner_Speciality -Alias: $ProzedurenCodesSCT = https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenCodesSCT +Alias: $ProzedurenCodesSCT = https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT Alias: $capabilitystatement-expectation = http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation Alias: $kvid10 = http://fhir.de/sid/gkv/kvid-10 Alias: $kvnr30 = http://fhir.de/sid/gkv/kvnr-30 diff --git a/Resources/input/fsh/ruleset.fsh b/Resources/input/fsh/ruleset.fsh index 48b7edaf..bccc5020 100644 --- a/Resources/input/fsh/ruleset.fsh +++ b/Resources/input/fsh/ruleset.fsh @@ -14,5 +14,5 @@ RuleSet: MetaInstance RuleSet: Meta-CapabilityStatement * insert MetaInstance -* implementationGuide = "https://gematik.de/fhir/isik/v3/Basismodul/ImplementationGuide|4.0.0-rc" -* url = "https://gematik.de/fhir/isik/v3/Basismodul/CapabilityStatement/basis-server" \ No newline at end of file +* implementationGuide = "https://gematik.de/fhir/isik/ImplementationGuide|4.0.0-rc" +* url = "https://gematik.de/fhir/isik/CapabilityStatement/basis-server" \ No newline at end of file diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index 20d9625c..b1e08964 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -1,4 +1,4 @@ -canonical: https://gematik.de/fhir/isik/Basismodul +canonical: https://gematik.de/fhir/isik fhirVersion: 4.0.1 FSHOnly: true applyExtensionMetadataToRoot: false diff --git a/project.yaml b/project.yaml index 8c172090..32facac9 100644 --- a/project.yaml +++ b/project.yaml @@ -1,2 +1,2 @@ canonical-claims: - - https://gematik.de/fhir/isik/v3/Basismodul + - https://gematik.de/fhir/isik From afd19f9fc632e54b4f6a9d8667c40cb2659e4b46 Mon Sep 17 00:00:00 2001 From: Max Theilig Date: Mon, 11 Mar 2024 17:48:21 +0100 Subject: [PATCH 32/36] resource diagram observations --- .../images/src/plantuml/resourcediagram.puml | 178 ++++++++++++++---- 1 file changed, 141 insertions(+), 37 deletions(-) diff --git a/Material/images/src/plantuml/resourcediagram.puml b/Material/images/src/plantuml/resourcediagram.puml index a89e88c1..86bbad9b 100644 --- a/Material/images/src/plantuml/resourcediagram.puml +++ b/Material/images/src/plantuml/resourcediagram.puml @@ -34,10 +34,6 @@ set separator none 'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle namespace ISiK_Basis { - class identifierAbrechnungsnummer <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v3/identifierabrechnungsnummer Identifier-Profil]] für die "Fallnummer" - } 'ISiKMedikation::itemReference --> ISiKMedikation class ISiKAbrechnungsfall <<(P,#8DA5C4)>>{ @@ -58,36 +54,6 @@ namespace ISiK_Basis { |_ coverage } - class ISiKAngehoeriger <<(P,#8DA5C4)>>{ - patient : Reference ( **Patient**) - name : HumanName // deutsches Basisprofil - address : Address - |_ Strassenanschrift : Adresse // deutsches BasisprofilPattern - |_ extension - |_ Stadtteil - |_ type : AddressType.both - |_ line - |_ extension - |_ Strasse - |_ Hausnummer - |_ Adresszusatz - |_ Postfach - |_ city - |_ postalCode - |_ country - |_ Postfach : Adresse // deutsches BasisprofilPattern - |_ type : AddressType.postal - |_ line - |_ extension - |_ Strasse - |_ Hausnummer - |_ Adresszusatz - |_ Postfach - |_ city - |_ postalCode - |_ country - } - class ISiKAllergieUnvertraeglichkeit <<(P,#8DA5C4)>>{ clinicalStatus : **AllergyIntoleranceClinicalStatusCodes** |_ coding @@ -151,6 +117,102 @@ namespace ISiK_Basis { |_ text } + class ISiKAngehoeriger <<(P,#8DA5C4)>>{ + patient : Reference ( **Patient**) + name : HumanName // deutsches Basisprofil + address : Address + |_ Strassenanschrift : Adresse // deutsches BasisprofilPattern + |_ extension + |_ Stadtteil + |_ type : AddressType.both + |_ line + |_ extension + |_ Strasse + |_ Hausnummer + |_ Adresszusatz + |_ Postfach + |_ city + |_ postalCode + |_ country + |_ Postfach : Adresse // deutsches BasisprofilPattern + |_ type : AddressType.postal + |_ line + |_ extension + |_ Strasse + |_ Hausnummer + |_ Adresszusatz + |_ Postfach + |_ city + |_ postalCode + |_ country + } + + class ISiKBerichtBundle <<(P,#8DA5C4)>>{ + identifier + type : **document** + timestamp + entry + |_ fullUrl + |_ resource + |_ search + |_ request + |_ response + |_ Composition + |_ resource : **ISiKBerichtSubSysteme** + } + + class ISiKBerichtSubSysteme <<(P,#8DA5C4)>>{ + + } + + namespace Observations { + + class ISiKLebensZustand <<(P,#8DA5C4)>>{ + status : **ObservationStatus** + code + subject : Reference ( **Patient** | \nGroup | Device | Location) + |_ reference + effective[x] + value[x] + } + + class ISiKAlkoholAbusus <<(P,#8DA5C4)>>{ + category : secondary-finding **social-history** + code : snomed sct **15167005** + value[x] + |_ valueBoolean + } + + class ISiKRaucherStatus <<(P,#8DA5C4)>>{ + category : secondary-finding **social-history** + code : snomed sct **77176002** + value[x] + |_ valueBoolean + } + + class ISiKSchwangerschaftErwarteterEntbindungstermin <<(P,#8DA5C4)>>{ + code : **SchwangerschaftEtMethodeVS** + value[x] + |_ valueDateTime + } + + class ISiKSchwangerschaftsstatus <<(P,#8DA5C4)>>{ + code : loinc **82810-3** + value[x] + |_ valueCodeableConcept : **SchwangerschaftsstatusVS** + hasMember : Reference ( **ISiKSchwangerschaftErwarteterEntbindungstermin** ) + |_ reference + } + + class ISiKStillstatus <<(P,#8DA5C4)>>{ + code : snomed sct **1260078007** + value[x] + |_ valueBoolean + } + + + } + namespace ValueSets { class ISiKAccountIdentifierType <<(V,#8DA5C4)>>{ Dokumentation auf Simplifier @@ -169,16 +231,43 @@ namespace ISiK_Basis { **AMB** displays-as **ambulatory** **IMP** displays-as **inpatient encounter** } + + class SchwangerschaftEtMethodeVS <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v4/schwangerschaftetmethodevs Schwangerschaft Estimated Methode]] + Includes following codes from the code System + [[http://loinc.org LOINC]] + -- + **11778-8** displays-as **Delivery date Estimated** + **11779-6** displays-as **Delivery date Estimated** \n** from last menstrual period** + **11780-4** displays-as **Delivery date Estimated** \n** from ovulation date** + } + + class SchwangerschaftsstatusVS <<(V,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v4/schwangerschaftsstatusvs Schwangerschaft Status]] + Includes following codes from the code System + [[http://loinc.org LOINC]] + -- + **LA15173-0** displays-as **Pregnant** + **LA26683-5** displays-as **Not pregnant** + **LA4489-6** displays-as **Unknown** + } } } namespace DE_Basisprofile_R4 { - class Basisprofile_Modul <<(M,#FFAAAA)>>{ + class Basisprofile_DE <<(M,#FFAAAA)>>{ Dokumentation auf HL7 Org [[https://simplifier.net/basisprofil-de-r4 Basisprofil DE (RE4)]] } - + + class identifierAbrechnungsnummer <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[http://fhir.de/StructureDefinition/identifier-abrechnungsnummer Identifier-Profil]] für die Abbildung \neiner Abrechnungsnummer ("Fallnummer") + } + class ExtensionAbrechnungsDiagnoseProzedur <<(E,#7A8495)>>{ Dokumentation auf Simplifier [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656773 Fallbezogene Abrechnungsrelevanz \nvon Diagnosen und Prozeduren]] @@ -211,7 +300,14 @@ namespace HL7_FHIR_R4_Core { Dokumentation auf HL7 Org [[https://hl7.org/fhir/R4/ HL7 FHIR R4 Core Foundation]] } - class AccountStatus <<(V,#8DA5C4)>>{ + + class LOINCCodes <<(V,#8DA5C4)>>{ + Dokumentation auf HL7 Org + [[http://hl7.org/fhir/ValueSet/observation-codes Observation Codes]] + Includes all codes from the underlying code system [[https://loinc.org/ LOINC]] + } + + class AccountStatus <<(V,#8DA5C4)>>{ Dokumentation auf Simplifier [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/82308 Account Status]] Includes all codes from the underlying code System @@ -238,11 +334,19 @@ namespace HL7_FHIR_R4_Core { [[https://hl7.org/fhir/R4/valueset-reaction-event-severity.html Reaction Eventu Severity]] Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-reaction-event-severity.html Code System of Severity]] } + class ObservationCategory <<(V,#8DA5C4)>>{ Dokumentation auf HL7 Org [[https://hl7.org/fhir/R4/valueset-observation-category.html Observation Category]] Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-observation-category.html Code System of Observation Category]] } + + class ObservationStatus <<(V,#8DA5C4)>>{ + Dokumentation auf HL7 Org + [[https://hl7.org/fhir/R4/valueset-observation-status Observation Status]] + Includes all codes from the underlying code system + [[https://hl7.org/fhir/R4/codesystem-observation-status.html Code System of Observation Status]] + } } namespace ISiK_Basis { From ec2b86dcad45f20b16776199e3b34c7f4ffa284b Mon Sep 17 00:00:00 2001 From: MaxMTheilig Date: Mon, 11 Mar 2024 16:49:53 +0000 Subject: [PATCH 33/36] auto-generated diagrams by GitHub Action after source code change --- Material/images/diagrams/resourcediagram.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Material/images/diagrams/resourcediagram.svg b/Material/images/diagrams/resourcediagram.svg index 0c370f21..23d16c86 100644 --- a/Material/images/diagrams/resourcediagram.svg +++ b/Material/images/diagrams/resourcediagram.svg @@ -1 +1 @@ -ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryISiKAllergieUnvertraeglichkeitAllergyIntoleranceclinicalStatus :AllergyIntoleranceClinicalStatusCodescodingsystemcodeverificationStatus :AllergyIntoleranceVerificationStatusCodescodingsystemcodetype :AllergyIntoleranceTypecategory :AllergyIntoleranceCategorycriticality :AllergyIntoleranceCriticalitycodecodingsnomed-ctsystem : http://snomed.info/sctcodedisplayask : http://fhir.de/StructureDefinition/CodingASKsystemcodedisplayatc : http://fhir.de/StructureDefinition/CodingATCsystemversioncodedisplaytextpatient : Reference (Patient)encounter : Reference (Encounter)onset[x]onsetDateTimeonsetAgeonsetStringrecordedDate : dateTimerecorder : Reference (Practitioner| PractitionerRole |Patient| RelatedPerson)referencedisplayasserter: Reference (Patient|RelatedPerson|Practitioner| PractitionerRole)referencedisplaynote : Annotationauthor[x]referencedisplaytimetextreactionmanifestationcodingsnomed-ctsystem : http://snomed.info/sctcodetextseverityexposureRoutecodingsnomed-ctsystem : http://snomed.info/sctcodetextBasismodul_Stufe_4Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount StatusAllergyIntoleranceCriticalityValueSetDokumentation auf HL7 OrgAllergy Intolerance CriticalityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of CriticalityAllergyIntoleranceVerificationStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Verification StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Verification StatusAllergyIntoleranceClinicalStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Clinical StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Clinical StatusReactionEventSeverityValueSetDokumentation auf HL7 OrgReaction Eventu SeverityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of SeverityObservationCategoryValueSetDokumentation auf HL7 OrgObservation CategoryDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Observation Category \ No newline at end of file +ISiK_BasisObservationsValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAllergieUnvertraeglichkeitAllergyIntoleranceclinicalStatus :AllergyIntoleranceClinicalStatusCodescodingsystemcodeverificationStatus :AllergyIntoleranceVerificationStatusCodescodingsystemcodetype :AllergyIntoleranceTypecategory :AllergyIntoleranceCategorycriticality :AllergyIntoleranceCriticalitycodecodingsnomed-ctsystem : http://snomed.info/sctcodedisplayask : http://fhir.de/StructureDefinition/CodingASKsystemcodedisplayatc : http://fhir.de/StructureDefinition/CodingATCsystemversioncodedisplaytextpatient : Reference (Patient)encounter : Reference (Encounter)onset[x]onsetDateTimeonsetAgeonsetStringrecordedDate : dateTimerecorder : Reference (Practitioner| PractitionerRole |Patient| RelatedPerson)referencedisplayasserter: Reference (Patient|RelatedPerson|Practitioner| PractitionerRole)referencedisplaynote : Annotationauthor[x]referencedisplaytimetextreactionmanifestationcodingsnomed-ctsystem : http://snomed.info/sctcodetextseverityexposureRoutecodingsnomed-ctsystem : http://snomed.info/sctcodetextISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryISiKBerichtBundleBundleidentifiertype :documenttimestampentryfullUrlresource search request responseCompositionresource :ISiKBerichtSubSystemeISiKBerichtSubSystemeBundleBasismodul_Stufe_4Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKLebensZustandObservationstatus :ObservationStatuscodesubject : Reference (Patient|Group | Device | Location)referenceeffective[x]value[x]ISiKAlkoholAbususObservationcategory : secondary-findingsocial-historycode : snomed sct15167005value[x]valueBooleanISiKRaucherStatusObservationcategory : secondary-findingsocial-historycode : snomed sct77176002value[x]valueBooleanISiKSchwangerschaftErwarteterEntbindungsterminObservationcode :SchwangerschaftEtMethodeVSvalue[x]valueDateTimeISiKSchwangerschaftsstatusObservationcode : loinc82810-3value[x]valueCodeableConcept :SchwangerschaftsstatusVShasMember : Reference (ISiKSchwangerschaftErwarteterEntbindungstermin)referenceISiKStillstatusObservationcode : snomed sct1260078007value[x]valueBooleanISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterSchwangerschaftEtMethodeVSValueSetDokumentation auf SimplifierSchwangerschaft Estimated MethodeIncludes following codes from the code SystemLOINC11778-8displays-asDelivery date Estimated11779-6displays-asDelivery date Estimated from last menstrual period11780-4displays-asDelivery date Estimated from ovulation dateSchwangerschaftsstatusVSValueSetDokumentation auf SimplifierSchwangerschaft StatusIncludes following codes from the code SystemLOINCLA15173-0displays-asPregnantLA26683-5displays-asNot pregnantLA4489-6displays-asUnknownBasisprofile_DEDokumentation auf HL7 OrgBasisprofil DE (RE4)identifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die Abbildungeiner Abrechnungsnummer ("Fallnummer")ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationLOINCCodesValueSetDokumentation auf HL7 OrgObservation CodesIncludes all codes from the underlying code systemLOINCAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount StatusAllergyIntoleranceCriticalityValueSetDokumentation auf HL7 OrgAllergy Intolerance CriticalityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of CriticalityAllergyIntoleranceVerificationStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Verification StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Verification StatusAllergyIntoleranceClinicalStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Clinical StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Clinical StatusReactionEventSeverityValueSetDokumentation auf HL7 OrgReaction Eventu SeverityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of SeverityObservationCategoryValueSetDokumentation auf HL7 OrgObservation CategoryDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Observation CategoryObservationStatusValueSetDokumentation auf HL7 OrgObservation StatusIncludes all codes from the underlying code systemCode System of Observation Status \ No newline at end of file From 8e49299992fa11627b77508ed079d31840657525 Mon Sep 17 00:00:00 2001 From: f-peverali <112709306+f-peverali@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:24:25 +0100 Subject: [PATCH 34/36] update ruleset for CpS --- ...apabilityStatement-ISiKCapabilityStatementBasisServer.json | 4 ++-- Resources/input/fsh/ruleset.fsh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json index 6bab2ef5..aca62b00 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json @@ -1,14 +1,14 @@ { "resourceType": "CapabilityStatement", "id": "ISiKCapabilityStatementBasisServer", - "url": "https://gematik.de/fhir/isik/CapabilityStatement/basis-server", + "url": "https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementBasisServer", "version": "4.0.0-rc", "status": "draft", "experimental": false, "publisher": "gematik GmbH", "date": "2024-01-16", "implementationGuide": [ - "https://gematik.de/fhir/isik/ImplementationGuide|4.0.0-rc" + "https://gematik.de/fhir/isik/ImplementationGuide/ISiK-Basismodul" ], "name": "ISiKCapabilityStatementBasisServer", "title": "ISiK CapabilityStatement Basis Server", diff --git a/Resources/input/fsh/ruleset.fsh b/Resources/input/fsh/ruleset.fsh index bccc5020..c32bfdd2 100644 --- a/Resources/input/fsh/ruleset.fsh +++ b/Resources/input/fsh/ruleset.fsh @@ -14,5 +14,5 @@ RuleSet: MetaInstance RuleSet: Meta-CapabilityStatement * insert MetaInstance -* implementationGuide = "https://gematik.de/fhir/isik/ImplementationGuide|4.0.0-rc" -* url = "https://gematik.de/fhir/isik/CapabilityStatement/basis-server" \ No newline at end of file +* implementationGuide = "https://gematik.de/fhir/isik/ImplementationGuide/ISiK-Basismodul" +* url = "https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementBasisServer" \ No newline at end of file From 9a471f1c143ed0031f9f80787fff5aeba9352df0 Mon Sep 17 00:00:00 2001 From: patrick-werner Date: Thu, 14 Mar 2024 13:10:48 +0100 Subject: [PATCH 35/36] fix: re-added IG Menu structure for Lebenszustand --- ...lementierungsleitfaden_ISiKBasismodul.json | 37 ++++++++++++++ .../Datenobjekte_Lebenszustand.md | 3 ++ ...tand_AnmerkungenZuDenMustSupportFeldern.md | 14 +++--- .../Lebenszustand_Interaktionen.md | 10 +--- Resources/fsh-generated/fsh-index.json | 48 +++++++++---------- Resources/fsh-generated/fsh-index.txt | 26 +++++----- ...Observation-ISiKAlkoholAbususBeispiel.json | 5 +- ...Observation-ISiKRaucherStatusBeispiel.json | 5 +- ...ftErwarteterEntbindungsterminBeispiel.json | 5 +- ...on-ISiKSchwangerschaftsstatusBeispiel.json | 5 +- .../Observation-ISiKStillstatusBeispiel.json | 5 +- ...StructureDefinition-ISiKLebensZustand.json | 5 ++ .../fsh/ISiKLebenszustandOberservations.fsh | 9 +++- 13 files changed, 119 insertions(+), 58 deletions(-) create mode 100644 ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Lebenszustand.md diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index b9b50275..e964e364 100644 --- a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -334,6 +334,43 @@ } ] }, + { + "nameUrl": "ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Lebenszustand.md", + "title": "Lebenszustand (Observation)", + "generation": "markdown", + "page": [ + { + "nameUrl": "ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Motivation.md", + "title": "Motivation", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Kompatibilitaet.md", + "title": "Kompatibilität", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Profil.md", + "title": "Profil", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md", + "title": "Anmerkungen zu den Must-Support Feldern", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md", + "title": "Interaktionen", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Beispiele.md", + "title": "Beispiele", + "generation": "markdown" + } + ] + }, { "nameUrl": "ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Prozedur.md", "title": "Prozedur (Procedure)", diff --git a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Lebenszustand.md b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Lebenszustand.md new file mode 100644 index 00000000..3677adcf --- /dev/null +++ b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Lebenszustand.md @@ -0,0 +1,3 @@ +## Lebenszustand [(Observation)](https://hl7.org/fhir/R4/observation.html) + +--- diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md index f1b08f10..f6f30c5b 100644 --- a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_AnmerkungenZuDenMustSupportFeldern.md @@ -1,27 +1,29 @@ ### Anmerkungen zu den Must-Support-Feldern ### `Observation.category` - **Bedeutung:** Kategorie-Code der die Untersuchung kategorisiert. ### `Observation.code` - **Bedeutung:** Code der die Untersuchung repräsentiert und kodiert. ### `Observation.subject` - **Bedeutung:** Ein Patientenbezug der Observation MUSS stets zum Zwecke der Nachvollziehbarkeit und Datenintegrität vorliegen. ### `Observation.effective[x]` - **Bedeutung:** Klinisch relevanter Zeitpunkt/Zeitspanne für die Observation. ### `Observation.value[x] (valueDateTime, valueBoolean)` - **Bedeutung:** Erfasster Wert der Observation. Es müssen Datum und boolesche Werte supportet werden. ### `Observation.hasMember` - **Bedeutung:** Weitere Observation die mit dieser Observation gemeinsam zu betrachten ist. +### `Observation.encounter` +**Bedeutung:** Der Fallbezug einer Observation MUSS stets zum Zwecke der Nachvollziehbarkeit und Datenintegrität vorliegen. + +**Hinweise:** + +Eine Verlinkung der Referenz auf den dazugehörigen Kontakt SOLL auf die Ebene des Abteilungskontaktes (entsprechend ISiKKontaktGesundheitseinrichtung) erfolgen. +Bei der Auswahl des Kontaktes ist zu beachten, dass mehrere Encounter-Ressourcen mit identischen Aufnahmenummer-Identifiern existieren können (Abbildung Vor- und nachstationäre Kontakte). + --- diff --git a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md index 8afc53ed..b360381d 100644 --- a/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md +++ b/ImplementationGuide/markdown/Lebenszustand/Lebenszustand_Interaktionen.md @@ -1,6 +1,6 @@ ### Interaktionen -Für die Ressource Practitioner MUSS die REST-Interaktion "READ" implementiert werden. +Für die Ressource Observation MUSS die REST-Interaktion "READ" implementiert werden. Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Kombination: @@ -96,12 +96,4 @@ Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Ko Anwendungshinweise: Weitere Informationen zur Suche nach "encounter" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). -1. Der Suchparameter "encounter" MUSS unterstützt werden: - - Beispiel: - - ```GET [base]/Observation?encounter=Encounter/234``` - - Anwendungshinweise: Weitere Informationen zur Suche nach "encounter" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). - --- diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json index aa326544..d7a1215d 100644 --- a/Resources/fsh-generated/fsh-index.json +++ b/Resources/fsh-generated/fsh-index.json @@ -164,48 +164,48 @@ "fshName": "ISiKAlkoholAbususBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 69, - "endLine": 77 + "startLine": 72, + "endLine": 81 }, { "outputFile": "Observation-ISiKRaucherStatusBeispiel.json", "fshName": "ISiKRaucherStatusBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 89, - "endLine": 97 + "startLine": 93, + "endLine": 102 }, { "outputFile": "Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json", "fshName": "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 49, - "endLine": 57 + "startLine": 51, + "endLine": 60 }, { "outputFile": "Observation-ISiKSchwangerschaftsstatusBeispiel.json", "fshName": "ISiKSchwangerschaftsstatusBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 30, - "endLine": 38 + "startLine": 31, + "endLine": 40 }, { "outputFile": "Observation-ISiKStillstatusBeispiel.json", "fshName": "ISiKStillstatusBeispiel", "fshType": "Instance", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 109, - "endLine": 118 + "startLine": 114, + "endLine": 124 }, { "outputFile": "Patient-PatientinMusterfrau.json", "fshName": "PatientinMusterfrau", "fshType": "Instance", "fshFile": "ISiKPatient.fsh", - "startLine": 108, - "endLine": 158 + "startLine": 116, + "endLine": 166 }, { "outputFile": "Patient-PatientinMusterfrauMinimal.json", @@ -268,8 +268,8 @@ "fshName": "ISiKAlkoholAbusus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 59, - "endLine": 67 + "startLine": 62, + "endLine": 70 }, { "outputFile": "StructureDefinition-ISiKAllergieUnvertraeglichkeit.json", @@ -341,7 +341,7 @@ "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", "startLine": 1, - "endLine": 13 + "endLine": 14 }, { "outputFile": "StructureDefinition-ISiKPatient.json", @@ -349,7 +349,7 @@ "fshType": "Profile", "fshFile": "ISiKPatient.fsh", "startLine": 1, - "endLine": 106 + "endLine": 114 }, { "outputFile": "StructureDefinition-ISiKPersonImGesundheitsberuf.json", @@ -372,32 +372,32 @@ "fshName": "ISiKRaucherStatus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 79, - "endLine": 87 + "startLine": 83, + "endLine": 91 }, { "outputFile": "StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json", "fshName": "ISiKSchwangerschaftErwarteterEntbindungstermin", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 40, - "endLine": 47 + "startLine": 42, + "endLine": 49 }, { "outputFile": "StructureDefinition-ISiKSchwangerschaftsstatus.json", "fshName": "ISiKSchwangerschaftsstatus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 16, - "endLine": 28 + "startLine": 17, + "endLine": 29 }, { "outputFile": "StructureDefinition-ISiKStillstatus.json", "fshName": "ISiKStillstatus", "fshType": "Profile", "fshFile": "ISiKLebenszustandOberservations.fsh", - "startLine": 99, - "endLine": 107 + "startLine": 104, + "endLine": 112 }, { "outputFile": "StructureDefinition-ISiKValueSet.json", diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt index 60e65cc8..d223ca2b 100644 --- a/Resources/fsh-generated/fsh-index.txt +++ b/Resources/fsh-generated/fsh-index.txt @@ -19,12 +19,12 @@ Coverage-CoverageGesetzlich.json Coverag Coverage-CoveragePrivat.json CoveragePrivat Instance ISiKVersicherungsverhaeltnisSelbstzahler.fsh 16 - 22 Encounter-Fachabteilungskontakt.json Fachabteilungskontakt Instance ISiKKontaktGesundheitseinrichtung.fsh 136 - 173 Encounter-FachabteilungskontaktMinimal.json FachabteilungskontaktMinimal Instance ISiKBerichtBundle.fsh 55 - 68 -Observation-ISiKAlkoholAbususBeispiel.json ISiKAlkoholAbususBeispiel Instance ISiKLebenszustandOberservations.fsh 69 - 77 -Observation-ISiKRaucherStatusBeispiel.json ISiKRaucherStatusBeispiel Instance ISiKLebenszustandOberservations.fsh 89 - 97 -Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel Instance ISiKLebenszustandOberservations.fsh 49 - 57 -Observation-ISiKSchwangerschaftsstatusBeispiel.json ISiKSchwangerschaftsstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 30 - 38 -Observation-ISiKStillstatusBeispiel.json ISiKStillstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 109 - 118 -Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 108 - 158 +Observation-ISiKAlkoholAbususBeispiel.json ISiKAlkoholAbususBeispiel Instance ISiKLebenszustandOberservations.fsh 72 - 81 +Observation-ISiKRaucherStatusBeispiel.json ISiKRaucherStatusBeispiel Instance ISiKLebenszustandOberservations.fsh 93 - 102 +Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel Instance ISiKLebenszustandOberservations.fsh 51 - 60 +Observation-ISiKSchwangerschaftsstatusBeispiel.json ISiKSchwangerschaftsstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 31 - 40 +Observation-ISiKStillstatusBeispiel.json ISiKStillstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 114 - 124 +Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 116 - 166 Patient-PatientinMusterfrauMinimal.json PatientinMusterfrauMinimal Instance ISiKBerichtBundle.fsh 41 - 53 Practitioner-PractitionerWalterArzt.json PractitionerWalterArzt Instance ISiKPersonImGesundheitsberuf.fsh 93 - 128 Procedure-Appendektomie.json Appendektomie Instance ISiKProzedur.fsh 52 - 65 @@ -32,7 +32,7 @@ RelatedPerson-ISiKAngehoerigerMustermann.json ISiKAng SearchParameter-Encounter-date-start.json Encounter-date-start Instance ISiKKontaktGesundheitseinrichtung.fsh 216 - 234 SearchParameter-Encounter-end-date.json Encounter-end-date Instance ISiKKontaktGesundheitseinrichtung.fsh 236 - 254 StructureDefinition-ISiKAbrechnungsfall.json ISiKAbrechnungsfall Profile ISiKAbrechnungsfall.fsh 1 - 29 -StructureDefinition-ISiKAlkoholAbusus.json ISiKAlkoholAbusus Profile ISiKLebenszustandOberservations.fsh 59 - 67 +StructureDefinition-ISiKAlkoholAbusus.json ISiKAlkoholAbusus Profile ISiKLebenszustandOberservations.fsh 62 - 70 StructureDefinition-ISiKAllergieUnvertraeglichkeit.json ISiKAllergieUnvertraeglichkeit Profile ISiKAllergieUnvertraeglichkeit.fsh 1 - 105 StructureDefinition-ISiKAngehoeriger.json ISiKAngehoeriger Profile ISiKAngehoeriger.fsh 1 - 45 StructureDefinition-ISiKBerichtBundle.json ISiKBerichtBundle Profile ISiKBerichtBundle.fsh 1 - 22 @@ -41,14 +41,14 @@ StructureDefinition-ISiKBinary.json ISiKBin StructureDefinition-ISiKCodeSystem.json ISiKCodeSystem Profile ISiKCodeSystem.fsh 1 - 15 StructureDefinition-ISiKDiagnose.json ISiKDiagnose Profile ISiKDiagnose.fsh 1 - 55 StructureDefinition-ISiKKontaktGesundheitseinrichtung.json ISiKKontaktGesundheitseinrichtung Profile ISiKKontaktGesundheitseinrichtung.fsh 1 - 120 -StructureDefinition-ISiKLebensZustand.json ISiKLebensZustand Profile ISiKLebenszustandOberservations.fsh 1 - 13 -StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 106 +StructureDefinition-ISiKLebensZustand.json ISiKLebensZustand Profile ISiKLebenszustandOberservations.fsh 1 - 14 +StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 114 StructureDefinition-ISiKPersonImGesundheitsberuf.json ISiKPersonImGesundheitsberuf Profile ISiKPersonImGesundheitsberuf.fsh 1 - 89 StructureDefinition-ISiKProzedur.json ISiKProzedur Profile ISiKProzedur.fsh 1 - 50 -StructureDefinition-ISiKRaucherStatus.json ISiKRaucherStatus Profile ISiKLebenszustandOberservations.fsh 79 - 87 -StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json ISiKSchwangerschaftErwarteterEntbindungstermin Profile ISiKLebenszustandOberservations.fsh 40 - 47 -StructureDefinition-ISiKSchwangerschaftsstatus.json ISiKSchwangerschaftsstatus Profile ISiKLebenszustandOberservations.fsh 16 - 28 -StructureDefinition-ISiKStillstatus.json ISiKStillstatus Profile ISiKLebenszustandOberservations.fsh 99 - 107 +StructureDefinition-ISiKRaucherStatus.json ISiKRaucherStatus Profile ISiKLebenszustandOberservations.fsh 83 - 91 +StructureDefinition-ISiKSchwangerschaftErwarteterEntbindungstermin.json ISiKSchwangerschaftErwarteterEntbindungstermin Profile ISiKLebenszustandOberservations.fsh 42 - 49 +StructureDefinition-ISiKSchwangerschaftsstatus.json ISiKSchwangerschaftsstatus Profile ISiKLebenszustandOberservations.fsh 17 - 29 +StructureDefinition-ISiKStillstatus.json ISiKStillstatus Profile ISiKLebenszustandOberservations.fsh 104 - 112 StructureDefinition-ISiKValueSet.json ISiKValueSet Profile ISiKValueSet.fsh 1 - 22 StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVersicherungsverhaeltnisGesetzlich Profile ISiKVersicherungsverhaeltnisGesetzlich.fsh 1 - 41 StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 diff --git a/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json index 2c52355c..daa796f4 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKAlkoholAbususBeispiel.json @@ -20,5 +20,8 @@ "reference": "Patient/PatientinMusterfrau" }, "effectiveDateTime": "2024-01-01", - "valueBoolean": false + "valueBoolean": false, + "encounter": { + "reference": "Encounter/Fachabteilungskontakt" + } } diff --git a/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json index fb862297..d23cb53e 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKRaucherStatusBeispiel.json @@ -20,5 +20,8 @@ "reference": "Patient/PatientinMusterfrau" }, "effectiveDateTime": "2024-01-01", - "valueBoolean": true + "valueBoolean": true, + "encounter": { + "reference": "Encounter/Fachabteilungskontakt" + } } diff --git a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json index 1b702513..bc29c0fe 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json @@ -20,5 +20,8 @@ "reference": "Patient/PatientinMusterfrau" }, "effectiveDateTime": "2024-01-01", - "valueDateTime": "2024-08-01" + "valueDateTime": "2024-08-01", + "encounter": { + "reference": "Encounter/Fachabteilungskontakt" + } } diff --git a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json index a9e701d4..3c68d0bd 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKSchwangerschaftsstatusBeispiel.json @@ -32,5 +32,8 @@ { "reference": "Observation/ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel" } - ] + ], + "encounter": { + "reference": "Encounter/Fachabteilungskontakt" + } } diff --git a/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json b/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json index a246743b..0d934c72 100644 --- a/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json +++ b/Resources/fsh-generated/resources/Observation-ISiKStillstatusBeispiel.json @@ -20,5 +20,8 @@ "reference": "Patient/PatientinMusterfrau" }, "effectiveDateTime": "2024-01-01", - "valueBoolean": true + "valueBoolean": true, + "encounter": { + "reference": "Encounter/Fachabteilungskontakt" + } } diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json index c5a7b4fb..1abbbfa7 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json @@ -72,6 +72,11 @@ "min": 1, "mustSupport": true }, + { + "id": "Observation.encounter", + "path": "Observation.encounter", + "mustSupport": true + }, { "id": "Observation.effective[x]", "path": "Observation.effective[x]", diff --git a/Resources/input/fsh/ISiKLebenszustandOberservations.fsh b/Resources/input/fsh/ISiKLebenszustandOberservations.fsh index c60363df..ac8cd3d8 100644 --- a/Resources/input/fsh/ISiKLebenszustandOberservations.fsh +++ b/Resources/input/fsh/ISiKLebenszustandOberservations.fsh @@ -5,12 +5,14 @@ Title: "ISiKLebensZustand" Description: "Basisprofil für ISiKLebensZustand Observation" * insert Meta * status MS +* category MS * code MS * subject 1.. MS * reference 1.. MS * effective[x] 1..1 MS * effective[x] only dateTime or Period * value[x] MS +* encounter MS Profile: ISiKSchwangerschaftsstatus @@ -36,6 +38,7 @@ Title: "ISiKSchwangerschaftsstatusBeispiel" * effectiveDateTime = "2024-01-01" * valueCodeableConcept = $loinc#LA15173-0 "Pregnant" * hasMember = Reference(ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel) +* encounter = Reference(Fachabteilungskontakt) Profile: ISiKSchwangerschaftErwarteterEntbindungstermin Parent: ISiKLebensZustand @@ -55,6 +58,7 @@ Title: "ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel" * subject = Reference(PatientinMusterfrau) * effectiveDateTime = "2024-01-01" * valueDateTime = "2024-08-01" +* encounter = Reference(Fachabteilungskontakt) Profile: ISiKAlkoholAbusus Parent: ISiKLebensZustand @@ -75,6 +79,7 @@ Title: "ISiKAlkoholAbususBeispiel" * subject = Reference(PatientinMusterfrau) * effectiveDateTime = "2024-01-01" * valueBoolean = false +* encounter = Reference(Fachabteilungskontakt) Profile: ISiKRaucherStatus Parent: ISiKLebensZustand @@ -95,6 +100,7 @@ Title: "ISiKRaucherStatusBeispiel" * subject = Reference(PatientinMusterfrau) * effectiveDateTime = "2024-01-01" * valueBoolean = true +* encounter = Reference(Fachabteilungskontakt) Profile: ISiKStillstatus Parent: ISiKLebensZustand @@ -115,4 +121,5 @@ Description: "ISiKStillstatusBeispiel" * status = #final * subject = Reference(PatientinMusterfrau) * effectiveDateTime = "2024-01-01" -* valueBoolean = true \ No newline at end of file +* valueBoolean = true +* encounter = Reference(Fachabteilungskontakt) \ No newline at end of file From 74028aaf3166e480cac612ad46ba160c8a0f3987 Mon Sep 17 00:00:00 2001 From: patrick-werner Date: Thu, 14 Mar 2024 12:15:23 +0000 Subject: [PATCH 36/36] auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation) --- .../resources/StructureDefinition-ISiKLebensZustand.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json index 1abbbfa7..f171fdad 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKLebensZustand.json @@ -55,6 +55,11 @@ "path": "Observation.status", "mustSupport": true }, + { + "id": "Observation.category", + "path": "Observation.category", + "mustSupport": true + }, { "id": "Observation.code", "path": "Observation.code",