From 14e0e3d9fb0b80829b5f6e4a54529560683d509f Mon Sep 17 00:00:00 2001 From: Haoura Date: Mon, 1 Sep 2025 15:16:01 +0200 Subject: [PATCH 1/2] Ajout des profils FHIR pour la partie corps --- .../Invariants/FrVaccineCode.fsh | 6 + .../RessourceFHIRCoprs/codeSystem/FrCIS.fsh | 13 ++ .../extensions/FrActorExtension.fsh | 19 +++ .../FrAdministrationFrequencyExtension.fsh | 12 ++ .../extensions/FrAutresPrecisionExtension.fsh | 7 + .../FrDispenserInstructionExtension.fsh | 8 + .../FrDocumentReferenceExterneExtension.fsh | 16 ++ .../extensions/FrDoseAntigeneExtension.fsh | 13 ++ .../FrEvenementCaracteristiqueExtension.fsh | 8 + .../extensions/FrFrPreconditionExtension.fsh | 9 + .../extensions/FrPrescriptionExtension.fsh | 31 ++++ .../extensions/FrQualifierExtension.fsh | 17 ++ .../FrReferenceInterneExtension.fsh | 9 + .../extensions/FrRepeatNumberExtension.fsh | 9 + .../extensions/FrSequenceExtension.fsh | 9 + .../extensions/FrTranslationExtension.fsh | 10 ++ .../extensions/FrVaccinationTypeExtension.fsh | 10 ++ .../profils/FrCarePlanDocument.fsh | 26 +++ .../profils/FrDiagnosticReportDocument.fsh | 37 ++++ .../profils/FrEncounterEvenementDocument.fsh | 59 +++++++ .../FrFrObservationNaissanceDocument.fsh | 35 ++++ .../FrHistoriqueGrossesseDocumentList.fsh | 23 +++ .../FrHistoriqueGrossesseObservation.fsh | 30 ++++ .../FrMedicationAdministrationDocument.fsh | 71 ++++++++ .../profils/FrMedicationDispenseDocument.fsh | 38 +++++ .../profils/FrMedicationDocument.fsh | 78 +++++++++ .../profils/FrMedicationRequestDocument.fsh | 159 ++++++++++++++++++ .../profils/FrMedicationStatementDocument.fsh | 77 +++++++++ .../FrMedicationsCombinaisonDocument.fsh | 11 ++ .../profils/FrObservationGrossesse.fsh | 24 +++ .../FrObservationRechercheMicroOrganismes.fsh | 14 ++ .../profils/FrObservationResultatDocument.fsh | 22 +++ .../profils/FrObservationStatut.fsh | 20 +++ .../profils/FrObservationStatutDocument.fsh | 17 ++ .../FrObservationSurEchelleDouleur.fsh | 38 +++++ ...ervationSyntheseMedicaleSejourDocument.fsh | 16 ++ ...servationTransfusionDeProduitsSanguins.fsh | 16 ++ .../profils/FrProcedureTransportPatient.fsh | 54 ++++++ .../FrProcedureTransportProfessionnel.fsh | 50 ++++++ .../profils/FrReferencesExternesDocument.fsh | 21 +++ .../profils/FrSigneViatalObserveDocument.fsh | 35 ++++ .../profils/FrSignesVitauxDocument.fsh | 22 +++ .../profils/FrVaccinRecommandeDocument.fsh | 71 ++++++++ .../profils/FrVaccinationDocument.fsh | 108 ++++++++++++ .../rulesSets/FrRuleSetSimpleObservation.fsh | 43 +++++ .../valueSet/FrValueSetActorType.fsh | 11 ++ .../valueSet/FrValueSetEDQM.fsh | 8 + ...lueSetMedicationAdministrationCategory.fsh | 8 + .../valueSet/FrValueSetTypeResultat.fsh | 11 ++ .../valueSet/FrValueSetVaccinationType.fsh | 13 ++ .../valueSet/FrValueSetVaccineCode.fsh | 14 ++ .../valueSet/FrValueSetVaccineTranslation.fsh | 13 ++ input/fsh/RessourcesFHIREntete/aliases.fsh | 13 +- sushi-config.yaml | 49 +++++- 54 files changed, 1559 insertions(+), 2 deletions(-) create mode 100644 input/fsh/RessourceFHIRCoprs/Invariants/FrVaccineCode.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/codeSystem/FrCIS.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrAdministrationFrequencyExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrAutresPrecisionExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrDispenserInstructionExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrDocumentReferenceExterneExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrDoseAntigeneExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrEvenementCaracteristiqueExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrFrPreconditionExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrPrescriptionExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrQualifierExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrReferenceInterneExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrTranslationExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrVaccinationTypeExtension.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrCarePlanDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrDiagnosticReportDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrMedicationDispenseDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrMedicationsCombinaisonDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationGrossesse.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationSurEchelleDouleur.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrReferencesExternesDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrVaccinRecommandeDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/profils/FrVaccinationDocument.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/rulesSets/FrRuleSetSimpleObservation.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetActorType.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetEDQM.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetMedicationAdministrationCategory.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetTypeResultat.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccinationType.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineCode.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineTranslation.fsh diff --git a/input/fsh/RessourceFHIRCoprs/Invariants/FrVaccineCode.fsh b/input/fsh/RessourceFHIRCoprs/Invariants/FrVaccineCode.fsh new file mode 100644 index 00000000000..6fe2e46773b --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/Invariants/FrVaccineCode.fsh @@ -0,0 +1,6 @@ +/* +Invariant: FrVaccineCodeConstraint +Description: "Permet soit de ne pas renseigner vaccineCode, soit de renseigner un code ATC ou CIS dans les ressources : ImmunizationR et ImmunizationRecommendation" +Expression: "empty() or coding.exists(system = 'urn:oid:2.16.840.1.113883.6.73' or system = 'urn:oid:1.2.250.1.213.2.3.1')" +Severity: #warning +*/ \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/codeSystem/FrCIS.fsh b/input/fsh/RessourceFHIRCoprs/codeSystem/FrCIS.fsh new file mode 100644 index 00000000000..718f2471ebc --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/codeSystem/FrCIS.fsh @@ -0,0 +1,13 @@ +/* +CodeSystem: FrCIS +Id: fr-cis +Title: "CodeSystem CIS" +Description: "Codes CIS publiés par l'ANSM" +* ^url = "urn:oid:1.2.250.1.213.2.3.1" +* ^identifier.system = "urn:ietf:rfc:3986" +* ^identifier.value = "urn:oid:1.2.250.1.213.2.3.1" +* ^status = #active +* ^experimental = false +* ^caseSensitive = true +* ^content = #not-present +*/ \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh new file mode 100644 index 00000000000..e4c181d30fa --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh @@ -0,0 +1,19 @@ +Extension: FrActorExtension +Id: fr-actor-extension +Title: "Fr Extension - Actor" +Description: "Extension pour représenter un acteur impliqué dans le document avec son type et sa référence." +* ^context[+].type = #element +* ^context[=].expression = "Resource" + +* extension contains + type 1..1 and + reference 1..1 + +// Sous-extension type +* extension[type].value[x] only code +* extension[type].valueCode from FrValueSetActorType (required) +* extension[type] ^short = "Type d'acteur (AUT, PRF, PART, INF)" + +// Sous-extension reference +* extension[reference].value[x] only Reference(FrPractitionerRoleDocument) +* extension[reference] ^short = "Référence vers le rôle du praticien dans le document" \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrAdministrationFrequencyExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrAdministrationFrequencyExtension.fsh new file mode 100644 index 00000000000..d995ea8f1e7 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrAdministrationFrequencyExtension.fsh @@ -0,0 +1,12 @@ +// Fréquence d'administration : extension Timing +Extension: FrAdministrationFrequency +Id: fr-administration-frequency +Title: "Fr Fréquence d’administration" +Description: "Extension pour représenter la fréquence d'administration dans MedicationAdministration et MedicationStatement" +// Contextes autorisés +* ^context[+].type = #element +* ^context[=].expression = "MedicationAdministration" +* ^context[+].type = #element +* ^context[=].expression = "MedicationStatement" +* value[x] only Timing +* valueTiming 0..1 \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrAutresPrecisionExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrAutresPrecisionExtension.fsh new file mode 100644 index 00000000000..03c19b6fd5c --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrAutresPrecisionExtension.fsh @@ -0,0 +1,7 @@ +Extension: FrAutresPrecisionExtension +Id: fr-autres-precision-extension +Title: "Fr Autres Precision" +Description: "Autres précision sur le trajet ou le transport du patient." +* ^context[+].type = #element +* ^context[=].expression = "Resource" +* value[x] only Reference(Observation) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrDispenserInstructionExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrDispenserInstructionExtension.fsh new file mode 100644 index 00000000000..2d72e5a6318 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrDispenserInstructionExtension.fsh @@ -0,0 +1,8 @@ +Extension: FrDispenserInstructionExtension +Id: fr-dispenser-instruction-extension +Title: "Fr Instructions au dispensateur" +Description: "Instructions au dispensateur : par exemple pour indiquer que le traitement doit être étiqueté dans une langue étrangère, etc …" +* ^context[+].type = #element +* ^context[=].expression = "Resource" +* value[x] only Annotation +* valueAnnotation 1..1 diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrDocumentReferenceExterneExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrDocumentReferenceExterneExtension.fsh new file mode 100644 index 00000000000..ba0ac57d25e --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrDocumentReferenceExterneExtension.fsh @@ -0,0 +1,16 @@ +Extension: FrDocumentReferenceExterneExtension +Id: fr-document-reference-externe-extension +Title: "Fr Document Reference Externe" +Description: "Document référencé" + +* ^context[0].type = #element +* ^context[0].expression = "Resource" + +* extension contains + identifier 1..1 and + url 0..1 + +* extension[identifier].valueIdentifier 1..1 + * ^short = "Identifiant du document" +* extension[url].valueUrl 0..1 + * ^short = "URL du document" \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrDoseAntigeneExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrDoseAntigeneExtension.fsh new file mode 100644 index 00000000000..f1b91b15db6 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrDoseAntigeneExtension.fsh @@ -0,0 +1,13 @@ +Extension: FrDoseAntigeneExtension +Id: fr-dose-antigene-extension +Title: "Fr Dose Antigene" +Description: "Extension complexe pour représenter un consommable (FrMedication) et une doseQuantity dans Immunization." +* ^status = #active +* ^context.type = #element +* ^context.expression = "Immunization" +* extension contains + doseQuantity 1..1 and + consumable 1..1 +* extension[doseQuantity].valueQuantity +//* extension[consumable].valueReference 1..1 +* extension[consumable].valueReference only Reference(FrMedicationDocument) diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrEvenementCaracteristiqueExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrEvenementCaracteristiqueExtension.fsh new file mode 100644 index 00000000000..d5930c2fef2 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrEvenementCaracteristiqueExtension.fsh @@ -0,0 +1,8 @@ +Extension: FrEvenementCaracteristiqueExtension +Id: fr-evenement-caracteristique-extension +Title: "Fr Caractéristique de l'évènement" +Description: "Référence à une observation de type Fr-Simple-Observation représentant les caractéristiques de l'évènement." +* ^context[+].type = #element +* ^context[=].expression = "Encounter" + +* valueReference only Reference(Observation) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrFrPreconditionExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrFrPreconditionExtension.fsh new file mode 100644 index 00000000000..5b912da10b9 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrFrPreconditionExtension.fsh @@ -0,0 +1,9 @@ +// Précondition : extension URL +Extension: FrPreconditionExtension +Id: fr-precondition-extension +Title: "Fr Précondition de l'administration" +Description: "Lien vers la description narrative des conditions préalables dans le document CDA." +* ^context.type = #element +* ^context.expression = "MedicationAdministration" +// or String ?? +* value[x] only url or Annotation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrPrescriptionExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrPrescriptionExtension.fsh new file mode 100644 index 00000000000..eab3ffaa377 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrPrescriptionExtension.fsh @@ -0,0 +1,31 @@ +Extension: FrPrescriptionExtension +Id: fr-prescription-extension +Title: "Fr Prescription" +Description: "Instructions de prescription associées à l'administration du produit de santé." +* ^status = #active +* ^context.type = #element +* ^context.expression = "Resource" + +// extension complexe +* extension contains + dosage 1..1 and + FrRepeatNumberExtension named repeatNumber 0..1 and + prescripteur 0..1 and + dispensateur 0..* + +// dosage : Quantité + Instructions au dispensateur +* extension[dosage].value[x] only Dosage +* extension[dosage].value[x].text 1..1 MS +// Instructions au dispensateur / ou bien utiliser l'extension FrDispenserInstructionExtension +* extension[dosage].value[x].additionalInstruction 1..1 MS +* extension[dosage].value[x].additionalInstruction.text 1..1 MS +* extension[dosage].value[x].doseAndRate.doseQuantity MS +* extension[dosage].value[x].doseAndRate.doseQuantity ^short = "Quantité. L'unité est exprimée selon le système de codage UCUM." + +// Utiliser des sous-extensions ou bien enregistrer le Prescripteur et Dispensateur dans FrVaccinationDocument et FrTraitement (performer.actor) + +// Prescripteur +* extension[prescripteur].value[x] only Reference(Practitioner) + +// Dispensateur +* extension[dispensateur].value[x] only Reference(Practitioner) diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrQualifierExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrQualifierExtension.fsh new file mode 100644 index 00000000000..10755adf6a4 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrQualifierExtension.fsh @@ -0,0 +1,17 @@ +Extension: FrQualifierExtension +Id: fr-qualifier-extension +Title: "Qualifier du code" + +* ^context.type = #element +* ^context.expression = "Coding" + +// Sous-extensions +* extension contains + name 0..1 and + value 0..1 + +* extension[name].value[x] only CodeableConcept +* extension[name] ^short = "Type de précision" + +* extension[value].value[x] only CodeableConcept +* extension[value] ^short = "Valeur de la précision du code" \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrReferenceInterneExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrReferenceInterneExtension.fsh new file mode 100644 index 00000000000..c2b9a5202b9 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrReferenceInterneExtension.fsh @@ -0,0 +1,9 @@ + +Extension: FrReferenceInterneExtension +Id: fr-reference-interne-extension +Title: "Fr Reference Interne" +Description: "Liens vers les pièces jointes." +* ^context[+].type = #element +* ^context[=].expression = "Resource" + +* value[x] only url \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh new file mode 100644 index 00000000000..f96a765d294 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh @@ -0,0 +1,9 @@ +Extension: FrRepeatNumberExtension +Id: fr-repeat-number-extension +Title: "FR Repeat Number" +Description: "Numéro d'occurrence de l'acte ou de l'observation (équivalent CDA repeatNumber)" +* ^context[+].type = #element +* ^context[=].expression = "Resource" + +* value[x] only integer +* valueInteger 0..1 \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh new file mode 100644 index 00000000000..271edc5b000 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh @@ -0,0 +1,9 @@ +Extension: FrSequenceExtension +Id: fr-sequence-extension +Title: "FR Sequence" +Description: "Dosages progressifs et fractionnés" +* ^context[+].type = #element +* ^context[=].expression = "MedicationAdministration" + +* value[x] only integer +* valueInteger 0..1 \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrTranslationExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrTranslationExtension.fsh new file mode 100644 index 00000000000..ce81188a67d --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrTranslationExtension.fsh @@ -0,0 +1,10 @@ +// --- Extension FrTranslation --- +Extension: FrTranslationExtension +Id: fr-translation-extension +Title: "Fr Translation" +Description: "Extension utilisée pour représenter d'autres codifications sous forme de CodeableConcept" +* ^context[+].type = #element +* ^context[=].expression = "MedicationAdministration" + +* value[x] only CodeableConcept +* valueCodeableConcept 1..1 \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrVaccinationTypeExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrVaccinationTypeExtension.fsh new file mode 100644 index 00000000000..46514197b25 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrVaccinationTypeExtension.fsh @@ -0,0 +1,10 @@ +Extension: FrVaccinationTypeExtension +Id: fr-vaccination-type-extension +Title: "Fr Vaccination Type" +Description: "Extension représentant le type de vaccination (ex: INITIMMUNIZ, BOOSTER, IMMUNIZ), équivalent au code de l'entrée CDA FR-Vaccination." +* ^context.type = #element +* ^context.expression = "Immunization" + +* value[x] only CodeableConcept +* valueCodeableConcept 1..1 +* valueCodeableConcept from FrValueSetVaccinationType (required) diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrCarePlanDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrCarePlanDocument.fsh new file mode 100644 index 00000000000..a3cf830e387 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrCarePlanDocument.fsh @@ -0,0 +1,26 @@ +// StructureDefinition for FrCarePlanDocument +Profile: FrCarePlanDocument +Parent: CarePlan +Id: fr-care-plan-document +Title: "CarePlan - Fr Reference item plan traitement" +Description: "Cette entrée permet d’enregistrer une référence à un traitement dans un plan de traitement." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() + +* identifier 1..* MS + * ^short = "Identifiant de la ligne de traitement dans un plan de traitement." +* category 1..1 MS + * ^short = "Code de l’entrée. + - Code indiquant que la référence est une ligne de traitement dans un plan de traitement" +* category.coding 1..1 +* category.coding.system = "urn:1.3.6.1.4.1.19376.1.9.2.2" +* category.coding.code = #IHEPharmacyItemTypeList +* category.coding.display = "Ligne dans un plan de traitement" +* activity.detail.product[x] MS +* activity.detail.product[x] only CodeableConcept or Reference(FrMedicationDocument or FrMedicationsCombinaisonDocument) + * ^short = "Produit de santé" +* author MS +//Item d'un plan de traitement. Copie non modifiée de la ligne de traitement référencée +// Chaque activity doit référencer un MedicationRequest (ligne de traitement) +* activity.reference MS +* activity.reference only Reference(FrMedicationRequestDocument) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrDiagnosticReportDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrDiagnosticReportDocument.fsh new file mode 100644 index 00000000000..7a5035cbc4d --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrDiagnosticReportDocument.fsh @@ -0,0 +1,37 @@ +// StructureDefinition for FrDiagnosticReportDocument +Profile: FrDiagnosticReportDocument +Parent: DiagnosticReport +Id: fr-diagnostic-report-document +Title: "DiagnosticReport - Fr Resultats" +Description: " + - L'entrée 'FR-Resultats' est une entrée de type 'organizer' regroupant les types des résultats classés par type d’examens (BIO, IMG, etc…). + - L'entrée 'FR-Resultats' est une entrée de type 'organizer' regroupant les types des résultats classés par type d’examens (BIO, IMG, etc…). +" +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS +* identifier ^short = "Identifiant de l'entrée" +* code MS + * ^short = "Type de résultat. Code de l'entrée en LOINC." +* code from FrValueSetTypeResultat (required) +* status MS +* status ^short = "Statut de l'entrée" +* status = #final +* effective[x] 1..1 MS +* effective[x] only dateTime + * ^short = "Date" +* performer MS + * ^short = "Exécutant" +* performer.extension contains $performerFunction named performerFunction 1..1 +* performer.extension[performerFunction] 1..1 +* performer.extension[performerFunction].valueCodeableConcept.coding.code = #PPRF "primary performe" (exactly) +* performer only Reference (FrPractitionerDocument or FrPractitionerRoleDocument or FrOrganizationDocument) + +* resultsInterpreter MS + * ^short = "Auteur" +* resultsInterpreter.extension contains $performerFunction named performerFunction 1..1 +* resultsInterpreter.extension[performerFunction] 1..1 +* resultsInterpreter.extension[performerFunction].valueCodeableConcept.coding.code = #AUT "author (originator)" (exactly) +* resultsInterpreter only Reference (FrPractitionerDocument or FrPractitionerRoleDocument or FrOrganizationDocument) +* result 1..* MS + * ^short = "Resultat" +* result only Reference (FrObservationResultatDocument) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh new file mode 100644 index 00000000000..8963e869782 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh @@ -0,0 +1,59 @@ +// StructureDefinition for FrEncounterEvenementDocument +Profile: FrEncounterEvenementDocument +Parent: Encounter +Id: fr-encounter-evenement-document +Title: "Encouter - Fr Evenement" +Description: "Cette entrée est un élément de type encounter permettant de conserver les données d’activités liées à un patient / usager. +Il peut s'agir d'un évènement passé ou à venir. " + +//* ^extension[$imposeProfile].valueCanonical = Canonical() + +/* Ces éléments sont indiqués dans le Profil parent FrEncounter +* identifier 1..* MS +* identifier ^short = "Identifiant de l'évènement" + // ou bien utilisation de l'extension fhir R5 : Note ? + * text 0..1 MS + * ^short = "Libellé et motif de l'évènement" +* status MS +* status ^short = "Statut de l'entrée" +* period MS + * start 1..1 MS + * ^short = "Date de début de l’évènement" + * end MS + * ^qhort ="Date de fin de l’évènement" + */ +* type MS + * ^short = "Type d'évènement : + - Le JDV dépend du volet utilisant cette entrée (les précisions sont alors fournies dans le volet correspondant). + - Si pas d'information utiliser le code Wolf ‘Aucun’." + +* type.extension contains FrQualifierExtension named qualifier 0..* + +* extension contains FrEvenementCaracteristiqueExtension named caracteristique 0..* + +* extension contains http://hl7.org/fhir/StructureDefinition/note named commentaire 0..* + +// ou bien dans le profil DocumentReference : context.encounter only Reference (FrEncounterEvenement) +* extension contains FrReferenceInterneExtension named urlPiecesJointes 0..* + +//ou bien enregistrer l'événement dans la ressource Procedure.encounter +//si le transport du patient est la cause ou justification de l’événement +* reasonReference only Reference(FrProcedureTransportPatient or FrProcedureTransportProfessionnel) +/*ou tilisation d'une extension de type ValueReference (FrProceduredeTransportPatient) +* extension contains FrTransportPatient named transportPatient 0..* +/*ou tilisation d'une extension de type ValueReference (FrProceduredeTransportProfessionnel) +* extension contains FrTransportProfessionnel named transportProfessionnel 0..* +*/ + +Extension: FrTransportPatient +Id: fr-transport-patient-extension +Title: "Fr Transport patient" +Description: "Extension permettant de référencer une procédure de transport du patient depuis un Encounter." +* valueReference only Reference(FrProcedureTransportPatient) + +Extension: FrTransportProfessionnel +Id: fr-transport-professionnel-extension +Title: "Fr Transport professionnel" +Description: "Extension permettant de référencer une procédure de transport du Professionnel depuis un Encounter." +* valueReference only Reference(FrProcedureTransportProfessionnel) + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh new file mode 100644 index 00000000000..7bb04e0f7a2 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh @@ -0,0 +1,35 @@ +// StructureDefinition for FrObservationNaissanceDocument +Profile: FrObservationNaissanceDocument +Parent: Observation +Id: fr-observation-naissance-document +Title: "Observation - Fr Naissance" +Description: "Cette entrée rassemble les observations relatives à une naissance. + - Elle peut-être utilisée comme 'component'; d'une entrée FR-Historique-de-la-grossesse (1.3.6.1.4.1.19376.1.5.3.1.4.13.5.1)." + + +* code 1..1 MS + * ^short = "Code de l'entrée." +* code.coding.system = "http://snomed.info/sct/" +* code.coding.code = #118215003 +* code.coding.display = "observation sur l'accouchement" +* status 1..1 + * ^short = "Statut de l’entrée" +* status = #completed +* effective[x] 1..1 MS +* effective[x] only dateTime + * ^short = "Période des observations. + - Quand cette entrée est utilisée dans une entrée FR-Historique-de-la-grossesse, cette période doit correspondre à la période de la grossesse." +* value[x] 0..0 +* hasMember 1..* MS +* hasMember only Reference(FrObservationGrossesseDocument) + * ^short = "Observation sur la naissance." +* focus 1..1 MS +* focus only Reference(RelatedPerson) + * ^short = "Identification du nouveau né." +* focus obeys child-relationship + +Invariant: child-relationship +Description: "Le relationship de RelatedPerson doit être fixé à CHILD." +Expression: "resolve().relationship.coding.where(code = 'CHILD').exists()" +Severity: #error + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh new file mode 100644 index 00000000000..5618fad90c7 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh @@ -0,0 +1,23 @@ +// StructureDefinition for FrHistoriqueGrossesseList +Profile: FrHistoriqueGrossesseList +Parent: List +Id: fr-historique-de-la-grossesse-list +Title: "List - Fr Historique de la grossesse" +Description: "Liste contenant soit un événement de naissance, soit une observation sur la grossesse, mais pas les deux." + +* identifier 1..1 MS + * ^short = "Identifiant de l'entrée" +* code 1..1 MS +* code.coding.system = "http://snomed.info/sct/" +* code.coding.code = #118185001 +* code.coding.display = "constatation à propos de la grossesse" +* status 1..1 MS +* status = #current +* date 1..1 MS + * ^short = "Période de la grossesse" +* entry 1..* +* entry ^short = "Références vers des observations de type grossesse ou naissance" +* entry.item only Reference(FrObservationGrossesseDocument or FrObservationNaissanceDocument) + + + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh new file mode 100644 index 00000000000..65b4210ccf7 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh @@ -0,0 +1,30 @@ +// StructureDefinition for FrHistoriqueGrossesse +Profile: FrHistoriqueGrossesse +Parent: Observation +Id: fr-historique-de-la-grossesse +Title: "Observation - Fr Historique de la grossesse" +Description: "Cette entrée permet de regrouper les observations relatives à un épisode de grossesse." + +* identifier 1..1 MS + * ^short = "Identifiant de l'entrée" +* code 1..1 MS +* code.coding.system = "http://snomed.info/sct/" +* code.coding.code = #118185001 +* code.coding.display = "constatation à propos de la grossesse" +* status 1..1 + * ^short = "Statut de l’entrée" +* status = #final +* effective[x] 1..1 MS +* effective[x] only dateTime + * ^short = "Période de la grossesse" + +//* encounter only Reference(Encounter) + * ^short = "Informations relatives aux naissances" +* hasMember 1..* MS + * ^short = "Informations relatives à la grossesse" +* hasMember only Reference(FrObservationGrossesseDocument or FrObservationNaissanceDocument) + +* value[x] 0..0 + + + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh new file mode 100644 index 00000000000..d2d49c6fad0 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh @@ -0,0 +1,71 @@ +// StructureDefinition for FrMedicationAdministrationDocument +Profile: FrMedicationAdministrationDocument +Parent: MedicationAdministration +Id: fr-medication-administration-document +Title: "MedicationAdministration - Fr Traitement" +Description: " + - L'entrée 'Traitement' est une entrée de type 'substanceAdministration' décrivant les modalités d'administration d'un médicament au patient. + - Elle permet de décrire notamment le médicament, le mode d'administration, la quantité, la durée et la fréquence d'administration. + - Si le traitement est en attente d’administration (c’est-à dire qu’il a été prescrit) : + • @moodCode='INT'" + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..* MS + * ^short = "Identifiant de l'entrée. L'entrée Traitement doit être identifiée de manière unique." +* category MS + * ^short = "Acte ou situation" +* category from FrValueSetMedicationAdministrationCategory (preferred) +* text 1..1 MS + * ^short = "Partie narrative de l’entrée" +* status 1..1 MS + * ^short = "Statut de l’entrée" +* status = #completed +* effective[x] only Period +* effectivePeriod MS + * ^short = "Durée du traitement" +// R5 : occurenceTiming +// Fréquence d'administration + +* dosage + * extension contains FrAdministrationFrequency named frequenceAdministration 0..1 + // Dosages progressifs ou fractionnés + * extension contains FrSequenceExtension named sequence 0..* + // Dosages conditionnels + //* extension contains http://hl7.org/fhir/StructureDefinition/note named dosagesConditionnels 0..* + * route MS + * route from FrValueSetEDQM + * route ^short = "Voie d'administration" + * route ^binding.description = "EDQM - Standard terms / classe ROA (0.4.0.127.0.16.1.1.2.1)" + * site MS + * site ^short = "Région anatomique d'administration" + * site from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-human-substance-administration-site-cisis + * dose MS + * ^short = "Dose à administrer" + +* dosage.rate[x] MS +* dosage.rateRatio MS + * ^short = "doseMaximale" +* dosage.rateQuantity MS + * ^short = "rythme d'administration" + +// Médicament +* medication[x] MS +* medication[x] only CodeableConcept or Reference(FrMedicationDocument) + +// Prescription : Utilisation de l'extension FrPrescription ou l'élément request qui fait référence (MedicationRequest) ? +* extension contains FrPrescriptionExtension named Prescription 0..* MS + +// Instruction au patient +* dosage.text MS + * ^short = "Instruction au patient" + +// Motif du traitement +* reasonReference MS + * ^short = "Motif du traitement" +* reasonReference only Reference(Condition or Observation) + +// Précondition ou bien utiliser l'extnexion FHIR note ?? +* extension contains FrPreconditionExtension named precondition 0..1 + * ^short = "Permet de décrire les conditions préalables à l'utilisation du médicament." + + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDispenseDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDispenseDocument.fsh new file mode 100644 index 00000000000..4da481506d8 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDispenseDocument.fsh @@ -0,0 +1,38 @@ +// StructureDefinition for FrMedicationDispenseDocument +Profile: FrMedicationDispenseDocument +Parent: MedicationDispense +Id: fr-medication-dispense-document +Title: "MedicationDispense - Fr Traitement dispense" +Description: "Cette entrée de type supply permet de décrire un traitement dispensé avec notamment le médicament dispensé, la quantité et la référence de la prescription." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS + * ^short = "Identifiant de l'entrée." +* type 1..1 MS + * ^short = "Complétude de la dispensation" + * coding from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-completude-dispensation-cisis +* text 1..1 MS + * ^short = "Texte de l'entrée" +* quantity 1..1 MS + * ^short = "Quantité : Unité issue de EDQM Packaging / classe CON (Récipient)" + * unit from FrValueSetEDQM + +* medication[x] MS +* medication[x] only CodeableConcept or Reference(FrMedicationDocument) + * ^short = "Médicament délivré" +* authorizingPrescription 0..1 MS + * ^short = "Référence de la prescription" +* authorizingPrescription only Reference ( FrMedicationRequestDocument ) +* supportingInformation 0..1 MS + * ^short = "Posologie" +* supportingInformation only Reference ( FrMedicationAdministrationDocument ) +* dosageInstruction.patientInstruction MS + * ^short = "Instructions au patient" +* dosageInstruction.additionalInstruction MS + * ^short = "Instruction au patient sous forme codée" +* dosageInstruction.text MS + * ^short = "Instructions au dispensateur" +* substitution MS + * ^short = "Acte de substitution" + * type 1..1 MS + * type = #G "Substitution autorisée par un produit générique" diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh new file mode 100644 index 00000000000..110ea4a74d8 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh @@ -0,0 +1,78 @@ +// StructureDefinition for FrMedicationDocument +Profile: FrMedicationDocument +Parent: Medication +Id: fr-medication-document +Title: "Medication - Fr Produit de santé" +Description: "L'entrée Produit de santé permet de décrire un médicament ou un vaccin." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() + +* code 1..1 MS + * ^short = "Code du produit de santé" +* code.coding.extension contains FrTranslationExtension named translation 0..* +* code.coding.extension[translation] ^short = "Autres codifications (CIP, UCD, ATC, MV)" +* code.coding.extension[translation].valueCodeableConcept.coding.system from FrValueSetVaccineTranslation (required) + + +// créer un type CodeableConceptDocument ou bien utiliser le coding pour les translations ? +// Définition du slicing +/* +* code.coding ^slicing.discriminator.type = #pattern +* code.coding ^slicing.discriminator.path = "system" +* code.coding ^slicing.rules = #open +* code.coding ^slicing.description = "Slicing pour distinguer le code principal et les translations" + +* code.coding contains + code 1..1 and + translation 0..* + +// Slice code (code principal) +* code.coding[code] ^short = "Code principal du vaccin" +* code.coding[code].system from FRValueSetCodeProduit (required) + +// Slice translation (autres codifications) +* code.coding[translation] ^short = "Autres codifications (CIP, UCD, ATC, MV)" +* code.coding[translation].system from FRValueSetVaccineTranslation (required) +*/ + +//Nom de marque du produit : Extension IHE +* extension contains $ihe-ext-medication-productname named productName 1..1 MS +* extension[productName] ^short = "Nom de marque du produit." +* form MS +* form from FrValueSetEDQM (required) +* batch.lotNumber MS + * ^short = "Numéro de lot" +* batch.expirationDate MS + * ^short = "Date d'expiration du produit" + +//Code de regroupement ATC et Code du produit de santé conditionné (CIP) : Extension IHE +* extension contains $ihe-ext-medication-classification named classification 0..* MS +* extension[classification] ^short = "Équivalent générique (Code de regroupement ATC) et le Conditionnement (Code du produit de santé conditionné (CIP))." + +// il faut ajouter une extension de type string pour le nom de marque du conditionnement et le nom du Code de regroupement ATC ?? +// utiliser l'extension IHE MedicationCharacteristic de type complex pour Présentation / conditionnement : les noms, containerPackagedMedicine/pharm:formCode, pharm:capacityQuantity +* extension contains $ihe-ext-medication-characteristic named conditionnement 0..* +* extension[conditionnement] ^short = "Présentation / conditionnement." + +* ingredient MS + * ^short = "Substance active" + * strength MS + * ^short = "Dosage" + * numerator 1..1 MS + * denominator 1..1 MS + * item[x] only CodeableConcept + * itemCodeableConcept MS + * itemCodeableConcept from https://smt.esante.gouv.fr/terminologie-sms?vs + * itemCodeableConcept ^short = "Code SMS de la substance active" + * itemCodeableConcept.extension contains fr-nom-substance named NomSubstance 1..1 MS + +Extension: FrNomSubstance +Id: fr-nom-substance +Title: "Fr Nom de la substance" +Description: "Nom de la substance active, à utiliser en complément d’un codage." +* ^status = #active +* ^context.type = #element +* ^context.expression = "Medication.ingredient.item" +* value[x] only string +* valueString 1..1 + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh new file mode 100644 index 00000000000..32feb739b47 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh @@ -0,0 +1,159 @@ +// StructureDefinition for FrMedicationRequestDocument +Profile: FrMedicationRequestDocument +Parent: MedicationRequest +Id: fr-medication-request-document +Title: "MedicationRequest - Fr Traitement Prescrit" +Description: " + - Cette entrée de type substanceAdministration permet de décrire un traitement prescrit avec notamment le médicament, le mode d’administration, la quantité, la durée et la fréquence d'administration." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* doNotPerform = false +* intent = #order +* identifier 1..* MS + +* identifier ^slicing.discriminator.type = #pattern +* identifier ^slicing.discriminator.path = "type" +* identifier ^slicing.rules = #open +* identifier ^slicing.ordered = false +* identifier contains referencePrescription 1..* + +* category 0..1 MS +* category.coding 1..1 +* category.coding.system = "urn:oid:2.16.840.1.113883.5.4" +* category.coding.code = #DRUG +* category.coding.display = "Médicament" +* text 1..1 MS +* text ^short = "Partie narrative de l’entrée" +* status 1..1 MS +* status ^short = "Statut de l’entrée" +* status = #completed +* dosageInstruction MS +// Dosages progressifs, fractionnés + * sequence MS + * timing MS + * ^short = "Durée du traitement et fréquence d'administration." + * repeat MS + * boundsPeriod ^short = "Durée du traitement" + * start ^short = "Date de début du traitement" + * end ^short = "Date de fin du traitement" + //Fréquence d'administration + * frequency MS + // @value , @unit + * period MS + * periodUnit MS + * when MS + * offset MS + // Nombre de renouvellement(s) possible(s) : ou bien : dispenseRequest.numberOfRepeatsAllowed + //* countMax MS + //* ^short = "Nombre de renouvellement(s) possible(s)" + // Dosages conditionnels + * asNeeded[x] MS + * route MS + * route from FrValueSetEDQM + * route ^short = "Voie d'administration" + * site MS + * site ^short = "Région anatomique d'administration" + * site from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-human-substance-administration-site-cisis + * doseAndRate.doseRange MS + * doseAndRate.doseRange ^short = "Dose à administrer" + * low 1..1 MS + * high 1..1 MS + * doseAndRate.rateRange MS + * doseAndRate.rateRange ^short = "Rythme d'administration" + * low 1..1 MS + * high 1..1 MS + * maxDosePerPeriod MS + * maxDosePerPeriod ^short = "Dose maximale" + * maxDosePerPeriod.numerator 1..1 MS + * maxDosePerPeriod.denominator 1..1 MS +* medication[x] MS +* medication[x] only CodeableConcept or Reference(FrMedicationDocument or FrMedicationsCombinaisonDocument) + * ^short = "Produit de santé" + +// --- Auteur --- +* requester MS +* requester.extension contains FrActorExtension named author 0..1 +* requester.extension[author] ^short = "Auteur du document Prescription" +* requester.extension[author].extension[type].valueCode = #AUT (exactly) +* requester.extension[author].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) + +// --- Prescripteur --- +* performer MS +* performer.extension contains FrActorExtension named prescripteur 0..1 +* performer.extension[prescripteur] ^short = "Prescripteur" +* performer.extension[prescripteur].extension[type].valueCode = #PRF (exactly) +* performer.extension[prescripteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) + +* authoredOn MS +// Motif du traitement +* reasonReference MS + * ^short = "Motif du traitement" +* reasonReference only Reference(Condition or Observation) + +// une copie du plan de traitement médicamenteux +// ou bien basedOn lien vers le plan de traitement ? +/* +* basedOn 0..1 MS +* basedOn only Reference(FrCarePlanDocument) +*/ +* supportingInformation only Reference(MedicationRequest) + * ^short = "Référence à un item du plan de traitement. Une copie du plan de traitement médicamenteux." + * identifier MS + * ^short = "Identifiant de la ligne de traitement dans un plan de traitement." + +//Instructions au patient +// si codé : +* dosageInstruction.additionalInstruction MS + * ^short = "Instructions au patient" + // si non codé : +* dosageInstruction.additionalInstruction.text MS + * ^short = "Instruction au patient" +/* +* dosageInstruction.text MS + * ^short = "Instructions au dispensateur" + */ +* dispenseRequest MS + * extension contains FrDispenserInstructionExtension named instructionsAuDispensateur 0..1 MS + * quantity MS + * ^short = "Quantité à dispenser" + * numberOfRepeatsAllowed MS + * ^short = "Nombre de renouvellement(s) possible(s)" +* substitution 1..1 MS + * allowed[x] MS + * ^short = "Autorisation de substitution" + * allowedCodeableConcept from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ActSubstanceAdminSubstitutionCode-cisis + +* reasonReference ^slicing.discriminator.type = #pattern +* reasonReference ^slicing.discriminator.path = "display" +* reasonReference ^slicing.rules = #open + +* reasonReference contains + renouvellement 0..1 and + ald 0..1 and + accidentTravail 0..1 and + prevention 0..1 and + nonRemboursable 0..1 and + horsAMM 0..1 + +* reasonReference[renouvellement] only Reference(Observation) +* reasonReference[renouvellement] ^short = "Période de renouvellement" + +* reasonReference[ald] only Reference(Observation) +* reasonReference[ald] ^short = "En rapport avec une Affection Longue Durée (ALD)" + +* reasonReference[accidentTravail] only Reference(Observation) +* reasonReference[accidentTravail] ^short = "En rapport avec accident travail" + +* reasonReference[prevention] only Reference(Observation) +* reasonReference[prevention] ^short = "En rapport avec la prévention" + +* reasonReference[nonRemboursable] only Reference(Observation) +* reasonReference[nonRemboursable] ^short = "Non remboursable" + +* reasonReference[horsAMM] only Reference(Observation) +* reasonReference[horsAMM] ^short = "Hors AMM" + +// Précondition +* extension contains FrPreconditionExtension named precondition 0..1 + * ^short = "Permet de décrire les conditions préalables à l'utilisation du médicament." + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh new file mode 100644 index 00000000000..624751fa8f5 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh @@ -0,0 +1,77 @@ +// StructureDefinition for FrMedicationStatementDocument +Profile: FrMedicationStatementDocument +Parent: MedicationStatement +Id: fr-medication-statement-document +Title: "MedicationStatement - Fr Traitement" +Description: " + - L'entrée 'Traitement' est une entrée de type 'substanceAdministration' décrivant les modalités d'administration d'un médicament au patient. + - Elle permet de décrire notamment le médicament, le mode d'administration, la quantité, la durée et la fréquence d'administration. + - Si le traitement a déjà été administré ou si information rapporté par le patient ou si aucun traitement : + • @moodCode='EVN'" + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..* MS + * ^short = "Identifiant de l'entrée. L'entrée Traitement doit être identifiée de manière unique." +* basedOn only Reference(MedicationRequest) +* partOf only Reference(MedicationAdministration) +* category MS + * ^short = "Acte ou situation" +* category from FrValueSetMedicationAdministrationCategory (preferred) +* text 1..1 MS + * ^short = "Partie narrative de l’entrée" +* status 1..1 MS + * ^short = "Statut de l’entrée" +* status = #completed +* effective[x] only Period +* effectivePeriod MS + * ^short = "Durée du traitement" +// R5 : occurenceTiming +// Fréquence d'administration + +* dosage MS + // Dosages progressifs, fractionnés + * sequence MS + // Dosages conditionnels + * asNeeded[x] MS + * extension contains FrAdministrationFrequency named frequenceAdministration 0..1 + * route MS + * route from FrValueSetEDQM + * route ^short = "Voie d'administration" + * route ^binding.description = "EDQM - Standard terms / classe ROA (0.4.0.127.0.16.1.1.2.1)" + * site MS + * site ^short = "Région anatomique d'administration" + * site from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-human-substance-administration-site-cisis + + //* dose MS + // * ^short = "Dose à administrer" + +* dosage.doseAndRate.rate[x] MS +* dosage.doseAndRate.rateRatio MS + * ^short = "doseMaximale" +* dosage.doseAndRate.rateQuantity MS + * ^short = "rythme d'administration" +//Instructions au patient +// si codé : +* dosage.additionalInstruction MS + * ^short = "Instructions au patient" + // si non codé : +* dosage.additionalInstruction.text MS + * ^short = "Instruction au patient" +// Médicament +* medication[x] MS +* medication[x] only CodeableConcept or Reference(FrMedicationDocument or FrMedicationsCombinaisonDocument) + +// Prescription : Utilisation de l'extension FrPrescription ou l'élément request qui fait référence (MedicationRequest) ? +* extension contains FrPrescriptionExtension named Prescription 0..* MS + + +// Motif du traitement +* reasonReference MS + * ^short = "Motif du traitement" +* reasonReference only Reference(Condition or Observation) + +// Précondition ou bien utiliser l'extnexion FHIR note ?? +* extension contains FrPreconditionExtension named precondition 0..1 + + + diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationsCombinaisonDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationsCombinaisonDocument.fsh new file mode 100644 index 00000000000..13cab394423 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationsCombinaisonDocument.fsh @@ -0,0 +1,11 @@ +// StructureDefinition for FrMedicationsCombinaisonDocument +Profile: FrMedicationsCombinaisonDocument +Parent: Medication +Id: fr-medication-combinaison-document +Title: "Medication - Fr Produit de santé" +Description: "Combinaison de médicaments." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() + +* ingredient MS +* ingredient.itemReference only Reference (FrMedicationDocument) diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationGrossesse.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationGrossesse.fsh new file mode 100644 index 00000000000..dab3fe6aea5 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationGrossesse.fsh @@ -0,0 +1,24 @@ +// StructureDefinition for FrObservationGrossesseDocument +Profile: FrObservationGrossesseDocument +Parent: Observation +Id: fr-observation-grossesse-document +Title: "Observation - Fr Observation sur la Grossesse" +Description: "Cette entrée permet d'apporter des informations relatives aux grossesses actuelle ou passées." + + +* code ^short = "Ce code peut provenir du JDV_ObservationGrossesse_CISIS (1.2.250.1.213.1.1.5.500). + - D’autres codes ou JDV peuvent être utilisés." +* value[x] only CodeableConcept +* valueCodeableConcept 1..1 MS + * ^short = "Résultat de l’observation effectuée. + - Valeur peut être issue du JDV_StatutGrossesse_CISIS (1.2.250.1.213.1.1.5.671) pour le statut de grossesse si le code de l'entrée est '11449-6'." + + +* insert FrRuleSetSimpleObservation + +* obeys obs-pregnancy-status-value + +Invariant: obs-pregnancy-status-value +Description: "Si le code de l'Observation est LOINC 11449-6, alors la value doit être un CodeableConcept membre du JDV statut grossesse" +Expression: "code.coding.where(system = 'http://loinc.org' and code = '11449-6').exists() implies (value is CodeableConcept and value.coding.memberOf('https://smt.esante.gouv.fr/fhir/ValueSet/jdv-statut-grossesse-cisis'))" +Severity: #error diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh new file mode 100644 index 00000000000..35c214c6947 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh @@ -0,0 +1,14 @@ +// StructureDefinition for FrObservationRechercheMicroOrganismes +Profile: FrObservationRechercheMicroOrganismes +Parent: Observation +Id: fr-observation-recherche-micro-organismes +Title: "Observation - Fr Recherche de micro organismes" +Description: "Cette entrée permet d'indiquer si une recherche de micro-organismes multirésistants ou émergents a été effectuée ou pas." + +* code = https://smt.esante.gouv.fr/fhir/CodeSystem/terminologie-cisis#MED-309 "Recherche de microorganismes multi-résistants ou émergents effectuée" + +* value[x] only boolean +* valueBoolean 1..1 MS + * ^short = "Valeur de l’observation" + +* insert FrRuleSetSimpleObservation diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh new file mode 100644 index 00000000000..ab610776018 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh @@ -0,0 +1,22 @@ +// StructureDefinition for FrObservationResultatDocument +Profile: FrObservationResultatDocument +Parent: Observation +Id: fr-observation-resultat-document +Title: "Observation - FR Resultat" +Description: "Cette entrée permet d'indiquer le résultat observé." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() + +* value[x] MS + * ^short = "Observation effectuée" +* referenceRange MS + * ^short = "Intervalles de référence" +// Slicing sur interpretation dans referenceRange +* interpretation ^slicing.discriminator.type = #pattern +* interpretation ^slicing.discriminator.path = "$this" +* interpretation ^slicing.rules = #open + +* interpretation contains observationRange 0..1 +* interpretation[observationRange] ^short = "InterpretationCode" + +* insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh new file mode 100644 index 00000000000..5d5ecf26070 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh @@ -0,0 +1,20 @@ +// StructureDefinition for FrObservationStatut +Profile: FrObservationStatut +Parent: Observation +Id: fr-observation-statut +Title: "Observation - Fr Statut" +Description: "Cette entrée de type observation permet de décrire et de suivre le statut métier d’un objet." + +* code.coding.system = "https://loinc.org/" +* code.coding.code = #106199-3 +* code.coding.display = "Statut" + +* value[x] only CodeableConcept +* valueCodeableConcept 1..1 MS + * ^short = "Statut métier" +* valueCodeableConcept.coding.extension contains FrQualifierExtension named qualifier 0..1 +* valueCodeableConcept.coding.extension[qualifier].extension[name] 1..1 +* valueCodeableConcept.coding.extension[qualifier].extension[name].valueCodeableConcept = $terminologie-cisis#GEN-348 "Motif du statut métier" +* valueCodeableConcept.coding.extension[qualifier].extension[value] 1..1 + +* insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh new file mode 100644 index 00000000000..05e0b1b346a --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh @@ -0,0 +1,17 @@ +// StructureDefinition for FrObservationStatutDocument +Profile: FrObservationStatutDocument +Parent: Observation +Id: fr-observation-statut-document +Title: "Observation - Fr Statut du document" +Description: "Cette entrée permet d'indiquer le statut du document (son état d'avancement dans le cycle de vie du document, depuis sa création jusqu'à sa validation définitive par son responsable légal (élément 'legalAuthenticator' de l'en-tête) ainsi que la date de ce statut.." + +* code.coding.system = "https://smt.esante.gouv.fr/fhir/CodeSystem/terminologie-cisis" +* code.coding.code = #GEN-065 +* code.coding.display = "Statut du document" + +* value[x] only CodeableConcept +* valueCodeableConcept 1..1 MS + * ^short = "Statut du document" +* valueCodeableConcept from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-statut-document-cisis (required) + +* insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationSurEchelleDouleur.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationSurEchelleDouleur.fsh new file mode 100644 index 00000000000..834e006dcfc --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationSurEchelleDouleur.fsh @@ -0,0 +1,38 @@ +// StructureDefinition for FrObservationSurEchelleDouleur +Profile: FrObservationSurEchelleDouleur +Parent: Observation +Id: fr-observation-sur-echelle-douleur +Title: "Observation - Fr observation sur échelle de douleur" +Description: "Cette entrée permet d'enregistrer l'évaluation du patient de sa douleur sur une échelle de 1 à 10." + +* identifier 1..1 MS +* identifier ^short = "Identifiant de l'observation" + +* code MS +* code.coding.system = "https://loinc.org/" +* code.coding.code = #38208-5 +* code.coding.display = "Sévérité de la douleur" + +* text 1..1 MS + * ^short = "Description narrative de l'observation" + +* status MS +* status = #final +* status ^short = "Statut de l'observation" + +* effective[x] MS +* effectiveDateTime 1..1 MS + * ^short = "Date de l'observation" + +* interpretation 0..1 MS +* interpretation ^short = "Interprétation" +* interpretation from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-evaluation-douleur-cisis + +* bodySite MS + * ^short = "Localisation de la douleur" + +* value[x] only integer +* valueInteger 1..1 MS + * ^short = "Valeur de l'observation. entier de 0 à 10" + +* extension contains FrRepeatNumberExtension named repeatNumber 0..1 \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh new file mode 100644 index 00000000000..d970a35ab5c --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh @@ -0,0 +1,16 @@ +// StructureDefinition for FrObservationSyntheseMedicaleSejourDocument +Profile: FrObservationSyntheseMedicaleSejourDocument +Parent: Observation +Id: fr-observation-synthese-medicale-sejour-document +Title: "Observation - Fr Synthèse médicale du séjour" +Description: "Cette entrée permet de fournir, sous forme textuelle, une synthèse médicale du séjour." + +* code.coding.system = "https://smt.esante.gouv.fr/fhir/CodeSystem/terminologie-cisis" +* code.coding.code = #MED-142 +* code.coding.display = "Synthèse médicale" + +* value[x] only string +* valueString 1..1 MS + * ^short = "Synthèse médicale du séjour (sous forme textuelle)" + +* insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh new file mode 100644 index 00000000000..a20d2bac4f3 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh @@ -0,0 +1,16 @@ +// StructureDefinition for FrObservationTransfusionDeProduitsSanguins +Profile: FrObservationTransfusionDeProduitsSanguins +Parent: Observation +Id: fr-observation-transfusion-de-produits-sanguins +Title: "Observation - Fr Transfusion De Produits Sanguins" +Description: "Cette entrée permet d'indiquer s'il a eu ou pas transfusion de produit sanguin." + +* code.coding.system = "https://smt.esante.gouv.fr/fhir/CodeSystem/terminologie-cisis" +* code.coding.code = #MED-145 +* code.coding.display = "Transfusion de produits sanguins" + +* value[x] only boolean +* valueBoolean 1..1 MS + * ^short = "Transfusion de produit sanguin." + +* insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh new file mode 100644 index 00000000000..552c2c1e080 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh @@ -0,0 +1,54 @@ +// StructureDefinition for FrProcedureTransportPatient +Profile: FrProcedureTransportPatient +Parent: Procedure +Id: fr-procedurede-transport-patient +Title: "Procedure - Fr Transport du patient" +Description: "Cette entrée de type act permet de décrire le transport d'un patient/usager lors d'un déplacement (entrée ou sortie d'hôpital, ...)." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS + * ^short = "Identifiant de l'entrée. Identifiant du transport" +* code 1..1 MS + * ^short = "Mode de transport (Ambulance publique, Taxi, VSL, …)" + +// Contraindre le code +* code.coding 1..1 +* code.coding.system 1..1 +* code.coding.code 1..1 + +// Ajouter deux occurrences de l’extension fr-qualifier-extension +* code.coding.extension contains + FrQualifierExtension named qualifier1 0..1 and + FrQualifierExtension named qualifier2 0..1 + +// qualifier1 +* code.coding.extension[qualifier1].extension[name] 1..1 +* code.coding.extension[qualifier1].extension[name].valueCodeableConcept = $terminologie-cisis#GEN-345 "Nature du transport" +// qualifier2 +* code.coding.extension[qualifier2].extension[name] 1..1 +* code.coding.extension[qualifier2].extension[name].valueCodeableConcept = $terminologie-cisis#GEN-346 "Type de motorisation" +* code.coding.extension[qualifier2].extension[value] 1..1 +* code.coding.extension[qualifier2].extension[value].valueCodeableConcept.coding.system from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-type-motorisation-cisis + +* text 0..1 MS + * ^short = "Texte décrivant le transport" +* performedDateTime 1..1 MS + * ^short = "Date du transport" + +* performer MS +* performer.extension contains + FrActorExtension named transporteur 0..1 + +// --- transporteur --- +* performer.extension[transporteur] ^short = "Transporteur" +* performer.extension[transporteur].extension[type].valueCode = #PRF (exactly) +* performer.extension[transporteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) + +* location MS + * ^short = "Lieu de départ / Destination" +* location only Reference(FrLocationDocument) + +//Autres précision sur le trajet ou le transport du patient +// ou bien Utilisation de l’élément note +// Si les précisions sur le transport sont non codées ou non structurées, on peut les inclure directement dans Procedure.note +* extension contains FrAutresPrecisionExtension named precisionTransportPatient 0..* MS \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh new file mode 100644 index 00000000000..d3add77dd5a --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh @@ -0,0 +1,50 @@ +// StructureDefinition for FrProcedureTransportProfessionnel +Profile: FrProcedureTransportProfessionnel +Parent: Procedure +Id: fr-procedure-transport-Professionnel +Title: "Procedure - Fr Transport du professionnel" +Description: "Cette entrée de type act permet de décrire le transport d'un professionnel lors d’un déplacement." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS + * ^short = "Identifiant de l'entrée. Identifiant du transport" +* code 1..1 MS + * ^short = "Mode de transport (Ambulance publique, Taxi, VSL, …)" + +// Contraindre le code +* code.coding 1..1 +* code.coding.system 1..1 +* code.coding.code 1..1 + +// Ajout de l’extension fr-qualifier-extension +* code.coding.extension contains + FrQualifierExtension named qualifier 0..1 + +//Type de motorisation +* code.coding.extension[qualifier].extension[name] 1..1 +* code.coding.extension[qualifier].extension[name].valueCodeableConcept = $terminologie-cisis#GEN-346 "Type de motorisation" +* code.coding.extension[qualifier].extension[value] 1..1 +* code.coding.extension[qualifier].extension[value].valueCodeableConcept.coding.system from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-type-motorisation-cisis + +* text 0..1 MS + * ^short = "Texte décrivant le transport" +* performedDateTime 1..1 MS + * ^short = "Date du transport" + +* performer MS +* performer.extension contains + FrActorExtension named transporteur 0..1 + +// --- transporteur --- +* performer.extension[transporteur] ^short = "Transporteur" +* performer.extension[transporteur].extension[type].valueCode = #PRF (exactly) +* performer.extension[transporteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) + +* location MS + * ^short = "Lieu de départ / Destination" +* location only Reference(FrLocationDocument) + +//Autres précisions sur le trajet ou le transport du patient +// ou bien Utilisation de l’élément note +// Si les précisions sur le transport sont non codées ou non structurées, on peut les inclure directement dans Procedure.note +* extension contains FrAutresPrecisionExtension named precisionTransportProfessionnel 0..* MS \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrReferencesExternesDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrReferencesExternesDocument.fsh new file mode 100644 index 00000000000..21bb3e68634 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrReferencesExternesDocument.fsh @@ -0,0 +1,21 @@ +// StructureDefinition for FrReferencesExternesDocument +Profile: FrReferencesExternesDocument +Parent: DocumentReference +Id: fr-references-externes-document +Title: "DocumentReference - Fr References externes" +Description: """Cette entrée de type act permet de relier un élément à un (ou des) document(s) externe(s) par l’intermédiaire d’une adresse URL.""" + +* identifier 1..* MS + * ^short = "Identifiant de l'entrée." +* type 1..1 MS + * ^short = "Code de l'entrée. Fixé à nullFlavor='NA'" +* type.extension contains http://hl7.org/fhir/StructureDefinition/data-absent-reason named dataAbsentReason 0..1 +* status 1..1 MS +* text 1..1 MS + * ^short = "Partie narrative de l’entrée" + +// Document référencé +* content MS +* content.attachment MS +* content.attachment.url 1..1 MS +* content.attachment.contentType 1..1 MS \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh new file mode 100644 index 00000000000..6c8562c99c8 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh @@ -0,0 +1,35 @@ +// StructureDefinition for FrSignesVitalObserveDocument +Profile: FrSigneVitalObserveDocument +Parent: http://hl7.org/fhir/StructureDefinition/vitalsigns +Id: fr-signes-vital-Observe-document +Title: "Observation - Fr Signe Vital Observé" +Description: " + - Cette entrée permet d'indiquer les informations détaillées relatives à une mesure clinique spécifique. + - Cette entrée est utilisée dans un élément component d'un élément Signes vitaux (1.3.6.1.4.1.19376.1.5.3.1.4.13.1). + - Cette entrée est basée sur l'élément Simple Observation (1.3.6.1.4.1.19376.1.5.3.1.4.13) qu'elle spécialise en portant des contraintes sur les vocabulaires des éléments 'code' et 'value'." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS +* identifier ^short = "Identifiant de l'entrée" +* code MS +* code ^short = "Signe vital observé" +* code from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-signe-vital-cisis +* status MS +* status ^short = "Statut de l'observation" +* status = #final +* effective[x] only dateTime +* effectiveDateTime MS + * ^short = "Date de l'observation" +* interpretation MS + * ^short = "Interprétation" +* interpretation from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ObservationInterpretation-cisis +* method MS + * ^short = "Méthode utilisée pour l'observation" +* bodySite MS + * ^short = "Site de l'observation" +* performer 0..1 MS + * ^short = "Auteur de l'observation" +* performer only Reference (FrPractitionerDocument or FrPractitionerRoleDocument) +* component.value[x] only Quantity +* component.valueQuantity 1..1 MS + * ^short = "Observation effectuée. Terminologie utilisée : UCUM (2.16.840.1.113883.6.8)." \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh new file mode 100644 index 00000000000..f7337bbf42e --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh @@ -0,0 +1,22 @@ +// StructureDefinition for FrSignesVitauxDocument +Profile: FrSignesVitauxDocument +Parent: http://hl7.org/fhir/StructureDefinition/vitalspanel +Id: fr-signes-vitaux-document +Title: "Observation - Fr Signes Vitaux" +Description: "L'entrée Signes vitaux est une entrée de type 'organizer' qui permet de regrouper des informations relatives aux mesures cliniques du patient." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS +* identifier ^short = "Identifiant de l'entrée" +* code MS +* status MS +* status ^short = "Statut de l’entrée" +* status = #final +* effective[x] only dateTime +* effectiveDateTime MS + * ^short = "Date de l'entrée" +* performer MS + * ^short = "Auteur" +* performer only Reference (FrPractitionerRoleDocument) +* hasMember MS +* hasMember only Reference (FrSigneVitalObserveDocument) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrVaccinRecommandeDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrVaccinRecommandeDocument.fsh new file mode 100644 index 00000000000..7534f551912 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrVaccinRecommandeDocument.fsh @@ -0,0 +1,71 @@ +// StructureDefinition for FrVacciRecommende +Profile: FrVaccinRecommandeDocument +Parent: ImmunizationRecommendation +Id: fr-vaccin-recommande-document +Title: "ImmunizationRecommendation - Fr Vaccin Recommande Document" +Description: "L'entrée 'Vaccin recommandé' est une entrée de type 'substanceAdministration' qui permet de décrire une vaccination prévue ou proposée. + - Une vaccination proposée est une proposition qui est utilisée dans la prise de décisions (elle peut apparaître comme une contribution ou un résultat provenant de l'aide à la décision clinique). + - Une vaccination prévue dépend d'un plan accepté et à venir. + - Cette entrée hérite de la structuration, des contraintes et des vocabulaires de l'entrée 'Immunization' (1.3.6.1.4.1.19376.1.5.3.1.4.12).." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS +* identifier ^short = "Identifiant de l’entrée. + - Attribué par le LPS avec un identifiant unique de type UUID affecté à l’attribut root (l’attribut extension est omis)." + +* extension contains fr-vaccination-type-extension named typeVaccination 1..1 +* extension[typeVaccination].valueCodeableConcept.coding.system = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ActSubstanceAdministrationImmunizationCode-cisis" +// ou utiliser une extension FHIR note? +* text 1..1 MS +* text ^short = "Partie narrative de l’entrée" + +* recommendation 1..1 + * forecastStatus = #complete + * dateCriterion 1..1 + * value ^short = "Période de vaccination souhaitable" +// produit de santé + * vaccineCode MS + * vaccineCode ^short = "Vaccin. Code du produit de santé" + * vaccineCode from FrValueSetCodeProduit (required) +// translation (autres codifications) + * vaccineCode.extension contains FrTranslationExtension named translation 0..* + * vaccineCode.extension[translation].valueCodeableConcept.coding.system from FrValueSetVaccineTranslation (required) + * vaccineCode obeys Recomm-Immu-VaccineCodeConstraint +/* +// Définition du slicing sur coding + * vaccineCode.coding ^slicing.discriminator.type = #pattern + * vaccineCode.coding ^slicing.discriminator.path = "system" + * vaccineCode.coding ^slicing.rules = #open + * vaccineCode.coding ^slicing.description = "Slicing pour distinguer le code principal et les translations" + * vaccineCode.coding contains + code 1..1 and + translation 0..* +// Slice code (code principal) + * vaccineCode.coding[code] ^short = "Code principal du vaccin" + * vaccineCode.coding[code].system from FRValueSetCodeProduit (required) +// Slice translation (autres codifications) + * vaccineCode.coding[translation] ^short = "Autres codifications (CIP, UCD, ATC, MV)" + * vaccineCode.coding[translation].system from FRValueSetVaccineTranslation (required) + */ + + // Référence vers le profil FrVaccinationDocument + * supportingImmunization only Reference(FrVaccinationDocument) + // Rang de la vaccination + * seriesDosesPositiveInt 0..1 MS + // ou utilisation de l'extesion FHIR : Note http://hl7.org/fhir/StructureDefinition/note? + * description MS + * ^short = "Commentaire" + + /* + // Prescription + * supportingPatientInformation 0..1 MS + // créer un profil FrPrescriptionDocument de type MedicationRequest + * supportingPatientInformation only Reference(MedicationRequest) +*/ + // Prescription +* extension contains FrPrescriptionExtension named prescription 0..1 + +Invariant: Recomm-Immu-VaccineCodeConstraint +Description: "Permet soit de ne pas renseigner vaccineCode, soit de renseigner un code ATC ou CIS dans les ressources : ImmunizationR et ImmunizationRecommendation" +Expression: "empty() or coding.exists(system = 'urn:oid:2.16.840.1.113883.6.73' or system = 'urn:oid:1.2.250.1.213.2.3.1')" +Severity: #warning \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrVaccinationDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrVaccinationDocument.fsh new file mode 100644 index 00000000000..cb8f804c7d2 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/profils/FrVaccinationDocument.fsh @@ -0,0 +1,108 @@ +// StructureDefinition for FrVaccinationDocument +Profile: FrVaccinationDocument +Parent: Immunization +Id: fr-vaccination-document +Title: "Immunization - Fr Vaccination Document" +Description: "L'entrée Vaccination est une entrée de type 'substanceAdministration' pour décrire l'administration d'un vaccin. + - Elle permet également de décrire pourquoi un vaccin n'a pas été réalisé. + - Cette entrée hérite de la structuration, des contraintes et des vocabulaires de l'entrée Traitement (1.3.6.1.4.1.19376.1.5.3.1.4.7) sauf mentions précisées ci-après." + +//* ^extension[$imposeProfile].valueCanonical = Canonical() +* identifier 1..1 MS +* identifier ^short = "Identifiant de l’entrée. + - Attribué par le LPS avec un identifiant unique de type UUID affecté à l’attribut root (l’attribut extension est omis)." + +* extension contains fr-vaccination-type-extension named typeVaccination 1..1 +* text 1..1 MS +* text ^short = "Partie narrative de l’entrée" +* status MS +* status = #completed +* occurrence[x] MS +* occurrence[x] only dateTime +* occurrence[x] ^short = "Date de la vaccination" +// équivalent CDA nullFlavor +* occurrence[x] ^definition = "Si la date de la vaccination est inconnue, utiliser l’extension data-absent-reason précisant pourquoi elle n’est pas connue." +* occurrence[x].extension contains http://hl7.org/fhir/StructureDefinition/data-absent-reason named dataAbsentReason 0..1 +* route MS +* route ^short = "Voie d'administration" +* route from $jdv-immunization-route-code-cisis (required) +* site MS +* site ^short = "Région anatomique d'administration" +* site from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-immunization-approach-site-code-cisis (required) +* doseQuantity MS +* doseQuantity ^short = "Dose administrée" +// produit de santé +* vaccineCode MS +* vaccineCode ^short = "Vaccin. Code du produit de santé" +* vaccineCode from FrValueSetCodeProduit (required) +* vaccineCode obeys Immu-VaccineCodeConstraint +// translation (autres codifications) +* vaccineCode.extension contains FrTranslationExtension named translation 0..* +* vaccineCode.extension[translation].valueCodeableConcept.coding.system from FrValueSetVaccineTranslation (required) + +/* +// Définition du slicing sur coding +* vaccineCode.coding ^slicing.discriminator.type = #pattern +* vaccineCode.coding ^slicing.discriminator.path = "system" +* vaccineCode.coding ^slicing.rules = #open +* vaccineCode.coding ^slicing.description = "Slicing pour distinguer le code principal et les translations" +* vaccineCode.coding contains + code 1..1 and + translation 0..* +// Slice code (code principal) +* vaccineCode.coding[code] ^short = "Code principal du vaccin" +* vaccineCode.coding[code].system from FRValueSetCodeProduit (required) +// Slice translation (autres codifications) +* vaccineCode.coding[translation] ^short = "Autres codifications (CIP, UCD, ATC, MV)" +* vaccineCode.coding[translation].system from FRValueSetVaccineTranslation (required) +*/ + +//Nom de marque du produit : Extension IHE +* extension contains $ihe-ext-medication-productname named productName 1..1 MS +* extension[productName] ^short = "Nom de marque du produit." +* lotNumber MS + * ^short = "Numéro de lot." +* expirationDate MS + * ^short = "Date d'expiration du produit" + + +* performer MS +* performer.actor.extension contains + FrActorExtension named author 1..1 and + FrActorExtension named executant 0..1 + +// --- Auteur --- +* performer.actor.extension[author] ^short = "Auteur de la vaccination (personne ayant validé médicalement que la vaccination a été réalisée)" +* performer.actor.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.actor.extension[author].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) + +// --- Exécutant --- +* performer.actor.extension[executant] ^short = "Exécutant" +* performer.actor.extension[executant].extension[type].valueCode = #PRF (exactly) +* performer.actor.extension[executant].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) + +//Prescription + +* extension contains FrPrescriptionExtension named prescription 0..1 + +// Rang de la vaccination +* protocolApplied MS +* protocolApplied.doseNumberPositiveInt 1..1 +* protocolApplied.doseNumberPositiveInt ^short = "Rang de la vaccination" + +// Profil FrConditionDocument +* reasonReference MS +* reasonReference only Reference(Condition) + * ^short = "Réaction observée suite au vaccin" + +// Dose d’antigène reçue (extension) ou créer un profil fsh FrDoseAntigene basé sur la ressource Substance ? +* extension contains FrDoseAntigeneExtension named doseAntigene 0..* + * ^short = "Dose d'antigène" + +* note 0..1 MS + * ^short = "Commentaire" + +Invariant: Immu-VaccineCodeConstraint +Description: "Permet soit de ne pas renseigner vaccineCode, soit de renseigner un code ATC ou CIS dans les ressources : ImmunizationR et ImmunizationRecommendation" +Expression: "empty() or coding.exists(system = 'urn:oid:2.16.840.1.113883.6.73' or system = 'urn:oid:1.2.250.1.213.2.3.1')" +Severity: #warning \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/rulesSets/FrRuleSetSimpleObservation.fsh b/input/fsh/RessourceFHIRCoprs/rulesSets/FrRuleSetSimpleObservation.fsh new file mode 100644 index 00000000000..0ceed022047 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/rulesSets/FrRuleSetSimpleObservation.fsh @@ -0,0 +1,43 @@ +RuleSet: FrRuleSetSimpleObservation +// Contraintes pour Observation - Fr Simple Observation + +* identifier 1..1 MS +* identifier ^short = "Identifiant de l'observation" + +* status MS +* status = #final +* status ^short = "Statut de l'observation" + +* code MS +* code ^short = "Code de l'observation" + +* subject 1..1 MS +* subject only Reference(FrPatientINSDocument or FrPatientDocument) +* subject ^short = "Patient concerné" + +* effective[x] 1..1 MS +* effective[x] ^short = "Date de l'observation" + +* value[x] 1..1 MS +* value[x] ^short = "Valeur de l'observation" + +* performer 0..* MS +* performer only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + or FrPatientDocument +) +* performer ^short = "Auteur de l’observation" + +* interpretation 0..1 MS +* interpretation ^short = "Interprétation" +* interpretation from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ObservationInterpretation-cisis + +* method MS +* method ^short = "Méthode" +* method from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ObservationMethod-cisis + +* note MS +* note ^short = "Commentaire" \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetActorType.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetActorType.fsh new file mode 100644 index 00000000000..4f6591d80ac --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetActorType.fsh @@ -0,0 +1,11 @@ +ValueSet: FrValueSetActorType +Id: fr-actor-type +Title: "ValueSet - Types d'acteurs" +Description: "Jeu de valeurs pour les types d'acteurs." +//* include codes from system FrCSActorType +* include http://terminology.hl7.org/CodeSystem/v3-ParticipationType#AUT +* include http://terminology.hl7.org/CodeSystem/v3-ParticipationType#PRF +* include http://terminology.hl7.org/CodeSystem/v3-ParticipationType#PART +* include http://terminology.hl7.org/CodeSystem/v3-ParticipationType#INF + +* ^experimental = false \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetEDQM.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetEDQM.fsh new file mode 100644 index 00000000000..e74ca73678f --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetEDQM.fsh @@ -0,0 +1,8 @@ +ValueSet: FrValueSetEDQM +Id: vs-emdn +Title: "Fr ValueSet EDQM - Standard terms" +Description: "ValueSet basé sur le CodeSystem EDQM fourni par SMT" + +* include codes from system https://smt.esante.gouv.fr/terminologie-standardterms + +* ^experimental = false diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetMedicationAdministrationCategory.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetMedicationAdministrationCategory.fsh new file mode 100644 index 00000000000..f9e2a86f7a6 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetMedicationAdministrationCategory.fsh @@ -0,0 +1,8 @@ +ValueSet: FrValueSetMedicationAdministrationCategory +Id: fr-doc-vs-medication-administration-category +Title: "Fr ValueSet Catégories de médicament (actes ou absence)" +Description: "Combinaison des JDVs pour acte ou situation et absence de médicament" + +* codes from valueset https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ActSubstanceAdministrationCode-cisis +* codes from valueset https://smt.esante.gouv.fr/fhir/ValueSet/jdv-absent-or-unknown-medication-cisis +* ^experimental = false \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetTypeResultat.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetTypeResultat.fsh new file mode 100644 index 00000000000..a102c26567a --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetTypeResultat.fsh @@ -0,0 +1,11 @@ +ValueSet: FrValueSetTypeResultat +Id: fr-doc-vs-type-resultat +Title: "Fr ValueSet Type Resultat" +Description: "ValueSet contenant les codes LOINC autorisés pour les types de résultats" + +* include http://loinc.org#26436-6 "Biologie polyvalente" +* include http://loinc.org#18748-4 "Imagerie" +* include http://loinc.org#26438-2 "Cytologie" +* include http://loinc.org#27898-6 "Pathologie" +* include http://loinc.org#26435-8 "Génétique humaine" +* ^experimental = false \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccinationType.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccinationType.fsh new file mode 100644 index 00000000000..dd1ca2b43f8 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccinationType.fsh @@ -0,0 +1,13 @@ +ValueSet: FrValueSetVaccinationType +Id: fr-doc-vs-vac-type +Title: "Fr ValueSet Type de vaccination" +Description: "FR ValueSet Type de vaccination : + + - JDV_HL7_ActSubstanceAdministrationImmunizationCode_CISIS (2.16.840.1.113883.1.11.19709). Il permet d’indiquer si l’entrée concerne une vaccination. +OU + - JDV_AbsentOrUnknownImmunization_CISIS (1.2.250.1.213.1.1.5.666)" + +* codes from valueset $jdv-hl7-v3-ActSubstanceAdministrationImmunizationCode-cisis +* codes from valueset $jdv-absent-or-unknown-immunization-cisis + +* ^experimental = false \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineCode.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineCode.fsh new file mode 100644 index 00000000000..d6affb936da --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineCode.fsh @@ -0,0 +1,14 @@ +ValueSet: FrValueSetCodeProduit +Id: fr-doc-vs-code-produit +Title: "Fr ValueSet Codes ATC ou CIS pour les vaccins" +Description: "Ce jeu de valeurs contient les systèmes ATC et CIS (ANSM) utilisés pour coder les vaccins." + + +* include codes from system https://smt.esante.gouv.fr/terminologie-atc // ATC +// CIS: termino non trouvé dans l'IG : Terminologies de Santé +/* +* include codes from system urn:oid:1.2.250.1.213.2.3.1 // CIS +*/ +// CIS_Entity +* include codes from system https://smt.esante.gouv.fr/terminologie-bdpm/ // Entité de spécialité Code CIS +* ^experimental = false \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineTranslation.fsh b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineTranslation.fsh new file mode 100644 index 00000000000..a33f256d25b --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/valueSet/FrValueSetVaccineTranslation.fsh @@ -0,0 +1,13 @@ +ValueSet: FrValueSetVaccineTranslation +Id: fr-doc-vs-vaccine-translation +Title: "Fr ValueSet Vaccine-Translation pour les autres codifications" +Description: "Systèmes autorisés pour les autres codifications (équivalent CDA translation)." + +//* include codes from system urn:oid:1.2.250.1.213.2.3.2 // CIP : Code Identifiant de Présentation +//CIP_Entity : Entité de présentation (code CIP) +* include codes from system https://smt.esante.gouv.fr/terminologie-bdpm/ +* include codes from system urn:oid:1.2.250.1.213.2.61 // UCD : Unités Communes de Dispensation +* include codes from system https://smt.esante.gouv.fr/terminologie-atc // ATC : Classification anatomique, thérapeutique et chimique +* include codes from system urn:oid:1.2.250.1.213.2.59 // MV : Médicament Virtuel + +* ^experimental = false \ No newline at end of file diff --git a/input/fsh/RessourcesFHIREntete/aliases.fsh b/input/fsh/RessourcesFHIREntete/aliases.fsh index 1a3d9483ea8..e4b20bb7d2e 100644 --- a/input/fsh/RessourcesFHIREntete/aliases.fsh +++ b/input/fsh/RessourcesFHIREntete/aliases.fsh @@ -1,4 +1,10 @@ // Extensions +Alias: $imposeProfile = http://hl7.org/fhir/StructureDefinition/structuredefinition-imposeProfile +Alias: $ihe-ext-medication-productname = https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname +Alias: $ihe-ext-medication-classification = https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification +Alias: $ihe-ext-medication-characteristic = https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic +Alias: $performerFunction = http://hl7.org/fhir/StructureDefinition/event-performerFunction + //Alias: $qualifier = http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier // JDV @@ -16,7 +22,12 @@ Alias: $JDV_J141-RoleClass-CISIS = https://mos.esante.gouv.fr/NOS/JDV_J141-RoleC Alias: $jdv-type-systeme-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-type-systeme-cisis Alias: $jdv-j368-categorie-etablissement-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-j368-categorie-etablissement-cisis Alias: $jdv-role-informateur-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-role-informateur-cisis - +Alias: $jdv-role-informateur-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-role-informateur-cisis +Alias: $jdv-hl7-v3-ActSubstanceAdministrationImmunizationCode-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ActSubstanceAdministrationImmunizationCode-cisis +Alias: $jdv-absent-or-unknown-immunization-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-absent-or-unknown-immunization-cisis +Alias: $jdv-immunization-route-code-cisis = https://smt.esante.gouv.fr/fhir/ValueSet/jdv-immunization-route-code-cisis +//terminologie-cisis +Alias: $terminologie-cisis = https://smt.esante.gouv.fr/fhir/CodeSystem/terminologie-cisis // TRE Alias: $TRE_R66-CategorieEtablissement = https://mos.esante.gouv.fr/NOS/TRE_R66-CategorieEtablissement/FHIR/TRE-R66-CategorieEtablissement Alias: $TRE_G13-OrientationParticuliere = https://mos.esante.gouv.fr/NOS/TRE_G13-OrientationParticuliere/FHIR/TRE-G13-OrientationParticuliere diff --git a/sushi-config.yaml b/sushi-config.yaml index 3b37f9fe7f5..7137e900d0a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -27,6 +27,7 @@ dependencies: hl7.fhir.extensions.r5: 4.0.1 ans.fhir.fr.annuaire: 1.1.0 hl7.fhir.uv.fhir-clinical-document: 1.0.0-ballot + ihe.pharm.mpd: 1.0.0-comment-2 pages: index.md: @@ -178,6 +179,33 @@ groups: - StructureDefinition/fr-encounter-document - StructureDefinition/fr-location-document - StructureDefinition/fr-related-person-document + - StructureDefinition/fr-care-plan-document + - StructureDefinition/fr-diagnostic-report-document + - StructureDefinition/fr-encounter-evenement-document + - StructureDefinition/fr-observation-naissance-document + - StructureDefinition/fr-historique-de-la-grossesse-list + - StructureDefinition/fr-historique-de-la-grossesse + - StructureDefinition/fr-medication-administration-document + - StructureDefinition/fr-medication-dispense-document + - StructureDefinition/fr-medication-document + - StructureDefinition/fr-medication-request-document + - StructureDefinition/fr-medication-combinaison-document + - StructureDefinition/fr-medication-statement-document + - StructureDefinition/fr-observation-grossesse-document + - StructureDefinition/fr-observation-recherche-micro-organismes + - StructureDefinition/fr-observation-resultat-document + - StructureDefinition/fr-observation-statut + - StructureDefinition/fr-observation-statut-document + - StructureDefinition/fr-observation-sur-echelle-douleur + - StructureDefinition/fr-observation-synthese-medicale-sejour-document + - StructureDefinition/fr-observation-transfusion-de-produits-sanguins + - StructureDefinition/fr-procedurede-transport-patient + - StructureDefinition/fr-procedure-transport-Professionnel + - StructureDefinition/fr-references-externes-document + - StructureDefinition/fr-signes-vitaux-document + - StructureDefinition/fr-signes-vital-Observe-document + - StructureDefinition/fr-vaccination-document + - StructureDefinition/fr-vaccin-recommande-document Data Type FHIR: name: Data Type Profiles @@ -189,7 +217,26 @@ groups: resources: - StructureDefinition/fr-author-time - StructureDefinition/fr-performer-event - + - StructureDefinition/fr-autres-precision-extension + - StructureDefinition/fr-dispenser-instruction-extension + - StructureDefinition/fr-document-reference-externe-extension + - StructureDefinition/fr-dose-antigene-extension + - StructureDefinition/fr-evenement-caracteristique-extension + - StructureDefinition/fr-precondition-extension + - StructureDefinition/fr-prescription-extension + - StructureDefinition/fr-qualifier-extension + - StructureDefinition/fr-reference-interne-extension + - StructureDefinition/fr-repeat-number-extension + - StructureDefinition/fr-sequence-extension + - StructureDefinition/fr-translation-extension + - StructureDefinition/fr-vaccination-type-extension + - StructureDefinition/fr-administration-frequency + - StructureDefinition/fr-actor-extension + - StructureDefinition/fr-nom-substance + - StructureDefinition/fr-transport-professionnel-extension + - StructureDefinition/fr-transport-patient-extension + + Mapping: name: Concept Maps resources: From d9324e9e7a21f34b27f7befd64591c3181960c35 Mon Sep 17 00:00:00 2001 From: Haoura Date: Tue, 2 Sep 2025 17:16:11 +0200 Subject: [PATCH 2/2] MAJ ressources FHIR --- input/fsh/ResourcesCDAEntete/FrName.fsh | 2 +- .../extensions/FrActorExtension.fsh | 12 +-- .../extensions/FrProcedureFromLocation.fsh | 16 ++++ .../extensions/FrProcedureToLocation.fsh | 16 ++++ .../extensions/FrRepeatNumberExtension.fsh | 2 +- .../extensions/FrSequenceExtension.fsh | 2 +- .../profils/FrEncounterEvenementDocument.fsh | 3 +- .../FrFrObservationNaissanceDocument.fsh | 4 +- .../FrHistoriqueGrossesseDocumentList.fsh | 5 +- .../FrHistoriqueGrossesseObservation.fsh | 7 +- .../FrMedicationAdministrationDocument.fsh | 8 +- .../profils/FrMedicationDocument.fsh | 23 +----- .../profils/FrMedicationRequestDocument.fsh | 24 ++++-- .../profils/FrMedicationStatementDocument.fsh | 3 +- .../FrObservationRechercheMicroOrganismes.fsh | 10 +++ .../profils/FrObservationResultatDocument.fsh | 13 +++- .../profils/FrObservationStatut.fsh | 10 +++ .../profils/FrObservationStatutDocument.fsh | 10 +++ ...ervationSyntheseMedicaleSejourDocument.fsh | 11 +++ ...servationTransfusionDeProduitsSanguins.fsh | 10 +++ .../profils/FrProcedureTransportPatient.fsh | 18 +++-- .../FrProcedureTransportProfessionnel.fsh | 30 +++++--- .../profils/FrSigneViatalObserveDocument.fsh | 12 ++- .../profils/FrSignesVitauxDocument.fsh | 11 ++- sushi-config.yaml | 75 +++++++++++-------- 25 files changed, 223 insertions(+), 114 deletions(-) create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrProcedureFromLocation.fsh create mode 100644 input/fsh/RessourceFHIRCoprs/extensions/FrProcedureToLocation.fsh diff --git a/input/fsh/ResourcesCDAEntete/FrName.fsh b/input/fsh/ResourcesCDAEntete/FrName.fsh index 6d252788aaa..a0b4983cb1c 100644 --- a/input/fsh/ResourcesCDAEntete/FrName.fsh +++ b/input/fsh/ResourcesCDAEntete/FrName.fsh @@ -1,7 +1,7 @@ Profile: FrName Parent: http://hl7.org/cda/stds/core/StructureDefinition/PN Id: fr-core-name -Title: "CDA - " +Title: "CDA - Name " Description: "L'élément de l'en-tête du CDA correspond au nom d'une personne physique." * ^status = #draft * item.delimiter 0..0 diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh index e4c181d30fa..03d07f1a65a 100644 --- a/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrActorExtension.fsh @@ -1,12 +1,11 @@ Extension: FrActorExtension Id: fr-actor-extension -Title: "Fr Extension - Actor" +Title: "Extension - Actor" Description: "Extension pour représenter un acteur impliqué dans le document avec son type et sa référence." -* ^context[+].type = #element -* ^context[=].expression = "Resource" - + * extension contains type 1..1 and + typeCode 0..1 and reference 1..1 // Sous-extension type @@ -14,6 +13,9 @@ Description: "Extension pour représenter un acteur impliqué dans le document a * extension[type].valueCode from FrValueSetActorType (required) * extension[type] ^short = "Type d'acteur (AUT, PRF, PART, INF)" +* extension[typeCode].value[x] only CodeableConcept +* extension[typeCode] ^short = "Type de participation" + // Sous-extension reference -* extension[reference].value[x] only Reference(FrPractitionerRoleDocument) +* extension[reference].value[x] only Reference(FrPractitionerRoleDocument or Device or FrDeviceDocument or FrOrganizationDocument or FrRelatedPersonDocument or FrPatientINSDocument or FrPatientDocument) * extension[reference] ^short = "Référence vers le rôle du praticien dans le document" \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrProcedureFromLocation.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrProcedureFromLocation.fsh new file mode 100644 index 00000000000..b085f886d7c --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrProcedureFromLocation.fsh @@ -0,0 +1,16 @@ +Extension: FrProcedureFromLocation +Id: fr-procedure-from-location +Title: "Fr Lieu de départ du transport" +Description: "Extension pour représenter le lieu de départ d’un transport (patient ou professionnel)." + +* extension contains + type 1..1 MS and + reference 1..1 MS + +// Sous-extension "type" = code fixé depuis un ValueSet +* extension[type].value[x] only CodeableConcept +* extension[type].valueCodeableConcept from http://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ParticipationType-cisis (required) +* extension[type].valueCodeableConcept.coding.code = #ORG + +// Sous-extension "reference" = référence vers Location +* extension[reference].value[x] only Reference(FrLocationDocument) diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrProcedureToLocation.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrProcedureToLocation.fsh new file mode 100644 index 00000000000..656f8b8a7a9 --- /dev/null +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrProcedureToLocation.fsh @@ -0,0 +1,16 @@ +Extension: FrProceduretoLocation +Id: fr-procedure-to-location +Title: "Fr Lieu de départ du transport" +Description: "Extension pour représenter le lieu de destination d’un transport (patient ou professionnel)." + +* extension contains + type 1..1 MS and + reference 1..1 MS + +// Sous-extension "type" = code fixé depuis un ValueSet +* extension[type].value[x] only CodeableConcept +* extension[type].valueCodeableConcept from http://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ParticipationType-cisis (required) +* extension[type].valueCodeableConcept.coding.code = #DST + +// Sous-extension "reference" = référence vers Location +* extension[reference].value[x] only Reference(FrLocationDocument) diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh index f96a765d294..c57a32a2929 100644 --- a/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrRepeatNumberExtension.fsh @@ -1,6 +1,6 @@ Extension: FrRepeatNumberExtension Id: fr-repeat-number-extension -Title: "FR Repeat Number" +Title: "Fr Repeat Number" Description: "Numéro d'occurrence de l'acte ou de l'observation (équivalent CDA repeatNumber)" * ^context[+].type = #element * ^context[=].expression = "Resource" diff --git a/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh b/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh index 271edc5b000..6bd1ebd4fd2 100644 --- a/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh +++ b/input/fsh/RessourceFHIRCoprs/extensions/FrSequenceExtension.fsh @@ -1,6 +1,6 @@ Extension: FrSequenceExtension Id: fr-sequence-extension -Title: "FR Sequence" +Title: "Fr Sequence" Description: "Dosages progressifs et fractionnés" * ^context[+].type = #element * ^context[=].expression = "MedicationAdministration" diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh index 8963e869782..47e601a98e3 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrEncounterEvenementDocument.fsh @@ -55,5 +55,4 @@ Extension: FrTransportProfessionnel Id: fr-transport-professionnel-extension Title: "Fr Transport professionnel" Description: "Extension permettant de référencer une procédure de transport du Professionnel depuis un Encounter." -* valueReference only Reference(FrProcedureTransportProfessionnel) - +* valueReference only Reference(FrProcedureTransportProfessionnel) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh index 7bb04e0f7a2..45f2b9b9d93 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrFrObservationNaissanceDocument.fsh @@ -6,7 +6,6 @@ Title: "Observation - Fr Naissance" Description: "Cette entrée rassemble les observations relatives à une naissance. - Elle peut-être utilisée comme 'component'; d'une entrée FR-Historique-de-la-grossesse (1.3.6.1.4.1.19376.1.5.3.1.4.13.5.1)." - * code 1..1 MS * ^short = "Code de l'entrée." * code.coding.system = "http://snomed.info/sct/" @@ -31,5 +30,4 @@ Description: "Cette entrée rassemble les observations relatives à une naissanc Invariant: child-relationship Description: "Le relationship de RelatedPerson doit être fixé à CHILD." Expression: "resolve().relationship.coding.where(code = 'CHILD').exists()" -Severity: #error - +Severity: #error \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh index 5618fad90c7..35eb9dbbc74 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseDocumentList.fsh @@ -17,7 +17,4 @@ Description: "Liste contenant soit un événement de naissance, soit une observa * ^short = "Période de la grossesse" * entry 1..* * entry ^short = "Références vers des observations de type grossesse ou naissance" -* entry.item only Reference(FrObservationGrossesseDocument or FrObservationNaissanceDocument) - - - +* entry.item only Reference(FrObservationGrossesseDocument or FrObservationNaissanceDocument) \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh index 65b4210ccf7..798b013d6b6 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrHistoriqueGrossesseObservation.fsh @@ -18,13 +18,8 @@ Description: "Cette entrée permet de regrouper les observations relatives à un * effective[x] only dateTime * ^short = "Période de la grossesse" -//* encounter only Reference(Encounter) - * ^short = "Informations relatives aux naissances" * hasMember 1..* MS * ^short = "Informations relatives à la grossesse" * hasMember only Reference(FrObservationGrossesseDocument or FrObservationNaissanceDocument) -* value[x] 0..0 - - - +* value[x] 0..0 \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh index d2d49c6fad0..8237aea85f2 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationAdministrationDocument.fsh @@ -50,7 +50,7 @@ Description: " // Médicament * medication[x] MS -* medication[x] only CodeableConcept or Reference(FrMedicationDocument) +* medication[x] only CodeableConcept or Reference(FrMedicationDocument or FrMedicationsCombinaisonDocument) // Prescription : Utilisation de l'extension FrPrescription ou l'élément request qui fait référence (MedicationRequest) ? * extension contains FrPrescriptionExtension named Prescription 0..* MS @@ -64,8 +64,6 @@ Description: " * ^short = "Motif du traitement" * reasonReference only Reference(Condition or Observation) -// Précondition ou bien utiliser l'extnexion FHIR note ?? +// Précondition ou bien utiliser l'extnexion FHIR "note" ?? * extension contains FrPreconditionExtension named precondition 0..1 - * ^short = "Permet de décrire les conditions préalables à l'utilisation du médicament." - - + * ^short = "Permet de décrire les conditions préalables à l'utilisation du médicament." \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh index 110ea4a74d8..37540a93d7f 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationDocument.fsh @@ -9,31 +9,12 @@ Description: "L'entrée Produit de santé permet de décrire un médicament ou u * code 1..1 MS * ^short = "Code du produit de santé" +// créer un type CodeableConceptDocument ou bien utiliser extension : translation ? * code.coding.extension contains FrTranslationExtension named translation 0..* * code.coding.extension[translation] ^short = "Autres codifications (CIP, UCD, ATC, MV)" * code.coding.extension[translation].valueCodeableConcept.coding.system from FrValueSetVaccineTranslation (required) - -// créer un type CodeableConceptDocument ou bien utiliser le coding pour les translations ? -// Définition du slicing -/* -* code.coding ^slicing.discriminator.type = #pattern -* code.coding ^slicing.discriminator.path = "system" -* code.coding ^slicing.rules = #open -* code.coding ^slicing.description = "Slicing pour distinguer le code principal et les translations" - -* code.coding contains - code 1..1 and - translation 0..* - -// Slice code (code principal) -* code.coding[code] ^short = "Code principal du vaccin" -* code.coding[code].system from FRValueSetCodeProduit (required) - -// Slice translation (autres codifications) -* code.coding[translation] ^short = "Autres codifications (CIP, UCD, ATC, MV)" -* code.coding[translation].system from FRValueSetVaccineTranslation (required) -*/ +// créer un type CodeableConceptDocument ou bien utiliser extension : translation ? //Nom de marque du produit : Extension IHE * extension contains $ihe-ext-medication-productname named productName 1..1 MS diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh index 32feb739b47..57714a89892 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationRequestDocument.fsh @@ -7,15 +7,22 @@ Description: " - Cette entrée de type substanceAdministration permet de décrire un traitement prescrit avec notamment le médicament, le mode d’administration, la quantité, la durée et la fréquence d'administration." //* ^extension[$imposeProfile].valueCanonical = Canonical() + * doNotPerform = false * intent = #order -* identifier 1..* MS +* identifier MS * identifier ^slicing.discriminator.type = #pattern * identifier ^slicing.discriminator.path = "type" * identifier ^slicing.rules = #open * identifier ^slicing.ordered = false -* identifier contains referencePrescription 1..* + +* identifier contains + identifierEntree 1..* MS and + referencePrescription 1..* MS + +* identifier[identifierEntree] ^short = "Identifiant de l'entrée" +* identifier[referencePrescription] ^short = "Référence de la prescription. Non utilisé dans une prescription." * category 0..1 MS * category.coding 1..1 @@ -43,7 +50,7 @@ Description: " * periodUnit MS * when MS * offset MS - // Nombre de renouvellement(s) possible(s) : ou bien : dispenseRequest.numberOfRepeatsAllowed + // Nombre de renouvellement(s) possible(s) // ou bien : dispenseRequest.numberOfRepeatsAllowed //* countMax MS //* ^short = "Nombre de renouvellement(s) possible(s)" // Dosages conditionnels @@ -90,16 +97,16 @@ Description: " * ^short = "Motif du traitement" * reasonReference only Reference(Condition or Observation) -// une copie du plan de traitement médicamenteux +//copie du plan de traitement médicamenteux +* supportingInformation only Reference(MedicationRequest) + * ^short = "Référence à un item du plan de traitement. Une copie du plan de traitement médicamenteux." + * identifier MS + * ^short = "Identifiant de la ligne de traitement dans un plan de traitement." // ou bien basedOn lien vers le plan de traitement ? /* * basedOn 0..1 MS * basedOn only Reference(FrCarePlanDocument) */ -* supportingInformation only Reference(MedicationRequest) - * ^short = "Référence à un item du plan de traitement. Une copie du plan de traitement médicamenteux." - * identifier MS - * ^short = "Identifiant de la ligne de traitement dans un plan de traitement." //Instructions au patient // si codé : @@ -114,6 +121,7 @@ Description: " */ * dispenseRequest MS * extension contains FrDispenserInstructionExtension named instructionsAuDispensateur 0..1 MS + * ^short = "instructions au dispensateur" * quantity MS * ^short = "Quantité à dispenser" * numberOfRepeatsAllowed MS diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh index 624751fa8f5..768ba8bf6da 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrMedicationStatementDocument.fsh @@ -64,13 +64,12 @@ Description: " // Prescription : Utilisation de l'extension FrPrescription ou l'élément request qui fait référence (MedicationRequest) ? * extension contains FrPrescriptionExtension named Prescription 0..* MS - // Motif du traitement * reasonReference MS * ^short = "Motif du traitement" * reasonReference only Reference(Condition or Observation) -// Précondition ou bien utiliser l'extnexion FHIR note ?? +// Ou bien utilisation de l'extnexion FHIR note ?? * extension contains FrPreconditionExtension named precondition 0..1 diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh index 35c214c6947..0bbf38ab160 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationRechercheMicroOrganismes.fsh @@ -11,4 +11,14 @@ Description: "Cette entrée permet d'indiquer si une recherche de micro-organism * valueBoolean 1..1 MS * ^short = "Valeur de l’observation" +* performer MS +* performer.extension contains FrActorExtension named author 0..1 +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * insert FrRuleSetSimpleObservation diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh index ab610776018..6844aee9267 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationResultatDocument.fsh @@ -17,6 +17,17 @@ Description: "Cette entrée permet d'indiquer le résultat observé." * interpretation ^slicing.rules = #open * interpretation contains observationRange 0..1 -* interpretation[observationRange] ^short = "InterpretationCode" +* interpretation[observationRange] ^short = "Interprétation" + +* performer MS +* performer.extension contains FrActorExtension named author 0..* +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh index 5d5ecf26070..87d958b5088 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatut.fsh @@ -17,4 +17,14 @@ Description: "Cette entrée de type observation permet de décrire et de suivre * valueCodeableConcept.coding.extension[qualifier].extension[name].valueCodeableConcept = $terminologie-cisis#GEN-348 "Motif du statut métier" * valueCodeableConcept.coding.extension[qualifier].extension[value] 1..1 +* performer MS +* performer.extension contains FrActorExtension named author 0..1 +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh index 05e0b1b346a..5e45f156505 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationStatutDocument.fsh @@ -14,4 +14,14 @@ Description: "Cette entrée permet d'indiquer le statut du document (son état d * ^short = "Statut du document" * valueCodeableConcept from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-statut-document-cisis (required) +* performer MS +* performer.extension contains FrActorExtension named author 0..1 +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh index d970a35ab5c..47e3047da6e 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationSyntheseMedicaleSejourDocument.fsh @@ -13,4 +13,15 @@ Description: "Cette entrée permet de fournir, sous forme textuelle, une synthè * valueString 1..1 MS * ^short = "Synthèse médicale du séjour (sous forme textuelle)" +* performer MS +* performer.extension contains FrActorExtension named author 0..1 +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) + * insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh index a20d2bac4f3..8fc9dcd129e 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrObservationTransfusionDeProduitsSanguins.fsh @@ -13,4 +13,14 @@ Description: "Cette entrée permet d'indiquer s'il a eu ou pas transfusion de pr * valueBoolean 1..1 MS * ^short = "Transfusion de produit sanguin." +* performer MS +* performer.extension contains FrActorExtension named author 0..1 +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * insert FrRuleSetSimpleObservation \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh index 552c2c1e080..b69dc7bd82c 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportPatient.fsh @@ -36,19 +36,21 @@ Description: "Cette entrée de type act permet de décrire le transport d'un pat * ^short = "Date du transport" * performer MS -* performer.extension contains - FrActorExtension named transporteur 0..1 +* performer.actor.extension contains + FrActorExtension named transporteur 1..1 -// --- transporteur --- -* performer.extension[transporteur] ^short = "Transporteur" -* performer.extension[transporteur].extension[type].valueCode = #PRF (exactly) -* performer.extension[transporteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) +// transporteur +* performer.actor.extension[transporteur] ^short = "Transporteur" +* performer.actor.extension[transporteur].extension[type].valueCode = #PRF (exactly) +* performer.actor.extension[transporteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) +* performer.actor.extension[transporteur].extension[typeCode].valueCodeableConcept.coding.code = #PRF +// Lieu de départ / Destination * location MS * ^short = "Lieu de départ / Destination" -* location only Reference(FrLocationDocument) +* location.extension contains FrProcedureFromLocation named lieuDepart 0..1 +* location.extension contains FrProceduretoLocation named destination 0..1 //Autres précision sur le trajet ou le transport du patient -// ou bien Utilisation de l’élément note // Si les précisions sur le transport sont non codées ou non structurées, on peut les inclure directement dans Procedure.note * extension contains FrAutresPrecisionExtension named precisionTransportPatient 0..* MS \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh index d3add77dd5a..2ed057ad782 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrProcedureTransportProfessionnel.fsh @@ -30,21 +30,31 @@ Description: "Cette entrée de type act permet de décrire le transport d'un pro * ^short = "Texte décrivant le transport" * performedDateTime 1..1 MS * ^short = "Date du transport" - + * performer MS -* performer.extension contains - FrActorExtension named transporteur 0..1 +* performer.actor.extension contains + FrActorExtension named transporteur 0..1 and + FrActorExtension named professionnelConcerne 1..1 // --- transporteur --- -* performer.extension[transporteur] ^short = "Transporteur" -* performer.extension[transporteur].extension[type].valueCode = #PRF (exactly) -* performer.extension[transporteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) - +* performer.actor.extension[transporteur] ^short = "Transporteur" +* performer.actor.extension[transporteur].extension[type].valueCode = #PRF (exactly) +* performer.actor.extension[transporteur].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) +* performer.actor.extension[transporteur].extension[typeCode].valueCodeableConcept.coding.code = #PRF + +//le Professionnel concerné +* performer.actor.extension[professionnelConcerne] ^short = "le Professionnel concerné" +* performer.actor.extension[professionnelConcerne].extension[type].valueCode = #PART (exactly) +* performer.actor.extension[professionnelConcerne].extension[reference].valueReference only Reference(FrPractitionerRoleDocument) +* performer.actor.extension[professionnelConcerne].extension[typeCode].valueCodeableConcept from https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ParticipationType-cisis +* performer.actor.extension[professionnelConcerne].extension[typeCode].valueCodeableConcept.coding.code = #RCV + +//Lieu de départ et destination : @typeCode = « ORG » ou « DST * location MS * ^short = "Lieu de départ / Destination" -* location only Reference(FrLocationDocument) +* location.extension contains FrProcedureFromLocation named lieuDepart 0..1 +* location.extension contains FrProceduretoLocation named destination 0..1 //Autres précisions sur le trajet ou le transport du patient -// ou bien Utilisation de l’élément note -// Si les précisions sur le transport sont non codées ou non structurées, on peut les inclure directement dans Procedure.note +// Si les précisions sur le transport sont non codées ou non structurées, on peut les inclure directement dans Procedure.note ? * extension contains FrAutresPrecisionExtension named precisionTransportProfessionnel 0..* MS \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh index 6c8562c99c8..146d05e03df 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrSigneViatalObserveDocument.fsh @@ -27,9 +27,17 @@ Description: " * ^short = "Méthode utilisée pour l'observation" * bodySite MS * ^short = "Site de l'observation" + * performer 0..1 MS - * ^short = "Auteur de l'observation" -* performer only Reference (FrPractitionerDocument or FrPractitionerRoleDocument) +* performer.extension contains FrActorExtension named author 0..* +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * component.value[x] only Quantity * component.valueQuantity 1..1 MS * ^short = "Observation effectuée. Terminologie utilisée : UCUM (2.16.840.1.113883.6.8)." \ No newline at end of file diff --git a/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh b/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh index f7337bbf42e..77f78b6dae1 100644 --- a/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh +++ b/input/fsh/RessourceFHIRCoprs/profils/FrSignesVitauxDocument.fsh @@ -17,6 +17,15 @@ Description: "L'entrée Signes vitaux est une entrée de type 'organizer' qui pe * ^short = "Date de l'entrée" * performer MS * ^short = "Auteur" -* performer only Reference (FrPractitionerRoleDocument) +* performer 0..1 MS +* performer.extension contains FrActorExtension named author 0..* +* performer.extension[author] ^short = "Auteur de l’observation" +* performer.extension[author].extension[type].valueCode = #AUT (exactly) +* performer.extension[author].extension[reference].valueReference only Reference( + FrPractitionerRoleDocument + or FrOrganizationDocument + or FrPractitionerRoleDocument + or FrPatientINSDocument + ) * hasMember MS * hasMember only Reference (FrSigneVitalObserveDocument) \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index 7137e900d0a..20960ec54a1 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -165,8 +165,8 @@ groups: - StructureDefinition/fr-core-encounter-participant - StructureDefinition/fr-core-health-care-facility - Ressources FHIR: - name: Profils FHIR + Ressources FHIR entête: + name: Profils FHIR entête resources: - StructureDefinition/fr-bundle-document - StructureDefinition/fr-composition-document @@ -179,44 +179,52 @@ groups: - StructureDefinition/fr-encounter-document - StructureDefinition/fr-location-document - StructureDefinition/fr-related-person-document - - StructureDefinition/fr-care-plan-document - - StructureDefinition/fr-diagnostic-report-document - - StructureDefinition/fr-encounter-evenement-document - - StructureDefinition/fr-observation-naissance-document - - StructureDefinition/fr-historique-de-la-grossesse-list - - StructureDefinition/fr-historique-de-la-grossesse - - StructureDefinition/fr-medication-administration-document - - StructureDefinition/fr-medication-dispense-document - - StructureDefinition/fr-medication-document - - StructureDefinition/fr-medication-request-document - - StructureDefinition/fr-medication-combinaison-document - - StructureDefinition/fr-medication-statement-document - - StructureDefinition/fr-observation-grossesse-document - - StructureDefinition/fr-observation-recherche-micro-organismes - - StructureDefinition/fr-observation-resultat-document - - StructureDefinition/fr-observation-statut - - StructureDefinition/fr-observation-statut-document - - StructureDefinition/fr-observation-sur-echelle-douleur - - StructureDefinition/fr-observation-synthese-medicale-sejour-document - - StructureDefinition/fr-observation-transfusion-de-produits-sanguins - - StructureDefinition/fr-procedurede-transport-patient - - StructureDefinition/fr-procedure-transport-Professionnel - - StructureDefinition/fr-references-externes-document - - StructureDefinition/fr-signes-vitaux-document - - StructureDefinition/fr-signes-vital-Observe-document - - StructureDefinition/fr-vaccination-document - - StructureDefinition/fr-vaccin-recommande-document + + Ressources FHIR corps: + name: Profils FHIR corps + resources: + - StructureDefinition/fr-care-plan-document + - StructureDefinition/fr-diagnostic-report-document + - StructureDefinition/fr-encounter-evenement-document + - StructureDefinition/fr-observation-naissance-document + - StructureDefinition/fr-historique-de-la-grossesse-list + - StructureDefinition/fr-historique-de-la-grossesse + - StructureDefinition/fr-medication-administration-document + - StructureDefinition/fr-medication-dispense-document + - StructureDefinition/fr-medication-document + - StructureDefinition/fr-medication-request-document + - StructureDefinition/fr-medication-combinaison-document + - StructureDefinition/fr-medication-statement-document + - StructureDefinition/fr-observation-grossesse-document + - StructureDefinition/fr-observation-recherche-micro-organismes + - StructureDefinition/fr-observation-resultat-document + - StructureDefinition/fr-observation-statut + - StructureDefinition/fr-observation-statut-document + - StructureDefinition/fr-observation-sur-echelle-douleur + - StructureDefinition/fr-observation-synthese-medicale-sejour-document + - StructureDefinition/fr-observation-transfusion-de-produits-sanguins + - StructureDefinition/fr-procedurede-transport-patient + - StructureDefinition/fr-procedure-transport-Professionnel + - StructureDefinition/fr-references-externes-document + - StructureDefinition/fr-signes-vitaux-document + - StructureDefinition/fr-signes-vital-Observe-document + - StructureDefinition/fr-vaccination-document + - StructureDefinition/fr-vaccin-recommande-document Data Type FHIR: name: Data Type Profiles resources: - StructureDefinition/fr-human-name-document - Extensions FHIR: - name: Extensions FHIR + Extensions FHIR entête: + name: Extensions FHIR entête resources: - StructureDefinition/fr-author-time - StructureDefinition/fr-performer-event + + Extensions FHIR corps: + name: Extensions FHIR corps + resources: - StructureDefinition/fr-autres-precision-extension - StructureDefinition/fr-dispenser-instruction-extension - StructureDefinition/fr-document-reference-externe-extension @@ -235,8 +243,9 @@ groups: - StructureDefinition/fr-nom-substance - StructureDefinition/fr-transport-professionnel-extension - StructureDefinition/fr-transport-patient-extension - - + - StructureDefinition/fr-procedure-from-location + - StructureDefinition/fr-procedure-to-location + Mapping: name: Concept Maps resources: