Laboratorio di Patologia
Costruisci con AI Agent
Backend del Laboratorio di Patologia

Modello Backend dell'App per Laboratorio di Patologia
Monitora i campioni dalla raccolta all'accettazione, analisi, revisione e rilascio sicuro dei rapporti

Un backend per Laboratorio di Patologia pronto per la produzione su Back4app per il monitoraggio dei campioni dalla raccolta all'analisi con consegna sicura dei risultati. Usalo per accelerare portali di patologia, sistemi di operazioni di laboratorio e app di raccolta su web e mobile.

Punti chiave

Questo modello ti fornisce un backend pronto per il laboratorio per i flussi di lavoro di patologia: campioni tracciabili, transizioni di stato chiare, registri di analisi e accesso protetto ai risultati affinché i team possano concentrarsi sui tempi di risposta e sull'affidabilità.

  1. Ciclo di vita del campione end-to-endMonitora ogni campione dal sito di raccolta e accettazione attraverso elaborazione, analisi, verifica e rilascio del rapporto finale.
  2. Visibilità della catena di custodiaRegistra passaggi, timestamp, gestori e cambiamenti di stato in modo che ogni movimento del campione sia tracciabile.
  3. Flusso di lavoro del test strutturatoModella i test ordinati, le fasi di laboratorio e gli stati dei risultati per supportare le operazioni di patologia senza bisogno di design personalizzato del backend.
  4. Distribuzione sicura dei risultatiLimita l'accesso ai risultati in base al ruolo e alla proprietà in modo che solo i clinici, i pazienti o il personale di laboratorio autorizzati possano visualizzare i rapporti rilasciati.
  5. Supporto API multipiattaformaUtilizza lo stesso backend con REST, GraphQL, e Live Queries opzionale per dashboard operative e app di raccolta.

Cos'è il modello di backend dell'app Pathology Lab?

Back4app è un backend gestito per una rapida consegna del prodotto. Il modello di backend dell'app Pathology Lab modella gli ordini patologici, il movimento dei campioni, le fasi di analisi e la consegna dei risultati in modo che i team possano implementare software di laboratorio senza ricostruire l'infrastruttura di backend principale.

Migliore per:

Software di laboratorio patologicoSistemi di tracciamento dei campioniPortali dei risultati diagnosticiApp per raccolta e accessionamentoDashboard delle operazioni clinicheMVP per flussi di lavoro sanitari

Panoramica

I laboratori di patologia dipendono da una tracciatura precisa. Un campione deve essere raccolto correttamente, etichettato, spostato attraverso le fasi di lavorazione, analizzato, revisionato e infine consegnato al destinatario giusto con controlli di accesso rigorosi.

Questo template definisce Specimen, LabOrder, CollectionEvent, AnalysisRecord e ResultDelivery con regole di autorizzazione e facoltativo Live Queries in modo che i team possano implementare rapidamente e in sicurezza i flussi di lavoro di patologia.

Caratteristiche principali del laboratorio di patologia

Ogni scheda tecnologica in questo hub utilizza lo stesso schema di laboratorio di patologia con Campione, OrdineDiLaboratorio, EventoDiRaccolta, RecordDiAnalisi e ConsegnaRisultati.

Registrazione e tracciamento dei campioni

Traccia gli identificatori dei campioni, i codici a barre, il tipo di campione, la sorgente, la priorità e lo stato attuale del flusso di lavoro.

Gestione degli ordini di laboratorio

Gli oggetti LabOrder catturano i dettagli delle richieste, l'ordinazione Provider, il collegamento ai pazienti, i pannelli di test e le note cliniche.

Eventi di raccolta e catena di custodia

CollectionEvent registra chi ha raccolto il campione, dove è stato raccolto, quando è stato trasferito e metadati sulle condizioni.

I registri del flusso di lavoro di analisi

AnalysisRecord memorizza la fase di elaborazione, il patologo o il tecnico assegnato, le osservazioni, gli allegati e lo stato di completamento.

Consegna sicura dei risultati

ResultDelivery traccia quando un report viene generato, rilasciato, visualizzato e da chi sotto permessi controllati.

Perché costruire il backend del tuo laboratorio di patologia con Back4app?

Back4app ti offre un contratto backend sicuro per le operazioni di patologia, gestendo l'autenticazione, la gestione dello schema e le API così il tuo team può concentrarsi sui flussi di lavoro del laboratorio, sui tempi di risposta e sull'esperienza utente.

  • Flussi di lavoro del laboratorio pre-modellati: Inizia con entità di base per campioni, ordini, eventi di raccolta, analisi e consegna dei risultati invece di progettare il livello dati da zero.
  • Tracciabilità per design: Cattura traguardi di raccolta e lavorazione con timestamp e utenti responsabili per supportare controlli di qualità interni e audit.
  • Accesso API flessibile: Espone i flussi di lavoro di patologia a portali web, strumenti di raccolta mobile e sistemi esterni tramite REST, GraphQL e aggiornamenti in tempo reale opzionali.

Standardizza le operazioni di patologia attraverso raccolta, lavorazione in laboratorio e consegna dei report con un contratto backend e riduci il time-to-market.

Vantaggi principali

Un backend di patologia che ti aiuta a lanciare più velocemente mantenendo la tracciabilità, il controllo e l'estensibilità.

Consegna del prodotto più veloce

Inizia da un modello di campione e risultato progettato appositamente affinché il tuo team possa concentrarsi sui flussi utente invece di impostare il backend.

Chiara tracciabilità del campione

Traccia eventi di raccolta, trasporto, ricezione, elaborazione e rilascio in un modello di dati coerente.

Accesso sicuro ai report

Utilizza controlli di ruolo e di proprietà affinché i risultati di patologia sensibili siano visibili solo agli utenti approvati.

Migliore visibilità del laboratorio

Monitora lo stato dei campioni e il progresso dell'analisi per ridurre i colli di bottiglia e migliorare i tempi di risposta.

API pronte per l'integrazione

Collega strumenti di raccolta, portali per clinici, notifiche o sistemi ospedalieri utilizzando REST o GraphQL.

Impiego di AI assistita per l'assemblaggio

Usa il prompt dell'Agente AI per generare il backend, seminare dati realistici e prototipare flussi di lavoro più velocemente.

Pronto a semplificare i flussi di lavoro in patologia?

Lascia che l'Agente AI di Back4app assembli il backend del laboratorio di patologia e semini campioni, ordini, dati delle analisi e registri di consegna dei risultati da un solo prompt.

Gratuito per iniziare — 50 richieste di agenti AI/mese, nessuna carta di credito richiesta

Stack tecnico

Tutto incluso in questo modello di backend del laboratorio di patologia.

Frontend
13+ tecnologie
Backend
Back4app
Database
MongoDB
Autenticazione
Autenticazione e ruoli integrati
API
REST e GraphQL
In tempo reale
Live Queries

Diagramma ER

Modello di relazione tra entità per lo schema del laboratorio di patologia.

Visualizza sorgente del diagramma
Mermaid
erDiagram
    Laboratory ||--o{ Specimen : "processes"
    User ||--o{ Specimen : "collects"
    Specimen ||--o{ TestOrder : "has"
    User ||--o{ TestOrder : "orders"
    TestOrder ||--o{ AnalysisRun : "processed_in"
    User ||--o{ AnalysisRun : "performs"
    TestOrder ||--o| ResultReport : "produces"
    AnalysisRun ||--o| ResultReport : "generates"
    User ||--o{ ResultReport : "reviews"
    User ||--o{ AuditLog : "actor_of"

    Laboratory {
        String objectId PK
        String name
        String code
        String location
        String contactEmail
        Date createdAt
        Date updatedAt
    }

    Specimen {
        String objectId PK
        String barcode
        String patientId
        String specimenType
        String status
        Date collectedAt
        Date receivedAt
        Pointer laboratory FK
        Pointer collector FK
        String chainOfCustodyNotes
        String priority
        Date createdAt
        Date updatedAt
    }

    TestOrder {
        String objectId PK
        Pointer specimen FK
        Pointer orderedBy FK
        String testCode
        String testName
        String clinicalNotes
        String status
        Date requestedAt
        Date dueAt
        Date createdAt
        Date updatedAt
    }

    AnalysisRun {
        String objectId PK
        Pointer testOrder FK
        Pointer technician FK
        String instrumentId
        Date startedAt
        Date completedAt
        String runStatus
        String qcStatus
        String observations
        Date createdAt
        Date updatedAt
    }

    ResultReport {
        String objectId PK
        Pointer testOrder FK
        Pointer analysisRun FK
        Pointer reviewedBy FK
        String summary
        String resultStatus
        Boolean criticalFlag
        Date deliveredAt
        String deliveryChannel
        String attachmentUrl
        Date createdAt
        Date updatedAt
    }

    AuditLog {
        String objectId PK
        Pointer actor FK
        String action
        String targetClass
        String targetId
        String details
        Date timestamp
    }

Flusso di integrazione

Flusso Auth-to-CRUD per accesso al laboratorio di patologia, tracciamento dei campioni, registrazione delle analisi e consegna sicura dei report.

Visualizza sorgente del diagramma
Mermaid
sequenceDiagram
  participant User
  participant App as Pathology Lab App
  participant Back4app as Back4app Cloud

  User->>App: Sign in as technician or pathologist
  App->>Back4app: POST /login (username, password)
  Back4app-->>App: Session token + user role

  User->>App: Scan barcode and open today's intake queue
  App->>Back4app: GET /classes/Specimen?where=status in [collected,in_transit,received]
  Back4app-->>App: Matching specimen records

  User->>App: Register a new test order for a received specimen
  App->>Back4app: POST /classes/TestOrder (specimen, orderedBy, testCode, priority)
  Back4app-->>App: TestOrder created

  User->>App: Start analysis and record QC progress
  App->>Back4app: POST /classes/AnalysisRun (testOrder, technician, instrumentId, runStatus)
  Back4app-->>App: AnalysisRun created
  App->>Back4app: PUT /classes/Specimen/{id} (status: processing)
  Back4app-->>App: Specimen updated

  User->>App: Approve and securely deliver result report
  App->>Back4app: POST /classes/ResultReport (testOrder, analysisRun, reviewedBy, resultStatus: approved)
  Back4app-->>App: ResultReport saved
  App->>Back4app: PUT /classes/ResultReport/{id} (resultStatus: delivered, deliveredAt, deliveryChannel)
  Back4app-->>App: Delivery confirmed

  Back4app-->>App: Live Query events (specimen status changes, QC flags, delivered reports)
  App-->>User: Real-time lab workflow updates

Dizionario Dati

Riferimento completo a livello di campo per ogni classe nello schema del Laboratorio di Patologia.

CampoTipoDescrizioneRichiesto
objectIdStringAuto-generated unique identifierAutomatico
usernameStringLogin username for lab staff, clinicians, or administrators
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole (admin, pathologist, technician, collector, clinician, courier)
displayNameStringFull name for display in reports and audit trails
createdAtDateAuto-generated creation timestampAutomatico
updatedAtDateAuto-generated last-update timestampAutomatico

8 campi in User

Sicurezza e Permessi

Come ACL, ruoli e strategia CLP proteggono i campioni, i registri di analisi e i risultati patologici rilasciati.

Accesso basato sui ruoli

Utilizza ruoli come collezionista, tecnico, patologo, clinico e amministratore per controllare chi può creare, aggiornare, rivedere e rilasciare registrazioni.

Proprietà del campione e del risultato

Limita gli aggiornamenti dei campioni al personale laboratoristico responsabile e limita la visibilità dei risultati rilasciati ai destinatari autorizzati o ai team di assistenza collegati.

Storia di consegna protetta

Gli eventi di consegna e accesso ai risultati devono essere controllati strettamente in modo che i timestamp di rilascio, i visualizzatori e lo stato di consegna non possano essere modificati casualmente dai clienti.

Schema (JSON)

Definizione dello schema JSON grezzo pronta per essere copiata in Back4app o utilizzata come riferimento di implementazione.

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Laboratory",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "name": {
          "type": "String",
          "required": true
        },
        "code": {
          "type": "String",
          "required": true
        },
        "location": {
          "type": "String",
          "required": false
        },
        "contactEmail": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Specimen",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "barcode": {
          "type": "String",
          "required": true
        },
        "patientId": {
          "type": "String",
          "required": true
        },
        "specimenType": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "collectedAt": {
          "type": "Date",
          "required": true
        },
        "receivedAt": {
          "type": "Date",
          "required": false
        },
        "laboratory": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Laboratory"
        },
        "collector": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "chainOfCustodyNotes": {
          "type": "String",
          "required": false
        },
        "priority": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TestOrder",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "specimen": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Specimen"
        },
        "orderedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "testCode": {
          "type": "String",
          "required": true
        },
        "testName": {
          "type": "String",
          "required": true
        },
        "clinicalNotes": {
          "type": "String",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "requestedAt": {
          "type": "Date",
          "required": true
        },
        "dueAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AnalysisRun",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "testOrder": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TestOrder"
        },
        "technician": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "instrumentId": {
          "type": "String",
          "required": false
        },
        "startedAt": {
          "type": "Date",
          "required": true
        },
        "completedAt": {
          "type": "Date",
          "required": false
        },
        "runStatus": {
          "type": "String",
          "required": true
        },
        "qcStatus": {
          "type": "String",
          "required": true
        },
        "observations": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ResultReport",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "testOrder": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TestOrder"
        },
        "analysisRun": {
          "type": "Pointer",
          "required": true,
          "targetClass": "AnalysisRun"
        },
        "reviewedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "summary": {
          "type": "String",
          "required": true
        },
        "resultStatus": {
          "type": "String",
          "required": true
        },
        "criticalFlag": {
          "type": "Boolean",
          "required": false
        },
        "deliveredAt": {
          "type": "Date",
          "required": false
        },
        "deliveryChannel": {
          "type": "String",
          "required": true
        },
        "attachmentUrl": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AuditLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "actor": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "action": {
          "type": "String",
          "required": true
        },
        "targetClass": {
          "type": "String",
          "required": true
        },
        "targetId": {
          "type": "String",
          "required": true
        },
        "details": {
          "type": "String",
          "required": false
        },
        "timestamp": {
          "type": "Date",
          "required": true
        }
      }
    }
  ]
}

Costruisci con AI Agent

Usa l'agente AI di Back4app per generare un'app completa per il laboratorio di patologia da questo modello, inclusi frontend, backend, autenticazione, flussi di lavoro dei campioni e consegna sicura dei risultati.

Agente AI Back4app
Pronto a costruire
Crea un backend per il laboratorio di patologia su Back4app con questo schema e comportamento esatti.

Schema:
1. LabOrder: orderNumber (Stringa, obbligatorio), patientName (Stringa, obbligatoria), patientIdExternal (Stringa), orderingProvider (Stringa), requestedTests (Array, obbligatorio), priority (Stringa: routine, urgente, immediato), clinicalNotes (Stringa), status (Stringa: ordinato, raccolto, in elaborazione, completato, rilasciato), objectId, createdAt, updatedAt.
2. Specimen: accessionNumber (Stringa, obbligatoria), barcode (Stringa, obbligatoria), labOrder (Puntatore a LabOrder, obbligatorio), specimenType (Stringa, obbligatoria), sourceSite (Stringa), collectedAt (Data), receivedAt (Data), currentStatus (Stringa: in_attesa_di_raccolta, raccolto, in_transito, ricevuto, in_elaborazione, analizzato, verificato, rilasciato), conditionNotes (Stringa), objectId, createdAt, updatedAt.
3. CollectionEvent: specimen (Puntatore a Specimen, obbligatorio), collectedBy (Puntatore a Utente), location (Stringa), eventType (Stringa: raccolta, passaggio, trasporto, ricevuta), eventAt (Data, obbligatoria), notes (Stringa), objectId, createdAt, updatedAt.
4. AnalysisRecord: specimen (Puntatore a Specimen, obbligatorio), assignedTo (Puntatore a Utente), stage (Stringa: accettazione, esame_grosso, elaborazione, revisione_microscopica, interpretazione, verifica), findings (Stringa), attachments (Array), status (Stringa: in_attesa, in_corso, completato, approvato), completedAt (Data), objectId, createdAt, updatedAt.
5. ResultDelivery: specimen (Puntatore a Specimen, obbligatorio), analysisRecord (Puntatore a AnalysisRecord), reportUrl (Stringa), releasedBy (Puntatore a Utente), releasedAt (Data), deliveryChannel (Stringa: portale, clinico, api), deliveryStatus (Stringa: bozza, rilasciato, visualizzato), viewedAt (Data), objectId, createdAt, updatedAt.

Sicurezza:
- CLP e ACL basati su ruolo: i raccoglitori possono creare record di CollectionEvent, i tecnici possono aggiornare le fasi di elaborazione, i patologisti possono approvare le analisi e solo i clinici/amministratori autorizzati possono accedere ai rapporti rilasciati.

Autenticazione:
- Registrazione e accesso del personale tramite Utente integrato; ruoli assegnati dall'amministratore.

Comportamento:
- Autenticare l'utente, elencare gli ordini di laboratorio o i campioni assegnati, registrare la raccolta o aggiornamenti dello stato del campione, salvare un record di analisi e rilasciare un risultato in modo sicuro.

Consegna:
- App Back4app con schema, ACL, CLP, convalide di Cloud Code, dati di esempio semplificati e uno scaffold frontend per la tecnologia scelta.

Premi il pulsante qui sotto per aprire l'agente con questo prompt precompilato.

Questo prompt di base descrive lo schema di patologia e i comportamenti del flusso di lavoro; puoi selezionare suffissi specifici per la tecnologia in seguito.

Distribuisci in pochi minuti50 prompt gratuiti / meseNessuna carta di credito richiesta

API Playground

Prova gli endpoint REST e GraphQL contro il modello del laboratorio di patologia. Le risposte utilizzano dati simulati e non richiedono un account Back4app.

Caricamento playground…

Utilizza lo stesso schema di questo modello.

Scegli la tua tecnologia

Espandi ogni scheda per i passaggi di integrazione, modelli di stato, esempi di modello di dati e note offline.

Flutter Lab Patologico Backend

React Lab Patologico Backend

React Nativo Lab Patologico Backend

Next.js Lab Patologico Backend

JavaScript Lab Patologico Backend

Android Lab Patologico Backend

iOS Lab Patologico Backend

Vue Lab Patologico Backend

Angular Lab Patologico Backend

GraphQL Lab Patologico Backend

REST API Lab Patologico Backend

PHP Lab Patologico Backend

.NET Lab Patologico Backend

Cosa Ottieni con Ogni Tecnologia

Ogni stack utilizza lo stesso schema backend del Laboratorio di Patologia e contratti API.

Gestione dati unificata laboratorio di patologia

Struttura dati centralizzata per gestire ordini, campioni e risultati.

Condivisione sicura per laboratorio di patologia

Condivisione riservata dei risultati dei pazienti e dei dati di laboratorio con utenti autorizzati.

Tracciamento dei campioni in tempo reale

Monitora il movimento dei campioni attraverso tutte le fasi di analisi senza problemi.

REST/GraphQL API per laboratorio di patologia

API flessibili per integrarsi con applicazioni e servizi front-end.

Controllo degli accessi per laboratorio di patologia

Gestisci i ruoli e i permessi degli utenti per garantire la sicurezza dei dati.

Flussi di lavoro di analisi automatizzati

Ottimizza i processi di laboratorio con fasi automatizzate dall'ordine alla consegna dei risultati.

Confronto del Framework del Laboratorio di Patologia

Confronta la velocità di configurazione, lo stile SDK e il supporto AI attraverso tutte le tecnologie supportate.

FrameworkTempo di ConfigurazioneVantaggio del Laboratorio di PatologiaTipo di SDKSupporto AI
~5 minBase di codice unica per il laboratorio di patologia su mobile e web.Typed SDKCompleto
Circa 5 minDashboard web veloce per il laboratorio di patologia.Typed SDKCompleto
Meno di 5 minutiApp mobile multipiattaforma per il laboratorio di patologia.Typed SDKCompleto
~3–7 minApp web renderizzata dal server per il laboratorio di patologia.Typed SDKCompleto
Meno di 5 minIntegrazione web leggera per il laboratorio di patologia.Typed SDKCompleto
~5 minApp nativa Android per il laboratorio di patologia.Typed SDKCompleto
Circa 5 minApp nativa iOS per il laboratorio di patologia.Typed SDKCompleto
Meno di 5 minutiInterfaccia web React per il laboratorio di patologia.Typed SDKCompleto
~3–7 minApp web aziendale per il laboratorio di patologia.Typed SDKCompleto
~2 minAPI GraphQL flessibili per il laboratorio di patologia.GraphQL APICompleto
Meno di 2 minIntegrazione REST API per il laboratorio di patologia.REST APICompleto
~3–5 minBackend PHP lato server per il laboratorio di patologia.REST APICompleto
Meno di 5 minutiBackend .NET per il laboratorio di patologia.Typed SDKCompleto

Il tempo di configurazione riflette la durata prevista dal avvio del progetto alla prima visualizzazione dell'ordine di esemplare o di laboratorio popolata con dati reali.

Domande Frequenti

Domande comuni sulla creazione di un backend per un laboratorio di patologia con questo template.

Che cos'è un backend di laboratorio di patologia?
Cosa include questo modello di laboratorio di patologia?
Come aiuta Live Queries i dashboard di patologia?
Come posso evitare che un campione salti le fasi di workflow richieste?
Quali campi dovrei acquisire per la tracciabilità dei campioni?
Posso supportare più test su un singolo campione?
In che modo l'Agente AI aiuta con la generazione di dati patologici?
Quali opzioni di backup sono disponibili per rapporti patologici e registri di consegna?
Come posso supportare campioni urgenti o stat?

Affidato a team che costruiscono flussi di lavoro sanitari

Unisciti ai team che utilizzano i modelli Back4app per avviare applicazioni diagnostiche tracciabili, sicure e scalabili.

G2 Users Love Us Badge

Pronto a costruire la tua app di laboratorio patologico?

Inizia il tuo progetto di patologia in pochi minuti. Nessuna carta di credito richiesta.

Scegli tecnologia