wie zum senden von HL7-Nachricht mit Freude durch Lesen von Daten aus meiner Datenbank
Ich habe da ein problem senden(erstellen) einer HL7-Nachricht mit Freude.
Ich Lesen möchte Daten von meinem patient-Tabelle in SQL Server 2008, und die Verwendung dieser Daten,
Ich möchte eine Nachricht senden, um mein Ziel-Stecker, a-Datei Schriftsteller. Ich möchte meine Nachrichten in der Datei gespeichert Schriftsteller die Ausgabe-Verzeichnis.
Bisher bin ich in der Lage, um die Nachricht generieren, aber die Größe der Ausgabe-Datei in mein Zielverzeichnis ist zunehmend als Kanal, der die polling-Zeit auf geht.
Habe ich etwas falsch gemacht in der Transformator-mapping?
UPDATE:
Die Größe der Ausgabe-Datei in mein Zielverzeichnis IST immer. (Mein .txt-Datei gestartet wird von 1 kb und geht zu 900 Kb und so weiter). Dies geschieht, weil dieselben Daten immer erneut generiert und wieder und mehrere Male zu. für zB. meine generierte Nachricht hat ein(MSH,PID,PV1,ORM) für einen Datensatz in meiner Datenbank. Das gleiche MSH,PID, PV1 und ORM werden immer generiert mehrere Male.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie sehen die gleichen Daten generiert, die in Ihrem Ausgabeordner mehrere Zeit, die wahrscheinlichste Ursache ist, dass Sie nicht etwas zu tun zu geben, um Ihrer Datenbank einen bestimmten Datensatz bearbeitet wurde.
Zum Beispiel, wenn Sie haben 1 Eintrag in Ihrer Datenbank:
["John", "Smith", "12134" ...]
auf die erste Umfrage, generiert man nur 1 Nachricht. Wenn an der zweiten Umfrage haben Sie auch einen zweiten Datensatz["Fred", "Jones", "98371" ...]
Sie erzeugt ZWEI Nachrichten - eine für John Smith und eine für Fred Jones. Und so weiter.Der Schlüssel ist, verwenden Sie die "Run On-Update-Anweisung" Ihrer Datenbank Reader (Source -) Anschluss zum aktualisieren der Datenbank-Tabelle, die Sie die Abfrage mit einem Hinweis darauf, dass ein bestimmter Datensatz bearbeitet wurde. Dadurch wird sichergestellt, dass der gleiche Datensatz ist nicht verarbeitet, mehrfach.
Dies erfordert, dass die Quell-Tabelle eine Art der Spalte an, der Datensatz verarbeitet wurde. Lustigkeit nicht verfolgen, das für Sie - Sie müssen es manuell tun.
Können Sie nicht eine Datei
reader
als Ziel, also ich nehme an, du meinst die Dateiwriter
. Sie sagen, dass "die Größe meiner Datei in der mein Ziel ist Steigend." Ist das ein Tippfehler? Meinst du NICHT erhöhen?Wenn es steigt, dann werden Ihre Nachrichten werden immer generiert und Sie können Sie zu Beginn Ihrer nächsten Runde der Fehlerbehebung...
Falls nicht, sollten Sie sich im message-log im dashboard, um zu sehen, was passiert auf einer Nachricht-um-Nachricht-basis - das wäre der nächste Ort zu beheben.
Haben Sie eine Möglichkeit der Unterscheidung, welche Art von Aufzeichnungen auf Abruf aus der Datenbank filtern, die auf irgendeine Art von status-flag oder möglich einen Zeit-Stempel. Dann müssen Sie irgendeine Art von On-Update-Anweisung zu markieren, diese gleichen Datensätze als verarbeitet.
d.h.
Select id, Patienten -, Ergebnis-Ergebnisse, wo status_flag='N'
bzw.
Select * from Ergebnisse where status_flag = 'N' und created_date >= '9/25/2012'
Dann, entweder ein Transformator Schritt oder die On-Update-Abschnitt Ihrer Quelle, Sie würde so etwas machen:
Update Ergebnisse
set status_flag = 'Y' where id=$(id)
Wenn Sie das nicht tun so etwas wie dieses und Sie haben Freude polling in einem bestimmten Intervall, es wird nur immer ziehen die gleichen Datensätze über und über.
Müssen Sie ändern Sie Ihre Anschluss-Typ, der als Datenbank-Leser in der Quelle.
Müssen Sie ändern Sie Ihre Anschluss-Typ, der als file-writer im Ziel.
Und Sie können schreiben Sie Ihre Daten in die Datei, Für die Sie Zugriff haben, zu schreiben.
beim erstellen von HL7-template verwenden Sie den folgenden code in outbound-message-Vorlage
MSH|^~\&|||
Dank
Krishna