Datamatrix
Générer un datamatrix INS avec la DevBox-Santé INSi et insérer un cartouche dans un PDF
Il est dorénavant possible (depuis la version 2.6) de générer un datamatrix conforme à la spécification de l’ANS.
Interface
Une interface Java a été mis à disposition :
package fr.devboxsante.insi.datamatrix;
import fr.devboxsante.insi.model.INS;
import java.io.InputStream;
import java.io.OutputStream;
/**
* Génère un Datamatrix conforme à la spécification "INS - Format Datamatrix" de
* l'ANS
*
*/
public interface InsDatamatrixGenerator {
/**
* Génére une image du datamatrix correspondant à l'INS passé en paramètre au
* format défini dans info.format (jpeg par défaut) et à la taille défini dans info.sizeInPx
* @param ins
* @param info
* @return l'image
*/
public byte[] generateDatamatrix(INS ins, InsDatamatrixInfo info);
/**
* Insert le cartouche correspondant à l'INS passé en paramètre comme demandé
* dans la spècification
* @param ins l'Identité National de Santé
* @param info les infos d'insertion dans le PDF
* @param input le pdf en entrée
* @param output le pdf en sortie.
*/
public void insertInsCartoucheInPdf(INS ins, InsCartoucheInfo info, InputStream input, OutputStream output);
}
Son pendant en REST :
Générer le datamatrix
Pour celà, il suffit depuis un environnement java :
final InsDatamatrixGenerator insDatamatrixGenerator = new InsDatamatrixGeneratorImpl();
final INS ins = ... ;
byte[] datamatrix = insDatamatrixGenerator.generateDatamatrix(ins, InsDatamatrixInfo.builder().format("jpg").sizeInPx(200).build());
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("datamatrix200.jpg"));
out.write(datamatrix);
out.close();
Son pendant via l’API REST :
curl -X POST "http://127.0.0.1:8484/insi/v2/datamatrix/jpg?sizeInPx=200" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"matriculeINS\": { \"valeur\": \"1010663220754\", \"cle\": \"60\", \"identifiantSysteme\": \"INS_NIR\" }, \"traitsIdentite\": { \"nomFamille\": \"D'ARTAGNAN DE L'HERAULT\", \"prenomUtilise\": null, \"prenomActeNaissance\": \"PIERRE-ALAIN GUNTHER\", \"sexeAdministratif\": \"M\", \"dateNaissance\": \"2001-06-17\", \"lieuNaissance\": \"63220\" } }"
Vous permet d’obtenir le datamatrix INS :
Insérer le cartouche INS dans le PDF
En plus de générer le datamatrix, il est possible d’insérer le cartouche spécifié par l’ANS dans le fichier PDF.
Ainsi le code suivant :
final INS ins = ...;
insDatamatrixGenerator.insertInsCartoucheInPdf(ins,
InsCartoucheInfo.builder()
.pageNumber(0)
.startX(20)
.startY(85)
.height(80)
.width(160)
.unite(InsCartoucheInfo.Unite.MM)
.build(),
new FileInputStream("input.pdf"),
new FileOutputStream("output.pdf"));
Son pendant en curl :
curl -X POST "http://127.0.0.1:8484/insi/v2/datamatrix/pdf/insertCartouche" -H "accept: */*" -H "Content-Type: multipart/form-data" -F "cartoucheContexte={ "info": { "height": 60, "pageNumber": 0, "startX": 20, "startY": 70, "unite": "MM", "width": 170 }, "ins": { "matriculeINS": { "valeur": "2770763220829", "cle": "10", "identifiantSysteme": "1.2.250.1.213.1.4.8" }, "traitsIdentite": { "nomFamille": "NESSI", "prenomUtilise": "RUTH", "prenomActeNaissance": "RUTH ISABELLE", "sexeAdministratif": "F", "dateNaissance": "1977-07-14", "lieuNaissance": "63220" } } }" -F "file=@1.pdf;type=application/pdf"
vous permet d’obtenir un nouveau fichier comportant le cartouche INS où vous vouliez l’insérer :