diff --git a/nbs/01_mts.ipynb b/nbs/01_mts.ipynb new file mode 100644 index 0000000..ea4780a --- /dev/null +++ b/nbs/01_mts.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# mts\n", + "\n", + "> mts ist ein Web Tool, welches Rechnungen aus einem bestehenden CRM/ERP in das im Schweizer Gesundheitswesen verwendete GeneralInvoice-XML-Format umwandelt und via MediData an die Invalidenversicherung (IV) weiterreicht. Daten-Empfänger für alle IV-Stellen der Schweiz ist die Zentrale Ausgleichsstelle ZAS. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| default_exp matlon_mts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| hide\n", + "#| echo: false\n", + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| hide\n", + "from nbdev.showdoc import *\n", + "from IPython.display import Markdown\n", + "from matlon.model import *\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(Because this is a tool specifically for the Swiss healthcare system, this page is in German instead of English.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Wozu mts?\n", + "Zitat von der [ZAS-Website](https://www.zas.admin.ch/zas/de/home/partenaires-et-institutions-/paiement-des-prestations-individuelles-avs-ai/information-a-l-attention-des-fournisseurs-de-prestations.html):\n", + "\n", + "> \"Die ZAS strebt langfristig eine fast ausschliesslich elektronische Bearbeitung von Rechnungen für individuelle AHV/IV-Leistungen an.\"\n", + "\n", + "Leistungserbringer, deren Software nicht in der Lage ist, Rechnungen in das GeneralInvoice-XML-Format zu exportieren und zu übermitteln, stellt dies vor grosse Herausforderungen. Sie müssen entweder auf eine neue Software umsteigen, oder die Rechnungen nochmals mit allen Details manuell in einem Web-Formular erfassen.\n", + "\n", + "Mit __mts__ bietet matlon ein schlankes Tool an, welches alle notwendigen Rechnungsdaten aus dem vorhandenen CRM/ERP exportiert, validiert und in das GeneralInvoice-XML-Format umwandelt. mts orchestriert die anschliessende Übermittlung dieser Daten via MediData-Netz an die ZAS und die Verarbeitung und Quittierung allfälliger Rückweisungs-Meldungen der ZAS / IV-Stellen.\n", + "\n", + "Screenshot:\n", + "![mts Dashboard](mts1.jpg)\n", + "\n", + "## Welche CRM/ERP-Systeme werden unterstützt?\n", + "Wir programmieren im Rahmen eines Projekts einen Adapter, der exakt zu Ihrem vorhandenen System und den dortigen Datenstrukturen passt.\n", + "Für [b-at.ch](https://www.b-at.ch) haben wir beispielsweise einen Adapter geschrieben, der die Daten aus der [Teamleader](https://www.teamleader.eu)-Software exportiert.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Diagramme\n", + "## Sequenzdiagramm\n", + "```{mermaid}\n", + "sequenceDiagram\n", + " actor User as Benutzer\n", + " participant CRM as CRM
z.B. Teamleader\n", + " participant mts as mts
CRM Daten zu generalInvoice XML Format
Daten-Konverter Plattform für Leistungsabrechnungen\n", + " participant MediData\n", + " participant D as Empfänger
z.B. IV/ZAS\n", + " User->>CRM: Rechnung erstellen\n", + " mts->>+CRM: neue Rechnungen abholen\n", + " mts->>+mts: Rechnungen validieren und als XML aufbereiten\n", + " activate mts\n", + " User->>mts: Prüfen und Freigabe\n", + " mts->>MediData: Rechnung übermitteln\n", + " mts->>CRM: Status-Notiz erstellen\n", + " deactivate mts\n", + " MediData->>+D: Rechnung weiterreichen\n", + " D->>D: Rechnung prüfen, falls abgewiesen: Nachricht\n", + " D->>+MediData: Resultat zurückmelden\n", + " activate mts\n", + " mts->>+MediData: Resultate und Nachrichten abholen\n", + " mts->>+CRM: Status-Notiz erstellen\n", + " deactivate mts\n", + " User->>mts: Nachrichten ansehen und Quittieren\n", + "```\n", + "## Statusdiagramm\n", + "```{mermaid}\n", + "stateDiagram-v2\n", + " [*] --> ignoriert: Ignorieren Aktion\n", + " [*] --> registriert: Sync Aktion\n", + " registriert --> validiert: Validierung erfolgreich\n", + " registriert --> Validierung_fehlgeschlagen: Validierungsfehler\n", + " Validierung_fehlgeschlagen --> validiert: Sync Aktion\n", + " validiert --> exportiert_zu_MediData: Zu MediData hochladen Aktion\n", + " validiert --> validiert: Sync Aktion\n", + " validiert --> ignoriert: Ignorieren Aktion\n", + " validiert --> Export_zu_MediData_fehlgeschlagen: Zu MediData hochladen Aktion, MediData nicht erreichbar\n", + " exportiert_zu_MediData --> akzeptiert: Zahlungseingang\n", + " exportiert_zu_MediData --> zurückgewiesen: Antwort oder Notifikation\n", + " Export_zu_MediData_fehlgeschlagen --> exportiert_zu_MediData: Zu MediData hochladen Aktion\n", + " zurückgewiesen --> [*]: Nachdem Antwort oder Notifikation bestätigt wurde\n", + " akzeptiert --> [*]\n", + " ignoriert --> [*]\n", + " \n", + " note right of registriert: temporärer Übergangsstatus\n", + " \n", + " classDef transient stroke-dasharray: 5 5, fill: white\n", + " class registriert transient\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Interessiert?\n", + "Kontaktieren Sie [Andri Krämer](mailto:akraemer@matlon.ch).\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nützliche Links\n", + "- [ZAS Infos zur elektronischen Rechnungsstellung AHV/IV](https://www.zas.admin.ch/zas/de/home/partenaires-et-institutions-/paiement-des-prestations-individuelles-avs-ai/information-a-l-attention-des-fournisseurs-de-prestations/fournisseur_de_prestations.html)\n", + "- [Forum Datenaustausch: Elektronische Kommunikation im Gesundheitswesen](https://www.forum-datenaustausch.ch/de/)\n", + "- [MediData](https://www.medidata.ch/md/web/de/)\n", + "- [b-at AG Beratung assistive Technologien](https://www.b-at.ch) (Referenzkunde)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| hide\n", + "import nbdev; nbdev.nbdev_export()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "python3", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/nbs/10_andri.ipynb b/nbs/10_andri.ipynb index 493644a..5708e00 100644 --- a/nbs/10_andri.ipynb +++ b/nbs/10_andri.ipynb @@ -312,6 +312,18 @@ " i += 1\n" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| echo: false\n", + "if i < len(projects):\n", + " display(Markdown(project_to_markdown(projects[i])))\n", + " i += 1\n" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/nbs/index.ipynb b/nbs/index.ipynb index 47a177c..ebebece 100644 --- a/nbs/index.ipynb +++ b/nbs/index.ipynb @@ -22,8 +22,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As a kid, whenever someone asked what I wanted to be when I grew up, I’d always say, 'an inventor.' Starting October 23, 2024, I'll be documenting my projects. So stay tuned and follow me as the website grows! \n", + "As a kid, whenever someone asked what I wanted to be when I grew up, I’d always say, 'an inventor.' Here, I am documenting my projects. So stay tuned and follow me as the website grows! \n", "\n", + "* 2025-01-31: [mts](/01_mts.ipynb) ermöglicht Leistungserbringern, Rechnungen aus ihrem bestehenden CMS/ERP im GeneralInvoice-XML-Format auf elektronischem Weg via MediData an die Invalidenversicherung (IV) zu senden\n", "* 2024-11-16: [Running Wheel Tracker](/10_andri.ipynb#running-wheel-tracker) Pet cage upgraded for the IoT era\n", "* 2024-11-14: [Andri's CV](/11_andri_cv.ipynb) Joyfully bound to the endless journey of learning\n", "* 2024-11-08: [chat-export, 2024-](/10_andri.ipynb#chat-export) My father asked me how he could print his WhatsApp chat history with my late brother. I had to realize that this was not possible, and there was no useful free tool to archive or print a chat in a nice format. So, I wrote one.\n", diff --git a/nbs/mts1.jpg b/nbs/mts1.jpg new file mode 100644 index 0000000..73e8053 Binary files /dev/null and b/nbs/mts1.jpg differ diff --git a/nbs/projects.json b/nbs/projects.json index 4cef49c..0d300e6 100644 --- a/nbs/projects.json +++ b/nbs/projects.json @@ -109,6 +109,12 @@ "year_start": 2024, "quote": "Write assessment reports for assistive technologies using AI", "description": "batGPT is an AI tool for writing assessment reports for assistive technologies, using large language models (LLMs). By selecting keywords and entering short text fragments, a draft report is generated, which can then be manually completed and refined. The screenshot shows an example of such a draft\n\n ![Screenshot of batGPT: Input on the left, generated output on the right.](batgpt1.jpg)\n\nThis application was developed for [b-at Beratung assistive Technologien](https://b-at.ch) in 2024 and is being enhhanced and improved regularly, using the latest AI models and capabilities." + },{ + "title": "mts", + "categories": ["miscellaneous"], + "year_start": 2025, + "quote": "A tool for electronic billing in the Swiss healthcare system", + "description": "There's a dedicated page for this project (in German): [mts](/01_mts.ipynb)" },{ "title": "chat-export", "categories": ["miscellaneous"], diff --git a/nbs/sidebar.yml b/nbs/sidebar.yml index 9083898..8440069 100644 --- a/nbs/sidebar.yml +++ b/nbs/sidebar.yml @@ -2,6 +2,7 @@ website: sidebar: contents: - index.ipynb + - 01_mts.ipynb - section: Andri Krämer contents: - 10_andri.ipynb