2016-03-18 2 views
2

Je reçois des messages HL7 version 2.5.1.Impossible d'analyser le segment IN1 multiple dans HL7 à l'aide de HAPI TERSER

MSH|.. 
PID|.. 
PV1|.. 
ORC|.. 
IN1|1|... 
IN1|2|.... 

Ainsi, dans l'exemple ci-dessus IN1 répète, mais lorsque je tente d'analyser le deuxième segment de IN1 avec TERSER il jette une exception « Impossible de créer la répétition # 1 de la structure IN1 - cette structure est non-répétitive ".

This is what i have tried so far 

    string insurance = terser.Get("/.INSURANCE/.IN1(0)-1"); // Works fine 
    string insurance = terser.Get("/.INSURANCE/.IN1(1)-1"); // Throws exception 
string insurance = terser.Get("/.INSURANCE(0)/.IN1(0)-1"); // Works fine 
    string insurance = terser.Get("/.INSURANCE(1)/.IN1(0)-1"); // Throws exception 
+0

Comment la ressemble à l'en-tête du message? – sqlab

+0

En-tête du message: MSH |^~ \ & | Test | test ||| 20160309072750-0500 || OML^O21^OML_O21 | f9194efc-6ae2-42ea-ae28-40f8d7500a5a | T | 2.5.1 ||| AL | NE | |||| –

+0

Le groupe d'ordre commun (ORC.) Ne devrait-il pas suivre le groupe d'assurance? – sqlab

Répondre

1

Je viens tout juste de commencer à apprendre à propos de HAPI. Je remarque que dans votre exemple, vous n'avez pas spécifié comment vous analyser le message. Le plus souvent, il était analysé dans un message générique en utilisant le terser. Si tel est le cas, je pense qu'il devrait ressembler à ceci

string insurance = terser.Get("/.INSURANCE/.IN12-1"); 

Je crois message générique n'a pas de groupe et d'accéder à ce segment probablement besoin d'utiliser IN12 au lieu de IN1 (1)