|
3 | 3 | "name": "cht-sandbox",
|
4 | 4 | "description": null,
|
5 | 5 | "inserted_at": "2024-11-07T11:32:07Z",
|
6 |
| - "updated_at": "2024-11-28T12:41:57Z", |
| 6 | + "updated_at": "2025-01-14T14:08:42Z", |
7 | 7 | "scheduled_deletion": null,
|
8 | 8 | "project_credentials": {
|
9 | 9 |
|
|
61 | 61 | "cron->Get-Patients": {
|
62 | 62 | "enabled": true,
|
63 | 63 | "id": "3c0a1c52-1f6b-4210-8ead-7d50cea97428",
|
| 64 | + "target_job_id": "6c132952-404d-434b-8ee5-c161704c9f86", |
64 | 65 | "source_trigger_id": "5257dc8b-f1c8-4073-8772-2a23958d1b01",
|
65 |
| - "condition_type": "always", |
66 |
| - "target_job_id": "6c132952-404d-434b-8ee5-c161704c9f86" |
| 66 | + "condition_type": "always" |
67 | 67 | },
|
68 | 68 | "Get-Patients->Transform-and-map-patients": {
|
69 | 69 | "enabled": true,
|
70 | 70 | "id": "038b5924-a4b4-4434-8f85-d4101aa3da61",
|
| 71 | + "target_job_id": "02495f58-cb2c-4b0e-8cf7-d41293455ee0", |
71 | 72 | "source_job_id": "6c132952-404d-434b-8ee5-c161704c9f86",
|
72 |
| - "condition_type": "on_job_success", |
73 |
| - "target_job_id": "02495f58-cb2c-4b0e-8cf7-d41293455ee0" |
| 73 | + "condition_type": "on_job_success" |
74 | 74 | },
|
75 | 75 | "Transform-and-map-patients->Load-to-DHIS2": {
|
76 | 76 | "enabled": true,
|
77 | 77 | "id": "818f484f-b685-4352-8553-93514b4df739",
|
| 78 | + "target_job_id": "9af97a93-22c5-4bf4-8f69-86ac2d6e6af7", |
78 | 79 | "source_job_id": "02495f58-cb2c-4b0e-8cf7-d41293455ee0",
|
79 |
| - "condition_type": "on_job_success", |
80 |
| - "target_job_id": "9af97a93-22c5-4bf4-8f69-86ac2d6e6af7" |
| 80 | + "condition_type": "on_job_success" |
81 | 81 | }
|
82 | 82 | }
|
83 | 83 | },
|
84 | 84 | "CHT-webhook": {
|
85 | 85 | "id": "6cdd641d-6087-414b-8193-d01d71d3240e",
|
86 | 86 | "name": "CHT webhook",
|
87 |
| - "inserted_at": "2024-12-18T18:19:49.271343Z", |
88 |
| - "lock_version": 46, |
| 87 | + "inserted_at": "2025-01-22T13:25:28.105788Z", |
| 88 | + "lock_version": 52, |
89 | 89 | "triggers": {
|
90 | 90 | "webhook": {
|
91 | 91 | "enabled": true,
|
|
97 | 97 | "DHIS2-mapping": {
|
98 | 98 | "id": "0f2bd9fa-1f44-4152-8c0c-9fbca0e75f04",
|
99 | 99 | "name": "DHIS2 mapping",
|
100 |
| - "body": "const facilities = {\n \"712526f6-f826-45a7-a80b-6546ad9fde9d\": \"DiszpKrYNg8\", //corresponding_on_DHIS2,\n};\n\nconst convertToBool = (val) => {\n if (typeof val === 'boolean') return val;\n if (typeof val === 'string') {\n val = val.toLowerCase().trim();\n return val === '1' || val === 'true' || val === 'yes';\n }\n return !!val;\n};\n\nconst safeGet = (obj, path, defaultValue = undefined) => {\n return path.split('.').reduce((acc, part) => acc && acc[part], obj) ?? defaultValue;\n};\n\nconst genderMap = (value) => {\n if (!value) return undefined;\n return value.toLowerCase().trim().startsWith('f') ? 'Female' : 'Male';\n};\n\nconst convertToNumeric = (value) => {\n return value\n}\n\nconst mapReport = (report) => {\n const dataElements = [\n // { dataElement: \"EuiLnVQP7fz\", path: 'fever_detected' },\n // { dataElement: \"c7DB86yPCPw\", path: 'danger_signs' },\n // { dataElement: \"pUQ3PxCLBGW\", path: 'symptoms_severity_level' },\n // { dataElement: \"UkSorKPBQKp\", path: 'd_diarrhoea' },\n { dataElement: \"mQfnNz6HAxg\", path: \"properties.d_disease_severe_malaria_possible\" },\n { dataElement: \"rUiCXLuXe0D\", path: \"data.closed.doc.fields.g_registration.p_id\" },\n { dataElement: \"L9FyeXeKysL\", path: \"properties.p_gender\", transform: genderMap },\n { dataElement: \"sRViHZrNOOi\", path: \"properties.p_age\" },\n { dataElement: \"zWAPsDC96SK\", path: \"properties.p_weight\" },\n { dataElement: \"nrsvTZKdAxD\", path: \"properties.p_temp\" },\n { dataElement: \"f8AiyAoBmQZ\", path: \"properties.d_pneumonia\", transform: convertToBool },\n { dataElement: \"nOqH46e5VmP\", path: \"data.closed.doc.d_malaria\" },\n { dataElement: \"S6XCvAD6uv6\", path: \"properties.d_scabies_infected\", transform: convertToBool },\n { dataElement: \"Vg8aEzNouYb\", path: \"properties.d_measles\", transform: convertToBool },\n { dataElement: \"Ofyvm4Ynqh7\", path: \"data.closed.doc.fields.ds_amoxicillin\" },\n { dataElement: \"EijcDbR4oWL\", path: \"data.closed.doc.fields.ds_paracetamol\", transform: convertToNumeric },\n { dataElement: \"DsiPa2sGoEe\", path: \"data.closed.doc.fields.ds_erythromycin\" },\n { dataElement: \"xpWPRlZlN7b\", path: \"data.closed.doc.fields.d_deworming_needed\", transform: convertToBool },\n { dataElement: \"tgUaWBaAIag\", path: \"data.closed.doc.fields.dur_amoxicillin\" },\n ];\n\n return {\n dataValues: dataElements.map(({ dataElement, path, transform }) => ({\n dataElement,\n value: transform ? transform(safeGet(report, path)) : safeGet(report, path),\n })),\n notes: [{\n value: safeGet(report, 'data.closed.doc.contact.notes'),\n storedBy: safeGet(report, 'data.closed.doc.contact.name'),\n storedDate: report.reported_date,\n }],\n };\n};\n\nfn((state) => {\n const { report } = state.data;\n\n state.dhis2Mapping = {\n orgUnit: \"DiszpKrYNg8\",\n occurredAt: report.reported_date,\n programStage: \"\",\n program: \"wNRmGnc1t11\",\n status: \"COMPLETED\",\n ...mapReport(report)\n };\n\n console.log(state.dhis2Mapping);\n return state;\n});\n", |
101 |
| - "adaptor": "@openfn/language-common@latest", |
| 100 | + "body": "//TODO: Remove this once we have orgUnit from report\n// const facilities = {\n// \"712526f6-f826-45a7-a80b-6546ad9fde9d\": \"DiszpKrYNg8\", //corresponding_on_DHIS2,\n// };\n\nconst convertToBool = (val) => {\n if (typeof val === 'boolean') return val;\n if (typeof val === 'string') {\n val = val.toLowerCase().trim();\n return val === '1' || val === 'true' || val === 'yes';\n }\n return !!val;\n};\n\nconst safeGet = (obj, path, defaultValue = undefined) => {\n return path.split('.').reduce((acc, part) => acc && acc[part], obj) ?? defaultValue;\n};\n\nconst genderMap = (value) => {\n if (!value) return undefined;\n return value.toLowerCase().trim().startsWith('f') ? 'Female' : 'Male';\n};\n\nconst convertToNumeric = (value) => {\n if (typeof value === 'number') return value;\n if (typeof value === 'string') {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n }\n return undefined;\n};\n\nconst mapReport = (report) => {\n const dataElements = [\n // { dataElement: \"EuiLnVQP7fz\", path: 'fever_detected' },\n // { dataElement: \"c7DB86yPCPw\", path: 'danger_signs' },\n // { dataElement: \"pUQ3PxCLBGW\", path: 'symptoms_severity_level' },\n // { dataElement: \"UkSorKPBQKp\", path: 'd_diarrhoea' },\n { dataElement: \"mQfnNz6HAxg\", path: \"properties.d_disease_severe_malaria_possible\", transform: convertToBool },\n { dataElement: \"rUiCXLuXe0D\", path: \"properties.p_id\" },\n { dataElement: \"L9FyeXeKysL\", path: \"properties.p_gender\", transform: genderMap },\n { dataElement: \"sRViHZrNOOi\", path: \"properties.p_age\" },\n { dataElement: \"zWAPsDC96SK\", path: \"properties.p_weight\" },\n { dataElement: \"nrsvTZKdAxD\", path: \"properties.p_temp\" },\n { dataElement: \"f8AiyAoBmQZ\", path: \"properties.d_pneumonia\", transform: convertToBool },\n { dataElement: \"nOqH46e5VmP\", path: \"properties.d_malaria\", transform: convertToBool },\n { dataElement: \"S6XCvAD6uv6\", path: \"properties.d_scabies_infected\", transform: convertToBool },\n { dataElement: \"Vg8aEzNouYb\", path: \"properties.d_measles\", transform: convertToBool },\n { dataElement: \"Ofyvm4Ynqh7\", path: \"properties.ds_amoxicillin\", transform: convertToBool },\n { dataElement: \"EijcDbR4oWL\", path: \"properties.ds_paracetamol\", transform: convertToNumeric },\n { dataElement: \"DsiPa2sGoEe\", path: \"properties.ds_erythromycin\", transform: convertToNumeric },\n { dataElement: \"xpWPRlZlN7b\", path: \"properties.d_deworming_needed\", transform: convertToBool },\n { dataElement: \"tgUaWBaAIag\", path: \"properties.dur_amoxicillin\" },\n ];\n\n return {\n dataValues: dataElements.map(({ dataElement, path, transform }) => ({\n dataElement,\n value: transform ? transform(safeGet(report, path)) : safeGet(report, path),\n })),\n notes: [{\n value: safeGet(report, 'data.closed.doc.contact.notes'),\n storedBy: safeGet(report, 'data.closed.doc.contact.name'),\n storedDate: report.reported_date,\n }],\n };\n};\n\nfn((state) => {\n const { report } = state.data;\n\n state.dhis2Mapping = {\n orgUnit: \"DiszpKrYNg8\",\n occurredAt: report.reported_date,\n program: \"wNRmGnc1t11\",\n status: \"COMPLETED\",\n ...mapReport(report)\n };\n\n console.log(state.dhis2Mapping);\n return state;\n});\n", |
| 101 | + "adaptor": "@openfn/language-common@2.3.0", |
102 | 102 | "project_credential_id": null
|
103 | 103 | },
|
104 | 104 | "Create-Event-Program": {
|
105 | 105 | "id": "5c26c910-7f0d-4cd7-8a71-22eba3d5db3c",
|
106 | 106 | "name": "Create Event Program",
|
107 | 107 | "body": "// Create events\ncreate(\"events\", $.dhis2Mapping);",
|
108 |
| - "adaptor": "@openfn/language-dhis2@latest", |
| 108 | + "adaptor": "@openfn/language-dhis2@6.1.0", |
109 | 109 | "project_credential_id": "752324bf-1765-4b45-8bdc-478317f8b362"
|
110 | 110 | }
|
111 | 111 | },
|
112 | 112 | "edges": {
|
113 | 113 | "webhook->DHIS2-mapping": {
|
114 | 114 | "enabled": true,
|
115 | 115 | "id": "a80a7125-32af-4159-8684-d014c07e6cfd",
|
| 116 | + "target_job_id": "0f2bd9fa-1f44-4152-8c0c-9fbca0e75f04", |
116 | 117 | "source_trigger_id": "7bf6c1bc-f16f-40c0-89a5-184ae6ae742f",
|
117 |
| - "condition_type": "always", |
118 |
| - "target_job_id": "0f2bd9fa-1f44-4152-8c0c-9fbca0e75f04" |
| 118 | + "condition_type": "always" |
119 | 119 | },
|
120 | 120 | "DHIS2-mapping->Create-Event-Program": {
|
121 | 121 | "enabled": true,
|
122 | 122 | "id": "bc96b14e-af1e-48d8-884a-51d2fc018684",
|
| 123 | + "target_job_id": "5c26c910-7f0d-4cd7-8a71-22eba3d5db3c", |
123 | 124 | "source_job_id": "0f2bd9fa-1f44-4152-8c0c-9fbca0e75f04",
|
124 |
| - "condition_type": "on_job_success", |
125 |
| - "target_job_id": "5c26c910-7f0d-4cd7-8a71-22eba3d5db3c" |
| 125 | + "condition_type": "on_job_success" |
126 | 126 | }
|
127 | 127 | }
|
128 | 128 | }
|
|
0 commit comments