# Como montar uma mensagem HL7

Montar uma mensagem HL7 envolve a criação de um formato específico que inclui um cabeçalho (header) e segmentos de conteúdo. Os segmentos são separados por carriage return (), e cada segmento contém campos que são separados por caracteres pipe (`|`). Além disso, se os campos contiverem subcampos, eles são separados por caret (`^`).

## **Passo a passo para construção da mensagem**

{% stepper %}
{% step %}

### **Criando o Segmento MSH (Message Header)**

O primeiro segmento em qualquer mensagem HL7 é o **MSH**, que define as informações básicas sobre a mensagem. A estrutura do MSH geralmente inclui os seguintes campos:

* **MSH-1:** Field Separator – Separador de campo (geralmente “`|`”)
* **MSH-2:** Encoding Characters – Caracteres de codificação (geralmente “`^~&`”)
* **MSH-3:** Sending Application – Aplicação de envio
* **MSH-4:** Sending Facility – Instalação de envio
* **MSH-5:** Receiving Application – Aplicação de recebimento
* **MSH-6:** Receiving Facility – Instalação de recebimento
* **MSH-7:** Date/Time of Message – Data/hora da mensagem
* **MSH-8:** Security – Segurança
* **MSH-9:** Message Type – Tipo de mensagem (exemplo: `ADT^A01`)
* **MSH-10:** Message Control ID – ID de controle da mensagem
* **MSH-11:** Processing ID – ID de processamento
* **MSH-12:** Version ID – ID da versão

Um exemplo de como isso pode ser formatado é:

{% code overflow="wrap" %}

```
MSH|^~&|SendingApp|SendingFacility|ReceivingApp|ReceivingFacility|20241109120000||ADT^A01|123456|P|2.3|
```

{% endcode %}
{% endstep %}

{% step %}

### Criando outros segmentos

Após o MSH, você pode adicionar outros segmentos conforme necessário. Um exemplo comum é o **PID** (Patient Identification), que contém informações sobre o paciente.

Exemplo do segmento PID:

{% code overflow="wrap" %}

```
PID|1||123456^^^Hospital^MR||Doe^John^^^Mr.|Smith|19800101|M|||123 Main St^^Anytown^NY^12345||(555)555-5555|||N|
```

{% endcode %}
{% endstep %}

{% step %}

### Montando a mensagem completa

Agora que temos o MSH e um segmento PID, podemos combinar tudo em uma única mensagem HL7:

{% code overflow="wrap" %}

```
MSH|^~&|SendingApp|SendingFacility|ReceivingApp|ReceivingFacility|20241109120000||ADT^A01|123456|P|2.3\rPID|1||123456^^^Hospital^MR||Doe^John^^^Mr.|Smith|19800101|M|||123 Main St^^Anytown^NY^12345||(555)555-5555|||N|
```

{% endcode %}
{% endstep %}
{% endstepper %}

## **Considerações finais**

Ao montar mensagens HL7, é importante garantir que todos os campos obrigatórios estejam presentes e que estejam no formato e ordem conforme esperado para evitar problemas na comunicação entre os sistemas de saúde sendo integrados.
