Importing Lab Sample Data to Go.Data
For many Go.Data implementers, lab results data will be the starting reference point when implementing a new Go.Data instance. This sample data will need to be first be transformed to align with the Go.Data data model, where Case and Contact records must first be created to track individual beneficiary details. Once these individual records are created, then related Lab Results data can be imported.
- Watch the video overview
- Explore the Implementation

Use Case: #3. As a Go.Data user, I would like to directly integrate lab datasets so that I can more quickly and securely register Contact and Case records to ensure data quality and save time on data entry.
Standard Import Process
Typically a lab will provide export of sample/ labResults data like this example file. In this data source, there might be multiple Sample results for 1 unique individual.

Converting the sample dataset to individual Cases or Contact records with labResults records is required to align a flat data source with the Go.Data data model. To import this data to the Go.Data system, the user will need to…
- Analyze the dataset to construct unique
CaseandContactrecords for every unique individual. Consider…
- 1.a. Is there an available individual unique id (e.g.,
national_id) in the data source that can be imported to Go.Data? - 1.b. If not, can you construct a new unique id for individual records?
- Determine the
unique identifierfor every individual record.- If this lab data is related to individuals already registered in Go.Data, consider what shared external identifier you can use to look-up existing records to prevent duplicates.
- If this is a new import and you’re creating Go.Data individual
CaseorContactrecords for the first time, consider what identifiers you want to assign to these records on import.
Consider…
- 2.a. Will you import a lab-provided custom Id or standard identifier (e.g.,
nationalId) from the lab dataset? (You can then set this as the Go.Data Case Id as by masking the CaseId as*, or import this Id to theDocumentor anotheridentifiercustom variable in the Questionnaire of that record.) - 2.b. Or will you have Go.Data generate a new custom Id (e.g.,
case_id: 'CASE-00001') based on some standard naming convention and autonumber? (You can define this unique identifier naming scheme when you configure a newOutbreak.)
→ See the Unique Identifiers documentation for Go.Data-specific additional guidance on identifiers.
-
Import the individual records to Go.Data using the standard
importwizard or the API (e.g.,POST /outbreak/{id}/cases). -
Then prepare to import related
labResults. Organize the lab data to link every labsamplerecord to an individual person record.- See this Case - Lab Results import template where every row is a lab test result record linked to an individual
Caserecord. - If the individual’s
unique identifieris not already included in the lab dataset, you may need to export theCasesimported in step3to extract the newly assignedcase_id(e.g.,CASE-00001) or the Go.Data globalid(e.g.,e2d87af7-fde2-4ea6-a2be-9dc0cc03c2cd). Then you can include this identifier as a column in yourLab Resultsimport (seecolumn Bin template) so that everysamplerecord is linked to an existing individual Go.DataCaserecord.
- See this Case - Lab Results import template where every row is a lab test result record linked to an individual

- Now import the
labResultsrecords to Go.Data using the standardimportfile wizard or via the API.
Note: If importing labResults via the API, you will need to extract the Go.Data global id and not the mask case_id (e.g., 3b5554d7-2c19-41d0-b9af-475ad25a382b) to successfully import… POST '/outbreaks/{id}/cases/{fk}/lab-results' where {fk} is the case foreign key id that you will include in your import request.
Explore the Implementation
-
Watch the video walkthrough of the lab results import process with a sample dataset. And see here for other interoperability videos.
- Import templates: See the Excel templates in the Go.Data Community:
- Learn More: See the section on Unique Identifiers to support with resource matching during data imports.