Dataverse Healthcare APIs: Verwenden Sie die Vorlage für die Healthcare-Daten-Pipeline, um Azure Logic-Apps bereitzustellen

Dieser Artikel enthält eine schrittweise Anleitung für die Verwendung einer Vorlage, um eine Gruppe von Azure Logic-Apps bereitzustellen, die FHIR-Daten in Dataverse Healthcare APIs, Azure Health Data Services oder beides einbinden. Diese Lösung funktioniert als unternehmenstauglicher Logic-App Flow, der als Relais zwischen Azure Health Data Services und Dataverse Healthcare APIs dient und auch die Wiederholungslogik und die Ausnahmebehandlung verwaltet. Der Flow stützt sich auf einen Azure Blob Storage Auslöser und nicht auf den HTTP Auslöser, der in der manuellen Konfiguration verwendet wird.

Dieser Workflow wird als Azure Resource Manager (ARM)-Vorlage mit dem Titel Healthcare data pipeline template zur Bereitstellung bereitgestellt. Sie können die Vorlage über das Microsoft Cloud-Lösungscenter bereitstellen. Bei diesem Angebot handelt es sich um eine robustere und besser unterstützte Lösung von Microsoft Cloud for Healthcare. Nach dem Bereitstellen der Vorlage müssen Sie nur noch einige grundlegende manuelle Konfigurationen festlegen.

Anmerkung

  • Dieser Flow der Logic-App dient als Eingangspunkt für eingehende elektronische Datensätze (EHR) und stellt sicher, dass FHIR-Daten an die richtigen Dienste weitergeleitet werden. Es soll von den Benutzern aktualisiert werden und ist in seinem aktuellen Status keine endgültige Lösung.

  • Diese Logic-Apps sind nicht verpflichtet, FHIR-Daten an die Dataverse Healthcare API-Endpunkte zu senden. Sie können eine eigene Lösung entwickeln, um Daten aus Ihrer elektronischen Patientenakte an die APIs weiterzuleiten und die Antworten zu verarbeiten.

Die Dienste der Logic-App stützen sich auf einen Azure Blob Storage-Auslöser, um die asynchrone Verarbeitung der an einen konfigurierbaren Speicherort gesendeten Bundles einzuleiten. Diese Option bewältigt schwerere Ladungen für Unternehmenskunden und umfasst zusätzliche Schritte zur Behandlung von Ausnahmen. Sie sollten jedoch gründliche Tests mit Ihren erwarteten täglichen Belastungen durchführen.

Nach dem Bereitstellen können die Logic Apps erweitert werden, um Ihren speziellen Systemanforderungen gerecht zu werden.

Wichtig

Diese ARM-Vorlage ist nur mit Microsoft Cloud for Healthcare 2022 Veröffentlichungswelle 2 und späteren Versionen kompatibel. Für ältere Versionen löschen Sie die Aktion Set requestBody to FHIR response on success, bevor Sie einen Auslöser setzen.

Die Konfiguration umfasst die folgenden Schritte:

Anforderungen

Stellen Sie sicher, dass Ihre Umgebung die folgenden Anforderungen erfüllt, bevor Sie die Vorlage bereitstellen:

  • Ein Azure Konto und ein Abonnement. Wenn Sie noch kein Abonnement haben, melden Sie sich für ein kostenloses Azure-Konto an, bevor Sie beginnen.
  • Eine Azure Ressourcengruppe, die mit den entsprechenden Berechtigungen konfiguriert ist, um neue Ressourcen zu erstellen, oder eine Mitwirkende Rolle, um neue Ressourcengruppen erstellen zu können.
  • Zugriff innerhalb der Ressourcengruppe zum Erstellen von Ressourcen und Zuweisen von Azure-Rollen.
  • Die Einhaltung der Sicherheitsrichtlinien, die von Azure Administratoren und den Richtlinien des Unternehmens vorgegeben werden.

Design

Das folgende Diagramm veranschaulicht den Aufbau der Pipeline, die über die Vorlage bereitgestellt wird:

Ein Screenshot, der das Design und den Flow der Vorlage zeigt.

Die ARM-Vorlage stellt mehrere modularisierte Logic-Apps bereit. Es enthält die folgenden drei Logic-Apps:

Logic App Beschreibung
FHIR Bundle verarbeiten Die erste Logic-App-Instanz, die ausgelöst wird, wenn ein Bundle in den Blob-Storage hochgeladen wird. Diese Logic-App bestimmt, ob das Bundle an FHIR oder direkt an Dataverse gesendet werden soll.
Bundle an FHIR senden Die zweite Logic-App, die von der Logic-App FHIR-Bundle verarbeiten ausgelöst wird, wenn Sie sich entscheiden, das Bundle an FHIR zu senden. Diese Logic-App verarbeitet das Bundle der Anfrage und sendet es an den FHIR-Server. Nachdem das Bundle an den FHIR-Server gesendet wurde, leitet die Logic-App das Bundle zur weiteren Verarbeitung an die nächste Logic-App Bundle an Dataverse weiter.
Bundle an Dataverse senden Die letzte Logic-App wird entweder von der Logic-App FHIR Bundle verarbeiten oder Bundle an FHIR senden ausgelöst. Sie verarbeitet das Anfrage-Bundle und sendet das Bundle an Dataverse. Diese Logic-App kümmert sich auch um die Bereinigung der Bundles-Container, indem sie das Anfrage-Bundle entweder in den Container bundleserror oder bundlesarchive verschiebt.

Vorlagenparameter

Parameter Beschreibung
Ressourcenspeicherort Die Azure-Region, in der die Ressourcen erstellt würden. Dieser Parameterwert entspricht standardmäßig der Region, die zum Erstellen der Ressourcengruppe verwendet wurde.
Dataverse-URL Die URL Ihrer Microsoft Cloud for Healthcare Dataverse Umgebung. Zum Beispiel https://*orgname*.crm.dynamics.com
Auf FHIR-Server veröffentlichen Ein boolescher Wert. Wenn er auf „wahr“ gesetzt ist, wird das Paket an den FHIR-Server gesendet.
FHIR-Server-URL Die URL Ihres FHIR-Servers. Zum Beispiel https://*fhirserver*.azurewebsites.net
Sie benötigen diesen Parameter nur, wenn Sie an den FHIR-Server posten, bevor Sie an den Dataverse upsert API-Endpunkt posten.
Eindeutiger Wert Die eindeutige Zeichenfolge, die zur Generierung von Ressourcennamen verwendet wird. Dieser Wert ist standardmäßig die Funktion uniqueString. Sie können diesen Wert bei Bedarf außer Kraft setzen.

Bereitgestellte Ressourcen

Mit der Vorlage werden die folgenden Ressourcen in Ihrer Umgebung bereitgestellt:

Ressource Beschreibung
Verwaltete Identität Der Name der verwalteten Identität hat das Format mi_UniqueValue. Der Logic-App würde diese verwaltete Identität zugewiesen, und die verwaltete Identität würde Zugriff auf das Speicherkonto, den FHIR-Server und die Dataverse-Umgebung erhalten.
Azure Storage-Konto Der Name des Speicherkontos hat das Format sa_UniqueValue. Zusammen mit dem Speicherkonto stellt die Vorlage auch die folgenden drei Container bereit - bundles, bundlesarchive und bundleserror.
Rollenzuweisung Weisen Sie die Rolle Mitwirkender an Storage-Blobdaten des Speicherkontos der verwalteten Identität zu.
Azure Event Grid Der Name des Ereignis-Rasters hat das Format eg_UniqueValue. Alle Blob-Ereignisse werden in diesem Event Grid veröffentlicht.
Azure-Servicebus Der Name des Service Bus hat das Format sb_UniqueValue. Das Event Grid würde Ereignisse an diesen Service Bus senden. Der Name der Warteschlange lautet bundleCreated.
Autorisierungsregel Erstellt eine Zuhören-Autorisierungsregel auf dem Service Bus mit dem Namen bundleauthlisten.
Azure Logik-Apps Ein Satz zugehöriger Logic-App Workflows vom Typ Verbrauch. Der Workflow wird über die Ereignisse des Service Busses ausgelöst. Diese Logic-Apps verarbeiten das eingehende FHIR-Bundle und leiten es an die konfigurierten Endpunkte weiter.

Jede Logic-App wird mit dem eindeutigen Wert benannt, der bei der Bereitstellung angegeben wurde:
1. laprocessfhirbundle_UniqueValue
2. lasendbundletodataverse_UniqueValue
3. lasendbundletofhir_UniqueValue
API-Verbindung Mehrere API-Verbindungen für die Logic-Apps erforderlich.

Ausgabe

Je nachdem, ob die Ausführung mit einem Erfolg oder einem Fehler endet, wird im Ordner bundlesarchive oder bundleserror ein Blob mit dem Namen originalblobname_response.json mit dem folgenden Schema erstellt:

{
  "dataverseResponse": "<The response from the Dataverse healthcare API post the call.>",
  "fhirServerResponse": "<The response from the FHIR server call if the "Post to FHIR server" parameter value was set to True.>",
  "statusMessage": "<Summary of the responses. In case of a failure, the message provides details about how many resources failed to post to the FHIR server and to Dataverse.>",
  "statusCode": "<Code value associated with the issue encountered.>"
}

Je nachdem, welche Logic-App den Fehler ausgelöst hat, enthält der JSON-Fehler entweder den Knoten dataverseResponse oder fhirServerResponse. Wenn beispielsweise bei der Logic-App Lasendbundletofhir_UniqueValue ein Fehler auftritt, enthält die JSON-Antwort nur den Knoten fhirServerResponse und den Wert.

Schritte nach der Bereitstellung

Der folgende Abschnitt enthält die Schritte, die Sie nach der Bereitstellung der Vorlage ausführen müssen.

Gewährt Zugriff auf den FHIR-Server

Für den Zugriff auf den FHIR-Server über die Logik-App ist die Zuweisung der Rolle FHIR-Daten-Mitwirkender erforderlich, die es ermöglicht, neue Daten an den Dienst zu senden. Diese Azure-Rollenzuweisung sollte der verwalteten Identität hinzugefügt werden, die von der Logik-App verwendet wird.

  1. Gehen Sie zu der FHIR-Serverinstanz, wählen Sie Access Control (IAM) und dann Rollenzuweisung hinzufügen aus.

    Auf der Registerkarte Rolle wählen Sie die Rolle FHIR-Datenmitwirkender.

    Ein Screenshot zeigt die Auswahl der Rolle FHIR-Datenmitwirkender.

  2. Wählen Sie Mitglieder, wählen Sie Verwaltete Identität und wählen Sie dann + Mitglieder auswählen.

  3. Fügen Sie die verwaltete Identität hinzu, die bei der Bereitstellung der ARM-Vorlage erstellt wurde. Die neu bereitgestellte verwaltete Identität sollte den Namen mi_UniqueValue tragen.

  4. Es kann einige Minuten dauern, bis die Zuweisung die verwaltete Identität berücksichtigt. Nach der Anwendung wählen Sie Azure Rollenzuweisungen, um die Rollenzuweisung für die verwaltete Identität anzuzeigen.

Zugriff auf Dataverse Healthcare APIs gewähren

In der Logik-App würde dieselbe verwaltete Identität für den Zugriff auf Dataverse Healthcare APIs verwenden, indem es mit einem Anwendungsbenutzer in der Ziel Dataverse-Instanz verbunden wird. Weitere Informationen über Anwendungsbenutzer finden Sie unter Anwendungsbenutzer im Admin-Center von Power Platform verwalten.

  1. Sie benötigen die Azure Client ID für die verwaltete Identität, um den Anwendungsbenutzer zu konfigurieren. Um die Client ID abzurufen, öffnen Sie die verwaltete Identität, die während der Bereitstellung der ARM-Vorlage erstellt wurde, und kopieren Sie den Wert Client ID aus dem Bereich Übersicht.

  2. Öffnen Sie im Power Platform Admin Center Ihre Microsoft Cloud for Healthcare Zielumgebung. Wählen Sie im Abschnitt ZugriffS2S-Apps und dann Neuer App-Benutzer aus.

  3. Wählen Sie im Bereich Erstellen eines neuen App-Benutzers die entsprechende Unternehmenseinheit und dann Eine App erstellen.

  4. Im Fügen Sie eine App hinzu von Microsoft Entra ID Bereich wählen Sie die Client-ID, die Sie von der verwalteten Identität kopiert haben.

    Wählen Sie die verwaltete Identität aus der Liste und dann Hinzufügen aus. Bearbeiten Sie anschließend die Sicherheitsrollen.

  5. Wählen Sie die Rolle Synchronisierungs-Agent für FHIR App Reg User, und wählen Sie dann Speichern.

  6. Wählen Sie Erstellen, um den neuen Anwendungsbenutzer zu erstellen.

Nach Abschluss der Konfiguration können Sie den Workflow der Logic-App testen, indem Sie ein Beispiel-Bundle zur Verarbeitung in den Container sa_UniqueValue stellen. Je nach Anforderung an Ihre Lösung können Sie auch jede dieser Logic-Apps für zusätzliche Verarbeitungen modifizieren.

Umgang mit Fehlern

Wenn das Ausführen einer Logic-App zu einem Fehler führt, wird im Container bundleserror im Speicherkonto eine Datei mit dem Namen originalblobname_response.json erstellt. Sie können diese Datei analysieren, um die Grundursache des Fehlers zu ermitteln, ihn zu beheben und das Paket mit den fehlerhaften Ressourcen erneut zu übermitteln.

Pakettyp: Batch

Der FHIR-Server und die Dataverse Healthcare APIs verarbeiten ein Bündel vom Typ Batch als eine Gruppe unabhängiger Aktionen. Infolgedessen zeigen die Antworten unabhängig voneinander den Erfolg und Misserfolg jeder Ressource an.

Gemäß der FHIR-Spezifikation führt jede fehlgeschlagene Ressource zu einer OperationOutcome mit einem Schweregrad, der auf Fehler festgelegt ist, während die Dataverse Healthcare API msind_requeststatus auf 935000002 festlegt. Weitere Informationen zu den Anforderungsstatustypen finden Sie unter Anfragestatusarten.

Der Logik-App-Workflow analysiert sowohl die Antworten vom FHIR-Server als auch vom Dataverse Healthcare APIs und beendet den Flow als Fehlgeschlagen wenn es eine Ressource gibt, die zu einem Fehler geführt hat.

Anmerkung

Dataverse Healthcare APIs unterstützen derzeit nur FHIR-Pakete vom Typ Batch und Batch-Antwort.

Wiederholungen festlegen

Nachdem Sie den Fehler identifiziert und behoben haben, können Sie das Bundle wieder in den Container bundles legen zur Wiederaufbereitung.

Beim Drosseln erneut versuchen: FHIR-Server

Die HTTP-Aktion im Logik-App-Workflow, die an den FHIR-Server sendet, verwendet die integrierten Richtlinien zur HTTP-Aktionswiederholung. Der Standardwert ist eine Richtlinie für ein exponenzielles Intervall, die auf vier Wiederholungen festgelegt ist. Sie können die Wiederholungsrichtlinie bearbeiten.

  1. Wählen Sie die Auslassungspunkte in der oberen rechten Ecke der Aktionskarte und wählen Sie dann Einstellungen.

  2. Ändern Sie unter Wiederholungsrichtlinie den Wert des Felds Typ.

    Ein Screenshot, der zeigt, wie Sie die Art der Wiederholungsrichtlinie bearbeiten können.

Beim Drosseln erneut versuchen: Dataverse Healthcare APIs

Die API-Grenzwerte für den Dienstschutz beeinflussen die Dataverse Healthcare APIs. Wenn eine Anfrage an Dataverse Healthcare APIs gedrosselt wird, versucht der Workflow der Logic-App dreimal (standardmäßig) in dem von der API im Antwort-Header angegebenen Retry-After-Intervall. Sie können sowohl die Anzahl der Wiederholungsversuche als auch das Intervall bearbeiten.

  1. Um die Anzahl der Wiederholungen zu ändern, bearbeiten Sie den Wert Anzahl in der Aktion Wiederholen bis.

    Ein Screenshot, der zeigt, wie Sie die Anzahl der Wiederholungsversuche bearbeiten können.

  2. Um das Intervall zu ändern, bearbeiten Sie den Wert Anzahl in der Aktion Verzögerung.

    Ein Screenshot, der zeigt, wie Sie die Anzahl der Verzögerungen bearbeiten können.

Sichere Logic-Apps

Nachdem Sie die Logic-App eingerichtet und getestet haben, können Sie das Tracing sperren, indem Sie die Ein- und Ausgabeaktionen sichern. Um mehr zu erfahren, gehen Sie zu Secure Logic Apps.

Siehe auch

Was ist Microsoft Cloud for Healthcare?
Übersicht über Dataverse Healthcare APIs
Konfigurieren Sie Dataverse Healthcare APIs
Dataverse Healthcare APIs: Azure Logic-App mit einem HTTP-Auslöser konfigurieren
Die Dataverse Healthcare APIs verwenden