Initial work on health conditions report.
This commit is contained in:
46
data/parser/risk/health-conditions.js
Normal file
46
data/parser/risk/health-conditions.js
Normal file
@@ -0,0 +1,46 @@
|
||||
import mkdirp from 'mkdirp'
|
||||
import path from 'path'
|
||||
import fsp from 'fs/promises'
|
||||
import Papa from 'papaparse'
|
||||
import { getCounty } from '../../util.js'
|
||||
|
||||
async function processSingleZip ({ date, zip }) {
|
||||
const output = {
|
||||
directory: `./public/data/risk/health-conditions/`,
|
||||
file: `health-conditions.json`
|
||||
}
|
||||
|
||||
try {
|
||||
await fsp.rm(output.directory, { recursive: true })
|
||||
} catch (e) {}
|
||||
|
||||
const csv = await zip.entryData('comorbidities_sum.csv').then(res => res.toString())
|
||||
|
||||
const rows = Papa.parse(csv, {
|
||||
header: true
|
||||
}).data
|
||||
|
||||
const results = rows.map(row => {
|
||||
return {
|
||||
health_condition: row.comorbidity,
|
||||
sex: row.sex,
|
||||
cases: +row.cases,
|
||||
deaths: +row.deaths
|
||||
}
|
||||
}).filter(row => !!row.health_condition)
|
||||
|
||||
const data = {
|
||||
segment: { },
|
||||
headers: Object.keys(results[0]),
|
||||
rows: results.map(row => Object.values(row))
|
||||
}
|
||||
|
||||
await mkdirp(output.directory)
|
||||
await fsp.writeFile(path.join(output.directory, output.file), JSON.stringify(data))
|
||||
}
|
||||
|
||||
function process (zips) {
|
||||
return processSingleZip(zips.at(-1))
|
||||
}
|
||||
|
||||
export default process
|
||||
Reference in New Issue
Block a user