E-mail sulle prescrizioni dei piani sanitari plan-prescription

In questa pagina: Segui un caso di utilizzo di personalizzazione che esegue iterazioni su array di profili nidificati con regole condizionali per creare un piano di integrità che elenca le prescrizioni pronte per il ritiro o richiamate.

Un profilo contiene piani sanitari e ogni piano include prescrizioni. Le prescrizioni hanno vari stati, come “pronto”, “richiamo” o “raccolto”.

In questo caso d’uso, vogliamo inviare un’unica e-mail a ciascun profilo, incluse tutte le prescrizioni pronte per essere prelevate o richiamate. Fai clic su ciascuna scheda di seguito per ulteriori informazioni sulla sintassi da utilizzare per implementare questo caso d’uso.

Messaggio con rendering

Ciao John Doe,

Di seguito sono riportate le prescrizioni che sono pronte per il ritiro o che sono state richiamate:

Piano di integrità A

  • ID prescrizione: pres1
    Nome: Medicinale A
    Stato: pronto
  • ID prescrizione: pres2
    Nome: Medicinale B
    Stato: richiamo

Piano di integrità B

  • ID prescrizione: pres4
    Nome: Medicinale D
    Stato: pronto
Modello 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}}
Dati profilo
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"
          }
        ]
      }
    ]
  }
}

Riferimento rapido quick-reference

Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.

Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.

Panoramica

TL;DR

Questa pagina illustra un caso di utilizzo di personalizzazione completo: l’iterazione su array di profili nidificati (piani di integrità contenenti prescrizioni) con filtro condizionale per visualizzare solo le prescrizioni in stato “pronto” o “richiamo” in un’e-mail.

Intenti

  • Vedi un esempio di output renderizzato di un’e-mail personalizzata per il piano di integrità
  • Comprendere il modello HTML utilizzando blocchi {{#each}} e {%#if%} nidificati per l’iterazione dell’array condizionale
  • Comprendere la struttura dati di profilo richiesta: un array plans in cui ogni piano contiene un array prescriptions con campi state
Glossario
  • Iterazione nidificata: utilizzo di {{#each}} cicli all’interno di altri {{#each}} cicli per attraversare strutture di array multilivello nei dati del profilo (ad esempio, piani → prescrizioni).
  • Stato della prescrizione: un campo su ciascun oggetto della prescrizione che indica lo stato del ciclo di vita in questo caso d’uso. I valori utilizzati sono “ready”, “recall” e “pick up”. (specifico per il caso d’uso)
  • {%#if%}/{%/if%}: sintassi di blocco condizionale utilizzata nei modelli di messaggio per filtrare gli elementi array durante l’iterazione (distinta dalla sintassi Handlebars {{#if}} a doppia curvatura).
Terminologia
  • Nome canonico: iterazione matrice nidificata — varianti: cicli nidificati, ognuno nidificato, iterazione a più livelli
  • Non confondere: {{#each}} / {{/each}} (sintassi di iterazione Handlebars, parentesi graffe doppie) ≠ {%#if%} / {%/if%} (sintassi condizionale, parentesi graffe percentuali) — entrambi vengono utilizzati insieme in questo modello
  • Non confondere: “pronto” (prescrizione disponibile per il ritiro) ≠ “richiamato” (prescrizione richiamata) ≠ “prelevato” (prescrizione già raccolta, esclusa dall’output dal filtro condizionale)
Domande frequenti

Q: quali stati di prescrizione sono inclusi nell’output dell’e-mail?

Vengono visualizzate solo le prescrizioni con lo stato “pronto” o “richiamo”. Le prescrizioni con stato “prelevato” sono escluse dal filtro condizionale {%#if prescription.state = "ready" or prescription.state = "recall"%}.

D: quale struttura dati di profilo è necessaria per questo caso d’uso?

Un profilo con un array plans, in cui ogni oggetto del piano contiene un array prescriptions. Ogni oggetto di prescrizione deve avere prescription_id, name e state campi.

D: come vengono iterati i piani e le prescrizioni nel modello?

Il ciclo {{#each profile.plans as |plan|}} esterno scorre su ogni piano di integrità. Al suo interno, {{#each plan.prescriptions as |prescription|}} esegue iterazioni sulle prescrizioni di ogni piano e un blocco condizionale filtra solo gli stati “pronto” o “richiamato”.

recommendation-more-help
journey-optimizer-help