Enregistrer les audiences adjacentes au PHI
Le registre d’audiences adjacentes au PHI est la liste de votre organisation des listes de contacts et segments dont les membres portent du PHI — par exemple, des patients optés à la diffusion de traitement. La référence contrôles HIPAA documente les deux endpoints ; ce guide vous mène pour les exécuter en production : quoi désigner, comment fonctionnent les sémantiques d’écriture, ce qui se passe au lancement de campagne et comment lire l’audit trail. Le registre est propriété du tenant. Devotel ne désigne jamais d’audiences en votre nom et ne scope jamais le PHI pour vous — les désignations sont votre attestation, ce sont des contrôles bloqués par BAA que vous opérez, et ils ne prennent effet qu’une fois que HIPAA est dans le périmètre de votre organisation. Si vous n’avez pas encore exécuté le BAA et activé le mode HIPAA, exécutez d’abord la séquence Onboarding HIPAA.1. Quand marquer une audience comme adjacente au PHI
La désignation suit la provenance : marquez les audiences dont les données sources contiennent du PHI, indépendamment de ce qu’une campagne individuelle envoie. Une audience est adjacente au PHI du fait de là où viennent ses membres — une importation de rappels de rendez-vous de patients, une liste opt-in de diffusion de traitement — pas du fait du copy que vous écrivez cette semaine. C’est pourquoi la désignation vit sur l’audience elle-même et pas sur une campagne : quelle que soit la campagne qui la prend, la désignation voyage avec. Marquez une audience comme adjacente au PHI quand :- Ses membres ont été importés d’un système qui retient du PHI (une exportation EHR, une synchronisation opt-in de portail patient).
- La liste ou le segment est filtré ou assemblé sur des critères porteurs de PHI (tags adjacents au diagnostic, cohortes de traitement).
- La carte de données de votre officier de compliance enregistre l’audience comme PHI dans le périmètre.
owner ou admin — le même gate que les endpoints BAA. Un developer ou viewer reçoit 403. Gardez la décision de désignation avec votre officier de compliance HIPAA ; la plateforme enregistre qui a changé le registre à chaque écriture (voir Audit trail).
2. Choisir des ids de liste vs segment
Le registre retient des ids d’audience — chaque entrée est soit un id de liste de contact soit un id de segment, passé comme string brut. Le precheck de lancement de campagne ne résout que les audiences de typelist et segment contre le registre ; les audiences assemblées par contact (tous les contacts, upload CSV, entrée manuelle) sont évaluées destinataire par destinataire à l’heure d’envoi, donc elles n’ont pas d’id de registre à désigner.
Pour redériver l’id pour une désignation :
id de la liste ou du segment que vous désignez. Les ids font 1–128 caractères après trim ; tout ce qui est plus long ou vide est rejeté avec 422 à l’écriture. Le registre retient au maximum 500 ids par organisation — un PUT en portant plus renvoie 422.
Désignez l’id de source, pas une copie en aval. Si une liste porteure de PHI alimente un segment dérivé, décidez si le segment dérivé contient aussi du PHI et désignez-le explicitement — le precheck vérifie l’id que la campagne référence réellement, rien d’autre.
3. Le swap PUT atomique
Le registre a une opération d’écriture : unPUT de remplacement total. Il n’y a pas de PATCH, pas de DELETE par id — chaque écriture remplace l’ensemble désigné entier en une seule instruction atomique, donc un GET concurrent ne voit jamais une mise à jour partiellement appliquée.
GET le registre actuel, ajoutez ou enlevez votre id dans le résultat, et PUT l’ensemble entier en retour. Ne construisez jamais le body depuis l’état local seul — vous supprimeriez silencieusement des désignations qu’un autre opérateur a ajoutées.
Pour lever une désignation, PUT le registre sans cet id. Pour re-désigner, PUT avec l’id ajouté en retour. Les ids individuels qui survivent à un swap sont inchangés ; seule la participation à l’ensemble compte.
4. Comment le precheck de lancement utilise le registre
Deux gates protègent le PHI à des points différents, et le registre alimente le premier :- Precheck de lancement (niveau campagne, gate dur). Avant qu’une campagne ne quitte brouillon/programmée, le precheck résout son id d’audience contre le registre. Un id désigné plus un BAA qui n’est pas
executedet en terme refuse le lancement avec422 HIPAA_BAA_REQUIRED— avant qu’un seul destinataire ne soit inscrit. Si l’état de compliance ne peut être lu, le precheck échoue fermé avec500 HIPAA_BAA_GATE_DB_FAILplutôt que d’admettre silencieusement l’audience. - Gate d’envoi par destinataire (heure de message, inchangé). Le gate d’envoi existant s’applique toujours à chaque envoi individuel et ne consulte pas le registre — les envois legacy one-off sont gouvernés par lui seul.
details.reason vous dit exactement quel état BAA le dé-bloque :
Il y a deux façons de dé-bloquer, et ce sont des décisions de compliance, pas des décisions de plateforme :
- Résoudre le BAA — l’exécuter ou le ré-exécuter pour que le gate passe. C’est le bon chemin quand l’audience porte vraiment du PHI.
- Lever la désignation —
PUTle registre sans l’id d’audience. C’est le bon chemin seulement quand l’audience a été désignée par erreur. Lever une désignation pour contourner le gate est visible dans votre propre journal d’audit.
5. Audit trail
Deux classes de registres atterrissent dans le journal d’audit de votre organisation :hipaa.phi_audiences.set— une ligne parPUT, enregistrant l’utilisateur agissant, l’organisation et l’ensemble d’ids post-écriture complet. C’est votre histoire de versionnement : le registre n’a pas de ressource de révision séparée — la séquence de lignes d’audit est l’historique de versions. Pour reconstruire ce qui a été désigné à un point dans le temps, parcourez les lignesseten arrière ; pour revenir,PUTl’ensemble d’ids d’une ligne précédente.- Refus de lancement
HIPAA_BAA_REQUIRED— chaque lancement bloqué est loggé avec la raison du refus et l’audience en évaluation. Ces lignes font double emploi comme votre file d’incidents : un refus signifie soit que du travail de compliance est en attente (BAA non exécuté) soit qu’une désignation et une campagne sont en désaccord.
- Lisez le
details.reasonetdetails.audience.iddu refus. - Vérifiez
GET /api/v1/compliance/baa/— si le BAA estpending/expired/non exécuté, résolvez-le via le flux BAA. - Si le BAA est sain, vérifiez si l’audience devrait être désignée en premier lieu :
GET /api/v1/compliance/hipaa/phi-audienceset comparez avec votre carte de données. Levez une désignation erronée avec un swap (PUTsans l’id). - Enregistrez le résultat dans votre propre registre d’incidents — les lignes d’audit ci-dessus sont la preuve que vous citez.
6. Troubleshooting des conflits d’écrasement concurrent
LePUT du registre ne renvoie jamais 409 — le swap atomique en une seule instruction signifie qu’une écriture commite toujours, et le dernier écrivain gagne. Le risque de conflit est les mises à jour perdues entre opérateurs, pas des écritures rejetées :
- Opérateur A et opérateur B font tous les deux
GETle registre. - A ajoute
list_aaaetPUT. B — travaillant depuis le snapshot pré-A — ajoutelist_bbbetPUT. - Le swap de B supprime silencieusement
list_aaa.
- Lire immédiatement avant d’écrire. Gardez la fenêtre read-modify-write courte ; ne portez pas un registre récupéré à travers une session d’édition — re-
GETquand vous êtes prêt pourPUT. - Vérifier après l’écriture.
GETune fois de plus et confirmez que votre id est présent et qu’aucune désignation non connectée n’a été perdue. Si quelque chose a disparu, les ligneshipaa.phi_audiences.setdu journal d’audit montrent quel écrivain l’a écrasée et quel ensemble restaurer. - Sérialiser les éditions du registre organisationnellement. Parce que la désignation est une attestation de compliance, routez les éditions par un rôle (l’officier de compliance) plutôt que de les répandre entre opérateurs — un fix procédural qui élimine la course entièrement.
422 au lieu du succès, la cause est la validation, pas le conflit : plus de 500 ids, un id vide après trim, ou un id de plus de 128 caractères. Trimez et réessayez avec l’ensemble complet.
Voir aussi
- Désignations d’audiences adjacentes au PHI — la référence endpoint pour le contrat du registre (plafond, sémantique de remplacement, action d’audit)
- Contrôles de compliance HIPAA — la référence de contrôle complète que le registre alimente
- BAA — Business Associate Agreement — le cycle de vie que le precheck de lancement fait respecter
- Onboarding HIPAA : du BAA à audit-ready — la séquence qui amène un workspace santé à audit-ready avant que vous ne désigniez des audiences
- Send gates — le gate par destinataire qui complète le precheck de lancement