|
5 Min. Lesezeit
|

Eindeutige Constraints implementieren

Diesen Artikel zusammenfassen mit:
ChatGPTPerplexityClaudeGrok

Das Problem: Ihr Speichersystem muss sicherstellen, dass die SSN-Kennung über alle Patientendatensätze hinweg eindeutig ist. Das bedeutet: Wenn Sie versuchen, einen neuen Patienten mit einer SSN anzulegen, und bereits ein Patient mit derselben SSN existiert, lehnt das System die Anfrage ab, um Duplikate zu verhindern.

Um dieses Problem im Aidbox FHIR Server zu lösen, können Sie einen Index erstellen, der diese Regel durchsetzt:

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

Erläuterung:

  • CREATE UNIQUE INDEX patient_ssn_unique_idx1 Hiermit wird ein eindeutiger Index namens patient_ssn_unique_idx1 definiert. Wenn Sie einen Unique Index erstellen, verhindert PostgreSQL doppelte Werte in den angegebenen Spalten. Wird ein doppelter Wert eingefügt, wirft die Datenbank einen Fehler wegen einer Unique-Constraint-Verletzung.

  • ON patient Der Index wird auf die Patiententabelle angewendet.

  • (jsonb_path_query_first(resource, '$.identifier[*] ? (@.system == "http://hl7.org/fhir/sid/us-ssn").value') #>> '{}') resource: Verweist auf die JSONB-Spalte, in der die Patientendaten gespeichert sind.

  • jsonb_path_query_first(...): Extrahiert die erste Kennung, die die Bedingung erfüllt.

  • '$.identifier[*] ? (@.system == "http://hl7.org/fhir/sid/us-ssn").value': Durchsucht alle Identifier-Elemente im Ressourcen-JSON.

  • Filtert Kennungen, bei denen das System „http://hl7.org/fhir/sid/us-ssn" ist (was eine SSN anzeigt).

  • Extrahiert das Feld value, das die eigentliche SSN enthält.

  • #>> '{}': Konvertiert das extrahierte JSONB-Ergebnis in einen einfachen Textwert für die Indizierung.

Testen Sie es auf Ihrem lokalen FHIR-Server.

Siehe auch: Konflikthafte FHIR SearchParameters auflösen und FHIR als Datenspeicherformat.

Diesen Artikel teilen
Comments
Comments
Sign in
Loading comments...
Subscribe to our blog

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