---
title: "Vers la database avec pmeasyr"
author: "Guillaume Pressiat"
date: 16/09/2017
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{database migration with pmeasyr}
  %\VignetteEngine{knitr::rmarkdown}
  \usepackage[utf8]{inputenc}
---

```{r  eval = F}
library(pmeasyr)
library(dplyr, warn.conflicts = F)
library(dbplyr)
library(DBI)
```

### 0 - Definir l'objet de connexion a la db

#### 0.1 - Connexion à une db MonetDBLite

```{r eval = F}
dbdir <- "~/Documents/data/monetdb"
con <- src_monetdblite(dbdir)
```

#### 0.2 - Connexion à une db SQLite


```{r eval = F}
dbdir <- "~/Documents/data/sqlite/pmsi.sqlite"
con <- src_sqlite(dbdir)
```


#### 0.3 - Connexion à une db PostgreSQL


```{r eval = F}
con <- src_postgres(user = "gui", password = "gui", dbname = "aphp",
                    host = "localhost", port = 5432)
```


### 1 - Definir le noyau de parametres pmeasyr

```{r, eval = F}
# noyau_skeleton()
p <- noyau_pmeasyr(
  finess   = '750712184',
  annee = 2016,
  mois     = 12,
  path     = '~/Documents/data/mco',
  progress = F, 
  tolower_names = T, # choix de noms de colonnes minuscules : T / F
  n_max = 1e4, # on limite la lecture a un petit nombre de lignes pour tester d'abord
  lib = F)
```


### 2 - Integrer les tables pmsi dans la db a laquelle on est connecte


#### MCO

Avec les fonctions `db_mco_in` et `db_mco_out`, les tables rum, actes et diagnostics des rums, les tables rsa, actes, diagnostics et passages um et ano des rsa sont integrees dans la db, avec le fichier tra accole.

```{r, eval = F}
# Tables mco in 2011
purrr::quietly(db_mco_in)(con,  p, annee = 2011) -> ok # on analyse l'objet ok ensuite : ok ?
# ... 2012 -- 2015
purrr::quietly(db_mco_in)(con,  p, annee = 2016) -> ok # on analyse l'objet ok ensuite : ..

# Tables mco out 2016
purrr::quietly(db_mco_out)(con,  p, annee = 2016) -> ok # on analyse l'objet ok ensuite : ..
# ...
```

#### RSF

Avec la fonction `db_rsf_out`, tous les rafael du out sont integrees dans la db, un par table (A, B, C, etc) et la table ano-ace.

```{r, eval = F}


p$path <- "~/Documents/data/rsf"

# Tables rsf out 2016
purrr::quietly(db_rsf_out)(con,  p, annee = 2016) -> ok # on analyse l'objet ok ensuite : ..
```



#### Table par table

Un exemple pour la table rapss de l'had.

```{r, eval = F}
# Exemple en had
p$path <- "~/Documents/data/had"

irapss(p, annee = 2015) -> tables_had

# Table had rapss 2015
purrr::quietly(db_generique)(con, an = 15, table = tables_had$rapss, prefix = 'had', suffix =  'rapss_rapss') -> ok
# had_15_rapss_rapss
```

### 3 - Connections Tab dans RStudio

Pour pouvoir profiter de l'onglet [Connections](https://db.rstudio.com) dans RStudio v1.1, vous pouvez définir l'objet `con` comme suit :

```{r, eval = F}
con <- DBI::dbConnect(odbc::odbc(), "PostgreSQL")
con <- dbplyr::src_dbi(con)
```

Et vous pourrez alors naviguer dans les 1 000 premières lignes de chacune des tables.
