diff --git a/Cargo.toml b/Cargo.toml index a4ff5d4..579fb99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,5 +4,6 @@ members = [ "crates/backend", "crates/desktop", "crates/sesam-vitale", + "crates/services-sesam-vitale-sys", "crates/utils", ] diff --git a/crates/services-sesam-vitale-sys/Cargo.toml b/crates/services-sesam-vitale-sys/Cargo.toml index c241e61..21610d1 100644 --- a/crates/services-sesam-vitale-sys/Cargo.toml +++ b/crates/services-sesam-vitale-sys/Cargo.toml @@ -2,5 +2,3 @@ name = "services-sesam-vitale-sys" version = "0.1.0" edition = "2021" - -[dependencies] diff --git a/crates/services-sesam-vitale-sys/build.rs b/crates/services-sesam-vitale-sys/build.rs deleted file mode 100644 index e69de29..0000000 diff --git a/crates/services-sesam-vitale-sys/src/lib.rs b/crates/services-sesam-vitale-sys/src/lib.rs index 7d12d9a..0b4546e 100644 --- a/crates/services-sesam-vitale-sys/src/lib.rs +++ b/crates/services-sesam-vitale-sys/src/lib.rs @@ -1,3 +1,6 @@ +mod types; + +use types::*; pub fn add(left: usize, right: usize) -> usize { left + right } diff --git a/crates/services-sesam-vitale-sys/src/types.rs b/crates/services-sesam-vitale-sys/src/types.rs new file mode 100644 index 0000000..2712402 --- /dev/null +++ b/crates/services-sesam-vitale-sys/src/types.rs @@ -0,0 +1,176 @@ +struct Identification { + value: T, + // Key to check the validity of the value + // TODO: implement checking algorithm + key: u8, +} +type Byte = u8; + +enum IdentificationNationale { + NumeroAdeli(String), + NumeroEmployeeDansStructure(IdentificationStructure, String), + NumeroDRASS(String), + NumeroRPPS(String), + /// N° Etudiant Médecin type ADELI sur 9 caractères (information transmise par l’ANS) + NumeroEtudiantMedecin(String), +} + +enum TypeCarteProfessionnelSante { + /// Carte de Professionnel de Santé (CPS) + CarteDeProfessionnelSante, + /// Carte de Professionnel de Santé en Formation (CPF) + CarteDeProfessionnelSanteEnFormation, + /// Carte de Personnel d'Établissement de Santé (CDE/CPE) + CarteDePersonnelEtablissementSante, + /// Carte de Personnel Autorisé (CDA/CPA) + CarteDePersonnelAutorise, + /// Carte de Personne Morale + CarteDePersonneMorale, +} + +enum CategorieCarteProfessionnelSante { + Reelle, + Test, + Demonstration, +} + +enum CodeCivilite { + Adjudant, + Amiral, + Aspirant, + Aumônier, + Capitaine, + Cardinal, + Chanoine, + Colonel, + Commandant, + Commissaire, + Conseiller, + Directeur, + Docteur, + Douanier, + Epouxse, // Epoux(se) + Evêque, + Général, + Gouverneur, + Ingénieur, + Inspecteur, + Lieutenant, + Madame, + Mademoiselle, + Maître, + Maréchal, + Médecin, + Mesdames, + Mesdemoiselles, + Messieurs, + Monseigneur, + Monsieur, + NotreDame, + Pasteur, + Préfet, + Président, + Professeur, + Recteur, + Sergent, + SousPréfet, + Technicien, + Veuve, +} + +struct CarteProfessionnelSante { + type_carte: TypeCarteProfessionnelSante, + categorie_carte: CategorieCarteProfessionnelSante, + professionnel_sante: ProfessionnelDeSante, +} + +struct ProfessionnelDeSante { + prenom: String, + nom: String, + code_civilite: CodeCivilite, + identification_nationale: Identification, + situations_execice: Vec, +} + +enum IdentificationStructure { + NumeroAdeliCabinet(String), + NumeroFINESS(String), + NumeroSIREN(String), + NumeroSIRET(String), + NumeroRPPSCabinet(String), +} + +struct StructureMedicale { + identification: Identification, + raison_sociale: String, // Nom Entreprise +} + +enum ModeExercice { + LiberalExploitantCommercant, // Libéral, exploitant, commerçant + Salarie, + Remplacant, + Benevole, +} + +enum StatutExercice { + // TAB-Statuts géré par l’ANS il faut trouver la donnee + PLACEHOLDER(u8), +} + +enum SecteurActivite { + EtablissementPublicDeSanté, + HopitauxMilitaires, + EtablissementPrivePSPH, // Participant au Service Public Hospitalier + EtablissementPriveNonPSPH, + DispensaireDeSoins, + AutresStructuresDeSoinsRelevantDuServiceDeSanteDesArmees, + CabinetIndividuel, + CabinetDeGroupe, + ExerciceEnSociete, + SecteurPrivePHTempsPlein, + TransportSanitaire, + EntrepriseDInterim, + EtablissementDeSoinsEtPrevention, + PreventionEtSoinsEnEntreprise, + SanteScolaireEtUniversitaire, + RecrutementEtGestionRH, + PMIPlanificationFamiliale, + EtablissementPourHandicapes, + ComMarketingConsultingMedia, + EtablissementPersonnesAgees, + EtablissementAideaLaFamille, + EtablissementDEnseignement, + EtablissementsDeProtectionDeLEnfance, + EtablissementsDHebergementEtDeReadaptation, + Recherche, + AssurancePrivee, + OrganismeDeSecuriteSociale, + MinistèreEtServicesDeconcentres, + CollectivitesTerritoriales, + AssociationsEtOrganitationsHumanitaire, + LaboratoireDeBiologieMedicale, + AutreEtablissementSanitaire, + ProductionCommercialisationGrosBienMedicaux, + CommerceDétailDeBiensMédicaux, + PharmacieDOfficine, + CentreDeDialyse, + ParaPharmacie, + AutreSecteurDActivité, + SecteurNonDefini, + CentreAntiCancer, + CentreDeTransfusionSanguine, + RépartitionDistribributionFabricationExploitationImportationMedicamentsEtDispositifsMédicaux, + IncendiesEtSecours, + EntreprisesIndustriellesEtTertiairesHorsIndustriesPharmaceutiques, + + EntiteDUnTOM, + FabricationExploitationImportationMedicamentsEtDispositifsMedicaux, +} +struct SituationDExercice { + /// Numéro identifiant la situation du PS parmi ses autres situations inscrites sur sa CPS + identifiant_situation: Byte, + mode_exercice: Option, + statut_exercice: Option, + secteur_activite: Option, + structure_d_exercice: Option, +}