|
5 min de lecture
|

Mise en œuvre de contraintes d'unicité

Résumer cet article avec :
ChatGPTPerplexityClaudeGrok

Le problème : votre système de stockage doit garantir que l'identifiant SSN est unique dans tous les dossiers patients. Cela signifie que si vous tentez de créer un nouveau patient avec un SSN et qu'un autre patient possédant le même SSN existe déjà, le système rejettera la demande afin d'éviter les doublons.

Pour résoudre ce problème dans le serveur FHIR Aidbox, vous pouvez créer un index qui applique cette règle :

CREATE UNIQUE INDEX patient_email_unique_idx1
ON patient ((jsonb_path_query_first(resource, '$.identifier[*] ? (@.system == "http://hl7.org/fhir/sid/us-ssn").value') #>> '{}'));

Explication :

  • CREATE UNIQUE INDEX patient_ssn_unique_idx1 Ceci définit un index unique nommé patient_ssn_unique_idx1. Lorsque vous créez un index unique, PostgreSQL empêche les valeurs en double dans la ou les colonnes spécifiées. Si une valeur en double est insérée, la base de données génère une erreur de violation de contrainte d'unicité.

  • ON patient L'index s'applique à la table patient.

  • (jsonb_path_query_first(resource, '$.identifier[*] ? (@.system == "http://hl7.org/fhir/sid/us-ssn").value') #>> '{}') resource : Désigne la colonne JSONB qui stocke les données du patient.

  • jsonb_path_query_first(...) : Extrait le premier identifiant qui satisfait la condition.

  • '$.identifier[*] ? (@.system == "http://hl7.org/fhir/sid/us-ssn").value' : Recherche tous les éléments d'identifiant dans le JSON de la ressource.

  • Filtre les identifiants dont le système est « http://hl7.org/fhir/sid/us-ssn » (indiquant un SSN).

  • Extrait le champ value, qui contient le SSN réel.

  • #>> '{}' : Convertit le résultat JSONB extrait en une valeur en texte brut aux fins d'indexation.

Testez-le sur votre serveur FHIR local.

Voir aussi : Résoudre les conflits entre les SearchParameters FHIR et FHIR comme format de stockage de données.

Partager cet article
Comments
Comments
Sign in
Loading comments...
Subscribe to our blog

Get the latest articles on FHIR, interoperability, and healthcare IT.