Email de receitas do plano de saúde plan-prescription

Nesta página: Siga um caso de uso de personalização que repete as matrizes de perfis aninhadas com regras condicionais para criar uma lista de receitas de email de plano de integridade prontas para retirada ou rechamada.

Um perfil contém planos de integridade e cada plano inclui receitas. As prescrições têm vários estados, como “pronto”, “recuperação” ou “recolhido”.

Nesse caso de uso, queremos enviar um único email para cada perfil, incluindo todas as receitas que estão prontas para coleta ou para recall. Clique em cada guia abaixo para obter mais informações sobre a sintaxe a ser usada para implementar esse caso de uso.

Mensagem renderizada

Oi, John Doe.

Estas são as receitas que estão prontas para coleta ou foram recuperadas:

Plano de Integridade A

  • ID de prescrição: pres1
    Nome: Medicação A
    Estado: pronto
  • ID de prescrição: pres2
    Nome: Medicação B
    Estado: rechamada

Plano de Integridade B

  • ID de prescrição: pres4
    Nome: Medication D
    Estado: pronto
Modelo do HTML
code language-html
<p>Hi {{profile.person.firstName}} {{profile.person.lastName}},</p>
<p>Here are the prescriptions that are either ready for pick up or have been recalled:</p>
{{#each profile.plans as |plan|}}
<h3>{{plan.name}}</h3>
<ul>
   {{#each plan.prescriptions as |prescription|}}
   {%#if prescription.state = "ready" or prescription.state = "recall"%}
   <li>
      <strong>Prescription ID:</strong> {{prescription.prescription_id}}<br>
      <strong>Name:</strong> {{prescription.name}}<br>
      <strong>State:</strong> {{prescription.state}}
   </li>
   {%/if%}
   {{/each}}
</ul>
{{/each}}
Dados do perfil
code language-javascript
{
  "profile": {
    "person": {
      "firstName": "John",
      "lastName": "Doe"
    },
    "plans": [
      {
        "planId": "plan1",
        "name": "Health Plan A",
        "prescriptions": [
          {
            "prescription_id": "pres1",
            "name": "Medication A",
            "state": "ready"
          },
          {
            "prescription_id": "pres2",
            "name": "Medication B",
            "state": "recall"
          }
        ]
      },
      {
        "planId": "plan2",
        "name": "Health Plan B",
        "prescriptions": [
          {
            "prescription_id": "pres3",
            "name": "Medication C",
            "state": "picked up"
          },
          {
            "prescription_id": "pres4",
            "name": "Medication D",
            "state": "ready"
          }
        ]
      }
    ]
  }
}

Referência rápida quick-reference

Esta seção contém conhecimento estruturado destinado a oferecer suporte à interpretação, recuperação e resposta a perguntas relacionadas a este tópico.

Para uma compreensão completa, essas informações devem ser combinadas com a documentação desta página. Nenhuma das origens deve ser independente; a página descreve o recurso, enquanto esta seção fornece um contexto adicional que ajuda a desfazer a ambiguidade da terminologia, intenção, aplicabilidade e restrições.

Visão geral

TL;DR

Esta página demonstra um caso de uso de personalização completo: iteração em matrizes de perfis aninhadas (planos de integridade contendo receitas) com filtragem condicional para exibir apenas as receitas nos estados “pronto” ou “recuperação” em um email.

Intenções

  • Veja um exemplo de saída renderizada de um email personalizado de plano de integridade
  • Compreender o modelo HTML usando blocos {{#each}} e {%#if%} aninhados para iteração de matriz condicional
  • Entenda a estrutura de dados de perfil necessária: uma matriz plans em que cada plano contém uma matriz prescriptions com campos state
Glossário
  • Iteração aninhada: usar {{#each}} loops dentro de outros {{#each}} loops para atravessar estruturas de matriz de vários níveis nos dados do perfil (por exemplo, planos → receitas).
  • Estado de prescrição: um campo em cada objeto de prescrição indicando seu status de ciclo de vida neste caso de uso. Os valores usados são “pronto”, “rechamar” e “selecionado”. (caso de uso específico)
  • {%#if%}/{%/if%}: Sintaxe de bloco condicional usada em modelos de mensagem para filtrar itens de matriz durante a iteração (distinta da sintaxe Handlebars {{#if}} com duas curvas).
Terminologia
  • Nome canônico: iteração de matriz aninhada — variantes: loops aninhados, cada um aninhado, iteração de vários níveis
  • Não confunda: {{#each}} / {{/each}} (Sintaxe de iteração de Handlebars, chaves duplas) ≠ {%#if%} / {%/if%} (sintaxe condicional, chaves percentuais) — ambos são usados juntos neste modelo
  • Não confundir: “pronto” (receita disponível para retirada) ≠ “recall” (a receita foi retirada) ≠ “retirado” (a receita já foi coletada — excluída da saída pelo filtro condicional)
Perguntas frequentes

P: Quais estados de prescrição são incluídos na saída de email?

Somente as receitas com o estado “pronto” ou “recuperação” são exibidas. As prescrições com o estado “selecionado” são excluídas pelo filtro condicional {%#if prescription.state = "ready" or prescription.state = "recall"%}.

P: Qual estrutura de dados de perfil é necessária para este caso de uso?

Um perfil com uma matriz plans, em que cada objeto de plano contém uma matriz prescriptions. Cada objeto de receita deve ter campos prescription_id, name e state.

P: Como os planos e as receitas são iterados no modelo?

O loop {{#each profile.plans as |plan|}} externo repete cada plano de integridade. Dentro dele, {{#each plan.prescriptions as |prescription|}} repete as prescrições de cada plano e um bloco condicional filtra somente para os estados “pronto” ou “recuperação”.

recommendation-more-help
journey-optimizer-help