Création d'un Web Service

Le laboratoire GSB veut mettre en place un Web Service permettant aux commerciaux de présenter les nouveaux produits pharmaceutiques aux pharmacies non clientes.
Ce Web Service permettra aux applications d'intégrer les évolutions des données.

Extrait du cahier des charges :

Contraintes :

  1. L'accès aux données sera pour le moment, public
  2. Le format de sortie doit pouvoir être récupéré et traité par les applications diverses
  3. Les informations exposées indiqueront simplement les données concernant les pharmacies et les produits proposés

Technologies :

  1. Base de données MySQL (en vue d'une migration vers SQL Server)
  2. Le Framework Entity Framework pour gérer la couche de persistance
  3. La techologie .NET avec WCF (Framework permettant de gérer les applications orientées service)
  4. Un service REST
  5. Format de sortie ouvert : XML ou JSON : Le JSON s'est avéré plus pratique dans notre cas

Fonctionnalités :

  1. Accès à la liste des pharmacies
  2. Recherche des pharmacies (par ville, code postal, nuémro de département)
  3. Accès aux produits et à leurs conditionnements

MCD correspondant au Web Service
GSB Service Parapharmacie MCD

Fonctions
GSB Service Parapharmacie Code

Résulats retournés :

  • /Pharmacies/12
[{"categorie":null,"codeAPE":"","codeDepartement":"12","codePostal":"12520","conditionnements":[],"departement":null,"lieuDitBp":"","noFiness":"120001532","numCategorie":620,"numVoie":"12","raisonSociale":"PHARMACIE PUEL DIDIER","siret":"45339523800018","telecopie":"0565597166","telephone":"0565598225","typeVoie":"AV","ville":"AGUESSAC","voie":"DES CAUSSES"}, {...}]
  • /Pharmacies/Rodez
[{"categorie":null,"codeAPE":"","codeDepartement":"12","codePostal":"12000","conditionnements":[],"departement":null,"lieuDitBp":"","noFiness":"120003280","numCategorie":620,"numVoie":"8","raisonSociale":"PHARMACIE TERRAL","siret":"30905308000011","telecopie":"","telephone":"","typeVoie":"BD","ville":"RODEZ","voie":"GAMBETTA"},{...}]
  • /Pharmacie/numéro Finess
{"categorie":null,"codeAPE":"","codeDepartement":"12","codePostal":"12000","conditionnements":[],"departement":null,"lieuDitBp":"","noFiness":"120003595","numCategorie":620,"numVoie":"19","raisonSociale":"PHARMACIE ARNAUD","siret":"44924546300012","telecopie":"0565685870","telephone":"0565680856","typeVoie":"R","ville":"RODEZ","voie":"BETEILLE"}
  • /Categories
[{"domaine":null,"libelleCat":"Etablissement de Transfusion Sanguine","numCat":132,"numDomaine":3401,"pharmacies":[]},{"domaine":null,"libelleCat":"Service d'Ambulances","numCat":327,"numDomaine":3404,"pharmacies":[]},{"domaine":null,"libelleCat":"Laboratoire d'Analyses","numCat":610,"numDomaine":3101,"pharmacies":[]},{"domaine":null,"libelleCat":"Laboratoire de Biologie Médicale","numCat":611,"numDomaine":3101,"pharmacies":[]},{...}]
  • /Categorie/numéro catégorie
{"domaine":null,"libelleCat":"Etablissement de Transfusion Sanguine","numCat":132,"numDomaine":3401,"pharmacies":[]}
  • /Departements
[{"codeDpt":"01","nomDpt":"AIN","pharmacies":[]},{"codeDpt":"02","nomDpt":"AISNE","pharmacies":[]},{...}]
  • /Departement/numéro département
{"codeDpt":"12","nomDpt":"AVEYRON","pharmacies":[]}
  • /Domaines
[{"categories":[],"libelleDom":"Laboratoires de Biologie Médicale","numDom":3101},{"categories":[],"libelleDom":"Commerce de Biens à Usage Médicaux","numDom":3201},{...}]
  • /Domaine/numéro domaine
{"categories":[],"libelleDom":"Laboratoires de Biologie Médicale","numDom":3101}
  • /Produits
[{"codePdt":"CA146","conditionnements":[],"denominationPdt":"CalmRando","formePdt":"Crème","indicationsPdt":"Protection cutanée anti-frottements."},{"codePdt":"DE856","conditionnements":[],"denominationPdt":"DécontractRando","formePdt":"Pommade","indicationsPdt":"Traitement local d'appoint des douleurs d'origine musculaire de l'adulte."},{...}]
  • /Produit/numéro produit
{"codePdt":"CA146","conditionnements":[],"denominationPdt":"CalmRando","formePdt":"Crème","indicationsPdt":"Protection cutanée anti-frottements."}
  • /Produit/numéro produit/Conditionnements
[{"codeEmballage":"POP75","codeProduit":"CA146","emballage": {...},"pharmacies":[],"produit": {...}},{"codeEmballage":"TUP50","codeProduit":"CA146","emballage": {...},"pharmacies":[],"produit": {...}}]
  • /Emballage/numéro emballage
{"codeEmb":"AMV05","conditionnements":[],"libelleEmb":"Ampoule verre 5ml"}
Entity Framework
Activités
Javascript
Visual Studio
C#