chore: start implementing types from docs
This commit is contained in:
parent
3712667a04
commit
f42e38228a
@ -4,5 +4,6 @@ members = [
|
||||
"crates/backend",
|
||||
"crates/desktop",
|
||||
"crates/sesam-vitale",
|
||||
"crates/services-sesam-vitale-sys",
|
||||
"crates/utils",
|
||||
]
|
||||
|
@ -2,5 +2,3 @@
|
||||
name = "services-sesam-vitale-sys"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
|
@ -1,3 +1,6 @@
|
||||
mod types;
|
||||
|
||||
use types::*;
|
||||
pub fn add(left: usize, right: usize) -> usize {
|
||||
left + right
|
||||
}
|
||||
|
176
crates/services-sesam-vitale-sys/src/types.rs
Normal file
176
crates/services-sesam-vitale-sys/src/types.rs
Normal file
@ -0,0 +1,176 @@
|
||||
struct Identification<T> {
|
||||
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<IdentificationNationale>,
|
||||
situations_execice: Vec<SituationDExercice>,
|
||||
}
|
||||
|
||||
enum IdentificationStructure {
|
||||
NumeroAdeliCabinet(String),
|
||||
NumeroFINESS(String),
|
||||
NumeroSIREN(String),
|
||||
NumeroSIRET(String),
|
||||
NumeroRPPSCabinet(String),
|
||||
}
|
||||
|
||||
struct StructureMedicale {
|
||||
identification: Identification<IdentificationStructure>,
|
||||
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<ModeExercice>,
|
||||
statut_exercice: Option<StatutExercice>,
|
||||
secteur_activite: Option<SecteurActivite>,
|
||||
structure_d_exercice: Option<StructureMedicale>,
|
||||
}
|
Loading…
Reference in New Issue
Block a user