/* Raportul credintelor cu motor "profiluri" - structura pe sectiunile din docurile 4 ("Structura rezultatului automat"): validitate / rezultat global / distributie / harta ariilor (+ harta celor 50 de indicatori la formatul A) / alerte / resurse / decodificare. Formatul B (Recunostinta, Smerenia) = 50 seturi; formatul A (Iubirea, Grija, Iertarea) = 150 seturi per-actiune. Scoringul vine din anamneza_scoring_plus.js; decodificarile structurate stau in banca.decodificarePlus. Bunatatea NU trece pe aici. Frazele meta din decodificari (banca..note) NU se afiseaza (decizia Marian 24.07). */ (function () { "use strict"; function rasp(store, cred, m) { return (store.anamneza && store.anamneza[cred] && store.anamneza[cred][m]) || {}; } function numeScala(banca, n) { var s = banca.scale[n - 1]; return s ? s.nume : "?"; } function eNoua(banca) { return banca && banca.motor === "profiluri"; } /* formularea verdictului global - textele din docurile 4, adaptate la nume */ function verdictGlobal(banca, rez) { var p = rez.profil; if (banca.format === "A") { if (p.tip === "clar") { return numeScala(banca, p.dominant) + ". Rezultatul global este clar și validat: " + "punctajul, distribuția alegerilor și harta ariilor indică aceeași direcție de dezvoltare."; } if (p.tip === "tranzitie") { var bazaA = "Tranziție globală de la " + numeScala(banca, p.jos) + " spre " + numeScala(banca, p.sus); if (p.echilibrata) return bazaA + " - tranziție echilibrată între cele două stadii."; return bazaA + ", cu predominanța " + numeScala(banca, p.predominant) + "."; } if (p.tip === "polarizat" || p.tip === "mixt-polarizat") { return "Profil global mixt și polarizat: punctajul global rămâne orientativ - nu se " + "atribuie o singură etichetă finală. Comportamentele negative și resursele pozitive " + "se raportează separat."; } if (p.tip === "heterogen") { return (p.puternicHeterogen ? "Profil puternic heterogen: minimum patru arii se află la două sau mai multe niveluri distanță de stadiul global - " : "Profil heterogen: manifestarea diferă semnificativ între ariile vieții - ") + "harta ariilor și a indicatorilor devine rezultatul principal."; } return "Profil global mixt sau heterogen: nu se atribuie o singură etichetă finală - " + "harta ariilor și a indicatorilor devine rezultatul principal."; } var R = banca.regulaVerdict !== "S"; if (p.tip === "coerent" || p.tip === "clar") { return R ? numeScala(banca, p.dominant) + " - profil global coerent." : "Rezultat clar și validat: " + numeScala(banca, p.dominant) + ". Punctajul global, distribuția alegerilor și rezultatele ariilor indică aceeași direcție de dezvoltare."; } if (p.tip === "tranzitie") { var baza = "Tranziție de la " + numeScala(banca, p.jos) + " spre " + numeScala(banca, p.sus); if (p.echilibrata) return baza + " - tranziție globală echilibrată între cele două stadii."; return baza + ", cu predominanța " + numeScala(banca, p.predominant) + "."; } if (p.tip === "polarizat" || p.tip === "mixt-polarizat") { return "Profil " + (p.tip === "polarizat" ? "global polarizat" : "mixt și polarizat") + ": manifestarea diferă radical între indicatori sau între ariile vieții. " + "Comportamentele negative primesc prioritate de intervenție."; } if (p.tip === "heterogen") { return "Profil heterogen: manifestarea diferă semnificativ între ariile vieții - " + "harta celor zece arii este mai relevantă decât eticheta globală."; } return "Profil global mixt: nu se atribuie un singur stadiu final - " + "harta celor zece arii devine rezultatul principal."; } function verdictArie(banca, a) { var p = a.profil; if (p.tip === "coerent" || p.tip === "clar") return numeScala(banca, p.dominant) + " - " + (p.tip === "clar" ? "rezultat clar" : "profil coerent"); if (p.tip === "tranzitie") return "Tranziție " + numeScala(banca, p.jos) + " → " + numeScala(banca, p.sus); if (p.tip === "polarizat") return "Profil polarizat"; if (p.tip === "mixt-polarizat") return "Mixt și polarizat"; if (p.tip === "neuniform") return "Neuniform - se citește pe indicatori"; return "Profil mixt"; } var SECTIUNI_DEC = [ ["definitie", "Definirea stadiului"], ["stadiu", "Stadiul curent de dezvoltare"], ["cauze", "Cauzele instalării stadiului"], ["programe", "Programele care stau la baza stadiului"], ["impactPersonal", "Impactul asupra vieții personale"], ["impactJur", "Impactul asupra celor din jur"], ["directii", "Direcții concrete de reconstrucție sau consolidare"], ]; function Decodificare(props) { var banca = props.banca; var nivel = props.nivel; var titluMic = props.titluMic; var doarManifestari = props.doarManifestari; var d = (banca.decodificarePlus || {})[String(nivel)]; if (!d || d.lipsaSursa) { return (

Decodificarea stadiului {numeScala(banca, nivel)}

Decodificarea acestui stadiu este în pregătire la Dr. Petre - se activează imediat ce sosește.

); } var sectiuni = doarManifestari ? [SECTIUNI_DEC[0], SECTIUNI_DEC[1]] : SECTIUNI_DEC; return (

{titluMic || ("Decodificarea stadiului: " + numeScala(banca, nivel))}

{sectiuni.map(function (sd) { var cheie = sd[0], titlu = sd[1]; if (cheie === "definitie") { return d.definitie ? (

{titlu}

{d.definitie}

) : null; } var iteme = d[cheie] || []; if (!iteme.length) return null; return (

{titlu}

{iteme.map(function (it, i) { return (

{it.titlu ? {it.titlu}{it.text ? ": " : ""} : null} {it.text}

); })}
); })}
); } function Bara(props) { var pct = props.pct; return (
); } function ListaAlerte(props) { var titlu = props.titlu, randuri = props.randuri, banca = props.banca; if (!randuri.length) return null; return (

{titlu} ({randuri.length})

{randuri.map(function (r) { var aria = banca.arii[r.aria - 1]; return (

{aria ? aria.nume : "Aria " + r.aria} · Ind. {r.ind} {r.act ? " · Acț. " + r.act : ""}: {r.text}

); })}
); } /* eticheta scurta a profilului unui indicator (formatul A) */ function profilIndicatorTxt(banca, p) { if (p.tip === "clar") return "Clar: " + numeScala(banca, p.dominant); if (p.tip === "tranzitie") return "Tranziție " + numeScala(banca, p.jos) + " → " + numeScala(banca, p.sus); if (p.tip === "polarizat") return "Polarizat"; return "Neuniform"; } function RezultatPlus(props) { var banca = props.banca, cred = props.cred, m = props.m, store = props.store; var r = rasp(store, cred, m); var rez = window.AnamnezaPlusScoring.rezultat(banca, r); var titlu = (m === "p1" ? "Rezultatul măsurării P1" : "Rezultatul măsurării P2"); if (!rez.valid) { return (

{titlu}

{rez.motiv}

); } var eA = banca.format === "A"; var maxG = eA ? 900 : 300; var totalAlegeri = eA ? 150 : 50; var maxArie = eA ? 90 : 30; var p = rez.profil; var decodificari; if (p.tip === "coerent" || p.tip === "clar") { decodificari = ; } else if (p.tip === "tranzitie") { decodificari = (
); } else if (p.tip === "polarizat" || p.tip === "mixt-polarizat") { var negDom = rez.distributie.slice(0, 3).indexOf(Math.max(rez.distributie[0], rez.distributie[1], rez.distributie[2])) + 1; var pozDom = 4 + rez.distributie.slice(3).indexOf(Math.max(rez.distributie[3], rez.distributie[4], rez.distributie[5])); decodificari = (
); } else { decodificari = (

Nu se atribuie o decodificare globală unică - rezultatul se citește pe harta celor zece arii și pe indicatori.

); } return (

{titlu} - {banca.titlu}

{/* 1+2. validitate + rezultat global */}
Valid tehnic Scor global {rez.scorGlobal} / {maxG} Media {rez.medie.toFixed(2)} Stadiul matematic {numeScala(banca, rez.stadiuMat)}
Verdict. {verdictGlobal(banca, rez)}
{/* 3. distributia celor sase scale */}

Distribuția celor {totalAlegeri} de alegeri

{banca.scale.map(function (sc) { var n = rez.distributie[sc.num - 1]; return (
{sc.nume} {n} · {Math.round((n / totalAlegeri) * 100)}%
); })} {/* 4. harta celor zece arii */}

Harta celor zece arii

{rez.arii.map(function (a) { return ( ); })}
AriaScor / {maxArie}MediaStadiul matematicProfilul ariei
{a.nume} {a.scor} {a.medie.toFixed(2)} {numeScala(banca, a.stadiuMat)} {verdictArie(banca, a)}
{/* 4b. harta celor 50 de indicatori (doar formatul A - ceruta de doc 4) */} {eA ? (

Harta celor 50 de indicatori

{rez.arii.map(function (a) { return a.indicatori.map(function (ind, k) { return ( {k === 0 ? : null} ); }); })}
AriaIndicatorulScor / 18Stadiul matematicProfilul
{a.nume}{ind.ind}. {ind.nume} {ind.scor} {numeScala(banca, ind.stadiuMat)} {profilIndicatorTxt(banca, ind.profil)}
) : null} {/* 5. alertele comportamentale */} {(rez.alerte.critice.length || rez.alerte.majore.length || rez.alerte.vulnerabilitati.length) ? (

Alertele comportamentale (independente de scor)

) : (

Nicio alertă comportamentală - nicio selecție pe polul negativ.

)} {/* 6. resursele pozitive */}

Resursele dezvoltate

{numeScala(banca, 4)}: {rez.resurse.p1} {numeScala(banca, 5)}: {rez.resurse.p2} {numeScala(banca, 6)}: {rez.resurse.p3}
{/* 7. decodificarea activata de profil */}

Decodificarea

{decodificari}
); } function EcranInPregatire(props) { return (
{props.titlu}
Pentru {props.numeCredinta}, această secțiune se construiește pe mecanismul propriu al credinței - se activează într-o etapă următoare.
); } window.AnamnezaPlus = { are: eNoua, Rezultat: RezultatPlus, InPregatire: EcranInPregatire, rezultatExport: function (banca, r) { var rez = window.AnamnezaPlusScoring.rezultat(banca, r); if (!rez.valid) return { valid: false, motiv: rez.motiv }; return { valid: true, scorGlobal: rez.scorGlobal, medie: rez.medie, stadiuMat: rez.stadiuMat, stadiuNume: numeScala(banca, rez.stadiuMat), profil: rez.profil, verdict: verdictGlobal(banca, rez), distributie: rez.distributie, arii: rez.arii.map(function (a) { var rand = { idx: a.idx, nume: a.nume, scor: a.scor, stadiuMat: a.stadiuMat, profil: a.profil }; if (a.indicatori) { rand.indicatori = a.indicatori.map(function (i) { return { ind: i.ind, nume: i.nume, scor: i.scor, stadiuMat: i.stadiuMat, profil: i.profil }; }); } return rand; }), alerte: rez.alerte, resurse: rez.resurse, }; }, }; })();