Clave la columna vertebral de las comunicaciones en un propietario, no una pista

Featurekamo-shared-library
Se descapó
26 de agosto de 2026 a las 1:37 UTC
Autor
Kamo
Compromit
78d9861

La columna vertebral se construyó en forma de plomo. LEAD.CONTACT.POINTS.LEAD-UID, LEAD.COMMUNICATIONS.LEAD-UID y la asociación que realmente necesita es más amplio. Una cuenta posee varias pistas, típicamente compartiendo el mismo punto de contacto porque son la misma persona que indaga dos veces. Un registro de comercio Cuelga de la cuenta en lugar de cualquier pista. Y un historial de pacientes ha llamadas y correos electrónicos al respecto y ninguna pista. La clave de los plomos significaba que cada uno de ellos, tomando prestada una pista o creció una línea de tiempo paralela. Ambas tablas ahora llevan el administrador de documentos (asc.type, assoc-object-id) Par, con LEAD, ACCOUNT, PATIENT y COMMERCE-RECORD como propietarios. LEAD-UID es KEPT y todavía se llena para filas de propiedad de plomo, por lo que cada existente /leads consulta, index and call site no se toca . el repositorio con llave de plomo los métodos y la sobrecarga de tiempo de plomo permanecen, y el nuevo propietario-diseñado los que se sientan a su lado. Tres cosas que esto tenía que hacer bien, y una casi me equivoco. La restricción única se traslada a la pareja de propietarios. (ORG-ID, LEAD-UID, CHANNEL, SOURCE-ID) es lo que hace que la ingestión idempotente - se ve una llamada RingCentral dos veces, una por el webhook y una vez por el barrido de reconciliación. Con LEAD-UID null para un paciente, Postgres trata cada uno de esos NULLs como distinto y el segundo avistamiento inserta un duplicado. La tabla de puntos de contacto importa más que la línea de tiempo. Señalando una línea de tiempo en un nuevo propietario cambia lo que es LEAD; tráfico entrante sólo LANDS en un propietario que tiene puntos de contacto, porque eso es lo que el enlaceador coincide contra. Un paciente cuyo número no es un punto de contacto recibe llamadas que No te acerqués a nadie. La que casi envié: el enlazador des-dupedeado partidos de cp.getLeadUid(). Para un punto de contacto no liderado que es nulo, así vistoLeads.add(null) permitiría exactamente UN propietario no líder a través de un mensaje de entrada - una llamada a un número Dos pacientes comparten que llegaría a uno de ellos, en silencio. Ahora des-dupes en el dueño. el tipo de STRING, nunca un ordinal. Hibernate congela una CHECK (Gran BETWEEN 0 Y N) sobre una columna ordinal enum en la tabla CREATE y nunca La revisión, así que adjuntar un valor más tarde rechaza cada inserción llevándolo. silenciosamente, porque la declaración fallida se asienta dentro de un método de transición cuyo retroceso elimina las pruebas. Siete de ellos fueron encontrados llenos y ya rompiendo las cosas en esta plataforma en agosto. Un null almacenado lee como LEAD, porque cada fila escrita antes de la columna existía es una pista y devolver nula para aquellos que encajarían la línea de tiempo Este cambio existe para ampliar. Un valor UNKNOWN lee como nulo en lugar de LEAD - Atar el tráfico de alguien más a una línea de tiempo de plomo es el indicado. respuesta peor que ninguna. También en esta confirmación: la capa de intercambio TEFCA (socios, la revelación libro de lectura, emparejamiento de pacientes de organización cruzada). Sus códigos de propósito son ahora el el mismo HL7 v3 ActReason strings PhiPurposeOfUse ya utiliza una prueba capturada yo inventando "T" para el tratamiento donde la plataforma dice "TREAT" y un fila de intercambio y una fila de auditoría describen la misma revelación desde dos ángulos, Así que un informe que une ellos se une a esas cuerdas. 1932 pruebas verdes.

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios