Closed kameshbhariya closed 3 days ago
backup:
//SAMPLE RULE EXAMPLE
'use strict';
({ params, imports }) => {
const _ = imports.lodash;
const summaries = [];
const programEnrolment = params.programEnrolment;
//value can be fetched from entire enrolment using programEnrolment.findObservationInEntireEnrolment(CONCEPT_NAME);
const nutrionalValue = programEnrolment.findLatestObservationInEntireEnrolment("BMI (kg/m²)");
const sickleCellValue = programEnrolment.findLatestObservationInEntireEnrolment("Sickling test result");
const sickleCellSummary = programEnrolment.findLatestObservationInEntireEnrolment("Sickle Cell Disease");
if (nutrionalValue) {
const value = nutrionalValue.getReadableValue();
if (value < 14.5) summaries.push({
name: "Nutrition status as per BMI", value: '9f289574-50ca-4ee7-b2fe-3246df3cfa57'
}); else if (value < 18.5 && value >= 14.5) summaries.push({
name: "Nutrition status as per BMI", value: 'dc5ce238-1358-428c-bcfa-7034b9a99510'
}); else if (value >= 18.5 && value < 25) summaries.push({
name: "Nutrition status as per BMI", value: '8ea2ec87-53f8-464d-9970-87f9886ed6a1'
}); else if (value >= 25 && value < 30) summaries.push({
name: "Nutrition status as per BMI", value: '9c9bd7b7-9a19-4caf-80bf-4da56e9e8933'
}); else summaries.push({ name: "Nutrition status as per BMI", value: 'bb57b4b5-a301-4502-b9d0-e9723560cfa8' });
}
if (!_.isEqual(sickleCellValue, undefined) && sickleCellValue.getReadableValue()) {
if ( sickleCellValue.getReadableValue() === "Disease" ) {
summaries.push({ name: "Sickle Cell Disease", value: '37dd0b32-a7a1-4a6a-86f3-bbe49ad350d8' });
summaries.push({ name: "sickling test result", value: '37dd0b32-a7a1-4a6a-86f3-bbe49ad350d8' });
} else if ( sickleCellValue.getReadableValue() === "Trait" ) {
summaries.push({ name: "Sickle Cell Disease", value: 'e6ab611b-0021-4bf0-a3f8-49788154d996' });
summaries.push({ name: "sickling test result", value: 'e6ab611b-0021-4bf0-a3f8-49788154d996' });
} else {
summaries.push({ name: "Sickle Cell Disease", value: 'b1b0ba3a-be18-43de-b66f-028b37df0162' });
summaries.push({ name: "sickling test result", value: 'b1b0ba3a-be18-43de-b66f-028b37df0162' });
}
}
const hbValues = programEnrolment.getObservationsForConceptName('Haemoglobin');
if (hbValues) {
let isAbnormal = false;
if (!_.isEmpty(hbValues)) {
const value = hbValues.map(({encounterDateTime, obs}) => {
if(!isAbnormal) {
isAbnormal = obs <= 8;
}
return (`${imports.moment(encounterDateTime).format("DD-MM-YYYY")}: ${obs}g/dL`);
})
.join(", ");
summaries.push({name: "HB values", value: value, abnormal: isAbnormal})
}
}
const bmiValues = programEnrolment.getObservationsForConceptName('BMI (kg/m²)');
let isAbnormal = false;
if (!_.isEmpty(bmiValues)) {
const value = bmiValues.map(({encounterDateTime, obs}) => {
if(!isAbnormal) {
isAbnormal = obs <= 14.5;
}
return (`${imports.moment(encounterDateTime).format("DD-MM-YYYY")}: ${obs}`);
})
.join(", ");
summaries.push({name: "BMI values", value: value, abnormal: isAbnormal})//
}
const HBforAnemia = programEnrolment.findLatestObservationInEntireEnrolment('Haemoglobin');
if (!_.isEmpty(HBforAnemia)) {
if (HBforAnemia.getReadableValue() < 8) {
summaries.push({ name: "Anaemic status", value: "1f92d18a-2c91-4421-8c41-2cc56f799c6d" })
} else if (HBforAnemia.getReadableValue() < 11 && HBforAnemia.getReadableValue() >= 8) {
summaries.push({ name: "Anaemic status", value: "830319d4-b616-4253-88ff-00ada2b3ff03" })
} else {
summaries.push({ name: "Anaemic status", value: "e9e15ea9-15b3-4fdd-9a21-e3f06fb4c8bb" })
}
}
const schoolDropOut = programEnrolment.findLatestObservationInEntireEnrolment('Going to school');
const addiction = programEnrolment.findLatestObservationInEntireEnrolment('Do you have any addiction');
const chronicSickness = programEnrolment.findLatestObservationInEntireEnrolment('Is there any other condition you want to mention about him/her');
const menstrualAbsenteesim = programEnrolment.findLatestObservationInEntireEnrolment('Does she remain absent during menstruation');
let otherVulnerabilities = [];
if (!_.isEqual(schoolDropOut, undefined) && schoolDropOut.getReadableValue() === 'Dropped out') {
otherVulnerabilities.push('6303129d-722f-436e-a755-08995e82bf5a');
}
if (!_.isEqual(addiction, undefined) && !_.includes(addiction.getReadableValue(), "None")) {
otherVulnerabilities.push('5a6fb60d-190a-47e3-9e91-fa7d213121a3');
}
if (!_.isEqual(chronicSickness, undefined) && !_.includes(chronicSickness.getReadableValue() , 'No problem') ){
otherVulnerabilities.push('f6e14fa4-3b2f-4366-b546-85704ac7e19c');
}
if (!_.isEqual(menstrualAbsenteesim, undefined) && menstrualAbsenteesim.getReadableValue() !== 'No' ){
otherVulnerabilities.push('90e6288b-ba73-49bc-a683-999722ad9f92');
}
if (!_.isEmpty(otherVulnerabilities)) {
summaries.push({ name: "Other Vulnerabilities", value: otherVulnerabilities })
}
const nutritionalStatus = programEnrolment.findLatestObservationInEntireEnrolment('Nutritional status as per WHO');
if(nutritionalStatus){
summaries.push({ name: "Nutritional status as per WHO", value: nutritionalStatus.getValue() });
}
const mentalhealth = programEnrolment.findLatestObservationInEntireEnrolment('Mental Health Issue');
if(mentalhealth){
summaries.push({ name: "Mental Health Issue", value: mentalhealth.getValue() });
}
return summaries;
};
The summary shows the double status of sickle cell.