Mirth java-code, um bedingt für ein Feld ändern
Ich bin mit Freude zu Lesen HL7-Nachrichten aus unserer DB und senden Sie aus, um eine client-EMR. Diese Besondere EMR erfordert, dass der OBR und OBX für die eingebetteten PDF-Datei formatiert sind, eine bestimmte Art und Weise. Wenn OBR.4.1 und OBR.4.2 haben "0PDF^PDF-Report", die wir einführen müssen, um "^PDFReport^PDF^Base64" in OBX.5.1, OBX.5.2 und OBX.5.3 wie im Beispiel unten gezeigt.
OBR|2||13PS061163CYT|0PDF^PDF Report|
OBX|1|ED|0PDF^PDF Report|1|^PDFReport^PDF^Base64^JVBERi0xLjMNJf////
Den code, den wir momentan verwenden, funktioniert 99% der Zeit, aber scheint zu brechen auf bestimmte Berichtstypen. Vor allem, wenn es mehr OBR als die die OBX ist.
Jede Hilfe, um dieses Problem zu beheben würde sehr geschätzt. Der code, den wir momentan verwenden, ist unten.
for (var i=0;i<msg['OBX'].length();i++ ){
var Access=msg['OBR'][i]['OBR.3']['OBR.3.1'].toString()
var Report=msg['OBX'][i]['OBX.5']['OBX.5.1'].toString()
var ID=msg['OBR'][i]['OBR.2']['OBR.2.1'].toString()
if(msg['OBX'][i]['OBX.3']['OBX.3.1'].toString() == Access + ".PDF"){
msg['OBX'][i]['OBX.3']['OBX.3.1'] = "0PDF"
msg['OBX'][i]['OBX.3']['OBX.3.2'] = "PDF Report"
msg['OBX'][i]['OBX.5']['OBX.5.1'] = ID
msg['OBX'][i]['OBX.5']['OBX.5.2'] = "PDFReport"
msg['OBX'][i]['OBX.5']['OBX.5.3'] = "PDF"
msg['OBX'][i]['OBX.5']['OBX.5.4'] = "Base64"
msg['OBX'][i]['OBX.5']['OBX.5.5'] = Report
i--;
}
}
- Dein code passt nicht zu deiner Beschreibung von dem, was Sie zu tun versuchen. Sie sagen, dass, wenn eine OBR-segment hat bestimmte Werte, dann wollen Sie bestimmte Werte in den OBX. Dennoch, mit Blick auf Ihren code, es ist klar, dass Sie den Vergleich von Werten zwischen den OBR und OBX.
- Fügen Sie diese Frage mit area51.stackexchange.com/proposals/51758/healthcare-it. Wir versuchen, ein Gesundheits-stack-exchange-Website gehen, und das wäre eine perfekte Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Kern Ihres Problems ist, dass Ihr code wird davon ausgegangen, dass OBR und OBX-Segmente erscheinen immer paarweise.
Jedoch, sobald Sie laufen in einem Fall, wo die zahlen von OBR und OBX-Segmente nicht entsprechen, oder nicht in streng abwechselnd, Dinge beginnen zu brechen.
Müssen Sie zuerst verstehen, was gemeint ist, durch die folgenden Zeilen von code.
In diesem Beispiel, obrSegments ist ein array von, Sie Ahnen es, obr Segmente. Ebenso obxSegments ist ein array von obxSegments. Keine dieser arrays gebaut wurden, jedes Bewusstsein dafür, wie der obx-Segmente positioniert waren, die mit Bezug auf die Segmente obr.
Wenn Sie garantieren können, dass die Segmente obr und obx-Segmente in der Nachricht erscheinen immer streng abwechselnd, dann können Sie garantieren, dass obrSegments[i] und obxSegments[i] wird immer sequentiell.
Auf der anderen Seite, wenn die Anzahl der obr und obx-Segmente nicht identisch, oder, selbst wenn die Nummer identisch IST, wenn die Segmente nicht in einer streng abwechselnd, dann gibt es keine Garantie, dass obrSegments[i] wird unmittelbar gefolgt von obxSegments[i].
Die Formulierung deiner Frage nicht 100% klar. Ich bin jedoch abzuleiten, dass, Wann immer Sie untersuchen den Inhalt eines OBR, Sie wollen dann bedingt ändern Sie den Inhalt des ALLE obx-Segmente, die sofort Folgen.
Empfehle ich etwas mehr wie diese.