Condividi tramite


Mapping di Data Integration Toolkit: esempi e casi d'uso

Nota

Amministrazione sincronizzazione per FHIR è stato rinominato in Data Integration Toolkit.

Data Integration Toolkit fornisce un'ampia raccolta di mapping predefiniti creati per essere conformi alla specifica HL7 FHIR.

I mapping di entità e i mapping attributi predefiniti sono distribuiti come record Dataverse e sono altamente configurabili per soddisfare i vari requisiti della soluzione. Questo articolo include alcuni esempi specifici associati all'utilizzo di questi mapping.

Per informazioni su come configurare questi mapping, vedi Configurare mapping di entità e Configurare mapping attributi. Dopo la configurazione, gli stessi mapping vengono utilizzati dalle Dataverse Healthcare API, dal processo di writeback e dalle tabelle di dati sulla salute virtuali.

Esempi di mapping di entità

Questa sezione elenca alcuni esempi di utilizzo di mapping di entità.

Esempio 1: incontro con il paziente

Quando aggiungi un incontro con il paziente alla CCE di un paziente, il mapping di entità fornisce le regole di trasformazione necessarie alle Dataverse Healthcare API per trasformare i dati FHIR in record Dataverse.

  1. Il mapping di entità msemr_encounter ↔ Incontro connette la risorsa FHIR di Azure Incontro all'entità Dataverse msemr_encounter.

    Screenshot che mostra l'esempio del mapping di entità per l'incontro del paziente.

  2. Le modifiche ai dati nella risorsa Incontro nel sistema di dati sanitari del cliente attivano un nuovo messaggio per le Dataverse Healthcare API. Ad esempio, se l'app per la logica di Azure (per le Dataverse Healthcare API) viene distribuita usando il modello di pipeline dei dati di assistenza sanitaria in Centro soluzioni Microsoft Cloud, viene pubblicata una nuova aggregazione FHIR nell'archivio BLOB. L'app per la logica quindi elabora questa aggregazione e la pubblica in Dataverse tramite le Dataverse Healthcare API.

    Per altre informazioni sulla configurazione di Modello pipeline dati assistenza sanitaria e dell'app per la logica, vedi Dataverse Healthcare API: utilizzare Modello pipeline dati assistenza sanitaria per distribuire app per la logica di Azure.

  3. Le Dataverse Healthcare API utilizzano il mapping di entità msemr_encounter ↔ Incontro. I relativei mapping degli attributi trasformano le risorse FHIR in entrata nei corrispondenti record rappresentativi in Dataverse.

Esempio 2: aggiornamento del paziente in Dataverse e writeback

Questo esempio prende in considerazione uno scenario in cui aggiorni un record paziente in Dataverse e vuoi che la modifica venga riscritta nel tuo sistema CCE, tramite i Servizi per i dati sanitari di Azure.

  1. Il mmapping di entità contatto ↔ Paziente di Data Integration Toolkit mette in relazione la risorsa FHIR di Azure Paziente con l'entità Dataverse Contatto.

    Screenshot che mostra l'esempio del mapping di entità per l'aggiornamento del paziente in Dataverse.

  2. Una modifica dei dati in un record del paziente in Dataverse attiva il plug-in di writeback Dataverse.

  3. Questo plug-in Dataverse invia un messaggio relativo al record modificato all'endpoint FHIR in uscita configurato nella sezione writeback delle impostazioni di integrazione.

  4. In questo esempio, l'endpoint FHIR è configurato per la pubblicazione diretta nei Servizi per i dati sanitari di Azure.

  5. Puoi inoltre configurare un'applicazione di inoltro, ad esempio un'app per la logica di Azure o una funzione di Azure, in grado di pubblicare il messaggio nel servizio CCE che nei Servizi per i dati sanitari di Azure.

    Nota

    Si consiglia di mantenere sincronizzati i dati del paziente, del medico, della clinica gestita e della clinica di riferimento con Microsoft Cloud for Healthcare.

Per ulteriori informazioni sulla configurazione del writeback, vedi Panoramica del writeback per le Dataverse Healthcare API.

Esempi di mapping attributi

Questa sezione include diversi esempi per la configurazione di vari tipi di mapping attributi.

Campo esistente di stringa semplice

L'esempio seguente ottiene il cognome di un paziente da FHIR per inviarlo a Dataverse o aggiorna il valore dell'attributo lastname da Dataverse all'elemento family in FHIR.

`{"s": "$.name[?(@.use=='usual')].family"}`

Questo mapping presuppone che name esista sempre e può essere individuato tramite il percorso JSON definito nella risorsa FHIR.

Campo esistente o inesistente

L'esempio seguente ottiene o aggiorna il campo city di address[0] se esiste. Se questo è un aggiornamento da Dataverse e address[0] non esiste in FHIR, crea un address[0] padre e imposta il valore city da Dataverse. Crea valori segnaposto o predefiniti per altri attributi da Dataverse che potrebbero mancare in FHIR.

{
    "s": "$.address[0].city",
    "c": {
           "p": "address[0]",
           "a": [
                  {
                    "line": ["x"]
                  },
                  {
                    "city": "%"
                  },
                  {
                    "state": "x"
                  },
                  {
                    "postalCode": "x"
                  },
                  {
                    "country": "x"
                  }
                ]
         }
}

Nota

Per i valori stringa, il valore impostato è la stringa letterale definita nella matrice degli attributi, a meno che non sia una delle sequenze di caratteri speciali. Queste sequenze di caratteri speciali verranno sostituite con i seguenti valori:

  • % - Copia il valore dell'attributo Dataverse.
  • %% - Copia il tipo di risorsa di riferimento FHIR (esempio, Paziente).
  • %%% - Copia il tipo e l'ID risorsa della risorsa di riferimento FHIR (esempio, Paziente/1234).

Nome del paziente

Applica le regole della sezione precedente e usa il seguente esempio per aggiornare il nome del paziente:

{"s": "$.name[?(@use=='official')].given[0]", "c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]} }
  • "s" = estrai un givenname del paziente FHIR da caricare in Dataverse.
  • "c" = crea un givenname del paziente quando non esiste in FHIR.
  • "p" = Oggetto padre della voce da creare
  • "a" = Matrice di parametri da utilizzare durante la creazione di "c"

Nota

Le parentesi {} contengono l'espressione, mentre le virgole "," separano i segmenti dell'espressione. Tuttavia, le parentesi della matrice [] indicano che l'espressione contiene due o più segmenti completi.

"s": "$.name[?(@use=='official')].given[0]"

e

"c": {"p": "name[0]", "a": [{"use": "official"}, {"family": "x"}, {"given": ["%"]}]

Codeable concept

L'abbinamento di concetti codificabili FHIR da FHIR a Dataverse è uguale a quello della corrispondenza degli elementi di stringa JSON. L'unica differenza è che è necessario un livello extra per ottenere i dettagli.

  1. L'URL dell'estensione è http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Vogliamo accedere all'elemento valueCodeableConcept all'interno di questa voce di estensione.
  3. Vogliamo la prima voce nella matrice di codifica.
  4. Vogliamo mappare il display per mostrare le informazioni in FHIR che sono collegate a un sistema di codifica.

Risorsa FHIRScreenshot che mostra i codeable concept FHIR.

JSONPathScreenshot che mostra il JSONPath.

Esempio di testo (religione)

  1. L'URL dell'estensione è http://hl7.org/fhir/StructureDefinition/patient-religion
  2. Vogliamo accedere all'elemento valueCodeableConcept all'interno di questa voce di estensione.
  3. Vogliamo mappare il testo per mostrare le informazioni fornite a FHIR da Epic.

Risorsa FHIRScreenshot che mostra i codeable concept di FHIR per l'esempio di testo.

JSONPathScreenshot che mostra il JSONPath per l'esempio di testo.

Valore mappato

Per un altro esempio, puoi creare un mapping attributi per il sesso. In Dataverse, il nome dell'attributo è gendercode.

  1. Nel mapping di entità per il contatto, seleziona + Nuovo mapping attributi servizio di aggiornamento.

  2. Poiché sesso è un elenco di selezione, il Tipo di azione è Valore mappato.

    Sesso in Dataverse è un elenco di selezione. Poiché è anche un elenco di selezione in FHIR, vengono mappati i valori dell'elenco di selezione FHIR ai valori dell'elenco di selezione Dataverse.

  3. Seleziona Mapping elementi FHIR per aggiungere il mapping di elementi FHIR per sesso. In questo esempio è una stringa di ricerca JSON che ti consente di accedere all'elemento FHIR Sesso.

  4. Seleziona Salva.

    In background, il sistema ha determinato che il sesso è un set di opzioni. Ci sono più valori che devi mappare per questo set di opzioni.

  5. In Mapping valori, immetti il valore FHIR di Azure da mappare per il set di opzioni. Ad esempio, immetti maschio per l'opzione Maschio (in Dataverse il valore è 1) e immetti femmina per l'opzione Femmina (in Dataverse il valore è 2).

    Seleziona Salva.

    Screenshot che mostra i mapping di valori.

Imposta valore predefinito

In questo esempio, imposta un valore predefinito per i mapping di valori.

  1. Nel mapping di entità per il contatto, seleziona + Nuovo mapping attributi servizio di aggiornamento.

  2. Per Nome attributo, seleziona Tipo di contatto (msemr_contacttype).

    Tipo di contatto in Dataverse è un set di opzioni. Poiché stai inserendo pazienti, desideri sempre che il tipo di contatto sia l'impostazione predefinita.

  3. Per Tipo di azione, seleziona Imposta valore predefinito.

    Non è necessaria un mapping di elementi FHIR perché stai solo impostando il valore predefinito. In questo caso, FHIR non ha il concetto di tipo di contatto, ma Dataverse richiede il tipo di contatto.

  4. Seleziona Salva.

  5. In Mapping valori, seleziona la prima riga e seleziona Modifica.

  6. In Mapping valori attributo, per il campo Etichetta OptionSet, seleziona Paziente.

    Il campo Valore mostra il valore predefinito per Tipo di contatto. La Dataverse Healthcare API popola automaticamente il valore Dataverse.

    Screenshot che mostra un esempio per l'impostazione del valore predefinito per un mapping attributi.

  7. Selezionare Salva e chiudi.

    Nota che in Mapping valori, il valore predefinito Dataverse è impostato. Ogni volta che la Dataverse Healthcare API entra e crea un paziente, imposta il campo Tipo di contatto su Paziente.

Cerca

I passaggi seguenti forniscono un esempio di mapping di un attributo Dataverse di tipo ricerca.

  1. Nel mapping di entità per il contatto, seleziona + Nuovo mapping attributi servizio di aggiornamento.

  2. Per Nome attributo, seleziona Operatore principale (msemr_generalpractitioner).

    Il tipo dell'attributo Operatore principale è Ricerca (una ricerca per l'entità Contatto).

  3. Per Tipo di azione, l'unico tipo di azione è Riferimento chiave esterna (riferimento di chiave esterna). Devi indicare alla Dataverse Healthcare API come impostare questa ricerca.

  4. Aggiungi il valore Mapping elementi FHIR per l'operatore principale.

    Screenshot che mostra il valore del mapping dell'elemento FHIR.

  5. Per Riferimento risorse FHIR, seleziona Operatore.

    In Dataverse, l'entità di riferimento per Operatore principale è Contatto. Il riferimento risorse FHIR è Operatore.

  6. Seleziona Salva.

Se un attributo Dataverse è una ricerca, puoi solo creare un mapping che sia un riferimento di chiave esterna (FK). Per configurare il riferimento FK, specifica la risorsa FHIR a cui stai mappando l'entità di destinazione.

Codeable concept del mapping

La seguente procedura è un esempio di mapping di un attributo Dataverse che è un codeable concept.

  1. In Configurazione mapping, seleziona Mapping di entità.

  2. Per Nome entità, seleziona msemr_observation.

  3. Nei mapping attributi correlati seleziona Nuovo mapping attributi del servizio di aggiornamento.

  4. Per Nome attributo, seleziona Codice denominatore rapporto (msemr_valueratiodenominatorcode).

    Il Tipo di questo attributo è Ricerca. È una ricerca per l'entità msemr_codeableconcept che è un tipo di entità speciale nel modello di dati che viene gestito in modo diverso rispetto ad altre entità.

  5. Per Tipo di azione, l'unico tipo di azione è Codeable concept.

  6. Aggiungi il valore Mapping elementi FHIR per l'attributo.

  7. Per Tipo di Codeable Concept, seleziona Codice unità quantità.

    Un tipo codeable concept è simile a un grande set di opzioni e ogni valore in set di opzioni ha un tipo. Ti fornisce un modo per raggruppare e filtrare i set di opzioni. Nota che, quando selezioni Codice unità quantità come tipo di codeable concept, il campo Valore di tipo codeable concept viene compilato automaticamente. Non è necessario conoscere il valore del set di opzioni per il codice unità quantità.

    Screenshot che mostra un elemento di tipo di codeable concept.

  8. Seleziona Salva.

Ora quando Dataverse crea un'osservazione e deve impostare il codeable concept, trova quel codeable concept esaminando le tabelle dei codeable concept per tutti i codeable concept che hanno il tipo Codice unità quantità che corrisponde al valore del codice che si trova nel codeable concept. Un codeable concept è costituito da un testo, un codice e il tipo. FHIR conosce il codice e conosce il testo, ma non sa da quale tipo di codeable concept eseguire il pull.

Limitazioni correnti

  • Nessuna posizione di inserimento o creazione di matrice dinamica deve essere assoluta. La selezione è dinamica utilizzando JSONPath.
  • I dati valore devono essere validi in JSON per i campi come stringhe UTF-8, date JSON UTC e valori booleani dell'attributo di destinazione.

Strumenti

Puoi utilizzare più strumenti per testare le stringhe JSONPath, inclusi i seguenti strumenti:

Per ulteriori informazioni sull'utilizzo di questi strumenti, vai a JSONPath.

Vedi anche

Che cos'è Microsoft Cloud for Healthcare?
Panoramica di Data Integration Toolkit
Gestire dati FHIR utilizzando Data Integration Toolkit
Configurare mapping attributi
Configurare mapping di espansione