XML-Export-Filter (XSLT) für boso RR-Daten / wie Tabellen getrennt auslesen?

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

quotsi
****
Beiträge: 186
Registriert: Do, 14.11.2013 10:04

XML-Export-Filter (XSLT) für boso RR-Daten / wie Tabellen getrennt auslesen?

Beitrag von quotsi » Di, 15.05.2018 12:34

Hallo
Ist sicherlich kein typisches AOO/LO-Problem, aber vielleicht tummelt sich hier ein Experte herum, der mir aus der Klemme helfen kann. Ich hatte ja im verganganen Herbst über XML-Import unter zuhilfenahme von AOO/LO hier gepostet und einen funktionierenden Stand erreicht, der im Wissensarchiv hinterlegt wurde:
viewtopic.php?f=25&t=68726

Zwischenzeitlich hat AOO geupdatet, so dass beide Office gut mit dem Import-Filter zurechtkommen. Ich habe auch den Text dort mehrfach angepaßt.

Jetzt reizt mich, auch den umgekehrten Weg zu gehen, so dass man die in calc sortierten bzw. nach DatumZeit-Intervall gesplitteten Blutdruck-Puls-Daten wieder in das Originalprogramm von boso "boso profil-manager XL" einlesen kann. Dazu muss man zunächst aus der calc-Datei eine XML-Datei einer bestimmten Struktur erzeugen, bevor dann die dortige Importroutine zuschlagen kann.
Ich habe schon den Anfang gemacht, so dass ich die im Wissensarchiv hinterlegte Datei "Anonymus gekürzt medicus_001.xml" (Quellendatei) in eine ....ods umwandle und diese dann mit dem Exportfilter wieder zurückformen kann. Bevor die Feinarbeit weitergehen kann, muss ich ein z.Zt. scheinbar unlösbares Problem beseitigen: Nämlich jede Tabelle der Quell-Datei einzeln anzusprechen.
(Eine Quell-Datei kann man unter dem oben genannten Link laden. Mein Exportfilter bindet man dann so wie dort beschrieben nur als Export- nicht Importfilter ein. Das ImportfilterTyp C von dort wird ebenfalls wie beschrieben zuvor eingebunden.)
Zur Zeit arbeitet mein Probe-Exportfilter (unten angefügt) quer durch alle Tabellen der Quelldatei, so daß die Patientenangaben (Name, Anschrift usw.) mit den anderen Tabelleninhalten (Intervallzeiträume, Blutdruck- und Puls-Werte) vermischt werden. Eine sinnvolle Trennung und dann richtige Benennung der Daten der zweiten und weiteren Tabellen ist so nicht möglich.

Das bisherige Filterprojekt lade ich hier hoch.

Bin für jeden Tipp dankbar.
Dateianhänge
XSLT-Export Filter 11 .txt.zip
Datei nicht entpacken, sondern umbenennen in .txt
(3.4 KiB) 10-mal heruntergeladen
Zuletzt geändert von quotsi am Sa, 19.05.2018 09:30, insgesamt 1-mal geändert.
win7pro - Avira - LO 5.4.4.7 (x64) - AOO 4.1.4

quotsi
****
Beiträge: 186
Registriert: Do, 14.11.2013 10:04

Re: XML-Export-Filter (XSLT) für boso RR-Daten / wie Tabellen getrennt auslesen?

Beitrag von quotsi » Mi, 16.05.2018 12:59

Bin einen winzigen Schritt weiter:
Habe einen zweiten Anonymus-Patienten geschaffen, ganz ohne Werte, nur mit den Personalangaben. Die Pat.-Nummer auf 20 geändert, den Mann zur Frau verwandelt usw. So hat die Datei nur eine Tabelle nach dem Import nach .ods.
Anonymus gekürzt medicus_020.xml.zip
Datei nur in .xml umbenennen.
(478 Bytes) 10-mal heruntergeladen
Der Export von .ods nach .xml mithilfe von LO erzeugt eine xml, die automatisch in amaya geladen wird und so gesichert werden kann. In AOO hingegen wird eine Ausgabe angezeigt, aber "wegen fehlender Struktur" kann man nicht sichern.
Dennoch, die Struktur ist der von boso exportierten sehr ähnlich. Einzig die Patienten-ID fehlt. Aber die entsteht ohnehin erst beim Import durch das boso-Programm in deren firebird-Datenbank, wird dann neu vergeben, ist also entbehrlich. Entscheidend für die Identität ist die Patientennummer (pat_no). Bei Überschneidung wird ohnehin nachgefragt, ob der Patiernt überschrieben oder neu angelegt werden soll.

Ich probierte den Import in den boso profil-manager XD und der klappte anstandslos.

Es bleibt das Problem, wie ich mehrere Tabellen der .ods-Datei getrennt auslesen kann. Der kritische Punkt sind die Zeilen in der Filterdatei:
<xsl:apply-templates select="//table:table"/>
Fragen:
1. Warum die doppelten // ?
2. Warum die Bezeichnung table:table und nicht nur table ?
Die Bezeichnung an dieser Stelle muss immer mit der späteren in
<xsl:template match="table:table">
übereinstimmen, das ist klar. Wenn man den Aufruf in table (also einfach) ändert (auch in den beiden Funktionen table-row und table-cell), wird die Selektion der Zeile 2 in den Tabellen unwirksam, aber dennoch werden noch immer alle Tabellen ausgelesen.
3. Versucht man einen Aufruf mit table1 oder Tabelle1, dann geht gar nichts mehr.
Zuletzt geändert von quotsi am Sa, 19.05.2018 09:59, insgesamt 2-mal geändert.
win7pro - Avira - LO 5.4.4.7 (x64) - AOO 4.1.4

quotsi
****
Beiträge: 186
Registriert: Do, 14.11.2013 10:04

Re: XML-Export-Filter (XSLT) für boso RR-Daten / wie Tabellen getrennt auslesen?

Beitrag von quotsi » Sa, 19.05.2018 11:48

Besteht kein Interesse, näher in dieses Problem einzutauchen?
win7pro - Avira - LO 5.4.4.7 (x64) - AOO 4.1.4

Lupo1
***
Beiträge: 96
Registriert: Sa, 13.10.2012 10:36

Re: XML-Export-Filter (XSLT) für boso RR-Daten / wie Tabellen getrennt auslesen?

Beitrag von Lupo1 » Sa, 19.05.2018 12:20

Auch wenn Du insgesamt nett dokumentierst:

Letztlich möchtest Du eine komplette (und dazu eher spezielle) Anwendung haben, und dafür ist kaum jemand bereit, sich tief hineinzudenken.

Es ist somit ein Fall für Kohle, Kommerz, ein Angebot Deinerseits. Sprechen wir es einfach mal so aus.
MfG Lupo - LO6021Win10Pro

quotsi
****
Beiträge: 186
Registriert: Do, 14.11.2013 10:04

Re: XML-Export-Filter (XSLT) für boso RR-Daten / wie Tabellen getrennt auslesen?

Beitrag von quotsi » Sa, 19.05.2018 15:08

Vermutung ist falsch. Ich will selbst was machen und bin ja auf dem Weg bereits weit vorgegangen.

Aber ich dachte, dass irgendjemand mit diesen XSLT-Dateien vertraut ist und mir sagen kann, wieso ich keinen passenden Befehl zum Ansprechen einzelner Tabellen finde. Da fehlt mir einfach eine geeignete Referenz, wo man nachlesen kann. Leider sind die wenigen, die ich über Google fand, ohne überhaupt zutreffende Beispiele für deren eigene Befehle, so dass man die nicht mal leicht begreifen kann. Man darf nur viele Stunden probieren, was ich aber schon tat. Sonst wäre ich nicht so weit gekommen.

Ich kann mir nicht vorstellen, dass es auf diesem Gebiet keine "Meister" gibt, die einem willigen Lehrling nicht mal den Weg zeigen wollen. Wir sind doch nicht im Mittelalter, wo jeder seine Arbeit versteckte oder in der heutigen Zeit kurz vor einem Patent.
Dann kann auch ich sagen, Schluss mit Hilfestellung im Forum, geh in Kneipe oder Schwimmbad oder...

Übrigens nicht einmal Kommerz. Mit boso hatte ich im letzten Herbst den Dialog wegen der Fehler bzw. unzureichenden Funktion dieses "boso profil-manager home" (bin selbst Patient und Käufer eines RR-Geräts). Da verwies man auf ein kommendes Update. Da zwischenzeitlich sogar der ursprüngliche Link von der Webseite verschwunden war, habe ich 2018 nochmals daran erinnert. Man gab mir einen individuellen Link. Aber bisher ist keine Update erschienen, denn ich gucke immer gelegentlich nach. Somit bleibt die wechselseitige Nutzung des Programms mit dem Umweg über LO und mein Wunsch eines Hin- und Rücktransfers, um wenigstens meine Flüchtigkeitsfehler ausmerzen zu können. Ich habe davon gar nichts, nur den Frust. Genauso wie in der Politik, wo vieles versprochen, aber meist nicht gehalten wird. Plausible Ausreden gibts immer, auch Nettigkeiten, aber keine Lösungen. Bei mir ist sowieso bald Schluß. Aber frohe Pfingsten für euch.
win7pro - Avira - LO 5.4.4.7 (x64) - AOO 4.1.4

Antworten