PL/SQL para Parsing EDI (X12, NCPDP, HL7)
Pergunta
Eu tenho algumas mensagens EDI (x12, hl7, etc ...) armazenadas em um banco de dados Oracle. Às vezes, quero extrair campos individuais (por exemplo, ISA-03). Atualmente, tenho um SQL realmente feio. Eu gostaria de criar um pacote PL/SQL para facilitar e estava se perguntando se alguém já havia feito isso.
Eu imagino algo como:
Selecione EDI.X12.EXTRAT_FIELD (CLOB_COLUMN, 'ISA', 4) de EDI_TABLE
Solução
Embora eu nunca tenha armazenado a mensagem HL7, como está em um banco de dados, ela deve ser possível.
A idéia de HL7 (e XML) é que é um formato comum para os sistemas usarem para transferir informações. Nunca foi projetado como um item "armazenável". Geralmente, eu retirava os dados do formato do armazém para uma mensagem HL7 específica e os enviava para o MQHUB/EGATE para transmitir. No retorno, faça o extrato oposto dos campos, estou armazenando e salvo -os. Ou seja, o HL7 não deve ser armazenado, então eu não tenho um.
Chega da palestra. :)
Eu sugeriria uma função/procedimento por segmento e dividiria a mensagem em uma tabela temporária.