@kbv/mioparser

Typescript Package to parse KBV MIO-Objects into Typescript objects


Keywords
mio, fhir, kbv, parser
License
Apache-2.0
Install
npm install @kbv/mioparser@1.8.0

Documentation

Vue logo

Build License Lint: eslint code style: prettier

MIO Parser

Der MIO Parser ist ein JavaScript/TypeScript Package zum Parsen von medizinischen Informationsobjekten (MIO). MIOs dienen dazu, medizinische Daten - etwa in einer elektronischen Patientenakte - standardisiert, also nach einem festgelegten Format, zu dokumentieren. Sie können als kleine digitale Informationsbausteine verstanden werden, die universell verwendbar und kombinierbar sind. Beispiele für bereits entwickelte MIOs sind der Impfpass und das zahnärztliche Bonusheft. Mehr dazu auf https://mio.kbv.de.

Der Parser liest gültige JSON- und XML-FHIR Dokumente und gibt sie als Typescript-Objekte zurück. Gleichzeitig findet eine Validierung der Dokumente statt, sodass Fehler in den MIO-Dokumenten sichtbar werden.

Hintergrund

Ab dem Jahr 2022 werden in der elektronische Patientenakte MIOs für alle Versicherten in Deutschland eingeführt. Die KBV hat den gesetzlichen Auftrag, die semantische und syntaktische Interoperabilität für Inhalte der elektronischen Patientenakte festzulegen. Zu diesem Zweck entwickelt die KBV die medizinischen Informationsobjekte, mit dem Ziel einen einheitlichen Standard zur Übertragung und Verarbeitung von medizinischen Daten zu definieren. Die MIOs werden in HL7® FHIR® profiliert.

Der MIO Parser ist ein Tool der KBV, um die Umsetzung der MIOs in IT-Systemen der medizinischen Versorgung (beispielsweise KIS, PVS und Apps der Versicherten) zu unterstützen. Hierfür wird es zur freien Nutzung zur Verfügung gestellt.

Allgemeines

Diese Anweisungen sollen helfen, den Parser zu installieren und zu nutzen.

Anforderungen

Node Version NPM Version

Node.js mit NPM muss installiert sein.

Abhängigkeiten

Installation

Über den Node Package Manager.
(NPM wird für die Installation benötigt)

# latest stable
$ npm install @kbv/mioparser

Alternativ kann die Software selbst über Git geladen und gebaut werden:

$ git clone https://github.com/kassenaerztliche-bundesvereinigung/mioparser.git
$ cd mioparser
$ npm install
$ npm build

Grundlegende Nutzung

Importieren des Parser Pakets

import MIOParser, { MIOParserResult, ZAEB } from "@kbv/mioparser";

const mioParser = new MIOParser();

Parsen in einer asynchronen Funktion

const result: MIOParserResult = await mioParser.parseFile(...);

Oder als Promise

mioParser.parseString("...").then((result) => {
    // ...
});

Auswertung

const mio = result.value;
const errors = result.errors;

// Bundle
if (ZAEB.V1_1_0.Profile.Bundle.is(mio)) {
    const zaeb = mio as ZAEB.V1_1_0.Profile.Bundle;
    // ...
}

// Single Profile
if (ZAEB.V1_1_0.Profile.Patient.is(mio)) {
    const patient = mio as ZAEB.V1_1_0.Profile.Patient;
    // ...
}

MIOs

Welche MIOs verarbeitet werden können kann dem Changelog entnommen werden.

import { Vaccination, ZAEB, MR } from "mioparser";

Für weiterführende Informationen zu den medizinischen Informationsobjekten besuche die MIO-Plattform oder die KBV auf Simplifier.net.

Erweiterte Nutzung

Bespiele der Nutzung der Hilfsfunktionen des MIO Parsers

Ein Eintrag nach Profil

import { ParserUtil, ZAEB } from "mioparser";

// ...

// Get patient from MIO
const patient = ParserUtil.getEntry(mio, [ZAEB.V1_1_0.Profile.Patient]);

Slices aus einem Array gemischter Typen

// Get patient identifier gkv
if (patient) {
    const gkv = ParserUtil.getSlice(
        ZAEB.V1_1_0.Profile.PatientVersichertenIdGKV,
        patient.resource.identifier
    );
}

Mehrere Einträge nach Profilen

// Get records from MIO
const records = ParserUtil.getEntries(mio, [
    ZAEB.V1_1_0.Profile.Observation,
    ZAEB.V1_1_0.Profile.GaplessDocumentation
]);

// Get persons from MIO
const persons = ParserUtil.getEntries(mio, [
    ZAEB.V1_1_0.Profile.Patient,
    ZAEB.V1_1_0.Profile.Organization
]);

Tests

Zum Ausführen der Tests muss das Paket MIO Test Data installiert sein. Es stellt Funktionalitäten und Test-Datensätze bereit.

Setup der Tests

Die Installation und das Ausführen der Tests kann so erfolgen:

git clone https://github.com/kassenaerztliche-bundesvereinigung/miotestdata.git
cd miotestdata
npm run build
npm link
cd ../mioparser
npm run install
npm run test

Mitwirken

Derzeit ist keine Mitwirkung von externen Entwicklern vorgesehen. Dies kann sich aber ändern. #stayTuned

Softwarefehler können über die GitHub Issues Seite gemeldet werden.

Über GitHub oder die Mail-Adresse support.mio@kbv.de können Fragen gestellt werden, nach dem das FAQ konsultiert wurde.

Lizenz

Diese Software ist unter der Apache-2.0 Lizenz lizensiert worden - siehe LICENSE Datei für mehr Details. (c) 2020 - 2021 Kassenärztliche Bundesvereinigung KdöR

Bekannte Fehler

  • Felder, die eine Kardinalität von 1..1 haben und eine extension erlauben (wie z.B. family bei Patient-> Name) sind optional, da derzeit eine Validierung im Sinne von "entweder das eine Feld oder das andere oder beide" nicht implementiert ist. Somit wird derzeit ein Dokument mit fehlendem "family" Feld als falsch positiv validiert.