- Shipped
- 25 août 2026 à 01:08 UTC
- Author
- Kamo
- Commit
- a69d4b7
La fondation chaque entité clinique réutilise, et la porte de construction qui s'arrête il dérive. Les deux atterrissent ensemble à dessein: un harnais écrit avant est n'importe quoi pour que la police passe de façon variable, ce qui est un mode de défaillance la base de code a été mordue par avant. ClinicalBaseEntity n'est délibérément PAS de baseUuidEntity. Celui-ci utilise LocalDateTime et TIMESTAMP, et FHIR instantané nécessite un décalage - ceci une plate-forme déjà expédiée d'un bogue où un LocalDateTime a atteint le fil avec Aucun et un message de 3:33 AM rendu à 10h33 AM. Sur un horodatage clinique c'est une erreur de cartographie. Il porte également locataireId, qui mène tous les index parce que sur Yugabyte la colonne principale décide que le comprimé ET est le garantie d'isolement: le même être humain est un patient différent dans chaque la pratique, donc le patient n'est pas la frontière. Les types de données portent les décisions qui ne méritent pas de se re-litguer: - FhirConcept met en ligne le codage PRIMARY et envoie le reste au codage fhir. Une table pour enfants purs forcerait une jonction sur chaque observation et condition lire, qui est la plupart du graphique. FhirQuantity stocke la paire de canoniques UCUM séparément, car la quantité la recherche compare les grandeurs. Sans cela, une requête pour 7500 ug manque a stocké 7,5 mg et retourne un résultat vide qui se lit exactement comme le patient n'ayant pas une telle observation. Un faux silence sur une valeur de laboratoire est le le pire mode de défaillance dans le schéma. - FhirPeriod garde la précision, car une date FHIR est un INTERVAL: 2026, 2026-08 et 2026-08-24 sont des valeurs différentes et eq2026 signifie l'année. - FhirReference est un discriminateur plus un id, jamais Hibernate 'N'importe lequel, qui ne peut pas être rejoint en HQL ou indexé utilement sur un magasin distribué. - Les noms, adresses et points de contact sont des tables pour enfants saisies; Formulaire normalisés et (pour les adresses) normalisés par USPS séparément. L'appariement ne doit pas changer ce qui est affiché, et l'affichage ne doit pas décider Qu'est-ce qui correspond. L'actuel EmbNameFull, EmbAddress et EmbPhoneNumber ne peut pas l'exprimer et ne peut être élargi sans casser les appelants du CRM. Le harnais fait respecter par réflexion sur les classes compilées plutôt qu'un source regex, parce que chaque règle est à propos d'une annotation VALUE. C'est manifestations de mutation: quatre violations simultanées ont été injectées et les quatre les règles ont été licenciées avec leurs propres explications avant le retour. 1623 test vert.