Registrar audiencias adyacentes a PHI
El registro de audiencias adyacentes a PHI es la lista de su organización de listas de contacto y segmentos cuyos miembros llevan PHI — por ejemplo, pacientes optados a divulgación de tratamiento. La referencia de controles HIPAA documenta los dos endpoints; esta guía lo lleva por ejecutarlos en producción: qué designar, cómo funcionan las semánticas de escritura, qué pasa al lanzamiento de campaña y cómo leer el audit trail. El registro es propiedad del tenant. Devotel nunca designa audiencias en su nombre y nunca scopeo PHI por usted — las designaciones son su atestación, son controles bloqueados por BAA que usted opera, y solo surten efecto una vez que HIPAA está en el ámbito de su organización. Si no ha ejecutado aún el BAA y activado el modo HIPAA, ejecute primero la secuencia de Onboarding HIPAA.1. Cuándo marcar una audiencia como adyacente a PHI
La designación sigue la proveniencia: marque las audiencias cuyos datos de origen contienen PHI, independientemente de lo que cualquier campaña individual les envíe. Una audiencia es adyacente a PHI por de dónde vinieron sus miembros — una importación de recordatorios de cita de pacientes, una lista opt-in de divulgación de tratamiento — no por el copy que escribe esta semana. Por eso la designación vive en la audiencia misma y no en una campaña: cualquier campaña que la recoja, la designación viaja con ella. Marque una audiencia como adyacente a PHI cuando:- Sus miembros fueron importados de un sistema que retiene PHI (una exportación EHR, una sincronización opt-in de portal de pacientes).
- La lista o segmento está filtrado o ensamblado sobre criterios que llevan PHI (tags adyacentes a diagnóstico, cohortes de tratamiento).
- El mapa de datos de su oficial de compliance registra la audiencia como PHI en el ámbito.
owner o admin — el mismo gate que los endpoints BAA. Un developer o viewer recibe 403. Mantenga la decisión de designación con su oficial de compliance HIPAA; la plataforma registra quién cambió el registro en cada escritura (vea Audit trail).
2. Elegir ids de lista vs segmento
El registro retiene ids de audiencia — cada entrada es o un id de lista de contacto o un id de segmento, pasado como string plano. El precheck de lanzamiento de campaña solo resuelve audiencias tipolist y segment contra el registro; las audiencias ensambladas por contacto (todos los contactos, carga CSV, entrada manual) son evaluadas destinatario por destinatario al momento del envío, así que no tienen id de registro que designar.
Para rederivar el id para una designación:
id de la lista o segmento que está designando. Los ids son 1–128 caracteres tras el trim; cualquier cosa más larga o vacía es rechazada con 422 al escribir. El registro retiene como máximo 500 ids por organización — un PUT que lleva más devuelve 422.
Designe el id de origen, no una copia downstream. Si una lista que lleva PHI alimenta un segmento derivado, decida si el segmento derivado también contiene PHI y designe explícitamente — el precheck verifica el id que la campaña realmente referencia, nada más.
3. El swap PUT atómico
El registro tiene una operación de escritura: unPUT de reemplazo total. No hay PATCH, no hay DELETE por id — cada escritura reemplaza el conjunto designado entero en una sola instrucción atómica, así que un GET concurrente nunca ve una actualización parcialmente aplicada.
GET el registro actual, agregue o quite su id en el resultado, y PUT el conjunto entero de vuelta. Nunca construya el body desde estado local solo — silenciosamente quitaría designaciones que otro operador agregó.
Para levantar una designación, PUT el registro sin ese id. Para re-designar, PUT con el id agregado de vuelta. Ids individuales que sobreviven un swap quedan sin cambios; solo importa la membresía en el conjunto.
4. Cómo el precheck de lanzamiento usa el registro
Dos gates protegen PHI en puntos diferentes, y el registro alimenta el primero:- Precheck de lanzamiento (nivel campaña, gate duro). Antes de que una campaña salga de borrador/programada, el precheck resuelve su id de audiencia contra el registro. Un id designado más un BAA que no está
executedy en período rechaza el lanzamiento con422 HIPAA_BAA_REQUIRED— antes de que un solo destinatario se inscriba. Si el estado de compliance no puede leerse, el precheck falla cerrado con500 HIPAA_BAA_GATE_DB_FAILen lugar de admitir silenciosamente la audiencia. - Gate de envío por destinatario (tiempo de mensaje, sin cambios). El gate de envío existente sigue aplicando a cada envío individual y no consulta el registro — los envíos legacy de uno a uno son gobernados solo por él.
details.reason le dice exactamente qué estado de BAA lo desbloquea:
Hay dos formas de desbloquear, y son decisiones de compliance, no de plataforma:
- Resolver el BAA — ejecutarlo o re-ejecutarlo para que el gate pase. Este es el camino correcto cuando la audiencia genuinamente lleva PHI.
- Quitar la designación —
PUTel registro sin el id de audiencia. Este es el camino correcto solo cuando la audiencia se designó por error. Levantar una designación para rodear el gate es visible en su propio log de auditoría.
5. Audit trail
Dos clases de registros aterrizan en el log de auditoría de su organización:hipaa.phi_audiences.set— una fila porPUT, que registra el usuario actuante, la organización y el conjunto de ids post-escritura completo. Es su historia de versionamiento: el registro no tiene un recurso de revisión separado — la secuencia de filas de auditoría es el historial de versiones. Para reconstruir qué se designó en un punto en el tiempo, recorra las filassethacia atrás; para revertir,PUTel conjunto de ids de una fila anterior.- Negaciones de lanzamiento
HIPAA_BAA_REQUIRED— cada lanzamiento bloqueado se loggea con la razón que lo negó y la audiencia en evaluación. Estas filas hacen doble partida como su cola de incidentes: una negación significa que o hay trabajo de compliance pendiente (BAA no ejecutado) o una designación y una campaña están en desacuerdo.
- Lea el
details.reasonydetails.audience.idde la negación. - Verifique
GET /api/v1/compliance/baa/— si el BAA espending/expired/no ejecutado, resuélvalo a través del flujo BAA. - Si el BAA está sano, verifique si la audiencia debería estar designada en absoluto:
GET /api/v1/compliance/hipaa/phi-audiencesy compare contra su mapa de datos. Levante una designación errónea con un swap (PUTsin el id). - Registre el resultado en su propio registro de incidentes — las filas de auditoría arriba son la evidencia que cita.
6. Troubleshooting de conflictos de sobreescritura concurrente
ElPUT del registro nunca devuelve 409 — el swap atómico de una sola instrucción significa que una escritura siempre commitea, y el último escritor gana. El riesgo de conflicto son actualizaciones perdidas entre operadores, no escrituras rechazadas:
- Operador A y operador B ambos
GETel registro. - A agrega
list_aaayPUT. B — trabajando desde el snapshot pre-A — agregalist_bbbyPUT. - El swap de B silenciosamente quita
list_aaa.
- Leer inmediatamente antes de escribir. Mantenga la ventana read-modify-write corta; no lleve un registro fetechado a través de una sesión de edición — re-
GETcuando esté listo paraPUT. - Verificar después de escribir.
GETuna vez más y confirme que su id está presente y que ninguna designación no relacionada se perdió. Si algo desapareció, las filashipaa.phi_audiences.setdel log de auditoría muestran cuya escritura lo sobreescribió y qué conjunto restaurar. - Serializar ediciones del registro organizacionalmente. Porque la designación es una atestación de compliance, enrute las ediciones a través de un rol (el oficial de compliance) en lugar de esparcirlas entre operadores — un fix procedimental que elimina la carrera por completo.
422 en lugar de éxito, la causa es validación, no conflicto: más de 500 ids, un id vacío tras el trim, o un id de más de 128 caracteres. Trime y reintente con el conjunto completo.
Ver también
- Designaciones de audiencias adyacentes a PHI — la referencia de endpoint para el contrato del registro (tope, semántica replace, acción de auditoría)
- Controles de compliance HIPAA — la referencia completa de controles que el registro alimenta
- BAA — Business Associate Agreement — el ciclo de vida que el precheck de lanzamiento hace cumplir
- Onboarding HIPAA: del BAA a auditoría — la secuencia que lleva un workspace healthcare a audit-ready antes de designar audiencias
- Send gates — el gate por destinatario que complementa el precheck de lanzamiento