# Optique médicale

Prestations Dépenses DCIR/DCIRS Fiche-programme

Crédits

La fiche a été rédigée par Kristel JACQUIER (DSS).

À savoir : Des références peuvent être données à la fin de la fiche. La dernière date de modification se situe tout en bas à droite.

Dans le SNDS, les dépenses en optique sont regroupées sous les codes prestations ci-dessous (variable PRS_NAT_REF): 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3553, 3554, 3555, 3556, 3557, 3581, 3582, 3583, 5101, 5102, 5103, 5104, 5105, 5106, 5107

Le détail de ces prestations est donné par le code LPP. Les codes commençant par '22xxxxx' sont ceux du chapitre Optique Médicale de la liste LPP (total de 271 codes/dispositifs médicaux dans la dernière version LPP764).

Le libellé des codes LPP donne les caractéristiques de verres:

  • Adultes ou enfants
  • Verre blanc ou teinté
  • Unifocal ou multifocal
  • Sphériques ou sphéro-cylindriques ainsi que l'intensité de cette correction

On trouve les codes LPP dans la variable TIP_PRS_IDE de la table de prestation affinée des dispositifs médicaux : ER_TIP_F.

Il faut donc effectuer une jointure entre la table prestation ER_PRS_F et ER_TIP_F pour avoir le détail par codes LPP.

# Exemple de code pour extraire les dépenses d'optique médicale

Le programme est conçu pour être utilisé sur le DCIR. Les tables du DCIR se trouvent dans la bibliothèque ORAVUE.

%macro Tables_MENSUELLES (indice, ddmmaaaa_flux, annee);

PROC SQL;
CREATE TABLE base_opt&indice. AS SELECT
    t1.BEN_NIR_PSA,
	t1.BEN_RNG_GEM,
	t1.EXE_SOI_AMD,
	t1.PRS_ACT_QTE, 
	t1.BEN_NAI_ANN,
	t1.BEN_CMU_TOP,
	t1.BEN_CMU_ORG, 
    t1.BSE_REM_BSE, 
    t1.BSE_REM_MNT, 
    t1.EXE_SOI_DTD, 
    t1.PRS_PAI_MNT,  
    t1.PRS_NAT_REF, 
    t1.RGO_REM_TAU,
	t1.pfs_exe_num,
	t2.TIP_PRS_IDE,
	t2.tip_ord_num,
	t2.TIP_ACT_QSN
FROM ORAVUE.ER_PRS_F AS t1 INNER JOIN ORAVUE.ER_TIP_F AS t2
ON (t1.DCT_ORD_NUM = t2.DCT_ORD_NUM AND t1.FLX_DIS_DTD = t2.FLX_DIS_DTD AND 
	t1.FLX_EMT_NUM = t2.FLX_EMT_NUM AND   t1.FLX_EMT_ORD = t2.FLX_EMT_ORD AND t1.FLX_EMT_TYP = t2.FLX_EMT_TYP AND t1.FLX_TRT_DTD = t2.FLX_TRT_DTD AND  t1.ORG_CLE_NUM = t2.ORG_CLE_NUM AND t1.PRS_ORD_NUM = t2.PRS_ORD_NUM AND t1.REM_TYP_AFF = t2.REM_TYP_AFF)
WHERE t1.exe_soi_amd LIKE '&annee.%'
	AND  t1.FLX_DIS_DTD = DHMS(mdy(input(substr(put(&ddmmaaaa_flux.,8.),3,2),2.),input(substr(put(&ddmmaaaa_flux.,8.),1,2),2.),input(substr(put(&ddmmaaaa_flux.,8.),5,4),4.)),0,0,0)
	AND t1.DPN_QLF ne 71 and t1.PRS_DPN_QLP ne 71
	AND t1.PRS_NAT_REF in (3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3553,3554,3555,3556,3557,3581,3582,
							3583,5101,5102,5103,5104,5105,5106,5107)
;
QUIT;
%mend;
OPTIONS MPRINT;

%MACRO boucle (annee) ;
%let anb=%eval(&annee+1);

/* Flux de soins remontés en 2015 pour les soins de l'année 2015 */
%do i = 2 %to 12 ;
      data _null_; call symput ('j',put(%eval(&i),z2.));run;
      %Tables_MENSUELLES(&annee.&i.,01&j.&annee.,&annee.) ;
%end ;
/* Flux de soins remontés en 2016 pour les soins de l'année 2015: 6 mois de remontée de flux après décembre 2015*/
%do i = 1 %to 6 ;
      data _null_; call symput ('j',put(%eval(&i),z2.));run;
      %Tables_MENSUELLES(&anb.&i.,01&j.&anb.,&annee.) ;
%end ;
%MEND ;
%boucle(2015);

/*On crée la table annuelle à partir des tables mensuelles*/
%MACRO crea_table;

	DATA libopttb.extraction_optique_2015_NEW;
	SET 
		%DO annee=2015 %TO  2016;
			%if &annee = 2016 %then %do;
				%DO i= 1 %TO 6; base_opt&&annee.&i. %END;
			%END;
			%else %do;
				%DO i= 2 %TO 12; base_opt&&annee.&i. %END;
			%END;
		%END;
	; 
	RUN;

%MEND;
%crea_table;

/*Marché de l'optique remboursable en 2015 : 5 842 721 868€*/
PROC SQL;
		CREATE TABLE dep_totale_2015 AS 
		SELECT sum(prs_pai_mnt)
		FROM libopttb.extraction_optique_2015_NEW
		WHERE tip_ord_num=1
		;
QUIT;

La variable tip_ord_num donne le nombre de lignes de la table affinée correspondant à une ligne dans la table prestation. Lorsque tip_ord_num est supérieur à 1, cela signifie que pour une ligne de la table prestation, on a n lignes sur la table affinée. Il faut donc être prudent, car les informations de la table prestations sont dupliquées sur ces lignes. Notamment le montant de l'acte qui se trouve dans la table prestation.
Se reporter à la fiche dédiée aux dépenses dans les tables affinées pour trouver différentes méthodes qui permettent d'éviter de surestimer le montant de l'acte.
Un programme (opens new window) a également été mis à disposition par Mathis Haradji (DSS). La méthode consiste à supprimer les doublons apparus suite à la jointure avec la tables affinée ER_TIP_F grâce à la création de variables quantifiant la quantité de verres et de montures facturés par ligne de la table des prestations (on définit une ligne de la table prestation par l'ensemble des variables que l'on sélectionne dans cette table lors de la jointure, ainsi on groupe les quantités TIP_ACT_QSN par le montant payé PRS_PAI_MNT).