diff --git a/data-serving/data-service/package.json b/data-serving/data-service/package.json index 518f8864a..282d9b215 100644 --- a/data-serving/data-service/package.json +++ b/data-serving/data-service/package.json @@ -59,7 +59,7 @@ "dotenv": "^8.2.0", "envalid": "^6.0.2", "express": "^4.17.1", - "express-openapi-validator": "^3.16.2", + "express-openapi-validator": "^3.16.4", "express-validator": "^6.6.0", "mongodb": "^3.5.9", "mongoose": "^5.9.20", diff --git a/data-serving/data-service/schemas/cases.index.json b/data-serving/data-service/schemas/cases.index.json index 034487e20..8436503c4 100644 --- a/data-serving/data-service/schemas/cases.index.json +++ b/data-serving/data-service/schemas/cases.index.json @@ -11,5 +11,5 @@ "location.place": "text", "location.name": "text", "pathogen.name": "text", - "sources.url": "text" + "caseReference.sourceUrl": "text" } \ No newline at end of file diff --git a/data-serving/data-service/schemas/cases.schema.json b/data-serving/data-service/schemas/cases.schema.json index 634f113d0..977f0cd28 100644 --- a/data-serving/data-service/schemas/cases.schema.json +++ b/data-serving/data-service/schemas/cases.schema.json @@ -21,7 +21,26 @@ }, "sourceEntryId": { "bsonType": "string" - } + }, + "sourceUrl": { + "bsonType": "string" + }, + "additionalSources": { + "bsonType": "array", + "uniqueItems": true, + "items": { + "bsonType": "object", + "additionalProperties": false, + "properties": { + "_id": { + "bsonType": "objectId" + }, + "sourceUrl": { + "bsonType": "string" + } + } + } + } } }, "demographics": { @@ -360,28 +379,6 @@ } } }, - "sources": { - "bsonType": "array", - "uniqueItems": true, - "items": { - "bsonType": "object", - "additionalProperties": false, - "properties": { - "_id": { - "bsonType": "objectId" - }, - "id": { - "bsonType": "string" - }, - "url": { - "bsonType": "string" - }, - "other": { - "bsonType": "string" - } - } - } - }, "pathogens": { "bsonType": "array", "uniqueItems": true, diff --git a/data-serving/data-service/src/model/case-reference.ts b/data-serving/data-service/src/model/case-reference.ts index 1c9d08748..dbe96f984 100644 --- a/data-serving/data-service/src/model/case-reference.ts +++ b/data-serving/data-service/src/model/case-reference.ts @@ -6,9 +6,30 @@ export const caseReferenceSchema = new mongoose.Schema({ required: true, }, sourceEntryId: String, + sourceUrl: { + type: String, + required: true, + }, + additionalSources: [ + { + sourceUrl: String, + }, + ], }); export type CaseReferenceDocument = mongoose.Document & { + /** Foreign key to the sources collection. */ sourceId: string; + + /** The original id of the case in the source. */ sourceEntryId: string; + + /** The URL of the source of the case data at the time of ingestion. */ + sourceUrl: string; + + additionalSources: [ + { + sourceUrl: string; + }, + ]; }; diff --git a/data-serving/data-service/src/model/case.ts b/data-serving/data-service/src/model/case.ts index e8a01af14..04a05bb72 100644 --- a/data-serving/data-service/src/model/case.ts +++ b/data-serving/data-service/src/model/case.ts @@ -12,7 +12,6 @@ import { RevisionMetadataDocument, revisionMetadataSchema, } from './revision-metadata'; -import { SourceDocument, sourceSchema } from './source'; import { TransmissionDocument, transmissionSchema } from './transmission'; import { TravelHistoryDocument, travelHistorySchema } from './travel-history'; @@ -21,7 +20,10 @@ import mongoose from 'mongoose'; const caseSchema = new mongoose.Schema( { - caseReference: caseReferenceSchema, + caseReference: { + type: caseReferenceSchema, + required: true, + }, demographics: demographicsSchema, events: { type: [eventSchema], @@ -37,19 +39,11 @@ const caseSchema = new mongoose.Schema( location: locationSchema, revisionMetadata: { type: revisionMetadataSchema, - required: 'Must include revision metadata', + required: true, }, notes: String, pathogens: [pathogenSchema], preexistingConditions: dictionarySchema, - sources: { - type: [sourceSchema], - required: true, - validate: { - validator: (sources: [SourceDocument]) => sources.length > 0, - message: 'Must include one or more sources', - }, - }, symptoms: dictionarySchema, transmission: transmissionSchema, travelHistory: travelHistorySchema, @@ -82,7 +76,6 @@ type CaseDocument = mongoose.Document & { notes: string; pathogens: [PathogenDocument]; preexistingConditions: DictionaryDocument; - sources: [SourceDocument]; symptoms: DictionaryDocument; transmission: TransmissionDocument; travelHistory: TravelHistoryDocument; diff --git a/data-serving/data-service/src/model/pathogen.ts b/data-serving/data-service/src/model/pathogen.ts index 7f3beb338..f4c848c58 100644 --- a/data-serving/data-service/src/model/pathogen.ts +++ b/data-serving/data-service/src/model/pathogen.ts @@ -1,5 +1,3 @@ -import { SourceDocument, sourceSchema } from './source'; - import mongoose from 'mongoose'; import { positiveIntFieldInfo } from './positive-int'; diff --git a/data-serving/data-service/src/model/source.ts b/data-serving/data-service/src/model/source.ts deleted file mode 100644 index 67e629a61..000000000 --- a/data-serving/data-service/src/model/source.ts +++ /dev/null @@ -1,34 +0,0 @@ -import mongoose from 'mongoose'; - -const fieldRequiredValidator = [ - function (this: SourceDocument) { - return ( - this != null && - this.id == null && - this.url == null && - this.other == null - ); - }, - 'Source must specify id, url, or other', -]; - -export const sourceSchema = new mongoose.Schema({ - id: { - type: String, - required: fieldRequiredValidator, - }, - url: { - type: String, - required: fieldRequiredValidator, - }, - other: { - type: String, - required: fieldRequiredValidator, - }, -}); - -export type SourceDocument = mongoose.Document & { - id: string; - url: string; - other: string; -}; diff --git a/data-serving/data-service/test/controllers/case.test.ts b/data-serving/data-service/test/controllers/case.test.ts index 32830e7e7..d8573abc4 100644 --- a/data-serving/data-service/test/controllers/case.test.ts +++ b/data-serving/data-service/test/controllers/case.test.ts @@ -167,7 +167,11 @@ describe('PUT', () => { const res = await request(app) .put('/api/cases') .send({ - caseReference: { sourceId: sourceId, sourceEntryId: entryId }, + caseReference: { + sourceId: sourceId, + sourceEntryId: entryId, + sourceUrl: 'cdc.gov', + }, notes: newNotes, }) .expect('Content-Type', /json/) @@ -197,7 +201,11 @@ describe('PUT', () => { return request(app) .put('/api/cases') .send({ - caseReference: { sourceId: sourceId, sourceEntryId: entryId }, + caseReference: { + sourceId: sourceId, + sourceEntryId: entryId, + sourceUrl: 'cdc.gov', + }, location: {}, }) .expect(422); diff --git a/data-serving/data-service/test/model/case-reference.test.ts b/data-serving/data-service/test/model/case-reference.test.ts index 5ee4685e3..88a5fd4ab 100644 --- a/data-serving/data-service/test/model/case-reference.test.ts +++ b/data-serving/data-service/test/model/case-reference.test.ts @@ -22,6 +22,16 @@ describe('validate', () => { expect(e.name).toBe(Error.ValidationError.name); }); }); + + it('a caseReference document without sourceUrl is invalid', async () => { + const missingSourceUrl = { ...minimalModel }; + delete missingSourceUrl.sourceUrl; + + return new CaseReference(missingSourceUrl).validate((e) => { + expect(e.name).toBe(Error.ValidationError.name); + }); + }); + it('a minimal caseReference document is valid', async () => { return new CaseReference(minimalModel).validate(); }); diff --git a/data-serving/data-service/test/model/case.test.ts b/data-serving/data-service/test/model/case.test.ts index 403b33bfd..08903c9ee 100644 --- a/data-serving/data-service/test/model/case.test.ts +++ b/data-serving/data-service/test/model/case.test.ts @@ -5,8 +5,11 @@ import minimalEvent from './data/event.minimal.json'; import minimalModel from './data/case.minimal.json'; describe('validate', () => { - it('model without sources is invalid', async () => { - return new Case({ ...minimalModel, sources: [] }).validate((e) => { + it('model without caseReference is invalid', async () => { + const noCaseReference = { ...minimalModel }; + delete noCaseReference.caseReference; + + return new Case({ ...noCaseReference }).validate((e) => { expect(e.name).toBe(Error.ValidationError.name); }); }); @@ -28,10 +31,10 @@ describe('validate', () => { }); it('model without revision metadata is invalid', async () => { - const noRevisionmetadata = { ...minimalModel }; - delete noRevisionmetadata.revisionMetadata; + const noRevisionMetadata = { ...minimalModel }; + delete noRevisionMetadata.revisionMetadata; - return new Case(noRevisionmetadata).validate((e) => { + return new Case(noRevisionMetadata).validate((e) => { expect(e.name).toBe(Error.ValidationError.name); }); }); diff --git a/data-serving/data-service/test/model/data/case-reference.full.json b/data-serving/data-service/test/model/data/case-reference.full.json index 719bc96c7..38a021768 100644 --- a/data-serving/data-service/test/model/data/case-reference.full.json +++ b/data-serving/data-service/test/model/data/case-reference.full.json @@ -1,4 +1,13 @@ { "sourceId": "sourceId", - "sourceEntryId": "entryId" + "sourceEntryId": "entryId", + "sourceUrl": "cdc.gov", + "additionalSources": [ + { + "sourceUrl": "twitter.com/a-tweet" + }, + { + "sourceUrl": "news.org/an-article" + } + ] } \ No newline at end of file diff --git a/data-serving/data-service/test/model/data/case-reference.minimal.json b/data-serving/data-service/test/model/data/case-reference.minimal.json index a60837d3e..e6919803c 100644 --- a/data-serving/data-service/test/model/data/case-reference.minimal.json +++ b/data-serving/data-service/test/model/data/case-reference.minimal.json @@ -1,3 +1,4 @@ { - "sourceId": "sourceId" + "sourceId": "sourceId", + "sourceUrl": "cdc.gov" } \ No newline at end of file diff --git a/data-serving/data-service/test/model/data/case.full.json b/data-serving/data-service/test/model/data/case.full.json index c2c8a416b..5c06047fb 100644 --- a/data-serving/data-service/test/model/data/case.full.json +++ b/data-serving/data-service/test/model/data/case.full.json @@ -1,7 +1,16 @@ { "caseReference": { "sourceId": "sourceId", - "sourceEntryId": "entryId" + "sourceEntryId": "entryId", + "sourceUrl": "cdc.gov", + "additionalSources": [ + { + "sourceUrl": "twitter.com/a-tweet" + }, + { + "sourceUrl": "news.org/an-article" + } + ] }, "demographics": { "ageRange": { diff --git a/data-serving/data-service/test/model/data/case.minimal.json b/data-serving/data-service/test/model/data/case.minimal.json index b56a1a2e6..7f8f02f27 100644 --- a/data-serving/data-service/test/model/data/case.minimal.json +++ b/data-serving/data-service/test/model/data/case.minimal.json @@ -1,4 +1,8 @@ { + "caseReference": { + "sourceId": "sourceId", + "sourceUrl": "cdc.gov" + }, "events": [ { "name": "confirmed", @@ -8,20 +12,15 @@ } } ], - "sources": [ - { - "url": "cdc.gov" - } - ], + "location": { + "country": "China", + "geoResolution": "Country" + }, "revisionMetadata": { "revisionNumber": 0, "creationMetadata": { "curator": "abc123", "date": "2020-01-03" } - }, - "location": { - "country": "China", - "geoResolution": "Country" } } \ No newline at end of file diff --git a/data-serving/data-service/test/model/data/source.full.json b/data-serving/data-service/test/model/data/source.full.json deleted file mode 100644 index c510d0672..000000000 --- a/data-serving/data-service/test/model/data/source.full.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "abc", - "url": "http://abc.def", - "other": "ghi" -} \ No newline at end of file diff --git a/data-serving/data-service/test/model/data/source.minimal.json b/data-serving/data-service/test/model/data/source.minimal.json deleted file mode 100644 index d62655570..000000000 --- a/data-serving/data-service/test/model/data/source.minimal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "abc" -} \ No newline at end of file diff --git a/data-serving/data-service/test/model/source.test.ts b/data-serving/data-service/test/model/source.test.ts deleted file mode 100644 index eda04b200..000000000 --- a/data-serving/data-service/test/model/source.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { SourceDocument, sourceSchema } from '../../src/model/source'; - -import { Error } from 'mongoose'; -import fullModel from './data/source.full.json'; -import mongoose from 'mongoose'; - -const Source = mongoose.model('Source', sourceSchema); - -describe('validate', () => { - it('empty source is invalid', async () => { - return new Source({}).validate((e) => { - expect(e.name).toBe(Error.ValidationError.name); - }); - }); - - it('a source with only an id is valid', async () => { - return new Source({ id: 'abc' }).validate(); - }); - - it('a source with only url is valid', async () => { - return new Source({ url: 'http://abc.def' }).validate(); - }); - - it('a source with only "other" is valid', async () => { - return new Source({ other: 'ghi' }).validate(); - }); - - it('a fully specified source is valid', async () => { - return new Source(fullModel).validate(); - }); - - it('validators work for embedded sources', async () => { - const FakeModel = mongoose.model( - 'FakeDocument', - new mongoose.Schema({ - source: sourceSchema, - }), - ); - return new FakeModel({ source: {} }).validate((e) => { - expect(e.name).toBe(Error.ValidationError.name); - }); - }); -}); diff --git a/data-serving/samples/cases.json b/data-serving/samples/cases.json index a20a69500..49c07d7bc 100644 --- a/data-serving/samples/cases.json +++ b/data-serving/samples/cases.json @@ -1,5 +1,9 @@ [ { + "caseReference": { + "sourceId": "def456", + "sourceUrl": "https://www.colorado.gov/pacific/cdphe/news/10-new-presumptive-positive-cases-colorado-cdphe-confirms-limited-community-spread-covid-19" + }, "demographics": { "ageRange": { "start": 50, @@ -121,44 +125,42 @@ "status": "Yes" }, "travelHistory": { - "travel": [{ - "dateRange": { - "start": { - "$date": { - "$numberLong": "1576386000000" + "travel": [ + { + "dateRange": { + "start": { + "$date": { + "$numberLong": "1576386000000" + } + }, + "end": { + "$date": { + "$numberLong": "1577682000000" + } } }, - "end": { - "$date": { - "$numberLong": "1577682000000" - } - } - }, - "location": { - "country": "China", - "administrativeAreaLevel1": "Hubei", - "administrativeAreaLevel2": "Wuhan City", - "geoResolution": "Admin2", - "geometry": { - "latitude": { - "$numberDouble": "30.592849" - }, - "longitude": { - "$numberDouble": "114.305539" + "location": { + "country": "China", + "administrativeAreaLevel1": "Hubei", + "administrativeAreaLevel2": "Wuhan City", + "geoResolution": "Admin2", + "geometry": { + "latitude": { + "$numberDouble": "30.592849" + }, + "longitude": { + "$numberDouble": "114.305539" + } } - } - }, - "methods": [ "Plane" ], - "purpose": "Family" - }], + }, + "methods": [ + "Plane" + ], + "purpose": "Family" + } + ], "traveledPrior30Days": true }, - "sources": [ - { - "id": "def456", - "url": "https://www.colorado.gov/pacific/cdphe/news/10-new-presumptive-positive-cases-colorado-cdphe-confirms-limited-community-spread-covid-19" - } - ], "pathogens": [ { "name": "COVID-19", @@ -192,9 +194,16 @@ } }, "transmission": { - "routes": [ "Vector borne" ], - "places": [ "Gym" ], - "linkedCaseIds": [ "abc", "def" ] + "routes": [ + "Vector borne" + ], + "places": [ + "Gym" + ], + "linkedCaseIds": [ + "abc", + "def" + ] }, "importedCase": { "ID": "idk", @@ -206,54 +215,124 @@ } }, { + "demographics": { + "sex": "Male" + }, "location": { - "administrativeAreaLevel1": "Flanders", - "country": "Belgium", + "administrativeAreaLevel1": "Hong Kong", + "country": "China", "geometry": { - "latitude": 51.038740000000004, - "longitude": 4.240024 + "latitude": 22.3650193, + "longitude": 114.133808 }, - "geoResolution": "Admin1" + "name": "Hong Kong", + "geoResolution": "Point" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-17T00:00:00Z" + "$date": "2020-02-14T00:00:00Z" }, "end": { - "$date": "2020-03-17T00:00:00Z" + "$date": "2020-02-14T00:00:00Z" } } + }, + { + "name": "critical condition, intubated as of 14.02.2020" } ], "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ + "notes": "Case 55; mainland China travel via the Lok Ma Chau border crossing", + "caseReference": { + "sourceUrl": "https://www.scmp.com/news/hong-kong/health-environment/article/3050681/coronavirus-hong-kong-confirms-three-news-cases" + }, + "travelHistory": { + "travel": [ + { + "dateRange": { + "start": { + "$date": "2020-01-22T00:00:00Z" + }, + "end": { + "$date": "2020-01-22T00:00:00Z" + } + }, + "location": { + "country": "China", + "geometry": { + "latitude": 37.59841, + "longitude": 104.1868 + }, + "geoResolution": "Country" + } + } + ] + }, + "importedCase": { + "ID": "000-1-1", + "city": "Shek Lei", + "province": "Hong Kong", + "country": "China", + "date_confirmation": "14.02.2020", + "travel_history_dates": "22.01.2020", + "travel_history_location": "China", + "chronic_disease_binary": "False", + "outcome": "critical condition, intubated as of 14.02.2020", + "admin_id": "8051.0" + } + }, + { + "location": { + "country": "United Kingdom", + "geometry": { + "latitude": 54.37002, + "longitude": -2.95214 + }, + "name": "", + "geoResolution": "Country" + }, + "events": [ { - "url": "https://www.info-coronavirus.be/nl/2020/03/17/172-nieuwe-besmettingen-met-coronavirus-covid-19/" + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-03-14T00:00:00Z" + }, + "end": { + "$date": "2020-03-14T00:00:00Z" + } + } } ], + "revisionMetadata": { + "revisionNumber": 0 + }, + "caseReference": { + "sourceUrl": "https://twitter.com/DHSCgovuk/status/1238837700943323136" + }, "importedCase": { - "ID": "000-1-30931", - "province": "Flanders", - "country": "Belgium", - "date_confirmation": "17.03.2020", + "ID": "000-1-34326", + "country": "United Kingdom", + "date_confirmation": "14.03.2020", "chronic_disease_binary": "False", - "admin_id": "422.0" + "admin_id": "236.0" } }, { "location": { - "administrativeAreaLevel2": "Suizhou City", + "administrativeAreaLevel2": "Wuhan City", "administrativeAreaLevel1": "Hubei", "country": "China", "geometry": { - "latitude": 31.8296, - "longitude": 113.4236 + "latitude": 30.625059999999998, + "longitude": 114.3421 }, + "name": "Hubei, Wuhan City", "geoResolution": "Admin2" }, "events": [ @@ -261,10 +340,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-02-06T00:00:00Z" + "$date": "2020-02-17T00:00:00Z" }, "end": { - "$date": "2020-02-06T00:00:00Z" + "$date": "2020-02-17T00:00:00Z" } } } @@ -272,28 +351,27 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "http://wjw.hubei.gov.cn/fbjd/dtyw/202002/t20200207_2020605.shtml" - } - ], + "caseReference": { + "sourceUrl": "http://wjw.hubei.gov.cn/fbjd/dtyw/202002/t20200218_2091007.shtml" + }, "importedCase": { - "ID": "000-2-11904", - "city": "Suizhou City", + "ID": "000-2-18700", + "city": "Wuhan City", "province": "Hubei", "country": "China", - "date_confirmation": "06.02.2020", + "date_confirmation": "17.02.2020", "chronic_disease_binary": "False", - "admin_id": "8400.0" + "admin_id": "9390.0" } }, { "location": { - "country": "Egypt", + "country": "South Africa", "geometry": { - "latitude": 26.667959999999997, - "longitude": 29.77867 + "latitude": -29.122, + "longitude": 25.031470000000002 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -301,10 +379,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-01T00:00:00Z" + "$date": "2020-05-07T00:00:00Z" }, "end": { - "$date": "2020-05-01T00:00:00Z" + "$date": "2020-05-07T00:00:00Z" } } } @@ -312,20 +390,15 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/" - }, - { - "other": "daily totals confirmed on https://www.worldometers.info/coronavirus/" - } - ], + "caseReference": { + "sourceUrl": "github.com/dsfsi/covid19za" + }, "importedCase": { - "ID": "001-13766", - "country": "Egypt", - "date_confirmation": "01.05.2020", + "ID": "001-23950", + "country": "South Africa", + "date_confirmation": "07.05.2020", "chronic_disease_binary": "False", - "admin_id": "66.0", + "admin_id": "207.0", "travel_history_binary": "False" } }, @@ -336,6 +409,7 @@ "latitude": 26.667959999999997, "longitude": 29.77867 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -343,10 +417,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-23T00:00:00Z" + "$date": "2020-06-03T00:00:00Z" }, "end": { - "$date": "2020-05-23T00:00:00Z" + "$date": "2020-06-03T00:00:00Z" } } } @@ -354,30 +428,38 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/" - }, - { - "other": "daily totals confirmed on https://www.worldometers.info/coronavirus/" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/", + "additionalSources": [ + { + "sourceUrl": "daily totals confirmed on https://www.worldometers.info/coronavirus/" + } + ] + }, "importedCase": { - "ID": "001-34696", + "ID": "001-48275", "country": "Egypt", - "date_confirmation": "23.05.2020", + "date_confirmation": "03.06.2020", "chronic_disease_binary": "False", "admin_id": "66.0", "travel_history_binary": "False" } }, { + "demographics": { + "ageRange": { + "start": 64.0, + "end": 64.0 + }, + "sex": "Female" + }, "location": { - "country": "India", + "country": "Philippines", "geometry": { - "latitude": 31.532380000000046, - "longitude": 75.90799000000004 + "latitude": 9.333330000000046, + "longitude": 123.66667000000007 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -385,37 +467,28 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-02T00:00:00Z" + "$date": "2020-06-08T00:00:00Z" }, "end": { - "$date": "2020-05-02T00:00:00Z" + "$date": "2020-06-08T00:00:00Z" } } - }, - { - "name": "Hospitalized" } ], "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "TR" - } + "revisionNumber": 0 + }, + "notes": "C960191", + "caseReference": { + "sourceUrl": "PH Data Drop" }, - "sources": [ - { - "url": "https://twitter.com/kbssidhu1961/status/1256564562511294464" - } - ], "importedCase": { - "ID": "002-103628", - "city": "Hoshiarpur", - "province": "Punjab", - "country": "India", - "date_confirmation": "02.05.2020", + "ID": "002-113677", + "province": "Cebu Province", + "country": "Philippines", + "date_confirmation": "08.06.2020", "chronic_disease_binary": "False", - "outcome": "Hospitalized", - "admin_id": "12396.0", + "admin_id": "14108.0", "travel_history_binary": "False" } }, @@ -426,6 +499,7 @@ "latitude": 18.940170000000023, "longitude": 72.83483000000007 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -433,10 +507,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-07T00:00:00Z" + "$date": "2020-05-05T00:00:00Z" }, "end": { - "$date": "2020-05-07T00:00:00Z" + "$date": "2020-05-05T00:00:00Z" } } }, @@ -450,17 +524,15 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://twitter.com/rajeshtope11/status/1258456341321932801" - } - ], + "caseReference": { + "sourceUrl": "https://covid19-phdmah.hub.arcgis.com/" + }, "importedCase": { - "ID": "002-124558", + "ID": "002-138000", "city": "Mumbai", "province": "Maharashtra", "country": "India", - "date_confirmation": "07.05.2020", + "date_confirmation": "05.05.2020", "chronic_disease_binary": "False", "outcome": "Hospitalized", "admin_id": "10992.0", @@ -474,6 +546,7 @@ "latitude": 18.940170000000023, "longitude": 72.83483000000007 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -481,10 +554,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-12T00:00:00Z" + "$date": "2020-05-11T00:00:00Z" }, "end": { - "$date": "2020-05-12T00:00:00Z" + "$date": "2020-05-11T00:00:00Z" } } }, @@ -498,17 +571,15 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://twitter.com/ANI/status/1260230293786488832?s=20" - } - ], + "caseReference": { + "sourceUrl": "https://t.me/indiacovid/4560" + }, "importedCase": { - "ID": "002-145488", + "ID": "002-162325", "city": "Mumbai", "province": "Maharashtra", "country": "India", - "date_confirmation": "12.05.2020", + "date_confirmation": "11.05.2020", "chronic_disease_binary": "False", "outcome": "Hospitalized", "admin_id": "10992.0", @@ -519,9 +590,10 @@ "location": { "country": "India", "geometry": { - "latitude": 23.027760000000058, - "longitude": 72.60027000000008 + "latitude": 21.185780000000022, + "longitude": 72.83679000000006 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -546,21 +618,18 @@ "curator": "TR" } }, - "notes": "6587 Test done one Vegetable Seller,Milk Daily Vendor,Medical Store Vendor,Begger within week and found positive", - "sources": [ - { - "url": "https://twitter.com/PIBAhmedabad/status/1261669285484793857" - } - ], + "caseReference": { + "sourceUrl": "https://twitter.com/PIBAhmedabad/status/1261669285484793857" + }, "importedCase": { - "ID": "002-166417", - "city": "Ahmedabad", + "ID": "002-186650", + "city": "Surat", "province": "Gujarat", "country": "India", "date_confirmation": "16.05.2020", "chronic_disease_binary": "False", "outcome": "Hospitalized", - "admin_id": "11047.0", + "admin_id": "11037.0", "travel_history_binary": "False" } }, @@ -571,6 +640,7 @@ "latitude": 19.03681000000006, "longitude": 73.01582000000008 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -586,7 +656,7 @@ } }, { - "name": "Hospitalized" + "name": "Recovered" } ], "revisionMetadata": { @@ -596,12 +666,12 @@ } }, "importedCase": { - "ID": "002-187347", + "ID": "002-210974", "province": "Maharashtra", "country": "India", "date_confirmation": "19.05.2020", "chronic_disease_binary": "False", - "outcome": "Hospitalized", + "outcome": "Recovered", "admin_id": "10997.0", "travel_history_binary": "False" } @@ -610,9 +680,10 @@ "location": { "country": "India", "geometry": { - "latitude": 19.995030000000042, - "longitude": 73.79647000000006 + "latitude": 23.027760000000058, + "longitude": 72.60027000000008 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -620,15 +691,15 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-21T00:00:00Z" + "$date": "2020-05-22T00:00:00Z" }, "end": { - "$date": "2020-05-21T00:00:00Z" + "$date": "2020-05-22T00:00:00Z" } } }, { - "name": "Hospitalized" + "name": "Recovered" } ], "revisionMetadata": { @@ -637,15 +708,18 @@ "curator": "TR" } }, + "caseReference": { + "sourceUrl": "https://www.deshgujarat.com/2020/05/22/gujarat-covid19-cases-update/" + }, "importedCase": { - "ID": "002-208276", - "city": "Nashik", - "province": "Maharashtra", + "ID": "002-235299", + "city": "Ahmedabad", + "province": "Gujarat", "country": "India", - "date_confirmation": "21.05.2020", + "date_confirmation": "22.05.2020", "chronic_disease_binary": "False", - "outcome": "Hospitalized", - "admin_id": "12305.0", + "outcome": "Recovered", + "admin_id": "11047.0", "travel_history_binary": "False" } }, @@ -653,9 +727,10 @@ "location": { "country": "India", "geometry": { - "latitude": 30.15483757800007, - "longitude": 79.20756428100003 + "latitude": 13.083620000000053, + "longitude": 80.28252000000003 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -663,15 +738,15 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-24T00:00:00Z" + "$date": "2020-05-25T00:00:00Z" }, "end": { - "$date": "2020-05-24T00:00:00Z" + "$date": "2020-05-25T00:00:00Z" } } }, { - "name": "Hospitalized" + "name": "Recovered" } ], "revisionMetadata": { @@ -680,19 +755,18 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://twitter.com/ANI/status/1264494948105064451" - } - ], + "caseReference": { + "sourceUrl": "https://stopcorona.tn.gov.in/wp-content/uploads/2020/03/Media-Bulletin-25-05-20-COVID-19-6-PM.pdf" + }, "importedCase": { - "ID": "002-229205", - "province": "Uttarakhand", + "ID": "002-259623", + "city": "Chennai", + "province": "Tamil Nadu", "country": "India", - "date_confirmation": "24.05.2020", + "date_confirmation": "25.05.2020", "chronic_disease_binary": "False", - "outcome": "Hospitalized", - "admin_id": "11098.0", + "outcome": "Recovered", + "admin_id": "11023.0", "travel_history_binary": "False" } }, @@ -700,9 +774,10 @@ "location": { "country": "India", "geometry": { - "latitude": 18.504220000000032, - "longitude": 73.85302000000007 + "latitude": 20.826760000000036, + "longitude": 71.04510000000005 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -710,10 +785,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-26T00:00:00Z" + "$date": "2020-05-28T00:00:00Z" }, "end": { - "$date": "2020-05-26T00:00:00Z" + "$date": "2020-05-28T00:00:00Z" } } }, @@ -727,20 +802,18 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://t.me/indiacovid/5601" - } - ], + "caseReference": { + "sourceUrl": "mohfw.gov.in" + }, "importedCase": { - "ID": "002-250134", - "city": "Pune", - "province": "Maharashtra", + "ID": "002-283948", + "city": "Unassigned", + "province": "State Unassigned", "country": "India", - "date_confirmation": "26.05.2020", + "date_confirmation": "28.05.2020", "chronic_disease_binary": "False", "outcome": "Hospitalized", - "admin_id": "10986.0", + "admin_id": "12668.0", "travel_history_binary": "False" } }, @@ -748,9 +821,10 @@ "location": { "country": "India", "geometry": { - "latitude": 19.200000000000045, - "longitude": 72.96667000000008 + "latitude": 18.940170000000023, + "longitude": 72.83483000000007 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -758,10 +832,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-28T00:00:00Z" + "$date": "2020-05-29T00:00:00Z" }, "end": { - "$date": "2020-05-28T00:00:00Z" + "$date": "2020-05-29T00:00:00Z" } } }, @@ -775,31 +849,29 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://phdmah.maps.arcgis.com/apps/opsdashboard/index.html#/2cc0055832264c5296890745e9ea415c" - } - ], + "caseReference": { + "sourceUrl": "https://arogya.maharashtra.gov.in/pdf/ncovidepressnotemay29.pdf" + }, "importedCase": { - "ID": "002-271064", - "city": "Thane", + "ID": "002-308271", + "city": "Mumbai", "province": "Maharashtra", "country": "India", - "date_confirmation": "28.05.2020", + "date_confirmation": "29.05.2020", "chronic_disease_binary": "False", "outcome": "Recovered", - "admin_id": "11099.0", + "admin_id": "10992.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "Haryana", "country": "India", "geometry": { - "latitude": 28.456, - "longitude": 77.029 + "latitude": 19.200000000000045, + "longitude": 72.96667000000008 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -807,15 +879,15 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-30T00:00:00Z" + "$date": "2020-05-31T00:00:00Z" }, "end": { - "$date": "2020-05-30T00:00:00Z" + "$date": "2020-05-31T00:00:00Z" } } }, { - "name": "Hospitalized" + "name": "Recovered" } ], "revisionMetadata": { @@ -824,20 +896,18 @@ "curator": "TR" } }, - "sources": [ - { - "url": "http://www.nhmharyana.gov.in/WriteReadData/userfiles/file/CoronaVirus/Bulletin%20of%20COVID%2019%20as%20on%2030-05-20%20Evening.pdf" - } - ], + "caseReference": { + "sourceUrl": "https://arogya.maharashtra.gov.in/pdf/ncovidepressnotemay31.pdf" + }, "importedCase": { - "ID": "002-291995", - "city": "Gurugram", - "province": "Haryana", + "ID": "002-332596", + "city": "Thane", + "province": "Maharashtra", "country": "India", - "date_confirmation": "30.05.2020", + "date_confirmation": "31.05.2020", "chronic_disease_binary": "False", - "outcome": "Hospitalized", - "admin_id": "3855.0", + "outcome": "Recovered", + "admin_id": "11099.0", "travel_history_binary": "False" } }, @@ -845,9 +915,10 @@ "location": { "country": "India", "geometry": { - "latitude": 10.510820000000024, - "longitude": 76.21121000000005 + "latitude": 19.03681000000006, + "longitude": 73.01582000000008 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -855,10 +926,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-06-01T00:00:00Z" + "$date": "2020-04-26T00:00:00Z" }, "end": { - "$date": "2020-06-01T00:00:00Z" + "$date": "2020-04-26T00:00:00Z" } } }, @@ -872,30 +943,35 @@ "curator": "TR" } }, - "sources": [ - { - "url": "http://dhs.kerala.gov.in/wp-content/uploads/2020/06/Daily-Bulletin-HFWD-English-June-1.pdf" - } - ], + "caseReference": { + "sourceUrl": "https://twitter.com/ANI/status/1254410536969809922" + }, "importedCase": { - "ID": "002-312923", - "city": "Thrissur", - "province": "Kerala", + "ID": "002-47997", + "province": "Maharashtra", "country": "India", - "date_confirmation": "01.06.2020", + "date_confirmation": "26.04.2020", "chronic_disease_binary": "False", "outcome": "Hospitalized", - "admin_id": "10970.0", + "admin_id": "10997.0", "travel_history_binary": "False" } }, { + "demographics": { + "ageRange": { + "start": 30.0, + "end": 30.0 + }, + "sex": "Female" + }, "location": { "country": "India", "geometry": { - "latitude": 19.03681000000006, - "longitude": 73.01582000000008 + "latitude": 12.682240000000036, + "longitude": 79.98008000000004 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -903,10 +979,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-23T00:00:00Z" + "$date": "2020-05-21T00:00:00Z" }, "end": { - "$date": "2020-04-23T00:00:00Z" + "$date": "2020-05-21T00:00:00Z" } } }, @@ -920,174 +996,72 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://twitter.com/ANI/status/1253342199225307136" - } - ], + "caseReference": { + "sourceUrl": "https://stopcorona.tn.gov.in/wp-content/uploads/2020/03/Media-Bulletin-21-05-20-COVID-19-6-PM.pdf" + }, "importedCase": { - "ID": "002-43805", - "province": "Maharashtra", + "ID": "002-72321", + "city": "Chengalpattu", + "province": "Tamil Nadu", "country": "India", - "date_confirmation": "23.04.2020", + "date_confirmation": "21.05.2020", "chronic_disease_binary": "False", "outcome": "Hospitalized", - "admin_id": "10997.0", + "admin_id": "12555.0", "travel_history_binary": "False" } }, { "location": { - "country": "India", + "administrativeAreaLevel2": "Nanyang City", + "administrativeAreaLevel1": "Henan", + "country": "China", "geometry": { - "latitude": 28.39247000000006, - "longitude": 77.31276000000008 + "latitude": 33.04534, + "longitude": 112.2833 }, - "geoResolution": "Point" + "name": "Henan, Nanyang City", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-15T00:00:00Z" + "$date": "2020-02-03T00:00:00Z" }, "end": { - "$date": "2020-05-15T00:00:00Z" + "$date": "2020-02-03T00:00:00Z" } } - }, - { - "name": "Hospitalized" } ], "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "TR" - } + "revisionNumber": 0 }, - "sources": [ - { - "url": "http://www.nhmharyana.gov.in/WriteReadData/userfiles/file/CoronaVirus/Evening%20Bulletin%2015-05-2020.pdf" - } - ], - "importedCase": { - "ID": "002-64737", - "city": "Faridabad", - "province": "Haryana", - "country": "India", - "date_confirmation": "15.05.2020", - "chronic_disease_binary": "False", - "outcome": "Hospitalized", - "admin_id": "11050.0", - "travel_history_binary": "False" - } - }, - { - "location": { - "country": "India", - "geometry": { - "latitude": 17.332740000000058, - "longitude": 76.84035000000006 - }, - "geoResolution": "Point" - }, - "events": [ - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-05-29T00:00:00Z" - }, - "end": { - "$date": "2020-05-29T00:00:00Z" - } - } - }, - { - "name": "Recovered" - } - ], - "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "TR" - } - }, - "sources": [ - { - "url": "https://twitter.com/DHFWKA/status/1266343452779745280" - } - ], - "importedCase": { - "ID": "002-85667", - "city": "Kalaburagi", - "province": "Karnataka", - "country": "India", - "date_confirmation": "29.05.2020", - "chronic_disease_binary": "False", - "outcome": "Recovered", - "admin_id": "10995.0", - "travel_history_binary": "False" - } - }, - { - "demographics": { - "ageRange": { - "start": 50.0, - "end": 59.0 - }, - "sex": "Female" - }, - "location": { - "country": "Belgium", - "geometry": { - "latitude": 50.99142331000007, - "longitude": 5.429156289000048 - }, - "geoResolution": "Point" - }, - "events": [ - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-05-02T00:00:00Z" - }, - "end": { - "$date": "2020-05-02T00:00:00Z" - } - } - } - ], - "revisionMetadata": { - "revisionNumber": 0 + "caseReference": { + "sourceUrl": "https://m.weibo.cn/status/4468161329843481" }, - "sources": [ - { - "url": "https://epistat.wiv-isp.be/Covid/" - } - ], "importedCase": { - "ID": "003-106599", - "city": "Limburg", - "province": "Flanders", - "country": "Belgium", - "date_confirmation": "02.05.2020", + "ID": "002-9665", + "city": "Nanyang City", + "province": "Henan", + "country": "China", + "date_confirmation": "03.02.2020", "chronic_disease_binary": "False", - "admin_id": "11422.0", - "travel_history_binary": "False" + "admin_id": "6480.0", + "travel_history_binary": "True" } }, { "location": { - "administrativeAreaLevel1": "Carinthia", - "country": "Austria", + "administrativeAreaLevel1": "Catalonia", + "country": "Spain", "geometry": { - "latitude": 46.7222, - "longitude": 14.1806 + "latitude": 41.803774100000005, + "longitude": 1.530937 }, + "name": "Catalonia", "geoResolution": "Admin1" }, "events": [ @@ -1095,10 +1069,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-23T00:00:00Z" + "$date": "2020-03-22T00:00:00Z" }, "end": { - "$date": "2020-03-23T00:00:00Z" + "$date": "2020-03-22T00:00:00Z" } } } @@ -1109,42 +1083,40 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://www.sozialministerium.at/Informationen-zum-Coronavirus/Neuartiges-Coronavirus-(2019-nCov).html" - } - ], + "caseReference": { + "sourceUrl": "https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Spain" + }, "importedCase": { - "ID": "003-29718", - "province": "Carinthia", - "country": "Austria", - "date_confirmation": "23.03.2020", + "ID": "003-23162", + "province": "Catalonia", + "country": "Spain", + "date_confirmation": "22.03.2020", "chronic_disease_binary": "False", - "admin_id": "346.0", + "admin_id": "354.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel3": "Derby", - "administrativeAreaLevel2": "Derbyshire", + "administrativeAreaLevel2": "Staffordshire", "administrativeAreaLevel1": "England", "country": "United Kingdom", "geometry": { - "latitude": 52.916667000000004, - "longitude": -1.466667 + "latitude": 52.833332999999996, + "longitude": -2.0 }, - "geoResolution": "Admin3" + "name": "England, Staffordshire", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-27T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" }, "end": { - "$date": "2020-03-27T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" } } } @@ -1152,36 +1124,35 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://www.arcgis.com/apps/opsdashboard/index.html#/f94c3c90da5b4e9f9a0b19484dd4bb14" - } - ], + "caseReference": { + "sourceUrl": "https://www.arcgis.com/apps/opsdashboard/index.html#/f94c3c90da5b4e9f9a0b19484dd4bb14" + }, "importedCase": { - "ID": "003-50648", - "city": "Derby,Derbyshire", + "ID": "003-47489", + "city": "Staffordshire", "province": "England", "country": "United Kingdom", - "date_confirmation": "27.03.2020", + "date_confirmation": "25.03.2020", "chronic_disease_binary": "False", - "admin_id": "2757.0", + "admin_id": "8305.0", "travel_history_binary": "False" } }, { "demographics": { "ageRange": { - "start": 80.0, - "end": 89.0 + "start": 50.0, + "end": 59.0 }, - "sex": "Male" + "sex": "Female" }, "location": { "country": "Belgium", "geometry": { - "latitude": 50.87268300100004, - "longitude": 4.590656390000049 + "latitude": 51.222120000000075, + "longitude": 4.397690000000068 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -1189,10 +1160,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-25T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" }, "end": { - "$date": "2020-03-25T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" } } } @@ -1200,36 +1171,35 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://epistat.wiv-isp.be/Covid/" - } - ], + "caseReference": { + "sourceUrl": "https://epistat.wiv-isp.be/Covid/" + }, "importedCase": { - "ID": "003-71578", - "city": "Vlaams Brabant", + "ID": "003-71812", + "city": "Antwerpen", "province": "Flanders", "country": "Belgium", - "date_confirmation": "25.03.2020", + "date_confirmation": "26.03.2020", "chronic_disease_binary": "False", - "admin_id": "11415.0", + "admin_id": "11417.0", "travel_history_binary": "False" } }, { "demographics": { "ageRange": { - "start": 70.0, - "end": 79.0 + "start": 60.0, + "end": 69.0 }, - "sex": "Female" + "sex": "Male" }, "location": { "country": "Belgium", "geometry": { - "latitude": 50.64549000000005, - "longitude": 5.572500000000048 + "latitude": 50.99142331000007, + "longitude": 5.429156289000048 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -1237,10 +1207,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-11T00:00:00Z" + "$date": "2020-04-15T00:00:00Z" }, "end": { - "$date": "2020-04-11T00:00:00Z" + "$date": "2020-04-15T00:00:00Z" } } } @@ -1248,58 +1218,56 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://epistat.wiv-isp.be/Covid/" - } - ], + "caseReference": { + "sourceUrl": "https://epistat.wiv-isp.be/Covid/" + }, "importedCase": { - "ID": "003-92507", - "city": "Liege", - "province": "Wallonia", + "ID": "003-96137", + "city": "Limburg", + "province": "Flanders", "country": "Belgium", - "date_confirmation": "11.04.2020", + "date_confirmation": "15.04.2020", "chronic_disease_binary": "False", - "admin_id": "11421.0", + "admin_id": "11422.0", "travel_history_binary": "False" } }, { "demographics": { "ageRange": { - "start": 41.0, - "end": 41.0 + "start": 39.0, + "end": 39.0 }, "sex": "Male" }, "location": { - "country": "Mexico", "geometry": { - "latitude": 19.431940000000054, - "longitude": -99.13314999999994 + "latitude": 20.566667000000002, + "longitude": -103.68333299999999 }, - "geoResolution": "Point" + "name": "", + "geoResolution": "Admin1" }, "events": [ { - "name": "confirmed", + "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-04-06T00:00:00Z" + "$date": "2020-03-29T00:00:00Z" }, "end": { - "$date": "2020-04-06T00:00:00Z" + "$date": "2020-03-29T00:00:00Z" } } }, { - "name": "onsetSymptoms", + "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-24T00:00:00Z" + "$date": "2020-04-09T00:00:00Z" }, "end": { - "$date": "2020-03-24T00:00:00Z" + "$date": "2020-04-09T00:00:00Z" } } } @@ -1308,51 +1276,36 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "004-23437", - "province": "Ciudad de Mexico", + "ID": "004-30461", + "province": "Jalisco", "country": "Mexico", - "date_onset_symptoms": "24.03.2020", - "date_confirmation": "06.04.2020", + "date_onset_symptoms": "29.03.2020", + "date_confirmation": "09.04.2020", "chronic_disease_binary": "False", - "admin_id": "13753.0", - "travel_history_binary": "True" + "admin_id": "501.0", + "travel_history_binary": "False" } }, { - "demographics": { - "ageRange": { - "start": 24.0, - "end": 24.0 - }, - "sex": "Female" - }, "location": { + "administrativeAreaLevel1": "Illinois", + "country": "United States", "geometry": { - "latitude": 19.433332999999998, - "longitude": -98.166667 + "latitude": 41.8781, + "longitude": -87.6298 }, - "geoResolution": "Admin1" + "name": "Illinois", + "geoResolution": "Point" }, "events": [ - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-04-05T00:00:00Z" - }, - "end": { - "$date": "2020-04-05T00:00:00Z" - } - } - }, { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-12T00:00:00Z" + "$date": "2020-03-22T00:00:00Z" }, "end": { - "$date": "2020-04-12T00:00:00Z" + "$date": "2020-03-22T00:00:00Z" } } } @@ -1360,36 +1313,41 @@ "revisionMetadata": { "revisionNumber": 0 }, + "caseReference": { + "sourceUrl": "http://www.dph.illinois.gov/topics-services/diseases-and-conditions/diseases-a-z-list/coronavirus" + }, "importedCase": { - "ID": "004-44367", - "province": "Tlaxcala", - "country": "Mexico", - "date_onset_symptoms": "05.04.2020", - "date_confirmation": "12.04.2020", + "ID": "005-14468", + "city": "Chicago", + "province": "Illinois", + "country": "United States", + "date_confirmation": "22.03.2020", "chronic_disease_binary": "False", - "admin_id": "871.0", + "admin_id": "2232.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "Georgia", + "administrativeAreaLevel2": "Cook County", + "administrativeAreaLevel1": "Illinois", "country": "United States", "geometry": { - "latitude": 32.6758789, - "longitude": -83.455974 + "latitude": 41.843684, + "longitude": -87.816737 }, - "geoResolution": "Admin1" + "name": "Illinois, Cook County", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-24T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" }, "end": { - "$date": "2020-03-24T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" } } } @@ -1397,40 +1355,41 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://dph.georgia.gov/covid-19-daily-status-report" - } - ], + "caseReference": { + "sourceUrl": "http://www.dph.illinois.gov/topics-services/diseases-and-conditions/diseases-a-z-list/coronavirus" + }, "importedCase": { - "ID": "005-24979", - "province": "Georgia", + "ID": "005-38804", + "city": "Cook County", + "province": "Illinois", "country": "United States", - "date_confirmation": "24.03.2020", + "date_confirmation": "26.03.2020", "chronic_disease_binary": "False", - "admin_id": "442.0", + "admin_id": "2446.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "Vermont", + "administrativeAreaLevel2": "Orange County", + "administrativeAreaLevel1": "New York", "country": "United States", "geometry": { - "latitude": 44.0842428, - "longitude": -72.662174 + "latitude": 41.4022111, + "longitude": -74.305756 }, - "geoResolution": "Admin1" + "name": "New York, Orange County", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-26T00:00:00Z" + "$date": "2020-03-21T00:00:00Z" }, "end": { - "$date": "2020-03-26T00:00:00Z" + "$date": "2020-03-21T00:00:00Z" } } } @@ -1438,18 +1397,17 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://www.healthvermont.gov/response/infectious-disease/2019-novel-coronavirus" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.health.ny.gov/county-county-breakdown-positive-cases" + }, "importedCase": { - "ID": "005-45908", - "province": "Vermont", + "ID": "006-10920", + "city": "Orange County", + "province": "New York", "country": "United States", - "date_confirmation": "26.03.2020", + "date_confirmation": "21.03.2020", "chronic_disease_binary": "False", - "admin_id": "914.0", + "admin_id": "6788.0", "travel_history_binary": "False" } }, @@ -1458,20 +1416,21 @@ "administrativeAreaLevel1": "New York", "country": "United States", "geometry": { - "latitude": 40.661, - "longitude": -73.944 + "latitude": 43.0140874, + "longitude": -75.646457 }, - "geoResolution": "Point" + "name": "New York", + "geoResolution": "Admin1" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-18T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" }, "end": { - "$date": "2020-03-18T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" } } } @@ -1479,30 +1438,27 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://coronavirus.health.ny.gov/county-county-breakdown-positive-cases" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.health.ny.gov/county-county-breakdown-positive-cases" + }, "importedCase": { - "ID": "006-1463", - "city": "New York City", + "ID": "006-35245", "province": "New York", "country": "United States", - "date_confirmation": "18.03.2020", + "date_confirmation": "26.03.2020", "chronic_disease_binary": "False", - "admin_id": "6555.0", + "admin_id": "658.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "New York", - "country": "United States", + "country": "Spain", "geometry": { - "latitude": 40.661, - "longitude": -73.944 + "latitude": 40.41955000000007, + "longitude": -3.6919599999999377 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -1510,41 +1466,41 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-19T00:00:00Z" + "$date": "2020-03-24T00:00:00Z" }, "end": { - "$date": "2020-03-19T00:00:00Z" + "$date": "2020-03-24T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0 - }, - "sources": [ - { - "url": "https://coronavirus.health.ny.gov/county-county-breakdown-positive-cases" + "revisionNumber": 0, + "creationMetadata": { + "curator": "TR" } - ], + }, + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "006-3556", - "city": "New York City", - "province": "New York", - "country": "United States", - "date_confirmation": "19.03.2020", + "ID": "007-1002481", + "province": "Madrid", + "country": "Spain", + "date_confirmation": "24.03.2020", "chronic_disease_binary": "False", - "admin_id": "6555.0", + "admin_id": "583.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "New York", - "country": "United States", + "country": "Spain", "geometry": { - "latitude": 40.661, - "longitude": -73.944 + "latitude": 40.41955000000007, + "longitude": -3.6919599999999377 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -1552,30 +1508,30 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-21T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" }, "end": { - "$date": "2020-03-21T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0 - }, - "sources": [ - { - "url": "https://coronavirus.health.ny.gov/county-county-breakdown-positive-cases" + "revisionNumber": 0, + "creationMetadata": { + "curator": "TR" } - ], + }, + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "006-9402", - "city": "New York City", - "province": "New York", - "country": "United States", - "date_confirmation": "21.03.2020", + "ID": "007-1026806", + "province": "Madrid", + "country": "Spain", + "date_confirmation": "05.04.2020", "chronic_disease_binary": "False", - "admin_id": "6555.0", + "admin_id": "583.0", "travel_history_binary": "False" } }, @@ -1590,9 +1546,10 @@ "location": { "country": "Germany", "geometry": { - "latitude": 49.71795000000003, - "longitude": 11.060560000000066 + "latitude": 49.30069000000003, + "longitude": 10.572080000000028 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -1600,10 +1557,10 @@ "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-03-26T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" }, "end": { - "$date": "2020-03-26T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" } } }, @@ -1611,10 +1568,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-29T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" }, "end": { - "$date": "2020-03-29T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" } } } @@ -1623,146 +1580,79 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-102033", - "city": "Forchheim", + "ID": "007-105113", + "city": "Ansbach", "province": "Bayern", "country": "Germany", - "date_onset_symptoms": "26.03.2020", - "date_confirmation": "29.03.2020", + "date_onset_symptoms": "25.03.2020", + "date_confirmation": "25.03.2020", "chronic_disease_binary": "False", - "admin_id": "11561.0", + "admin_id": "11566.0", "travel_history_binary": "False" } }, { - "demographics": { - "ageRange": { - "start": 60.0, - "end": 79.0 - }, - "sex": "Female" - }, "location": { - "country": "Germany", + "administrativeAreaLevel1": "Pais Vasco", + "country": "Spain", "geometry": { - "latitude": 49.47317000000004, - "longitude": 10.990650000000073 + "latitude": 43.04468920000001, + "longitude": -2.6168503 }, - "geoResolution": "Point" + "name": "Pais Vasco", + "geoResolution": "Admin1" }, "events": [ - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-04-05T00:00:00Z" - }, - "end": { - "$date": "2020-04-05T00:00:00Z" - } - } - }, { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-05T00:00:00Z" + "$date": "2020-04-25T00:00:00Z" }, "end": { - "$date": "2020-04-05T00:00:00Z" + "$date": "2020-04-25T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0 - }, - "importedCase": { - "ID": "007-104126", - "city": "Furth", - "province": "Bayern", - "country": "Germany", - "date_onset_symptoms": "05.04.2020", - "date_confirmation": "05.04.2020", - "chronic_disease_binary": "False", - "admin_id": "11568.0", - "travel_history_binary": "False" - } - }, - { - "demographics": { - "ageRange": { - "start": 35.0, - "end": 59.0 - }, - "sex": "Female" - }, - "location": { - "country": "Germany", - "geometry": { - "latitude": 49.491667696000036, - "longitude": 11.369378423000057 - }, - "geoResolution": "Point" - }, - "events": [ - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-03-29T00:00:00Z" - }, - "end": { - "$date": "2020-03-29T00:00:00Z" - } - } - }, - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-04-01T00:00:00Z" - }, - "end": { - "$date": "2020-04-01T00:00:00Z" - } - } + "revisionNumber": 0, + "creationMetadata": { + "curator": "TR" } - ], - "revisionMetadata": { - "revisionNumber": 0 + }, + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" }, "importedCase": { - "ID": "007-106219", - "city": "Nurnberger Land", - "province": "Bayern", - "country": "Germany", - "date_onset_symptoms": "29.03.2020", - "date_confirmation": "01.04.2020", + "ID": "007-1075455", + "province": "Pais Vasco", + "country": "Spain", + "date_confirmation": "25.04.2020", "chronic_disease_binary": "False", - "admin_id": "11573.0", + "admin_id": "717.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "La Rioja", - "country": "Spain", + "country": "Austria", "geometry": { - "latitude": 42.275643200000005, - "longitude": -2.5175644 + "latitude": 47.30796174000005, + "longitude": 13.267656657000032 }, - "geoResolution": "Admin1" + "name": "", + "geoResolution": "Point" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-19T00:00:00Z" + "$date": "2020-04-08T00:00:00Z" }, "end": { - "$date": "2020-04-19T00:00:00Z" + "$date": "2020-04-08T00:00:00Z" } } } @@ -1773,39 +1663,40 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://github.com/statistikat/coronaDAT/raw/master/archive/20200408/data/20200408_230000.rds" + }, "importedCase": { - "ID": "007-1083119", - "province": "La Rioja", - "country": "Spain", - "date_confirmation": "19.04.2020", + "ID": "007-1099780", + "city": "Sankt Johann im Pongau", + "province": "Salzburg", + "country": "Austria", + "date_confirmation": "08.04.2020", "chronic_disease_binary": "False", - "admin_id": "548.0", + "admin_id": "12151.0", "travel_history_binary": "False" } }, { "location": { - "country": "Austria", + "administrativeAreaLevel1": "Stockholm", + "country": "Sweden", "geometry": { - "latitude": 47.066670000000045, - "longitude": 15.433330000000069 + "latitude": 59.6025, + "longitude": 18.1384 }, - "geoResolution": "Point" + "name": "Stockholm", + "geoResolution": "Admin1" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-15T00:00:00Z" + "$date": "2020-05-13T00:00:00Z" }, "end": { - "$date": "2020-04-15T00:00:00Z" + "$date": "2020-05-13T00:00:00Z" } } } @@ -1816,58 +1707,58 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://github.com/statistikat/coronaDAT/raw/master/archive/20200415/data/20200415_230000.rds" - } - ], + "caseReference": { + "sourceUrl": "https://www.folkhalsomyndigheten.se/smittskydd-beredskap/utbrott/aktuella-utbrott/covid-19/bekraftade-fall-i-sverige" + }, "importedCase": { - "ID": "007-1104048", - "city": "Graz(Stadt)", - "province": "Styria", - "country": "Austria", - "date_confirmation": "15.04.2020", + "ID": "007-1124102", + "province": "Stockholm", + "country": "Sweden", + "date_confirmation": "13.05.2020", "chronic_disease_binary": "False", - "admin_id": "12125.0", + "admin_id": "845.0", "travel_history_binary": "False" } }, { "demographics": { "ageRange": { - "start": 15.0, - "end": 34.0 + "start": 35.0, + "end": 59.0 }, "sex": "Male" }, "location": { + "administrativeAreaLevel2": "Mansfeld-Sudharz", + "administrativeAreaLevel1": "Sachsen-Anhalt", "country": "Germany", "geometry": { - "latitude": 52.46991999105596, - "longitude": 13.368389936090363 + "latitude": 51.53589, + "longitude": 11.35641 }, - "geoResolution": "Point" + "name": "Sachsen-Anhalt, Mansfeld-Sudharz", + "geoResolution": "Admin2" }, "events": [ { - "name": "confirmed", + "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-03-26T00:00:00Z" + "$date": "2020-03-18T00:00:00Z" }, "end": { - "$date": "2020-03-26T00:00:00Z" + "$date": "2020-03-18T00:00:00Z" } } }, { - "name": "onsetSymptoms", + "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-17T00:00:00Z" + "$date": "2020-03-21T00:00:00Z" }, "end": { - "$date": "2020-03-17T00:00:00Z" + "$date": "2020-03-21T00:00:00Z" } } } @@ -1876,31 +1767,25 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-117344", - "city": "Berlin Tempelhof-Schoneberg", - "province": "Berlin", + "ID": "007-127500", + "city": "Mansfeld-Sudharz", + "province": "Sachsen-Anhalt", "country": "Germany", - "date_onset_symptoms": "17.03.2020", - "date_confirmation": "26.03.2020", + "date_onset_symptoms": "18.03.2020", + "date_confirmation": "21.03.2020", "chronic_disease_binary": "False", - "admin_id": "11615.0", + "admin_id": "5939.0", "travel_history_binary": "False" } }, { - "demographics": { - "ageRange": { - "start": 25.0, - "end": 25.0 - }, - "sex": "Male" - }, "location": { - "country": "Czech Republic", + "country": "Spain", "geometry": { - "latitude": 50.07913000000008, - "longitude": 14.433020000000056 + "latitude": 35.88999000000007, + "longitude": -5.317839999999933 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -1908,68 +1793,54 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-29T00:00:00Z" + "$date": "2020-04-16T00:00:00Z" }, "end": { - "$date": "2020-04-29T00:00:00Z" + "$date": "2020-04-16T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0 - }, - "sources": [ - { - "url": "https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19" + "revisionNumber": 0, + "creationMetadata": { + "curator": "TR" } - ], + }, + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "007-138274", - "province": "Prague", - "country": "Czech Republic", - "date_confirmation": "29.04.2020", + "ID": "007-151825", + "province": "Ceuta", + "country": "Spain", + "date_confirmation": "16.04.2020", "chronic_disease_binary": "False", - "admin_id": "11672.0", + "admin_id": "12078.0", "travel_history_binary": "False" } }, { - "demographics": { - "ageRange": { - "start": 35.0, - "end": 59.0 - }, - "sex": "Male" - }, "location": { - "country": "Germany", + "administrativeAreaLevel2": "Cremona", + "administrativeAreaLevel1": "Lombardia", + "country": "Italy", "geometry": { - "latitude": 53.24088033500004, - "longitude": 7.478432309000027 + "latitude": 45.220890000000004, + "longitude": 9.994373 }, - "geoResolution": "Point" + "name": "Lombardia, Cremona", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-22T00:00:00Z" - }, - "end": { - "$date": "2020-05-22T00:00:00Z" - } - } - }, - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-05-20T00:00:00Z" + "$date": "2020-05-31T00:00:00Z" }, "end": { - "$date": "2020-05-20T00:00:00Z" + "$date": "2020-05-31T00:00:00Z" } } } @@ -1980,32 +1851,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://npgeo-corona-npgeo-de.hub.arcgis.com/datasets/dd4580c810204019a7b8eb3e0b329dd6_0?page=26" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200531.csv" + }, "importedCase": { - "ID": "007-159203", - "city": "Leer", - "province": "Niedersachsen", - "country": "Germany", - "date_onset_symptoms": "20.05.2020", - "date_confirmation": "22.05.2020", + "ID": "007-176150", + "city": "Cremona", + "province": "Lombardia", + "country": "Italy", + "date_confirmation": "31.05.2020", "chronic_disease_binary": "False", - "admin_id": "11729.0", + "admin_id": "2506.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Bergamo", + "administrativeAreaLevel2": "Brescia", "administrativeAreaLevel1": "Lombardia", "country": "Italy", "geometry": { - "latitude": 45.79841, - "longitude": 9.79008 + "latitude": 45.70507, + "longitude": 10.31322 }, + "name": "Lombardia, Brescia", "geoResolution": "Admin2" }, "events": [ @@ -2013,10 +1882,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-07T00:00:00Z" + "$date": "2020-03-16T00:00:00Z" }, "end": { - "$date": "2020-03-07T00:00:00Z" + "$date": "2020-03-16T00:00:00Z" } } } @@ -2027,31 +1896,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200307.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200316.csv" + }, "importedCase": { - "ID": "007-180133", - "city": "Bergamo", + "ID": "007-200474", + "city": "Brescia", "province": "Lombardia", "country": "Italy", - "date_confirmation": "07.03.2020", + "date_confirmation": "16.03.2020", "chronic_disease_binary": "False", - "admin_id": "1530.0", + "admin_id": "1743.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Alessandria", - "administrativeAreaLevel1": "Piemonte", + "administrativeAreaLevel2": "Varese", + "administrativeAreaLevel1": "Lombardia", "country": "Italy", "geometry": { - "latitude": 44.8304, - "longitude": 8.663941000000001 + "latitude": 45.80526, + "longitude": 8.776143 }, + "name": "Lombardia, Varese", "geoResolution": "Admin2" }, "events": [ @@ -2059,10 +1927,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-16T00:00:00Z" + "$date": "2020-03-28T00:00:00Z" }, "end": { - "$date": "2020-03-16T00:00:00Z" + "$date": "2020-03-28T00:00:00Z" } } } @@ -2073,42 +1941,39 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200316.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200328.csv" + }, "importedCase": { - "ID": "007-201062", - "city": "Alessandria", - "province": "Piemonte", + "ID": "007-2248", + "city": "Varese", + "province": "Lombardia", "country": "Italy", - "date_confirmation": "16.03.2020", + "date_confirmation": "28.03.2020", "chronic_disease_binary": "False", - "admin_id": "1051.0", + "admin_id": "8915.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Bergamo", - "administrativeAreaLevel1": "Lombardia", "country": "Italy", "geometry": { - "latitude": 45.79841, - "longitude": 9.79008 + "latitude": 45.165410000000065, + "longitude": 10.79242000000005 }, - "geoResolution": "Admin2" + "name": "", + "geoResolution": "Point" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-21T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" }, "end": { - "$date": "2020-03-21T00:00:00Z" + "$date": "2020-03-26T00:00:00Z" } } } @@ -2119,31 +1984,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200321.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200326.csv" + }, "importedCase": { - "ID": "007-221993", - "city": "Bergamo", + "ID": "007-249123", + "city": "Mantova", "province": "Lombardia", "country": "Italy", - "date_confirmation": "21.03.2020", + "date_confirmation": "26.03.2020", "chronic_disease_binary": "False", - "admin_id": "1530.0", + "admin_id": "10799.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Bergamo", - "administrativeAreaLevel1": "Lombardia", + "administrativeAreaLevel2": "Frosinone", + "administrativeAreaLevel1": "Lazio", "country": "Italy", "geometry": { - "latitude": 45.79841, - "longitude": 9.79008 + "latitude": 41.616609999999994, + "longitude": 13.53626 }, + "name": "Lazio, Frosinone", "geoResolution": "Admin2" }, "events": [ @@ -2151,10 +2015,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-25T00:00:00Z" + "$date": "2020-03-31T00:00:00Z" }, "end": { - "$date": "2020-03-25T00:00:00Z" + "$date": "2020-03-31T00:00:00Z" } } } @@ -2165,31 +2029,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200325.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200331.csv" + }, "importedCase": { - "ID": "007-242922", - "city": "Bergamo", - "province": "Lombardia", + "ID": "007-273448", + "city": "Frosinone", + "province": "Lazio", "country": "Italy", - "date_confirmation": "25.03.2020", + "date_confirmation": "31.03.2020", "chronic_disease_binary": "False", - "admin_id": "1530.0", + "admin_id": "3401.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Parma", - "administrativeAreaLevel1": "Emilia-Romagna", + "administrativeAreaLevel2": "Pavia", + "administrativeAreaLevel1": "Lombardia", "country": "Italy", "geometry": { - "latitude": 44.67171, - "longitude": 10.048919999999999 + "latitude": 45.110490000000006, + "longitude": 9.037306 }, + "name": "Lombardia, Pavia", "geoResolution": "Admin2" }, "events": [ @@ -2197,10 +2060,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-29T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" }, "end": { - "$date": "2020-03-29T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" } } } @@ -2211,77 +2074,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200329.csv" - } - ], - "importedCase": { - "ID": "007-263852", - "city": "Parma", - "province": "Emilia-Romagna", - "country": "Italy", - "date_confirmation": "29.03.2020", - "chronic_disease_binary": "False", - "admin_id": "6911.0", - "travel_history_binary": "False" - } - }, - { - "location": { - "administrativeAreaLevel2": "Teramo", - "administrativeAreaLevel1": "Abruzzo", - "country": "Italy", - "geometry": { - "latitude": 42.64614, - "longitude": 13.7265 - }, - "geoResolution": "Admin2" - }, - "events": [ - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-04-03T00:00:00Z" - }, - "end": { - "$date": "2020-04-03T00:00:00Z" - } - } - } - ], - "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "TR" - } + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200405.csv" }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200403.csv" - } - ], "importedCase": { - "ID": "007-284782", - "city": "Teramo", - "province": "Abruzzo", + "ID": "007-297773", + "city": "Pavia", + "province": "Lombardia", "country": "Italy", - "date_confirmation": "03.04.2020", + "date_confirmation": "05.04.2020", "chronic_disease_binary": "False", - "admin_id": "8584.0", + "admin_id": "6932.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Ferrara", - "administrativeAreaLevel1": "Emilia-Romagna", + "administrativeAreaLevel2": "Pisa", + "administrativeAreaLevel1": "Toscana", "country": "Italy", "geometry": { - "latitude": 44.78979, - "longitude": 11.848339999999999 + "latitude": 43.50391, + "longitude": 10.6677 }, + "name": "Toscana, Pisa", "geoResolution": "Admin2" }, "events": [ @@ -2289,10 +2105,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-08T00:00:00Z" + "$date": "2020-04-11T00:00:00Z" }, "end": { - "$date": "2020-04-08T00:00:00Z" + "$date": "2020-04-11T00:00:00Z" } } } @@ -2303,31 +2119,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200408.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200411.csv" + }, "importedCase": { - "ID": "007-305710", - "city": "Ferrara", - "province": "Emilia-Romagna", + "ID": "007-322096", + "city": "Pisa", + "province": "Toscana", "country": "Italy", - "date_confirmation": "08.04.2020", + "date_confirmation": "11.04.2020", "chronic_disease_binary": "False", - "admin_id": "3294.0", + "admin_id": "7093.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Moscow", + "administrativeAreaLevel2": "Bryansk Oblast", "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 55.7558, - "longitude": 37.6173 + "latitude": 53.0409, + "longitude": 33.2691 }, + "name": "Central, Bryansk Oblast", "geoResolution": "Admin2" }, "events": [ @@ -2335,10 +2150,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-28T00:00:00Z" + "$date": "2020-04-15T00:00:00Z" }, "end": { - "$date": "2020-03-28T00:00:00Z" + "$date": "2020-04-15T00:00:00Z" } } } @@ -2349,19 +2164,17 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-326640", - "city": "Moscow", + "ID": "007-346420", + "city": "Bryansk Oblast", "province": "Central", "country": "Russia", - "date_confirmation": "28.03.2020", + "date_confirmation": "15.04.2020", "chronic_disease_binary": "False", - "admin_id": "6363.0", + "admin_id": "1788.0", "travel_history_binary": "False" } }, @@ -2374,6 +2187,7 @@ "latitude": 55.7558, "longitude": 37.6173 }, + "name": "Central, Moscow", "geoResolution": "Admin2" }, "events": [ @@ -2381,10 +2195,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-15T00:00:00Z" + "$date": "2020-04-20T00:00:00Z" }, "end": { - "$date": "2020-04-15T00:00:00Z" + "$date": "2020-04-20T00:00:00Z" } } } @@ -2395,91 +2209,35 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-347570", + "ID": "007-370745", "city": "Moscow", "province": "Central", "country": "Russia", - "date_confirmation": "15.04.2020", + "date_confirmation": "20.04.2020", "chronic_disease_binary": "False", "admin_id": "6363.0", "travel_history_binary": "False" } }, - { - "demographics": { - "ageRange": { - "start": 35.0, - "end": 59.0 - }, - "sex": "Male" - }, - "location": { - "country": "Germany", - "geometry": { - "latitude": 52.150090000000034, - "longitude": 7.338950000000068 - }, - "geoResolution": "Point" - }, - "events": [ - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-03-12T00:00:00Z" - }, - "end": { - "$date": "2020-03-12T00:00:00Z" - } - } - }, - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-03-27T00:00:00Z" - }, - "end": { - "$date": "2020-03-27T00:00:00Z" - } - } - } - ], - "revisionMetadata": { - "revisionNumber": 0 - }, - "importedCase": { - "ID": "007-36850", - "city": "Steinfurt", - "province": "Nordrhein-Westfalen", - "country": "Germany", - "date_onset_symptoms": "12.03.2020", - "date_confirmation": "27.03.2020", - "chronic_disease_binary": "False", - "admin_id": "11765.0", - "travel_history_binary": "False" - } - }, { "demographics": { "ageRange": { "start": 60.0, "end": 79.0 }, - "sex": "Male" + "sex": "Female" }, "location": { "country": "Germany", "geometry": { - "latitude": 51.77347000000003, - "longitude": 9.382520000000056 + "latitude": 51.98134561000006, + "longitude": 8.950931642000057 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -2487,10 +2245,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-04T00:00:00Z" + "$date": "2020-03-29T00:00:00Z" }, "end": { - "$date": "2020-04-04T00:00:00Z" + "$date": "2020-03-29T00:00:00Z" } } }, @@ -2498,10 +2256,10 @@ "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-04-02T00:00:00Z" + "$date": "2020-03-21T00:00:00Z" }, "end": { - "$date": "2020-04-02T00:00:00Z" + "$date": "2020-03-21T00:00:00Z" } } } @@ -2510,26 +2268,27 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-38943", - "city": "Hoxter", + "ID": "007-39507", + "city": "Lippe", "province": "Nordrhein-Westfalen", "country": "Germany", - "date_onset_symptoms": "02.04.2020", - "date_confirmation": "04.04.2020", + "date_onset_symptoms": "21.03.2020", + "date_confirmation": "29.03.2020", "chronic_disease_binary": "False", - "admin_id": "11770.0", + "admin_id": "11771.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Samara Oblast", - "administrativeAreaLevel1": "Volga", + "administrativeAreaLevel2": "Moscow", + "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 53.4184, - "longitude": 50.4726 + "latitude": 55.7558, + "longitude": 37.6173 }, + "name": "Central, Moscow", "geoResolution": "Admin2" }, "events": [ @@ -2537,10 +2296,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-27T00:00:00Z" + "$date": "2020-04-29T00:00:00Z" }, "end": { - "$date": "2020-04-27T00:00:00Z" + "$date": "2020-04-29T00:00:00Z" } } } @@ -2551,113 +2310,59 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-410358", - "city": "Samara Oblast", - "province": "Volga", + "ID": "007-419394", + "city": "Moscow", + "province": "Central", "country": "Russia", - "date_confirmation": "27.04.2020", + "date_confirmation": "29.04.2020", "chronic_disease_binary": "False", - "admin_id": "7746.0", + "admin_id": "6363.0", "travel_history_binary": "False" } }, { "demographics": { "ageRange": { - "start": 15.0, - "end": 34.0 + "start": 60.0, + "end": 79.0 }, "sex": "Male" }, "location": { + "administrativeAreaLevel2": "Tubingen", + "administrativeAreaLevel1": "Baden-Wurttemberg", "country": "Germany", "geometry": { - "latitude": 50.66152000000005, - "longitude": 6.785460000000057 + "latitude": 48.481840000000005, + "longitude": 8.98765 }, - "geoResolution": "Point" + "name": "Baden-Wurttemberg, Tubingen", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-03T00:00:00Z" - }, - "end": { - "$date": "2020-04-03T00:00:00Z" - } - } - }, - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-04-03T00:00:00Z" + "$date": "2020-03-24T00:00:00Z" }, "end": { - "$date": "2020-04-03T00:00:00Z" + "$date": "2020-03-24T00:00:00Z" } } - } - ], - "revisionMetadata": { - "revisionNumber": 0 - }, - "importedCase": { - "ID": "007-431288", - "city": "Euskirchen", - "province": "Nordrhein-Westfalen", - "country": "Germany", - "date_onset_symptoms": "03.04.2020", - "date_confirmation": "03.04.2020", - "chronic_disease_binary": "False", - "admin_id": "11754.0", - "travel_history_binary": "False" - } - }, - { - "demographics": { - "ageRange": { - "start": 35.0, - "end": 59.0 - }, - "sex": "Male" - }, - "location": { - "country": "Germany", - "geometry": { - "latitude": 49.48551510200008, - "longitude": 11.801326620000054 }, - "geoResolution": "Point" - }, - "events": [ { "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-03-23T00:00:00Z" - }, - "end": { - "$date": "2020-03-23T00:00:00Z" - } - } - }, - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-03-31T00:00:00Z" + "$date": "2020-03-24T00:00:00Z" }, "end": { - "$date": "2020-03-31T00:00:00Z" + "$date": "2020-03-24T00:00:00Z" } } } @@ -2666,25 +2371,28 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-452217", - "city": "Amberg-Sulzbach", - "province": "Bayern", + "ID": "007-443718", + "city": "Tubingen", + "province": "Baden-Wurttemberg", "country": "Germany", - "date_onset_symptoms": "23.03.2020", - "date_confirmation": "31.03.2020", + "date_onset_symptoms": "24.03.2020", + "date_confirmation": "24.03.2020", "chronic_disease_binary": "False", - "admin_id": "11906.0", + "admin_id": "8778.0", "travel_history_binary": "False" } }, { "location": { + "administrativeAreaLevel2": "Moscow", + "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 66.12193000000008, - "longitude": 76.67390000000006 + "latitude": 55.7558, + "longitude": 37.6173 }, - "geoResolution": "Point" + "name": "Central, Moscow", + "geoResolution": "Admin2" }, "events": [ { @@ -2705,42 +2413,39 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-473147", - "city": "Yamalo-Nenets AO", - "province": "Ural", + "ID": "007-468042", + "city": "Moscow", + "province": "Central", "country": "Russia", "date_confirmation": "01.05.2020", "chronic_disease_binary": "False", - "admin_id": "10878.0", + "admin_id": "6363.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Moscow Oblast", - "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 55.3404, - "longitude": 38.2918 + "latitude": 43.04282494800003, + "longitude": 46.87255601000004 }, - "geoResolution": "Admin2" + "name": "", + "geoResolution": "Point" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-04T00:00:00Z" + "$date": "2020-05-03T00:00:00Z" }, "end": { - "$date": "2020-05-04T00:00:00Z" + "$date": "2020-05-03T00:00:00Z" } } } @@ -2751,31 +2456,30 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-494077", - "city": "Moscow Oblast", - "province": "Central", + "ID": "007-492367", + "city": "Dagestan", + "province": "North Caucasian", "country": "Russia", - "date_confirmation": "04.05.2020", + "date_confirmation": "03.05.2020", "chronic_disease_binary": "False", - "admin_id": "6362.0", + "admin_id": "10860.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Moscow Oblast", + "administrativeAreaLevel2": "Moscow", "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 55.3404, - "longitude": 38.2918 + "latitude": 55.7558, + "longitude": 37.6173 }, + "name": "Central, Moscow", "geoResolution": "Admin2" }, "events": [ @@ -2797,31 +2501,30 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-515005", - "city": "Moscow Oblast", + "ID": "007-516691", + "city": "Moscow", "province": "Central", "country": "Russia", "date_confirmation": "06.05.2020", "chronic_disease_binary": "False", - "admin_id": "6362.0", + "admin_id": "6363.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Ivanovo Oblast", + "administrativeAreaLevel2": "Moscow", "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 57.1057, - "longitude": 41.483000000000004 + "latitude": 55.7558, + "longitude": 37.6173 }, + "name": "Central, Moscow", "geoResolution": "Admin2" }, "events": [ @@ -2843,85 +2546,56 @@ "curator": "TR" } }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], + "caseReference": { + "sourceUrl": "stopcoronavirus.rf" + }, "importedCase": { - "ID": "007-535936", - "city": "Ivanovo Oblast", + "ID": "007-541014", + "city": "Moscow", "province": "Central", "country": "Russia", "date_confirmation": "08.05.2020", "chronic_disease_binary": "False", - "admin_id": "4552.0", + "admin_id": "6363.0", "travel_history_binary": "False" } }, { - "location": { - "country": "Russia", - "geometry": { - "latitude": 54.97775000000007, - "longitude": 83.04563000000007 + "demographics": { + "ageRange": { + "start": 80.0 }, + "sex": "Female" + }, + "location": { + "country": "Germany", + "geometry": { + "latitude": 49.45299347400004, + "longitude": 8.110168411000075 + }, + "name": "", "geoResolution": "Point" }, "events": [ { - "name": "confirmed", + "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-05-09T00:00:00Z" + "$date": "2020-04-08T00:00:00Z" }, "end": { - "$date": "2020-05-09T00:00:00Z" + "$date": "2020-04-08T00:00:00Z" } } - } - ], - "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "TR" - } - }, - "sources": [ - { - "other": "stopcoronavirus.rf" - } - ], - "importedCase": { - "ID": "007-556866", - "city": "Novosibirsk Oblast", - "province": "Siberia", - "country": "Russia", - "date_confirmation": "09.05.2020", - "chronic_disease_binary": "False", - "admin_id": "10855.0", - "travel_history_binary": "False" - } - }, - { - "location": { - "administrativeAreaLevel1": "Vastra Gotaland", - "country": "Sweden", - "geometry": { - "latitude": 58.2528, - "longitude": 13.0596 }, - "geoResolution": "Admin1" - }, - "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-04T00:00:00Z" + "$date": "2020-04-09T00:00:00Z" }, "end": { - "$date": "2020-05-04T00:00:00Z" + "$date": "2020-04-09T00:00:00Z" } } } @@ -2929,39 +2603,39 @@ "revisionMetadata": { "revisionNumber": 0 }, - "sources": [ - { - "url": "https://www.folkhalsomyndigheten.se/smittskydd-beredskap/utbrott/aktuella-utbrott/covid-19/bekraftade-fall-i-sverige" - } - ], "importedCase": { - "ID": "007-577796", - "province": "Vastra Gotaland", - "country": "Sweden", - "date_confirmation": "04.05.2020", + "ID": "007-56534", + "city": "Bad Durkheim", + "province": "Rheinland-Pfalz", + "country": "Germany", + "date_onset_symptoms": "08.04.2020", + "date_confirmation": "09.04.2020", "chronic_disease_binary": "False", - "admin_id": "910.0", + "admin_id": "11837.0", "travel_history_binary": "False" } }, { "location": { + "administrativeAreaLevel2": "Pavia", + "administrativeAreaLevel1": "Lombardia", "country": "Italy", "geometry": { - "latitude": 45.165410000000065, - "longitude": 10.79242000000005 + "latitude": 45.110490000000006, + "longitude": 9.037306 }, - "geoResolution": "Point" + "name": "Lombardia, Pavia", + "geoResolution": "Admin2" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-18T00:00:00Z" + "$date": "2020-04-15T00:00:00Z" }, "end": { - "$date": "2020-04-18T00:00:00Z" + "$date": "2020-04-15T00:00:00Z" } } } @@ -2972,31 +2646,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200418.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200415.csv" + }, "importedCase": { - "ID": "007-598725", - "city": "Mantova", + "ID": "007-589665", + "city": "Pavia", "province": "Lombardia", "country": "Italy", - "date_confirmation": "18.04.2020", + "date_confirmation": "15.04.2020", "chronic_disease_binary": "False", - "admin_id": "10799.0", + "admin_id": "6932.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Frosinone", - "administrativeAreaLevel1": "Lazio", + "administrativeAreaLevel2": "Torino", + "administrativeAreaLevel1": "Piemonte", "country": "Italy", "geometry": { - "latitude": 41.616609999999994, - "longitude": 13.53626 + "latitude": 45.14739, + "longitude": 7.443546 }, + "name": "Piemonte, Torino", "geoResolution": "Admin2" }, "events": [ @@ -3004,10 +2677,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-26T00:00:00Z" + "$date": "2020-04-23T00:00:00Z" }, "end": { - "$date": "2020-04-26T00:00:00Z" + "$date": "2020-04-23T00:00:00Z" } } } @@ -3018,31 +2691,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200426.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200423.csv" + }, "importedCase": { - "ID": "007-619654", - "city": "Frosinone", - "province": "Lazio", + "ID": "007-613989", + "city": "Torino", + "province": "Piemonte", "country": "Italy", - "date_confirmation": "26.04.2020", + "date_confirmation": "23.04.2020", "chronic_disease_binary": "False", - "admin_id": "3401.0", + "admin_id": "8737.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Biella", - "administrativeAreaLevel1": "Piemonte", + "administrativeAreaLevel2": "Lecco", + "administrativeAreaLevel1": "Lombardia", "country": "Italy", "geometry": { - "latitude": 45.58365, - "longitude": 8.095951 + "latitude": 45.904379999999996, + "longitude": 9.387806 }, + "name": "Lombardia, Lecco", "geoResolution": "Admin2" }, "events": [ @@ -3050,10 +2722,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-09T00:00:00Z" + "$date": "2020-05-07T00:00:00Z" }, "end": { - "$date": "2020-05-09T00:00:00Z" + "$date": "2020-05-07T00:00:00Z" } } } @@ -3064,19 +2736,17 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200509.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province-20200507.csv" + }, "importedCase": { - "ID": "007-640583", - "city": "Biella", - "province": "Piemonte", + "ID": "007-638312", + "city": "Lecco", + "province": "Lombardia", "country": "Italy", - "date_confirmation": "09.05.2020", + "date_confirmation": "07.05.2020", "chronic_disease_binary": "False", - "admin_id": "1570.0", + "admin_id": "5344.0", "travel_history_binary": "False" } }, @@ -3089,6 +2759,7 @@ "latitude": 55.7558, "longitude": 37.6173 }, + "name": "Central, Moscow", "geoResolution": "Admin2" }, "events": [ @@ -3108,7 +2779,7 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-661512", + "ID": "007-662637", "city": "Moscow", "province": "Central", "country": "Russia", @@ -3120,13 +2791,14 @@ }, { "location": { - "administrativeAreaLevel2": "Oryol Oblast", + "administrativeAreaLevel2": "Moscow", "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 52.7856, - "longitude": 36.9242 + "latitude": 55.7558, + "longitude": 37.6173 }, + "name": "Central, Moscow", "geoResolution": "Admin2" }, "events": [ @@ -3146,26 +2818,25 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-682442", - "city": "Oryol Oblast", + "ID": "007-686962", + "city": "Moscow", "province": "Central", "country": "Russia", "date_confirmation": "13.05.2020", "chronic_disease_binary": "False", - "admin_id": "6805.0", + "admin_id": "6363.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Moscow", - "administrativeAreaLevel1": "Central", "country": "Russia", "geometry": { - "latitude": 55.7558, - "longitude": 37.6173 + "latitude": 60.00000000000006, + "longitude": 100.00000000000006 }, - "geoResolution": "Admin2" + "name": "", + "geoResolution": "Point" }, "events": [ { @@ -3184,74 +2855,53 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-703371", - "city": "Moscow", - "province": "Central", + "ID": "007-711285", + "city": "Khakassia", + "province": "Siberia", "country": "Russia", "date_confirmation": "15.05.2020", "chronic_disease_binary": "False", - "admin_id": "6363.0", + "admin_id": "10852.0", "travel_history_binary": "False" } }, { + "demographics": { + "ageRange": { + "start": 35.0, + "end": 59.0 + }, + "sex": "Male" + }, "location": { - "administrativeAreaLevel2": "Moscow", - "administrativeAreaLevel1": "Central", - "country": "Russia", + "country": "Germany", "geometry": { - "latitude": 55.7558, - "longitude": 37.6173 + "latitude": 48.420540542000026, + "longitude": 8.017447066000045 }, - "geoResolution": "Admin2" + "name": "", + "geoResolution": "Point" }, "events": [ { - "name": "confirmed", + "name": "onsetSymptoms", "dateRange": { "start": { - "$date": "2020-05-17T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" }, "end": { - "$date": "2020-05-17T00:00:00Z" + "$date": "2020-03-25T00:00:00Z" } } - } - ], - "revisionMetadata": { - "revisionNumber": 0 - }, - "importedCase": { - "ID": "007-724300", - "city": "Moscow", - "province": "Central", - "country": "Russia", - "date_confirmation": "17.05.2020", - "chronic_disease_binary": "False", - "admin_id": "6363.0", - "travel_history_binary": "False" - } - }, - { - "location": { - "administrativeAreaLevel2": "Saint Petersburg", - "administrativeAreaLevel1": "North Western", - "country": "Russia", - "geometry": { - "latitude": 59.9311, - "longitude": 30.3609 }, - "geoResolution": "Admin2" - }, - "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-19T00:00:00Z" + "$date": "2020-04-04T00:00:00Z" }, "end": { - "$date": "2020-05-19T00:00:00Z" + "$date": "2020-04-04T00:00:00Z" } } } @@ -3260,25 +2910,27 @@ "revisionNumber": 0 }, "importedCase": { - "ID": "007-745230", - "city": "Saint Petersburg", - "province": "North Western", - "country": "Russia", - "date_confirmation": "19.05.2020", + "ID": "007-73561", + "city": "Ortenaukreis", + "province": "Baden-Wurttemberg", + "country": "Germany", + "date_onset_symptoms": "25.03.2020", + "date_confirmation": "04.04.2020", "chronic_disease_binary": "False", - "admin_id": "7726.0", + "admin_id": "11861.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Gard", - "administrativeAreaLevel1": "Occitanie", + "administrativeAreaLevel2": "Bouches-du-Rhone", + "administrativeAreaLevel1": "Provence-Alpes-Cote d'Azur", "country": "France", "geometry": { - "latitude": 43.99449, - "longitude": 4.179802 + "latitude": 43.543479999999995, + "longitude": 5.085989 }, + "name": "Provence-Alpes-Cote d'Azur, Bouches-du-Rhone", "geoResolution": "Admin2" }, "events": [ @@ -3286,10 +2938,10 @@ "name": "admissionHospital", "dateRange": { "start": { - "$date": "2020-04-01T00:00:00Z" + "$date": "2020-05-12T00:00:00Z" }, "end": { - "$date": "2020-04-01T00:00:00Z" + "$date": "2020-05-12T00:00:00Z" } } } @@ -3300,31 +2952,30 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" - } - ], + "caseReference": { + "sourceUrl": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" + }, "importedCase": { - "ID": "007-766160", - "city": "Gard", - "province": "Occitanie", + "ID": "007-759935", + "city": "Bouches-du-Rhone", + "province": "Provence-Alpes-Cote d'Azur", "country": "France", - "date_admission_hospital": "01.04.2020", + "date_admission_hospital": "12.05.2020", "chronic_disease_binary": "False", - "admin_id": "3532.0", + "admin_id": "1694.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Oise", + "administrativeAreaLevel2": "Nord", "administrativeAreaLevel1": "Hauts-de-France", "country": "France", "geometry": { - "latitude": 49.41089, - "longitude": 2.4245240000000003 + "latitude": 50.45028, + "longitude": 3.212466 }, + "name": "Hauts-de-France, Nord", "geoResolution": "Admin2" }, "events": [ @@ -3332,10 +2983,10 @@ "name": "admissionHospital", "dateRange": { "start": { - "$date": "2020-04-08T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" }, "end": { - "$date": "2020-04-08T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" } } } @@ -3346,19 +2997,17 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" - } - ], + "caseReference": { + "sourceUrl": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" + }, "importedCase": { - "ID": "007-787090", - "city": "Oise", + "ID": "007-784259", + "city": "Nord", "province": "Hauts-de-France", "country": "France", - "date_admission_hospital": "08.04.2020", + "date_admission_hospital": "05.04.2020", "chronic_disease_binary": "False", - "admin_id": "6738.0", + "admin_id": "6645.0", "travel_history_binary": "False" } }, @@ -3371,6 +3020,7 @@ "latitude": 48.85666, "longitude": 2.342325 }, + "name": "Ile-de-France, Paris", "geoResolution": "Admin2" }, "events": [ @@ -3392,13 +3042,11 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" - } - ], + "caseReference": { + "sourceUrl": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" + }, "importedCase": { - "ID": "007-808019", + "ID": "007-808583", "city": "Paris", "province": "Ile-de-France", "country": "France", @@ -3409,74 +3057,58 @@ } }, { - "demographics": { - "ageRange": { - "start": 35.0, - "end": 59.0 - }, - "sex": "Male" - }, "location": { - "country": "Germany", + "administrativeAreaLevel2": "Seine-Saint-Denis", + "administrativeAreaLevel1": "Ile-de-France", + "country": "France", "geometry": { - "latitude": 48.13641000000007, - "longitude": 11.577540000000056 + "latitude": 48.917559999999995, + "longitude": 2.47795 }, - "geoResolution": "Point" + "name": "Ile-de-France, Seine-Saint-Denis", + "geoResolution": "Admin2" }, "events": [ { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-03-22T00:00:00Z" - }, - "end": { - "$date": "2020-03-22T00:00:00Z" - } - } - }, - { - "name": "onsetSymptoms", + "name": "admissionHospital", "dateRange": { "start": { - "$date": "2020-03-22T00:00:00Z" + "$date": "2020-03-27T00:00:00Z" }, "end": { - "$date": "2020-03-22T00:00:00Z" + "$date": "2020-03-27T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0 + "revisionNumber": 0, + "creationMetadata": { + "curator": "TR" + } + }, + "caseReference": { + "sourceUrl": "https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/#_" }, "importedCase": { - "ID": "007-82895", - "city": "Munchen", - "province": "Bayern", - "country": "Germany", - "date_onset_symptoms": "22.03.2020", - "date_confirmation": "22.03.2020", + "ID": "007-832907", + "city": "Seine-Saint-Denis", + "province": "Ile-de-France", + "country": "France", + "date_admission_hospital": "27.03.2020", "chronic_disease_binary": "False", - "admin_id": "11873.0", + "admin_id": "7935.0", "travel_history_binary": "False" } }, { - "demographics": { - "ageRange": { - "start": 35.0, - "end": 59.0 - }, - "sex": "Female" - }, "location": { - "country": "Germany", + "country": "Spain", "geometry": { - "latitude": 48.209598131000064, - "longitude": 12.705121404000067 + "latitude": 37.463095115000044, + "longitude": -4.576205755999979 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -3484,48 +3116,42 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-28T00:00:00Z" - }, - "end": { - "$date": "2020-03-28T00:00:00Z" - } - } - }, - { - "name": "onsetSymptoms", - "dateRange": { - "start": { - "$date": "2020-03-11T00:00:00Z" + "$date": "2020-04-24T00:00:00Z" }, "end": { - "$date": "2020-03-11T00:00:00Z" + "$date": "2020-04-24T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0 + "revisionNumber": 0, + "creationMetadata": { + "curator": "TR" + } + }, + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" }, "importedCase": { - "ID": "007-84988", - "city": "Altotting", - "province": "Bayern", - "country": "Germany", - "date_onset_symptoms": "11.03.2020", - "date_confirmation": "28.03.2020", + "ID": "007-857231", + "province": "Andalucia", + "country": "Spain", + "date_confirmation": "24.04.2020", "chronic_disease_binary": "False", - "admin_id": "11875.0", + "admin_id": "12075.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "Baleares", + "administrativeAreaLevel1": "Castilla-La Mancha", "country": "Spain", "geometry": { - "latitude": 39.574690999999994, - "longitude": 2.91291179 + "latitude": 39.5934269, + "longitude": -3.0036282 }, + "name": "Castilla-La Mancha", "geoResolution": "Admin1" }, "events": [ @@ -3533,10 +3159,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-31T00:00:00Z" + "$date": "2020-04-02T00:00:00Z" }, "end": { - "$date": "2020-03-31T00:00:00Z" + "$date": "2020-04-02T00:00:00Z" } } } @@ -3547,60 +3173,14 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "007-870808", - "province": "Baleares", + "ID": "007-881556", + "province": "Castilla La Mancha", "country": "Spain", - "date_confirmation": "31.03.2020", - "chronic_disease_binary": "False", - "admin_id": "307.0", - "travel_history_binary": "False" - } - }, - { - "location": { - "administrativeAreaLevel1": "Castilla-La Mancha", - "country": "Spain", - "geometry": { - "latitude": 39.5934269, - "longitude": -3.0036282 - }, - "geoResolution": "Admin1" - }, - "events": [ - { - "name": "confirmed", - "dateRange": { - "start": { - "$date": "2020-04-24T00:00:00Z" - }, - "end": { - "$date": "2020-04-24T00:00:00Z" - } - } - } - ], - "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "TR" - } - }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], - "importedCase": { - "ID": "007-891738", - "province": "Castilla La Mancha", - "country": "Spain", - "date_confirmation": "24.04.2020", + "date_confirmation": "02.04.2020", "chronic_disease_binary": "False", "admin_id": "350.0", "travel_history_binary": "False" @@ -3614,6 +3194,7 @@ "latitude": 41.767612299999996, "longitude": -4.7805168 }, + "name": "Castilla y Leon", "geoResolution": "Admin1" }, "events": [ @@ -3621,10 +3202,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-19T00:00:00Z" + "$date": "2020-04-04T00:00:00Z" }, "end": { - "$date": "2020-04-19T00:00:00Z" + "$date": "2020-04-04T00:00:00Z" } } } @@ -3635,16 +3216,14 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "007-912667", + "ID": "007-905880", "province": "Castilla y Leon", "country": "Spain", - "date_confirmation": "19.04.2020", + "date_confirmation": "04.04.2020", "chronic_disease_binary": "False", "admin_id": "351.0", "travel_history_binary": "False" @@ -3657,6 +3236,7 @@ "latitude": 41.79850998500007, "longitude": 1.5289057830000274 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -3664,10 +3244,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-31T00:00:00Z" + "$date": "2020-03-28T00:00:00Z" }, "end": { - "$date": "2020-03-31T00:00:00Z" + "$date": "2020-03-28T00:00:00Z" } } } @@ -3678,16 +3258,14 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "007-933597", + "ID": "007-930203", "province": "Cataluna", "country": "Spain", - "date_confirmation": "31.03.2020", + "date_confirmation": "28.03.2020", "chronic_disease_binary": "False", "admin_id": "12077.0", "travel_history_binary": "False" @@ -3700,6 +3278,7 @@ "latitude": 41.79850998500007, "longitude": 1.5289057830000274 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -3721,13 +3300,11 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "007-954526", + "ID": "007-954529", "province": "Cataluna", "country": "Spain", "date_confirmation": "17.04.2020", @@ -3743,6 +3320,7 @@ "latitude": 41.43312000000003, "longitude": 1.8611000000000217 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -3750,10 +3328,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-03-27T00:00:00Z" + "$date": "2020-04-02T00:00:00Z" }, "end": { - "$date": "2020-03-27T00:00:00Z" + "$date": "2020-04-02T00:00:00Z" } } } @@ -3764,16 +3342,14 @@ "curator": "TR" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" + }, "importedCase": { - "ID": "007-975456", + "ID": "007-978854", "province": "C. Valenciana", "country": "Spain", - "date_confirmation": "27.03.2020", + "date_confirmation": "02.04.2020", "chronic_disease_binary": "False", "admin_id": "12079.0", "travel_history_binary": "False" @@ -3781,23 +3357,23 @@ }, { "location": { - "administrativeAreaLevel1": "Galicia", - "country": "Spain", + "country": "Turkey", "geometry": { - "latitude": 42.7623342, - "longitude": -7.9114304 + "latitude": 39.10205, + "longitude": 35.17355 }, - "geoResolution": "Admin1" + "name": "", + "geoResolution": "Country" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-12T00:00:00Z" + "$date": "2020-04-20T00:00:00Z" }, "end": { - "$date": "2020-04-12T00:00:00Z" + "$date": "2020-04-20T00:00:00Z" } } } @@ -3805,21 +3381,18 @@ "revisionMetadata": { "revisionNumber": 0, "creationMetadata": { - "curator": "TR" + "curator": "ZW" } }, - "sources": [ - { - "url": "https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/ccaa_covid19_casos_long.csv" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/turkey/" + }, "importedCase": { - "ID": "007-996386", - "province": "Galicia", - "country": "Spain", - "date_confirmation": "12.04.2020", + "ID": "008-103177", + "country": "Turkey", + "date_confirmation": "20.04.2020", "chronic_disease_binary": "False", - "admin_id": "434.0", + "admin_id": "229.0", "travel_history_binary": "False" } }, @@ -3830,6 +3403,7 @@ "latitude": 39.10205, "longitude": 35.17355 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -3837,10 +3411,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-25T00:00:00Z" + "$date": "2020-04-28T00:00:00Z" }, "end": { - "$date": "2020-04-25T00:00:00Z" + "$date": "2020-04-28T00:00:00Z" } } } @@ -3851,15 +3425,13 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/turkey/" + }, "importedCase": { - "ID": "008-117314", + "ID": "008-127501", "country": "Turkey", - "date_confirmation": "25.04.2020", + "date_confirmation": "28.04.2020", "chronic_disease_binary": "False", "admin_id": "229.0", "travel_history_binary": "False" @@ -3872,6 +3444,7 @@ "latitude": 39.10205, "longitude": 35.17355 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -3879,10 +3452,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-04T00:00:00Z" + "$date": "2020-05-10T00:00:00Z" }, "end": { - "$date": "2020-05-04T00:00:00Z" + "$date": "2020-05-10T00:00:00Z" } } } @@ -3893,15 +3466,13 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/turkey/" + }, "importedCase": { - "ID": "008-138244", + "ID": "008-151826", "country": "Turkey", - "date_confirmation": "04.05.2020", + "date_confirmation": "10.05.2020", "chronic_disease_binary": "False", "admin_id": "229.0", "travel_history_binary": "False" @@ -3909,11 +3480,12 @@ }, { "location": { - "country": "Turkey", + "country": "Belarus", "geometry": { - "latitude": 39.10205, - "longitude": 35.17355 + "latitude": 53.59231, + "longitude": 28.065179999999998 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -3921,10 +3493,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-16T00:00:00Z" + "$date": "2020-04-12T00:00:00Z" }, "end": { - "$date": "2020-05-16T00:00:00Z" + "$date": "2020-04-12T00:00:00Z" } } } @@ -3935,27 +3507,26 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/belarus/" + }, "importedCase": { - "ID": "008-159174", - "country": "Turkey", - "date_confirmation": "16.05.2020", + "ID": "008-176150", + "country": "Belarus", + "date_confirmation": "12.04.2020", "chronic_disease_binary": "False", - "admin_id": "229.0", + "admin_id": "21.0", "travel_history_binary": "False" } }, { "location": { - "country": "Ukraine", + "country": "Belarus", "geometry": { - "latitude": 49.09008, - "longitude": 31.36637 + "latitude": 53.59231, + "longitude": 28.065179999999998 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -3963,10 +3534,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-28T00:00:00Z" + "$date": "2020-05-15T00:00:00Z" }, "end": { - "$date": "2020-04-28T00:00:00Z" + "$date": "2020-05-15T00:00:00Z" } } } @@ -3977,38 +3548,40 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/ukraine/" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/belarus/" + }, "importedCase": { - "ID": "008-180102", - "country": "Ukraine", - "date_confirmation": "28.04.2020", + "ID": "008-200474", + "country": "Belarus", + "date_confirmation": "15.05.2020", "chronic_disease_binary": "False", - "admin_id": "234.0", + "admin_id": "21.0", "travel_history_binary": "False" } }, { "location": { - "country": "Belarus", + "administrativeAreaLevel3": "Birmingham", + "administrativeAreaLevel2": "West Midlands", + "administrativeAreaLevel1": "England", + "country": "United Kingdom", "geometry": { - "latitude": 53.59231, - "longitude": 28.065179999999998 + "latitude": 52.48, + "longitude": -1.9025 }, - "geoResolution": "Country" + "name": "England, West Midlands, Birmingham", + "geoResolution": "Admin3" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-24T00:00:00Z" + "$date": "2020-04-10T00:00:00Z" }, "end": { - "$date": "2020-04-24T00:00:00Z" + "$date": "2020-04-10T00:00:00Z" } } } @@ -4019,38 +3592,42 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/belarus/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-201031", - "country": "Belarus", - "date_confirmation": "24.04.2020", + "ID": "008-2248", + "city": "Birmingham,West Midlands", + "province": "England", + "country": "United Kingdom", + "date_confirmation": "10.04.2020", "chronic_disease_binary": "False", - "admin_id": "21.0", + "admin_id": "1593.0", "travel_history_binary": "False" } }, { "location": { - "country": "Belarus", + "administrativeAreaLevel3": "Enfield", + "administrativeAreaLevel2": "Greater London", + "administrativeAreaLevel1": "England", + "country": "United Kingdom", "geometry": { - "latitude": 53.59231, - "longitude": 28.065179999999998 + "latitude": 51.645, + "longitude": -0.06 }, - "geoResolution": "Country" + "name": "England, Greater London, Enfield", + "geoResolution": "Admin3" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-17T00:00:00Z" + "$date": "2020-04-02T00:00:00Z" }, "end": { - "$date": "2020-05-17T00:00:00Z" + "$date": "2020-04-02T00:00:00Z" } } } @@ -4061,38 +3638,42 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/belarus/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-221962", - "country": "Belarus", - "date_confirmation": "17.05.2020", + "ID": "008-249123", + "city": "Enfield,Greater London", + "province": "England", + "country": "United Kingdom", + "date_confirmation": "02.04.2020", "chronic_disease_binary": "False", - "admin_id": "21.0", + "admin_id": "3149.0", "travel_history_binary": "False" } }, { "location": { - "country": "Ireland", + "administrativeAreaLevel3": "Brighton and Hove", + "administrativeAreaLevel2": "East Sussex", + "administrativeAreaLevel1": "England", + "country": "United Kingdom", "geometry": { - "latitude": 53.207069999999995, - "longitude": -8.149569999999999 + "latitude": 50.827778, + "longitude": -0.152778 }, - "geoResolution": "Country" + "name": "England, East Sussex, Brighton and Hove", + "geoResolution": "Admin3" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-18T00:00:00Z" + "$date": "2020-04-08T00:00:00Z" }, "end": { - "$date": "2020-04-18T00:00:00Z" + "$date": "2020-04-08T00:00:00Z" } } } @@ -4103,40 +3684,39 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.gov.ie/en/news/7e0924-latest-updates-on-covid-19-coronavirus/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-242892", - "country": "Ireland", - "date_confirmation": "18.04.2020", + "ID": "008-273448", + "city": "Brighton and Hove,East Sussex", + "province": "England", + "country": "United Kingdom", + "date_confirmation": "08.04.2020", "chronic_disease_binary": "False", - "admin_id": "106.0", + "admin_id": "1749.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel2": "Buckinghamshire", - "administrativeAreaLevel1": "England", - "country": "United Kingdom", + "country": "Serbia", "geometry": { - "latitude": 51.833333, - "longitude": -0.833333 + "latitude": 44.24848, + "longitude": 20.7733 }, - "geoResolution": "Admin2" + "name": "", + "geoResolution": "Country" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-01T00:00:00Z" + "$date": "2020-04-09T00:00:00Z" }, "end": { - "$date": "2020-04-01T00:00:00Z" + "$date": "2020-04-09T00:00:00Z" } } } @@ -4147,41 +3727,37 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://coronavirus.data.gov.uk/" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/serbia/" + }, "importedCase": { - "ID": "008-263821", - "city": "Buckinghamshire", - "province": "England", - "country": "United Kingdom", - "date_confirmation": "01.04.2020", + "ID": "008-297773", + "country": "Serbia", + "date_confirmation": "09.04.2020", "chronic_disease_binary": "False", - "admin_id": "1799.0", + "admin_id": "198.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel1": "Wales", "country": "United Kingdom", "geometry": { - "latitude": 52.3458, - "longitude": -3.7631099999999997 + "latitude": 54.37002, + "longitude": -2.95214 }, - "geoResolution": "Admin1" + "name": "", + "geoResolution": "Country" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-05T00:00:00Z" + "$date": "2020-04-12T00:00:00Z" }, "end": { - "$date": "2020-04-05T00:00:00Z" + "$date": "2020-04-12T00:00:00Z" } } } @@ -4192,31 +3768,29 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://covid19-phwstatement.nhs.wales/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-284751", - "province": "Wales", + "ID": "008-322096", "country": "United Kingdom", - "date_confirmation": "05.04.2020", + "date_confirmation": "12.04.2020", "chronic_disease_binary": "False", - "admin_id": "927.0", + "admin_id": "236.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel3": "Westminster", + "administrativeAreaLevel3": "Brent", "administrativeAreaLevel2": "Greater London", "administrativeAreaLevel1": "England", "country": "United Kingdom", "geometry": { - "latitude": 51.494721999999996, - "longitude": -0.135278 + "latitude": 51.566111, + "longitude": -0.273889 }, + "name": "England, Greater London, Brent", "geoResolution": "Admin3" }, "events": [ @@ -4224,10 +3798,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-10T00:00:00Z" + "$date": "2020-04-18T00:00:00Z" }, "end": { - "$date": "2020-04-10T00:00:00Z" + "$date": "2020-04-18T00:00:00Z" } } } @@ -4238,40 +3812,42 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://coronavirus.data.gov.uk/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-305680", - "city": "Westminster,Greater London", + "ID": "008-346420", + "city": "Brent,Greater London", "province": "England", "country": "United Kingdom", - "date_confirmation": "10.04.2020", + "date_confirmation": "18.04.2020", "chronic_disease_binary": "False", - "admin_id": "9242.0", + "admin_id": "1742.0", "travel_history_binary": "False" } }, { "location": { - "country": "Turkey", + "administrativeAreaLevel3": "Enfield", + "administrativeAreaLevel2": "Greater London", + "administrativeAreaLevel1": "England", + "country": "United Kingdom", "geometry": { - "latitude": 39.10205, - "longitude": 35.17355 + "latitude": 51.645, + "longitude": -0.06 }, - "geoResolution": "Country" + "name": "England, Greater London, Enfield", + "geoResolution": "Admin3" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-04T00:00:00Z" + "$date": "2020-04-23T00:00:00Z" }, "end": { - "$date": "2020-04-04T00:00:00Z" + "$date": "2020-04-23T00:00:00Z" } } } @@ -4282,17 +3858,17 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-32661", - "country": "Turkey", - "date_confirmation": "04.04.2020", + "ID": "008-370745", + "city": "Enfield,Greater London", + "province": "England", + "country": "United Kingdom", + "date_confirmation": "23.04.2020", "chronic_disease_binary": "False", - "admin_id": "229.0", + "admin_id": "3149.0", "travel_history_binary": "False" } }, @@ -4303,6 +3879,7 @@ "latitude": 39.10205, "longitude": 35.17355 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -4310,10 +3887,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-04T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" }, "end": { - "$date": "2020-04-04T00:00:00Z" + "$date": "2020-04-05T00:00:00Z" } } } @@ -4324,15 +3901,13 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" - } - ], + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/turkey/" + }, "importedCase": { - "ID": "008-34754", + "ID": "008-39507", "country": "Turkey", - "date_confirmation": "04.04.2020", + "date_confirmation": "05.04.2020", "chronic_disease_binary": "False", "admin_id": "229.0", "travel_history_binary": "False" @@ -4340,11 +3915,12 @@ }, { "location": { - "country": "Turkey", + "country": "United Kingdom", "geometry": { - "latitude": 39.10205, - "longitude": 35.17355 + "latitude": 54.37002, + "longitude": -2.95214 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -4352,10 +3928,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-05T00:00:00Z" + "$date": "2020-05-03T00:00:00Z" }, "end": { - "$date": "2020-04-05T00:00:00Z" + "$date": "2020-05-03T00:00:00Z" } } } @@ -4366,41 +3942,37 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-36847", - "country": "Turkey", - "date_confirmation": "05.04.2020", + "ID": "008-419394", + "country": "United Kingdom", + "date_confirmation": "03.05.2020", "chronic_disease_binary": "False", - "admin_id": "229.0", + "admin_id": "236.0", "travel_history_binary": "False" } }, { "location": { - "administrativeAreaLevel3": "York", - "administrativeAreaLevel2": "North Yorkshire", - "administrativeAreaLevel1": "England", "country": "United Kingdom", "geometry": { - "latitude": 53.958332999999996, - "longitude": -1.080278 + "latitude": 54.37002, + "longitude": -2.95214 }, - "geoResolution": "Admin3" + "name": "", + "geoResolution": "Country" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-21T00:00:00Z" + "$date": "2020-05-08T00:00:00Z" }, "end": { - "$date": "2020-04-21T00:00:00Z" + "$date": "2020-05-08T00:00:00Z" } } } @@ -4411,19 +3983,15 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://coronavirus.data.gov.uk/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-3894", - "city": "York,North Yorkshire", - "province": "England", + "ID": "008-443718", "country": "United Kingdom", - "date_confirmation": "21.04.2020", + "date_confirmation": "08.05.2020", "chronic_disease_binary": "False", - "admin_id": "9919.0", + "admin_id": "236.0", "travel_history_binary": "False" } }, @@ -4434,6 +4002,7 @@ "latitude": 54.37002, "longitude": -2.95214 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -4441,10 +4010,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-02T00:00:00Z" + "$date": "2020-05-15T00:00:00Z" }, "end": { - "$date": "2020-05-02T00:00:00Z" + "$date": "2020-05-15T00:00:00Z" } } } @@ -4455,15 +4024,13 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://coronavirus.data.gov.uk/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-410327", + "ID": "008-468042", "country": "United Kingdom", - "date_confirmation": "02.05.2020", + "date_confirmation": "15.05.2020", "chronic_disease_binary": "False", "admin_id": "236.0", "travel_history_binary": "False" @@ -4471,24 +4038,24 @@ }, { "location": { - "administrativeAreaLevel2": "North Yorkshire", "administrativeAreaLevel1": "England", "country": "United Kingdom", "geometry": { - "latitude": 54.166667000000004, - "longitude": -1.333333 + "latitude": 52.65185, + "longitude": -1.46183 }, - "geoResolution": "Admin2" + "name": "England", + "geoResolution": "Admin1" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-07T00:00:00Z" + "$date": "2020-05-25T00:00:00Z" }, "end": { - "$date": "2020-05-07T00:00:00Z" + "$date": "2020-05-25T00:00:00Z" } } } @@ -4499,19 +4066,16 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://coronavirus.data.gov.uk/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-431257", - "city": "North Yorkshire", + "ID": "008-492367", "province": "England", "country": "United Kingdom", - "date_confirmation": "07.05.2020", + "date_confirmation": "25.05.2020", "chronic_disease_binary": "False", - "admin_id": "6662.0", + "admin_id": "411.0", "travel_history_binary": "False" } }, @@ -4522,6 +4086,7 @@ "latitude": 54.37002, "longitude": -2.95214 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -4529,10 +4094,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-12T00:00:00Z" + "$date": "2020-06-08T00:00:00Z" }, "end": { - "$date": "2020-05-12T00:00:00Z" + "$date": "2020-06-08T00:00:00Z" } } } @@ -4543,15 +4108,13 @@ "curator": "ZW" } }, - "sources": [ - { - "url": "https://coronavirus.data.gov.uk/" - } - ], + "caseReference": { + "sourceUrl": "https://coronavirus.data.gov.uk/" + }, "importedCase": { - "ID": "008-452187", + "ID": "008-516691", "country": "United Kingdom", - "date_confirmation": "12.05.2020", + "date_confirmation": "08.06.2020", "chronic_disease_binary": "False", "admin_id": "236.0", "travel_history_binary": "False" @@ -4559,11 +4122,12 @@ }, { "location": { - "country": "United Kingdom", + "country": "Ukraine", "geometry": { - "latitude": 54.37002, - "longitude": -2.95214 + "latitude": 49.09008, + "longitude": 31.36637 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -4571,10 +4135,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-19T00:00:00Z" + "$date": "2020-05-07T00:00:00Z" }, "end": { - "$date": "2020-05-19T00:00:00Z" + "$date": "2020-05-07T00:00:00Z" } } } @@ -4585,17 +4149,56 @@ "curator": "ZW" } }, - "sources": [ + "caseReference": { + "sourceUrl": "https://www.kyivpost.com/ukraine-politics/covid-19-in-ukraine-340-dead-13691-cases-507-new-infections.html" + }, + "importedCase": { + "ID": "008-541014", + "country": "Ukraine", + "date_confirmation": "07.05.2020", + "chronic_disease_binary": "False", + "admin_id": "234.0", + "travel_history_binary": "False" + } + }, + { + "location": { + "country": "Turkey", + "geometry": { + "latitude": 39.10205, + "longitude": 35.17355 + }, + "name": "", + "geoResolution": "Country" + }, + "events": [ { - "url": "https://coronavirus.data.gov.uk/" + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-04-10T00:00:00Z" + }, + "end": { + "$date": "2020-04-10T00:00:00Z" + } + } } ], + "revisionMetadata": { + "revisionNumber": 0, + "creationMetadata": { + "curator": "ZW" + } + }, + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/turkey/" + }, "importedCase": { - "ID": "008-473116", - "country": "United Kingdom", - "date_confirmation": "19.05.2020", + "ID": "008-56534", + "country": "Turkey", + "date_confirmation": "10.04.2020", "chronic_disease_binary": "False", - "admin_id": "236.0", + "admin_id": "229.0", "travel_history_binary": "False" } }, @@ -4606,6 +4209,7 @@ "latitude": 39.10205, "longitude": 35.17355 }, + "name": "", "geoResolution": "Country" }, "events": [ @@ -4613,10 +4217,10 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-09T00:00:00Z" + "$date": "2020-04-14T00:00:00Z" }, "end": { - "$date": "2020-04-09T00:00:00Z" + "$date": "2020-04-14T00:00:00Z" } } } @@ -4627,27 +4231,89 @@ "curator": "ZW" } }, - "sources": [ + "caseReference": { + "sourceUrl": "https://www.worldometers.info/coronavirus/country/turkey/" + }, + "importedCase": { + "ID": "008-75891", + "country": "Turkey", + "date_confirmation": "14.04.2020", + "chronic_disease_binary": "False", + "admin_id": "229.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 55.0, + "end": 55.0 + }, + "sex": "Female" + }, + "location": { + "country": "Colombia", + "geometry": { + "latitude": 6.3464100000000485, + "longitude": -75.50799999999998 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ + { + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-04-17T00:00:00Z" + }, + "end": { + "$date": "2020-04-17T00:00:00Z" + } + } + }, { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" + "name": "onsetSymptoms", + "dateRange": { + "start": { + "$date": "2020-04-16T00:00:00Z" + }, + "end": { + "$date": "2020-04-16T00:00:00Z" + } + } } ], + "revisionMetadata": { + "revisionNumber": 0 + }, "importedCase": { - "ID": "008-51059", - "country": "Turkey", - "date_confirmation": "09.04.2020", + "ID": "009-10214", + "city": "Copacabana", + "province": "Antioquia", + "country": "Colombia", + "date_onset_symptoms": "16.04.2020", + "date_confirmation": "17.04.2020", "chronic_disease_binary": "False", - "admin_id": "229.0", + "admin_id": "14484.0", "travel_history_binary": "False" } }, { + "demographics": { + "ageRange": { + "start": 20.0, + "end": 20.0 + }, + "sex": "Female" + }, "location": { - "country": "United Kingdom", + "country": "Peru", "geometry": { - "latitude": 50.85550000000006, - "longitude": -0.9859199999999646 + "latitude": -12.066669999999931, + "longitude": -77.13332999999994 }, + "name": "", "geoResolution": "Point" }, "events": [ @@ -4655,75 +4321,345 @@ "name": "confirmed", "dateRange": { "start": { - "$date": "2020-05-09T00:00:00Z" + "$date": "2020-06-06T00:00:00Z" }, "end": { - "$date": "2020-05-09T00:00:00Z" + "$date": "2020-06-06T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "ZW" + "revisionNumber": 0 + }, + "importedCase": { + "ID": "009-3454", + "city": "Bellavista", + "province": "Callao", + "country": "Peru", + "date_confirmation": "06.06.2020", + "chronic_disease_binary": "False", + "admin_id": "14486.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 22.0, + "end": 22.0 + }, + "sex": "Male" + }, + "location": { + "country": "Argentina", + "geometry": { + "latitude": -34.610859, + "longitude": -58.486392 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ + { + "name": "onsetSymptoms", + "dateRange": { + "start": { + "$date": "2020-05-27T00:00:00Z" + }, + "end": { + "$date": "2020-05-27T00:00:00Z" + } + } + }, + { + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-05-27T00:00:00Z" + }, + "end": { + "$date": "2020-05-27T00:00:00Z" + } + } } + ], + "revisionMetadata": { + "revisionNumber": 0 }, - "sources": [ + "importedCase": { + "ID": "009-58865", + "city": "COMUNA 1", + "province": "CABA", + "country": "Argentina", + "date_onset_symptoms": "27.05.2020", + "date_confirmation": "27.05.2020", + "chronic_disease_binary": "False", + "admin_id": "15865.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 28.0, + "end": 28.0 + }, + "sex": "Male" + }, + "location": { + "country": "Peru", + "geometry": { + "latitude": -11.93297999999993, + "longitude": -77.04084999999998 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ { - "url": "https://coronavirus.data.gov.uk/#category=utlas&map=rate" + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-05-20T00:00:00Z" + }, + "end": { + "$date": "2020-05-20T00:00:00Z" + } + } } ], + "revisionMetadata": { + "revisionNumber": 0 + }, "importedCase": { - "ID": "008-7199", - "city": "Havant,Hampshire", - "province": "England", - "country": "United Kingdom", - "date_confirmation": "09.05.2020", + "ID": "010-111367", + "city": "Comas", + "province": "Lima", + "country": "Peru", + "date_confirmation": "20.05.2020", "chronic_disease_binary": "False", - "admin_id": "14106.0", + "admin_id": "14426.0", "travel_history_binary": "False" } }, { + "demographics": { + "ageRange": { + "start": 37.0, + "end": 37.0 + }, + "sex": "Male" + }, "location": { - "country": "Turkey", + "country": "Peru", "geometry": { - "latitude": 39.10205, - "longitude": 35.17355 + "latitude": -13.40199999999993, + "longitude": -76.15811999999994 }, - "geoResolution": "Country" + "name": "", + "geoResolution": "Point" }, "events": [ { "name": "confirmed", "dateRange": { "start": { - "$date": "2020-04-18T00:00:00Z" + "$date": "2020-05-25T00:00:00Z" }, "end": { - "$date": "2020-04-18T00:00:00Z" + "$date": "2020-05-25T00:00:00Z" } } } ], "revisionMetadata": { - "revisionNumber": 0, - "creationMetadata": { - "curator": "ZW" + "revisionNumber": 0 + }, + "importedCase": { + "ID": "010-135692", + "city": "GROCIO PRADO", + "province": "Chincha", + "country": "Peru", + "date_confirmation": "25.05.2020", + "chronic_disease_binary": "False", + "admin_id": "15126.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 45.0, + "end": 45.0 + }, + "sex": "Male" + }, + "location": { + "country": "Peru", + "geometry": { + "latitude": -12.038179999999954, + "longitude": -76.89317999999997 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ + { + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-05-29T00:00:00Z" + }, + "end": { + "$date": "2020-05-29T00:00:00Z" + } + } } + ], + "revisionMetadata": { + "revisionNumber": 0 }, - "sources": [ + "importedCase": { + "ID": "010-160015", + "city": "Ate", + "province": "Lima", + "country": "Peru", + "date_confirmation": "29.05.2020", + "chronic_disease_binary": "False", + "admin_id": "14418.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 68.0, + "end": 68.0 + }, + "sex": "Male" + }, + "location": { + "country": "Peru", + "geometry": { + "latitude": -6.548049999999932, + "longitude": -79.86393999999996 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ { - "url": "https://www.worldometers.info/coronavirus/country/turkey/" + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-04-23T00:00:00Z" + }, + "end": { + "$date": "2020-04-23T00:00:00Z" + } + } } ], + "revisionMetadata": { + "revisionNumber": 0 + }, "importedCase": { - "ID": "008-92919", - "country": "Turkey", - "date_confirmation": "18.04.2020", + "ID": "010-26450", + "city": "MOCHUMI", + "province": "Lambayeque", + "country": "Peru", + "date_confirmation": "23.04.2020", "chronic_disease_binary": "False", - "admin_id": "229.0", + "admin_id": "14671.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 52.0, + "end": 52.0 + }, + "sex": "Male" + }, + "location": { + "country": "Peru", + "geometry": { + "latitude": -8.081809999999962, + "longitude": -79.02201999999994 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ + { + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-05-02T00:00:00Z" + }, + "end": { + "$date": "2020-05-02T00:00:00Z" + } + } + } + ], + "revisionMetadata": { + "revisionNumber": 0 + }, + "importedCase": { + "ID": "010-50775", + "city": "Florencia de Mora", + "province": "Trujillo", + "country": "Peru", + "date_confirmation": "02.05.2020", + "chronic_disease_binary": "False", + "admin_id": "15043.0", + "travel_history_binary": "False" + } + }, + { + "demographics": { + "ageRange": { + "start": 56.0, + "end": 56.0 + }, + "sex": "Female" + }, + "location": { + "country": "Peru", + "geometry": { + "latitude": -12.071769999999958, + "longitude": -77.11783999999994 + }, + "name": "", + "geoResolution": "Point" + }, + "events": [ + { + "name": "confirmed", + "dateRange": { + "start": { + "$date": "2020-03-28T00:00:00Z" + }, + "end": { + "$date": "2020-03-28T00:00:00Z" + } + } + } + ], + "revisionMetadata": { + "revisionNumber": 0 + }, + "importedCase": { + "ID": "010-751", + "city": "La Perla", + "province": "Callao", + "country": "Peru", + "date_confirmation": "28.03.2020", + "chronic_disease_binary": "False", + "admin_id": "15077.0", "travel_history_binary": "False" } } diff --git a/data-serving/scripts/convert-data/convert_data.py b/data-serving/scripts/convert-data/convert_data.py index feef85c55..bd8aebefc 100644 --- a/data-serving/scripts/convert-data/convert_data.py +++ b/data-serving/scripts/convert-data/convert_data.py @@ -13,7 +13,7 @@ from converters import ( convert_demographics, convert_dictionary_field, convert_events, convert_imported_case, convert_location, convert_revision_metadata_field, - convert_notes_field, convert_sources_field, convert_travel_history) + convert_notes_field, convert_case_reference_field, convert_travel_history) from typing import Any from constants import ( DATA_CSV_FILENAME, DATA_GZIP_FILENAME, DATA_REPO_PATH, GEOCODER_DB_FILENAME, @@ -146,8 +146,8 @@ def convert(infile: str, outfile: str, geocoder: Any, [csv_case['notes_for_discussion'], csv_case['additional_information']]) - json_case['sources'] = convert_sources_field( - csv_case['source']) + json_case['caseReference'] = convert_case_reference_field( + csv_case['ID'], csv_case['source']) json_case['travelHistory'] = convert_travel_history( geocoder, csv_case['ID'], diff --git a/data-serving/scripts/convert-data/converters.py b/data-serving/scripts/convert-data/converters.py index bf5165de8..cec9caba9 100644 --- a/data-serving/scripts/convert-data/converters.py +++ b/data-serving/scripts/convert-data/converters.py @@ -11,9 +11,10 @@ from parsers import (parse_age, parse_bool, parse_date, parse_geo_resolution, parse_latitude, parse_list, parse_location_list, - parse_longitude, parse_range, parse_sex, parse_string_list) + parse_longitude, parse_range, parse_sex, parse_string_list, + parse_url) from typing import Any, Callable, Dict, List -from utils import format_iso_8601_date, is_url, log_error +from utils import format_iso_8601_date, log_error def convert_range(value: Any, parser: Callable[[Any], Any], @@ -374,30 +375,44 @@ def convert_notes_field(notes_fields: [str]) -> str: return notes or None -def convert_sources_field(source: str) -> Dict[str, str]: +def convert_case_reference_field(id: str, source: str) -> Dict[str, str]: ''' - Converts the source field to a new source representation that's a list of - objects with either a URL or an unknown reference type. + Converts the case reference field from the source field. Returns: None: When the input is empty. Dict[str, str]: When the input is nonempty. The dictionary is in the format: { - 'url': str, - 'other': str + 'sourceUrl': str, + 'additionalSources': [ + { + 'sourceUrl': str + } + ] } ''' if not source: return None - sources = parse_list(source, ',') + sources = parse_list(source, ', ') + + try: + sourceUrls = [ parse_url(source) for source in sources ] - return [{ - 'url': source - } if is_url(source) else { - 'other': str(source) - } for source in sources] + if not sourceUrls: + return None + + caseReference = { 'sourceUrl': sourceUrls[0] } + + if len(sourceUrls) > 1: + caseReference['additionalSources'] = [{ + 'sourceUrl': sourceUrl + } for sourceUrl in sourceUrls[1:]] + + return caseReference + except ValueError as e: + log_error(id, 'source', 'caseReference.sourceUrl', source, e) def convert_travel_history(geocoder: Any, id: str, dates: str, diff --git a/data-serving/scripts/convert-data/parsers.py b/data-serving/scripts/convert-data/parsers.py index f6a7bc366..65bb83053 100644 --- a/data-serving/scripts/convert-data/parsers.py +++ b/data-serving/scripts/convert-data/parsers.py @@ -19,7 +19,7 @@ from typing import Any, Callable, Dict, List, Tuple from constants import (COMMON_LOCATION_ABBREVIATIONS, VALID_GEO_RESOLUTIONS, VALID_SEXES) -from utils import trim_string_list +from utils import is_url, trim_string_list from geocode_util import lookup_location @@ -380,3 +380,11 @@ def parse_string_list(value: Any) -> List[str]: # Assuming this wasn't a list, but a singular value. return [value] + + +def parse_url(value: Any) -> str: + # TODO: Too noisy right now. Use a more accurate URL parser before throwing. + # if not is_url(value): + # raise ValueError('not a valid URL') + + return value \ No newline at end of file diff --git a/ingestion/functions/parsing/india/india.py b/ingestion/functions/parsing/india/india.py index 08ec49919..5fa1b98ae 100644 --- a/ingestion/functions/parsing/india/india.py +++ b/ingestion/functions/parsing/india/india.py @@ -98,7 +98,8 @@ def parse_cases(raw_data_file, source_id, source_url): { "caseReference": { "sourceId": source_id, - "sourceEntryId": entry["entryid"] + "sourceEntryId": entry["entryid"], + "sourceUrl": source_url }, "revisionMetadata": { "revisionNumber": 0, @@ -107,11 +108,6 @@ def parse_cases(raw_data_file, source_id, source_url): "date": date.today().strftime("%m/%d/%Y") } }, - "sources": [ - { - "url": source_url, - } - ], "location": convert_location(entry), "events": [ { diff --git a/ingestion/functions/parsing/india/india_test.py b/ingestion/functions/parsing/india/india_test.py index df1389faa..61a3fc52f 100644 --- a/ingestion/functions/parsing/india/india_test.py +++ b/ingestion/functions/parsing/india/india_test.py @@ -15,7 +15,8 @@ { "caseReference": { "sourceId": _SOURCE_ID, - "sourceEntryId": "48765" + "sourceEntryId": "48765", + "sourceUrl": _SOURCE_URL }, "revisionMetadata": { "revisionNumber": 0, @@ -24,11 +25,6 @@ "date": date.today().strftime("%m/%d/%Y") } }, - "sources": [ - { - "url": _SOURCE_URL, - } - ], "location": { "country": "India", "administrativeAreaLevel1": "Bihar", diff --git a/verification/curator-service/api/package-lock.json b/verification/curator-service/api/package-lock.json index eef9ae6c5..2aa9d8fd3 100644 --- a/verification/curator-service/api/package-lock.json +++ b/verification/curator-service/api/package-lock.json @@ -5,11 +5,11 @@ "requires": true, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz", - "integrity": "sha512-n4YBtwQhdpLto1BaUCyAeflizmIbaloGShsPyRtFf5qdFJxfssj+GgLavczgKJFa3Bq+3St2CKcpRJdjtB4EBw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.1.tgz", + "integrity": "sha512-Qsdz0W0dyK84BuBh5KZATWXOtVDXIF2EeNRzpyWblPUeAmnIokwWcwrpAm5pTPMjuWoIQt9C67X3Af1OlL6oSw==", "requires": { - "@jsdevtools/ono": "^7.1.0", + "@jsdevtools/ono": "^7.1.2", "call-me-maybe": "^1.0.1", "js-yaml": "^3.13.1" } @@ -896,7 +896,7 @@ } }, "@mapbox/mapbox-sdk": { - "version": "github:mapbox/mapbox-sdk-js#fc74a74f6c48d7373aec06548379f0c534f4d298", + "version": "github:mapbox/mapbox-sdk-js#8ba742e04878b726d8f3967241961de836e2a0b5", "from": "github:mapbox/mapbox-sdk-js", "requires": { "@mapbox/fusspot": "^0.4.0", @@ -1426,9 +1426,9 @@ } }, "@types/mongodb": { - "version": "3.5.24", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.24.tgz", - "integrity": "sha512-8Pz4OLnqZCJf0Ut+JRFCrOUPerSpGRY1yPF8E3Vz8xltz/NcoddMd9NnpNtDiMzJOS2ctoNPcgbz05j4OqCRbg==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.25.tgz", + "integrity": "sha512-2H/Owt+pHCl9YmBOYnXc3VdnxejJEjVdH+QCWL5ZAfPehEn3evygKBX3/vKRv7aTwfNbUd0E5vjJdQklH/9a6w==", "dev": true, "requires": { "@types/bson": "*", @@ -1436,9 +1436,9 @@ } }, "@types/mongoose": { - "version": "5.7.27", - "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.7.27.tgz", - "integrity": "sha512-6+QFJg4jUM91dJYsJk32FuREOJ7ghgzxj4c+BV3+aK7a9fFGbghQRteB14P94fGXhJN63b2mBqf7luBHvCRFtg==", + "version": "5.7.29", + "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.7.29.tgz", + "integrity": "sha512-+7u1akCerciZ2MG66p6Vy+9Tg7dYcgSeNbDInxdOA5vB5xAZhNiIBj8HESnJmIqOBcWxQ90HpaPWtEwggBqXug==", "dev": true, "requires": { "@types/mongodb": "*", @@ -1551,9 +1551,9 @@ "dev": true }, "@types/superagent": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.7.tgz", - "integrity": "sha512-JSwNPgRYjIC4pIeOqLwWwfGj6iP1n5NE6kNBEbGx2V8H78xCPwx7QpNp9plaI30+W3cFEzJO7BIIsXE+dbtaGg==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.8.tgz", + "integrity": "sha512-iol9KxQ7SLHatBJUiZ4uABrS4VS1frLjqPednxZz82eoCzo3Uy3TOH0p0ZIBbfBj8E/xqOtvizjBs9h7xi/l2g==", "dev": true, "requires": { "@types/cookiejar": "*", @@ -1561,9 +1561,9 @@ } }, "@types/supertest": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.9.tgz", - "integrity": "sha512-0BTpWWWAO1+uXaP/oA0KW1eOZv4hc0knhrWowV06Gwwz3kqQxNO98fUFM2e15T+PdPRmOouNFrYvaBgdojPJ3g==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.10.tgz", + "integrity": "sha512-Xt8TbEyZTnD5Xulw95GLMOkmjGICrOQyJ2jqgkSjAUR3mm7pAIzSR0NFBaMcwlzVvlpCjNwbATcWWwjNiZiFrQ==", "dev": true, "requires": { "@types/superagent": "*" @@ -1969,9 +1969,9 @@ "dev": true }, "aws-sdk": { - "version": "2.703.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.703.0.tgz", - "integrity": "sha512-iMJueMVDp2fqopgpjPfejyFaxaksYYdRJ7bxzWEYSxR1UoSf6V9zgcrgkF+SgoxiKJ2rxsbPxhoPu2MV//b9xA==", + "version": "2.707.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.707.0.tgz", + "integrity": "sha512-nt55Z9wQKFodOuwElF3222Thc3kDVnaC4rwemPEHIM1cVGPQe6E5yBfc6AwtYmSo6eoMMEWd6XO5wG2am9PW0w==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -3736,15 +3736,15 @@ } }, "express-openapi-validator": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/express-openapi-validator/-/express-openapi-validator-3.16.2.tgz", - "integrity": "sha512-LZRiVH79PGae4+uB0EkvcUGv6R7syc0d4s6lUHgPVkjsX1/9qtUT440BSB1S/MvaMNg3RzTOcIjENhnqUj2WYw==", + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/express-openapi-validator/-/express-openapi-validator-3.16.4.tgz", + "integrity": "sha512-69lLYPRvZ97ods94dccqj0Bn3HCcyW1YX4Wb3HbmFqizDHd1L+Mnwx3R2RyXunm1w2OocDj2MyiDyV4R2ViOnQ==", "requires": { "ajv": "^6.12.2", "content-type": "^1.0.4", - "deasync": "^0.1.19", + "deasync": "^0.1.20", "js-yaml": "^3.14.0", - "json-schema-ref-parser": "^8.0.0", + "json-schema-ref-parser": "^9.0.1", "lodash.merge": "^4.6.2", "lodash.uniq": "^4.5.0", "lodash.zipobject": "^4.1.3", @@ -6519,11 +6519,11 @@ "dev": true }, "json-schema-ref-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz", - "integrity": "sha512-2P4icmNkZLrBr6oa5gSZaDSol/oaBHYkoP/8dsw63E54NnHGRhhiFuy9yFoxPuSm+uHKmeGxAAWMDF16SCHhcQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.1.tgz", + "integrity": "sha512-KLrCjRjW5hMXxsX4osVBWpwixXL9NtICfpyNNS0eHguN5mP/I4UatI7i7PFS8jU94b1NHF4EbirACdCn0RFPBA==", "requires": { - "@apidevtools/json-schema-ref-parser": "8.0.0" + "@apidevtools/json-schema-ref-parser": "9.0.1" } }, "json-schema-traverse": { diff --git a/verification/curator-service/api/package.json b/verification/curator-service/api/package.json index d50e383d6..7099bbfc9 100644 --- a/verification/curator-service/api/package.json +++ b/verification/curator-service/api/package.json @@ -30,12 +30,12 @@ "@types/express": "^4.17.6", "@types/express-session": "^1.17.0", "@types/jest": "^25.2.3", - "@types/mongoose": "^5.7.27", + "@types/mongoose": "^5.7.29", "@types/node": "^13.13.12", "@types/passport": "^1.0.3", "@types/passport-google-oauth20": "^2.0.3", "@types/passport-http-bearer": "^1.0.35", - "@types/supertest": "^2.0.9", + "@types/supertest": "^2.0.10", "@typescript-eslint/eslint-plugin": "^2.34.0", "@typescript-eslint/parser": "^2.34.0", "aws-sdk-mock": "^5.1.0", @@ -61,14 +61,14 @@ "@types/multer": "^1.4.3", "@types/swagger-ui-express": "^4.1.2", "@types/yamljs": "^0.2.31", - "aws-sdk": "^2.703.0", + "aws-sdk": "^2.707.0", "axios": "^0.19.2", "connect-mongo": "^3.2.0", "cookie-parser": "^1.4.5", "dotenv": "^8.2.0", "envalid": "^6.0.2", "express": "^4.17.1", - "express-openapi-validator": "^3.16.2", + "express-openapi-validator": "^3.16.4", "express-session": "^1.17.1", "lru-cache": "^5.1.1", "mongoose": "^5.9.20", @@ -88,4 +88,4 @@ "eslint --fix" ] } -} \ No newline at end of file +} diff --git a/verification/curator-service/ui/cypress/support/commands.ts b/verification/curator-service/ui/cypress/support/commands.ts index fb800034c..a45587fb1 100644 --- a/verification/curator-service/ui/cypress/support/commands.ts +++ b/verification/curator-service/ui/cypress/support/commands.ts @@ -34,6 +34,10 @@ export function addCase(opts: { method: 'POST', url: '/api/cases', body: { + caseReference: { + sourceId: 'CDC', + sourceUrl: 'www.example.com', + }, demographics: { nationalities: opts.nationalities, }, @@ -55,11 +59,6 @@ export function addCase(opts: { }, ], notes: opts.notes, - sources: [ - { - url: opts.sourceUrl, - }, - ], revisionMetadata: { revisionNumber: 0, creationMetadata: { diff --git a/verification/curator-service/ui/package-lock.json b/verification/curator-service/ui/package-lock.json index dcf1be8f8..899c382b8 100644 --- a/verification/curator-service/ui/package-lock.json +++ b/verification/curator-service/ui/package-lock.json @@ -2197,9 +2197,9 @@ "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==" }, "@types/lodash": { - "version": "4.14.156", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.156.tgz", - "integrity": "sha512-l2AgHXcKUwx2DsvP19wtRPqZ4NkONjmorOdq4sMcxIjqdIuuV/ULo2ftuv4NUpevwfW7Ju/UKLqo0ZXuEt/8lQ==" + "version": "4.14.157", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.157.tgz", + "integrity": "sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ==" }, "@types/minimatch": { "version": "3.0.3", @@ -2207,9 +2207,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/mongodb": { - "version": "3.5.24", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.24.tgz", - "integrity": "sha512-8Pz4OLnqZCJf0Ut+JRFCrOUPerSpGRY1yPF8E3Vz8xltz/NcoddMd9NnpNtDiMzJOS2ctoNPcgbz05j4OqCRbg==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.25.tgz", + "integrity": "sha512-2H/Owt+pHCl9YmBOYnXc3VdnxejJEjVdH+QCWL5ZAfPehEn3evygKBX3/vKRv7aTwfNbUd0E5vjJdQklH/9a6w==", "requires": { "@types/bson": "*", "@types/node": "*" @@ -3685,6 +3685,11 @@ } } }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -4163,6 +4168,103 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001059.tgz", "integrity": "sha512-oOrc+jPJWooKIA0IrNZ5sYlsXc7NP7KLhNWrSGEJhnfSzDvDJ0zd3i6HXsslExY9bbu+x0FQ5C61LcqmPt7bOQ==" }, + "canvg": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz", + "integrity": "sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg==", + "requires": { + "jsdom": "^8.1.0", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^1.4.1", + "xmldom": "^0.1.22" + }, + "dependencies": { + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" + }, + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" + }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "requires": { + "acorn": "^2.1.0" + } + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "requires": { + "cssom": "0.3.x" + } + }, + "jsdom": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz", + "integrity": "sha1-1Nj12/J2hjW2KmKCO5R89wcevJg=", + "requires": { + "abab": "^1.0.0", + "acorn": "^2.4.0", + "acorn-globals": "^1.0.4", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.34 < 0.3.0", + "escodegen": "^1.6.1", + "iconv-lite": "^0.4.13", + "nwmatcher": ">= 1.3.7 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.55.0", + "sax": "^1.1.4", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^2.2.0", + "webidl-conversions": "^3.0.1", + "whatwg-url": "^2.0.1", + "xml-name-validator": ">= 2.0.1 < 3.0.0" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=" + }, + "stackblur-canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz", + "integrity": "sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs=" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz", + "integrity": "sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=" + } + } + }, "capture-exit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", @@ -4909,6 +5011,14 @@ } } }, + "css-line-break": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz", + "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=", + "requires": { + "base64-arraybuffer": "^0.1.5" + } + }, "css-loader": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", @@ -6930,6 +7040,10 @@ "schema-utils": "^2.5.0" } }, + "file-saver": { + "version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e", + "from": "github:eligrey/FileSaver.js#1.3.8" + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -7251,9 +7365,9 @@ } }, "formik-material-ui": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/formik-material-ui/-/formik-material-ui-2.0.0.tgz", - "integrity": "sha512-nVnh93mL4Mn32ZUfdmyqcfTLyMDSqrF47i9PZ805lE4MxRpUM5cVmxH3MyLJetliFxJ6LymmaAzKJSGbdk14Tw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formik-material-ui/-/formik-material-ui-2.0.1.tgz", + "integrity": "sha512-kX+SJuFj9AdjLk7sfZczDfJIK8W/MnNtHWFZ182LkhN4743IFho7+VYycd2QL9qnEEv7vdZhbEm1ts+wp3nPEg==" }, "formik-material-ui-pickers": { "version": "0.0.8", @@ -7927,6 +8041,14 @@ } } }, + "html2canvas": { + "version": "1.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz", + "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=", + "requires": { + "css-line-break": "1.0.1" + } + }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", @@ -9774,6 +9896,24 @@ } } }, + "jspdf": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz", + "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==", + "requires": { + "canvg": "1.5.3", + "file-saver": "github:eligrey/FileSaver.js#1.3.8", + "html2canvas": "1.0.0-alpha.12", + "omggif": "1.0.7", + "promise-polyfill": "8.1.0", + "stackblur-canvas": "2.2.0" + } + }, + "jspdf-autotable": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.5.3.tgz", + "integrity": "sha512-K+cNWW3x6w0R/1B5m6PYOm6v8CTTDXy/g32lZouc7SuC6zhvzMN2dauhk6dDYxPD0pky0oyPIJFwSJ/tV8PAeg==" + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -10901,9 +11041,9 @@ } }, "material-table": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/material-table/-/material-table-1.62.0.tgz", - "integrity": "sha512-+3tnk32lXtkXeKM7k/hZ82jpSzlXU5CsWXqJHq4Tl0Un7ycjK2Kef6EMPqeE3i58vKNqbIvbrFf/ESH0D/Qwig==", + "version": "1.63.1", + "resolved": "https://registry.npmjs.org/material-table/-/material-table-1.63.1.tgz", + "integrity": "sha512-bSBf0CMTpbc0cFF2JT+xTILtWyBaOxEOm04ZXio3Eo1w4hYSCexfndChU2MXFKtRVUZ+k2wI/JXAlGNNFCXuZw==", "requires": { "@date-io/date-fns": "^1.1.0", "@material-ui/pickers": "^3.2.2", @@ -10912,6 +11052,8 @@ "debounce": "^1.2.0", "fast-deep-equal": "2.0.1", "filefy": "0.1.10", + "jspdf": "1.5.3", + "jspdf-autotable": "3.5.3", "prop-types": "^15.6.2", "react-beautiful-dnd": "^13.0.0", "react-double-scrollbar": "0.0.15" @@ -11611,6 +11753,11 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==" + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -11749,6 +11896,11 @@ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, + "omggif": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz", + "integrity": "sha1-WdLuywJj3oRjWz/riHwMmXPx5J0=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -13307,6 +13459,11 @@ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, + "promise-polyfill": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz", + "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA==" + }, "prompts": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", @@ -13561,9 +13718,9 @@ } }, "react-csv-reader": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/react-csv-reader/-/react-csv-reader-3.0.6.tgz", - "integrity": "sha512-xxkbHgN0Uy1xkFJsyCfdagG6JJKSZ6QRmVisKNzl/LwvF+uMMUqLKebQC0+SPLxIUXOWjIZo7P+Ob+MtHrWn4Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-csv-reader/-/react-csv-reader-3.1.0.tgz", + "integrity": "sha512-ZIPhKtitu2UlXJKCQJWJvvJ12GXuQLtQjsiTRubBT1sRNPc85rCT8w5LSHDdvvnCVoDcamqq5Cus2bBrsm/ypw==", "requires": { "@types/papaparse": "^5.0.3", "papaparse": "^5.1.1" @@ -14458,6 +14615,11 @@ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" }, + "rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0=" + }, "rifm": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.7.0.tgz", @@ -15370,6 +15532,11 @@ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" }, + "stackblur-canvas": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz", + "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ==" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -17868,6 +18035,11 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + }, "xregexp": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", diff --git a/verification/curator-service/ui/package.json b/verification/curator-service/ui/package.json index 4b012bc2d..bc40b8386 100644 --- a/verification/curator-service/ui/package.json +++ b/verification/curator-service/ui/package.json @@ -13,8 +13,8 @@ "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", "@types/jest": "^24.9.1", - "@types/lodash": "^4.14.156", - "@types/mongodb": "^3.5.24", + "@types/lodash": "^4.14.157", + "@types/mongodb": "^3.5.25", "@types/node": "^12.12.47", "@types/react": "^16.9.41", "@types/react-dom": "^16.9.6", @@ -30,18 +30,18 @@ "eslint-plugin-cypress": "^2.11.1", "eslint-plugin-prettier": "^3.1.4", "formik": "^2.1.4", - "formik-material-ui": "^2.0.0", + "formik-material-ui": "^2.0.1", "formik-material-ui-pickers": "0.0.8", "http-proxy-middleware": "^1.0.4", "husky": "^4.2.5", "lint-staged": "^10.2.11", - "material-table": "^1.62.0", + "material-table": "^1.63.1", "material-ui-chip-input": "^2.0.0-beta.2", "mongodb": "^3.5.9", "mongodb-client-encryption": "^1.1.0", "prettier": "^2.0.5", "react": "^16.13.1", - "react-csv-reader": "^3.0.6", + "react-csv-reader": "^3.1.0", "react-dom": "^16.13.1", "react-router-dom": "^5.1.2", "react-scripts": "3.4.1", diff --git a/verification/curator-service/ui/src/components/BulkCaseForm.tsx b/verification/curator-service/ui/src/components/BulkCaseForm.tsx index ba36060a4..71dd7d004 100644 --- a/verification/curator-service/ui/src/components/BulkCaseForm.tsx +++ b/verification/curator-service/ui/src/components/BulkCaseForm.tsx @@ -62,6 +62,7 @@ class BulkCaseForm extends React.Component< caseReference: { sourceId: c['sourceId'], sourceEntryId: c['sourceEntryId'], + sourceUrl: c['url'], }, demographics: { sex: c['sex'], @@ -92,11 +93,6 @@ class BulkCaseForm extends React.Component< }, }, ], - sources: [ - { - url: c['url'], - }, - ], revisionMetadata: { revisionNumber: 0, creationMetadata: { diff --git a/verification/curator-service/ui/src/components/Case.tsx b/verification/curator-service/ui/src/components/Case.tsx index 7fb5765d0..af6c6746c 100644 --- a/verification/curator-service/ui/src/components/Case.tsx +++ b/verification/curator-service/ui/src/components/Case.tsx @@ -1,4 +1,15 @@ // Case definitions as returned by the /api/cases endpoint. + + +export interface CaseReference { + sourceId: string; + sourceEntryId?: string; + sourceUrl: string; + additionalSources: [{ + sourceUrl: string; + }] +} + export interface Event { name: string; dateRange: { @@ -35,10 +46,6 @@ export interface Geometry { longitude: number; } -export interface Source { - url: string; -} - export interface Symptoms { values: string[]; } @@ -84,6 +91,7 @@ interface RevisionMetadata { export interface Case { _id: string; + caseReference: CaseReference; importedCase?: { outcome?: string; }; @@ -92,10 +100,8 @@ export interface Case { location: Location; symptoms: Symptoms; transmission: Transmission; - sources: Source[]; travelHistory: TravelHistory; genomeSequences: GenomeSequence[]; notes: string; - revisionMetadata: RevisionMetadata; } diff --git a/verification/curator-service/ui/src/components/LinelistTable.test.tsx b/verification/curator-service/ui/src/components/LinelistTable.test.tsx index c6bbe86fb..bd644cf30 100644 --- a/verification/curator-service/ui/src/components/LinelistTable.test.tsx +++ b/verification/curator-service/ui/src/components/LinelistTable.test.tsx @@ -32,6 +32,10 @@ it('loads and displays cases', async () => { importedCase: { outcome: 'Recovered', }, + caseReference: { + sourceId: 'CDC', + sourceUrl: 'www.example.com', + }, demographics: { ageRange: { start: 1, end: 3 } }, location: { country: 'France', @@ -55,11 +59,6 @@ it('loads and displays cases', async () => { }, ], notes: 'some notes', - sources: [ - { - url: 'http://foo.bar', - }, - ], revisionMetadata: { creationMetadata: { curator: 'foo@bar.com', @@ -124,6 +123,10 @@ it('API errors are displayed', async () => { const cases = [ { _id: 'abc123', + caseReference: { + sourceId: 'CDC', + sourceUrl: 'www.example.com', + }, importedCase: { outcome: 'Recovered', }, @@ -140,11 +143,6 @@ it('API errors are displayed', async () => { }, ], notes: 'some notes', - sources: [ - { - url: 'http://foo.bar', - }, - ], }, ]; const axiosResponse = { @@ -185,6 +183,10 @@ it('can delete a row', async () => { const cases = [ { _id: 'abc123', + caseReference: { + sourceId: 'CDC', + sourceUrl: 'www.example.com', + }, importedCase: { outcome: 'Recovered', }, @@ -201,11 +203,6 @@ it('can delete a row', async () => { }, ], notes: 'some notes', - sources: [ - { - url: 'http://foo.bar', - }, - ], }, ]; const axiosGetResponse = { @@ -273,6 +270,10 @@ it('can go to page to edit a row', async () => { const cases = [ { _id: 'abc123', + caseReference: { + sourceId: 'CDC', + sourceUrl: 'www.example.com', + }, importedCase: { outcome: 'Recovered', }, @@ -293,11 +294,6 @@ it('can go to page to edit a row', async () => { }, ], notes: 'some notes', - sources: [ - { - url: 'http://foo.bar', - }, - ], }, ]; const axiosGetResponse = { @@ -333,6 +329,10 @@ it('can go to page to view a case', async () => { const cases = [ { _id: 'abc123', + caseReference: { + sourceId: 'CDC', + sourceUrl: 'http://foo.bar', + }, importedCase: { outcome: 'Recovered', }, @@ -353,11 +353,6 @@ it('can go to page to view a case', async () => { }, ], notes: 'some notes', - sources: [ - { - url: 'http://foo.bar', - }, - ], }, ]; const axiosGetResponse = { @@ -393,6 +388,10 @@ it('cannot edit data as a reader only', async () => { const cases = [ { _id: 'abc123', + caseReference: { + sourceId: 'CDC', + sourceUrl: 'www.example.com', + }, importedCase: { outcome: 'Recovered', }, @@ -413,11 +412,6 @@ it('cannot edit data as a reader only', async () => { }, ], notes: 'some notes', - sources: [ - { - url: 'http://foo.bar', - }, - ], }, ]; const axiosGetResponse = { diff --git a/verification/curator-service/ui/src/components/LinelistTable.tsx b/verification/curator-service/ui/src/components/LinelistTable.tsx index 7a6c8ab00..e103946e1 100644 --- a/verification/curator-service/ui/src/components/LinelistTable.tsx +++ b/verification/curator-service/ui/src/components/LinelistTable.tsx @@ -48,7 +48,6 @@ interface TableRow { // Represents a list as a comma and space separated string e.g. 'caseId, caseId2' transmissionLinkedCaseIds: string; travelHistory: TravelHistory; - // sources sourceUrl: string | null; notes: string; curatedBy: string; @@ -253,11 +252,7 @@ class LinelistTable extends React.Component { ), travelHistory: c.travelHistory, notes: c.notes, - sourceUrl: - c.sources && - c.sources.length > 0 - ? c.sources[0].url - : null, + sourceUrl: c.caseReference.sourceUrl, curatedBy: c.revisionMetadata ?.creationMetadata diff --git a/verification/curator-service/ui/src/components/NewCaseForm.tsx b/verification/curator-service/ui/src/components/NewCaseForm.tsx index 25eeb8a24..eaac1da33 100644 --- a/verification/curator-service/ui/src/components/NewCaseForm.tsx +++ b/verification/curator-service/ui/src/components/NewCaseForm.tsx @@ -144,7 +144,7 @@ function initialValuesFromCase(c?: Case): NewCaseFormValues { genomeSequences: c.genomeSequences?.map((genomeSequence) => { return { reactId: shortId.generate(), ...genomeSequence }; }), - sourceUrl: c.sources?.length > 0 ? c.sources[0].url : '', + sourceUrl: c.caseReference.sourceUrl, notes: c.notes, }; } @@ -234,6 +234,12 @@ class NewCaseForm extends React.Component { ? { start: values.age, end: values.age } : { start: values.minAge, end: values.maxAge }; const newCase = { + caseReference: { + // TODO: Replace the below with a source id once we have lookups + // in place. + sourceId: 'FAKE_ID', + sourceUrl: values.sourceUrl + }, demographics: { sex: values.sex, ageRange: ageRange, @@ -304,11 +310,6 @@ class NewCaseForm extends React.Component { places: values.transmissionPlaces, linkedCaseIds: values.transmissionLinkedCaseIds, }, - sources: [ - { - url: values.sourceUrl, - }, - ], travelHistory: { traveledPrior30Days: values.traveledPrior30Days === 'Yes' diff --git a/verification/curator-service/ui/src/components/ViewCase.tsx b/verification/curator-service/ui/src/components/ViewCase.tsx index d22f2b422..ca8d1921d 100644 --- a/verification/curator-service/ui/src/components/ViewCase.tsx +++ b/verification/curator-service/ui/src/components/ViewCase.tsx @@ -106,11 +106,7 @@ function CaseDetails(props: CaseDetailsProps): JSX.Element { 0 - ? props.c.sources[0].url - : '' - } + content={props.c.caseReference.sourceUrl} isLink /> diff --git a/verification/curator-service/ui/src/components/fixtures/fullCase.json b/verification/curator-service/ui/src/components/fixtures/fullCase.json index a55526077..acd706acd 100644 --- a/verification/curator-service/ui/src/components/fixtures/fullCase.json +++ b/verification/curator-service/ui/src/components/fixtures/fullCase.json @@ -2,7 +2,16 @@ "_id": "5ef8e943dfe6e00030892d58", "caseReference": { "sourceId": "sourceId", - "sourceEntryId": "entryId" + "sourceEntryId": "entryId", + "sourceUrl": "https://www.colorado.gov/pacific/cdphe/news/10-new-presumptive-positive-cases-colorado-cdphe-confirms-limited-community-spread-covid-19", + "additionalSources": [ + { + "sourceUrl": "twitter.com/a-tweet" + }, + { + "sourceUrl": "news.org/an-article" + } + ] }, "sources": [ {