Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nr test log model #26

Draft
wants to merge 22 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -56,4 +56,7 @@ input-cache
.project
.settings/*
target/*
.mvn/wrapper/maven-wrapper.jar
.mvn/wrapper/maven-wrapper.jar

# FHIR generated files
fhirpkg.lock.json
116 changes: 116 additions & 0 deletions input/fsh/models/cercle-soins.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
Logical: CercleDeSoins
Id: log-cercle-de-soins
Title: "Cercle De Soins"
Description: "Cercle De Soins"
* idCercleSoins 1..1 Identifier "Identifiant du cercle de soins." "Identifiant du cercle de soins."
* dateCreation 1..1 date "Date de création du cercle de soin." "Date de création du cercle de soin."
* dateMAJ 1..* date "Date de mise à jour du cercle de soin." "Le concept de cercle de soins a plusieurs dates de mise à jour mais chaque version de la ressource, et donc chaque instance de la ressource, ne peut avoir qu’une seule date de mise à jour"
* dateFin 0..1 date "Date de fin d'existence du cercle de soins." "Date de fin d'existence du cercle de soins."
* statut 0..1 code "Statut du cercle de soins." "La liste des valeurs possibles n'est pas définie par ces spécifications. Les codes possibles ainsi que le sens donné sont définis par le gestionnaire en fonction du projet. Il peut s'inspirer du jeu de valeur FHIR CareTeamStatus (proposed | active | suspended | inactive | entered-in-error).]]"
* metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
* PersonnePriseCharge 1..1 PersonnePriseCharge "Personne prise en charge." "La personne prise en charge."
* MembreCercleSoin 0..* MembreCercleDeSoins "Membre du cercle de soin" "Membre du cercle de soin"



// Deux possibilités de mapping :
// Soit mapping direct dans les StructureDefinition (au niveau du profil ou du modèle logique)
// Soit mapping via une ConceptMap

// ###############################
// # Mapping 1 : In log-model SD #
// ###############################

// From https://github.com/hl7-be/vaccination/blob/master/input/fsh/logicals/BeVaccination-Model.fsh
Mapping: ModelCDSToCDS
Source: CercleDeSoins
Target: "http://interop.esante.gouv.fr/ig/fhir/cds/StructureDefinition/cds-ihe-careteam"
Id: map-log-cercle-de-soins-to-cercle-de-soins
Title: "Mapping modèle logique Cercle De Soins"
* -> "CDSCareTeam"
* idCercleSoins -> "identifier"
* dateCreation -> "period.start"
* dateMAJ -> "meta.lastUpdated"
* dateFin -> "period.end"
* statut -> "status"
* metadonnee -> "meta"
* PersonnePriseCharge -> "subject"
* MembreCercleSoin -> "participant.member"

// #############################
// # Mapping 2 : In ConceptMap #
// #############################

// From https://github.com/hl7-eu/laboratory/blob/master/input/fsh/models/result-to-fhir-map.fsh

Instance: cds2FHIR
InstanceOf: ConceptMap
Usage: #definition
* name = "CDS2FHIR"
* title = "Cercle De Soins logical model - profile mapping"
* status = #draft
* experimental = true
* description = "Mapping du CDS du modèle logique vers le profil FHIR CDS"
* purpose = "Mapping du CDS du modèle logique vers le profil FHIR CDS"
* sourceUri = "http://interop.esante.gouv.fr/ig/fhir/cds/StructureDefinition/log-cercle-de-soins"
* targetUri = "http://interop.esante.gouv.fr/ig/fhir/cds/StructureDefinition/cds-ihe-careteam"

* group[+].source = "http://interop.esante.gouv.fr/ig/fhir/cds/StructureDefinition/log-cercle-de-soins"
* group[=].target = "http://interop.esante.gouv.fr/ig/fhir/cds/StructureDefinition/cds-ihe-careteam"


* group[=].element[+].code = #CercleDeSoins
* group[=].element[=].display = "Cercle de soins"
* group[=].element[=].target.code = #CareTeam
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.idCercleSoins
* group[=].element[=].display = "Identifiant cercle de soins"
* group[=].element[=].target.code = #CareTeam.identifier
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.dateCreation
* group[=].element[=].display = "Date de création"
* group[=].element[=].target.code = #CareTeam.period.start
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.dateMAJ
* group[=].element[=].display = "Date de mise à jour du cercle de soin"
* group[=].element[=].target.code = #CareTeam.lastUpdated
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.dateFin
* group[=].element[=].display = "Date de fin d'existence du cercle de soins"
* group[=].element[=].target.code = #CareTeam.period.end
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.statut
* group[=].element[=].display = "Statut du cercle de soins"
* group[=].element[=].target.code = #CareTeam.status
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.metadonnee
* group[=].element[=].display = "Informations relatives à la gestion des classes et des données"
* group[=].element[=].target.code = #CareTeam.meta
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.PersonnePriseCharge
* group[=].element[=].display = "Personne prise en charge"
* group[=].element[=].target.code = #CareTeam.subject
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

* group[=].element[+].code = #CercleDeSoins.MembreCercleSoin
* group[=].element[=].display = "Membre du cercle de soin"
* group[=].element[=].target.code = #CareTeam.participant.member
* group[=].element[=].target.display = ""
* group[=].element[=].target.equivalence = #equivalent

// TODO à finir
11 changes: 11 additions & 0 deletions input/fsh/models/contact.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Logical: Contact
Id: log-contact
Title: "Contact"
Description: "Contact"
* idMembreCercleSoins 1..1 Identifier "Identifiant du membre du cercle de soins." "Identifiant du membre du cercle de soins."
* telecommunication 1..* ContactPoint "Adresse(s) de télécommunication (numéro de téléphone, adresse email, URL, etc.)" "Adresse(s) de télécommunication (numéro de téléphone, adresse email, URL, etc.)"
* adresse 0..* Address "Adresse(s) géopostale(s)" "Adresse(s) géopostale(s)"
* role 1..1 code "Role du contact" "Indique la responsabilité d’une Personne Tierce au sein du Cercle de Soins d’un Usager. Il peut s’agir par exemple du rôle d’aidant, de personne de confiance, de responsable légal. "
* description 0..1 string "Une description du contact." "Une description du contact."
* relation 0..1 code "Lien de relation" "Lien de la personne point de contact auprès d'une autre personne. Exemple dans le cas d'un patient, ce lien indique si le point de contact est son enfant, son frère, etc."
* metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
15 changes: 15 additions & 0 deletions input/fsh/models/entite-geographique.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Logical: EntiteGeographique
// Id: log-entite-geographique
// Title: "Entite Geographique"
// Description: "Entite Geographique"
// * idMembreCercleSoins 1..1 Identifier "Identifiant du membre du cercle de soins." "Identifiant du membre du cercle de soins."
// * numFINESS 0..1
// * numSIRET 0..1
// * identifiantEG 0..1
// * idNat_struct 0..1
// * telecommunication 1..* ContactPoint "Adresse(s) de télécommunication (numéro de téléphone, adresse email, URL, etc.)" "Adresse(s) de télécommunication (numéro de téléphone, adresse email, URL, etc.)"
// * adresse 0..* Address "Adresse(s) géopostale(s)" "Adresse(s) géopostale(s)"
// * denominationEG 0..1
// * boiteLettresMSS 0..*
// * metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
// * EntiteJuridique 1..1
11 changes: 11 additions & 0 deletions input/fsh/models/entite-juridique.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Logical: EntiteJuridique
// Id: log-entite-juridique
// Title: "Entite Juridique"
// Description: "Entite Juridique"
// * numFINESS 0..1 Identifier
// * numSIREN 0..1 Identifier
// * identifiantEJ 0..1
// * idNat_struct 0..1
// * raisonSociale 0..1
// * boiteLettresMSS 0..*
// * metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
10 changes: 10 additions & 0 deletions input/fsh/models/exercice-professionnel.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Logical: ExerciceProfessionnel
Id: log-exercice-professionnel
Title: "Exercice Professionnel"
Description: "Exercice Professionnel"
* civiliteExercice 0..1 code "Civilité d’exercice du professionnel" "Civilité d’exercice du professionnel"
* nomExercice 0..1 string "Nom d'exercice" "Nom sous lequel exerce le professionnel"
* prenomExercice 0..1 string "Prénom d'exercice" "Prénom sous lequel exerce le professionnel"
* profession 0..1 code "Profession exercée ou future profession de l'étudiant." "Profession exercée ou future profession de l'étudiant."
* metadonnee 0..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
// * Professionnel 1..1 Professionnel "Professionnel" "Professionnel"
11 changes: 11 additions & 0 deletions input/fsh/models/membre-cercle-soins.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Logical: MembreCercleDeSoins
Id: log-membre-cercle-de-soins
Title: "Membre Cercle De Soins"
Description: "Membre Cercle De Soins"
* dateEntreeCercleSoin 1..* date "Date d'entrée" "Date de début de participation au cercle de soin de la personne prise en charge."
* dateSortieCercleSoin 0..* date "Date de sortie" "Date de fin de participation au cercle de soin de la personne prise en charge."
// * SituationExercice 0..1 SituationExercice "Situation d'exercice" "Situation d'exercice"
// * EntiteGeographique 0..1 EntiteGeographique "Entité géographique" "Entité géographique"
// * OrganisationInterne 0..1 OrganisationInterne "Organisation interne" "Organisation interne"
* metadonnee 0..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
* Contact 0..1 Identifier "Contact" "Il s’agit d’une personne (Professionnel ou Personne Tierce) ou d’une Entité qui fait partie du Cercle de Soins d’un Usager. Chaque membre du Cercle de Soins dispose d’une date de début et une date de fin de participation à ce cercle."
12 changes: 12 additions & 0 deletions input/fsh/models/organisation-interne.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Logical: OrganisationInterne
// Id: log-organisation-interne
// Title: "Organisation Interne"
// Description: "Organisation Interne"
// * idMembreCercleSoins 1..1 Identifier "Identifiant du membre du cercle de soins." "Identifiant du membre du cercle de soins."
// * identifiantOI 0..1
// * telecommunication 1..*
// * adresse 0..* Address "Adresse(s) géopostale(s)" "Adresse(s) géopostale(s)"
// * nom 0..1
// * boiteLettresMSS 0..*
// * metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
// * EntiteGeographique 1..1
14 changes: 14 additions & 0 deletions input/fsh/models/personne-physique.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Logical: PersonnePhysique
// Id: log-personne-physique
// Title: "Personne Physique"
// Description: "Personne Physique"
// * civilite 0..1
// * nomFamille 0..1
// * prenom 0..*
// * sexe 0..1
// * langueParlee 0..*
// * situationFamiliale 0..1
// * dateNaissance 0..1
// * lieuNaissance 0..1
// * paysResidence 0..1
// * metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
9 changes: 9 additions & 0 deletions input/fsh/models/personne-prise-charge.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Logical: PersonnePriseCharge
Id: log-personne-prise-charge
Title: "Personne Prise En Charge"
Description: "Personne Prise En Charge"
* INS 1..1 Identifier "INS du patient" "INS du patient"
* idPersonnePriseCharge 0..* Identifier "Identifiant personne prise en charge" "Identifiant personne prise en charge"
* adresseCorrespondance 1..1 Address "Adresse(s) de correspondance de la personne prise en charge." "Adresse(s) de correspondance de la personne prise en charge."
* telecommunication 1..* ContactPoint "Adresse(s) de télécommunication de la personne prise en charge (numéro de téléphone, adresse email, etc.)." "Adresse(s) de télécommunication de la personne prise en charge (numéro de téléphone, adresse email, etc.)."
* metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
7 changes: 7 additions & 0 deletions input/fsh/models/professionnel.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Logical: Professionnel
Id: log-professionnel
Title: "Professionnel"
Description: "Professionnel"
* idPP 0..1 Identifier "Identifiant national de la personne physique" "Identifiant national de la personne physique"
* typeIdNat_PP 0..1 code "Type d’identifiant national de la personne physique." "Type d’identifiant national de la personne physique."
* metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
13 changes: 13 additions & 0 deletions input/fsh/models/situation-exercice.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Logical: SituationExercice
// Id: log-situation-exercice
// Title: "Situation d'exercice"
// Description: "Situation d'exercice"
// * idMembreCercleSoins 1..1 Identifier "Identifiant du membre du cercle de soins." "Identifiant du membre du cercle de soins."
// * telecommunication 1..* ContactPoint "Adresse(s) de télécommunication (numéro de téléphone, adresse email, URL, etc.)" "Adresse(s) de télécommunication (numéro de téléphone, adresse email, URL, etc.)"
// * adresse 0..* Address "Adresse(s) géopostale(s)" "Adresse(s) géopostale(s)"
// * modeExercice 0..1
// * role 0..1
// * boiteLettresMSS 0..*
// * metadonnee 1..1 Meta "Informations relatives à la gestion des classes et des données." "Informations relatives à la gestion des classes et des données."
// * EntiteGeographique 0..1
// * ExerciceProfessionnel 1..1
1 change: 0 additions & 1 deletion input/pagecontent/index.md
Original file line number Diff line number Diff line change
@@ -47,7 +47,6 @@ La liste ci-dessous expose la liste des profils.
| Flux 4a - MiseJourActeurRestful, Flux 4b - MiseJourCercleSoinsRestful | Ces deux flux ont été dissociés pour séparer la mise à jour des acteurs de la mise à jour des cercles de soins dans l’option de construction Restful. |
| Flux 4c – MAJCercleSoinsTransaction | Ce flux a été dissocié pour séparer les mises à jour dans l’option de construction Transaction |


### Utilisation de l'IG

Ce guide d'implémentation s’adresse aux développeurs des interfaces interopérables des systèmes implémentant la gestion du cercle de soins ou à toute autre personne intervenant dans le processus de mise en place de ces interfaces.
28 changes: 0 additions & 28 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading