Esta secção é baseada em questionários a visitantes deste website. As perguntas destes questionários são semelhantes a muitos inquéritos científicos e governamentais.
Cada entrada no questionário é guardada como um número no intervalo [-2, +2], em que -2 significa fortemente negativo e +2 significa fortemente positivo.
Filtramos as respostas de modo a eliminar potencial spam, tal como pessoas que inserem uma elevada quantidade de dados que diferencia significativamente do valor mediano.
Para apresentar resultados dos inquéritos, utilizamos a escala [0, 100] para os valores, para uma mais fácil leitura dos utilizadores.
Para gerar o indicador atual (que está sempre atualizado) utilizamos dados até 36 meses de idade. Incluímos apenas cidades para as quais existem pelo menos um certo número de colaboradores. O nosso indicador semi-anual é refeito duas vezes por ano, empurrando o indicador atual para a vista histórica.
Indicador de Cuidados de Saúde é uma estimativa da qualidade geral do sistema de cuidados de saúde, profissionais de cuidados de saúde, equipamento, pessoal, doutores, custo, etc.
Indicador Exp de Cuidados de Saúde - está orientado a mostrar o indicador de cuidados de saúde tal que aumenta MAIS (exponencialmente) se o sistema de cuidados de saúde é de melhor qualidade. É semelhante ao indicador de cuidados de saúde, mas aumenta mais exponencialmente.
As fórmulas atuais para calcular estes indicadores estão sujeitas a alterações e, neste momento, são utilizadas fórmulas empíricas bastante complexas.
Estas fórmulas escritas na linguagem de programação Java são as seguintes:
//assumes all input values are in the range [-2 , 2], where -2 means very low and 2 means very high
@Override
protected void calculateIndex() {
index = new HealthCareIndex();
double overall = 0.0;
overall += getIndexPartPreCalc(skill_and_competency);
overall += getIndexPartPreCalc(speed);
overall += getIndexPartPreCalc(modern_equipment);
overall += getIndexPartPreCalc(accuracy_and_completeness);
overall += getIndexPartPreCalc(friendliness_and_courtesy);
overall += getIndexPartPreCalc(responsiveness_waitings);
overall += getIndexPartPreCalc(location);
overall += 2 * getIndexPartPreCalc(cost);
index.main = overall / 9;
double expScale = 0.0;
expScale += getIndexPartPreCalcExpScaleStandard(skill_and_competency);
expScale += getIndexPartPreCalcExpScaleStandard(speed);
expScale += getIndexPartPreCalcExpScaleStandard(modern_equipment);
expScale += getIndexPartPreCalcExpScaleStandard(accuracy_and_completeness);
expScale += getIndexPartPreCalcExpScaleStandard(friendliness_and_courtesy);
expScale += getIndexPartPreCalcExpScaleStandard(responsiveness_waitings);
expScale += getIndexPartPreCalcExpScaleStandard(location);
expScale += 2 * getIndexPartPreCalcExpScaleStandard(cost);
index.exp = calcScaleStandardIndexFromSum(expScale, 9);
}
protected double getIndexPartPreCalc(double internalValue) {
return (internalValue + 2) * 25;
}
protected double getIndexPartPreCalcExpScaleStandard(double internalValue) {
return getIndexPartPreCalcExpScale(internalValue, Math.E);
}
protected double getIndexPartPreCalcExpScale(double internalValue, double exp) {
return Math.pow((internalValue + 2) * 25, exp);
}
protected double calcScaleStandardIndexFromSum(double scaleSum, int elems) {
return Math.pow(scaleSum / elems, 1 / (Math.E * 8.8 / 10));
}