### Example Case Mask IDs Source: https://worldhealthorganization.github.io/godata/unique-identifiers Illustrative examples of 'Mask IDs' for Go.Data cases, demonstrating different approaches to identifier generation and import. ```text Case Mask ID: * Case Mask ID: CASE-99999 Case Mask ID: @@@-999999999 ``` -------------------------------- ### Go.Data URL Format Example Source: https://worldhealthorganization.github.io/godata/arcgis-pro Specifies the correct format for entering the Go.Data URL in the SITREP Toolbox dialog. Only include the top-level domain. ```text GOOD: https://godata.MOH.int/ BAD: https://godata.MOH.int/auth/login ``` -------------------------------- ### HealthSites.io Facility Data Response Example Source: https://worldhealthorganization.github.io/godata/5-godata--facility-registry This is an example of the JSON response received from the HealthSites.io API when querying for health facilities. It includes attributes like name, location, and OSM details. ```JSON { "0": { "attributes": { "amenity": "hospital", "changeset_id": 22058971, "changeset_timestamp": "2014-05-01T07:56:20", "changeset_user": "Md Alamgir", "changeset_version": 1, "name": "Manikchari Upazila Health Complex", "uuid": "4598ac8e8c6d47a4a3b95d0806ca4a5d" }, "centroid": { "coordinates": [ 91.84117813480628, 22.8501898435141 ], "type": "Point" }, "completeness": 9, "osm_id": 2828406228, "osm_type": "node" } } ``` -------------------------------- ### Final GET Request with Fields Filter Source: https://worldhealthorganization.github.io/godata/api-docs An example of a complete GET request URL incorporating the fields filter for retrieving specific case data. ```http https://{yourgodataurl.com}/api/outbreaks/{outbreak_id}/cases?filter=%7B%22fields%22%3A%7B%22firstName%22%3A%22true%22%2C%22lastName%22%3A%22true%22%2C%22visualId%22%3A%22true%22%2C%22createdAt%22%3A%22true%7D%7D%7D&access_token={your_access_token} ``` -------------------------------- ### ETL Script for Go.Data Cases Source: https://worldhealthorganization.github.io/godata/tableau An example Python script demonstrating the transfer of Go.Data case export data from one resource to another, likely for replication into an SQL server. ```python # Example ETL script for Go.Data cases # This script would typically use pygodata to fetch data # and then insert it into an SQL database. # Placeholder for actual ETL logic print("Running Go.Data cases ETL...") # ... fetch data using pygodata ... # ... transform data ... # ... insert data into SQL database ... print("Go.Data cases ETL complete.") ``` -------------------------------- ### Sample Kobo Form Submission JSON Source: https://worldhealthorganization.github.io/godata/godata--mobile-integration Example JSON output from a Kobo Toolbox form submission forwarded via a REST service. This data is used for mapping to Go.Data Case records. ```json "form": "covid19-registration", "body": { "Age_in_year": "32", "Covid_19_suspected_criteria/HF_visited": "no", "Sample_Classification": "n_id", "patient_address/teknaf_Camp": "camp_23", "Covid_19_suspected_criteria/Symptoms": "difficulty_breathing", "Patient_name": "Jane Doe", ... ``` -------------------------------- ### Import Data Value Sets to DHIS2 Source: https://worldhealthorganization.github.io/godata/godata--dhis2-aggregate This example shows how to use the OpenFn DHIS2 API adaptor to import data value sets. It includes parameters for dataSet, orgUnit, period, and the dataValues themselves. ```javascript dataValueSet({ dataSet: "kIfMNugiTgd", orgUnit: "DiszpKrYNg8", period: dateOfReporting, //we dynamically fill based on Go.Data extract completeData: dateOfReporting, dataValues: [ dataElement("CnPsS2xE8UN", summaryValue), //we dynamically fill based on Go.Data extract & calculation ] }); ``` -------------------------------- ### API Endpoints for Go.Data Records Source: https://worldhealthorganization.github.io/godata/unique-identifiers Use GUIDs to request and update Go.Data records via the API. These GUIDs are the primary keys for records in the MongoDB. ```bash GET /api/outbreaks/8c71e61f-fb11-4d4f-9130-b69384b6e4e4 POST /api/outbreaks/8c71e61f-fb11-4d4f-9130-b69384b6e4e4/cases/3b5554d7-2c19-41d0-b9af-475ad25a382b ``` -------------------------------- ### Get Go.Data Cases (New/Updated) Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system Retrieves newly created or updated cases from Go.Data using the OpenFn Go.Data adaptor. ```javascript listCases(filter) ``` -------------------------------- ### Filter Cases by Creation Date Source: https://worldhealthorganization.github.io/godata/api-docs Example of filtering cases to retrieve those created after a specific date using the 'where' clause. ```JSON {"where":{"createdAt":{"$gt":"2020-04-14T00:00:00Z"}}} ``` ```URL Encoded %7B%22where%22%3A%7B%22createdAt%22%3A%7B%22%24gt%22%3A%222020-04-14T00%3A00%3A00Z%22%7D%7D%7D ``` ```HTTP /outbreaks/{outbreak_id}/cases?filter=%7B%22where%22%3A%7B%22createdAt%22%3A%7B%22%24gt%22%3A%222020-04-14T00%3A00%3A00Z%22%7D%7D%7D&access_token={your_access_token} ``` ```HTTP https://godata.gov.mt/api//outbreaks/{OUTBREAK TOKEN}/cases?filter=%7B%22where%22%3A%7B%22createdAt%22%3A%7B%22%24gt%22%3A%222020-04-14T00%3A00%3A00Z%22%7D%7D%7D&access_token={your_access_token} ``` -------------------------------- ### Get Cases from Go.Data and Aggregate Data Source: https://worldhealthorganization.github.io/godata/godata--dhis2-aggregate This script retrieves case data from Go.Data and aggregates individual records to calculate indicator results. It is intended for use with OpenFn.org and requires configuration of a cron timer for automated execution. ```javascript /* * Job 6a-getCasesDHIS.js * Gets cases from Go.Data & aggregates individual records to calculate indicator results. */ // This is a placeholder for the actual script content. // The script would typically involve: // 1. Authenticating with the Go.Data API. // 2. Fetching case records using the /cases endpoint, potentially with filters. // 3. Processing the fetched records to calculate aggregate indicators (e.g., count of confirmed cases, hospitalizations). // 4. Preparing the aggregated data for upload to DHIS2. console.log('Job 6a: Getting cases from Go.Data and aggregating...'); // Example of a hypothetical function to get cases (replace with actual API call) async function getGoDataCases() { // ... implementation to fetch cases from Go.Data API ... return [ { id: 'case1', status: 'Confirmed', hospitalized: true }, { id: 'case2', status: 'Confirmed', hospitalized: false }, { id: 'case3', status: 'Suspected', hospitalized: false }, { id: 'case4', status: 'Confirmed', hospitalized: true } ]; } // Example of a hypothetical function to aggregate data (replace with actual logic) function aggregateCases(cases) { let confirmedCases = 0; let hospitalizedCases = 0; cases.forEach(caseItem => { if (caseItem.status === 'Confirmed') { confirmedCases++; if (caseItem.hospitalized) { hospitalizedCases++; } } }); return { confirmedCases, hospitalizedCases }; } // Main execution flow (example) (async () => { try { const cases = await getGoDataCases(); const aggregatedData = aggregateCases(cases); console.log('Aggregated Data:', aggregatedData); // Further steps would involve preparing and sending this data to DHIS2 } catch (error) { console.error('Error in Job 6a:', error); } })(); ``` -------------------------------- ### Go.Data Global Record IDs (GUIDs) Source: https://worldhealthorganization.github.io/godata/unique-identifiers GUIDs are system-generated internal unique identifiers for all records in Go.Data. They are used as primary keys and are required for requesting and updating records via the API. ```APIDOC ## Go.Data Global Record IDs (GUIDs) ### Description All records created in Go.Data are assigned a system-generated internal Globally Unique Identifier (`id`). GUIDs are used as primary keys for records in the MongoDB, and are required to request and update Go.Data records via the API. ### Method GET ### Endpoint `/api/outbreaks/{guid}` ### Method POST ### Endpoint `/api/outbreaks/{guid}/cases/{guid}` ### Notes On the front end, you can find this `id` in the URL of a record you are viewing. ``` -------------------------------- ### R Implementation with HTTR for Fields Filter Source: https://worldhealthorganization.github.io/godata/api-docs This R code snippet demonstrates how to use the HTTR package to make a GET request with a fields filter and process the JSON response. ```r response_cases_short <- GET(paste0(url,"api/outbreaks/",outbreak_id,"/cases/?filter={%22fields%22:{%22firstName%22:%22true%22,%22lastName%22:%22true%22}}"), add_headers(Authorization = paste("Bearer", access_token, sep = " ")) ) json_cases_short <- content(response_cases_short, as = "text") cases_short <- as_tibble(fromJSON(json_cases_short, flatten = TRUE)) ``` -------------------------------- ### List Health Facilities from HealthSites.io Source: https://worldhealthorganization.github.io/godata/5-godata--facility-registry Use an HTTP GET request to the HealthSites.io API to list health facilities for a specific country. Ensure you include your API key and pagination parameters. ```HTTP GET '/api/v2/facilities/?api-key=NNNNN&page=1&country=Bangladesh' ``` -------------------------------- ### Get Active Cases from HMIS (PostgreSQL) Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system Retrieves active cases from a SQL-based HMIS system using the OpenFn PostgreSQL adaptor. ```javascript sql("SELECT * from cases where active = true") ``` -------------------------------- ### Extract Confirmed Cases from Go.Data Source: https://worldhealthorganization.github.io/godata/godata--dhis2-aggregate This snippet shows how to make a GET request to the Go.Data API to extract 'confirmed' cases. It specifies the outbreak ID and a filter for case classification. ```javascript getCase( '3b5554d7-2c19-41d0-b9af-475ad25a382b', //outbreak Id { where: { classification: 'LNG_REFERENCE_DATA_CATEGORY_CASE_CLASSIFICATION_CONFIRMED', //filter to extract only confirmed cases }, }, ) ``` -------------------------------- ### Upsert Cases in Go.Data Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system Upserts case data into Go.Data by first listing existing cases via a GET request filtered by virtualId, and then performing a POST or PUT request to insert or update records. ```javascript upsertCases(cases, "virtualId") ``` -------------------------------- ### OpenFn.org Demo Project Login Credentials Source: https://worldhealthorganization.github.io/godata/explore-openfn Credentials to access the demo project on OpenFn.org for exploring integration jobs. ```text username: godata@who.int password: interop2021 ``` -------------------------------- ### Accessing Go.Data API Explorer Source: https://worldhealthorganization.github.io/godata/api-docs Use this URL to access the self-documenting API methods via LoopBack Explorer. This tool allows viewing API operations, parameters, and testing inputs. ```text http://localhost:8000/explorer ``` -------------------------------- ### OpenFn Script for Mapping HealthSites Data to Go.Data Source: https://worldhealthorganization.github.io/godata/5-godata--facility-registry This OpenFn job script demonstrates how to map attributes from HealthSites.io to Go.Data's reference data structure. It defines the structure for the 'data' object used in the upsert operation. ```JavaScript const data = { //mapping attributes id: `LNG_REFERENCE_DATA_CATEGORY_CENTRE_NAME_${name}`, //godataVariable: sourceValue, categoryId: 'LNG_REFERENCE_DATA_CATEGORY_CENTRE_NAME', //godata reference-data Id value: attributes.name, //map from HealthSites.io ... code: attributes.uuid, active: true, readOnly: false, outbreakId: '3b5554d7-2c19-41d0-b9af-475ad25a382b', description: 'hospital', name: attributes.name, }; ``` -------------------------------- ### Retrieve Single Outbreak Details Source: https://worldhealthorganization.github.io/godata/api-docs Use this method to get specific details of an outbreak by its ID. Ensure you include your access token. ```HTTP GET /outbreaks http://localhost:8000/api/outbreaks/8c71e61f-fb11-4d4f-9130-b69384b6e4e4?access_token=VUCA57YkMIcF5R2M8vl6PuaNHoMU0Q3Mr4cmGEOH06CPblx6xflnAw0AfQaMYdZP ``` -------------------------------- ### Kobo Toolbox Demo Credentials Source: https://worldhealthorganization.github.io/godata/godata--mobile-integration Login credentials for accessing the demo Kobo Toolbox project and survey form. Used for exploring the data collection tool configuration. ```text username: godata_demo password: Interoperability ``` -------------------------------- ### User Login Source: https://worldhealthorganization.github.io/godata/api-docs Authenticate a user by providing their email and password to obtain an authentication token. ```APIDOC ## POST /users/login ### Description Authenticates a user by passing their email and password. If successful, it returns an authentication token. ### Method POST ### Endpoint /users/login ### Request Body - **email** (string) - Required - The user's email address. - **password** (string) - Required - The user's password. ### Request Example ```json { "email": "email@test.com", "password": "your_password_here" } ``` ### Response #### Success Response (200) - **id** (string) - The authentication token. - **ttl** (number) - Time to live for the token in seconds. - **created** (string) - Timestamp of token creation. - **userId** (string) - The ID of the user. - **createdAt** (string) - Timestamp of record creation. - **createdBy** (string) - Identifier for who created the record. - **updatedAt** (string) - Timestamp of record update. - **updatedBy** (string) - Identifier for who updated the record. - **deleted** (boolean) - Indicates if the record is deleted. #### Response Example ```json { "id": "Iv0S7Tj1F8RJaQSpBPHUlQ518KOUmK3SC7FlDvqLgbfbtjBt6ZFB77ViEQnKtqRq", "ttl": 600, "created": "2020-06-22T13:20:49.549Z", "userId": "18bf64ac-a36e-4890-a074-64aec702e21b", "createdAt ": "2020-06-22T13:20:49.550Z", "createdBy ": "system", "updatedAt ": "2020-06-22T13:20:49.550Z", "updatedBy ": "system", "deleted": false } ``` ``` -------------------------------- ### Upsert Cases into Go.Data with OpenFn Go.Data Adaptor Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system Upserts case data into Go.Data by searching for existing records using a visual ID and then creating or updating them. Leverages the Go.Data API adaptor. ```javascript upsertCase( '3b5554d7-2c19-41d0-b9af-475ad25a382b', // the Go.Data outbreak ID 'visualId', //external ID to upsert cases - this is the Case Mask ID -e.g., CASE-10001 { data } //object that specified tha mappings for HMIS variables to Go.Data ) ``` -------------------------------- ### Sync Go.Data Cases back to HMIS (PostgreSQL) Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system Synchronizes Go.Data cases back to a SQL-based HMIS system by executing SQL queries. ```javascript sql("INSERT INTO cases (externalId, name, dateOfBirth) VALUES (\"?", \"?", \"?\") ON CONFLICT (externalId) DO UPDATE SET name = \"?", dateOfBirth = \"?"") ``` -------------------------------- ### Python Package for Go.Data API Wrapper Source: https://worldhealthorganization.github.io/godata/tableau The 'pygodata' package simplifies common API calls to Go.Data, including server authentication and data requests. ```python import pygodata # Server authentication server_url = "https://your-godata-instance.com" username = "your_username" password = "your_password" # Initialize pygodata client client = pygodata.GoDataAPI(server_url, username, password) # Example: Get all cases cases = client.get_cases() print(f"Retrieved {len(cases)} cases.") # Example: Get a specific case by ID case_id = "some_case_id" case = client.get_case(case_id) print(f"Retrieved case: {case_id}") ``` -------------------------------- ### Calculate Summary for DHIS2 Import Source: https://worldhealthorganization.github.io/godata/godata--dhis2-aggregate This snippet demonstrates calculating summary data, specifically the count of confirmed cases and the date of reporting, to be sent to DHIS2. ```javascript summary = { dateOfReporting: lastDateOfReporting, value: currentCases.length, }; ``` -------------------------------- ### User Login Request Source: https://worldhealthorganization.github.io/godata/api-docs Send a POST request with user credentials to the /users/login endpoint to authenticate. ```json { "email": "email@test.com", "password": "your_password_here" } ``` -------------------------------- ### Importing External Identifiers Source: https://worldhealthorganization.github.io/godata/unique-identifiers Guidance on how to use custom identifier schemes and import existing external identifiers like National IDs into Go.Data. ```APIDOC ## National IDs and Importing Other Existing Identifiers ### Description If you have an existing unique identifier used in external systems, such as a `National ID`, you may choose to implement this as the unique identifier scheme in the Go.Data system so that all Go.Data `Contact` or `Case` records will also be tagged with this Id. ### Importing External Identifiers 1. Consider setting the `Case Mask ID: *` so that you can freely import this external identifier with no constraints (or use a `Mask ID` like `99999999` if you know that the Id has a standard format of 8 digits. 2. If you prefer that all `Contacts` or `Cases` also be assigned a Go.Data-generated identifier, then you may instead choose to set the `Case Mask ID` to a custom identifier scheme, and rather use the `Document` variable (see below) to also capture the `National ID` or other external identifier. ### 'Document' Variable On Case and Contact there is a standard `Document` variable available for users to specify other Document identification (e.g., national ID, passport). ### Questionnaire Custom Variables You can choose to add **custom variables** to also capture custom metadata like an external identifier. ``` -------------------------------- ### Extract Go.Data Cases with Date Filtering Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system This snippet demonstrates how to extract cases from Go.Data using the `listCases` helper function. It includes logic to filter cases by a specified date using a cursor, ensuring only new cases are processed. The data is then transformed into a format suitable for HMIS. ```javascript listCases('3b5554d7-2c19-41d0-b9af-475ad25a382b', {}, state => { function yesterdayDate() { const date = new Date(); date.setDate(date.getDate() - 1); date.setHours(0, 0, 0, 0); return date.toISOString(); } // We add a cursor so that we don't list ALL cases, but filter our search to only list NEW cases const yesterday = null; // set to null if we want to use manualCursor as a default date filter. Set to yesterDayDate() to use the date of yesterday. const manualCursor = '2020-07-24T00:00:00.000Z'; //default date filter for listing cases const cases = state.data .filter(report => { return report.dateOfReporting === (yesterday || manualCursor); //filter Cases by dateOfReporting = cursor date }) .map(report => { return { //Here we map Go.Data variables from response to HMIS name: `${report.firstName}, ${report.lastName || ''}`, status: report.classification, externalId: report.id, caseId: report.visualId, age: report.age ? report.age.years : report['age:years'], phone: report.addresses && report.addresses[0] ? report.addresses[0].phoneNumber : report['addresses:phoneNumber'], country: report.addresses && report.addresses[0] ? report.addresses[0].country : report['addresses:country'], location: report.addresses && report.addresses[0] ? report.addresses[0].locationId : report['addresses:locationId'], }; }); const HMISCases = state.data.filter(report => { return report.dateOfReporting === (yesterday || manualCursor); }); console.log('Cases received...'); console.log(cases); return { ...state, cases, HMISCases }; }); ``` -------------------------------- ### Go.Data Mask ID Naming Conventions Source: https://worldhealthorganization.github.io/godata/unique-identifiers Understand the naming conventions for creating custom 'Mask IDs' for Cases and Contacts in Go.Data. These conventions define how human-readable identifiers are generated. ```text `0`: Digit (0 through 9) `9`: Digit (auto-generated sequence number) `Y`: Year (Using year from the dateOfReporting) `@`: Letter (A through Z) `&`: Any character including spaces `*`: For any character with no limitations in ID length ``` -------------------------------- ### Query HMIS Cases with OpenFn PostgreSQL Adaptor Source: https://worldhealthorganization.github.io/godata/1-2-godata--hmissurveillance-system Fetches active cases from the HMIS database using a SQL query. Requires the OpenFn PostgreSQL adaptor. ```javascript sql(state => 'SELECT * FROM tbl_cases WHERE active = true'); //query from source table ``` -------------------------------- ### Upload Aggregated Results to DHIS2 Source: https://worldhealthorganization.github.io/godata/godata--dhis2-aggregate This script uploads the aggregated Go.Data results to DHIS2 as Data Value Sets. It is designed to work with OpenFn.org and is typically run after the data aggregation script. ```javascript /* * Job 6b-importDHIS2.js * Uploads aggregated results to DHIS2 as Data Value Sets. */ // This is a placeholder for the actual script content. // The script would typically involve: // 1. Authenticating with the DHIS2 API. // 2. Receiving aggregated data (e.g., from Job 6a). // 3. Formatting the data into DHIS2 Data Value Set format. // - This includes mapping Go.Data indicators to DHIS2 data elements and organisation units. // 4. Sending the Data Value Set to the DHIS2 API. console.log('Job 6b: Uploading aggregated results to DHIS2...'); // Example of a hypothetical function to upload to DHIS2 (replace with actual API call) async function uploadToDHIS2(data) { // ... implementation to send data to DHIS2 API ... console.log('Data uploaded to DHIS2:', data); return { status: 'success' }; } // Example aggregated data (this would typically be passed from Job 6a) const exampleAggregatedData = { confirmedCases: 150, hospitalizedCases: 30 }; // Main execution flow (example) (async () => { try { // In a real scenario, 'exampleAggregatedData' would be the output of Job 6a await uploadToDHIS2(exampleAggregatedData); } catch (error) { console.error('Error in Job 6b:', error); } })(); ``` -------------------------------- ### User Login Response with Authentication Token Source: https://worldhealthorganization.github.io/godata/api-docs Upon successful login, the API returns a JSON response containing an 'id' property, which serves as the authentication token. ```json { "id": "Iv0S7Tj1F8RJaQSpBPHUlQ518KOUmK3SC7FlDvqLgbfbtjBt6ZFB77ViEQnKtqRq", "ttl": 600, "created": "2020-06-22T13:20:49.549Z", "userId": "18bf64ac-a36e-4890-a074-64aec702e21b", "createdAt ": "2020-06-22T13:20:49.550Z", "createdBy ": "system", "updatedAt ": "2020-06-22T13:20:49.550Z", "updatedBy ": "system", "deleted": false } ``` -------------------------------- ### Upsert Reference Data in Go.Data API Source: https://worldhealthorganization.github.io/godata/5-godata--facility-registry This snippet shows how to use the `upsertReferenceData` function from the Go.Data API adaptor. It performs an upsert operation by checking for existing records and then creating or updating them based on the provided data mapping. ```JavaScript upsertReferenceData('id', { //where id is reference-data-catefory unique identifier data, }) ``` -------------------------------- ### Retrieve Outbreaks with Access Token Source: https://worldhealthorganization.github.io/godata/api-docs Use the obtained access token in the 'access_token' query parameter to retrieve a list of outbreaks. ```http http://localhost:8000/api/outbreaks? access_token=VUCA57YkMIcF5R2M8vl6PuaNHoMU0Q3Mr4cmGEOH06CPblx6xflnAw0AfQaMYdZP ``` -------------------------------- ### SQL Script for Measure Aggregation Source: https://worldhealthorganization.github.io/godata/tableau A SQL script used to aggregate metrics from Go.Data, such as the proportion of cases that were contacts or the proportion of contacts by exposure site. These metrics feed into Tableau dashboards. ```sql -- Example SQL script for aggregating measures -- Calculate proportion of cases that were contacts identified by tracing SELECT COUNT(CASE WHEN is_contact_identified_by_tracing = TRUE THEN 1 END) * 100.0 / COUNT(*) AS proportion_cases_identified_as_contacts FROM cases; -- Calculate proportion of contacts by context exposure site SELECT exposure_site, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM contacts) AS proportion_of_contacts FROM contacts GROUP BY exposure_site ORDER BY proportion_of_contacts DESC; ``` -------------------------------- ### Importing External Identifiers with Mask ID '*' Source: https://worldhealthorganization.github.io/godata/unique-identifiers When importing external identifiers like National IDs, consider setting the Case Mask ID to '*' to allow free import without character constraints. ```text Case Mask ID: * ``` -------------------------------- ### Case & Contact IDs (Mask IDs) Source: https://worldhealthorganization.github.io/godata/unique-identifiers Users can define a 'ID mask' for Cases and Contacts to create human-readable identification patterns. Go.Data uses these patterns to generate unique identifiers for tracking each case. ```APIDOC ## Case & Contact IDs (Mask IDs) ### Description Users can choose to define `ID mask` for `Cases` and `Contacts` to assign a human-readable identification pattern that Go.Data will use to create a globally unique identifier to track each case. These IDs can be configured when first setting up an `Outbreak`. ### Mask ID Naming Conventions * `0`: Digit (0 through 9) * `9`: Digit (auto-generated sequence number) * `Y`: Year (Using year from the dateOfReporting) * `@`: Letter (A through Z) * `&`: Any character including spaces * `*`: For any character with no limitations in ID length ### Examples * `Case Mask ID: *` (e.g., `028391BX01`, `827JN09K11`) * `Case Mask ID: CASE-99999` (e.g., `CASE-00001`, `CASE-00002`) * `Case Mask ID: @@@-999999999` (e.g., `SEN-021929192`) ### Notes for Mask ID Creation 1. If interacting with this `Mask ID` via the API, this variable is labeled as `visualId` in all the body of API responses. 2. If a `Case` or `Contact` record is converted, its Mask ID (and `visualId`) does not change. ``` -------------------------------- ### Filter Cases by Multiple Conditions Source: https://worldhealthorganization.github.io/godata/api-docs Demonstrates filtering for deleted records updated before a specific date using 'and' within the 'where' clause. ```JSON {"where": {"and": [{"deleted": {"eq": true}},{"updatedAt": {"lte": "2021-01-01T00:00:00.000Z"}}]},"deleted": true} ``` -------------------------------- ### Retrieve All Outbreaks Source: https://worldhealthorganization.github.io/godata/api-docs This method retrieves a list of all available outbreaks, useful for finding specific outbreak IDs. ```HTTP GET /outbreaks ```