pmsi_rust::cli

Function pmsi_rust_cli

pub fn pmsi_rust_cli()
Expand description

§pmsi_rust CLI ; en ligne de commande

§Paramètres par défaut

./target/release/pmsi_rust

§lire les RSA 2012

Découper la partie fixe des RSA 2012 et les écrire dans un fichier parquet

./target/release/pmsi_rust  \
                    -a 12 -e rsa -f ~/Documents/data/mco/290000017.2012.12.rsa \
                    -o ~/Documents/data/parquet/rust/rsa/290000017.2012.12.rsa.parquet

§Accéder à l’aide

./target/release/pmsi_rust -h
Requêteur rust PMSI : pour tester rust

Usage: pmsi_rust [OPTIONS]

Options:
  -f, --file <file>             |-- un fichier .* PMSi
  -a, --annee <annee>           |-- Année du fichier PMSI, 22 par défaut
  -e, --extension <extension>   |-- Extension * du fichier PMSI, rsa par défaut [rsa, ano, med, rss.ini.txt, ano.txt, med.txt]
  -o, --output <output>         |---- Chemin de sortie d'un fichier avec extension csv ou parquet
      --ccam <pattern_ccam>     |------ requêteur rsa/rss : Pattern regex CCAM
      --cim <pattern_cim>       |------ requêteur rsa/rss : Pattern regex CIM
      --ghm <pattern_ghm>       |------ requêteur rsa/rss : Pattern regex GHM
      --grep_rss <pattern_rss>  |------ requêteur rsa/rss : Pattern regex ligne entière du RSA ou du RSS
  -h, --help                    Print help
  -V, --version                 Print version

§Exemple d’utilisation plus complet

on découpe les RSA partie fixe de 2012 à 2022, pour ensuite les requêter en fichier parquet avec duckdb (SQL)

for i in {12..22};
do ./target/release/pmsi_rust  -a $i -e rsa \
   -f ~/Documents/data/mco/290000017.20$i.12.rsa \
   -o ~/Documents/data/parquet/rust/rsa/290000017.20$i.12.rsa.parquet;
done;

Puis on requête les dp des RSA Z51% dans duckdb:

gp@macbook pmsi_rust % duckdb
v0.8.1 6536a77232
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
D .timer on
D select ansor, count(*)
> from read_parquet('~/Documents/data/parquet/rust/rsa/*.parquet', union_by_name = True)
> where dp like 'Z51%'
> group by ansor
> order by ansor;
┌─────────┬──────────────┐
│  ansor  │ count_star() │
│ varchar │    int64     │
├─────────┼──────────────┤
│ 2012    │        37557 │
│ 2013    │        38765 │
│ 2014    │        40380 │
│ 2016    │        45430 │
│ 2017    │        49877 │
│ 2018    │        50661 │
│ 2019    │        51765 │
│ 2020    │        53895 │
│ 2021    │        57361 │
│ 2022    │        59356 │
├─────────┴──────────────┤
│ 10 rows      2 columns │
└────────────────────────┘
Run Time (s): real 0.023 user 0.114570 sys 0.008565
D select count(*) from read_parquet('~/Documents/data/parquet/rust/rsa/*.parquet', union_by_name = True);
┌──────────────┐
│ count_star() │
│    int64     │
├──────────────┤
│      1347388 │
└──────────────┘
Run Time (s): real 0.008 user 0.007474 sys 0.003167