Re: [ResMed-de] Parsen einer xDT (BDT) Datei
Hallo, vielen Dank fuer die Tipps! Wir hatten das Meiste schon diskutiert in: http://sourceforge.net/mailarchive/forum.php?thread_name=200702031747.17036.christian.heller%40tuxtax.de&forum_name=resmedicinae-apwiegand Der xDT-Konverter fuer CYBOI/ Res Medicinae laeuft seit April mit vier Probefeldern. Es muessen nur noch die anderen Felder eingetippt werden. Hier die Quelltext-Datei, geschrieben in der Programmiersprache "C": http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cybop/src/memoriser/converter/xdt_converter.c?rev=1.11&content-type=text/vnd.viewcvs-markup Der Grund dafuer, dass ich es nicht angekuendigt habe, ist, dass ich die geparsten Patientendaten gleich noch serialisieren und als HTML-Seite darstellen will, per HTML-Konverter. Auszerdem muss ich die eingelesenen Daten, welche in einer Baumstruktur (siehe Datei im Anhang) vorliegen, noch in eine sinnvolle Baumstruktur bringen, die einer Elektronischen Krankenakte (EHR) aehnelt. Also: Parser grob fertig, aber das Drumherum wird noch dauern, um die Daten nutzen zu koennen. Es geht nun langsam in Richtung EHR. Bei Feierabendarbeit dauert dies eben etwas laenger ... Christian residenz | compound +-record | compound | +-particulars | compound | | +-first_name | character | Mueller | | +-last_name | character | Heller | | +-birthdate | character | 1970-01-01 | | +-sex | character | M +-wui | compound | +-main_page | compound | | +-head | compound | | | +-http-equiv | character | | | | | #-tag | character | meta | | | | #-http-equiv | character | content-type | | | | #-content | character | text/html; charset=ISO-8859-1 | | | +-author | character | | | | | #-tag | character | meta | | | | #-name | character | author | | | | #-content | character | Generated by CYBOI | | | +-title | character | Res Medicinae - APW | | | | #-tag | character | title | | | #-tag | character | head | | +-body | compound | | | +-heading | character | Res Medicinae - APW | | | | #-tag | character | h1 | | | | #-align | character | center | | | +-address_table | compound | | | | +-header | compound | | | | | +-first_name | character | Vorname | | | | | | #-tag | character | th | | | | | +-last_name | character | Nachname | | | | | | #-tag | character | th | | | | | +-birthdate | character | Geburtsdatum | | | | | | #-tag | character | th | | | | | +-sex | character | Geschlecht | | | | | | #-tag | character | th | | | | | #-tag | character | tr | | | | +-body | compound | | | | | +-first_name | character | Mueller | | | | | | #-tag | character | td | | | | | +-last_name | character | Heller | | | | | | #-tag | character | td | | | | | +-birthdate | character | 1970-01-01 | | | | | | #-tag | character | td | | | | | +-sex | character | M | | | | | | #-tag | character | td | | | | | #-tag | character | tr | | | | #-tag | character | table | | | | #-width | character | 100% | | | | #-cellspacing | character | 0 | | | | #-cellpadding | character | 2 | | | | #-border | character | 1 | | | +-break | character | | | | | #-tag | character | br | | | #-tag | character | body | | #-tag | character | xhtml | | #-xmlns | character | http://www.w3.org/1999/xhtml +-logic | compound | +-import | compound | | +-xdt | compound | | | +-xdt | operation | | | | #-name | character | xdt | | | | #-channel | character | file | | | | #-abstraction | character | xdt | | | | #-model | character | /home/praxis/c/a/resmedicinae_bdt_export/test.bde | | | | #-element | character | part | | | | #-whole | knowledge | | | +-translate_xdt_to_record | knowledge | | | +-translate_record_to_wui | knowledge | | | +-write_wui_to_xhtml_file | operation | | | | #-channel | character | file | | | | #-receiver | character | patient_list.xhtml | | | | #-language | character | xhtml | | | | #-message | knowledge | | | +-write_record_structure_into_file | operation | | | | #-channel | character | file | | | | #-receiver | character | TEST_xdt.txt | | | | #-language | character | model_diagram | | | | #-message | knowledge | +-translation | compound | | +-translate_xdt_to_record | compound | | | +-copy_first_name | operation | | | | #-source | knowledge | | | | #-destination | knowledge | | | | #-abstraction | character | character | | | +-copy_last_name | operation | | | | #-source | knowledge | | | | #-destination | knowledge | | | | #-abstraction | character | character | | | +-copy_birthdate | operation | | | | #-source | knowledge | | | | #-destination | knowledge | | | | #-abstraction | character | character | | | +-copy_sex | operation | | | | #-source | knowledge | | | | #-destination | knowledge | | | | #-abstraction | character | character | | +-translate_record_to_wui | compound | | | +-copy_first_name | operation | | | | #-source | knowledge | | | | #-destination | knowledge | | | | #-abstraction | character | character | | | +-copy_last_name | operation | | | | #-source | knowledge | | | | #-destination | knowledge | | | | #-abstraction | character | character | | | +-copy_birthdate | operation | | | | #-s
Re: [ResMed-de] Parsen einer xDT (BDT) Datei
On Thu, Jun 07, 2007 at 12:38:21AM +0200, Andreas Schnitzler wrote: > Sehr geehrte(r) Karsten Hilbert, Sie dürfen der Statistik trauen. Und auch klonen kann ich mich bislang nicht. > >> NEIN! DORT stehen "HL7-Schlüssel", eine internationale Umformulierung > >> der Feldinhalte usw., das hat mit BDT nix zu tun! > > Es handelt sich um das Feld 0103 "Software" aus dem BDT-Satz 0010. > > > Was sind denn "HL7-Schlüssel" ? > > > Was bedeutet HL7 = "internationale Umformulierung der > > Feldinhalte usw." ? > > Kurze Einführung/Überblick: > http://www.hl7.de/standard/wasist_hl7.php > Bei Interesse: > http://www.hl7.de/projektbuero/datenaustausch.php Ist mir alles bekannt. Ich weiß, was HL7 und xDT (und OpenEHR und IHE-Profile und Corba und ...) sind. Ich wollte nur in Erfahrung bringen, aufgrund welcher Sachlage Sie die BDT-2-94-Feldkennung 0103 als "HL7-Schlüssel" bezeichnen. Ich vermute, hier liegt eine Verwechselung zwischen xBDT und XML-Formaten im Rahmen der DMPs vor, insbesondere da Ihr XML-Snippet Teil einer Dialyse-DMP-Datei zu sein scheint. > Für einen Gelegenheitsprogrammierer wie mich eine unübersichtliche > Katastrophe *G*!!! > Als Kostprobe ein kleines SNIPPET im Anhang, mit dem nur ein paar Kenn ich, kenn ich. Und *den* HL7 gibt es auch nicht. In v3 wird das etwas besser, wenn man IHE-Profile dazunimmt auch. > wenige Daten übergeben werden (Nutzwert ca. 22 Zeilen > Dateninhalt...!). Da ist der BDT deutlich einfacher zu > verstehen und umzusetzen...! Sie müßten mal die > XSD-Schema-Dateien sehen, das geht auf keine Kuhhaut. Dazu > kommmt, daß umfangreichste Datenfeldlisten dazu gehören, > allein der Familienstand hat ÜBER 12 Optionen einschließlich > Polygamie usw. (wem soll das nützen??). Vielleicht arabischen und asiatischen Mitbürgern ? Es könnte ja sein, daß in Indien und Turkmenistan auch Laborwerte bestimmt werden. > PS: Ihre Liste ist die bisher beste Aufstellung, die mir bislang begegnet > ist!!! Das freut mich ganz besonders, wenn Ihnen dies hilft. Wir setzen die Liste ja in GNUmed ganz praktisch ein. mfg, Karsten Hilbert -- GPG key ID E4071346 @ wwwkeys.pgp.net E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ resmedicinae-deutsch mailing list resmedicinae-deutsch@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resmedicinae-deutsch
Re: [ResMed-de] Parsen einer xDT (BDT) Datei
Hallo Christian, > > Eine Beispiel-Zeile aus der exportierten *.bde Datei sieht so aus: > > 0270103ARZTPRAXIS WIEGAND ... > > 3. Frage: Wo liegt mein Denkfehler? > > Wenn "Res Medicinae" nun 27 Zeichen zaehlte, wuerde es ins darauf > > folgende Feld hineinlaufen, so dass ein Daten-Mix entstuende. Kümmere Dich nicht um die Länge. Nimm als Inhalt string[7:-2] > > "0103" stellt im Beispiel dann die Kennung dar. > > Ich vermutete, dass die "Kennung" den KBV-Schluesseltabellen: > > http://www.kbv-it.de/keytabs/ita/schluesseltabellen.asp > > http://www.kbv.de/application/schluesseltabellen/xsd/keytabs.zip > > zu entnehmen ist. Doch wenn ich dort nach "0103" suche, kommt die > > Tabelle "S_KBV_SCHEINART", was nicht stimmen kann, da im obigen > > Beispiel-Feld der Name des Programms, also "ARZTPRAXIS WIEGAND" > > zu finden ist. > > NEIN! DORT stehen "HL7-Schlüssel", eine internationale Umformulierung > der Feldinhalte usw., das hat mit BDT nix zu tun! Es handelt sich um das Feld 0103 "Software" aus dem BDT-Satz 0010. Was sind denn "HL7-Schlüssel" ? Was bedeutet HL7 = "internationale Umformulierung der Feldinhalte usw." ? > Interessant auch (EINE ZEILE!): > http://cvsmonitor.gnumed.de/cvsmonitor.pl? > cmd=viewBrowseVersion&version=1.40 > &file=gnumed/client/business/gmXdtMappings.py&module=GNUmed.GNUmed GNUmed hat einen Parser für xDT (zum Anzeigen zumindest). Ebenso besitzt es die Funktionalität, aus einer xDT-Datei den Patienten zu extrahieren und zu importieren. Siehe read_person_from_xdt() in http://cvs.savannah.gnu.org/viewvc/gnumed/gnumed/client/business/gmXdtObjects.py?root=gnumed&view=markup > > 6. Frage: Kann man also nur flache Datenstrukturen abbilden oder > > bezeichnen manche Kennungen den Beginn/ das Ende einer hierarchischen > > (geschachtelten) Datenstruktur? Ja, siehe z.B. LDT. > > Was mir auszerdem fehlt, sind ein- bis zwei Quelltext-Beispiele. Siehe oben. mfg, Karsten Hilbert -- GPG key ID E4071346 @ wwwkeys.pgp.net E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ resmedicinae-deutsch mailing list resmedicinae-deutsch@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resmedicinae-deutsch
Re: [ResMed-de] Parsen einer xDT (BDT) Datei
Christian Heller <[EMAIL PROTECTED]> writes: > > Hallo, > > ich moechte in den naechsten Monaten, je nachdem wieviel Freizeit > bleibt, versuchen, Dateien im "x DatenTransfer" (xDT) Format zu lesen, > um sie in "Res Medicinae" zu importieren. Zu Beginn wuerde es mir > reichen, den Namen und das Geburtsdatum von Patienten aus einer > Datei im "BehandlungsDatenTransfer" (BDT) Format auszulesen. ... > Eine Beispiel-Zeile aus der exportierten *.bde Datei sieht so aus: > 0270103ARZTPRAXIS WIEGAND > > "027" besagt also, dass der Feld-Inhalt 27 ASCII-Zeichen lang ist, o.k.? > Im obigen Beispiel ist das Feld aber nur 18 Zeichen lang! GESAMTE FELDLÄNGE = FELDINHALT + 9 Zeichen: 3 Zeichen = Zeilenlänge selbst "027" +4 FeldKENUNG "0103" + Länge Feldinhalt "ARZTPRAXIS WIEGAND" +2 für CR/LF > > 3. Frage: Wo liegt mein Denkfehler? > Wenn "Res Medicinae" nun 27 Zeichen zaehlte, wuerde es ins darauf > folgende Feld hineinlaufen, so dass ein Daten-Mix entstuende. > > "0103" stellt im Beispiel dann die Kennung dar. > Ich vermutete, dass die "Kennung" den KBV-Schluesseltabellen: > http://www.kbv-it.de/keytabs/ita/schluesseltabellen.asp > http://www.kbv.de/application/schluesseltabellen/xsd/keytabs.zip > zu entnehmen ist. Doch wenn ich dort nach "0103" suche, kommt die > Tabelle "S_KBV_SCHEINART", was nicht stimmen kann, da im obigen > Beispiel-Feld der Name des Programms, also "ARZTPRAXIS WIEGAND" > zu finden ist. NEIN! DORT stehen "HL7-Schlüssel", eine internationale Umformulierung der Feldinhalte usw., das hat mit BDT nix zu tun! > > 4. Frage: Unter welchem Web-Link findet man eine Liste der "Kennungen"? > http://www.kbv-it.de/ita/register_B.html => B02: Datensatzbeschreibung KVDT ist korrekt, und etliche andere. Es gibt abhängig vom Einsatzzweck etliche BDT-Unter-Schlüssel. Interessant auch (EINE ZEILE!): http://cvsmonitor.gnumed.de/cvsmonitor.pl? cmd=viewBrowseVersion&version=1.40 &file=gnumed/client/business/gmXdtMappings.py&module=GNUmed.GNUmed > 5. Frage: Wenn "Kennung" ungleich "Schluessel", wofuer stehen dann die > Schluessel? (Ich vermute, dass sie als Feld-Inhalt zu verwenden sind.) > > Die BDT-Dateien sind reine Auflistungen von Zeilen/ Feldern. > > 6. Frage: Kann man also nur flache Datenstrukturen abbilden oder > bezeichnen manche Kennungen den Beginn/ das Ende einer hierarchischen > (geschachtelten) Datenstruktur? > > Was mir auszerdem fehlt, sind ein- bis zwei Quelltext-Beispiele. > Scheinen ja schon vorzuliegen, heissen nur "*.BDE" statt "*.BDT" die DBF sagt mir nichts, muss WIEGAND-spezifisch sein (anschauen mit Access, kann man ja importieren, wenn dBASE-Format und kein DBF-Viewer zur Verfügung steht). > 7. Frage: Kann mir jemand (auch per privater E-Mail) Code-Beispiele > zukommen lassen? > > Vielen Dank, > Christian Heller > > - > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ resmedicinae-deutsch mailing list resmedicinae-deutsch@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resmedicinae-deutsch
Re: [ResMed-de] Parsen einer xDT (BDT) Datei
Hallo Karsten, > > http://cvs.savannah.gnu.org/viewcvs/gnumed/gnumed/client/business/gmXdtMappings.py?rev=1.37&root=gnumed&view=log > > > http://cvs.savannah.gnu.org/viewcvs/gnumed/gnumed/client/business/gmXdtObjects.py?rev=1.25&root=gnumed&view=log Danke, das hilft mir schon sehr! Puh, wann habt Ihr nur die ganzen Konstanten eingetippt ... Werde die mal copy&pasten und an C anpassen. Christian - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ___ resmedicinae-deutsch mailing list resmedicinae-deutsch@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resmedicinae-deutsch
Re: [ResMed-de] Parsen einer xDT (BDT) Datei
Eigentlich steht es alles in den xDT-Specs. BDT habe ich auch nicht mehr auf Anhieb gefunden. Eine Mail an KBV-IT sollte helfen. http://cvs.savannah.gnu.org/viewcvs/gnumed/gnumed/client/business/gmXdtMappings.py?rev=1.37&root=gnumed&view=log http://cvs.savannah.gnu.org/viewcvs/gnumed/gnumed/client/business/gmXdtObjects.py?rev=1.25&root=gnumed&view=log Karsten On Sat, Feb 03, 2007 at 05:47:16PM +0100, Christian Heller wrote: > User-Agent: KMail/1.9.5 > Subject: [ResMed-de] Parsen einer xDT (BDT) Datei > > Hallo, > > ich moechte in den naechsten Monaten, je nachdem wieviel Freizeit > bleibt, versuchen, Dateien im "x DatenTransfer" (xDT) Format zu lesen, > um sie in "Res Medicinae" zu importieren. Zu Beginn wuerde es mir > reichen, den Namen und das Geburtsdatum von Patienten aus einer > Datei im "BehandlungsDatenTransfer" (BDT) Format auszulesen. > Vielleicht koennen mir ja die Leser dieser Liste oder z.B. auch die > mitlesenden GNUmed-Entwickler ein paar Hinweise geben? > > Aus unserem Programm "Arztpraxis Wiegand" (APW) habe ich einen BDT > Datenexport durchgefuehrt (genauer gesagt mittels eines beiliegenden > Hilfsprogramms) und mir stehen nun drei reine Textdateien zur Verfuegung: > 00120071.bde > 00220071.bde > 00320071.bde > (Vermutlich sind diese jeweils < 1.2 MiB, damit sie auf Floppy passen.) > Auszerdem wurde offenbar noch eine weitere Datei generiert: > bde20071.dbf > welche rund 17 MiB grosz ist. > > 1. Frage: Reicht es aus, nur die *.bde Dateien zu parsen? > Oder muss man auch mit der *.dbf Datei noch etwas veranstalten? > > Falls nur die *.bde Textdateien, so koennte ich "Res Medicinae" > theoretisch "losparsen" lassen, wenn ich wuesste, was die einzelnen > Zahlen bedeuten. Unter den KBV-Schnittstellen-Beschreibungen: > http://www.kbv-it.de/ita/4287.html > http://www.kbv-it.de/ita/register_B.html > http://www.kbv-it.de/ita/register_C.html > konnte ich zu "BDT" nichts finden. > > 2. Frage: Hat jemand einen Link auf die BDT-Spezifikation? > > Gut, dann gibt es ja noch folgende Uebersicht: > http://www.kbv-it.de/ita/4274.html > > * > - > * Feldteil Laenge [Byte] Bedeutung > * > - > * Laenge 3 Feldlaenge in Bytes > * Kennung 4 Feldkennung > * Inhalt variabelAbrechnungsinformationen > * Ende 2 ASCII-Wert 13 = CR (Wagenruecklauf) > * ASCII-Wert 10 = LF (Zeilenvorschub) > * > - > > Eine Beispiel-Zeile aus der exportierten *.bde Datei sieht so aus: > 0270103ARZTPRAXIS WIEGAND > > "027" besagt also, dass der Feld-Inhalt 27 ASCII-Zeichen lang ist, o.k.? > Im obigen Beispiel ist das Feld aber nur 18 Zeichen lang! > > 3. Frage: Wo liegt mein Denkfehler? > Wenn "Res Medicinae" nun 27 Zeichen zaehlte, wuerde es ins darauf > folgende Feld hineinlaufen, so dass ein Daten-Mix entstuende. > > "0103" stellt im Beispiel dann die Kennung dar. > Ich vermutete, dass die "Kennung" den KBV-Schluesseltabellen: > http://www.kbv-it.de/keytabs/ita/schluesseltabellen.asp > http://www.kbv.de/application/schluesseltabellen/xsd/keytabs.zip > zu entnehmen ist. Doch wenn ich dort nach "0103" suche, kommt die > Tabelle "S_KBV_SCHEINART", was nicht stimmen kann, da im obigen > Beispiel-Feld der Name des Programms, also "ARZTPRAXIS WIEGAND" > zu finden ist. > > 4. Frage: Unter welchem Web-Link findet man eine Liste der "Kennungen"? > > 5. Frage: Wenn "Kennung" ungleich "Schluessel", wofuer stehen dann die > Schluessel? (Ich vermute, dass sie als Feld-Inhalt zu verwenden sind.) > > Die BDT-Dateien sind reine Auflistungen von Zeilen/ Feldern. > > 6. Frage: Kann man also nur flache Datenstrukturen abbilden oder > bezeichnen manche Kennungen den Beginn/ das Ende einer hierarchischen > (geschachtelten) Datenstruktur? > > Was mir auszerdem fehlt, sind ein- bis zwei Quelltext-Beispiele. > > 7. Frage: Kann mir jemand (auch per privater E-Mail) Code-Beispiele > zukommen lassen? > > Vielen Dank, > Christian Heller -- GPG key ID E4071346 @ wwwkeys.pgp.net E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346 - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ___ resmedicinae-deutsch mailing list resmedicinae-deutsch@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resmedicinae-deutsch