1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| SELECT
/* -------------------------------------- 1ere Partie -------------------------------------- */
pat.NOM AS NOM,
pat.PRENOM AS PRENOM,
pat.SEXE AS SEXE,
pat.NIP AS IPP,
substr(pat.DATENAIS, 1, 4) AS ANNEE_NAISSANCE,
substr(pat.DATENAIS, 5, 2) AS MOIS_NAISSANCE,
substr(pat.DATENAIS, 7, 2) AS JOUR_NAISSANCE,
decode(pat.PATRONYME,
null, pat.NOM,
'', pat.NOM,
pat.PATRONYME) AS NOM_NAISSANCE,
infpat.NUMSECU AS NSS,
decode(infpat.NUMSECU,
null, '',
'', '',
substr(infpat.NUMSECU, 6, 2)) AS DEP_NAISSANCE,
decode(infpat.NUMSECU,
null, '',
'', '',
substr(infpat.NUMSECU, 8, 3)) AS VILLE_NAISSANCE,
decode(srv.NIETABLIS,
1, 'MZ', 3, 'MZ', 4, 'MZ',
5, 'MZ', 8, 'MZ', 9, 'MZ',
24, 'MZ', 10, 'TH', 11, 'TH',
12, 'TH', 13, 'TH', 14, 'TH',
15, 'TH', 16, 'TH', 17, 'TH',
18, 'TH', 19, 'TH', 20, 'MZ',
21, 'TH', 22, 'MZ', 23, 'TH',
25, 'TH', 'Autre') AS etb,
/* -------------------------------------- 2eme Partie -------------------------------------- */
MIN(CASE WHEN q.NIQ = 4993 THEN bmr.CODE END) AS PatientNiveauEtudes049,
MIN(CASE WHEN q.NIQ = 5023 THEN bmr.CODE END) AS PatientSituationGeo050,
MIN(CASE WHEN q.NIQ = 4988 THEN bmr.CODE END) AS PAtientEnvoyePar051,
MIN(CASE WHEN q.NIQ = 6025 THEN bmr.CODE END) AS DclEtatDemence052,
MIN(CASE WHEN q.NIQ = 6035 THEN bmr.CODE END) AS DclDiagnostic054,
MIN(CASE WHEN q.NIQ = 6026 THEN bmr.CODE END) AS DclTypeActe055,
MIN(CASE WHEN q.NIQ = 4992 THEN bmr.CODE END) AS DclModeDeVie060,
MIN(CASE WHEN q.NIQ = 6033 THEN bmr.CODE END) AS DclFinSuivi064,
MIN(CASE WHEN q.NIQ = 6029 THEN bmr.CODE END) AS PatientProfession112,
MIN(CASE WHEN q.NIQ = 6030 THEN bmr.CODE END) AS PatientAccompagnant113,
/* -------------------------------------- 3eme Partie -------------------------------------- */
MIN(CASE WHEN q.NIQ = 6031 THEN bmr.REPONSE END) AS DclAnneePremierDiag053,
MIN(CASE WHEN q.NIQ = 5015 THEN bmr.REPONSE END) AS DcllADLDetection058,
MIN(CASE WHEN q.NIQ = 5014 THEN bmr.REPONSE END) AS DcllADLConsequence059,
/* -------------------------------------- 4eme Partie -------------------------------------- */
MIN(CASE WHEN q.NIQ = 4967 THEN decode(bmr.REPONSE, 'Non', 'N', 'Oui', 'O','SR') END) AS DclEffetIndesirable078,
MIN(CASE WHEN q.NIQ = 4967 THEN decode(bmr.REPONSE, 'Oui', 'O', 'Non', 'N' ) END) AS DclPR097,
/* -------------------------------------- 5eme Partie -------------------------------------- */
MIN(CASE WHEN q.NIQ = 4964 THEN substr(bmr.REPONSE, 0, 2)||substr(bmr.REPONSE, 4, 2)||substr(bmr.REPONSE, 7, 4) END) AS DclDateActe056,
MIN(CASE WHEN q.NIQ = 6034 THEN substr(bmr.REPONSE, 0, 2)||substr(bmr.REPONSE, 4, 2)||substr(bmr.REPONSE, 7, 4) END) AS DclDateFinSuivi065,
/* -------------------------------------- 6eme Partie -------------------------------------- */
decode((MIN(CASE WHEN q.NIQ = 4956 THEN bmr.CODE END)), '', 'SI', MIN((CASE WHEN q.NIQ = 4956 THEN bmr.CODE END))) DclAPA061,
decode(MIN((CASE WHEN q.NIQ = 4955 THEN bmr.CODE END)), '', 'SI', MIN((CASE WHEN q.NIQ = 4955 THEN bmr.CODE END))) DclALD062,
/* -------------------------------------- 7eme Partie -------------------------------------- */
decode((MIN(CASE WHEN q.NIQ = 6567 THEN bmr.REPONSE END)), null, '', MIN((CASE WHEN q.NIQ = 6567 THEN bmr.REPONSE END))) DclMMSE057,
/* -------------------------------------- 8eme Partie -------------------------------------- */
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Sans aucun traitement pharmaceutique' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPAucun068,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Inhibiteurs de l''acétylcholiestérase' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPInhibAcetyl069,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Antagonistes des récepteurs NMDA' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPAntagonisteNMDA070,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Antidépresseurs' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPAntidepresseurs071,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Neuroleptiques' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPNeuroleptiques072,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Anxiolitiques' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPAnxiolitiques073,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Hypnotiques' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPHypnotiques074,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Nootropes' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPNootropes075,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Autres traitements pharmacologiques chroniques' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPAutres076,
decode((MIN(CASE WHEN q.NIQ = 5035 AND bmr.reponse = 'Patient traité par aucun des traitements listés'THEN bmr.REPONSE END)), NULL, 'N', 'O') DclTPAucunDansListe077,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Aucune prise en charge' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRAucun079,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par un orthophoniste' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSROrthophoniste080,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par un psychologue' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRPsychologue081,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par un kinésithérapeute' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRKinesitherapeute082,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par un ergothérapeute' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRErgotherapeute083,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par un groupe d''intervenants' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRGroupe084,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par un accueil de jour' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRAccueilJour085,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par MAIA' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRMaia086,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par CLIC' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRClic087,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par une plateforme de répits' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRRepits088,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Par SSIAD' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRSiad089,
decode((MIN(CASE WHEN q.NIQ = 4997 AND bmr.reponse = 'Autre type de prise en charge' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclIPSRAutre090,
decode((MIN(CASE WHEN q.NIQ = 4976 AND bmr.reponse = 'Aucun' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclPCAucun091,
decode((MIN(CASE WHEN q.NIQ = 4976 AND bmr.reponse = 'IRM' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclPCIRM092,
decode((MIN(CASE WHEN q.NIQ = 4976 AND bmr.reponse = 'Scanner' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclPCScanner093,
decode((MIN(CASE WHEN q.NIQ = 4976 AND bmr.reponse = 'SPECT' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclPCSPECT094,
decode((MIN(CASE WHEN q.NIQ = 4976 AND bmr.reponse = 'PET' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclPCPET095,
decode((MIN(CASE WHEN q.NIQ = 4976 AND bmr.reponse = 'Biomarqueurs' THEN bmr.REPONSE END)), NULL, 'N', 'O') DclPCBioMarqueurs096,
/* -------------------------------------- 9eme Partie -------------------------------------- */
decode((MIN(CASE WHEN q.NIQ = 4990 THEN decode(bmr.REPONSE,'aucune','AUCUNE','tutelle','TUTELLE','curatelle','CURATELLE','sans information','SI') END)), '', 'SI',
MIN(CASE WHEN q.NIQ = 4990 THEN decode(bmr.REPONSE,'aucune','AUCUNE','tutelle','TUTELLE','curatelle','CURATELLE','sans information','SI') END)) DclMesureProtection063
FROM
BM_TH_S th
INNER JOIN PATIENT pat ON pat.nipatient = th.nipatient
LEFT OUTER JOIN INFOPAT infpat ON pat.nipatient = infpat.nipatient
INNER JOIN EJ_SRV srv ON th.niservice = srv.niservice
-- Jointures pour les sous-requêtes corrélées
INNER JOIN BM_TH_S bmt ON bmt.nith = th.nith
INNER JOIN BM_LIB_S bml ON bmt.NITH = bml.NITH
INNER JOIN BM_REP_S bmr ON bml.NILIB = bmr.NILIB
INNER JOIN C_QUESTION q ON bml.NIQ = q.NIQ
WHERE
th.niquest = '194' AND -- Identifiant du Questionnaire de référence
th.retrait = 'F' AND -- Etat de la supression logique du document
srv.retrait = 'F' AND -- Drapeau de supression de l'enregistrement
substr(th.dates, 0, 8) = to_char(sysdate-1, 'yyyymmdd') -- Date du jour
GROUP BY
pat.NOM,
pat.PRENOM,
pat.SEXE,
pat.NIP,
substr(pat.DATENAIS, 1, 4),
substr(pat.DATENAIS, 5, 2),
substr(pat.DATENAIS, 7, 2),
decode(pat.PATRONYME,
null, pat.NOM,
'', pat.NOM,
pat.PATRONYME),
infpat.NUMSECU,
decode(infpat.NUMSECU,
null, '',
'', '',
substr(infpat.NUMSECU, 6, 2)) ,
decode(infpat.NUMSECU,
null, '',
'', '',
substr(infpat.NUMSECU, 8, 3)) ,
decode(srv.NIETABLIS,
1, 'MZ', 3, 'MZ', 4, 'MZ',
5, 'MZ', 8, 'MZ', 9, 'MZ',
24, 'MZ', 10, 'TH', 11, 'TH',
12, 'TH', 13, 'TH', 14, 'TH',
15, 'TH', 16, 'TH', 17, 'TH',
18, 'TH', 19, 'TH', 20, 'MZ',
21, 'TH', 22, 'MZ', 23, 'TH',
25, 'TH', 'Autre'); |