HL7 FHIR Implementation Guide Laboratory Report
0.1.0 - ballot Italy flag

This page is part of the HL7 FHIR Implementation Guide Laboratory Report (v0.1.0: Release 1 Ballot 1) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Scenario

Gli scenari previsti per il dominio di Referto di Laboratorio sono descritti di seguito utilizzando la rappresentazione tramite Sequence Diagram. I sequence diagram sono diagrammi UML che ci permettono di descrivere uno scenario. Lo scenario rappresenta una sequenza di azioni per una attività.

In questa sezione sono rappresentati i due scenari per la gestione del Referto di Laboratorio:

Overview FHIR Interazione con Risorse Sigole

Gli attori coinvolti nella trasmissione e consultazione delle Risorse Singole del Referto di Laboratorio sono il Sender, il Receiver (o Provider) e il Consumer.

SenderSenderReceiverReceiverConsumerConsumerInvia Singola Risorsa [POST]Aggiorna Singola Risorsa [PUT]Consultazione Singola Risorsa (FHIR Search)

In questo scenario si delineano i seguenti casi d’uso:

  • Alimentazione Risorse Singole
  • Aggiornamento Risorse Singole
  • Consultazione Risorse Singole

I dettagli di ogni scenario sono descritti di seguito.

Alimentazione

SenderSenderReceiverReceiverInvio Risorse LAB [POST]POST Response

L’attore Sender alimenta il Receiver, attraverso il metodo POST, inviando le informazioni racchiuse nel Referto di Laboratorio in risorse FHIR. Le risorse profilate che è possibile trasmettere sono:

  • DiagnosticReport
  • Encounter
  • ServiceRequest
  • Observation
  • Specimen
  • Media
  • Patient
  • Practitioner
  • PractitionerRole
  • Location
  • Organization

In questo scenario, il Sender invia un’unica risorsa FHIR chiamando il metodo:

POST [base_url]/[Risorsa Singola]

Il Receiver processa la richiesta ottenuta e, se non riscontra errori, invia al Sender un messaggio di “OperationOutcome” positivo, creando la nuova istanza della Risorsa Singola inviata all’interno del Receiver. Se invece la pubblicazione fallisce, il Receiver invia al Sender un messaggio di “OperationOutcome” negativo, e il relativo codice di errore.

Consultazione Risorsa Singola

Consumer_RESConsumer_RESProviderProviderAltre consultazioni (FHIR search) [GET/POST]GET/POST Response

Un attore Consumer può consultare una Risorsa singola all’interno del Receiver inviando una richiesta che può essere basata sui metodi GET o POST:

GET [base_url]/[Risorsa Singola]/?Parametro_di_ricerca1=valoreParametro1&Parametro_di_ricerca2=valoreParametro2&...

In questo scenario, i parametri di ricerca sono quello definiti dallo standard FHIR per ogni risorsa.

Il Receiver processa la richiesta ottenuta e, se non riscontra errori, restituisce una Bundle di tipo searchset contenente le risorse conformi ai parametri di ricerca specificati (vedi: Bundle searchset).

Aggiornamento FHIR Document Referto di Laboratorio

SenderSenderReceiverReceiverAggiornamento Risorsa [PUT]PUT Response

L’attore Sender aggiorna il contenuto delle Risorse Singole inviando una richiesta al Receiver basata sul metodo PUT.

Per il corretto aggiornamento delle Risorse Singole, il Sender invia la seguente richiesta HTTP:

PUT [base_url]/[Risorsa Singola]/[Logical ID-Risorsa Singola]

Il Receiver processa la richiesta ottenuta e, se non riscontra errori, invia al Sender un messaggio di “OperationOutcome” positivo, aggiornando la Risorsa Singola all’interno del server. Se invece la pubblicazione fallisce, il Receiver invia al Sender un messaggio di “OperationOutcome” negativo, e il relativo codice di errore.

Overview FHIR Interazione con il Documento

Gli attori coinvolti nella trasmissione e consultazione del documento FHIR nativo Referto di Laboratorio sono il Sender, il Receiver (o Provider) e il Consumer.

SenderSenderReceiverReceiverConsumerConsumerCrea Lab ReportInvia Lab Report [POST]Aggiorna Lab Report [PUT]alt[consultazione documento FHIR specifico]Ricerca ID Bundle[consultazione per dati Lab-Report]Ricerca per search parameters

In questo scenario si delineano i seguenti casi d’uso:

  • Alimentazione del documento
  • Aggiornamento del documento
  • Consultazione del documento

I dettagli di ogni scenario sono descritti di seguito.

Alimentazione

Questa transazione è utilizzata per alimentare il repository.

SenderSenderReceiverReceiverInvio Bundle Lab Report [POST]POST Response

La creazione del documento è un attività del “document constructor”, che per semplicità è incluso nell’attore Sender, è un applicazione. Il documento è creato instaurando una cooperazione tra “document constructor” e “autore” che devono assicurare l’accuratezza e la coerenza del documento lato machine readable e human readable. Prima di inviare il FHIR Document, il Sender deve assicurarsi la conformità ai profili delle risorse che vuole inviare e attestarla (vedi: Author/Constructor Obligations).

L’attore Sender alimenta il Receiver trasmettendo, utilizzando il metodo POST, la risorsa Bundle di type document. Le informazioni relative al Referto di Laboratorio sono contenute all’interno delle risorse Composition, DiagnosticReport, Observation, Specimen raccolte della risorsa Bundle per mezzo dell’elemento Bundle.entry.resource.

Per la corretta alimentazione del Receiver, il Sender invia la seguente richiesta HTTP:

POST [base_url]/Bundle

Nota: [base_url] è valorizzato con l’indirizzo del Receiver.

Il Receiver processa la richiesta ottenuta e, se non riscontra errori, invia al Sender un messaggio di “OperationOutcome” positivo, creando la nuova istanza della Bundle inviata all’interno del server. Se invece la pubblicazione fallisce, il Receiver invia al Sender un messaggio di “OperationOutcome” negativo, e il relativo codice di errore.

Consultazione FHIR Document Referto di Laboratorio

Questa transazione è utilizzata per consultare le risorse presenti nel repository.

Consumer_DOCConsumer_DOCProviderProvideralt[Consultazione documento per paziente [GET/POST]]Ricerca per parametri documentoGET/POST Response[Consultazione del documento specifico [GET/POST]]Ricerca per identificativo documentoGET/POST Response

La consultazione della Bundle avviene tramite interrogazione dell’interfaccia FHIR predisposta dal server utilizzando il metodo GET o POST. Il formato della richiesta è strutturato nel seguente modo:

GET [base_url]/Bundle?Parametro_di_ricerca1=valoreParametro1&Parametro_di_ricerca2=valoreParametro2&...

Come riportato, é possibile esprimere in modo dettagliato una richiesta aggiungendo le coppie parametro di ricerca e valore parametro separate dall’operatore logico & (AND).

Il Receiver processa la richiesta ottenuta e, se non riscontra errori, restituisce una Bundle di tipo searchset contenente le risorse conformi ai parametri di ricerca specificati (vedi: Bundle searchset).

Aggiornamento FHIR Document Referto di Laboratorio

Questa transazione è utilizzata per aggiornare le risorse presenti nel repository.

SenderSenderReceiverReceiverAggiornamento Bundle Lab Report [PUT]PUT Response

Nell’eventualità di errori che non rendono più affidabili le risorse della Bundle di tipo document, viene data la possibilità al Sender di aggiornare tali risorse. L’aggiornamento richiede la necessità di essere in possesso dell’id univoco della risorsa di tipo Bundle (vedi: Logical ID).

Per il corretto aggiornamento delle risorse Bundle di tipo document, il Sender invia la seguente richiesta HTTP:

PUT [base_url]/Bundle/[Logical ID-Bundle]

Per evitare la perdita di dati, il processo di aggiornamento deve prevedere l’invio della risorsa Bundle aggiornata correttamente e la dismissione della versione precedente. Una casistica di aggiornamento della Bundle document è l’aggiunta di risorse (APPEND) alla Bundle.

Un’altra casistica è la creazione errata della risorsa Composition nel flusso di lavoro: ovvero se la Composition riguarda il paziente sbagliato o è scritta dall’autore sbagliato, e l’errore viene rilevato solo dopo che la Composition è stata consultata o è già stata utilizzata per la creazione di un documento. Per supportare la risoluzione di questo caso, la risorsa Composition è aggiornata per essere contrassegnata come “entered-in-error” e può essere creato un nuovo documento derivato. Ciò significa che l’intera serie di documenti derivati è ora considerata creata per errore e i sistemi che ricevono documenti derivati basati su Composition modificate DOVREBBERO rimuovere i dati presi dai documenti precedenti dall’uso di routine e/o intraprendere altre azioni appropriate.

Nota: Qualora il sender invii anche le risorse contenute nella Bundle in modo atomico, allora queste devono essere aggiornate conseguentemente all’aggiornamento della Bundle cui appartengono.

Il Receiver processa la richiesta ottenuta e, se non riscontra errori, invia al Sender un messaggio di “OperationOutcome” positivo, creando la nuova istanza della Bundle inviata all’interno del server. Se invece la pubblicazione fallisce, il Receiver invia al Sender un messaggio di “OperationOutcome” negativo, e il relativo codice di errore.

Esempio di Creazione di una Bundle Document

Si riporta di seguito un esempio di creazione di Bundle document. Gli attori coinvolti nel processo di creazione sono:

  • Placer: rappresenta la parte amministrativa;
  • Filler: rappresenta la parte di prenotazione e raccolta del campione, ad esempio CUP;
  • ApplicativoClinico: rappresenta l’applicativo responsabile di ottenere i risultati delle rilevazioni e creare le risorse Observation;
  • ReportCreator: rappresenta l’applicativo in grado di creare report diagnostici;
  • Sender: rappresenta l’applicativo che invia il documento al receiver;
  • Receiver: rappresenta il server che conserva i Bundle di tipo document.

PlacerPlacerFillerFillerApplicativoClinicoApplicativoClinicoReportCreatorReportCreatorSenderSenderReceiverReceiverCreazione ServiceRequest,EncounterInvio ServiceRequest,Encounteralt[risposta OK]ServiceRequest,Encounter status UPDATECreazione Specimen[risposta KO]ServiceRequest status "enterer-in-error"Invio ServiceRequestloop[ServiceRequest]Creazione Observation,status=registeredGenerazione RisultatiAggiornamento Observation,status=preliminaryInvio ObservationValidazione Observation,status=finalCreazione DiagnosticReportInvio DiagnosticReportRecupero Patient, Practitioner, Organization, LocationRisposta POSTCreazione CompositionCreazione BundlePOST Bundle Laboratory Report