From f43afccb908c2221fa9b4ebae4f14453ca8ae158 Mon Sep 17 00:00:00 2001 From: Nicolas Riss <48218773+nriss@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:52:12 +0200 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20migre=20le=20contenu=20m=C3=A9tier?= =?UTF-8?q?=20depuis=20interop-IG-document-core?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Modèles logiques métier (ModeleLogiqueMetier/) et mappings ML/CDA/FHIR (MappingCDA_FHIR_Entete/, MappingLM_CDA_FHIR_Corps/), 243 fichiers FSH (112 logical models + 131 ConceptMaps) * Page StructureDefinition-Auteur-intro.md migrée telle quelle (non rattachée à un Logical Model existant, cf. PR description) * Pages narratives métier (structure générale, introduction, exigences spécifiques, entête, corps, mappings) avec liens vers les IG CDA et FHIR * sushi-config.yaml : dependencies (ans.fr.terminologies, ans.fhir.fr.document-core: current, ans.cda.fr.document-core: current), pages/menu restructurés, groups (3 groupes de modèles logiques + 3 groupes de mapping, 131 ConceptMaps confirmés) * Suppression des exemples génériques du template IG-template --- input/fsh/CapabilityStatements/.gitkeep | 0 input/fsh/CodeSystems/CS_Competence.fsh | 49 --- input/fsh/CodeSystems/CS_TypeCarte.fsh | 10 - input/fsh/Examples/FrPatient-exemple.fsh | 11 - input/fsh/Extensions/.gitkeep | 0 input/fsh/Logicals/.gitkeep | 0 .../MappingCDA_FHIR_Entete/AuteurCDAFHIR.fsh | 60 +++ .../ConsentementCDAFHIR.fsh | 44 +++ .../DestinataireCDAFHIR.fsh | 71 ++++ .../DocumentDeReferenceCDAFHIR.fsh | 37 ++ .../EvenementCDAFHIR.fsh | 69 ++++ .../InformateurCDAFHIR.fsh | 42 +++ .../ModeleMetierCDAFHIR.fsh | 184 ++++++++++ .../OperateurSaisieCDAFHIR.fsh | 39 ++ .../ParticipantCDAFHIR.fsh | 98 +++++ .../MappingCDA_FHIR_Entete/PatientCDAFHIR.fsh | 205 +++++++++++ .../PersonneStructureAssignedEntityFHIR.fsh | 118 ++++++ .../PersonneStructureAuteurCDAFHIR.fsh | 119 ++++++ .../PersonneStructureRelatedEntityFHIR.fsh | 113 ++++++ .../PrescriptionCDAFHIR.fsh | 37 ++ .../MappingCDA_FHIR_Entete/PriseEncharge.fsh | 121 +++++++ .../ResponsableCDAFHIR.fsh | 87 +++++ .../StructureConservationCDAFHIR.fsh | 56 +++ .../SystemeStructureAuteurCDAFHIR.fsh | 83 +++++ .../ValidateurCDAFHIR.fsh | 87 +++++ .../FRActSubstitutionLMCDAFHIR.fsh | 38 ++ .../FRAdvanceDirectiveLMCDAFHIR.fsh | 150 ++++++++ .../FRAdverseEventLMCDAFHIR.fsh | 137 +++++++ .../FRAllergyIntoleranceLMCDAFHIR.fsh | 104 ++++++ .../FRAllowedSubstitutionLMCDAFHIR.fsh | 38 ++ .../FRCarePlanLMCDAFHIR.fsh | 82 +++++ .../FRCertitudeLMCDAFHIR.fsh | 55 +++ .../FRConditionLMCDAFHIR.fsh | 146 ++++++++ .../FRCriticiteLMCDAFHIR.fsh | 47 +++ .../FRDeviceRequestLMCDAFHIR.fsh | 123 +++++++ .../FRDeviceUseStatementLMCDAFHIR.fsh | 85 +++++ .../FRDiagnosticReportLMCDAFHIR.fsh | 80 ++++ .../FRDocumentReferenceLMCDAFHIR.fsh | 88 +++++ .../FREncounterLMCDAFHIR.fsh | 107 ++++++ .../FRFamilyMemberHistoriesLMCDAFHIR.fsh | 78 ++++ .../FRFamilyMemberHistoryLMCDAFHIR.fsh | 103 ++++++ ...magingMedicationAministrationLMCDAFHIR.fsh | 95 +++++ .../FRImagingProcedureLMCDAFHIR.fsh | 87 +++++ .../FRImagingQuantityLMCDAFHIR.fsh | 62 ++++ ...adiationExposureAuthorizationLMCDAFHIR.fsh | 38 ++ .../FRImagingSeriesLMCDAFHIR.fsh | 95 +++++ .../FRImagingStudyLMCDAFHIR.fsh | 73 ++++ .../FRImmunizationLMCDAFHIR.fsh | 133 +++++++ .../FRImmunizationRecommendationLMCDAFHIR.fsh | 117 ++++++ .../FRLaboratoryBatteryResultsLMCDAFHIR.fsh | 134 +++++++ .../FRLaboratoryIsolateResultsLMCDAFHIR.fsh | 169 +++++++++ ...boratoryResultClinicalElementLMCDAFHIR.fsh | 155 ++++++++ .../FRLaboratoryResultsLMCDAFHIR.fsh | 153 ++++++++ .../FRMediaLMCDAFHIR.fsh | 136 +++++++ .../FRMedicationAdministrationLMCDAFHIR.fsh | 162 +++++++++ .../FRMedicationDispenseLMCDAFHIR.fsh | 110 ++++++ .../FRMedicationLMCDAFHIR.fsh | 111 ++++++ .../FRMedicationRequestLMCDAFHIR.fsh | 254 +++++++++++++ .../FRMedicationStatementLMCDAFHIR.fsh | 152 ++++++++ .../FRMedicationsCombinaisonLMCDAFHIR.fsh | 69 ++++ ...MedicationsCombinaisonRequestLMCDAFHIR.fsh | 69 ++++ .../FRNonHumanSubjectLMCDAFHIR.fsh | 48 +++ .../FRNoteLMCDAFHIR.fsh | 56 +++ ...dministrationBloodDerivativesLMCDAFHIR.fsh | 79 ++++ .../FRObservationBirthEventLMCDAFHIR.fsh | 68 ++++ ...vationBloodProductTransfusionLMCDAFHIR.fsh | 81 +++++ .../FRObservationLMCDAFHIR.fsh | 107 ++++++ .../FRObservationMedicalSummaryLMCDAFHIR.fsh | 75 ++++ ...rvationMicroorganismDetectionLMCDAFHIR.fsh | 75 ++++ ...tMicroorganismsIdentificationLMCDAFHIR.fsh | 75 ++++ ...FRObservationPregnancyHistoryLMCDAFHIR.fsh | 66 ++++ .../FRObservationPregnancyLMCDAFHIR.fsh | 67 ++++ .../FRObservationResultLMCDAFHIR.fsh | 118 ++++++ .../FRObservationSocialHistoryLMCDAFHIR.fsh | 95 +++++ .../FRObservationSurveyComponentLMCDAFHIR.fsh | 94 +++++ ...RObservationSurveyComponentN2LMCDAFHIR.fsh | 87 +++++ .../FRObservationSurveyLMCDAFHIR.fsh | 122 +++++++ .../FRObservationSurveyPannelLMCDAFHIR.fsh | 62 ++++ ...servationTransfusionAccidentsLMCDAFHIR.fsh | 79 ++++ .../FRObservationVitalSignsLMCDAFHIR.fsh | 103 ++++++ .../FRObservationVitalSignsPanelLMCDAFHIR.fsh | 71 ++++ ...bservationWorkRelatedAccidentLMCDAFHIR.fsh | 70 ++++ .../FRParticipantCorpsLMCDAFHIR.fsh | 140 +++++++ .../FRPatientWithNonHumanSubjectLMCDAFHIR.fsh | 57 +++ .../FRPregnancyHistoryLMCDAFHIR.fsh | 66 ++++ .../FRProcedureLMCDAFHIR.fsh | 191 ++++++++++ .../FRResultsLMCDAFHIR.fsh | 75 ++++ .../FRServiceRequestLMCDAFHIR.fsh | 107 ++++++ .../FRSpecimenLMCDAFHIR.fsh | 87 +++++ .../FRSectionActiveProblemsLMCDAFHIR.fsh | 54 +++ .../FRSectionAddedDocumentsLMCDAFHIR.fsh | 63 ++++ .../FRSectionAdvanceDirectiveLMCDAFHIR.fsh | 55 +++ .../FRSectionAdverseEventLMCDAFHIR.fsh | 50 +++ .../FRSectionAllergyIntoleranceLMCDAFHIR.fsh | 55 +++ .../sections/FRSectionBarCodesLMCDAFHIR.fsh | 55 +++ .../sections/FRSectionCarePlanLMCDAFHIR.fsh | 86 +++++ .../FRSectionDocumentStatusLMCDAFHIR.fsh | 56 +++ .../FRSectionExaminationResultsLMCDAFHIR.fsh | 71 ++++ .../FRSectionExposureRadiationLMCDAFHIR.fsh | 87 +++++ .../FRSectionFamilyHistoryLMCDAFHIR.fsh | 55 +++ .../FRSectionFunctionalStatusLMCDAFHIR.fsh | 70 ++++ .../FRSectionHistoryActsLMCDAFHIR.fsh | 63 ++++ ...nHospitalDischargeMedicationsLMCDAFHIR.fsh | 55 +++ .../sections/FRSectionImagingActLMCDAFHIR.fsh | 91 +++++ .../FRSectionImagingAddendumLMCDAFHIR.fsh | 55 +++ ...ionImagingClinicalInformationLMCDAFHIR.fsh | 108 ++++++ .../FRSectionImagingComparisonLMCDAFHIR.fsh | 56 +++ ...FRSectionImagingComplicationsLMCDAFHIR.fsh | 36 ++ .../FRSectionImagingConclusionLMCDAFHIR.fsh | 36 ++ ...FRSectionImagingObjectCatalogLMCDAFHIR.fsh | 54 +++ ...ctionImagingRadiationExposureLMCDAFHIR.fsh | 72 ++++ .../FRSectionImagingResultsLMCDAFHIR.fsh | 43 +++ ...RSectionImagingServiceRequestLMCDAFHIR.fsh | 44 +++ .../FRSectionImmunizationsLMCDAFHIR.fsh | 55 +++ .../FRSectionLaboratoryChapterLMCDAFHIR.fsh | 63 ++++ ...oratorySecondIntentionResultsLMCDAFHIR.fsh | 63 ++++ ...FRSectionLaboratorySubChapterLMCDAFHIR.fsh | 55 +++ .../FRSectionMedicalDeviceLMCDAFHIR.fsh | 56 +++ .../FRSectionMedicalHistoryLMCDAFHIR.fsh | 55 +++ ...ctionMedicationAdministrationLMCDAFHIR.fsh | 55 +++ .../FRSectionMedicationDispenseLMCDAFHIR.fsh | 55 +++ .../FRSectionMedicationRequestLMCDAFHIR.fsh | 62 ++++ .../FRSectionMedicationsLMCDAFHIR.fsh | 55 +++ .../sections/FRSectionNoteLMCDAFHIR.fsh | 48 +++ .../FRSectionPDFDocumentCopyLMCDAFHIR.fsh | 55 +++ .../FRSectionPatientEducationLMCDAFHIR.fsh | 70 ++++ .../FRSectionPhysicalFunctionsLMCDAFHIR.fsh | 70 ++++ .../FRSectionPregnancyHistoryLMCDAFHIR.fsh | 62 ++++ ...nPrescriptionOfMedicalDevicesLMCDAFHIR.fsh | 62 ++++ ...ectionReasonForRecommendationLMCDAFHIR.fsh | 62 ++++ .../sections/FRSectionResultsLMCDAFHIR.fsh | 54 +++ .../FRSectionSocialHistoryLMCDAFHIR.fsh | 54 +++ ...tionUncodedExaminationResultsLMCDAFHIR.fsh | 47 +++ ...ncodedOccupationalRiskFactorsLMCDAFHIR.fsh | 47 +++ ...ctionUncodedPointsOfVigilanceLMCDAFHIR.fsh | 46 +++ ...ncodedReasonForRecommendationLMCDAFHIR.fsh | 46 +++ .../sections/FRSectionVitalSignsLMCDAFHIR.fsh | 47 +++ .../Entete/FRLMAttester.fsh | 7 + .../Entete/FRLMConsent.fsh | 9 + .../Entete/FRLMDataEnterer.fsh | 8 + .../Entete/FRLMHeaderDocument.fsh | 26 ++ .../Entete/FRLMHealthProfessional.fsh | 16 + .../Entete/FRLMHumanName.fsh | 19 + .../Entete/FRLMInformant.fsh | 8 + .../Entete/FRLMIntendedRecipient.fsh | 13 + .../Entete/FRLMLegalAuthentication.fsh | 13 + .../Entete/FRLMLocation.fsh | 14 + .../Entete/FRLMOganisation.fsh | 16 + .../ModeleLogiqueMetier/Entete/FRLMOrder.fsh | 11 + .../Entete/FRLMParticipant.fsh | 19 + .../Entete/FRLMPatient.fsh | 24 ++ .../Entete/FRLMRelatedPerson.fsh | 29 ++ .../ModeleLogiqueMetier/FRLMCorpsDocument.fsh | 47 +++ .../FRLMAdvanceDirective.fsh | 16 + .../FRLMAdverseDrugReaction.fsh | 22 ++ .../composantsElementaires/FRLMAlert.fsh | 15 + .../FRLMAllergyIntolerance.fsh | 45 +++ .../composantsElementaires/FRLMAttachment.fsh | 17 + .../FRLMBatterieExamensBiologieMedicale.fsh | 15 + .../FRLMBodyStructure.fsh | 14 + .../composantsElementaires/FRLMCarePlan.fsh | 12 + .../composantsElementaires/FRLMCondition.fsh | 34 ++ .../FRLMDICOMMedicationAdministration.fsh | 20 + .../composantsElementaires/FRLMDevice.fsh | 20 + .../composantsElementaires/FRLMDeviceUse.fsh | 24 ++ .../FRLMDosageInstructions.fsh | 45 +++ .../composantsElementaires/FRLMDoseNumber.fsh | 14 + .../composantsElementaires/FRLMEncounter.fsh | 33 ++ .../composantsElementaires/FRLMEndpoint.fsh | 10 + .../composantsElementaires/FRLMEntry.fsh | 24 ++ .../FRLMFamilyMemberHistory.fsh | 20 + .../FRLMImagingStudy.fsh | 21 ++ .../FRLMImmunisation.fsh | 22 ++ .../FRLMIsolatMicrobiologique.fsh | 22 ++ .../FRLMLaboratoireExecutant.fsh | 8 + .../FRLMLaboratoryObservation.fsh | 14 + .../composantsElementaires/FRLMMedication.fsh | 40 ++ .../FRLMMedicationAdministration.fsh | 13 + .../FRLMMedicationDispense.fsh | 22 ++ .../FRLMMicroOrganismSearch.fsh | 9 + ...ugResistantMicroorganismIdentification.fsh | 10 + .../FRLMObservation.fsh | 41 +++ .../FRLMObservationAssessment.fsh | 19 + .../FRLMObservationMedia.fsh | 15 + .../FRLMObservationSocialHistory.fsh | 21 ++ .../FRLMObservationVitalSign.fsh | 19 + .../FRLMPatientTransfer.fsh | 10 + .../FRLMPregnancyHistory.fsh | 25 ++ .../FRLMPregnancyObservation.fsh | 36 ++ .../FRLMPregnancyStatus.fsh | 28 ++ .../FRLMPrescriptionEntree.fsh | 14 + .../FRLMPrescriptionItem.fsh | 39 ++ .../composantsElementaires/FRLMProcedure.fsh | 35 ++ .../FRLMQuantityExposure.fsh | 14 + ...xamensBiologieElementCliniquePertinent.fsh | 20 + .../FRLMResultatsExamensBiologieMedicale.fsh | 18 + .../FRLMSOPInstance.fsh | 14 + .../composantsElementaires/FRLMSeries.fsh | 18 + .../FRLMServiceRequest.fsh | 20 + .../composantsElementaires/FRLMSpecimen.fsh | 35 ++ .../FRLMTechniqueImagerie.fsh | 18 + .../FRLMTransfusionAccidents.fsh | 9 + .../FRLMTransfusionDeProduitsSanguins.fsh | 9 + .../FRLMTravelHistory.fsh | 11 + .../sections/FRLMAddendum.fsh | 10 + .../sections/FRLMAdmissionEvaluation.fsh | 14 + .../sections/FRLMAdvanceDirectives.fsh | 11 + .../sections/FRLMAlerts.fsh | 11 + .../sections/FRLMAllergiesAndIntolerances.fsh | 12 + .../sections/FRLMAttachments.fsh | 11 + .../sections/FRLMCarePlans.fsh | 11 + .../sections/FRLMComparisonStudy.fsh | 10 + .../sections/FRLMConclusion.fsh | 13 + .../sections/FRLMCourseOfEncounter.fsh | 20 + .../sections/FRLMDicomStudyMetadata.fsh | 11 + .../sections/FRLMEncounterInformation.fsh | 12 + .../sections/FRLMExaminationReport.fsh | 15 + .../sections/FRLMExposureInformation.fsh | 11 + .../sections/FRLMFamilyMedicalHistory.fsh | 10 + .../sections/FRLMFunctionalStatus.fsh | 11 + .../FRLMHazardousWorkingConditions.fsh | 9 + .../sections/FRLMHistoryOfPastIllness.fsh | 11 + .../FRLMHospitalDischargeMedications.fsh | 10 + .../sections/FRLMImmunisations.fsh | 11 + .../FRLMMedicalDevicePrescriptions.fsh | 10 + .../FRLMMedicalDevicesAndImplants.fsh | 11 + .../sections/FRLMMedicationDispensations.fsh | 11 + .../sections/FRLMMedicationPrescription.fsh | 10 + .../sections/FRLMMedicationSummary.fsh | 11 + .../ModeleLogiqueMetier/sections/FRLMNote.fsh | 9 + .../sections/FRLMObservationResults.fsh | 11 + .../sections/FRLMOrderInformation.fsh | 11 + .../sections/FRLMPatientEducation.fsh | 12 + .../sections/FRLMPatientHistory.fsh | 11 + .../sections/FRLMPatientStory.fsh | 11 + .../FRLMPredictableAdverseDrugReaction.fsh | 11 + .../sections/FRLMPresentedForm.fsh | 11 + .../sections/FRLMProblems.fsh | 11 + .../sections/FRLMProcedures.fsh | 11 + .../sections/FRLMQRCode.fsh | 10 + .../sections/FRLMReasonForReferral.fsh | 11 + .../sections/FRLMRecommendation.fsh | 11 + .../sections/FRLMResultData.fsh | 10 + .../sections/FRLMSection.fsh | 16 + .../sections/FRLMSectionPregnancyHistory.fsh | 13 + .../sections/FRLMSectionTravelHistory .fsh | 12 + .../sections/FRLMSocialHistory.fsh | 11 + .../sections/FRLMSupportingInformation.fsh | 19 + .../sections/FRLMVitalSigns.fsh | 11 + input/fsh/Profile-datatype/.gitkeep | 0 input/fsh/Profile-resource/FrPatient.fsh | 33 -- input/fsh/SearchParameters/.gitkeep | 0 input/fsh/ValueSets/VS_EyeColor.fsh | 6 - input/fsh/ValueSets/VS_MeltingPot.fsh | 7 - .../VS_ModifiedAdministrativeGender.fsh | 5 - input/fsh/ValueSets/VS_TypeCarte.fsh | 4 - .../StructureDefinition-Auteur-intro.md | 10 + input/pagecontent/annexe-downloads.md | 30 -- input/pagecontent/autres_ressources.md | 6 +- input/pagecontent/change-log.md | 9 - input/pagecontent/corpsDocument.md | 4 + input/pagecontent/downloads.md | 22 ++ input/pagecontent/enteteDocument.md | 4 + input/pagecontent/exigencesSpecifiques.md | 67 ++++ input/pagecontent/introduction.md | 12 + input/pagecontent/mappingCDA-FHIR-corps.md | 311 ++++++++++++++++ input/pagecontent/mappingCDA-FHIR-entete.md | 181 ++++++++++ .../pagecontent/mappingCDA-FHIR-struc-gen.md | 76 ++++ .../{annexe-securite.md => securite.md} | 0 .../spec-fonctionnelle-alimentation.md | 3 - input/pagecontent/spec-fonctionnelle-intro.md | 3 - .../spec-technique-flux-alimentation.md | 3 - .../spec-technique-flux-consommation.md | 3 - input/pagecontent/spec-technique-intro.md | 3 - .../spec-technique-vue-ensemble.md | 3 - input/pagecontent/structureGenerale.md | 5 + sushi-config.yaml | 341 ++++++++++++++++-- 277 files changed, 13614 insertions(+), 215 deletions(-) delete mode 100644 input/fsh/CapabilityStatements/.gitkeep delete mode 100644 input/fsh/CodeSystems/CS_Competence.fsh delete mode 100644 input/fsh/CodeSystems/CS_TypeCarte.fsh delete mode 100644 input/fsh/Examples/FrPatient-exemple.fsh delete mode 100644 input/fsh/Extensions/.gitkeep delete mode 100644 input/fsh/Logicals/.gitkeep create mode 100644 input/fsh/MappingCDA_FHIR_Entete/AuteurCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/ConsentementCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/DestinataireCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/DocumentDeReferenceCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/EvenementCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/InformateurCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/ModeleMetierCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/OperateurSaisieCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/ParticipantCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/PatientCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAssignedEntityFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAuteurCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/PersonneStructureRelatedEntityFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/PrescriptionCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/PriseEncharge.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/ResponsableCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/StructureConservationCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/SystemeStructureAuteurCDAFHIR.fsh create mode 100644 input/fsh/MappingCDA_FHIR_Entete/ValidateurCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRActSubstitutionLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdvanceDirectiveLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdverseEventLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllergyIntoleranceLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllowedSubstitutionLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCarePlanLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCertitudeLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRConditionLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCriticiteLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceRequestLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceUseStatementLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDiagnosticReportLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDocumentReferenceLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FREncounterLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoriesLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingMedicationAministrationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingProcedureLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingQuantityLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingRadiationExposureAuthorizationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingSeriesLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingStudyLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationRecommendationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryBatteryResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryIsolateResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultClinicalElementLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMediaLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationAdministrationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationDispenseLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationRequestLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationStatementLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonRequestLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNonHumanSubjectLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNoteLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationAdministrationBloodDerivativesLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBirthEventLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBloodProductTransfusionLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMedicalSummaryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMicroorganismDetectionLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMultiresistantMicroorganismsIdentificationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationResultLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSocialHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentN2LMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyPannelLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationTransfusionAccidentsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsPanelLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationWorkRelatedAccidentLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRParticipantCorpsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPatientWithNonHumanSubjectLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPregnancyHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRProcedureLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRServiceRequestLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRSpecimenLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionActiveProblemsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAddedDocumentsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdvanceDirectiveLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdverseEventLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAllergyIntoleranceLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionBarCodesLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionCarePlanLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionDocumentStatusLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExaminationResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExposureRadiationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFamilyHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFunctionalStatusLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHistoryActsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHospitalDischargeMedicationsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingActLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingAddendumLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingClinicalInformationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComparisonLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComplicationsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingConclusionLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingObjectCatalogLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingRadiationExposureLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingServiceRequestLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImmunizationsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratoryChapterLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySecondIntentionResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySubChapterLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalDeviceLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationAdministrationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationDispenseLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationRequestLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionNoteLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPDFDocumentCopyLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPatientEducationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPhysicalFunctionsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPregnancyHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPrescriptionOfMedicalDevicesLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionReasonForRecommendationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionSocialHistoryLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedExaminationResultsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedOccupationalRiskFactorsLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedPointsOfVigilanceLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedReasonForRecommendationLMCDAFHIR.fsh create mode 100644 input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionVitalSignsLMCDAFHIR.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMAttester.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMConsent.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMDataEnterer.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMHeaderDocument.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMHealthProfessional.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMHumanName.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMInformant.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMIntendedRecipient.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMLegalAuthentication.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMLocation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMOganisation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMOrder.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMParticipant.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMPatient.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/Entete/FRLMRelatedPerson.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/FRLMCorpsDocument.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdvanceDirective.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdverseDrugReaction.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAlert.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAllergyIntolerance.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAttachment.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBatterieExamensBiologieMedicale.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBodyStructure.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCarePlan.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCondition.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDICOMMedicationAdministration.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDevice.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDeviceUse.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDosageInstructions.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDoseNumber.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEncounter.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEndpoint.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEntry.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMFamilyMemberHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImagingStudy.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImmunisation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMIsolatMicrobiologique.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoireExecutant.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoryObservation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedication.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationAdministration.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationDispense.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMicroOrganismSearch.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMultidrugResistantMicroorganismIdentification.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationAssessment.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationMedia.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationSocialHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationVitalSign.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPatientTransfer.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyObservation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyStatus.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionEntree.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionItem.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMProcedure.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMQuantityExposure.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatExamensBiologieElementCliniquePertinent.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatsExamensBiologieMedicale.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSOPInstance.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSeries.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMServiceRequest.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSpecimen.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTechniqueImagerie.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionAccidents.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionDeProduitsSanguins.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTravelHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMAddendum.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMAdmissionEvaluation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMAdvanceDirectives.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMAlerts.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMAllergiesAndIntolerances.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMAttachments.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMCarePlans.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMComparisonStudy.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMConclusion.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMCourseOfEncounter.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMDicomStudyMetadata.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMEncounterInformation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMExaminationReport.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMExposureInformation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMFamilyMedicalHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMFunctionalStatus.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMHazardousWorkingConditions.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMHistoryOfPastIllness.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMHospitalDischargeMedications.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMImmunisations.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicePrescriptions.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicesAndImplants.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationDispensations.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationPrescription.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationSummary.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMNote.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMObservationResults.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMOrderInformation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMPatientEducation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMPatientHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMPatientStory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMPredictableAdverseDrugReaction.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMPresentedForm.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMProblems.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMProcedures.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMQRCode.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMReasonForReferral.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMRecommendation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMResultData.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMSection.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMSectionPregnancyHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMSectionTravelHistory .fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMSocialHistory.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMSupportingInformation.fsh create mode 100644 input/fsh/ModeleLogiqueMetier/sections/FRLMVitalSigns.fsh delete mode 100644 input/fsh/Profile-datatype/.gitkeep delete mode 100644 input/fsh/Profile-resource/FrPatient.fsh delete mode 100644 input/fsh/SearchParameters/.gitkeep delete mode 100644 input/fsh/ValueSets/VS_EyeColor.fsh delete mode 100644 input/fsh/ValueSets/VS_MeltingPot.fsh delete mode 100644 input/fsh/ValueSets/VS_ModifiedAdministrativeGender.fsh delete mode 100644 input/fsh/ValueSets/VS_TypeCarte.fsh create mode 100644 input/pagecontent/StructureDefinition-Auteur-intro.md delete mode 100644 input/pagecontent/annexe-downloads.md delete mode 100644 input/pagecontent/change-log.md create mode 100644 input/pagecontent/corpsDocument.md create mode 100644 input/pagecontent/downloads.md create mode 100644 input/pagecontent/enteteDocument.md create mode 100644 input/pagecontent/exigencesSpecifiques.md create mode 100644 input/pagecontent/introduction.md create mode 100644 input/pagecontent/mappingCDA-FHIR-corps.md create mode 100644 input/pagecontent/mappingCDA-FHIR-entete.md create mode 100644 input/pagecontent/mappingCDA-FHIR-struc-gen.md rename input/pagecontent/{annexe-securite.md => securite.md} (100%) delete mode 100644 input/pagecontent/spec-fonctionnelle-alimentation.md delete mode 100644 input/pagecontent/spec-fonctionnelle-intro.md delete mode 100644 input/pagecontent/spec-technique-flux-alimentation.md delete mode 100644 input/pagecontent/spec-technique-flux-consommation.md delete mode 100644 input/pagecontent/spec-technique-intro.md delete mode 100644 input/pagecontent/spec-technique-vue-ensemble.md create mode 100644 input/pagecontent/structureGenerale.md diff --git a/input/fsh/CapabilityStatements/.gitkeep b/input/fsh/CapabilityStatements/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/input/fsh/CodeSystems/CS_Competence.fsh b/input/fsh/CodeSystems/CS_Competence.fsh deleted file mode 100644 index 91e3ebf..0000000 --- a/input/fsh/CodeSystems/CS_Competence.fsh +++ /dev/null @@ -1,49 +0,0 @@ -CodeSystem: CompetenceCS -Id: competence-code-system -Title: "Compétences CodeSystem" -Description: "Compétences des professionnels de santé." -* #C01 "Anatomie et Cytologie pathologiques humaines" "Anatomie, Cyto patho;Anatomie et Cytologie pathologiques humaines" -* #C03 "Anesthésie-réanimation" "Anesthésie-réanim;Anesthésie-réanimation" -* #C05 "Médecine appliquée aux sports" "Méd appliquée sports;Médecine appliquée aux sports" -* #C07 "Cardiologie" "Cardiologie;Cardiologie" -* #C09 "Chirurgie plastique, reconstructrice et esthétique" "Chir plast reco esth;Chirurgie plastique, reconstructrice et esthétique" -* #C10 "Chirurgie maxillo-faciale;Chirurgie maxillo-faciale;Chirurgie maxillo-faciale" -* #C11 "Chirurgie thoracique" "Chirurgie thoracique;Chirurgie thoracique" -* #C12 "Chirurgie orthopédique" "Chirurgie orthopédique;Chirurgie orthopédique" -* #C13 "Urologie" "Urologie;Urologie" -* #C15 "Dermato-vénéréologie" "Dermato-vénéréologie;Dermato-vénéréologie" -* #C20 "Hémobiologie" "Hémobiologie;Hémobiologie" -* #C23 "Gynécologie médicale et Obstétrique" "Gynéco-médicale, Obstétrique;Gynécologie médicale et Obstétrique" -* #C25 "Gynécologie médicale" "Gynécologie médicale;Gynécologie médicale" -* #C27 "Obstétrique" "Obstétrique;Obstétrique" -* #C29 "Maladies de l'appareil digestif" "Maladies appareil digestif;Maladies de l'appareil digestif" -* #C30 "Néphrologie" "Néphrologie;Néphrologie" -* #C31 "Médecine exotique" "Médecine exotique;Médecine exotique" -* #C33 "Allergologie" "Allergologie;Allergologie" -* #C34 "Angéiologie" "Angéiologie;Angéiologie" -* #C35 "Cancérologie" "Cancérologie;Cancérologie" -* #C36 "Diabétologie-nutrition" "Diabéto-nutrition;Diabétologie-nutrition" -* #C37 "Endocrinologie" "Endocrinologie;Endocrinologie" -* #C38 "Maladies du sang" "Maladies du sang;Maladies du sang" -* #C39 "Réanimation" "Réanimation;Réanimation" -* #C40 "Médecine légale" "Médecine légale;Médecine légale" -* #C41 "Médecine du travail" "Médecine du travail;Médecine du travail" -* #C43 "Neurologie" "Neurologie;Neurologie" -* #C45 "Neuro-chirurgie" "Neuro-chirurgie;Neuro-chirurgie" -* #C47 "Neuro-psychiatrie" "Neuro-psychiatrie;Neuro-psychiatrie" -* #C51 "Pédiatrie" "Pédiatrie;Pédiatrie" -* #C52 "Phoniatrie" "Phoniatrie;Phoniatrie" -* #C54 "Pneumologie" "Pneumologie;Pneumologie" -* #C57 "Psychiatrie" "Psychiatrie;Psychiatrie" -* #C58 "Psychiatrie, option enfant et adolescent" "Psychiatrie, opt enfant et ado;Psychiatrie, option enfant et adolescent" -* #C60 "Médecine physique et de réadaptation" "Médecine physique, réadapt;Médecine physique et de réadaptation" -* #C62 "Rhumatologie" "Rhumatologie;Rhumatologie" -* #C68 "Chirurgie pédiatrique" "Chirurgie pédiatrique;Chirurgie pédiatrique" -* #C69 "Médecine nucléaire" "Médecine nucléaire;Médecine nucléaire" -* #C71 "Médecine thermale" "Médecine thermale;Médecine thermale" -* #C72 "Génétique médicale" "Génétique médicale;Génétique médicale" -* #C75 "Endocrinologie et Maladies métaboliques" "Endocrin, Maladies métaboliq;Endocrinologie et Maladies métaboliques" -* #C76 "Orthopédie dento-maxillo-faciale" "Orthopédie dento-maxilo-fac;Orthopédie dento-maxillo-faciale" -* #C83 "Chirurgie de la face et du cou" "Chirurgie face et cou;Chirurgie de la face et du cou" - -// https://mos.esante.gouv.fr/NOS/TRE_R39-Competence/TRE_R39-Competence.pdf diff --git a/input/fsh/CodeSystems/CS_TypeCarte.fsh b/input/fsh/CodeSystems/CS_TypeCarte.fsh deleted file mode 100644 index fb514a1..0000000 --- a/input/fsh/CodeSystems/CS_TypeCarte.fsh +++ /dev/null @@ -1,10 +0,0 @@ -CodeSystem: TypeCarteCS -Id: type-carte-code-system -Title: "Type de carte" -Description: "Type de carte professionnelle et personnelle." -* #CPA "Carte de Personnel Autorisé" "La carte d'un personnel autorisé (CDA/CPA)" -* #CPE "Carte de Personnel d'Etablissement" "La Carte de Personnel d'Etablissement de santé (CDE/CPE)." -* #CPF "Carte de Professionnel de Santé en Formation" "La Carte de Professionnel de Santé en Formation (CPF)." -* #CPS "Carte de Professionnel de Santé" "La Carte de Professionnel de Santé (CPS)." - -// https://mos.esante.gouv.fr/NOS/TRE_R87-TypeCarte/TRE_R87-TypeCarte.pdf \ No newline at end of file diff --git a/input/fsh/Examples/FrPatient-exemple.fsh b/input/fsh/Examples/FrPatient-exemple.fsh deleted file mode 100644 index f368142..0000000 --- a/input/fsh/Examples/FrPatient-exemple.fsh +++ /dev/null @@ -1,11 +0,0 @@ -Instance : frpatient-exemple -InstanceOf: FrPatient -Description: "Exemple d'un patient français" -Usage: #example -* identifier[INS].system = "urn:oid:1.2.250.1.213.1.4.8" -* gender = #female -* identifier[INS].value = "239088815400243" -* name[0].family = "DARK" -* name[0].given[0] = "JEANNE MARIE" -* birthDate = 1939-08-13 - diff --git a/input/fsh/Extensions/.gitkeep b/input/fsh/Extensions/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/input/fsh/Logicals/.gitkeep b/input/fsh/Logicals/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/input/fsh/MappingCDA_FHIR_Entete/AuteurCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/AuteurCDAFHIR.fsh new file mode 100644 index 0000000..ccaddf0 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/AuteurCDAFHIR.fsh @@ -0,0 +1,60 @@ +Instance: mappingAuteurCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Auteur\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"Auteur\" et l'élément CDA \"author\" + - Mapping 2 : entre l'élément CDA \"author\" et l'élément FHIR \"Composition.author\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Auteur\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-auteur" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-author" +* group[=].element[+].code = #FRLMAuteur +* group[=].element[=].target.code = #author +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMAuteur.roleFonctionnel +* group[=].element[=].target.code = #author.functionCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMAuteur.horodatageParticipation +* group[=].element[=].target.code = #author.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMAuteur.FRLMPersonneStructure +* group[=].element[=].target.code = #author.assignedAuthor +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément PersonneStructure est de type PersonneStructure." +* group[=].element[+].code = #FRLMAuteur.FRLMSystemeStructureAuteur +* group[=].element[=].target.code = #author.assignedAuthor +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément SystemeStructureAuteur est de type Systeme" + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-author" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #author +* group[=].element[=].target.code = #Composition.author +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #author.time +* group[=].element[=].target.code = #Composition.author.extension:time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #author.functionCode +* group[=].element[=].target.code = #Composition.author.PractitionerRole.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Auteur du document est un professionnel et author.ofType(PractitionerRole)" +// Auteur : Professionnel ou Patient +* group[=].element[+].code = #author.assignedAuthor +* group[=].element[=].target.code = #Composition.author.Practitioner +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.author.resolve().ofType(Practitioner)" +* group[=].element[+].code = #author.assignedAuthor +* group[=].element[=].target.code = #Composition.author.Patient +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.author.resolve().ofType(Patient)" +// Auteur : Systeme +* group[=].element[+].code = #author.assignedAuthor +* group[=].element[=].target.code = #Composition.author.Device +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.author.resolve().ofType(Device)" \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/ConsentementCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/ConsentementCDAFHIR.fsh new file mode 100644 index 0000000..4f6de1d --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/ConsentementCDAFHIR.fsh @@ -0,0 +1,44 @@ +Instance: mappingConsentementCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Consentement\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"ConsentementAssocie\" et l'élément CDA \"authorization\" + - Mapping 2 : entre l'élément CDA \"authorization\" et l'extension FHIR \"ConsentExtension\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Consentement\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-consentement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-authorization" +* group[=].element[+].code = #FRLMConsentement +* group[=].element[=].target.code = #authorization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMConsentement.identifiantConsentement +* group[=].element[=].target.code = #authorization.consent.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMConsentement.typeConsentement +* group[=].element[=].target.code = #authorization.consent.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMConsentement.statutConsentement +* group[=].element[=].target.code = #authorization.consent.statusCode="completed" +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-authorization" +* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/consent-extension" +* group[=].element[+].code = #authorization +* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "ValueReference.resolve().ofType(Consent)" +* group[=].element[+].code = #authorization.consent.id +* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authorization.consent.code +* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent.category +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authorization.consent.statusCode="completed" +* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent.status:active +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/DestinataireCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/DestinataireCDAFHIR.fsh new file mode 100644 index 0000000..4278ea8 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/DestinataireCDAFHIR.fsh @@ -0,0 +1,71 @@ +Instance: mappingDestinatairePrevuCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Destinataire prévu\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"destinataire\" et l'élément CDA \"informationRecipient\" + - Mapping 2 : entre l'élément CDA \"informationRecipient\" et l'extension FHIR \"InformationRecipientExtension\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Destinataire prévu\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-destinataire-prevu" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-information-recipient" +* group[=].element[+].code = #FRLMDestinatairePrevu +* group[=].element[=].target.code = #informationRecipient +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMDestinatairePrevu.destinataire +* group[=].element[=].target.code = #informationRecipient.intendedRecipient +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément destinataire est de type PersonneStructure." + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-information-recipient" +* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/information-recipient-extension" +* group[=].element[+].code = #informationRecipient +* group[=].element[=].target.code = #extension:InformationRecipientExtension +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient +* group[=].element[=].target.code = #extension:InformationRecipientExtension.extension:party.PractitionerRole +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.id +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.addr +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.telecom +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.family +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.given +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.prefix +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.suffix +* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.suffix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization +* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.id +* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.name +* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.telecom +* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.addr +* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.address +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/DocumentDeReferenceCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/DocumentDeReferenceCDAFHIR.fsh new file mode 100644 index 0000000..183c440 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/DocumentDeReferenceCDAFHIR.fsh @@ -0,0 +1,37 @@ +Instance: mappingDocumentDeReferenceCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"DocumentDeReference\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"documentDeReference\" et l'élément CDA \"relatedDocument\" + - Mapping 2 : entre l'élément CDA \"relatedDocument\" et l'élément FHIR \"Composition.relatesTo\" """ + +* name = "Mapping Métier/CDA/FHIR : \"DocumentDeReference\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-document-reference" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-related-document" +* group[=].element[+].code = #FRLMDocumentDeReference +* group[=].element[=].target.code = #relatedDocument +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMDocumentDeReference.typeReference +* group[=].element[=].target.code = #relatedDocument@typeCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMDocumentDeReference.identifiantUniqueDocument +* group[=].element[=].target.code = #relatedDocument.parentDocument.id +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-related-document" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #relatedDocument +* group[=].element[=].target.code = #Composition.relatesTo +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedDocument@typeCode +* group[=].element[=].target.code = #Composition.relatesTo.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedDocument.parentDocument.id +* group[=].element[=].target.code = #Composition.relatesTo.targetIdentifier +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/EvenementCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/EvenementCDAFHIR.fsh new file mode 100644 index 0000000..3c7e58f --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/EvenementCDAFHIR.fsh @@ -0,0 +1,69 @@ +Instance: mappingEvenementCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Evènement documenté\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 :entre le modèle métier \"evenement\" et l'élément CDA \"documentationOf\" + - Mapping 2 : entre l'élément CDA \"documentationOf\" et l'élément FHIR \"Composition.event\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Evènement documenté\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-evenement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-documentation-of" +* group[=].element[+].code = #FRLMEvenement +* group[=].element[=].target.code = #documentationOf +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.identifiantEvenement +* group[=].element[=].target.code = #documentationOf.serviceEvent.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.codeEvenement +* group[=].element[=].target.code = #documentationOf.serviceEvent.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.dateHeureEvenement +* group[=].element[=].target.code = #documentationOf.serviceEvent.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.executantEvenement +* group[=].element[=].target.code = #documentationOf.serviceEvent.performer@typeCode="PRF" +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.executantEvenement.roleFonctionnel +* group[=].element[=].target.code = #documentationOf.serviceEvent.performer.functionCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.executantEvenement.dateHeureParticipation +* group[=].element[=].target.code = #documentationOf.serviceEvent.performer.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEvenement.executantEvenement.executant +* group[=].element[=].target.code = #documentationOf.serviceEvent.performer.assignedEntity +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-documentation-of" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #documentationOf +* group[=].element[=].target.code = #Composition.event +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #documentationOf.serviceEvent.id +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Cette donnée est fournie dans un autre élément : Composition.relatesTo" +* group[=].element[+].code = #documentationOf.serviceEvent.code +* group[=].element[=].target.code = #Composition.event.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #documentationOf.serviceEvent.effectiveTime +* group[=].element[=].target.code = #Composition.event.period +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #documentationOf.serviceEvent.performer@typeCode="PRF" +* group[=].element[=].target.code = #Composition.event.extension:perfomer.PractitionerRole +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.event.extension:perfomer.ValueReference.resolve().ofType(FrPractitionerRoleDocument)" +* group[=].element[+].code = #documentationOf.serviceEvent.performer.functionCode +* group[=].element[=].target.code = #Composition.event.extension:perfomer.PractitionerRole.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #documentationOf.serviceEvent.performer.time +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Mapped in Composition.event.period " +* group[=].element[+].code = #documentationOf.serviceEvent.performer.assignedEntity +* group[=].element[=].target.code = #Composition.event.extension:perfomer.PractitionerRole.Practitioner +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.event.extension:perfomer.ValueReference.resolve().ofType(FrPractitionerRoleDocument).Practitioner.resolve()" \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/InformateurCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/InformateurCDAFHIR.fsh new file mode 100644 index 0000000..4ab2ee3 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/InformateurCDAFHIR.fsh @@ -0,0 +1,42 @@ +Instance: mappingInformateurCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Informateur\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"informateur\" et l'élément CDA \"informant\" + - Mapping 2 : entre l'élément CDA \"informant\" et l'extension FHIR \"InformantExtension\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Informateur\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-informateur" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-informant" +* group[=].element[+].code = #FRLMInformateur +* group[=].element[=].target.code = #informant +* group[=].element[=].target.equivalence = #equivalent +// Mapping pour assignedEntity +* group[=].element[+].code = #FRLMInformateur.informateur +* group[=].element[=].target.code = #informant.assignedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément informateur est de type PersonneStructure." +// Mapping pour relatedEntity +* group[=].element[+].code = #FRLMInformateur.informateur +* group[=].element[=].target.code = #informant.relatedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément informateur est de type PersonneStructure." +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-informant" +* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/informant-extension" +* group[=].element[+].code = #informant +* group[=].element[=].target.code = #extension:InformantExtension +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #informant.assignedEntity +* group[=].element[=].target.code = #extension:InformantExtension.extension:party.ValueReference +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "extension:party.ValueReference.resolve().ofType(PractitionerRole or Patient)" +* group[=].element[+].code = #informant.relatedEntity +* group[=].element[=].target.code = #extension:InformantExtension.extension:party.ValueReference +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "extension:party.ValueReference.resolve().ofType(RelatedPerson)" \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/ModeleMetierCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/ModeleMetierCDAFHIR.fsh new file mode 100644 index 0000000..292d212 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/ModeleMetierCDAFHIR.fsh @@ -0,0 +1,184 @@ +Instance: mappingmodelemetierCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Entête d'un document" +Description: """Ce ConceptMap présente trois groupes de mapping : + - Mapping 1 : entre le modèle métier \"EnteteDocument\" et l'élément CDA \"clinicalDocument\" + - Mapping 2 : entre l'élément CDA \"clinicalDocument\" et le profil FHIR \"FrBundleDocument\" + - Mapping 3 : entre l'élément CDA \"clinicalDocument\" et le profil FHIR \"FrCompositionDocument\" """ + +* name = "Mapping Métier/CDA/FHIR : Entête d'un document" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : Modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-entete-document" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-clinical-document" +* group[=].element[+].code = #FRLMEnteteDocument +* group[=].element[=].target.code = #ClinicalDocument +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.identifiantUniqueDocument +* group[=].element[=].target.code = #ClinicalDocument.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.modeleDocument +* group[=].element[=].target.code = #ClinicalDocument.templateId +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.typeDocument +* group[=].element[=].target.code = #ClinicalDocument.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.titreDocument +* group[=].element[=].target.code = #ClinicalDocument.title +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.dateDeCreationDocument +* group[=].element[=].target.code = #ClinicalDocument.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.niveauConfidentialiteDocument +* group[=].element[=].target.code = #ClinicalDocument.confidentialityCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.languePrincipaleDocument +* group[=].element[=].target.code = #ClinicalDocument.languageCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.identifiantLotDeVersionsDocument +* group[=].element[=].target.code = #ClinicalDocument.setId +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.versionDocument +* group[=].element[=].target.code = #ClinicalDocument.versionNumber +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.StatutDocument +* group[=].element[=].target.code = #ClinicalDocument.documentationOf.serviceEvent.lab:statusCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.patient +* group[=].element[=].target.code = #ClinicalDocument.recordTarget +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.auteur +* group[=].element[=].target.code = #ClinicalDocument.author +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.operateurSaisie +* group[=].element[=].target.code = #ClinicalDocument.dataEnterer +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.informateur +* group[=].element[=].target.code = #ClinicalDocument.informant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.structureConservation +* group[=].element[=].target.code = #ClinicalDocument.custodian +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.destinataire +* group[=].element[=].target.code = #ClinicalDocument.informationRecipient +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.responsable +* group[=].element[=].target.code = #ClinicalDocument.legalAuthenticator +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.validateur +* group[=].element[=].target.code = #ClinicalDocument.authenticator +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.participant +* group[=].element[=].target.code = #ClinicalDocument.participant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.prescription +* group[=].element[=].target.code = #ClinicalDocument.inFulfillmentOf +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.evenement +* group[=].element[=].target.code = #ClinicalDocument.documentationOf +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.documentDeReference +* group[=].element[=].target.code = #ClinicalDocument.relatedDocument +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.consentementAssocie +* group[=].element[=].target.code = #ClinicalDocument.authorization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMEnteteDocument.priseEncharge +* group[=].element[=].target.code = #ClinicalDocument.componentOf +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : Identifiant unique du document CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-clinical-document" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-bundle-document" +* group[=].element[+].code = #ClinicalDocument.id +* group[=].element[=].target.code = #Bundle.identifier +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 3 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-clinical-document" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #ClinicalDocument.templateId +* group[=].element[=].target.code = #Composition.meta.profile +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.code +* group[=].element[=].target.code = #Composition.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.title +* group[=].element[=].target.code = #Composition.title +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.effectiveTime +* group[=].element[=].target.code = #Composition.date +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.confidentialityCode +* group[=].element[=].target.code = #Composition.confidentiality +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.languageCode +* group[=].element[=].target.code = #Composition.language +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.setId +* group[=].element[=].target.code = #Composition.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.versionNumber +* group[=].element[=].target.code = #Composition.extension:R5-Composition-version +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = " http://hl7.org/fhir/5.0/StructureDefinition/extension-Composition.version" +* group[=].element[+].code = #ClinicalDocument.documentationOf.serviceEvent.lab:statusCode +* group[=].element[=].target.code = #Composition.status +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.recordTarget +* group[=].element[=].target.code = #Composition.subject +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.author +* group[=].element[=].target.code = #Composition.author +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.author.resolve().ofType(PractitionerRole)" +* group[=].element[+].code = #ClinicalDocument.dataEnterer +* group[=].element[=].target.code = #Composition.extension:data-enterer +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/data-enterer-extension" +* group[=].element[+].code = #ClinicalDocument.informant +* group[=].element[=].target.code = #Composition.extension:informant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/informant-extension" +* group[=].element[+].code = #ClinicalDocument.custodian +* group[=].element[=].target.code = #Composition.custodian +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.custodian.resolve().ofType(Organization)" +* group[=].element[+].code = #ClinicalDocument.informationRecipient +* group[=].element[=].target.code = #Composition.extension:informationRecipient +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/information-recipient-extension" +* group[=].element[+].code = #ClinicalDocument.legalAuthenticator +* group[=].element[=].target.code = #Composition.attester +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.mode = 'legal'" +* group[=].element[+].code = #ClinicalDocument.authenticator +* group[=].element[=].target.code = #Composition.attester +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.mode = 'professional'" +* group[=].element[+].code = #ClinicalDocument.participant +* group[=].element[=].target.code = #Composition.extension:participant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/ParticipantExtension" +* group[=].element[+].code = #ClinicalDocument.inFulfillmentOf +* group[=].element[=].target.code = #Composition.extension:order +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/OrderExtension" +* group[=].element[+].code = #ClinicalDocument.documentationOf +* group[=].element[=].target.code = #Composition.event +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.relatedDocument +* group[=].element[=].target.code = #Composition.relatesTo +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.authorization +* group[=].element[=].target.code = #Composition.extension:consent +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/consent-extension" +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #ClinicalDocument.componentOf +* group[=].element[=].target.code = #Composition.encounter +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-encounter-document" \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/OperateurSaisieCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/OperateurSaisieCDAFHIR.fsh new file mode 100644 index 0000000..7fd6690 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/OperateurSaisieCDAFHIR.fsh @@ -0,0 +1,39 @@ +Instance: mappingOperateurSaisieCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Opérateur de saisie\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"operateurSaisie\" et l'élément CDA \"dataEnterer\" + - Mapping 2 : entre l'élément CDA \"dataEnterer\" et l'extension FHIR \"DataEntererExtension\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Opérateur de saisie\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-operateur-saisie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-data-enterer" +* group[=].element[+].code = #FRLMOperateurSaisie +* group[=].element[=].target.code = #dataEnterer +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMOperateurSaisie.dateSaisie +* group[=].element[=].target.code = #dataEnterer.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMOperateurSaisie.operateurSaisie +* group[=].element[=].target.code = #dataEnterer.assignedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément operateurSaisie est de type PersonneStructure." + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-data-enterer" +* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/data-enterer-extension" +* group[=].element[+].code = #dataEnterer +* group[=].element[=].target.code = #DataEntererExtension +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #dataEnterer.time +* group[=].element[=].target.code = #DataEntererExtension.extension:time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #dataEnterer.assignedEntity +* group[=].element[=].target.code = #DataEntererExtension.extension:party.ValueReference +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "extension:party.ValueReference.resolve().ofType(PractitionerRole)" \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/ParticipantCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/ParticipantCDAFHIR.fsh new file mode 100644 index 0000000..537a3d2 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/ParticipantCDAFHIR.fsh @@ -0,0 +1,98 @@ +Instance: mappingParticipantCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Participant\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"participant\" et l'élément CDA \"participant\" + - Mapping 2 : entre l'élément CDA \"participant\" et l'extension FHIR \"ParticipantExtension\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Participant\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-participant" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-participant" +* group[=].element[+].code = #FRLMParticipant +* group[=].element[=].target.code = #participant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipant.typeParticipation +* group[=].element[=].target.code = #participant@typeCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipant.roleFonctionnel +* group[=].element[=].target.code = #participant.functionCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipant.dateDebutEtOuFinParticipation +* group[=].element[=].target.code = #participant.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipant.participant +* group[=].element[=].target.code = #participant.associatedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément participant est de type PersonneStructure" + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-participant" +* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/ParticipantExtension" +* group[=].element[+].code = #participant +* group[=].element[=].target.code = #extension:ParticipantExtension +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant@typeCode +* group[=].element[=].target.code = #extension:ParticipantExtension.extention:type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.functionCode +* group[=].element[=].target.code = #extension:ParticipantExtension.extention:function.coding +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.time +* group[=].element[=].target.code = #extension:ParticipantExtension.extention:time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity +* group[=].element[=].target.code = #extension:ParticipantExtension.party +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "extension:party.ValueReference.resolve().ofType(PractitionerRole)" +* group[=].element[+].code = #participant.associatedEntity@classCode +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.qualification.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.id +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "extension:party.ValueReference.resolve().ofType(PractitionerRole).practitioner.resolve()" +* group[=].element[+].code = #participant.associatedEntity.code +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.qualification.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.addr +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.telecom +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.name +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.name.family +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.name.given +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.name.prefix +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.name.suffix +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Practitioner.name.suffix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.scopingOrganization +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "extension:party.ValueReference.resolve().ofType(PractitionerRole).organization.resolve()" +* group[=].element[+].code = #participant.associatedEntity.scopingOrganization.id +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.scopingOrganization.name +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.scopingOrganization.telecom +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Organization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #participant.associatedEntity.scopingOrganization.addr +* group[=].element[=].target.code = #extension:ParticipantExtension.party.PractitionerRole.Organization.address +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/PatientCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/PatientCDAFHIR.fsh new file mode 100644 index 0000000..6ec5ee7 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/PatientCDAFHIR.fsh @@ -0,0 +1,205 @@ +Instance: mappingPatientCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Patient/Usager\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"patient\" et l'élément CDA \"recordTarget\" + - Mapping 2 : entre l'élément CDA \"recordTarget\" et le profil FHIR \"FrPatientDocument\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Patient/Usager\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-patient" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-record-target" +* group[=].element[+].code = #FRLMPatientUsager +* group[=].element[=].target.code = #recordTarget +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.identifiantPatient +* group[=].element[=].target.code = #recordTarget.patientRole.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.adresse +* group[=].element[=].target.code = #recordTarget.patientRole.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.coordonneesTelecom +* group[=].element[=].target.code = #recordTarget.patientRole.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.nom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.nom.nomNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.family@qualifier='BR' +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.nom.nomUtilise +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.family@qualifier='CL' +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.prenom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.prenom.listePrenoms +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.prenom.premierPrenom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.given@qualifier='BR' +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.nomsPrenomsPatient.prenom.prenomUtilise +* group[=].element[=].target.code = #recordTarget.patientRole.patient.name.given@qualifier='CL' +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.sexe +* group[=].element[=].target.code = #recordTarget.patientRole.patient.administrativeGenderCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.dateNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.birthTime +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.indicateurDeces +* group[=].element[=].target.code = #recordTarget.patientRole.patient.sdtc:deceasedInd +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.dateDeces +* group[=].element[=].target.code = #recordTarget.patientRole.patient.sdtc:deceasedTime +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.grossesseMultiple +* group[=].element[=].target.code = #recordTarget.patientRole.patient.sdtc:multipleBirthInd +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.numeroOrdreNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.sdtc:multipleBirthOrderNumber +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.adresse +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.coordonneesTelecom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.personneRepresentantPatient.nomsPrenomsRepresentantPatient +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.guardianPerson.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.personneRepresentantPatient.nomsPrenomsRepresentantPatient.nom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.guardianPerson.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.personneRepresentantPatient.nomsPrenomsRepresentantPatient.prenom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.guardianPerson.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.structureRepresentantPatient +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.guardianOrganization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.structureRepresentantPatient.identifiant +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.guardianOrganization.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.representantPatient.structureRepresentantPatient.nom +* group[=].element[=].target.code = #recordTarget.patientRole.patient.guardian.guardianOrganization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.lieuNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.birthPlace +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.lieuNaissance.nomLieuNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.birthPlace.place.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.lieuNaissance.adresseLieuNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.birthPlace.place.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPatientUsager.personnePhysique.lieuNaissance.adresseLieuNaissance.codeOfficielGeographiqueLieuNaissance +* group[=].element[=].target.code = #recordTarget.patientRole.patient.birthPlace.place.addr.county +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-record-target" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-patient-fhir-document" +* group[=].element[+].code = #recordTarget.patientRole +* group[=].element[=].target.code = #Patient +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.id +* group[=].element[=].target.code = #Patient.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.addr +* group[=].element[=].target.code = #Patient.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.telecom +* group[=].element[=].target.code = #Patient.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name +* group[=].element[=].target.code = #Patient.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.family +* group[=].element[=].target.code = #Patient.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.family@qualifier='BR' +* group[=].element[=].target.code = #Patient.name:officialname.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.family@qualifier='CL' +* group[=].element[=].target.code = #Patient.name:usualname.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.given +* group[=].element[=].target.code = #Patient.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.given +* group[=].element[=].target.code = #Patient.name:officialname.birth-list-given-name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.given@qualifier='BR' +* group[=].element[=].target.code = #Patient.name:officialname.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.name.given@qualifier='CL' +* group[=].element[=].target.code = #Patient.name:usualname.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.administrativeGenderCode +* group[=].element[=].target.code = #Patient.gender +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.birthTime +* group[=].element[=].target.code = #Patient.birthDate +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.sdtc:deceasedInd +* group[=].element[=].target.code = #Patient.deceasedBoolean +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.sdtc:deceasedTime +* group[=].element[=].target.code = #Patient.deceasedDateTime +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.sdtc:multipleBirthInd +* group[=].element[=].target.code = #Patient.multipleBirthBoolean +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.sdtc:multipleBirthOrderNumber +* group[=].element[=].target.code = #Patient.multipleBirthInteger +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian +* group[=].element[=].target.code = #Patient.contact.relationship:Role='GUARD' +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.addr +* group[=].element[=].target.code = #Patient.contact.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.telecom +* group[=].element[=].target.code = #Patient.contact.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.guardianPerson.name +* group[=].element[=].target.code = #Patient.contact.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.guardianPerson.family +* group[=].element[=].target.code = #Patient.contact.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.guardianPerson.given +* group[=].element[=].target.code = #Patient.contact.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.guardianOrganization +* group[=].element[=].target.code = #Patient.contact.organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.guardianOrganization.id +* group[=].element[=].target.code = #Patient.contact.organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.guardian.guardianOrganization.name +* group[=].element[=].target.code = #Patient.contact.organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.birthPlace +* group[=].element[=].target.code = #Patient.extension:birthPlace +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.birthPlace.place +* group[=].element[=].target.code = #Patient.extension:birthPlace.value[FRCoreAddressProfile] +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.birthPlace.place.name +* group[=].element[=].target.code = #Patient.extension:birthPlace.value[FRCoreAddressProfile].text +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #recordTarget.patientRole.patient.birthPlace.place.country +* group[=].element[=].target.code = #Patient.extension:birthPlace.value[FRCoreAddressProfile].extension:inseeCode +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAssignedEntityFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAssignedEntityFHIR.fsh new file mode 100644 index 0000000..f34d57a --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAssignedEntityFHIR.fsh @@ -0,0 +1,118 @@ +Instance: mappingPersonneStructureAssignedEntityFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Personne / Structure (AssignedEntity)\"" +Description: """Ce ConceptMap de l'élément PersonneStructure présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"PersonneStructure\" et l'élément CDA \"assignedEntity\" + - Mapping 2 : entre l'élément CDA \"assignedEntity\" et le profil FHIR \"FrPractitionerRoleDocument\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Personne / Structure (AssignedEntity)\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-personne-structure" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-assigned-entity" +* group[=].element[+].code = #FRLMPersonneStructure +* group[=].element[=].target.code = #assignedEntity +* group[=].element[=].target.equivalence = #equivalent +// personne +* group[=].element[+].code = #FRLMPersonneStructure.personne.identifiantPersonne +* group[=].element[=].target.code = #assignedEntity.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.professionRole +* group[=].element[=].target.code = #assignedEntity.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.adresse +* group[=].element[=].target.code = #assignedEntity.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.coordonneesTelecom +* group[=].element[=].target.code = #assignedEntity.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne +* group[=].element[=].target.code = #assignedEntity.assignedPerson +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.nomPersonne +* group[=].element[=].target.code = #assignedEntity.assignedPerson.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.prenomPersonne +* group[=].element[=].target.code = #assignedEntity.assignedPerson.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.civilite +* group[=].element[=].target.code = #assignedEntity.assignedPerson.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.titre +* group[=].element[=].target.code = #assignedEntity.assignedPerson.name.suffix +* group[=].element[=].target.equivalence = #equivalent +//Structure +* group[=].element[+].code = #FRLMPersonneStructure.structure +* group[=].element[=].target.code = #assignedEntity.representedOrganization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.structure.identifiantStructure +* group[=].element[=].target.code = #assignedEntity.representedOrganization.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.structure.nomStructure +* group[=].element[=].target.code = #assignedEntity.representedOrganization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.structure.adresse +* group[=].element[=].target.code = #assignedEntity.representedOrganization.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.structure.coordonneesTelecom +* group[=].element[=].target.code = #assignedEntity.representedOrganization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.structure.secteurActivite +* group[=].element[=].target.code = #assignedEntity.representedOrganization.standardIndustryClassCode +* group[=].element[=].target.equivalence = #equivalent + +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-assigned-entity" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-practitionerRole-document" +* group[=].element[+].code = #assignedEntity +* group[=].element[=].target.code = #PractitionerRole +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.id +* group[=].element[=].target.code = #PractitionerRole.practitioner.identifier +* group[=].element[=].target.comment = "PractitionerRole.practitioner.resolve().ofType(Practitioner)" +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.code +* group[=].element[=].target.code = #PractitionerRole.Practitioner.qualification.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.addr +* group[=].element[=].target.code = #PractitionerRole.Practitioner.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.telecom +* group[=].element[=].target.code = #PractitionerRole.Practitioner.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.assignedPerson.name +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.assignedPerson.name.family +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.assignedPerson.name.given +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.assignedPerson.name.prefix +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.assignedPerson.name.suffix +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.suffix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.representedOrganization +* group[=].element[=].target.code = #PractitionerRole.Organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "PractitionerRole.organization.resolve().ofType(Organization)" +* group[=].element[+].code = #assignedEntity.representedOrganization.id +* group[=].element[=].target.code = #PractitionerRole.Organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.representedOrganization.name +* group[=].element[=].target.code = #PractitionerRole.Organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.representedOrganization.addr +* group[=].element[=].target.code = #PractitionerRole.Organization.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.representedOrganization.telecom +* group[=].element[=].target.code = #PractitionerRole.Organization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedEntity.representedOrganization.standardIndustryClassCode +* group[=].element[=].target.code = #PractitionerRole.Organization.type +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAuteurCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAuteurCDAFHIR.fsh new file mode 100644 index 0000000..32b1ac9 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureAuteurCDAFHIR.fsh @@ -0,0 +1,119 @@ +Instance: mappingPersonneStructureAuteurFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Personne / Structure (Auteur)\"" +Description: """Ce ConceptMap de l'élément PersonneStructureAuteur présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"PersonneStructureAuteur\" et l'élément CDA \"assignedAuthor\" + - Mapping 2 : entre l'élément CDA \"assignedAuthor\" et le profil FHIR \"FrPractitionerRoleDocument\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Personne / Structure (Auteur)\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-personne-structure-auteur" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-assigned-author" +* group[=].element[+].code = #FRLMPersonneStructureAuteur +* group[=].element[=].target.code = #assignedAuthor +* group[=].element[=].target.equivalence = #equivalent +// personne +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.identifiantPersonne +* group[=].element[=].target.code = #assignedAuthor.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.professionRole +* group[=].element[=].target.code = #assignedAuthor.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.adresse +* group[=].element[=].target.code = #assignedAuthor.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.coordonneesTelecom +* group[=].element[=].target.code = #assignedAuthor.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.IdentitePersonne +* group[=].element[=].target.code = #assignedAuthor.assignedPerson +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.IdentitePersonne.nomPersonne +* group[=].element[=].target.code = #assignedAuthor.assignedPerson.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.IdentitePersonne.prenomPersonne +* group[=].element[=].target.code = #assignedAuthor.assignedPerson.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.IdentitePersonne.civilite +* group[=].element[=].target.code = #assignedAuthor.assignedPerson.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.personne.IdentitePersonne.titre +* group[=].element[=].target.code = #assignedAuthor.assignedPerson.name.suffix +* group[=].element[=].target.equivalence = #equivalent +//Structure +* group[=].element[+].code = #FRLMPersonneStructureAuteur.structure +* group[=].element[=].target.code = #assignedAuthor.representedOrganization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.structure.identifiantStructure +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.structure.nomStructure +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.structure.adresse +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.structure.coordonneesTelecom +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructureAuteur.structure.secteurActivite +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.standardIndustryClassCode +* group[=].element[=].target.equivalence = #equivalent + +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-assigned-author" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-practitionerRole-document" +* group[=].element[+].code = #assignedAuthor +* group[=].element[=].target.code = #PractitionerRole.Practitioner +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "PractitionerRole.practitioner.resolve().ofType(Practitioner)" +* group[=].element[+].code = #assignedAuthor.id +* group[=].element[=].target.code = #PractitionerRole.Practitioner.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.code +* group[=].element[=].target.code = #PractitionerRole.Practitioner.qualification.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.addr +* group[=].element[=].target.code = #PractitionerRole.Practitioner.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.telecom +* group[=].element[=].target.code = #PractitionerRole.Practitioner.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedPerson.name +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedPerson.name.family +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedPerson.name.given +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedPerson.name.prefix +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedPerson.name.suffix +* group[=].element[=].target.code = #PractitionerRole.Practitioner.name.suffix +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #assignedAuthor.representedOrganization +* group[=].element[=].target.code = #PractitionerRole.Organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "PractitionerRole.organization.resolve().ofType(Organization)" +* group[=].element[+].code = #assignedAuthor.representedOrganization.id +* group[=].element[=].target.code = #PractitionerRole.Organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.name +* group[=].element[=].target.code = #PractitionerRole.Organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.addr +* group[=].element[=].target.code = #PractitionerRole.Organization.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.telecom +* group[=].element[=].target.code = #PractitionerRole.Organization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.standardIndustryClassCode +* group[=].element[=].target.code = #PractitionerRole.Organization.type +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureRelatedEntityFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureRelatedEntityFHIR.fsh new file mode 100644 index 0000000..d55814c --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/PersonneStructureRelatedEntityFHIR.fsh @@ -0,0 +1,113 @@ +Instance: mappingPersonneStructureRelatedEntityFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Personne / Structure (RelatedEntity)\"" +Description: """Ce ConceptMap de l'élément PersonneStructure présente trois groupes de mapping: + - Mapping 1 : entre le modèle métier \"FRLMPersonneStructure\" et l'élément CDA \"relatedEntity\" + - Mapping 2 : entre l'élément CDA \"relatedEntity\" et le profil FHIR \"FrRelatedPersonDocument\" + - Mapping 3 : entre l'élément CDA \"relatedEntity\" et l'élément FHIR \"Patient.contact\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Personne / Structure (RelatedEntity)\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-personne-structure" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-related-entity" +* group[=].element[+].code = #FRLMPersonneStructure +* group[=].element[=].target.code = #relatedEntity +* group[=].element[=].target.equivalence = #equivalent +// personne +* group[=].element[+].code = #FRLMPersonneStructure.personne.professionRole +* group[=].element[=].target.code = #relatedEntity@classCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.lien +* group[=].element[=].target.code = #relatedEntity.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.adresse +* group[=].element[=].target.code = #relatedEntity.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.coordonneesTelecom +* group[=].element[=].target.code = #relatedEntity.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne +* group[=].element[=].target.code = #relatedEntity.relatedPerson +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.nomPersonne +* group[=].element[=].target.code = #relatedEntity.relatedPerson.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.prenomPersonne +* group[=].element[=].target.code = #relatedEntity.relatedPerson.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.civilite +* group[=].element[=].target.code = #relatedEntity.relatedPerson.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPersonneStructure.personne.IdentitePersonne.titre +* group[=].element[=].target.code = #relatedEntity.relatedPerson.name.suffix +* group[=].element[=].target.equivalence = #equivalent +// Groupe Mapping 2 : CDA to FHIR (RelatedPerson) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-related-entity" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-related-person-document" +* group[=].element[+].code = #relatedEntity +* group[=].element[=].target.code = #RelatedPerson +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity@classCode +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[+].code = #relatedEntity.code +* group[=].element[=].target.code = #RelatedPerson.relationship.coding +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.addr +* group[=].element[=].target.code = #RelatedPerson.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.telecom +* group[=].element[=].target.code = #RelatedPerson.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson +* group[=].element[=].target.code = #RelatedPerson.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.family +* group[=].element[=].target.code = #RelatedPerson.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.given +* group[=].element[=].target.code = #RelatedPerson.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.prefix +* group[=].element[=].target.code = #RelatedPerson.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.suffix +* group[=].element[=].target.code = #RelatedPerson.name.suffix +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR (Patient.contact) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-related-entity" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-patient-fhir-document" +* group[=].element[+].code = #relatedEntity +* group[=].element[=].target.code = #Patient.contact +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity@classCode +* group[=].element[=].target.code = #Patient.contact.relationship:Role +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.code +* group[=].element[=].target.code = #Patient.contact.relationship:RelationType.coding +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.addr +* group[=].element[=].target.code = #Patient.contact.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.telecom +* group[=].element[=].target.code = #Patient.contact.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name +* group[=].element[=].target.code = #Patient.contact.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.family +* group[=].element[=].target.code = #Patient.contact.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.given +* group[=].element[=].target.code = #Patient.contact.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.prefix +* group[=].element[=].target.code = #Patient.contact.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #relatedEntity.relatedPerson.name.suffix +* group[=].element[=].target.code = #Patient.contact.name.suffix +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/PrescriptionCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/PrescriptionCDAFHIR.fsh new file mode 100644 index 0000000..4a40e42 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/PrescriptionCDAFHIR.fsh @@ -0,0 +1,37 @@ +Instance: mappingPrescriptionCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Prescription\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"prescription\" et l'élément CDA \"inFulfillmentOf\" + - Mapping 2 : entre l'élément CDA \"inFulfillmentOf\" et l'extension FHIR \"OrderExtension\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Prescription\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-prescription" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-inFulfillment-of" +* group[=].element[+].code = #FRLMPrescription +* group[=].element[=].target.code = #inFulfillmentOf +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPrescription.identifiantPrescription +* group[=].element[=].target.code = #inFulfillmentOf.order.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPrescription.accessionNumber +* group[=].element[=].target.code = #inFulfillmentOf.order.ps3-20:accessionNumber +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-inFulfillment-of" +* group[=].target = "http://hl7.org/fhir/StructureDefinition/event-basedOn" +* group[=].element[+].code = #inFulfillmentOf +* group[=].element[=].target.code = #extension:basedOn +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #inFulfillmentOf.order.id +* group[=].element[=].target.code = #extension:basedOnExtension.ValueReference.ServiceRequest.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #inFulfillmentOf.order.ps3-20:accessionNumber +* group[=].element[=].target.code = #extension:basedOn.ValueReference.ServiceRequest.identifier +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/PriseEncharge.fsh b/input/fsh/MappingCDA_FHIR_Entete/PriseEncharge.fsh new file mode 100644 index 0000000..06d67f7 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/PriseEncharge.fsh @@ -0,0 +1,121 @@ +Instance: mappingPriseEnchargeCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Prise en charge\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"prise en charge\" et l'élément CDA \"componentOf\" + - Mapping 2 : entre l'élément CDA \"componentOf\" et l'élément FHIR \"Composition.encounter(Encounter)\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Prise en charge\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-prise-en-charge" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-component-of" +* group[=].element[+].code = #FRLMPriseEncharge +* group[=].element[=].target.code = #componentOf +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.identifiantPriseEnCharge +* group[=].element[=].target.code = #componentOf.encompassingEncounter.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.typePriseEnCharge +* group[=].element[=].target.code = #componentOf.encompassingEncounter.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.dateDebutFinPriseEnCharge +* group[=].element[=].target.code = #componentOf.encompassingEncounter.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.typeSortie +* group[=].element[=].target.code = #componentOf.encompassingEncounter.dischargeDispositionCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.responsablePriseEnCharge +* group[=].element[=].target.code = #componentOf.encompassingEncounter.responsibleParty.assignedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément responsablePriseEnCharge est de type PersonneStructure." +* group[=].element[+].code = #FRLMPriseEncharge.personneImpliqueePriseEnCharge +* group[=].element[=].target.code = #componentOf.encompassingEncounter.encounterParticipant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.personneImpliqueePriseEnCharge.typeParticipation +* group[=].element[=].target.code = #componentOf.encompassingEncounter.encounterParticipant@typeCode +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.personneImpliqueePriseEnCharge.dateDebutFinParticipation +* group[=].element[=].target.code = #componentOf.encompassingEncounter.encounterParticipant.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.personneImpliqueePriseEnCharge.professionnelImplique +* group[=].element[=].target.code = #componentOf.encompassingEncounter.encounterParticipant.assignedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément personneImpliqueePriseEnCharge est de type PersonneStructure. " +* group[=].element[+].code = #FRLMPriseEncharge.lieuPriseEnCharge +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.lieuPriseEnCharge.structure +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location.healthcareFacility +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.lieuPriseEnCharge.structure.secteurActivite +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location.healthcareFacility.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.lieuPriseEnCharge.structure.secteurActivite.categorieEtablissement +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location.healthcareFacility.code.translation +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.lieuPriseEnCharge.structure.nomStructure +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location.healthcareFacility.location.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMPriseEncharge.lieuPriseEnCharge.structure.adresse +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location.healthcareFacility.location.addr +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-component-of" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-encounter-document" +* group[=].element[+].code = #componentOf +* group[=].element[=].target.code = #Composition.encounter.Encounter +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.encounter.resolve().ofType(Encounter)" +* group[=].element[+].code = #componentOf.encompassingEncounter.id +* group[=].element[=].target.code = #Encounter.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.code +* group[=].element[=].target.code = #Encounter.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.effectiveTime +* group[=].element[=].target.code = #Encounter.period +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.dischargeDispositionCode +* group[=].element[=].target.code = #Encounter.hospitalization.dischargeDisposition +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.responsibleParty.assignedEntity +* group[=].element[=].target.code = #Encounter.participant.type="DIS".individual +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Encounter.participant.individual.resolve().ofType(PractitionerRole)" +* group[=].element[+].code = #componentOf.encompassingEncounter.encounterParticipant +* group[=].element[=].target.code = #Encounter.participant +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.encounterParticipant@typeCode +* group[=].element[=].target.code = #Encounter.participant.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.encounterParticipant.time +* group[=].element[=].target.code = #Encounter.participant.period +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.encounterParticipant.assignedEntity +* group[=].element[=].target.code = #Encounter.participant.individual +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Encounter.participant.individual.resolve().ofType(PractitionerRole)" +* group[=].element[+].code = #componentOf.encompassingEncounter.location +* group[=].element[=].target.code = #Encounter.location +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Encounter.location.resolve().ofType(Location)" +* group[=].element[+].code = #componentOf.encompassingEncounter.location.healthcareFacility +* group[=].element[=].target.code = #Encounter.location.Location +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.location.healthcareFacility.code +* group[=].element[=].target.code = #Encounter.location.Location.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.code = #componentOf.encompassingEncounter.location.healthcareFacility.code.translation +* group[=].element[=].target.code = #Encounter.location.Location.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.location.healthcareFacility.location.name +* group[=].element[=].target.code = #Encounter.location.Location.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #componentOf.encompassingEncounter.location.healthcareFacility.location.addr +* group[=].element[=].target.code = #Encounter.location.Location.address +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/ResponsableCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/ResponsableCDAFHIR.fsh new file mode 100644 index 0000000..3da9488 --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/ResponsableCDAFHIR.fsh @@ -0,0 +1,87 @@ +Instance: mappingResponsableCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Responsable du document\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"responsable\" et l'élément CDA \"legalAuthenticator\" + - Mapping 2 : entre l'élément CDA \"legalAuthenticator\" et l'élément FHIR \"Composition.attester\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Responsable du document\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-responsable" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-legal-authenticator" +* group[=].element[+].code = #FRLMResponsable +* group[=].element[=].target.code = #legalAuthenticator +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMResponsable.dateHeureAttestationPriseResponsabilite +* group[=].element[=].target.code = #legalAuthenticator.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMResponsable.responsable +* group[=].element[=].target.code = #legalAuthenticator.assignedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément responsable est de type PersonneStructure." + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-legal-authenticator" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #legalAuthenticator +* group[=].element[=].target.code = #Composition.attester +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.where(mode='legal')" +* group[=].element[+].code = #legalAuthenticator.time +* group[=].element[=].target.code = #Composition.attester.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.party.resolve().ofType(PractitionerRole)" +* group[=].element[+].code = #legalAuthenticator.assignedEntity.id +* group[=].element[=].target.code = #Composition.attester.party.Practitioner.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.party.resolve().ofType(PractitionerRole).practitioner.resolve()" +* group[=].element[+].code = #legalAuthenticator.assignedEntity.code +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.qualification.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.addr +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.telecom +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.name +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.name.family +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.name.given +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.name.prefix +* group[=].element[=].target.code = #Composition.attester.party.Practitioner.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.name.suffix +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.suffix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.representedOrganization +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.party.resolve().ofType(PractitionerRole).organization.resolve()" +* group[=].element[+].code = #legalAuthenticator.assignedEntity.representedOrganization.id +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.representedOrganization.name +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.representedOrganization.telecom +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.representedOrganization.addr +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #legalAuthenticator.assignedEntity.representedOrganization.standardIndustryClassCode +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.type +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/StructureConservationCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/StructureConservationCDAFHIR.fsh new file mode 100644 index 0000000..6c2750f --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/StructureConservationCDAFHIR.fsh @@ -0,0 +1,56 @@ +Instance: mappingStructureConservationCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Structure chargée de la conservation du document\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"structureConservation\" et l'élément CDA \"custodian\" + - Mapping 2 : entre l'élément CDA \"custodian\" et l'élément FHIR \"Composition.custodian\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Structure chargée de la conservation du document\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-structure-conservation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-custodian" +* group[=].element[+].code = #FRLMStructureConservation +* group[=].element[=].target.code = #custodian +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMStructureConservation.structure +* group[=].element[=].target.code = #custodian.assignedCustodian +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMStructureConservation.structure.identifiantStructure +* group[=].element[=].target.code = #custodian.assignedCustodian.representedCustodianOrganization.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMStructureConservation.structure.nomStructure +* group[=].element[=].target.code = #custodian.assignedCustodian.representedCustodianOrganization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMStructureConservation.structure.adresse +* group[=].element[=].target.code = #custodian.assignedCustodian.representedCustodianOrganization.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMStructureConservation.structure.coordonneesTelecom +* group[=].element[=].target.code = #custodian.assignedCustodian.representedCustodianOrganization.telecom +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-custodian" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #custodian +* group[=].element[=].target.code = #Composition.custodian +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Composition.custodian.resolve().ofType(Organization)" +* group[=].element[+].code = #custodian.assignedCustodian +* group[=].element[=].target.code = #Composition.custodian.organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #custodian.assignedCustodian.representedCustodianOrganization.id +* group[=].element[=].target.code = #Composition.custodian.organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #custodian.assignedCustodian.representedCustodianOrganization.name +* group[=].element[=].target.code = #Composition.custodian.organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #custodian.assignedCustodian.representedCustodianOrganization.addr +* group[=].element[=].target.code = #Composition.custodian.organization.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #custodian.assignedCustodian.representedCustodianOrganization.telecom +* group[=].element[=].target.code = #Composition.custodian.organization.telecom +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/SystemeStructureAuteurCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/SystemeStructureAuteurCDAFHIR.fsh new file mode 100644 index 0000000..f25c7bf --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/SystemeStructureAuteurCDAFHIR.fsh @@ -0,0 +1,83 @@ +Instance: mappingSystemeFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Système / Structure Auteur\"" +Description: """Ce ConceptMap de l'élément SystemeStructureAuteur présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"SystemeStructureAuteur\" et l'élément CDA \"assignedAuthor\" + - Mapping 2 : entre l'élément CDA \"assignedAuthor\" et le profil FHIR \"FrDeviceDocument\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Système / Structure Auteur\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-systeme" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-assigned-author" +* group[=].element[+].code = #FRLMSysteme.identificationAuteur +* group[=].element[=].target.code = #assignedAuthor +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.identifiantAuteur +* group[=].element[=].target.code = #assignedAuthor.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.professionSavoirFaireRole +* group[=].element[=].target.code = #assignedAuthor.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.systeme +* group[=].element[=].target.code = #assignedAuthor.assignedAuthoringDevice +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.systeme.nomModeleSysteme +* group[=].element[=].target.code = #assignedAuthor.assignedAuthoringDevice.manufacturerModelName +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.systeme.nomSysteme +* group[=].element[=].target.code = #assignedAuthor.assignedAuthoringDevice.softwareName +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.structure +* group[=].element[=].target.code = #assignedAuthor.representedOrganization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.structure.identifiantStructure +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.structure.nomStructure +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.structure.adresse +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.addr +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMSysteme.identificationAuteur.structure.coordonneesTelecom +* group[=].element[=].target.code = #assignedAuthor.representedOrganization.telecom +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-assigned-author" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-device-document" +* group[=].element[+].code = #assignedAuthor +* group[=].element[=].target.code = #Device +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.id +* group[=].element[=].target.code = #Device.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.code +* group[=].element[=].target.code = #Device.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedAuthoringDevice.manufacturerModelName +* group[=].element[=].target.code = #Device.deviceName.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.assignedAuthoringDevice.softwareName +* group[=].element[=].target.code = #Device.deviceName.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization +* group[=].element[=].target.code = #Device.owner.organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Device.owner.organization.resolve().ofType(Organization)" +* group[=].element[+].code = #assignedAuthor.representedOrganization.id +* group[=].element[=].target.code = #Device.owner.organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.name +* group[=].element[=].target.code = #Device.owner.organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.addr +* group[=].element[=].target.code = #Device.owner.organization.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #assignedAuthor.representedOrganization.telecomm +* group[=].element[=].target.code = #Device.owner.organization.telecom +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingCDA_FHIR_Entete/ValidateurCDAFHIR.fsh b/input/fsh/MappingCDA_FHIR_Entete/ValidateurCDAFHIR.fsh new file mode 100644 index 0000000..e3608fd --- /dev/null +++ b/input/fsh/MappingCDA_FHIR_Entete/ValidateurCDAFHIR.fsh @@ -0,0 +1,87 @@ +Instance: mappingValidateurCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : \"Validateur\"" +Description: """Ce ConceptMap présente deux groupes de mapping : + - Mapping 1 : entre le modèle métier \"validateur\" et l'élément CDA \"authenticator\" + - Mapping 2 : entre l'élément CDA \"authenticator\" et l'élément FHIR \"Composition.attester\" """ + +* name = "Mapping Métier/CDA/FHIR : \"Validateur\"" +* status = #draft +* experimental = false + +// Groupe Mapping 1 : modèle métier to CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-validateur" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-authenticator" +* group[=].element[+].code = #FRLMValidateur +* group[=].element[=].target.code = #authenticator +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMValidateur.dateHeureAttestationValidite +* group[=].element[=].target.code = #authenticator.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMValidateur.validateur +* group[=].element[=].target.code = #authenticator.assignedEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément validateur est de type : PersonneStructure" + +// Groupe Mapping 2 : CDA to FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-authenticator" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +* group[=].element[+].code = #authenticator +* group[=].element[=].target.code = #Composition.attester +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.where(mode='professional')" +* group[=].element[+].code = #authenticator.time +* group[=].element[=].target.code = #Composition.attester.time +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.party.resolve().ofType(PractitionerRole)" +* group[=].element[+].code = #authenticator.assignedEntity.id +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.party.resolve().ofType(PractitionerRole).practitioner.resolve()" +* group[=].element[+].code = #authenticator.assignedEntity.code +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.qualification.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.addr +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.telecom +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.name +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.name.family +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.family +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.name.given +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.given +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.name.prefix +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.prefix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.name.suffix +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Practitioner.name.suffix +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.representedOrganization +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "attester.party.resolve().ofType(PractitionerRole).organization.resolve()" +* group[=].element[+].code = #authenticator.assignedEntity.representedOrganization.id +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.representedOrganization.name +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.name +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.representedOrganization.telecom +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.telecom +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.representedOrganization.addr +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.address +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #authenticator.assignedEntity.representedOrganization.standardIndustryClassCode +* group[=].element[=].target.code = #Composition.attester.party.PractitionerRole.Organization.type +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRActSubstitutionLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRActSubstitutionLMCDAFHIR.fsh new file mode 100644 index 0000000..d85c6ea --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRActSubstitutionLMCDAFHIR.fsh @@ -0,0 +1,38 @@ +Instance: FRActSubstitutionLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMActeSubstitution → FRCDAActeSubstitution → FRMedicationDispenseDocument" +Description: "Mapping des éléments du modèle métier FRLMActeSubstitution vers le profil CDA FRCDAActeSubstitution, puis vers le profil FHIR FRMedicationDispenseDocument." +* title = "Mapping Métier/CDA/FHIR : \"Acte substitution\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-acte-substitution" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-acte-substitution" +// Élément racine +* group[=].element[+].code = #FRLMActeSubstitution +* group[=].element[=].target.code = #FRCDAActeSubstitution +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMActeSubstitution.code +* group[=].element[=].target.code = #FRCDAActeSubstitution.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMActeSubstitution.statut +* group[=].element[=].target.code = #FRCDAActeSubstitution.statusCode +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-acte-substitution" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-dispense-document" +// Élément racine +* group[=].element[+].code = #FRCDAActeSubstitution +* group[=].element[=].target.code = #FRMedicationDispenseDocument +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDAActeSubstitution.code +* group[=].element[=].target.code = #FRMedicationDispenseDocument.substitution.type +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAActeSubstitution.statusCode +* group[=].element[=].target.code = #FRMedicationDispenseDocument.status +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdvanceDirectiveLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdvanceDirectiveLMCDAFHIR.fsh new file mode 100644 index 0000000..82d0a95 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdvanceDirectiveLMCDAFHIR.fsh @@ -0,0 +1,150 @@ +Instance: FRAdvanceDirectiveLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDirectiveAnticipee → FRCDADirectiveAnticipee → FRAdvanceDirectiveDocument" +Description: "Mapping des éléments du modèle métier FRLMDirectiveAnticipee vers le profil CDA FRCDADirectiveAnticipee, puis vers le profil FHIR FRAdvanceDirectiveDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Directive Anticipee\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-directive-anticipee" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-directive-anticipee" + +// Élément racine +* group[=].element[+].code = #FRLMDirectiveAnticipee +* group[=].element[=].target.code = #FRCDADirectiveAnticipee +* group[=].element[=].target.equivalence = #equivalent + +// Identifiant +* group[=].element[+].code = #FRLMDirectiveAnticipee.identifiant +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.id +* group[=].element[=].target.equivalence = #equivalent + +// Code +* group[=].element[+].code = #FRLMDirectiveAnticipee.code +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.code +* group[=].element[=].target.equivalence = #equivalent + +// Texte narratif +* group[=].element[+].code = #FRLMDirectiveAnticipee.description +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.text +* group[=].element[=].target.equivalence = #equivalent + +// Statut +* group[=].element[+].code = #FRLMDirectiveAnticipee.statut +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.statusCode +* group[=].element[=].target.equivalence = #equivalent + +// Date +* group[=].element[+].code = #FRLMDirectiveAnticipee.date +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.effectiveTime +* group[=].element[=].target.equivalence = #equivalent + +// Valeur booléenne +* group[=].element[+].code = #FRLMDirectiveAnticipee.valeurDirectiveIdentifiee +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.valueBoolean +* group[=].element[=].target.equivalence = #equivalent + +// Référence à un document externe +* group[=].element[+].code = #FRLMDirectiveAnticipee.reference +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.reference.externalDocument.text.reference +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Référence externe portée par externalDocument.text.reference en CDA." + +// Document encapsulé +* group[=].element[+].code = #FRLMDirectiveAnticipee.documentEncapsule +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.entryRelationship +* group[=].element[=].target.equivalence = #equivalent + +// Observation média +* group[=].element[+].code = #FRLMDirectiveAnticipee.documentEncapsule.observationMedia +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia +* group[=].element[=].target.equivalence = #equivalent + +// Identifiant observation média +* group[=].element[+].code = #FRLMDirectiveAnticipee.documentEncapsule.observationMedia.identifiant +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia.id +* group[=].element[=].target.equivalence = #equivalent + +// Document encapsulé encodée en Base64 +* group[=].element[+].code = #FRLMDirectiveAnticipee.documentEncapsule.observationMedia.documentEncapsuleEncode +* group[=].element[=].target.code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia.value +* group[=].element[=].target.equivalence = #equivalent + + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-directive-anticipee" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-advance-directive-document" + +/* Élément racine */ +* group[=].element[+].code = #FRCDADirectiveAnticipee +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument +* group[=].element[=].target.equivalence = #equivalent + +/* Identifiant */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.id +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément id en CDA devient identifier en FHIR." + +/* Code */ +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.scope +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "L'élément scope en CDA n'a pas d'équivalent direct en FHIR. Le concept de 'scope' est ajouté pour indiquer le type de consentement." + +/* Code */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.code +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.provision.code +* group[=].element[=].target.equivalence = #equivalent + +/* Texte narratif */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.text +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.provision.code.text +* group[=].element[=].target.equivalence = #equivalent + +/* Statut */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.statusCode +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.status +* group[=].element[=].target.equivalence = #equivalent + +/* Date effectiveTime */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.effectiveTime +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.dateTime +* group[=].element[=].target.equivalence = #equivalent + +/* Valeur booléenne */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.valueBoolean +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.provision.type +* group[=].element[=].target.equivalence = #equivalent + +/* Référence à un document externe */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.reference.externalDocument.text.reference +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.sourceReference +* group[=].element[=].target.equivalence = #equivalent + +/* Document encapsulé */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.entryRelationship +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.sourceAttachment +* group[=].element[=].target.equivalence = #equivalent + +/* Observation média */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.sourceAttachment +* group[=].element[=].target.equivalence = #equivalent + +/* Identifiant observation média */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia.id +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.sourceAttachment.id +* group[=].element[=].target.equivalence = #equivalent + +/* Document encapsulé encodée en Base64 */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia.value +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.sourceAttachment.data +* group[=].element[=].target.equivalence = #equivalent + +/* Document URI */ +* group[=].element[+].code = #FRCDADirectiveAnticipee.entryRelationship.observationMedia.value +* group[=].element[=].target.code = #FRAdvanceDirectiveDocument.sourceAttachment.url +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdverseEventLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdverseEventLMCDAFHIR.fsh new file mode 100644 index 0000000..79d423f --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAdverseEventLMCDAFHIR.fsh @@ -0,0 +1,137 @@ +Instance: FRAdverseEventLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEvenementIndesirable → FRCDAEvenementIndesirable → FRAdverseEventDocument" +Description: "Mapping des éléments du modèle métier FRLMEvenementIndesirable vers le profil CDA FRCDAEvenementIndesirable, puis vers le profil FHIR FRAdverseEvent." + +* title = "Mapping Métier/CDA/FHIR : \"Effet Indésirable\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA + +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-effet-indesirable" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-effet-indesirable" + +// Élément racine +* group[=].element[+].code = #FRLMEffetIndesirable +* group[=].element[=].target.code = #FRCDAEffetIndesirable +* group[=].element[=].target.equivalence = #equivalent + +// Identifiant +* group[=].element[+].code = #FRLMEffetIndesirable.identifiant +* group[=].element[=].target.code = #FRCDAEffetIndesirable.id +* group[=].element[=].target.equivalence = #equivalent + +// Code +* group[=].element[+].code = #FRLMEffetIndesirable.typeEffetIndesirable +* group[=].element[=].target.code = #FRCDAEffetIndesirable.code +* group[=].element[=].target.equivalence = #equivalent + +// Description narrative +* group[=].element[+].code = #FRLMEffetIndesirable.description +* group[=].element[=].target.code = #FRCDAEffetIndesirable.text +* group[=].element[=].target.equivalence = #equivalent + +// Date de début et de fin de l'effet indésirable +* group[=].element[+].code = #FRLMEffetIndesirable.dateDebut +* group[=].element[=].target.code = #FRCDAEffetIndesirable.effectiveTime.low +* group[=].element[=].target.equivalence = #equivalent + +// Date de fin de l'effet indésirable +* group[=].element[+].code = #FRLMEffetIndesirable.dateFin +* group[=].element[=].target.code = #FRCDAEffetIndesirable.effectiveTime.high +* group[=].element[=].target.equivalence = #equivalent + +// Valeur de l'observation +* group[=].element[+].code = #FRLMEffetIndesirable.valeur +* group[=].element[=].target.code = #FRCDAEffetIndesirable.value +* group[=].element[=].target.equivalence = #equivalent + +// Traitement +* group[=].element[+].code = #FRLMEffetIndesirable.traitement +* group[=].element[=].target.code = #FRCDAEffetIndesirable.entryRelationship:frTraitement +* group[=].element[=].target.equivalence = #equivalent + +// Réaction observée +* group[=].element[+].code = #FRLMEffetIndesirable.probleme +* group[=].element[=].target.code = #FRCDAEffetIndesirable.entryRelationship:frProbleme +* group[=].element[=].target.equivalence = #equivalent + +// Imputabilité +* group[=].element[+].code = #FRLMEffetIndesirable.imputabiliteEffetIndesirable +* group[=].element[=].target.code = #FRCDAEffetIndesirable.entryRelationship:frImputabiliteEffetIndesirable +* group[=].element[=].target.equivalence = #equivalent + +// Gravité +* group[=].element[+].code = #FRLMEffetIndesirable.graviteEffetIndesirable +* group[=].element[=].target.code = #FRCDAEffetIndesirable.entryRelationship:frGraviteEffetIndesirable +* group[=].element[=].target.equivalence = #equivalent + +// Évolution +* group[=].element[+].code = #FRLMEffetIndesirable.evolutionEffetIndesirable +* group[=].element[=].target.code = #FRCDAEffetIndesirable.entryRelationship:frEvolutionEffetIndesirable +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-effet-indesirable" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-adverse-event-document" + +// Élément racine +* group[=].element[+].code = #FRCDAEffetIndesirable +* group[=].element[=].target.code = #FRAdverseEventDocument +* group[=].element[=].target.equivalence = #equivalent + +// Identifiant +* group[=].element[+].code = #FRCDAEffetIndesirable.id +* group[=].element[=].target.code = #FRAdverseEventDocument.identifier +* group[=].element[=].target.equivalence = #equivalent + +// Code +* group[=].element[+].code = #FRCDAEffetIndesirable.code +* group[=].element[=].target.code = #FRAdverseEventDocument.category +* group[=].element[=].target.equivalence = #equivalent + +// Description narrative +* group[=].element[+].code = #FRCDAEffetIndesirable.text +* group[=].element[=].target.code = #FRAdverseEventDocument.category.text +* group[=].element[=].target.equivalence = #equivalent + +// Date de début de l'effet indésirable +* group[=].element[+].code = #FRCDAEffetIndesirable.effectiveTime.low +* group[=].element[=].target.code = #FRAdverseEventDocument.date +* group[=].element[=].target.equivalence = #equivalent + +// Date de fin de l'effet indésirable +* group[=].element[+].code = #FRCDAEffetIndesirable.effectiveTime.high +* group[=].element[=].target.code = #FRAdverseEventDocument.detected +* group[=].element[=].target.equivalence = #equivalent + +// Valeur de l'observation (non renseigné et fixé à value xsi:type='CD') +* group[=].element[+].code = #FRCDAEffetIndesirable.value +* group[=].element[=].target.equivalence = #unmatched + +// Traitement +* group[=].element[+].code = #FRCDAEffetIndesirable.entryRelationship:frTraitement +* group[=].element[=].target.code = #FRAdverseEventDocument.suspectEntity.instance +* group[=].element[=].target.equivalence = #equivalent + +// Réaction observée +* group[=].element[+].code = #FRCDAEffetIndesirable.entryRelationship:frProbleme +* group[=].element[=].target.code = #FRAdverseEventDocument.resultingCondition +* group[=].element[=].target.equivalence = #equivalent + +// Imputabilité +* group[=].element[+].code = #FRCDAEffetIndesirable.entryRelationship:frImputabiliteEffetIndesirable +* group[=].element[=].target.code = #FRAdverseEventDocument.suspectEntity.causality +* group[=].element[=].target.equivalence = #equivalent + +// Gravité +* group[=].element[+].code = #FRCDAEffetIndesirable.entryRelationship:frGraviteEffetIndesirable +* group[=].element[=].target.code = #FRAdverseEventDocument.seriousness +* group[=].element[=].target.equivalence = #equivalent + +// Évolution +* group[=].element[+].code = #FRCDAEffetIndesirable.entryRelationship:frEvolutionEffetIndesirable +* group[=].element[=].target.code = #FRAdverseEventDocument.outcome +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllergyIntoleranceLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllergyIntoleranceLMCDAFHIR.fsh new file mode 100644 index 0000000..6591ad9 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllergyIntoleranceLMCDAFHIR.fsh @@ -0,0 +1,104 @@ +Instance: FRAllergyIntoleranceLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAllergieOuHypersensibilite / FRCDAAllergieOuHypersensibilite -> FRAllergyIntoleranceDocument" +Description: "Mapping des éléments du modèle métier FRLMAllergieOuHypersensibilite vers le profil CDA FRCDAAllergieOuHypersensibilite,puis vers le profil FHIR FRAllergyIntoleranceDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Allergie ou Hypersensibilité\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-allergie-ou-hypersensibilite" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-allergie-ou-hypersensibilite" + +// Élément racine +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.identifiant +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.id +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.description +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.text +* group[=].element[=].target.equivalence = #equivalent +// Type d'allergie / hypersensibilité non allergique / intolérance / idiosyncrasie +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.type +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.statut +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de début et de fin +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.date +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Agent responsable +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.participant +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.participant +* group[=].element[=].target.equivalence = #equivalent +// Réaction observée +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.probleme +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frProbleme +* group[=].element[=].target.equivalence = #equivalent +// Statut clinique de l'allergie +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.statutClique +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frStatutCliniqueAllergie +* group[=].element[=].target.equivalence = #equivalent +// Certitude +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.certitude +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frCertitude +* group[=].element[=].target.equivalence = #equivalent +// Criticité +* group[=].element[+].code = #FRLMAllergieOuHypersensibilite.criticite +* group[=].element[=].target.code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frCriticite +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-allergie-ou-hypersensibilite" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-allergy-intolerance-document" +// Élément racine +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.id +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.text +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.code.Text +* group[=].element[=].target.equivalence = #equivalent +// Type d'allergie / hypersensibilité non allergique / intolérance / idiosyncrasie +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.code +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.statusCode +* group[=].element[=].target.equivalence = #unmatched +// Date de début et de fin +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.effectiveTime +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.onsetPeriod +* group[=].element[=].target.equivalence = #equivalent +// Réaction observée +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frProbleme +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.reaction +* group[=].element[=].target.equivalence = #equivalent +// Agent responsable de l'allergie ou intolérance +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.participant +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.reaction.substance +* group[=].element[=].target.equivalence = #equivalent +// Statut clinique de l'allergie +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frStatutCliniqueAllergie +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.clinicalStatus +* group[=].element[=].target.equivalence = #equivalent +// Certitude +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frCertitude +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.verificationStatus +* group[=].element[=].target.equivalence = #equivalent +// Criticité +* group[=].element[+].code = #FRCDAAllergieOuHypersensibilite.entryRelationship:frCriticite +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.criticality +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllowedSubstitutionLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllowedSubstitutionLMCDAFHIR.fsh new file mode 100644 index 0000000..fce7e0e --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRAllowedSubstitutionLMCDAFHIR.fsh @@ -0,0 +1,38 @@ +Instance: FRAllowedSubstitutionLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAutorisationSubstitution → FRCDAAutorisationSubstitution → FRMedicationRequestDocument.substitution.allowedCodeableConcept" +Description: "Mapping des éléments du modèle métier FRLMAutorisationSubstitution vers le profil CDA FRCDAAutorisationSubstitution, puis vers l'élément substitution.allowedCodeableConcept du profil FHIR FRMedicationRequestDocument." +* title = "Mapping Métier/CDA/FHIR : \"Autorisation substitution\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-autorisation-substitution" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-autorisation-substitution" +// Élément racine +* group[=].element[+].code = #FRLMAutorisationSubstitution +* group[=].element[=].target.code = #FRCDAAutorisationSubstitution +* group[=].element[=].target.equivalence = #equivalent +// Type de substitution +* group[=].element[+].code = #FRLMAutorisationSubstitution.typeSubstitution +* group[=].element[=].target.code = #FRCDAAutorisationSubstitution.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMAutorisationSubstitution.status +* group[=].element[=].target.code = #FRCDAAutorisationSubstitution.statusCode +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-autorisation-substitution" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-request-document" +// Élément racine +* group[=].element[+].code = #FRCDAAutorisationSubstitution +* group[=].element[=].target.code = #FRMedicationRequestDocument.substitution +* group[=].element[=].target.equivalence = #equivalent +// Type de substitution +* group[=].element[+].code = #FRCDAAutorisationSubstitution.code +* group[=].element[=].target.code = #FRMedicationRequestDocument.substitution.allowedCodeableConcept +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée (pas de mapping possible car FRMedicationRequestDocument.substitution n'a pas d'élément 'status') +* group[=].element[+].code = #FRCDAAutorisationSubstitution.statusCode +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "FRMedicationRequestDocument.substitution ne possède pas d'élément 'status' pour mapper cette donnée." \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCarePlanLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCarePlanLMCDAFHIR.fsh new file mode 100644 index 0000000..866dc8b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCarePlanLMCDAFHIR.fsh @@ -0,0 +1,82 @@ +Instance: FRCarePlanLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMReferenceItemPlanTraitement → FRCDAReferenceItemPlanTraitement → FRCarePlanDocument" +Description: "Mapping des éléments du modèle métier FRLMReferenceItemPlanTraitement vers le profil CDA FRCDAReferenceItemPlanTraitement, puis vers le profil FHIR FRCarePlanDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Référence Item Plan Traitement\"" +* status = #active + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-reference-item-plan-traitement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-reference-item-plan-traitement" + +// Élément racine +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.identifiant +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.id +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.code +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.code +* group[=].element[=].target.equivalence = #equivalent +// Produit de santé +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.produitSante +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.consumable +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.auteur +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.author +* group[=].element[=].target.equivalence = #equivalent +// Traitement prescrit +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.traitementPrescrit +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.entryRelationship:frItemPlanTraitement +* group[=].element[=].target.equivalence = #equivalent +// Référence +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.reference +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.reference +* group[=].element[=].target.equivalence = #equivalent +// Document référencé - identifiant +* group[=].element[+].code = #FRLMReferenceItemPlanTraitement.reference.externalDocument.identifiant +* group[=].element[=].target.code = #FRCDAReferenceItemPlanTraitement.reference.externalDocument.id +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-reference-item-plan-traitement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-care-plan-document" +// Élément racine +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement +* group[=].element[=].target.code = #FRCarePlanDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.id +* group[=].element[=].target.code = #FRCarePlanDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.code +* group[=].element[=].target.code = #FRCarePlanDocument.category +* group[=].element[=].target.equivalence = #equivalent +// Produit de santé +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.consumable +* group[=].element[=].target.code = #FRCarePlanDocument.activity.detail.productReference +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.author +* group[=].element[=].target.code = #FRCarePlanDocument.author +* group[=].element[=].target.equivalence = #equivalent +// Traitement prescrit +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.entryRelationship:frItemPlanTraitement +* group[=].element[=].target.code = #FRCarePlanDocument.activity.reference:FRMedicationRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// Référence +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.reference +* group[=].element[=].target.code = #FRCarePlanDocument.activity.reference:FRMedicationRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// Document référencé - identifiant +* group[=].element[+].code = #FRCDAReferenceItemPlanTraitement.reference.externalDocument.id +* group[=].element[=].target.code = #FRCarePlanDocument.activity.reference:FRMedicationRequestDocument.identifier +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCertitudeLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCertitudeLMCDAFHIR.fsh new file mode 100644 index 0000000..49c436c --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCertitudeLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRCertitudeLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMCertitude → FRCDACertitude → FRConditionDocument.verificationStatus et FRAllergyIntoleranceDocument.verificationStatus" +Description: "Mapping des éléments du modèle métier FRLMCertitude vers le profil CDA FRCDACertitude, puis vers les profils FHIR FRConditionDocument.verificationStatus et FRAllergyIntoleranceDocument.verificationStatus." +* title = "Mapping Métier/CDA/FHIR : \"Certitude\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-certitude" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-certitude" +// Élément racine +* group[=].element[+].code = #FRLMCertitude +* group[=].element[=].target.code = #FRCDACertitude +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'observation +* group[=].element[+].code = #FRLMCertitude.identifiant +* group[=].element[=].target.code = #FRCDACertitude.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'observation +* group[=].element[+].code = #FRLMCertitude.code +* group[=].element[=].target.code = #FRCDACertitude.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'observation +* group[=].element[+].code = #FRLMCertitude.statut +* group[=].element[=].target.code = #FRCDACertitude.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'observation +* group[=].element[+].code = #FRLMCertitude.date +* group[=].element[=].target.code = #FRCDACertitude.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMCertitude.descriptionNarrative +* group[=].element[=].target.code = #FRCDACertitude.text +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'observation +* group[=].element[+].code = #FRLMCertitude.valeur +* group[=].element[=].target.code = #FRCDACertitude.value +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-certitude" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-condition-document" +// valeur de l'observation +* group[=].element[+].code = #FRCDACertitude.value +* group[=].element[=].target.code = #FRConditionDocument.verificationStatus +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 3 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-certitude" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-allergy-intolerance-document" +// valeur de l'observation +* group[=].element[+].code = #FRCDACertitude.value +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.verificationStatus +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRConditionLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRConditionLMCDAFHIR.fsh new file mode 100644 index 0000000..cf2fd30 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRConditionLMCDAFHIR.fsh @@ -0,0 +1,146 @@ +Instance: FRConditionLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMCondition → FRCDACondition → FRConditionDocument" +Description: "Mapping des éléments du modèle métier FRLMProbleme vers le profil CDA FRCDAProbleme, puis vers le profil FHIR FRConditionDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Problème\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-probleme" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-probleme" + +// Élément racine +* group[=].element[+].code = #FRLMProbleme +* group[=].element[=].target.code = #FRCDAProbleme +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMProbleme.identifiant +* group[=].element[=].target.code = #FRCDAProbleme.id +* group[=].element[=].target.equivalence = #equivalent +// Type d'observation +* group[=].element[+].code = #FRLMProbleme.type +* group[=].element[=].target.code = #FRCDAProbleme.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMProbleme.description +* group[=].element[=].target.code = #FRCDAProbleme.text +* group[=].element[=].target.equivalence = #equivalent +// Problème observé +* group[=].element[+].code = #FRLMProbleme.problemeObserve +* group[=].element[=].target.code = #FRCDAProbleme.value +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMProbleme.statut +* group[=].element[=].target.code = #FRCDAProbleme.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de début du problème +* group[=].element[+].code = #FRLMProbleme.dateDebutProbleme +* group[=].element[=].target.code = #FRCDAProbleme.effectiveTime.low +* group[=].element[=].target.equivalence = #equivalent +// Date de fin du problème +* group[=].element[+].code = #FRLMProbleme.dateFinProbleme +* group[=].element[=].target.code = #FRCDAProbleme.effectiveTime.high +* group[=].element[=].target.equivalence = #equivalent +// Statut du problème +* group[=].element[+].code = #FRLMProbleme.statutProbleme +* group[=].element[=].target.code = #FRCDAProbleme.entryRelationship:frStatutDuProbleme +* group[=].element[=].target.equivalence = #equivalent +// Sévérité +* group[=].element[+].code = #FRLMProbleme.severite +* group[=].element[=].target.code = #FRCDAProbleme.entryRelationship:frSeverite +* group[=].element[=].target.equivalence = #equivalent +// Certitude +* group[=].element[+].code = #FRLMProbleme.certitude +* group[=].element[=].target.code = #FRCDAProbleme.entryRelationship:frCertitude +* group[=].element[=].target.equivalence = #equivalent +// Statut clinique du patient +* group[=].element[+].code = #FRLMProbleme.statutClinique +* group[=].element[=].target.code = #FRCDAProbleme.entryRelationship:frStatutCliniqueDuPatient +* group[=].element[=].target.equivalence = #equivalent +// Document référencé +* group[=].element[+].code = #FRLMProbleme.reference +* group[=].element[=].target.code = #FRCDAProbleme.reference +* group[=].element[=].target.equivalence = #equivalent +// Document référencé - identifiant +* group[=].element[+].code = #FRLMProbleme.reference.externalDocument.identifiant +* group[=].element[=].target.code = #FRCDAProbleme.reference.externalDocument.id +* group[=].element[=].target.equivalence = #equivalent +// Document référencé - référence externe (URL du document) +* group[=].element[+].code = #FRLMProbleme.reference.externalDocument.text.reference +* group[=].element[=].target.code = #FRCDAProbleme.reference.externalDocument.text.reference +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRLMProbleme.commentaire +* group[=].element[=].target.code = #FRCDAProbleme.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-probleme" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-condition-document" +// Élément racine +* group[=].element[+].code = #FRCDAProbleme +* group[=].element[=].target.code = #FRConditionDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAProbleme.id +* group[=].element[=].target.code = #FRConditionDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Type d'observation +* group[=].element[+].code = #FRCDAProbleme.code +* group[=].element[=].target.code = #FRConditionDocument.category +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDAProbleme.text +* group[=].element[=].target.code = #FRConditionDocument.category.text +* group[=].element[=].target.equivalence = #equivalent +// Problème observé +* group[=].element[+].code = #FRCDAProbleme.value +* group[=].element[=].target.code = #FRConditionDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAProbleme.statusCode +* group[=].element[=].target.code = #FRConditionDocument.clinicalStatus +* group[=].element[=].target.equivalence = #equivalent +// Date de début du problème +* group[=].element[+].code = #FRCDAProbleme.effectiveTime.low +* group[=].element[=].target.code = #FRConditionDocument.onsetDateTime +* group[=].element[=].target.equivalence = #equivalent +// Date de fin du problème +* group[=].element[+].code = #FRCDAProbleme.effectiveTime.high +* group[=].element[=].target.code = #FRConditionDocument.abatementDateTime +* group[=].element[=].target.equivalence = #equivalent +// Statut du problème +* group[=].element[+].code = #FRCDAProbleme.entryRelationship:frStatutDuProbleme +* group[=].element[=].target.code = #FRConditionDocument.clinicalStatus +* group[=].element[=].target.equivalence = #equivalent +// Sévérité +* group[=].element[+].code = #FRCDAProbleme.entryRelationship:frSeverite +* group[=].element[=].target.code = #FRConditionDocument.severity +* group[=].element[=].target.equivalence = #equivalent +// Certitude +* group[=].element[+].code = #FRCDAProbleme.entryRelationship:frCertitude +* group[=].element[=].target.code = #FRConditionDocument.verificationStatus +* group[=].element[=].target.equivalence = #equivalent +// Statut clinique du patient +* group[=].element[+].code = #FRCDAProbleme.entryRelationship:frStatutCliniqueDuPatient +* group[=].element[=].target.code = #FRConditionDocument.stage.summary +* group[=].element[=].target.equivalence = #equivalent +// Document référencé +* group[=].element[+].code = #FRCDAProbleme.reference +* group[=].element[=].target.code = #FRConditionDocument.evidence.detail +* group[=].element[=].target.equivalence = #equivalent +// Document référencé - identifiant +* group[=].element[+].code = #FRCDAProbleme.reference.externalDocument.id +* group[=].element[=].target.code = #FRConditionDocument.evidence.detail:FRDocumentReferenceDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Document référencé - référence externe (URL du document) +* group[=].element[+].code = #FRCDAProbleme.reference.externalDocument.text.reference +* group[=].element[=].target.code = #FRConditionDocument.evidence.detail:FRDocumentReferenceDocument.content.attachment.url +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRCDAProbleme.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRConditionDocument.note +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCriticiteLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCriticiteLMCDAFHIR.fsh new file mode 100644 index 0000000..609aaec --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRCriticiteLMCDAFHIR.fsh @@ -0,0 +1,47 @@ +Instance: FRCriticiteLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMCriticite -> FRCDACriticite -> FRAllergyIntoleranceDocument.criticality" +Description: "Mapping des éléments du modele metier FRLMCriticite vers le profil CDA FRCDACriticite, puis vers le profil FHIR FRAllergyIntoleranceDocument.criticality." +* title = "Mapping Metier/CDA/FHIR : \"Criticite\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-criticite" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-criticite" +// Element racine +* group[=].element[+].code = #FRLMCriticite +* group[=].element[=].target.code = #FRCDACriticite +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'observation +* group[=].element[+].code = #FRLMCriticite.identifiant +* group[=].element[=].target.code = #FRCDACriticite.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'observation +* group[=].element[+].code = #FRLMCriticite.code +* group[=].element[=].target.code = #FRCDACriticite.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'observation +* group[=].element[+].code = #FRLMCriticite.statut +* group[=].element[=].target.code = #FRCDACriticite.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'observation +* group[=].element[+].code = #FRLMCriticite.date +* group[=].element[=].target.code = #FRCDACriticite.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMCriticite.descriptionNarrative +* group[=].element[=].target.code = #FRCDACriticite.text +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'observation +* group[=].element[+].code = #FRLMCriticite.valeur +* group[=].element[=].target.code = #FRCDACriticite.value +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-criticite" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-allergy-intolerance-document" +// valeur de l'observation +* group[=].element[+].code = #FRCDACriticite.value +* group[=].element[=].target.code = #FRAllergyIntoleranceDocument.criticality +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceRequestLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceRequestLMCDAFHIR.fsh new file mode 100644 index 0000000..0d2380b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceRequestLMCDAFHIR.fsh @@ -0,0 +1,123 @@ +Instance: FRDeviceRequestLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDispositifMedicalEntree → FRCDADispositifMedical → FRDeviceRequestDocument" +Description: "Mapping des éléments du modèle métier FRLMDispositifMedicalEntree vers le profil CDA FRCDADispositifMedical, puis vers le profil FHIR FRDeviceRequestDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Prescription de dispositif médical\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-dispositif-medical-entree" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispositif-medical" + +// Élément racine +* group[=].element[+].code = #FRLMDispositifMedicalEntree +* group[=].element[=].target.code = #FRCDADispositifMedical +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMDispositifMedicalEntree.identifiant +* group[=].element[=].target.code = #FRCDADispositifMedical.id +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMDispositifMedicalEntree.description +* group[=].element[=].target.code = #FRCDADispositifMedical.text +* group[=].element[=].target.equivalence = #equivalent +// Date d'utilisation ou de présence chez le patient +* group[=].element[+].code = #FRLMDispositifMedicalEntree.date +* group[=].element[=].target.code = #FRCDADispositifMedical.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Nombre de renouvellement(s) possible(s) +* group[=].element[+].code = #FRLMDispositifMedicalEntree.renouvellement +* group[=].element[=].target.code = #FRCDADispositifMedical.repeatNumber +* group[=].element[=].target.equivalence = #equivalent +// Durée d'utilisation +* group[=].element[+].code = #FRLMDispositifMedicalEntree.duree +* group[=].element[=].target.code = #FRCDADispositifMedical.expectedUseTime +* group[=].element[=].target.equivalence = #equivalent +// Quantité +* group[=].element[+].code = #FRLMDispositifMedicalEntree.quantite +* group[=].element[=].target.code = #FRCDADispositifMedical.quantity +* group[=].element[=].target.equivalence = #equivalent +// Prescripteur +* group[=].element[+].code = #FRLMDispositifMedicalEntree.auteur +* group[=].element[=].target.code = #FRCDADispositifMedical.author +* group[=].element[=].target.equivalence = #equivalent +// Dispositif médical +* group[=].element[+].code = #FRLMDispositifMedicalEntree.dispositifMedical +* group[=].element[=].target.code = #FRCDADispositifMedical.participant +* group[=].element[=].target.equivalence = #equivalent + +// Entrée En rapport avec une Affection Longue Durée (ALD) +* group[=].element[+].code = #FRLMDispositifMedicalEntree.affectionLongueDuree +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecALD +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec accident travail +* group[=].element[+].code = #FRLMDispositifMedicalEntree.accidentTravail +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecAccidentTravail +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec la prevention +* group[=].element[+].code = #FRLMDispositifMedicalEntree.prevention +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecPrevention +* group[=].element[=].target.equivalence = #equivalent +// Entrée Non remboursable +* group[=].element[+].code = #FRLMDispositifMedicalEntree.nonRemboursable +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frNonRemboursable +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispositif-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-device-request-document" +// Élément racine +* group[=].element[+].code = #FRCDADispositifMedical +* group[=].element[=].target.code = #FRDeviceRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDADispositifMedical.id +* group[=].element[=].target.code = #FRDeviceRequestDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDADispositifMedical.text +* group[=].element[=].target.code = #FRDeviceRequestDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Date d'utilisation ou de présence chez le patient +* group[=].element[+].code = #FRCDADispositifMedical.effectiveTime +* group[=].element[=].target.code = #FRDeviceRequestDocument.occurrence[x] +* group[=].element[=].target.equivalence = #equivalent +// Nombre de renouvellement(s) possible(s) +* group[=].element[+].code = #FRCDADispositifMedical.repeatNumber +* group[=].element[=].target.code = #FRDeviceRequestDocument.occurrenceTiming.repeat.count +* group[=].element[=].target.equivalence = #equivalent +// Durée d'utilisation +* group[=].element[+].code = #FRCDADispositifMedical.expectedUseTime +* group[=].element[=].target.code = #FRDeviceRequestDocument.occurrencePeriod +* group[=].element[=].target.equivalence = #equivalent +// Quantité +* group[=].element[+].code = #FRCDADispositifMedical.quantity +* group[=].element[=].target.code = #FRDeviceRequestDocument.parameter.valueQuantity +* group[=].element[=].target.equivalence = #equivalent +// Prescripteur +* group[=].element[+].code = #FRCDADispositifMedical.author +* group[=].element[=].target.code = #FRDeviceRequestDocument.requester.extension:prescripteur +* group[=].element[=].target.equivalence = #equivalent +// Dispositif médical +* group[=].element[+].code = #FRCDADispositifMedical.participant +* group[=].element[=].target.code = #FRDeviceRequestDocument.codeReference +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec une Affection Longue Durée (ALD) +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecALD +* group[=].element[=].target.code = #FRDeviceRequestDocument.reasonReference:EnRapportAvecALD +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec accident travail +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecAccidentTravail +* group[=].element[=].target.code = #FRDeviceRequestDocument.reasonReference:EnRapportAvecAccidentTravail +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec la prevention +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecPrevention +* group[=].element[=].target.code = #FRDeviceRequestDocument.reasonReference:EnRapportAvecLaPrevention +* group[=].element[=].target.equivalence = #equivalent +// Entrée Non remboursable +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frNonRemboursable +* group[=].element[=].target.code = #FRDeviceRequestDocument.extension:notCovered +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceUseStatementLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceUseStatementLMCDAFHIR.fsh new file mode 100644 index 0000000..fbe91fd --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDeviceUseStatementLMCDAFHIR.fsh @@ -0,0 +1,85 @@ +Instance: FRDeviceUseStatementLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDispositifMedicalEntree → FRCDADispositifMedical → FRDeviceUseStatement" +Description: "Mapping des éléments du modèle métier FRLMDispositifMedicalEntree vers le +profil CDA FRCDADispositifMedical, puis vers le profil FHIR FRDeviceUseStatementDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Utilisation de dispositif médical\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-dispositif-medical-entree" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispositif-medical" +// Élément racine +* group[=].element[+].code = #FRLMDispositifMedicalEntree +* group[=].element[=].target.code = #FRCDADispositifMedical +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMDispositifMedicalEntree.identifiant +* group[=].element[=].target.code = #FRCDADispositifMedical.id +* group[=].element[=].target.equivalence = #equivalent +// Date d'utilisation ou de présence chez le patient +* group[=].element[+].code = #FRLMDispositifMedicalEntree.date +* group[=].element[=].target.code = #FRCDADispositifMedical.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Dispensateur +* group[=].element[+].code = #FRLMDispositifMedicalEntree.dispensateur +* group[=].element[=].target.code = #FRCDADispositifMedical.performer +* group[=].element[=].target.equivalence = #equivalent +// Dispositif médical +* group[=].element[+].code = #FRLMDispositifMedicalEntree.dispositifMedical +* group[=].element[=].target.code = #FRCDADispositifMedical.participant +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec une Affection Longue Durée (ALD) +* group[=].element[+].code = #FRLMDispositifMedicalEntree.affectionLongueDuree +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecALD +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec accident travail +* group[=].element[+].code = #FRLMDispositifMedicalEntree.accidentTravail +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecAccidentTravail +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec la prevention +* group[=].element[+].code = #FRLMDispositifMedicalEntree.prevention +* group[=].element[=].target.code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecPrevention +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispositif-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-device-use-statement-document" +// Élément racine +* group[=].element[+].code = #FRCDADispositifMedical +* group[=].element[=].target.code = #FRDeviceUseStatementDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDADispositifMedical.id +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Date d'utilisation ou de présence chez le patient +* group[=].element[+].code = #FRCDADispositifMedical.effectiveTime +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.timing[x] +* group[=].element[=].target.equivalence = #equivalent +// Dispensateur +* group[=].element[+].code = #FRCDADispositifMedical.performer +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.source.extension:performer +* group[=].element[=].target.equivalence = #equivalent +// Dispositif médical +* group[=].element[+].code = #FRCDADispositifMedical.participant +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.device +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec une Affection Longue Durée (ALD) +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecALD +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.reasonReference:EnRapportAvecALD +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec accident travail +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecAccidentTravail +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.reasonReference:EnRapportAvecAccidentTravail +* group[=].element[=].target.equivalence = #equivalent +// Entrée En rapport avec la prevention +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frEnRapportAvecPrevention +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.reasonReference:EnRapportAvecLaPrevention +* group[=].element[=].target.equivalence = #equivalent +// Entrée Non remboursable +* group[=].element[+].code = #FRCDADispositifMedical.entryRelationship:frNonRemboursable +* group[=].element[=].target.code = #FRDeviceUseStatementDocument.extension:notCovered +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDiagnosticReportLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDiagnosticReportLMCDAFHIR.fsh new file mode 100644 index 0000000..274999e --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDiagnosticReportLMCDAFHIR.fsh @@ -0,0 +1,80 @@ +Instance: FRDiagnosticReportLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatsEntry → FRCDAResultats → FRDiagnosticReportDocument" +Description: "Mapping des éléments du modèle métier FRLMResultatsEntry vers le profil CDA FRCDAResultats, puis vers le profil FHIR FRDiagnosticReportDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Types des résultats classés par type d’examens (BIO, IMG, etc…)\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-entree" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats" +// Élément racine +* group[=].element[+].code = #FRLMResultatsEntry +* group[=].element[=].target.code = #FRCDAResultats +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMResultatsEntry.identifiant +* group[=].element[=].target.code = #FRCDAResultats.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.code +* group[=].element[=].target.code = #FRCDAResultats.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.statut +* group[=].element[=].target.code = #FRCDAResultats.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.date +* group[=].element[=].target.code = #FRCDAResultats.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Exécutant +* group[=].element[+].code = #FRLMResultatsEntry.executant +* group[=].element[=].target.code = #FRCDAResultats.performer +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMResultatsEntry.auteur +* group[=].element[=].target.code = #FRCDAResultats.author +* group[=].element[=].target.equivalence = #equivalent +// Résultat +* group[=].element[+].code = #FRLMResultatsEntry.resultat +* group[=].element[=].target.code = #FRCDAResultats.component:frResultat +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-diagnostic-report-document" +// Élément racine +* group[=].element[+].code = #FRCDAResultats +* group[=].element[=].target.code = #FRDiagnosticReportDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAResultats.id +* group[=].element[=].target.code = #FRDiagnosticReportDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDAResultats.code +* group[=].element[=].target.code = #FRDiagnosticReportDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAResultats.statusCode +* group[=].element[=].target.code = #FRDiagnosticReportDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date de l'entrée +* group[=].element[+].code = #FRCDAResultats.effectiveTime +* group[=].element[=].target.code = #FRDiagnosticReportDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Exécutant +* group[=].element[+].code = #FRCDAResultats.performer +* group[=].element[=].target.code = #FRDiagnosticReportDocument.performer.extension:performerFunction +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDAResultats.author +* group[=].element[=].target.code = #FRDiagnosticReportDocument.resultsInterpreter.extension:performerFunction +* group[=].element[=].target.equivalence = #equivalent +// Résultat +* group[=].element[+].code = #FRCDAResultats.component:frResultat +* group[=].element[=].target.code = #FRDiagnosticReportDocument.result +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDocumentReferenceLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDocumentReferenceLMCDAFHIR.fsh new file mode 100644 index 0000000..e33b4e6 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRDocumentReferenceLMCDAFHIR.fsh @@ -0,0 +1,88 @@ +Instance: FRDocumentReferenceLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDocumentAttache → FRCDADocumentAttache → FRDocumentReferenceDocument" +Description: "Mapping des éléments du modèle métier FRLMDocumentAttache vers le profil CDA FRCDADocumentAttache, puis vers le profil FHIR FRDocumentReferenceDocument." +* title = "Mapping Métier/CDA/FHIR : \"Document Referencé\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-document-attache" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-document-attache" +// Élément racine +* group[=].element[+].code = #FRLMDocumentAttache +* group[=].element[=].target.code = #FRCDADocumentAttache +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMDocumentAttache.identifiant +* group[=].element[=].target.code = #FRCDADocumentAttache.id +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRLMDocumentAttache.code +* group[=].element[=].target.code = #FRCDADocumentAttache.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMDocumentAttache.statut +* group[=].element[=].target.code = #FRCDADocumentAttache.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRLMDocumentAttache.date +* group[=].element[=].target.code = #FRCDADocumentAttache.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Type de document +* group[=].element[+].code = #FRLMDocumentAttache.typeDocumentAttache +* group[=].element[=].target.code = #FRCDADocumentAttache.component:frTypeDocumentAttache +* group[=].element[=].target.equivalence = #equivalent +// Contenu du document +* group[=].element[+].code = #FRLMDocumentAttache.documentAttache +* group[=].element[=].target.code = #FRCDADocumentAttache.component.observationMedia +* group[=].element[=].target.equivalence = #equivalent +// Observation média - Identifiant +* group[=].element[+].code = #FRLMDocumentAttache.documentAttache.observationMedia.identifiant +* group[=].element[=].target.code = #FRCDADocumentAttache.component.observationMedia.id +* group[=].element[=].target.equivalence = #equivalent +// Document attaché encodé en Base64 +* group[=].element[+].code = #FRLMDocumentAttache.documentAttache.observationMedia.documentAttacheEncode +* group[=].element[=].target.code = #FRCDADocumentAttache.component.observationMedia.value +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-document-attache" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-document-reference-document" +// Élément racine +* group[=].element[+].code = #FRCDADocumentAttache +* group[=].element[=].target.code = #FRDocumentReferenceDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDADocumentAttache.id +* group[=].element[=].target.code = #FRDocumentReferenceDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDADocumentAttache.code +//* group[=].element[=].target.code = #FRDocumentReferenceDocument.type +* group[=].element[=].target.equivalence = #unmatched +// Statut +* group[=].element[+].code = #FRCDADocumentAttache.statusCode +* group[=].element[=].target.code = #FRDocumentReferenceDocument.docStatus +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRCDADocumentAttache.effectiveTime +* group[=].element[=].target.code = #FRDocumentReferenceDocument.date +* group[=].element[=].target.equivalence = #equivalent +// Type de document +* group[=].element[+].code = #FRCDADocumentAttache.component:frTypeDocumentAttache +* group[=].element[=].target.code = #FRDocumentReferenceDocument.type +* group[=].element[=].target.equivalence = #equivalent +// Contenu du document +* group[=].element[+].code = #FRCDADocumentAttache.component.observationMedia +* group[=].element[=].target.code = #FRDocumentReferenceDocument.content.attachment +* group[=].element[=].target.equivalence = #equivalent +// Observation média - Identifiant +* group[=].element[+].code = #FRCDADocumentAttache.component.observationMedia.id +* group[=].element[=].target.code = #FRDocumentReferenceDocument.content.attachment.id +* group[=].element[=].target.equivalence = #equivalent +// Document attaché encodé en Base64 +* group[=].element[+].code = #FRCDADocumentAttache.component.observationMedia.value +* group[=].element[=].target.code = #FRDocumentReferenceDocument.content.attachment.data +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FREncounterLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FREncounterLMCDAFHIR.fsh new file mode 100644 index 0000000..4d2c942 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FREncounterLMCDAFHIR.fsh @@ -0,0 +1,107 @@ +Instance: FREncounterLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMRencontre → FRCDARencontre → FREncounterDocument" +Description: "Mapping des éléments du modèle métier FRLMRencontre vers le profil CDA FRCDARencontre, puis vers le profil FHIR FREncounterDocument." +* title = "Mapping Métier/CDA/FHIR : \"Encounter\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-rencontre" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-rencontre" +// Élément racine +* group[=].element[+].code = #FRLMRencontre +* group[=].element[=].target.code = #FRCDARencontre +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMRencontre.identifiant +* group[=].element[=].target.code = #FRCDARencontre.id +* group[=].element[=].target.equivalence = #equivalent +// typeRencontre +* group[=].element[+].code = #FRLMRencontre.typeRencontre +* group[=].element[=].target.code = #FRCDARencontre.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMRencontre.description +* group[=].element[=].target.code = #FRCDARencontre.text +* group[=].element[=].target.equivalence = #equivalent +// date de la rencontre +* group[=].element[+].code = #FRLMRencontre.dateRencontre +* group[=].element[=].target.code = #FRCDARencontre.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// confirmation de la rencontre +* group[=].element[+].code = #FRLMRencontre.confirmationRencontre +* group[=].element[=].target.code = #FRCDARencontre.priorityCode +* group[=].element[=].target.equivalence = #equivalent +// exécutant +* group[=].element[+].code = #FRLMRencontre.executant +* group[=].element[=].target.code = #FRCDARencontre.performer +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMRencontre.auteur +* group[=].element[=].target.code = #FRCDARencontre.author +* group[=].element[=].target.equivalence = #equivalent +// informateur +* group[=].element[+].code = #FRLMRencontre.informateur +* group[=].element[=].target.code = #FRCDARencontre.informant +* group[=].element[=].target.equivalence = #equivalent +// lieu d'exécution +* group[=].element[+].code = #FRLMRencontre.participant +* group[=].element[=].target.code = #FRCDARencontre.participant +* group[=].element[=].target.equivalence = #equivalent +// autre participant +* group[=].element[+].code = #FRLMRencontre.autreParticipant +* group[=].element[=].target.code = #FRCDARencontre.participant +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-rencontre" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-encounter-document" +// Élément racine +* group[=].element[+].code = #FRCDARencontre +* group[=].element[=].target.code = #FREncounterDocument +* group[=].element[=].target.equivalence = #equivalent +// Statut de la rencontre +* group[=].element[+].code = #FRCDARencontre.moodCode +* group[=].element[=].target.code = #FREncounterDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDARencontre.id +* group[=].element[=].target.code = #FREncounterDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// typeRencontre +* group[=].element[+].code = #FRCDARencontre.code +* group[=].element[=].target.code = #FREncounterDocument.class +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRCDARencontre.text +* group[=].element[=].target.code = #FREncounterDocument.class.text +* group[=].element[=].target.equivalence = #equivalent +// date de la rencontre +* group[=].element[+].code = #FRCDARencontre.effectiveTime +* group[=].element[=].target.code = #FREncounterDocument.period +* group[=].element[=].target.equivalence = #equivalent +// confirmation de la rencontre +* group[=].element[+].code = #FRCDARencontre.priorityCode +* group[=].element[=].target.code = #FREncounterDocument.priority +* group[=].element[=].target.equivalence = #equivalent +// Subject (patient) - pas de mapping car géré au niveau du document +// exécutant +* group[=].element[+].code = #FRCDARencontre.performer +* group[=].element[=].target.code = #FREncounterDocument.participant.individual.extension:executant +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRCDARencontre.author +* group[=].element[=].target.code = #FREncounterDocument.participant.individual.extension:author +* group[=].element[=].target.equivalence = #equivalent +// informateur +* group[=].element[+].code = #FRCDARencontre.informant +* group[=].element[=].target.code = #FREncounterDocument.participant.individual.extension:informant +* group[=].element[=].target.equivalence = #equivalent +// lieu d'exécution +* group[=].element[+].code = #FRCDARencontre.participant +* group[=].element[=].target.code = #FREncounterDocument.location.location +* group[=].element[=].target.equivalence = #equivalent +// autre participant +* group[=].element[+].code = #FRCDARencontre.participant +* group[=].element[=].target.code = #FREncounterDocument.participant +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoriesLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoriesLMCDAFHIR.fsh new file mode 100644 index 0000000..c46a335 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoriesLMCDAFHIR.fsh @@ -0,0 +1,78 @@ +Instance: FRFamilyMemberHistoriesLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAntecedentsFamiliauxEntree → FRCDAAntecedentsFamiliaux → FRFamilyMemberHistoryDocument" +Description: "Mapping des éléments du modèle métier FRLMAntecedentsFamiliauxEntree vers le profil CDA FRCDAAntecedentsFamiliaux, puis vers le profil FHIR FRFamilyMemberHistoryDocument." +* title = "Mapping Métier/CDA/FHIR : \"Antécédents familiaux\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-antecedents-familiaux-entree" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedents-familiaux" +// Élément racine +* group[=].element[+].code = #FRLMAntecedentsFamiliauxEntree +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRLMAntecedentsFamiliauxEntree.statut +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Identification du parent +* group[=].element[+].code = #FRLMAntecedentsFamiliauxEntree.identificationParent +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.subject +* group[=].element[=].target.equivalence = #equivalent +// Lien avec un autre sujet +* group[=].element[+].code = #FRLMAntecedentsFamiliauxEntree.participant +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.participant +* group[=].element[=].target.equivalence = #equivalent +// Antécédent familial observé +* group[=].element[+].code = #FRLMAntecedentsFamiliauxEntree.antecedentFamilialObserve +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.component:frAntecedentFamilialObserve +* group[=].element[=].target.equivalence = #equivalent +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedents-familiaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-family-member-history-document" +// Élément racine +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.statusCode +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Identification du parent +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.relationship +* group[=].element[=].target.equivalence = #equivalent +// Sexe du sujet +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject.relatedSubject.subject.administrativeGenderCode +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.sex +* group[=].element[=].target.equivalence = #equivalent +// Date de naissance du sujet +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject.relatedSubject.subject.birthTime +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.born[x] +* group[=].element[=].target.equivalence = #equivalent +// Sujet décédé +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject.relatedSubject.subject.sdtc:deceasedInd +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.deceasedBoolean +* group[=].element[=].target.equivalence = #equivalent +// Date de décès du sujet +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject.relatedSubject.subject.sdtc:deceasedTime +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.deceasedDate +* group[=].element[=].target.equivalence = #equivalent +// Sujet né d’une naissance multiple +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject.relatedSubject.subject.sdtc:multipleBirthInd +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.patient.multipleBirthBoolean +* group[=].element[=].target.equivalence = #equivalent +// Rang de naissance (en cas de naissances multiples) +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.subject.relatedSubject.subject.sdtc:multipleBirthOrderNumber +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.patient.multipleBirthInteger +* group[=].element[=].target.equivalence = #equivalent +// Lien avec un autre sujet +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.participant +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.relationship +* group[=].element[=].target.equivalence = #equivalent +// Antécédent familial observé +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.component:frAntecedentFamilialObserve +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..929b5b3 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRFamilyMemberHistoryLMCDAFHIR.fsh @@ -0,0 +1,103 @@ +Instance: FRFamilyMemberHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAntecedentFamilialObserve → FRCDAAntecedentFamilialObserve → FRFamilyMemberHistoryDocument" +Description: "Mapping des éléments du modèle métier FRLMAntecedentFamilialObserve vers le profil CDA FRCDAAntecedentFamilialObserve, puis vers le profil FHIR FRFamilyMemberHistoryDocument." +* title = "Mapping Métier/CDA/FHIR : \"Antécédent familial observé\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-antecedent-familial-observe" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedent-familial-observe" +// Élément racine +* group[=].element[+].code = #FRLMAntecedentFamilialObserve +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.identifiant +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.id +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'observation +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.statut +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Code de l'observation +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.code +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'observation +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.descriptionNarrative +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.text +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.horodatage +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l'observation effectuée +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.resultat +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.interpretation +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Méthode utilisée +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.methode +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.methodCode +* group[=].element[=].target.equivalence = #equivalent +// Site +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.site +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Auteur de l'observation +* group[=].element[+].code = #FRLMAntecedentFamilialObserve.auteur +* group[=].element[=].target.code = #FRCDAAntecedentFamilialObserve.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedent-familial-observe" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-family-member-history-document" +// Élément racine +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition +* group[=].element[=].target.equivalence = #equivalent +// Identification de l'observation +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.id +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'observation +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.statusCode +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.effectiveTime +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.onset[x] +* group[=].element[=].target.equivalence = #equivalent +// Code de l'observation +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.code +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'observation +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.text +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.note +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l'observation effectuée +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.value +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.outcome +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.interpretationCode +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.extension:FRInterpretationExtension +* group[=].element[=].target.equivalence = #equivalent +// Méthode utilisée +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.methodCode +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.extension:FRMethodExtension +* group[=].element[=].target.equivalence = #equivalent +// Site +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.targetSiteCode +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.extension:FRFamilyMemberHistoryBodySiteExtension +* group[=].element[=].target.equivalence = #equivalent +// Auteur de l'observation +* group[=].element[+].code = #FRCDAAntecedentFamilialObserve.author +* group[=].element[=].target.code = #FRFamilyMemberHistoryDocument.condition.extension:FRActorExtension +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingMedicationAministrationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingMedicationAministrationLMCDAFHIR.fsh new file mode 100644 index 0000000..bb1e98d --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingMedicationAministrationLMCDAFHIR.fsh @@ -0,0 +1,95 @@ +Instance: FRImagingMedicationAministrationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAdministrationProduitDeSante -> FRCDADICOMAdministrationProduitDeSante -> FRMedicationAdministrationDocument" +Description: "Mapping des éléments du modele metier FRLMAdministrationProduitDeSante vers le profil CDA FRCDADICOMAdministrationProduitDeSante, puis vers le profil FHIR FRMedicationAdministrationDocument." +* title = "Mapping Metier/CDA/FHIR : \"Administration de produit de sante en imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-administration-produit-de-sante" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-administration-produit-de-sante" +// Element racine +* group[=].element[+].code = #FRLMAdministrationProduitDeSante +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.identifiant +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.id +* group[=].element[=].target.equivalence = #equivalent +// Description +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.description +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.statut +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.voieAdministration +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.routeCode +* group[=].element[=].target.equivalence = #equivalent +// Dose +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.dose +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.rythme +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// Produit de sante +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.medicament.produit +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.consumable.manufacturedProduct.manufacturedMaterial +* group[=].element[=].target.equivalence = #equivalent +// Code du produit +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.medicament.produit.codeProduit +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.consumable.manufacturedProduct.manufacturedMaterial.code +* group[=].element[=].target.equivalence = #equivalent +// Autre codification +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.medicament.produit.codeProduit.autreCodification +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.consumable.manufacturedProduct.manufacturedMaterial.code.translation +* group[=].element[=].target.equivalence = #equivalent +// Nom de marque +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.medicament.produit.nomMarque +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.consumable.manufacturedProduct.manufacturedMaterial.name +* group[=].element[=].target.equivalence = #equivalent +// Numero de lot +* group[=].element[+].code = #FRLMAdministrationProduitDeSante.medicament.produit.numeroLot +* group[=].element[=].target.code = #FRCDADICOMAdministrationProduitDeSante.consumable.manufacturedProduct.manufacturedMaterial.lotNumberText +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-administration-produit-de-sante" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-administration-document" +// Element racine +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante +* group[=].element[=].target.code = #FRMedicationAdministrationDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.id +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Description +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.text +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.category.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.statusCode +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.routeCode +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.route +* group[=].element[=].target.equivalence = #equivalent +// Dose +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.doseQuantity +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.dose +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.rateQuantity +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.rate[x] +* group[=].element[=].target.equivalence = #equivalent +// Medicament +* group[=].element[+].code = #FRCDADICOMAdministrationProduitDeSante.consumable +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.medication:FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingProcedureLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingProcedureLMCDAFHIR.fsh new file mode 100644 index 0000000..f9ec9d3 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingProcedureLMCDAFHIR.fsh @@ -0,0 +1,87 @@ +Instance: FRImagingProcedureLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTechniqueImagerie → FRCDADICOMTechniqueImagerie → FRProcedureImagingDocument" +Description: "Mapping des éléments du modèle métier FRLMTechniqueImagerie vers le profil CDA FRCDADICOMTechniqueImagerie, puis vers le profil FHIR FRProcedureImagingDocument." +* title = "Mapping Métier/CDA/FHIR : \"Technique imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-technique-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-technique-imagerie" +// Élément racine +* group[=].element[+].code = #FRLMTechniqueImagerie +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'observation +* group[=].element[+].code = #FRLMTechniqueImagerie.identifiant +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'acte d'imagerie +* group[=].element[+].code = #FRLMTechniqueImagerie.codeActe +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.code +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative de l'observation +* group[=].element[+].code = #FRLMTechniqueImagerie.description +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.text +* group[=].element[=].target.equivalence = #equivalent +// Date de l'acte +* group[=].element[+].code = #FRLMTechniqueImagerie.date +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Modalité d’acquisition +* group[=].element[+].code = #FRLMTechniqueImagerie.modaliteAcquisition +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.methodCode +* group[=].element[=].target.equivalence = #equivalent +// Latéralité et topographie +* group[=].element[+].code = #FRLMTechniqueImagerie.lateralite +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Précision topographique +* group[=].element[+].code = #FRLMTechniqueImagerie.lateralite.precisionTopographique +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.targetSiteCode.qualifier +* group[=].element[=].target.equivalence = #equivalent +// Participant +* group[=].element[+].code = #FRLMTechniqueImagerie.participant +* group[=].element[=].target.code = #FRCDADICOMTechniqueImagerie.participant +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 3 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-technique-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-procedure-imaging-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie +* group[=].element[=].target.code = #FRProcedureImagingDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'observation +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.id +* group[=].element[=].target.code = #FRProcedureImagingDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'acte d'imagerie +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.code +* group[=].element[=].target.code = #FRProcedureImagingDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative de l'observation +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.text +* group[=].element[=].target.code = #FRProcedureImagingDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Date de l'acte +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.effectiveTime +* group[=].element[=].target.code = #FRProcedureImagingDocument.performed[x] +* group[=].element[=].target.equivalence = #equivalent +// Modalité d’acquisition +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.methodCode +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Pas de correspondance directe dans FRProcedureImagingDocument pour la modalité d’acquisition. Cette donnée est incluse dans le profil FRImagingStudyDocument.modality." +// Latéralité et topographie +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.targetSiteCode +* group[=].element[=].target.code = #FRProcedureImagingDocument.bodySite +* group[=].element[=].target.equivalence = #equivalent +// Précision topographique +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.targetSiteCode.qualifier +* group[=].element[=].target.equivalence = #FRProcedureImagingDocument.bodySite.extension:precisionTopographique +* group[=].element[=].target.equivalence = #equivalent +// Participant +* group[=].element[+].code = #FRCDADICOMTechniqueImagerie.participant +* group[=].element[=].target.equivalence = #FRProcedureImagingDocument.performer:participant.actor +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingQuantityLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingQuantityLMCDAFHIR.fsh new file mode 100644 index 0000000..c05256f --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingQuantityLMCDAFHIR.fsh @@ -0,0 +1,62 @@ +Instance: FRImagingQuantityLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Quantité d'exposition aux radiations" +Description: "Mapping des éléments du modèle métier FRLMQuantiteExposition vers l'entrée CDA FRCDADICOMQuantite puis vers le composant FHIR FRObservationRadiationExposureDocument.component." +* title = "Mapping Métier/CDA/FHIR : Quantité d'exposition aux radiations" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-quantite-exposition" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-quantite" +// Élément racine +* group[=].element[+].code = #FRLMQuantiteExposition +* group[=].element[=].target.code = #FRCDADICOMQuantite +* group[=].element[=].target.equivalence = #equivalent +// type de la mesure +* group[=].element[+].code = #FRLMQuantiteExposition.code +* group[=].element[=].target.code = #FRCDADICOMQuantite.code +* group[=].element[=].target.equivalence = #equivalent +// valeur +* group[=].element[+].code = #FRLMQuantiteExposition.valeur +* group[=].element[=].target.code = #FRCDADICOMQuantite.value +* group[=].element[=].target.equivalence = #equivalent +// latéralité +* group[=].element[+].code = #FRLMQuantiteExposition.lateralite +* group[=].element[=].target.code = #FRCDADICOMQuantite.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// précision topographique +* group[=].element[+].code = #FRLMQuantiteExposition.lateralite.topographique +* group[=].element[=].target.code = #FRCDADICOMQuantite.targetSiteCode.qualifier +* group[=].element[=].target.equivalence = #equivalent +// valeur de la précision topographique +* group[=].element[+].code = #FRLMQuantiteExposition.lateralite.topographique.valeur +* group[=].element[=].target.code = #FRCDADICOMQuantite.targetSiteCode.qualifier.value +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR ObservationRadiationExposureDocument.component +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-quantite" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-radiation-exposure-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMQuantite +* group[=].element[=].target.code = #FRObservationRadiationExposureDocument.component +* group[=].element[=].target.equivalence = #equivalent +// type de la mesure de la quantité d'exposition +* group[=].element[+].code = #FRCDADICOMQuantite.code +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.FRObservationRadiationExposureDocument.component.code +* group[=].element[=].target.equivalence = #equivalent +// valeur de la mesure de la quantité d'exposition +* group[=].element[+].code = #FRCDADICOMQuantite.value +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.FRObservationRadiationExposureDocument.component.valueQuantity +* group[=].element[=].target.equivalence = #equivalent +// localisation anatomique de l'exposition +* group[=].element[+].code = #FRCDADICOMQuantite.targetSiteCode +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.FRObservationRadiationExposureDocument.bodySite +* group[=].element[=].target.equivalence = #equivalent +// précision topographique de la localisation anatomique +* group[=].element[+].code = #FRCDADICOMQuantite.targetSiteCode.qualifier +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.FRObservationRadiationExposureDocument.bodySite.extension:precisionTopographique +* group[=].element[=].target.equivalence = #equivalent +// valeur de la précision topographique +* group[=].element[+].code = #FRCDADICOMQuantite.targetSiteCode.qualifier.value +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.FRObservationRadiationExposureDocument.bodySite.extension:precisionTopographique.locationQualifier +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingRadiationExposureAuthorizationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingRadiationExposureAuthorizationLMCDAFHIR.fsh new file mode 100644 index 0000000..62d746a --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingRadiationExposureAuthorizationLMCDAFHIR.fsh @@ -0,0 +1,38 @@ +Instance: FRImagingRadiationExposureAuthorizationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAutorisationExposition → FRCDADICOMExpositionPatient → FRObservationRadiationExposureDocument.performer:professionnelAutorisantExposition" +Description: "Mapping des éléments du modèle métier FRLMAutorisationExposition vers le profil CDA FRCDADICOMExpositionPatient, puis vers le profil FHIR FRObservationRadiationExposureDocument.performer:professionnelAutorisantExposition." +* title = "Mapping Métier/CDA/FHIR : Professionnel autorisant l'exposition aux radiations" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-autorisation-exposition" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-exposition-patient" +// Élément racine +* group[=].element[+].code = #FRLMAutorisationExposition +* group[=].element[=].target.code = #FRCDADICOMExpositionPatient +* group[=].element[=].target.equivalence = #equivalent +// code : Exposition du patient aux rayonnements ionisants +* group[=].element[+].code = #FRLMAutorisationExposition.code +* group[=].element[=].target.code = #FRCDADICOMExpositionPatient.code +* group[=].element[=].target.equivalence = #equivalent +// professionnel autorisant l'exposition +* group[=].element[+].code = #FRLMAutorisationExposition.participant +* group[=].element[=].target.code = #FRCDADICOMExpositionPatient.participant +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR ObservationRadiationExposureDocument.performer:professionnelAutorisantExposition +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-exposition-patient" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-radiation-exposure-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMExpositionPatient +* group[=].element[=].target.code = #FRObservationRadiationExposureDocument.performer:professionnelAutorisantExposition +* group[=].element[=].target.equivalence = #equivalent +// code : Exposition du patient aux rayonnements ionisants +* group[=].element[+].code = #FRCDADICOMExpositionPatient.code +* group[=].element[=].target.equivalence = #unmatched +// professionnel autorisant l'exposition +* group[=].element[+].code = #FRCDADICOMExpositionPatient.participant +* group[=].element[=].target.code = #FRObservationRadiationExposureDocument.performer:professionnelAutorisantExposition +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingSeriesLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingSeriesLMCDAFHIR.fsh new file mode 100644 index 0000000..228c183 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingSeriesLMCDAFHIR.fsh @@ -0,0 +1,95 @@ +Instance: FRImagingSeriesLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMSerieImagerie → FRCDADICOMSerieImagerie → FRImagingStudyDocument" +Description: "Mapping des éléments du modèle métier FRLMSerieImagerie vers le profil CDA FRCDADICOMSerieImagerie, puis vers le profil FHIR FRImagingStudyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Série d'imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-serie-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-serie-imagerie" +// Élément racine +* group[=].element[+].code = #FRLMSerieImagerie +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de la série +* group[=].element[+].code = #FRLMSerieImagerie.uuidSerie +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.id +* group[=].element[=].target.equivalence = #equivalent +// Code de la série +* group[=].element[+].code = #FRLMSerieImagerie.code +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.code +* group[=].element[=].target.equivalence = #equivalent +// Description de la série +* group[=].element[+].code = #FRLMSerieImagerie.description +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.text +* group[=].element[=].target.equivalence = #equivalent +// Date de la série d'actes +* group[=].element[+].code = #FRLMSerieImagerie.date +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// SOP instance +* group[=].element[+].code = #FRLMSerieImagerie.instanceSOP +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation +* group[=].element[=].target.equivalence = #equivalent +// Référence WADO +* group[=].element[+].code = #FRLMSerieImagerie.referenceWado +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text +* group[=].element[=].target.equivalence = #equivalent +// IHE Invoke Image Display +* group[=].element[+].code = #FRLMSerieImagerie.referenceWado.iHEInvokeImage +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text.reference +* group[=].element[=].target.equivalence = #equivalent +// Référence WADO URI +* group[=].element[+].code = #FRLMSerieImagerie.referenceWado.reference +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text.reference +* group[=].element[=].target.equivalence = #equivalent +// Type de media +* group[=].element[+].code = #FRLMSerieImagerie.referenceWado.typeMedia +* group[=].element[=].target.code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text.mediaType +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-serie-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-imaging-study-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMSerieImagerie +* group[=].element[=].target.code = #FRImagingStudyDocument.series +* group[=].element[=].target.equivalence = #equivalent +// identifiant de la série +* group[=].element[+].code = #FRCDADICOMSerieImagerie.id +* group[=].element[=].target.code = #FRImagingStudyDocument.series.uid +* group[=].element[=].target.equivalence = #equivalent +// Code de la série (pas de mapping possible car FRImagingStudyDocument.series.code n'existe pas) +* group[=].element[+].code = #FRCDADICOMSerieImagerie.code +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "FRImagingStudyDocument.series ne possède pas d'élément 'code' pour mapper cette donnée." +// Description de la série +* group[=].element[+].code = #FRCDADICOMSerieImagerie.text +* group[=].element[=].target.code = #FRImagingStudyDocument.series.description +* group[=].element[=].target.equivalence = #equivalent +// Date de la série d'actes +* group[=].element[+].code = #FRCDADICOMSerieImagerie.effectiveTime +* group[=].element[=].target.code = #FRImagingStudyDocument.series.started +* group[=].element[=].target.equivalence = #equivalent +// SOP instance +* group[=].element[+].code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation +* group[=].element[=].target.code = #FRImagingStudyDocument.series.instance +* group[=].element[=].target.equivalence = #equivalent +// Référence WADO +* group[=].element[+].code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text +* group[=].element[=].target.code = #FRImagingStudyDocument.series.endpoint +* group[=].element[=].target.equivalence = #equivalent +// IHE Invoke Image Display +* group[=].element[+].code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text.reference +* group[=].element[=].target.code = #FRImagingStudyDocument.series.endpoint.connectionType +* group[=].element[=].target.equivalence = #equivalent +// Référence WADO URI +* group[=].element[+].code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text.reference +* group[=].element[=].target.code = #FRImagingStudyDocument.series.endpoint.address +* group[=].element[=].target.equivalence = #equivalent +// Type de media +* group[=].element[+].code = #FRCDADICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.text.mediaType +* group[=].element[=].target.code = #FRImagingStudyDocument.series.endpoint.payloadMimeType +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingStudyLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingStudyLMCDAFHIR.fsh new file mode 100644 index 0000000..28f6bdc --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImagingStudyLMCDAFHIR.fsh @@ -0,0 +1,73 @@ +Instance: FRImagingStudyLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMExamenImagerie → FRCDADICOMExamenImagerie → FRImagingStudyDocument" +Description: "Mapping des éléments du modèle métier FRLMExamenImagerie vers le profil CDA FRCDADICOMExamenImagerie, puis vers le profil FHIR FRImagingStudyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Examen d'imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-examen-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-examen-imagerie" + +// Élément racine +* group[=].element[+].code = #FRLMExamenImagerie +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMExamenImagerie.uuidInstanceExamen +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'acte +* group[=].element[+].code = #FRLMExamenImagerie.codeActe +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'entrée +* group[=].element[+].code = #FRLMExamenImagerie.description +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie.text +* group[=].element[=].target.equivalence = #equivalent +// Date de l'acte +* group[=].element[+].code = #FRLMExamenImagerie.dateActe +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Série d'imagerie +* group[=].element[+].code = #FRLMExamenImagerie.serieImagerie +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie.entryRelationship:frDICOMSerieImagerie +* group[=].element[=].target.equivalence = #equivalent +// Objectifs de référence +* group[=].element[+].code = #FRLMExamenImagerie.objectifsReferences +* group[=].element[=].target.code = #FRCDADICOMExamenImagerie.entryRelationship:frDICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.entryRelationship:frDICOMObjectifsDeReference +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-examen-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-imaging-study-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMExamenImagerie +* group[=].element[=].target.code = #FRImagingStudyDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDADICOMExamenImagerie.id +* group[=].element[=].target.code = #FRImagingStudyDocument.identifier:studyInstanceUid +* group[=].element[=].target.equivalence = #equivalent +// Code de l'examen (pas de mapping possible car FRImagingStudyDocument.code n'existe pas) +* group[=].element[+].code = #FRCDADICOMExamenImagerie.code +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "FRImagingStudyDocument ne possède pas d'élément 'code' pour mapper cette donnée." + +// Description narrative de l'examen +* group[=].element[+].code = #FRCDADICOMExamenImagerie.text +* group[=].element[=].target.code = #FRImagingStudyDocument.description +* group[=].element[=].target.equivalence = #equivalent +// Date de l'examen +* group[=].element[+].code = #FRCDADICOMExamenImagerie.effectiveTime +* group[=].element[=].target.code = #FRImagingStudyDocument.started +* group[=].element[=].target.equivalence = #equivalent +// série +* group[=].element[+].code = #FRCDADICOMExamenImagerie.entryRelationship:frDICOMSerieImagerie +* group[=].element[=].target.code = #FRImagingStudyDocument.series +* group[=].element[=].target.equivalence = #equivalent +// Objectifs de référence +* group[=].element[+].code = #FRCDADICOMExamenImagerie.entryRelationship:frDICOMSerieImagerie.entryRelationship:frDICOMSOPInstanceObservation.entryRelationship:frDICOMObjectifsDeReference +* group[=].element[=].target.code = #FRImagingStudyDocument.reasonCode +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationLMCDAFHIR.fsh new file mode 100644 index 0000000..e45fd29 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationLMCDAFHIR.fsh @@ -0,0 +1,133 @@ +Instance: FRImmunizationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMVaccination → FRCDAVaccination → FRImmunizationDocument" +Description: "Mapping des éléments du modèle métier FRLMVaccination vers le profil CDA FRCDAVaccination, puis vers le profil FHIR FRImmunizationDocument." +* title = "Mapping Métier/CDA/FHIR : \"Vaccination\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-vaccination" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-vaccination" +// Élément racine +* group[=].element[+].code = #FRLMVaccination +* group[=].element[=].target.code = #FRCDAVaccination +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMVaccination.identifiant +* group[=].element[=].target.code = #FRCDAVaccination.id +* group[=].element[=].target.equivalence = #equivalent +// Type d'acte : vaccination +* group[=].element[+].code = #FRLMVaccination.code +* group[=].element[=].target.code = #FRCDAVaccination.code +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative de l’entrée +* group[=].element[+].code = #FRLMVaccination.description +* group[=].element[=].target.code = #FRCDAVaccination.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRLMVaccination.statut +* group[=].element[=].target.code = #FRCDAVaccination.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Période de vaccination souhaitable +* group[=].element[+].code = #FRLMVaccination.dateVaccination +* group[=].element[=].target.code = #FRCDAVaccination.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Voie d’administration +* group[=].element[+].code = #FRLMVaccination.voieAadministration +* group[=].element[=].target.code = #FRCDAVaccination.routeCode +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRLMVaccination.regionAnatomique +* group[=].element[=].target.code = #FRCDAVaccination.approachSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Dose administrée +* group[=].element[+].code = #FRLMVaccination.doseVaccination +* group[=].element[=].target.code = #FRCDAVaccination.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Vaccin +* group[=].element[+].code = #FRLMVaccination.vaccin +* group[=].element[=].target.code = #FRCDAVaccination.consumable:FRCDAProduitDeSante +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRLMVaccination.prescription +* group[=].element[=].target.code = #FRCDAVaccination.entryRelationship:frPrescription +* group[=].element[=].target.equivalence = #equivalent +// Rang de la vaccination +* group[=].element[+].code = #FRLMVaccination.rangVaccination +* group[=].element[=].target.code = #FRCDAVaccination.entryRelationship:frRangDeLaVaccination +* group[=].element[=].target.equivalence = #equivalent +// Réaction observée suite au vaccin +* group[=].element[+].code = #FRLMVaccination.reaction +* group[=].element[=].target.code = #FRCDAVaccination.entryRelationship:frProbleme +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRLMVaccination.commentaire +* group[=].element[=].target.code = #FRCDAVaccination.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent +// Dose d'antigène +* group[=].element[+].code = #FRLMVaccination.DoseAntigene +* group[=].element[=].target.code = #FRCDAVaccination.entryRelationship:frDoseAntigene +* group[=].element[=].target.equivalence = #equivalent +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-vaccination" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-immunization-document" +// Élément racine +* group[=].element[+].code = #FRCDAVaccination +* group[=].element[=].target.code = #FRImmunizationDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAVaccination.id +* group[=].element[=].target.code = #FRImmunizationDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Type de vaccination +* group[=].element[+].code = #FRCDAVaccination.code +* group[=].element[=].target.code = #FRImmunizationDocument.protocolApplied.series +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative de l’entrée +* group[=].element[+].code = #FRCDAVaccination.text +* group[=].element[=].target.code = #FRImmunizationDocument.vaccineCode.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRCDAVaccination.statusCode +* group[=].element[=].target.code = #FRImmunizationDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date de la vaccination +* group[=].element[+].code = #FRCDAVaccination.effectiveTime +* group[=].element[=].target.code = #FRImmunizationDocument.occurrence[x] +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRCDAVaccination.approachSiteCode +* group[=].element[=].target.code = #FRImmunizationDocument.site +* group[=].element[=].target.equivalence = #equivalent +// Voie d’administration +* group[=].element[+].code = #FRCDAVaccination.routeCode +* group[=].element[=].target.code = #FRImmunizationDocument.route +* group[=].element[=].target.equivalence = #equivalent +// Dose administrée +* group[=].element[+].code = #FRCDAVaccination.doseQuantity +* group[=].element[=].target.code = #FRImmunizationDocument.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Vaccin administré +* group[=].element[+].code = #FRCDAVaccination.consumable:FRCDAProduitDeSante +* group[=].element[=].target.code = #FRImmunizationDocument.vaccineCode +* group[=].element[=].target.equivalence = #equivalent +// Prescription +* group[=].element[+].code = #FRCDAVaccination.entryRelationship:frPrescription +* group[=].element[=].target.code = #FRImmunizationDocument.extension:immunization-basedOn-r5 +* group[=].element[=].target.equivalence = #equivalent +// Rang de la vaccination +* group[=].element[+].code = #FRCDAVaccination.entryRelationship:frRangDeLaVaccination +* group[=].element[=].target.code = #FRImmunizationDocument.protocolApplied.doseNumberPositiveInt +* group[=].element[=].target.equivalence = #equivalent +// Réaction observée suite au vaccin +* group[=].element[+].code = #FRCDAVaccination.entryRelationship:frProbleme +* group[=].element[=].target.code = #FRImmunizationDocument.reasonReference +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRCDAVaccination.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRImmunizationDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Dose d'antigène +* group[=].element[+].code = #FRCDAVaccination.entryRelationship:frDoseAntigene +* group[=].element[=].target.code = #FRImmunizationDocument.extension:immunization-administeredProduct-r5 +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationRecommendationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationRecommendationLMCDAFHIR.fsh new file mode 100644 index 0000000..9199e19 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRImmunizationRecommendationLMCDAFHIR.fsh @@ -0,0 +1,117 @@ +Instance: FRImmunizationRecommendationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMVaccinRecommande → FRCDAVaccinRecommande → FRImmunizationRecommendationDocument" +Description: "Mapping des éléments du modèle métier FRLMVaccinRecommande vers le profil CDA FRCDAVaccinRecommande, puis vers le profil FHIR FRImmunizationRecommendationDocument." +* title = "Mapping Métier/CDA/FHIR : \"Vaccin recommandé\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-vaccin-recommande" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-vaccin-recommande" +// Élément racine +* group[=].element[+].code = #FRLMVaccinRecommande +* group[=].element[=].target.code = #FRCDAVaccinRecommande +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l’entrée +* group[=].element[+].code = #FRLMVaccinRecommande.identifiantVaccinRecommande +* group[=].element[=].target.code = #FRCDAVaccinRecommande.id +* group[=].element[=].target.equivalence = #equivalent +// Type d'acte : vaccination +* group[=].element[+].code = #FRLMVaccinRecommande.codeVaccinRecommande +* group[=].element[=].target.code = #FRCDAVaccinRecommande.code +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative de l’entrée +* group[=].element[+].code = #FRLMVaccinRecommande.descriptionNarrativeVaccinRecommande +* group[=].element[=].target.code = #FRCDAVaccinRecommande.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRLMVaccinRecommande.statutVaccinRecommande +* group[=].element[=].target.code = #FRCDAVaccinRecommande.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Période de vaccination souhaitable +* group[=].element[+].code = #FRLMVaccinRecommande.periodeVaccination +* group[=].element[=].target.code = #FRCDAVaccinRecommande.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Voie d’administration +* group[=].element[+].code = #FRLMVaccinRecommande.voieAdministration +* group[=].element[=].target.code = #FRCDAVaccinRecommande.routeCode +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRLMVaccinRecommande.regionAnatomique +* group[=].element[=].target.code = #FRCDAVaccinRecommande.approachSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Dose administrée +* group[=].element[+].code = #FRLMVaccinRecommande.doseAdministree +* group[=].element[=].target.code = #FRCDAVaccinRecommande.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Vaccin +* group[=].element[+].code = #FRLMVaccinRecommande.vaccin +* group[=].element[=].target.code = #FRCDAVaccinRecommande.consumable.FRCDAProduitDeSante +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRLMVaccinRecommande.prescription +* group[=].element[=].target.code = #FRCDAVaccinRecommande.entryRelationship:frPrescription +* group[=].element[=].target.equivalence = #equivalent +// Rang de la vaccination +* group[=].element[+].code = #FRLMVaccinRecommande.rangVaccination +* group[=].element[=].target.code = #FRCDAVaccinRecommande.entryRelationship:frRangDeLaVaccination +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRLMVaccinRecommande.commentaire +* group[=].element[=].target.code = #FRCDAVaccinRecommande.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-vaccin-recommande" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-immunization-recommendation-document" +// Élément racine +* group[=].element[+].code = #FRCDAVaccinRecommande +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l’entrée +* group[=].element[+].code = #FRCDAVaccinRecommande.id +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Type d'acte : vaccination +* group[=].element[+].code = #FRCDAVaccinRecommande.code +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.vaccineCode +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative de l’entrée +* group[=].element[+].code = #FRCDAVaccinRecommande.text +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.vaccineCode.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRCDAVaccinRecommande.statusCode +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.forecastStatus +* group[=].element[=].target.equivalence = #equivalent +// Période de vaccination souhaitable +* group[=].element[+].code = #FRCDAVaccinRecommande.effectiveTime +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.dateCriterion.value +* group[=].element[=].target.equivalence = #equivalent +// Voie d’administration +* group[=].element[+].code = #FRCDAVaccinRecommande.routeCode +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.supportingImmunization:FRImmunizationDocument.route +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRCDAVaccinRecommande.approachSiteCode +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.supportingImmunization:FRImmunizationDocument.site +* group[=].element[=].target.equivalence = #equivalent +// Vaccin +* group[=].element[+].code = #FRCDAVaccinRecommande.consumable.FRCDAProduitDeSante +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.vaccineCode +* group[=].element[=].target.equivalence = #equivalent +// Autres codifications du vaccin +* group[=].element[+].code = #FRCDAVaccinRecommande.consumable.FRCDAProduitDeSante.code.translation +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.vaccineCode.coding:translation +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRCDAVaccinRecommande.entryRelationship:frPrescription +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.supportingPatientInformation +* group[=].element[=].target.equivalence = #equivalent +// Rang de la vaccination +* group[=].element[+].code = #FRCDAVaccinRecommande.entryRelationship:frRangDeLaVaccination +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.recommendation.seriesDosesPositiveInt +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRCDAVaccinRecommande.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRImmunizationRecommendationDocument.description +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryBatteryResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryBatteryResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..915d49a --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryBatteryResultsLMCDAFHIR.fsh @@ -0,0 +1,134 @@ +Instance: FRLaboratoryBatteryResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMBatterieExamensBiologieMedicale → FRCDABatterieExamensDeBiologieMedicale → FRObservationLaboratoryReportResultsDocument" +Description: "Mapping des éléments du modèle métier FRLMBatterieExamensBiologieMedicale vers le profil CDA FRCDABatterieExamensDeBiologieMedicale, puis vers le profil FHIR FRObservationLaboratoryReportResultsDocument." +* title = "Mapping Métier/CDA/FHIR : \"Batterie d'examens de biologie médicale\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-batterie-examens-biologie-medicale" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-batterie-examens-de-biologie-medicale" +// Élément racine +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.identifiant +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.id +* group[=].element[=].target.equivalence = #equivalent +// code de la batterie d'examen +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.codeBatterieExamen +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.code +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.statut +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date de l'examen +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.dateExamen +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// sujet non humain +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.choice:FRLMSujetNonHumain +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.subject +* group[=].element[=].target.equivalence = #equivalent +// patient avec sujet non humain +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.choice:FRLMPatientSujetNonHumain +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.subject +* group[=].element[=].target.equivalence = #equivalent +// laboratoire exécutant +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.laboratoireExecutant +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.performer +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.auteur +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.author +* group[=].element[=].target.equivalence = #equivalent +// participant +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.participant +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.participant +* group[=].element[=].target.equivalence = #equivalent +// prélèvement +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.prelevement +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.component:frPrelevement +* group[=].element[=].target.equivalence = #equivalent +// résultat d'examen de biologie / élément clinique pertinent +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.resultatElementCliniquePertinent +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.component:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.equivalence = #equivalent +// image illustrative +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.imageIllustrative +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.component:frImageIllustrative +* group[=].element[=].target.equivalence = #equivalent +// commentaire +* group[=].element[+].code = #FRLMBatterieExamensBiologieMedicale.commentaire +* group[=].element[=].target.code = #FRCDABatterieExamensDeBiologieMedicale.component:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-batterie-examens-de-biologie-medicale" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// Élément racine +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.id +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.code +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.code +* group[=].element[=].target.equivalence = #equivalent +// statusCode +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.statusCode +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.status +* group[=].element[=].target.equivalence = #equivalent +// effectiveTime +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.effectiveTime +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// subject +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.subject +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.subject +* group[=].element[=].target.equivalence = #equivalent +// laboratoire exécutant +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.performer +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:laboratoireExecutant +* group[=].element[=].target.equivalence = #equivalent +// author +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.author +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.author +* group[=].element[=].target.equivalence = #equivalent +// valideur des résultats +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:validateurResultat +* group[=].element[=].target.display = "Authenticator (CDA participant) : participant/@typeCode='AUTHEN'" +* group[=].element[=].target.equivalence = #equivalent +// responsable de l'examen +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:responsableExamen +* group[=].element[=].target.display = "Responsible Party (CDA participant) : participant/@typeCode='RESP'" +* group[=].element[=].target.equivalence = #equivalent +// dispositif automatique +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:dispositifAuto +* group[=].element[=].target.display = "Device (CDA participant) : participant/@typeCode='DEV'" +* group[=].element[=].target.equivalence = #equivalent +// component:frPrelevement +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.component:frPrelevement +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen +* group[=].element[=].target.equivalence = #equivalent +// component:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.component:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.hasMember:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// component:frImageIllustrative +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.component:frImageIllustrative +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.derivedFrom:FRMediaDocument +* group[=].element[=].target.equivalence = #equivalent +// component:frCommentaireER +* group[=].element[+].code = #FRCDABatterieExamensDeBiologieMedicale.component:frCommentaireER +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.note +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryIsolateResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryIsolateResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..a1cac9b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryIsolateResultsLMCDAFHIR.fsh @@ -0,0 +1,169 @@ +Instance: FRLaboratoryIsolateResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMIsolatMicrobiologique → FRCDAIsolatMicrobiologique → FRObservationLaboratoryReportResultsDocument" +Description: "Mapping des éléments du modèle métier FRLMIsolatMicrobiologique vers le profil CDA FRCDAIsolatMicrobiologique, puis vers le profil FHIR FRObservationLaboratoryReportResultsDocument." +* title = "Mapping Métier/CDA/FHIR : \"Isolat microbiologique\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-isolat-microbiologique" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-isolat-microbiologique" +// Élément racine +* group[=].element[+].code = #FRLMIsolatMicrobiologique +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMIsolatMicrobiologique.identifiant +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.id +* group[=].element[=].target.equivalence = #equivalent +// codeIsolat +* group[=].element[+].code = #FRLMIsolatMicrobiologique.codeIsolat +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.code +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMIsolatMicrobiologique.statut +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.statusCode +* group[=].element[=].target.equivalence = #equivalent +// dateateResultat +* group[=].element[+].code = #FRLMIsolatMicrobiologique.dateResultat +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// sujet non humain +* group[=].element[+].code = #FRLMIsolatMicrobiologique.choice:SujetNonHumain +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.subject +* group[=].element[=].target.equivalence = #equivalent +// patient avec sujet non humain +* group[=].element[+].code = #FRLMIsolatMicrobiologique.choice:PatientSujetNonHumain +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.subject +* group[=].element[=].target.equivalence = #equivalent +// isolatMicrobiologique +* group[=].element[+].code = #FRLMIsolatMicrobiologique.isolatMicrobiologique +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.specimen +* group[=].element[=].target.equivalence = #equivalent +// isolat +* group[=].element[+].code = #FRLMIsolatMicrobiologique.isolatMicrobiologique.isolat +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.specimen.specimenRole +* group[=].element[=].target.equivalence = #equivalent +// identifiant de l'isolat +* group[=].element[+].code = #FRLMIsolatMicrobiologique.isolatMicrobiologique.isolat.identifiant +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.specimen.specimenRole.id +* group[=].element[=].target.equivalence = #equivalent +// agent +* group[=].element[+].code = #FRLMIsolatMicrobiologique.isolatMicrobiologique.isolat.agent +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.specimen.specimenRole.specimenPlayingEntity +* group[=].element[=].target.equivalence = #equivalent +// code de l'agent +* group[=].element[+].code = #FRLMIsolatMicrobiologique.isolatMicrobiologique.isolat.agent.code +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.specimen.specimenRole.specimenPlayingEntity.code +* group[=].element[=].target.equivalence = #equivalent +// laboratoireExecutant +* group[=].element[+].code = #FRLMIsolatMicrobiologique.laboratoireExecutant +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.performer +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMIsolatMicrobiologique.auteur +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.author +* group[=].element[=].target.equivalence = #equivalent +// valideur +* group[=].element[+].code = #FRLMIsolatMicrobiologique.valideur +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.participant +* group[=].element[=].target.display = "Authenticator (CDA participant) : participant/@typeCode='AUTHEN'" +* group[=].element[=].target.equivalence = #equivalent +// responsable +* group[=].element[+].code = #FRLMIsolatMicrobiologique.responsable +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.participant +* group[=].element[=].target.display = "Responsible Party (CDA participant) : participant/@typeCode='RESP'" +* group[=].element[=].target.equivalence = #equivalent +// dispositifAutomatique +* group[=].element[+].code = #FRLMIsolatMicrobiologique.dispositifAutomatique +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.participant +* group[=].element[=].target.display = "Device (CDA participant) : participant/@typeCode='DEV'" +* group[=].element[=].target.equivalence = #equivalent +// batterieExamensDeBiologieMedicale +* group[=].element[+].code = #FRLMIsolatMicrobiologique.batterieExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.component:frBatterieExamensDeBiologieMedicale +* group[=].element[=].target.equivalence = #equivalent +// resultatElementCliniquePertinent +* group[=].element[+].code = #FRLMIsolatMicrobiologique.resultatElementCliniquePertinent +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.component:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.equivalence = #equivalent +// imageIllustrative +* group[=].element[+].code = #FRLMIsolatMicrobiologique.imageIllustrative +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.component:frImageIllustrative +* group[=].element[=].target.equivalence = #equivalent +// commentaire +* group[=].element[+].code = #FRLMIsolatMicrobiologique.commentaire +* group[=].element[=].target.code = #FRCDAIsolatMicrobiologique.component:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-isolat-microbiologique" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// Élément racine +* group[=].element[+].code = #FRCDAIsolatMicrobiologique +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.id +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// code isolat +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.code +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.code +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.statusCode +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.status +* group[=].element[=].target.equivalence = #equivalent +// effectiveTime +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.effectiveTime +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// subject +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.subject +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.subject +* group[=].element[=].target.equivalence = #equivalent +// isolat microbiologique +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.specimen +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen +* group[=].element[=].target.equivalence = #equivalent +// laboratoire executant +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.performer +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:laboratoireExecutant +* group[=].element[=].target.equivalence = #equivalent +// author +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.author +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent +// valideur +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:validateurResultat +* group[=].element[=].target.display = "Authenticator (CDA participant) : participant/@typeCode='AUTHEN'" +* group[=].element[=].target.equivalence = #equivalent +// responsable +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:responsableExamen +* group[=].element[=].target.display = "Responsible Party (CDA participant) : participant/@typeCode='RESP'" +* group[=].element[=].target.equivalence = #equivalent +// dispositifAutomatique +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:dispositifAuto +* group[=].element[=].target.display = "Device (CDA participant) : participant/@typeCode='DEV'" +* group[=].element[=].target.equivalence = #equivalent +// batterieExamensDeBiologieMedicale +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.component:frBatterieExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.hasMember:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// resultatElementCliniquePertinent +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.component:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.hasMember:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// imageIllustrative +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.component:frImageIllustrative +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.derivedFrom:FRMediaDocument +* group[=].element[=].target.equivalence = #equivalent +// commentaire +* group[=].element[+].code = #FRCDAIsolatMicrobiologique.component:frCommentaireER +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.note +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultClinicalElementLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultClinicalElementLMCDAFHIR.fsh new file mode 100644 index 0000000..89c14f8 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultClinicalElementLMCDAFHIR.fsh @@ -0,0 +1,155 @@ +Instance: FRLaboratoryResultClinicalElementLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatExamensBiologieElementCliniquePertinent → Profile: FRCDAResultatExamensDeBiologieElementCliniquePertinent + → FRObservationLaboratoryReportResultsDocument" +Description: "Mapping des éléments du modèle métier FRLMResultatExamensBiologieElementCliniquePertinent vers le profil CDA FRCDAResultatExamensDeBiologieElementCliniquePertinent, puis vers le profil FHIR FRObservationLaboratoryReportResultsDocument." +* title = "Mapping Métier/CDA/FHIR : \"Résultat d'examens de biologie - Élément clinique pertinent\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultat-examens-biologie-element-clinique-pertinent" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultat-examens-de-biologie-element-clinique-pertinent" +// Élément racine +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.identifiant +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.id +* group[=].element[=].target.equivalence = #equivalent +// code de l'analyse ou de l'observation +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.codeAnalyseObservation +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.code +* group[=].element[=].target.equivalence = #equivalent +// date et heure de ce résultat +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.dateHeureResultat +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// valeur du résultat +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.valeurResultat +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.value +* group[=].element[=].target.equivalence = #equivalent +// interprétation du résultat +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.interpretation +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.interpretationCode.code +* group[=].element[=].target.equivalence = #equivalent +// méthode ou technique utilisée +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.methode +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.methodCode +* group[=].element[=].target.equivalence = #equivalent +// Sujet non humain +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.choice:FRLMSujetNonHumain +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.subject +* group[=].element[=].target.equivalence = #equivalent +// Patient avec sujet non humain +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.choice:FRLMPatientSujetNonHumain +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.subject +* group[=].element[=].target.equivalence = #equivalent +// laboratoireExecutant +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.laboratoireExecutant +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.performer +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.auteur +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.author +* group[=].element[=].target.equivalence = #equivalent +// valideur +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.valideur +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.participant +* group[=].element[=].target.display = "Authenticator (CDA participant) : participant/@typeCode='AUTHEN'" +* group[=].element[=].target.equivalence = #equivalent +// responsable +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.responsable +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.participant +* group[=].element[=].target.display = "Responsible Party (CDA participant) : participant/@typeCode='RESP'" +* group[=].element[=].target.equivalence = #equivalent +// dispositifAutomatique +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.dispositifAutomatique +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.participant +* group[=].element[=].target.display = "Device (CDA participant) : participant/@typeCode='DEV'" +* group[=].element[=].target.equivalence = #equivalent +// commentaire (entryRelationship) +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.commentaire +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent +// prélèvement (entryRelationship) +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.prelevement +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.entryRelationship:frPrelevement +* group[=].element[=].target.equivalence = #equivalent +// Résultats antérieurs +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.resultatsAnterieurs +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.entryRelationship.observation +* group[=].element[=].target.equivalence = #equivalent +// Intervalles de référence +* group[=].element[+].code = #FRLMResultatExamensBiologieElementCliniquePertinent.intervallesReference +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.referenceRange.observationRange +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultat-examens-de-biologie-element-clinique-pertinent" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// identifiant +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.id +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// code de l'analyse ou de l'observation +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.code +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.code +* group[=].element[=].target.equivalence = #equivalent +// date et heure de ce résultat +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.effectiveTime +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// valeur du résultat +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.value +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.value[x] +* group[=].element[=].target.equivalence = #equivalent +// interprétation du résultat +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.interpretationCode +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.interpretation +* group[=].element[=].target.equivalence = #equivalent +// méthode ou technique utilisée +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.methodCode +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.method +* group[=].element[=].target.equivalence = #equivalent +// subject +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.subject +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.subject +* group[=].element[=].target.equivalence = #equivalent +// laboratoireExecutant +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.performer +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:laboratoireExecutant +* group[=].element[=].target.equivalence = #equivalent +// author +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.author +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent +// valideur +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:validateurResultat +* group[=].element[=].target.equivalence = #equivalent +// responsable +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:responsableExamen +* group[=].element[=].target.equivalence = #equivalent +// dispositifAutomatique +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:dispositifAuto +* group[=].element[=].target.equivalence = #equivalent +// prelevement +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.entryRelationship:frPrelevement +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen +* group[=].element[=].target.equivalence = #equivalent +// commentaire +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.note +* group[=].element[=].target.equivalence = #equivalent +// resultatsAnterieurs +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.entryRelationship.observation +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.extension:workflow-supportingInfo +* group[=].element[=].target.equivalence = #equivalent +// intervallesReference +* group[=].element[+].code = #FRCDAResultatExamensDeBiologieElementCliniquePertinent.referenceRange.observationRange +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.valueRange +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..a09f52d --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRLaboratoryResultsLMCDAFHIR.fsh @@ -0,0 +1,153 @@ +Instance: FRLaboratoryResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatsExamensBiologieMedicale → FRCDAResultatExamensDeBiologie → FRObservationLaboratoryReportResultsDocument" +Description: "Mapping des éléments du modèle métier FRLMResultatsExamensBiologieMedicale vers le profil CDA FRCDAResultatExamensDeBiologie, puis vers le profil FHIR FRObservationLaboratoryReportResultsDocument." +* title = "Mapping Métier/CDA/FHIR : \"Résultats d'examens de biologie médicale\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-examens-biologie-medicale" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultat-examens-de-biologie-medicale" +// Élément racine +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.code +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.code +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.statut +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.statusCode +* group[=].element[=].target.equivalence = #equivalent +// dateResultat +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.dateResultat +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Sujet non humain +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.choice:FRLMSujetNonHumain +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.subject +* group[=].element[=].target.equivalence = #equivalent +// Patient avec sujet non humain +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.choice:FRLMPatientSujetNonHumain +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.subject +* group[=].element[=].target.equivalence = #equivalent +// laboratoireExecutant +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.laboratoireExecutant +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.performer +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.auteur +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.author +* group[=].element[=].target.equivalence = #equivalent +// valideur +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.valideur +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.participant +* group[=].element[=].target.display = "Authenticator (CDA participant) : participant/@typeCode='AUTHEN'" +* group[=].element[=].target.equivalence = #equivalent +// responsable +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.responsable +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.participant +* group[=].element[=].target.display = "Responsible Party (CDA participant) : participant/@typeCode='RESP'" +* group[=].element[=].target.equivalence = #equivalent +// dispositifAutomatique +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.dispositifAutomatique +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.participant +* group[=].element[=].target.display = "Device (CDA participant) : participant/@typeCode='DEV'" +* group[=].element[=].target.equivalence = #equivalent +// prelevement +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.prelevement +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.entryRelationship:frPrelevement +* group[=].element[=].target.equivalence = #equivalent +// batterieExamensDeBiologieMedicale +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.batterieExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.entryRelationship:frBatterieExamensDeBiologieMedicale +* group[=].element[=].target.equivalence = #equivalent +// isolatMicrobiologique +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.isolatMicrobiologique +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.entryRelationship:frIsolatMicrobiologique +* group[=].element[=].target.equivalence = #equivalent +// resultatElementCliniquePertinent +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.resultatElementCliniquePertinent +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.entryRelationship:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.equivalence = #equivalent +// imageIllustrative +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.imageIllustrative +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.entryRelationship:frImageIllustrative +* group[=].element[=].target.equivalence = #equivalent +// commentaire +* group[=].element[+].code = #FRLMResultatsExamensBiologieMedicale.commentaire +* group[=].element[=].target.code = #FRCDAResultatExamensDeBiologie.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultat-examens-de-biologie-medicale" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// Élément racine +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.code +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.code +* group[=].element[=].target.equivalence = #equivalent +// statusCode +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.statusCode +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.status +* group[=].element[=].target.equivalence = #equivalent +// effectiveTime +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.effectiveTime +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// subject +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.subject +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.subject +* group[=].element[=].target.equivalence = #equivalent +// laboratoireExecutant +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.performer +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:laboratoireExecutant +* group[=].element[=].target.equivalence = #equivalent +// author +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.author +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent +// valideur +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:validateurResultat +* group[=].element[=].target.display = "Authenticator (CDA participant) : participant/@typeCode='AUTHEN'" +* group[=].element[=].target.equivalence = #equivalent +// responsable +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:responsableExamen +* group[=].element[=].target.display = "Responsible Party (CDA participant) : participant/@typeCode='RESP'" +* group[=].element[=].target.equivalence = #equivalent +// dispositifAutomatique +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.participant +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.performer.extension:dispositifAuto +* group[=].element[=].target.display = "Device (CDA participant) : participant/@typeCode='DEV'" +* group[=].element[=].target.equivalence = #equivalent +// prelevement +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.entryRelationship:frPrelevement +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen +* group[=].element[=].target.equivalence = #equivalent +// commentaire +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.note +* group[=].element[=].target.equivalence = #equivalent +// batterie examens de biologie médicale +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.entryRelationship:frBatterieExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.hasMember:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// isolat microbiologique +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.entryRelationship:frIsolatMicrobiologique +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.hasMember:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// resultat element clinique pertinent +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.entryRelationship:frResultatExamensDeBiologieElementCliniquePertinent +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.hasMember:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// image illustrative +* group[=].element[+].code = #FRCDAResultatExamensDeBiologie.entryRelationship:frImageIllustrative +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.derivedFrom:FRMediaDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMediaLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMediaLMCDAFHIR.fsh new file mode 100644 index 0000000..91e4e3d --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMediaLMCDAFHIR.fsh @@ -0,0 +1,136 @@ +// Instance ConceptMap: correspondances entre codes CDA (type média) et FHIR Media.type +Instance: FRMediaLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMImageIllustrative → FRCDAImageIllustrative → FRMediaDocument" +Description: "Mapping des éléments du modèle métier FRLMImageIllustrative vers le profil CDA FRCDAImageIllustrative, puis vers le profil FHIR FRMediaDocument." +* title = "Mapping Métier/CDA/FHIR : \"Image illustrative\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-image-illustrative" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-image-illustrative" +// Élément racine +* group[=].element[+].code = #FRLMImageIllustrative +* group[=].element[=].target.code = #FRCDAImageIllustrative +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l’entrée +* group[=].element[+].code = #FRLMImageIllustrative.identifiant +* group[=].element[=].target.code = #FRCDAImageIllustrative.id +* group[=].element[=].target.equivalence = #equivalent +// Langue +* group[=].element[+].code = #FRLMImageIllustrative.langue +* group[=].element[=].target.code = #FRCDAImageIllustrative.languageCode +* group[=].element[=].target.equivalence = #equivalent +// Image encodée en Base64 +* group[=].element[+].code = #FRLMImageIllustrative.imageEncodee +* group[=].element[=].target.code = #FRCDAImageIllustrative.value +* group[=].element[=].target.equivalence = #equivalent +// mediaType +* group[=].element[+].code = #FRLMImageIllustrative.mediaType +* group[=].element[=].target.code = #FRCDAImageIllustrative.value.mediaType +* group[=].element[=].target.equivalence = #equivalent +// representation +* group[=].element[+].code = #FRLMImageIllustrative.representation +* group[=].element[=].target.code = #FRCDAImageIllustrative.value.representation +* group[=].element[=].target.equivalence = #equivalent +// subject +* group[=].element[+].code = #FRLMImageIllustrative.subject +* group[=].element[=].target.code = #FRCDAImageIllustrative.subject +* group[=].element[=].target.equivalence = #equivalent +// specimen +* group[=].element[+].code = #FRLMImageIllustrative.specimen +* group[=].element[=].target.code = #FRCDAImageIllustrative.specimen +* group[=].element[=].target.equivalence = #equivalent +// performer +* group[=].element[+].code = #FRLMImageIllustrative.performer +* group[=].element[=].target.code = #FRCDAImageIllustrative.performer +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMImageIllustrative.auteur +* group[=].element[=].target.code = #FRCDAImageIllustrative.author +* group[=].element[=].target.equivalence = #equivalent +// informant +* group[=].element[+].code = #FRLMImageIllustrative.informant +* group[=].element[=].target.code = #FRCDAImageIllustrative.informant +* group[=].element[=].target.equivalence = #equivalent +// participant +* group[=].element[+].code = #FRLMImageIllustrative.participant +* group[=].element[=].target.code = #FRCDAImageIllustrative.participant +* group[=].element[=].target.equivalence = #equivalent +// entryRelationship +* group[=].element[+].code = #FRLMImageIllustrative.entryRelationship +* group[=].element[=].target.code = #FRCDAImageIllustrative.entryRelationship +* group[=].element[=].target.equivalence = #equivalent +// reference +* group[=].element[+].code = #FRLMImageIllustrative.reference +* group[=].element[=].target.code = #FRCDAImageIllustrative.reference +* group[=].element[=].target.equivalence = #equivalent +// precondition +* group[=].element[+].code = #FRLMImageIllustrative.precondition +* group[=].element[=].target.code = #FRCDAImageIllustrative.precondition +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-image-illustrative" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-media-document" +// Élément racine +* group[=].element[+].code = #FRCDAImageIllustrative +* group[=].element[=].target.code = #FRMediaDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAImageIllustrative.id +* group[=].element[=].target.code = #FRMediaDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// language +* group[=].element[+].code = #FRCDAImageIllustrative.languageCode +* group[=].element[=].target.code = #FRMediaDocument.content.language +* group[=].element[=].target.equivalence = #equivalent +// data +* group[=].element[+].code = #FRCDAImageIllustrative.value +* group[=].element[=].target.code = #FRMediaDocument.content.data +* group[=].element[=].target.equivalence = #equivalent +// Type de média +* group[=].element[+].code = #FRCDAImageIllustrative.value.mediaType +* group[=].element[=].target.code = #FRMediaDocument.content.contentType +* group[=].element[=].target.equivalence = #equivalent +// Pas besoin de fixer representation : en FHIR c’est implicite via le type de l’Attachment ou la présence d’un data Base64. +* group[=].element[+].code = #FRCDAImageIllustrative.value.representation +* group[=].element[=].target.equivalence = #unmatched +// Sujet +* group[=].element[+].code = #FRCDAImageIllustrative.subject +* group[=].element[=].target.code = #FRMediaDocument.subject:Patient +* group[=].element[=].target.equivalence = #equivalent +// Specimen +* group[=].element[+].code = #FRCDAImageIllustrative.specimen +* group[=].element[=].target.code = #FRMediaDocument.subject:Specimen +* group[=].element[=].target.equivalence = #equivalent +// Performer +* group[=].element[+].code = #FRCDAImageIllustrative.performer +* group[=].element[=].target.code = #FRMediaDocument.operator.extension:performer +* group[=].element[=].target.equivalence = #equivalent +// author +* group[=].element[+].code = #FRCDAImageIllustrative.author +* group[=].element[=].target.code = #FRMediaDocument.operator.extension:author +* group[=].element[=].target.equivalence = #equivalent +// informant +* group[=].element[+].code = #FRCDAImageIllustrative.informant +* group[=].element[=].target.code = #FRMediaDocument.operator.extension:informant +* group[=].element[=].target.equivalence = #equivalent +// participant +* group[=].element[+].code = #FRCDAImageIllustrative.participant +* group[=].element[=].target.code = #FRMediaDocument.operator.extension:participant +* group[=].element[=].target.equivalence = #equivalent +// entryRelationship (Acte ou plan de soins à l'origine de l'image) +* group[=].element[+].code = #FRCDAImageIllustrative.entryRelationship +* group[=].element[=].target.code = #FRMediaDocument.basedOn +* group[=].element[=].target.equivalence = #equivalent +// reference +* group[=].element[+].code = #FRCDAImageIllustrative.reference +* group[=].element[=].target.code = #FRMediaDocument.partOf +* group[=].element[=].target.equivalence = #equivalent +// Contexte ou justification de l'image (précondition) +* group[=].element[+].code = #FRCDAImageIllustrative.precondition +* group[=].element[=].target.code = #FRMediaDocument.reasonCode +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationAdministrationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationAdministrationLMCDAFHIR.fsh new file mode 100644 index 0000000..e2b5c08 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationAdministrationLMCDAFHIR.fsh @@ -0,0 +1,162 @@ +Instance: FRMedicationAdministrationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitement → FRCDATraitement → FRMedicationAdministrationDocument" +Description: "Mapping des éléments du modèle métier FRLMTraitement vers le profil CDA FRCDATraitement, puis vers le profil FHIR FRMedicationAdministrationDocument." +* title = "Mapping Métier/CDA/FHIR : \"Traitement déjà administré\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement" +// Élément racine +* group[=].element[+].code = #FRLMTraitement +* group[=].element[=].target.code = #FRCDATraitement +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMTraitement.identifiant +* group[=].element[=].target.code = #FRCDATraitement.id +* group[=].element[=].target.equivalence = #equivalent +// Acte ou situation +* group[=].element[+].code = #FRLMTraitement.code +* group[=].element[=].target.code = #FRCDATraitement.code +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative +* group[=].element[+].code = #FRLMTraitement.note +* group[=].element[=].target.code = #FRCDATraitement.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMTraitement.status +* group[=].element[=].target.code = #FRCDATraitement.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Durée du traitement +* group[=].element[+].code = #FRLMTraitement.occurancePeriod +* group[=].element[=].target.code = #FRCDATraitement.effectiveTime[not(@operator='A')] +* group[=].element[=].target.equivalence = #equivalent +// Fréquence d'administration +* group[=].element[+].code = #FRLMTraitement.occuranceDateTim +* group[=].element[=].target.code = #FRCDATraitement.effectiveTime[@operator='A'] +* group[=].element[=].target.equivalence = #equivalent +// Dosage +* group[=].element[+].code = #FRLMTraitement.dosage +* group[=].element[=].target.equivalence = #unmatched +// Voie d'administration +* group[=].element[+].code = #FRLMTraitement.dosage.route +* group[=].element[=].target.code = #FRCDATraitement.routeCode +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRLMTraitement.dosage.site +* group[=].element[=].target.code = #FRCDATraitement.approachSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Dose à administrer +* group[=].element[+].code = #FRLMTraitement.dosage.dose +* group[=].element[=].target.code = #FRCDATraitement.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRLMTraitement.dosage.rate[x] +* group[=].element[=].target.code = #FRCDATraitement.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// Dose maximale +* group[=].element[+].code = #FRLMTraitement.dosage.doseMaximale +* group[=].element[=].target.code = #FRCDATraitement.maxDoseQuantity +* group[=].element[=].target.equivalence = #equivalent +// médicament +* group[=].element[+].code = #FRLMTraitement.medicament +* group[=].element[=].target.code = #FRCDATraitement.consumable +* group[=].element[=].target.equivalence = #equivalent +// Motif du traitement +* group[=].element[+].code = #FRLMTraitement.reason +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frReferenceInterne +* group[=].element[=].target.equivalence = #equivalent +// Prescription +* group[=].element[+].code = #FRLMTraitement.prescription +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frPrescription +* group[=].element[=].target.equivalence = #equivalent +// Traitement subordonné +* group[=].element[+].code = #FRLMTraitement.subordinateTreatment +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frTraitementSubordonne +* group[=].element[=].target.equivalence = #equivalent +// Instructions au patient +* group[=].element[+].code = #FRLMTraitement.instructionsPatient +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frInstructionsAuPatient +* group[=].element[=].target.equivalence = #equivalent +// Précondition +* group[=].element[+].code = #FRLMTraitement.precondition +* group[=].element[=].target.code = #FRCDATraitement.precondition +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-administration-document" +// élément racine +* group[=].element[+].code = #FRCDATraitement +* group[=].element[=].target.code = #FRMedicationAdministrationDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDATraitement.id +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Acte ou situation +* group[=].element[+].code = #FRCDATraitement.code +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.category +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative +* group[=].element[+].code = #FRCDATraitement.text +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.category.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDATraitement.statusCode +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Durée du traitement +* group[=].element[+].code = #FRCDATraitement.effectiveTime[not(@operator='A')] +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// Fréquence d'administration +* group[=].element[+].code = #FRCDATraitement.effectiveTime[@operator='A'] +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.extension:medicationAdministration-occurence-r5 +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRCDATraitement.routeCode +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.route +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRCDATraitement.approachSiteCode +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.site +* group[=].element[=].target.equivalence = #equivalent +// Dose à administrer +* group[=].element[+].code = #FRCDATraitement.doseQuantity +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.dose +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRCDATraitement.rateQuantity +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.rate[x] +* group[=].element[=].target.equivalence = #equivalent +// Dose maximale +* group[=].element[+].code = #FRCDATraitement.maxDoseQuantity +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.rateRatio +* group[=].element[=].target.equivalence = #equivalent +// Médicament +* group[=].element[+].code = #FRCDATraitement.consumable +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.medication:FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent +// Motif du traitement +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frReferenceInterne +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.reasonReference +* group[=].element[=].target.equivalence = #equivalent +// Prescription +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frPrescription +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.request +* group[=].element[=].target.equivalence = #equivalent +// Traitement subordonné +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frTraitementSubordonne +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.medication:FRMedicationsCombinaisonDocument +* group[=].element[=].target.equivalence = #equivalent +// Instructions au patient +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frInstructionsAuPatient +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.dosage.text +* group[=].element[=].target.equivalence = #equivalent +// Précondition +* group[=].element[+].code = #FRCDATraitement.precondition +* group[=].element[=].target.code = #FRMedicationAdministrationDocument.note +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationDispenseLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationDispenseLMCDAFHIR.fsh new file mode 100644 index 0000000..fd0e401 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationDispenseLMCDAFHIR.fsh @@ -0,0 +1,110 @@ +Instance: FRMedicationDispenseLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitementDispense → FRCDATraitementDispense → FRMedicationDispenseDocument" +Description: "Mapping des éléments du modèle métier FRLMTraitementDispense vers le profil CDA FRCDATraitementDispense, puis vers le profil FHIR FRMedicationDispenseDocument." +* title = "Mapping Métier/CDA/FHIR : \"Traitement dispensé\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement-dispense" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-dispense" +// Élément racine +* group[=].element[+].code = #FRLMTraitementDispense +* group[=].element[=].target.code = #FRCDATraitementDispense +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMTraitementDispense.identifiant +* group[=].element[=].target.code = #FRCDATraitementDispense.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMTraitementDispense.code +* group[=].element[=].target.code = #FRCDATraitementDispense.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMTraitementDispense.description +* group[=].element[=].target.code = #FRCDATraitementDispense.text +* group[=].element[=].target.equivalence = #equivalent +// quantité +* group[=].element[+].code = #FRLMTraitementDispense.quantite +* group[=].element[=].target.code = #FRCDATraitementDispense.quantity +* group[=].element[=].target.equivalence = #equivalent +// médicament délivré +* group[=].element[+].code = #FRLMTraitementDispense.medicamentDelivre +* group[=].element[=].target.code = #FRCDATraitementDispense.product:frProduitDeSante +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRLMTraitementDispense.referencePrescription +* group[=].element[=].target.code = #FRCDATraitementDispense.entryRelationship:frReferenceItemPrescription +* group[=].element[=].target.equivalence = #equivalent +// Posologie +* group[=].element[+].code = #FRLMTraitementDispense.traitement +* group[=].element[=].target.code = #FRCDATraitementDispense.entryRelationship:frTraitement +* group[=].element[=].target.equivalence = #equivalent +// Instructions au patient +* group[=].element[+].code = #FRLMTraitementDispense.instructionsPatient +* group[=].element[=].target.code = #FRCDATraitementDispense.entryRelationship.frInstructionsAuPatient +* group[=].element[=].target.equivalence = #equivalent +// Notes du dispensateur +* group[=].element[+].code = #FRLMTraitementDispense.notesDispensateur +* group[=].element[=].target.code = #FRCDATraitementDispense.entryRelationship.frNotesDuDispensateur +* group[=].element[=].target.equivalence = #equivalent +// Substitution +* group[=].element[+].code = #FRLMTraitementDispense.substitution +* group[=].element[=].target.code = #FRCDATraitementDispense.entryRelationship.frActeSubstitution +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-dispense" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-dispense-document" +// Élément racine +* group[=].element[+].code = #FRCDATraitementDispense +* group[=].element[=].target.code = #FRMedicationDispenseDocument +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRCDATraitementDispense.id +* group[=].element[=].target.code = #FRMedicationDispenseDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRCDATraitementDispense.code +* group[=].element[=].target.code = #FRMedicationDispenseDocument.type +* group[=].element[=].target.equivalence = #equivalent +//description narrative +* group[=].element[+].code = #FRCDATraitementDispense.text +* group[=].element[=].target.code = #FRMedicationDispenseDocument.type.text +* group[=].element[=].target.equivalence = #equivalent +// quantité +* group[=].element[+].code = #FRCDATraitementDispense.quantity +* group[=].element[=].target.code = #FRMedicationDispenseDocument.quantity +* group[=].element[=].target.equivalence = #equivalent +// médicament délivré +* group[=].element[+].code = #FRCDATraitementDispense.product:frProduitDeSante +* group[=].element[=].target.code = #FRMedicationDispenseDocument.medication[x] +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRCDATraitementDispense.entryRelationship:frReferenceItemPrescription +* group[=].element[=].target.code = #FRMedicationDispenseDocument.authorizingPrescription +* group[=].element[=].target.equivalence = #equivalent +// Posologie +* group[=].element[+].code = #FRCDATraitementDispense.entryRelationship:frTraitement +* group[=].element[=].target.code = #FRMedicationDispenseDocument.supportingInformation +* group[=].element[=].target.equivalence = #equivalent +// Instructions au patient +* group[=].element[+].code = #FRCDATraitementDispense.entryRelationship:frInstructionsAuPatient + ///// Target pour la forme non codée +* group[=].element[=].target[+].code = #FRMedicationDispenseDocument.dosageInstruction.patientInstruction +* group[=].element[=].target[=].equivalence = #equivalent + //// Target pour la forme codée +* group[=].element[=].target[+].code = #FRMedicationDispenseDocument.dosageInstruction.additionalInstruction +* group[=].element[=].target[=].equivalence = #equivalent +// Instructions du dipensateur +* group[=].element[+].code = #FRCDATraitementDispense.entryRelationship:frNotesDuDispensateur +* group[=].element[=].target.code = #FRMedicationDispenseDocument.dosageInstruction.text +* group[=].element[=].target.equivalence = #equivalent +// substitution +* group[=].element[+].code = #FRCDATraitementDispense.entryRelationship:frActeSubstitution +* group[=].element[=].target.code = #FRMedicationDispenseDocument.substitution +* group[=].element[=].target.equivalence = #equivalent + + + diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationLMCDAFHIR.fsh new file mode 100644 index 0000000..e98383c --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationLMCDAFHIR.fsh @@ -0,0 +1,111 @@ +Instance: FRMedicationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMProduitSante → FRCDAProduitDeSante → FRMedicationDocument" +Description: "Mapping des éléments du modèle métier FRLMProduitSante vers le profil CDA FRCDAProduitDeSante, puis vers le profil FHIR FRMedicationDocument." +* title = "Mapping Métier/CDA/FHIR : \"Produit de santé\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-produit-sante" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-produit-de-sante" +// Élément racine +* group[=].element[+].code = #FRLMProduitSante +* group[=].element[=].target.code = #FRCDAProduitDeSante +* group[=].element[=].target.equivalence = #equivalent +// Médicament +* group[=].element[+].code = #FRLMProduitSante.medicament +* group[=].element[=].target.code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial +* group[=].element[=].target.equivalence = #equivalent +// Code du produit de santé +* group[=].element[+].code = #FRLMProduitSante.medicament.code +* group[=].element[=].target.code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.code +* group[=].element[=].target.equivalence = #equivalent +// Produit de santé / Autre codification +* group[=].element[+].code = #FRLMProduitSante.medicament.code.autreCodification +* group[=].element[=].target.code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.code.translation +* group[=].element[=].target.equivalence = #equivalent +// Nom du produit +* group[=].element[+].code = #FRLMProduitSante.nomProduit +* group[=].element[=].target.code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.name +* group[=].element[=].target.equivalence = #equivalent +// forme galénique +* group[=].element[+].code = #FRLMProduitSante.formeGalenique +* group[=].element[=].target.code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.pharm:formCode +* group[=].element[=].target.equivalence = #equivalent +// numéro du lot +* group[=].element[+].code = #FRLMProduitSante.numeroLot +* group[=].element[=].target.code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.lotNumberText +* group[=].element[=].target.equivalence = #equivalent +// Date d'expiration du produit' +* group[=].element[+].code = #FRLMProduitSante.dateExpiration +* group[=].element[=].target.code = #FRCDAProduitDeSante.pharm:expirationTime +* group[=].element[=].target.equivalence = #equivalent +// conditionnement +* group[=].element[+].code = #FRLMProduitSante.conditionnement +* group[=].element[=].target.code = #FRCDAProduitDeSante.pharm:asContent +* group[=].element[=].target.equivalence = #equivalent +// Code de regroupement ATC +* group[=].element[+].code = #FRLMProduitSante.equivalentGenerique +* group[=].element[=].target.code = #FRCDAProduitDeSante.pharm:asSpecializedKind +* group[=].element[=].target.equivalence = #equivalent +// substance Active +* group[=].element[+].code = #FRLMProduitSante.substanceActive +* group[=].element[=].target.code = #FRCDAProduitDeSante.pharm:ingredient +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-produit-de-sante" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-document" +// Élément racine +* group[=].element[+].code = #FRCDAProduitDeSante +* group[=].element[=].target.code = #FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent +// Code du produit de santé +* group[=].element[+].code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.code +* group[=].element[=].target.code = #FRMedicationDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Produit de santé / Autre codification +* group[=].element[+].code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.code.translation +* group[=].element[=].target.code = #FRMedicationDocument.code.coding +* group[=].element[=].target.equivalence = #equivalent +// Nom du produit +* group[=].element[+].code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.name +* group[=].element[=].target.code = #FRMedicationDocument.extension:ihe-ext-medication-productname +* group[=].element[=].target.equivalence = #equivalent +// forme galénique +* group[=].element[+].code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.pharm:formCode +* group[=].element[=].target.code = #FRMedicationDocument.form +* group[=].element[=].target.equivalence = #equivalent +// numéro du lot +* group[=].element[+].code = #FRCDAProduitDeSante.manufacturedProduct.manufacturedMaterial.lotNumberText +* group[=].element[=].target.code = #FRMedicationDocument.batch.lotNumber +* group[=].element[=].target.equivalence = #equivalent +// Date d'expiration du produit' +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:expirationTime +* group[=].element[=].target.code = #FRMedicationDocument.batch.expirationDate +* group[=].element[=].target.equivalence = #equivalent +// conditionnement +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:asContent +* group[=].element[=].target.code = #FRMedicationDocument.extension:ihe-ext-medication-characteristic +* group[=].element[=].target.equivalence = #equivalent +// Code de regroupement ATC +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:asSpecializedKind +* group[=].element[=].target.code = #FRMedicationDocument.extension:ihe-ext-medication-classification +* group[=].element[=].target.equivalence = #equivalent +// substance Active +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:ingredient +* group[=].element[=].target.code = #FRMedicationDocument.ingredient:substanceActive +* group[=].element[=].target.equivalence = #equivalent +// dosage de la substance Active +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:ingredient.pharm:quantity +* group[=].element[=].target.code = #FRMedicationDocument.ingredient:substanceActive.strength +* group[=].element[=].target.equivalence = #equivalent +// Code SMS de la substance active +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:ingredient.pharm:ingredient.pharm:code +* group[=].element[=].target.code = #FRMedicationDocument.ingredient:substanceActive.itemCodeableConcept +* group[=].element[=].target.equivalence = #equivalent +// nom de la substance active +* group[=].element[+].code = #FRCDAProduitDeSante.pharm:ingredient.pharm:ingredient.pharm:name +* group[=].element[=].target.code = #FRMedicationDocument.ingredient:substanceActive.itemCodeableConcept.text +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationRequestLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationRequestLMCDAFHIR.fsh new file mode 100644 index 0000000..f4a8d41 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationRequestLMCDAFHIR.fsh @@ -0,0 +1,254 @@ +Instance: FRMedicationRequestLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitementPrescrit → FRCDATraitementPrescrit → FRMedicationRequestDocument" +Description: "Mapping des éléments du modèle métier FRLMTraitementPrescrit vers l'entrée CDA FRCDATraitementPrescrit, puis vers le profil FHIR FRMedicationRequestDocument." +* title = "Mapping Métier/CDA/FHIR : Traitement prescrit" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement-prescrit" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-prescrit" +// Élément racine +* group[=].element[+].code = #FRLMTraitementPrescrit +* group[=].element[=].target.code = #FRCDATraitementPrescrit +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMTraitementPrescrit.identifiant +* group[=].element[=].target.code = #FRCDATraitementPrescrit.id +* group[=].element[=].target.equivalence = #equivalent +// Code / Acte ou situation +* group[=].element[+].code = #FRLMTraitementPrescrit.code +* group[=].element[=].target.code = #FRCDATraitementPrescrit.code +* group[=].element[=].target.equivalence = #equivalent +// Description / texte narratif +* group[=].element[+].code = #FRLMTraitementPrescrit.description +* group[=].element[=].target.code = #FRCDATraitementPrescrit.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMTraitementPrescrit.status +* group[=].element[=].target.code = #FRCDATraitementPrescrit.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Durée du traitement +* group[=].element[+].code = #FRLMTraitementPrescrit.dureeTraitement +* group[=].element[=].target.code = #FRCDATraitementPrescrit.effectiveTime[not(@operator='A')] +* group[=].element[=].target.equivalence = #equivalent +// Fréquence d'administration +* group[=].element[+].code = #FRLMTraitementPrescrit.frequenceAdministration +* group[=].element[=].target.code = #FRCDATraitementPrescrit.effectiveTime[@operator='A'] +* group[=].element[=].target.equivalence = #equivalent +// Nombre de renouvellements +* group[=].element[+].code = #FRLMTraitementPrescrit.nombreRenouvellement +* group[=].element[=].target.code = #FRCDATraitementPrescrit.repeatNumber +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRLMTraitementPrescrit.voieAdministration +* group[=].element[=].target.code = #FRCDATraitementPrescrit.routeCode +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique +* group[=].element[+].code = #FRLMTraitementPrescrit.regionAnatomique +* group[=].element[=].target.code = #FRCDATraitementPrescrit.approachSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Dose +* group[=].element[+].code = #FRLMTraitementPrescrit.dose +* group[=].element[=].target.code = #FRCDATraitementPrescrit.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRLMTraitementPrescrit.rythmeAdministration +* group[=].element[=].target.code = #FRCDATraitementPrescrit.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// Dose maximale +* group[=].element[+].code = #FRLMTraitementPrescrit.doseMaximale +* group[=].element[=].target.code = #FRCDATraitementPrescrit.maxDoseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Produit de santé +* group[=].element[+].code = #FRLMTraitementPrescrit.produitSante +* group[=].element[=].target.code = #FRCDATraitementPrescrit.consumable +* group[=].element[=].target.equivalence = #equivalent +// Prescripteur +* group[=].element[+].code = #FRLMTraitementPrescrit.prescripteur +* group[=].element[=].target.code = #FRCDATraitementPrescrit.author +* group[=].element[=].target.equivalence = #equivalent +// Auteur du document prescription +* group[=].element[+].code = #FRLMTraitementPrescrit.auteur +* group[=].element[=].target.code = #FRCDATraitementPrescrit.author +* group[=].element[=].target.equivalence = #equivalent +// Motif du traitement +* group[=].element[+].code = #FRLMTraitementPrescrit.motifTraitement +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frReferenceInterne +* group[=].element[=].target.equivalence = #equivalent +// traitement prescrit subordonné +* group[=].element[+].code = #FRLMTraitementPrescrit.traitementPrescritSubordonnee +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frTraitementPrescritSubordonnee +* group[=].element[=].target.equivalence = #equivalent +// reference item plan traitement +* group[=].element[+].code = #FRLMTraitementPrescrit.referenceItemPlanTraitement +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frReferenceItemPlanTraitement +* group[=].element[=].target.equivalence = #equivalent +// Instructions patient +* group[=].element[+].code = #FRLMTraitementPrescrit.instructionsPatient +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frInstructionsAuPatient +* group[=].element[=].target.equivalence = #equivalent +// Instructions dispensateur +* group[=].element[+].code = #FRLMTraitementPrescrit.instructionsDispensateur +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frInstructionsAuDispensateur +* group[=].element[=].target.equivalence = #equivalent +// Quantité produit +* group[=].element[+].code = #FRLMTraitementPrescrit.quantiteProduit +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frQuantiteDeProduit +* group[=].element[=].target.equivalence = #equivalent +// Autorisation substitution +* group[=].element[+].code = #FRLMTraitementPrescrit.autorisationSubstitution +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frAutorisationSubstitution +* group[=].element[=].target.equivalence = #equivalent +// Periode renouvellement +* group[=].element[+].code = #FRLMTraitementPrescrit.periodeRenouvellement +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frPeriodeDeRenouvellement +* group[=].element[=].target.equivalence = #equivalent +// En rapport avec ALD / accident travail / prevention / non remboursable / hors AMM +* group[=].element[+].code = #FRLMTraitementPrescrit.enRapportAvecALD +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frEnRapportAvecALD +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMTraitementPrescrit.enRapportAvecAccidentTravail +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frEnRapportAvecAccidentTravail +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMTraitementPrescrit.enRapportAvecPrevention +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frEnRapportAvecPrevention +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMTraitementPrescrit.nonRemboursable +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frNonRemboursable +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMTraitementPrescrit.horsAMM +* group[=].element[=].target.code = #FRCDATraitementPrescrit.entryRelationship:frHorsAMM +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRLMTraitementPrescrit.referencePrescription +* group[=].element[=].target.code = #FRCDATraitementPrescrit.frReferenceInterne.externalDocument +* group[=].element[=].target.equivalence = #equivalent +// Précondition à l'utilisation du médicament +* group[=].element[+].code = #FRLMTraitementPrescrit.precondition +* group[=].element[=].target.code = #FRCDATraitementPrescrit.precondition +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-prescrit" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-request-document" +// élément racine +* group[=].element[+].code = #FRCDATraitementPrescrit +* group[=].element[=].target.code = #FRMedicationRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRCDATraitementPrescrit.id +* group[=].element[=].target.code = #FRMedicationRequestDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRCDATraitementPrescrit.code +* group[=].element[=].target.equivalence = #unmatched +// text +* group[=].element[+].code = #FRCDATraitementPrescrit.text +* group[=].element[=].target.code = #FRMedicationRequestDocument.note +* group[=].element[=].target.equivalence = #equivalent +// status +* group[=].element[+].code = #FRCDATraitementPrescrit.statusCode +* group[=].element[=].target.code = #FRMedicationRequestDocument.status +* group[=].element[=].target.equivalence = #equivalent +// durée de traitement +* group[=].element[+].code = #FRCDATraitementPrescrit.effectiveTime[not(@operator='A')] +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.timing.repeat.boundsPeriod +* group[=].element[=].target.equivalence = #equivalent +// fréquence de traitement +* group[=].element[+].code = #FRCDATraitementPrescrit.effectiveTime[@operator='A'] +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.timing.repeat.frequency +* group[=].element[=].target.equivalence = #equivalent +// nombre de renouvellement +* group[=].element[+].code = #FRCDATraitementPrescrit.repeatNumber +* group[=].element[=].target.code = #FRMedicationRequestDocument.dispenseRequest.numberOfRepeatsAllowed +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRCDATraitementPrescrit.routeCode +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.route +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique +* group[=].element[+].code = #FRCDATraitementPrescrit.approachSiteCode +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.site +* group[=].element[=].target.equivalence = #equivalent +// Dose à administrer +* group[=].element[+].code = #FRCDATraitementPrescrit.doseQuantity +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.doseAndRate.doseRange +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRCDATraitementPrescrit.rateQuantity +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.doseAndRate.rateRange +* group[=].element[=].target.equivalence = #equivalent +// Dose maximale +* group[=].element[+].code = #FRCDATraitementPrescrit.maxDoseQuantity +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.maxDosePerPeriod +* group[=].element[=].target.equivalence = #equivalent +// Produit de santé +* group[=].element[+].code = #FRCDATraitementPrescrit.consumable +* group[=].element[=].target.code = #FRMedicationRequestDocument.medication:FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent +// prescripteur +* group[=].element[+].code = #FRCDATraitementPrescrit.author +* group[=].element[=].target.code = #FRMedicationRequestDocument.requester +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRCDATraitementPrescrit.author +* group[=].element[=].target.code = #FRMedicationRequestDocument.extension:FRActorExtension +* group[=].element[=].target.equivalence = #equivalent +// motif -> reasonReference +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frReferenceInterne +* group[=].element[=].target.code = #FRMedicationRequestDocument.reasonReference +* group[=].element[=].target.equivalence = #equivalent +// traitement prescrit subordonné +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frTraitementPrescritSubordonnee +* group[=].element[=].target.code = #FRMedicationRequestDocument.medication:FRMedicationsCombinaisonDocument +* group[=].element[=].target.equivalence = #equivalent +// reference item plan traitement +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frReferenceItemPlanTraitement +* group[=].element[=].target.code = #basedOn:FRMedicationRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// instructions au patient +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frInstructionsAuPatient +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.additionalInstruction:instructionsPatient +* group[=].element[=].target.equivalence = #equivalent +// instructions au dispensateur +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frInstructionsAuDispensateur +* group[=].element[=].target.code = #FRMedicationRequestDocument.dispenseRequest.extension:medicationRequest-dispenseRequest-dispenserInstruction-r5 +* group[=].element[=].target.equivalence = #equivalent +// quantiteProduit +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frQuantiteDeProduit +* group[=].element[=].target.code = #FRMedicationRequestDocument.dispenseRequest.quantity +* group[=].element[=].target.equivalence = #equivalent +// autorisation substitution +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frAutorisationSubstitution +* group[=].element[=].target.code = #FRMedicationRequestDocument.substitution.allowedCodeableConcept +* group[=].element[=].target.equivalence = #equivalent +// Periode renouvellement +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frPeriodeDeRenouvellement +* group[=].element[=].target.code = #FRMedicationRequestDocument.dispenseRequest.validityPeriod +* group[=].element[=].target.equivalence = #equivalent +// enRapportAvecALD / accidentTravail / prevention -> reasonReference slices +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frEnRapportAvecALD +* group[=].element[=].target.code = #FRMedicationRequestDocument.reasonReference:ald +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frEnRapportAvecAccidentTravail +* group[=].element[=].target.code = #FRMedicationRequestDocument.reasonReference:accidentTravail +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frEnRapportAvecPrevention +* group[=].element[=].target.code = #FRMedicationRequestDocument.reasonReference:prevention +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frNonRemboursable +* group[=].element[=].target.code = #FRMedicationRequestDocument.extension:FRNotCoveredExtension +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDATraitementPrescrit.entryRelationship:frHorsAMM +* group[=].element[=].target.code = #FRMedicationRequestDocument.extension:FRMedicationRequestOutOfNomenclatureExtension +* group[=].element[=].target.equivalence = #equivalent +// Référence de la prescription +* group[=].element[+].code = #FRCDATraitementPrescrit.frReferenceInterne.externalDocument +* group[=].element[=].target.code = #FRMedicationRequestDocument.instantiatesUri +* group[=].element[=].target.equivalence = #equivalent +// Précondition à l'utilisation du médicament +* group[=].element[+].code = #FRCDATraitementPrescrit.precondition +* group[=].element[=].target.code = #FRMedicationRequestDocument.dosageInstruction.additionalInstruction:precondition +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationStatementLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationStatementLMCDAFHIR.fsh new file mode 100644 index 0000000..ef652e7 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationStatementLMCDAFHIR.fsh @@ -0,0 +1,152 @@ +Instance: FRMedicationStatementLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitement → FRCDATraitement → FRMedicationStatementDocument" +Description: "Mapping des éléments du modèle métier FRLMTraitement vers la sous-entrée CDA FRCDATraitement puis vers le profil FHIR FRMedicationStatementDocument." +* title = "Mapping Métier/CDA/FHIR : \"Traitement (information rapportée par le patient)\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement" +// Élément racine +* group[=].element[+].code = #FRLMTraitement +* group[=].element[=].target.code = #FRCDATraitement +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMTraitement.identifiant +* group[=].element[=].target.code = #FRCDATraitement.id +* group[=].element[=].target.equivalence = #equivalent +// Acte ou situation +* group[=].element[+].code = #FRLMTraitement.code +* group[=].element[=].target.code = #FRCDATraitement.code +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative +* group[=].element[+].code = #FRLMTraitement.note +* group[=].element[=].target.code = #FRCDATraitement.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMTraitement.status +* group[=].element[=].target.code = #FRCDATraitement.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Durée du traitement +* group[=].element[+].code = #FRLMTraitement.occurancePeriod +* group[=].element[=].target.code = #FRCDATraitement.effectiveTime[not(@operator='A')] +* group[=].element[=].target.equivalence = #equivalent +// Fréquence d'administration +* group[=].element[+].code = #FRLMTraitement.occuranceDateTim +* group[=].element[=].target.code = #FRCDATraitement.effectiveTime[@operator='A'] +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRLMTraitement.dosage.route +* group[=].element[=].target.code = #FRCDATraitement.routeCode +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRLMTraitement.dosage.site +* group[=].element[=].target.code = #FRCDATraitement.approachSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Dose à administrer +* group[=].element[+].code = #FRLMTraitement.dosage.dose +* group[=].element[=].target.code = #FRCDATraitement.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRLMTraitement.dosage.rate[x] +* group[=].element[=].target.code = #FRCDATraitement.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// Dose maximale +* group[=].element[+].code = #FRLMTraitement.dosage.doseMaximale +* group[=].element[=].target.code = #FRCDATraitement.maxDoseQuantity +* group[=].element[=].target.equivalence = #equivalent +// médicament +* group[=].element[+].code = #FRLMTraitement.medicament +* group[=].element[=].target.code = #FRCDATraitement.consumable +* group[=].element[=].target.equivalence = #equivalent +// Motif du traitement +* group[=].element[+].code = #FRLMTraitement.reason +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frReferenceInterne +* group[=].element[=].target.equivalence = #equivalent +// Prescription +* group[=].element[+].code = #FRLMTraitement.prescription +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frPrescription +* group[=].element[=].target.equivalence = #equivalent +// Traitement subordonné +* group[=].element[+].code = #FRLMTraitement.subordinateTreatment +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frTraitementSubordonne +* group[=].element[=].target.equivalence = #equivalent +// Instructions au patient +* group[=].element[+].code = #FRLMTraitement.instructionsPatient +* group[=].element[=].target.code = #FRCDATraitement.entryRelationship:frInstructionsAuPatient +* group[=].element[=].target.equivalence = #equivalent +// Précondition +* group[=].element[+].code = #FRLMTraitement.precondition +* group[=].element[=].target.code = #FRCDATraitement.precondition +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR MedicationStatementDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-statement-document" +// Identifiant +* group[=].element[+].code = #FRCDATraitement.id +* group[=].element[=].target.code = #FRMedicationStatementDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Acte ou situation +* group[=].element[+].code = #FRCDATraitement.code +* group[=].element[=].target.code = #FRMedicationStatementDocument.category +* group[=].element[=].target.equivalence = #equivalent +// Partie narrative +* group[=].element[+].code = #FRCDATraitement.text +* group[=].element[=].target.code = #FRMedicationStatementDocument.category.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDATraitement.statusCode +* group[=].element[=].target.code = #FRMedicationStatementDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Durée du traitement +* group[=].element[+].code = #FRCDATraitement.effectiveTime[not(@operator='A')] +* group[=].element[=].target.code = #FRMedicationStatementDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// Dose déclarée +* group[=].element[+].code = #FRCDATraitement.doseQuantity +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.doseAndRate.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// Fréquence d'administration +* group[=].element[+].code = #FRCDATraitement.effectiveTime[@operator='A'] +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.timing +* group[=].element[=].target.equivalence = #equivalent +// Voie d'administration +* group[=].element[+].code = #FRCDATraitement.routeCode +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.route +* group[=].element[=].target.equivalence = #equivalent +// Région anatomique d'administration +* group[=].element[+].code = #FRCDATraitement.approachSiteCode +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.site +* group[=].element[=].target.equivalence = #equivalent +// Rythme d'administration +* group[=].element[+].code = #FRCDATraitement.rateQuantity +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.doseAndRate.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// Dose maximale +* group[=].element[+].code = #FRCDATraitement.maxDoseQuantity +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.maxDosePerPeriod +* group[=].element[=].target.equivalence = #equivalent +// médicament +* group[=].element[+].code = #FRCDATraitement.consumable +* group[=].element[=].target.code = #FRMedicationStatementDocument.medication:FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent +// Motif du traitement +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frReferenceInterne +* group[=].element[=].target.code = #FRMedicationStatementDocument.reasonReference +* group[=].element[=].target.equivalence = #equivalent +// Prescription +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frPrescription +* group[=].element[=].target.code = #FRMedicationStatementDocument.basedOn:FRMedicationRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// Instructions au patient +* group[=].element[+].code = #FRCDATraitement.entryRelationship:frInstructionsAuPatient +* group[=].element[=].target.code = #FRMedicationStatementDocument.dosage.additionalInstruction +* group[=].element[=].target.equivalence = #equivalent +// Précondition +* group[=].element[+].code = #FRCDATraitement.precondition +* group[=].element[=].target.code = #FRMedicationStatementDocument.note +* group[=].element[=].target.equivalence = #equivalent + diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonLMCDAFHIR.fsh new file mode 100644 index 0000000..187f20b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonLMCDAFHIR.fsh @@ -0,0 +1,69 @@ +Instance: FRMedicationsCombinaisonLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitementSubordonne → FRCDATraitementSubordonne → FRMedicationsCombinaisonDocument" +Description: "Mapping des éléments du modèle métier FRLMTraitementSubordonne vers la sous-entrée CDA FRCDATraitementSubordonne puis vers le profil FHIR FRMedicationsCombinaisonDocument." +* title = "Mapping Métier/CDA/FHIR : Traitement subordonné" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA (sous-entrée) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement-subordonne" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-subordonne" +// élément racine +* group[=].element[+].code = #FRLMTraitementSubordonne +* group[=].element[=].target.code = #FRCDATraitementSubordonne +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMTraitementSubordonne.identifiantTraitement +* group[=].element[=].target.code = #FRCDATraitementSubordonne.id +* group[=].element[=].target.equivalence = #equivalent +// description / texte narratif +* group[=].element[+].code = #FRLMTraitementSubordonne.descriptionTraitement +* group[=].element[=].target.code = #FRCDATraitementSubordonne.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMTraitementSubordonne.statutTraitement +* group[=].element[=].target.code = #FRCDATraitementSubordonne.statusCode +* group[=].element[=].target.equivalence = #equivalent +// fréquence d'administration / effectiveTime +* group[=].element[+].code = #FRLMTraitementSubordonne.frequenceAdministration +* group[=].element[=].target.code = #FRCDATraitementSubordonne.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Dose à administrer +* group[=].element[+].code = #FRLMTraitementSubordonne.doseAadministrer +* group[=].element[=].target.code = #FRCDATraitementSubordonne.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// rythme d'administration +* group[=].element[+].code = #FRLMTraitementSubordonne.rythmeAdministration +* group[=].element[=].target.code = #FRCDATraitementSubordonne.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// produit de santé +* group[=].element[+].code = #FRLMTraitementSubordonne.medicamentTraitement +* group[=].element[=].target.code = #FRCDAProduitDeSante.consumable +* group[=].element[=].target.equivalence = #equivalent +// précondition à l'utilisation du médicament +* group[=].element[+].code = #FRLMTraitementSubordonne.preconditionTraitement +* group[=].element[=].target.code = #FRCDATraitementSubordonne.precondition +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA (sous-entrée FRCDATraitementSubordonne) → FHIR MedicationsCombinaisonDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-subordonne" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medications-combinaison-document" + +// Identifiant +* group[=].element[+].code = #FRCDATraitementSubordonne.id +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDATraitementSubordonne.text +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRCDATraitementSubordonne.statusCode +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.status +* group[=].element[=].target.equivalence = #equivalent +// produit de santé +* group[=].element[+].code = #FRCDATraitementSubordonne.consumable +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.ingredient.itemReference:FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonRequestLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonRequestLMCDAFHIR.fsh new file mode 100644 index 0000000..8e64eed --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRMedicationsCombinaisonRequestLMCDAFHIR.fsh @@ -0,0 +1,69 @@ +Instance: FRMedicationsCombinaisonRequestLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitementPrescritSubordonne → FRCDATraitementPrescritSubordonne → FRMedicationsCombinaisonDocument" +Description: "Mapping des éléments du modèle métier FRLMTraitementPrescritSubordonne vers la sous-entrée CDA FRCDATraitementSubordonne puis vers le profil FHIR FRMedicationsCombinaisonDocument." +* title = "Mapping Métier/CDA/FHIR : Traitement prescrit subordonné" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA (sous-entrée) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement-prescrit-subordonne" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-prescrit-subordonne" +// élément racine +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.identifiant +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.id +* group[=].element[=].target.equivalence = #equivalent +// description / texte narratif +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.description +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.status +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.statusCode +* group[=].element[=].target.equivalence = #equivalent +// fréquence d'administration +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.frequenceAdministration +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Dose à administrer +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.dose +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.doseQuantity +* group[=].element[=].target.equivalence = #equivalent +// rythme d'administration +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.rythmeAdministration +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.rateQuantity +* group[=].element[=].target.equivalence = #equivalent +// produit de santé +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.produitSante +* group[=].element[=].target.code = #FRCDAProduitDeSante.consumable +* group[=].element[=].target.equivalence = #equivalent +// précondition à l'utilisation du médicament +* group[=].element[+].code = #FRLMTraitementPrescritSubordonne.precondition +* group[=].element[=].target.code = #FRCDATraitementPrescritSubordonne.precondition +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA (sous-entrée FRCDATraitementPrescritSubordonne) → FHIR MedicationsCombinaisonDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitement-prescrit-subordonne" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medications-combinaison-document" + +// Identifiant -> Medication.identifier +* group[=].element[+].code = #FRCDATraitementPrescritSubordonne.id +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDATraitementPrescritSubordonne.text +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRCDATraitementPrescritSubordonne.statusCode +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.status +* group[=].element[=].target.equivalence = #equivalent +// produit de santé +* group[=].element[+].code = #FRCDATraitementPrescritSubordonne.consumable +* group[=].element[=].target.code = #FRMedicationsCombinaisonDocument.ingredient.itemReference:FRMedicationDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNonHumanSubjectLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNonHumanSubjectLMCDAFHIR.fsh new file mode 100644 index 0000000..2ec699d --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNonHumanSubjectLMCDAFHIR.fsh @@ -0,0 +1,48 @@ +Instance: FRNonHumanSubjectLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMSujetNonHumain -> FRCDASujetNonHumain -> FRObservationLaboratoryReportResultsDocument" +Description: "Mapping des éléments du modele metier FRLMSujetNonHumain vers l'element CDA FRCDASujetNonHumain, puis vers les ressources FHIR Observation/Specimen/Substance." +* title = "Mapping Metier/CDA/FHIR : \"Sujet non humain\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-sujet-non-humain" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-sujet-non-humain" +// Element racine +* group[=].element[+].code = #FRLMSujetNonHumain +* group[=].element[=].target.code = #FRCDASujetNonHumain +* group[=].element[=].target.equivalence = #equivalent +// Sujet (non humain) +* group[=].element[+].code = #FRLMSujetNonHumain.sujet +* group[=].element[=].target.code = #FRCDASujetNonHumain.subject.relatedSubject.code +* group[=].element[=].target.equivalence = #equivalent +// Adresse (lieu de provenance) +* group[=].element[+].code = #FRLMSujetNonHumain.adresse +* group[=].element[=].target.code = #FRCDASujetNonHumain.subject.relatedSubject.addr +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR (Sujet non humain CDA --> Specimen FHIR) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-sujet-non-humain" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// Sujet non humain (specimen) +* group[=].element[+].code = #FRCDASujetNonHumain +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen +* group[=].element[=].target.equivalence = #equivalent +// Substance du sujet non humain +* group[=].element[+].code = #FRCDASujetNonHumain.subject.relatedSubject.code +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen.subject:Substance +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "specimen.subject = Reference(Substance)." + +// Groupe Mapping 3 : CDA -> FHIR (Sujet non humain CDA --> Substance FHIR) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-sujet-non-humain" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/substance" +// Sujet non humain (substance.code) +* group[=].element[+].code = #FRCDASujetNonHumain.subject.relatedSubject.code +* group[=].element[=].target.code = #Substance.code +* group[=].element[=].target.equivalence = #equivalent +// Catégorie du sujet non humain (substance.category) +* group[=].element[+].code = #FRCDASujetNonHumain.subject.relatedSubject.code.qualifier.value +* group[=].element[=].target.code = #Substance.category +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNoteLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNoteLMCDAFHIR.fsh new file mode 100644 index 0000000..b7b6b79 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRNoteLMCDAFHIR.fsh @@ -0,0 +1,56 @@ +Instance: FRNoteLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMCommentaireER -> FRCDACommentaireER -> Annotation" +Description: "Mapping des éléments du modele metier FRLMCommentaireER vers l'element CDA FRCDACommentaireER, puis vers l'element FHIR Annotation." +* title = "Mapping Metier/CDA/FHIR : \"Commentaire ER\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-commentaire-er" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-commentaire-er" +// Element racine +* group[=].element[+].code = #FRLMCommentaireER +* group[=].element[=].target.code = #FRCDACommentaireER +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entree +* group[=].element[+].code = #FRLMCommentaireER.codeCommentaireER +* group[=].element[=].target.code = #FRCDACommentaireER.code +* group[=].element[=].target.equivalence = #equivalent +// Texte du commentaire +* group[=].element[+].code = #FRLMCommentaireER.texteCommentaireER +* group[=].element[=].target.code = #FRCDACommentaireER.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMCommentaireER.statutCommentaireER +* group[=].element[=].target.code = #FRCDACommentaireER.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMCommentaireER.auteurCommentaireER +* group[=].element[=].target.code = #FRCDACommentaireER.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR (Annotation) +// Pas d’équivalent direct FHIR pour FRCDACommentaireER ; mapping vers Annotation, réutilisée dans plusieurs ressources FHIR (Observation, Condition, etc.) via l’élément note. +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-commentaire-er" +* group[=].target = "http://hl7.org/fhir/StructureDefinition/Annotation" +// Element racine +* group[=].element[+].code = #FRCDACommentaireER +* group[=].element[=].target.code = #Annotation +* group[=].element[=].target.equivalence = #equivalent +// Texte +* group[=].element[+].code = #FRCDACommentaireER.text +* group[=].element[=].target.code = #Annotation.text +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDACommentaireER.author +* group[=].element[=].target.code = #Annotation.author[x] +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDACommentaireER.code +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Pas de correspondance directe dans Annotation." +// Statut +* group[=].element[+].code = #FRCDACommentaireER.statusCode +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Pas de correspondance directe dans Annotation." diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationAdministrationBloodDerivativesLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationAdministrationBloodDerivativesLMCDAFHIR.fsh new file mode 100644 index 0000000..24d68d0 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationAdministrationBloodDerivativesLMCDAFHIR.fsh @@ -0,0 +1,79 @@ +Instance: FRObservationAdministrationBloodDerivativesLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAdministrationDeDerivesDuSang → FRCDAAdministrationDeDerivesDuSang → FRObservationAdministrationBloodDerivativesDocument" +Description: "Mapping des éléments du modèle métier FRLMAdministrationDeDerivesDuSang vers le profil CDA FRCDAAdministrationDeDerivesDuSang, puis vers le profil FHIR FRObservationAdministrationBloodDerivativesDocument." +* title = "Mapping Métier/CDA/FHIR : \"Administration de dérivés du sang\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-administration-de-derives-du-sang" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-administration-de-derives-du-sang" +// Élément racine +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.identifiant +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.code +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.description +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.statut +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.date +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// valeur +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.valeur +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.value +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMAdministrationDeDerivesDuSang.auteur +* group[=].element[=].target.code = #FRCDAAdministrationDeDerivesDuSang.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-administration-de-derives-du-sang" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-administration-blood-derivatives-document" +// Élément racine +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.id +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.code +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.text +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.statusCode +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.status +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.effectiveTime +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// valeur +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.value +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.valueBoolean +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRCDAAdministrationDeDerivesDuSang.author +* group[=].element[=].target.code = #FRObservationAdministrationBloodDerivativesDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBirthEventLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBirthEventLMCDAFHIR.fsh new file mode 100644 index 0000000..899d27c --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBirthEventLMCDAFHIR.fsh @@ -0,0 +1,68 @@ +Instance: FRObservationBirthEventLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMNaissance → FRCDANaissance → FRObservationBirthEventDocument" +Description: "Mapping des éléments du modèle métier FRLMNaissance vers le profil CDA FRCDANaissance, puis vers le profil FHIR FRObservationBirthEventDocument." +* title = "Mapping Métier/CDA/FHIR : Naissance" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-naissance" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-naissance" +// élément racine +* group[=].element[+].code = #FRLMNaissance +* group[=].element[=].target.code = #FRCDANaissance +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRLMNaissance.identifiant +* group[=].element[=].target.code = #FRCDANaissance.id +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRLMNaissance.Code +* group[=].element[=].target.code = #FRCDANaissance.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRLMNaissance.statut +* group[=].element[=].target.code = #FRCDANaissance.status +* group[=].element[=].target.equivalence = #equivalent +// Période +* group[=].element[+].code = #FRLMNaissance.periode +* group[=].element[=].target.code = #FRCDANaissance.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Identification du nouveau né +* group[=].element[+].code = #FRLMNaissance.identificationNouveauNe +* group[=].element[=].target.code = #FRCDANaissance.subject +* group[=].element[=].target.equivalence = #equivalent +// Observation sur la naissance +* group[=].element[+].code = #FRLMNaissance.observationNaissance +* group[=].element[=].target.code = #FRCDANaissance.component:frObservationSurLaGrossesse +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-naissance" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-birth-event-document" +// Identifiant +* group[=].element[+].code = #FRCDANaissance.id +* group[=].element[=].target.code = #FRObservationBirthEventDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDANaissance.code +* group[=].element[=].target.code = #FRObservationBirthEventDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDANaissance.status +* group[=].element[=].target.code = #FRObservationBirthEventDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Période +* group[=].element[+].code = #FRCDANaissance.effectiveTime +* group[=].element[=].target.code = #FRObservationBirthEventDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Identification du nouveau né +* group[=].element[+].code = #FRCDANaissance.subject +* group[=].element[=].target.code = #FRObservationBirthEventDocument.focus:RelatedPerson +* group[=].element[=].target.equivalence = #equivalent +// Observation sur la naissance +* group[=].element[+].code = #FRCDANaissance.component:frObservationSurLaGrossesse +* group[=].element[=].target.code = #FRObservationBirthEventDocument.hasMember:FRObservationPregnancyDocument +* group[=].element[=].target.equivalence = #equivalent + diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBloodProductTransfusionLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBloodProductTransfusionLMCDAFHIR.fsh new file mode 100644 index 0000000..9afbe83 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationBloodProductTransfusionLMCDAFHIR.fsh @@ -0,0 +1,81 @@ +Instance: FRObservationBloodProductTransfusionLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTransfusionDeProduitsSanguins → FRCDATransfusionDeProduitsSanguins → FRObservationBloodProductTransfusionDocument" +Description: "Mapping des éléments du modèle métier FRLMTransfusionDeProduitsSanguins vers la sous-entrée CDA FRCDATransfusionDeProduitsSanguins puis vers le profil FHIR FRObservationBloodProductTransfusionDocument." +* title = "Mapping Métier/CDA/FHIR : Transfusion de produits sanguins" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA (sous-entrée) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-transfusion-de-produits-sanguins" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-transfusion-de-produits-sanguins" + +// élément racine +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.identifiant +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.code +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.description +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.statut +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.date +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// transfusionProduitSanguin +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.transfusionProduitSanguin +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.value +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMTransfusionDeProduitsSanguins.auteur +* group[=].element[=].target.code = #FRCDATransfusionDeProduitsSanguins.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA (sous-entrée FRCDATransfusionDeProduitsSanguins) → FHIR ObservationBloodProductTransfusionDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-transfusion-de-produits-sanguins" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-blood-product-transfusion-document" + +// élément racine +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.id +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.code +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description / Texte narratif +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.text +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.note.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.statusCode +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.effectiveTime +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// transfusionProduitSanguin +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.value +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.valueBoolean +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDATransfusionDeProduitsSanguins.author +* group[=].element[=].target.code = #FRObservationBloodProductTransfusionDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationLMCDAFHIR.fsh new file mode 100644 index 0000000..6f48a65 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationLMCDAFHIR.fsh @@ -0,0 +1,107 @@ +Instance: FRObservationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMObservation -> FRCDASimpleObservation -> Observation" +Description: "Mapping des éléments du modele metier FRLMObservation vers le profil CDA FRCDASimpleObservation, puis vers le profil FHIR Observation." +* title = "Mapping Metier/CDA/FHIR : \"Observation\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-observation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-simple-observation" +// Element racine +* group[=].element[+].code = #FRLMObservation +* group[=].element[=].target.code = #FRCDASimpleObservation +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'observation +* group[=].element[+].code = #FRLMObservation.observationIdentifiant +* group[=].element[=].target.code = #FRCDASimpleObservation.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'observation +* group[=].element[+].code = #FRLMObservation.observationCode +* group[=].element[=].target.code = #FRCDASimpleObservation.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'observation +* group[=].element[+].code = #FRLMObservation.observationDescription +* group[=].element[=].target.code = #FRCDASimpleObservation.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'observation +* group[=].element[+].code = #FRLMObservation.observationStatut +* group[=].element[=].target.code = #FRCDASimpleObservation.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'observation +* group[=].element[+].code = #FRLMObservation.observationDate +* group[=].element[=].target.code = #FRCDASimpleObservation.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'observation +* group[=].element[+].code = #FRLMObservation.observationResultat +* group[=].element[=].target.code = #FRCDASimpleObservation.value +* group[=].element[=].target.equivalence = #equivalent +// Interpretation +* group[=].element[+].code = #FRLMObservation.observationInterpretation +* group[=].element[=].target.code = #FRCDASimpleObservation.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Methode +* group[=].element[+].code = #FRLMObservation.observationMethode +* group[=].element[=].target.code = #FRCDASimpleObservation.methodCode +* group[=].element[=].target.equivalence = #equivalent +// Localisation anatomique +* group[=].element[+].code = #FRLMObservation.observationLocalisationAnatomique +* group[=].element[=].target.code = #FRCDASimpleObservation.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMObservation.observationAuteur +* group[=].element[=].target.code = #FRCDASimpleObservation.author +* group[=].element[=].target.equivalence = #equivalent +// Nombre de renouvellements +* group[=].element[+].code = #FRLMObservation.observationNombreRenouvellements +* group[=].element[=].target.code = #FRCDASimpleObservation.repeatNumber +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-simple-observation" +* group[=].target = "http://hl7.org/fhir/R4/StructureDefinition/Observation" +// Element racine +* group[=].element[+].code = #FRCDASimpleObservation +* group[=].element[=].target.code = #Observation +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDASimpleObservation.id +* group[=].element[=].target.code = #Observation.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDASimpleObservation.code +* group[=].element[=].target.code = #Observation.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDASimpleObservation.text +* group[=].element[=].target.code = #Observation.note +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDASimpleObservation.statusCode +* group[=].element[=].target.code = #Observation.status +* group[=].element[=].target.equivalence = #equivalent +// Date de l'observation +* group[=].element[+].code = #FRCDASimpleObservation.effectiveTime +* group[=].element[=].target.code = #Observation.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'observation +* group[=].element[+].code = #FRCDASimpleObservation.value +* group[=].element[=].target.code = #Observation.value[x] +* group[=].element[=].target.equivalence = #equivalent +// Interpretation +* group[=].element[+].code = #FRCDASimpleObservation.interpretationCode +* group[=].element[=].target.code = #Observation.interpretation +* group[=].element[=].target.equivalence = #equivalent +// Methode +* group[=].element[+].code = #FRCDASimpleObservation.methodCode +* group[=].element[=].target.code = #Observation.method +* group[=].element[=].target.equivalence = #equivalent +// Localisation anatomique +* group[=].element[+].code = #FRCDASimpleObservation.targetSiteCode +* group[=].element[=].target.code = #Observation.bodySite +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDASimpleObservation.author +* group[=].element[=].target.code = #Observation.performer +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMedicalSummaryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMedicalSummaryLMCDAFHIR.fsh new file mode 100644 index 0000000..ad8d974 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMedicalSummaryLMCDAFHIR.fsh @@ -0,0 +1,75 @@ +Instance: FRObservationMedicalSummaryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMSyntheseMedicaleSejour → FRCDASyntheseMedicaleSejour → FRObservationMedicalSummaryDocument" +Description: "Mapping des éléments du modèle métier FRLMSyntheseMedicaleSejour vers la sous-entrée CDA FRCDASyntheseMedicaleSejour puis vers le profil FHIR FRObservationMedicalSummaryDocument." +* title = "Mapping Métier/CDA/FHIR : Synthèse médicale de séjour" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-synthese-medicale-sejour" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-synthese-medicale-sejour" +// élément racine +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.identifiant +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.code +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.description +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.statut +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.date +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// statutDocument +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.statutDocument +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.value +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMSyntheseMedicaleSejour.auteur +* group[=].element[=].target.code = #FRCDASyntheseMedicaleSejour.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR ObservationMedicalSummaryDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-synthese-medicale-sejour" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-medical-summary-document" +// Identifiant +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.id +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.code +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.text +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.statusCode +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.effectiveTime +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// StatutDocument +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.value +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.valueString +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDASyntheseMedicaleSejour.author +* group[=].element[=].target.code = #FRObservationMedicalSummaryDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMicroorganismDetectionLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMicroorganismDetectionLMCDAFHIR.fsh new file mode 100644 index 0000000..bd606fe --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMicroorganismDetectionLMCDAFHIR.fsh @@ -0,0 +1,75 @@ +Instance: FRObservationMicroorganismDetectionLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMRechercheDeMicroOrganismes → FRCDARechercheDeMicroOrganismes → FRObservationMicroorganismDetectionDocument" +Description: "Mapping des éléments du modèle métier FRLMRechercheDeMicroOrganismes vers le profil CDA FRCDARechercheDeMicroOrganismes, puis vers le profil FHIR FRObservationMicroorganismDetectionDocument." +* title = "Mapping Métier/CDA/FHIR : \"Recherche de micro organismes\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-recherche-de-micro-organismes" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-recherche-de-micro-organismes" +// Élément racine +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.identifiant +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.code +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.description +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.statut +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.date +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// valeur +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.valeur +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.value +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMRechercheDeMicroOrganismes.auteur +* group[=].element[=].target.code = #FRCDARechercheDeMicroOrganismes.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-recherche-de-micro-organismes" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-microorganism-detection-document" +// Identifiant +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.id +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.code +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.text +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.statusCode +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.effectiveTime +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Valeur +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.value +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.valueBoolean +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDARechercheDeMicroOrganismes.author +* group[=].element[=].target.code = #FRObservationMicroorganismDetectionDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMultiresistantMicroorganismsIdentificationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMultiresistantMicroorganismsIdentificationLMCDAFHIR.fsh new file mode 100644 index 0000000..945c767 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationMultiresistantMicroorganismsIdentificationLMCDAFHIR.fsh @@ -0,0 +1,75 @@ +Instance: FRObservationMultiresistantMicroorganismsIdentificationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMIdentificationDeMicroOrganismesMultiresistants → FRCDAIdentificationMicroOrganismesMultiresistants → FRObservationMultiresistantMicroorganismsIdentificationDocument" +Description: "Mapping des éléments du modèle métier FRLMIdentificationDeMicroOrganismesMultiresistants vers le profil CDA FRCDAIdentificationMicroOrganismesMultiresistants, puis vers le profil FHIR FRObservationMultiresistantMicroorganismsIdentificationDocument." +* title = "Mapping Métier/CDA/FHIR : Identification de micro-organismes multirésistants" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-identification-de-micro-organismes-multiresistants" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-identification-micro-organismes-multiresistants" +// Élément racine +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.identifiant +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.code +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.description +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.statut +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.date +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// valeur +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.valeur +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.value +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMIdentificationDeMicroOrganismesMultiresistants.auteur +* group[=].element[=].target.code = #FRCDAIdentificationMicroOrganismesMultiresistants.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-identification-micro-organismes-multiresistants" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-multiresistant-microorganism-document" +// Identifiant +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.id +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.code +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.text +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.statusCode +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.effectiveTime +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Valeur +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.value +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.valueString +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDAIdentificationMicroOrganismesMultiresistants.author +* group[=].element[=].target.code = #FRObservationMultiresistantMicroorganismsIdentificationDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..870b890 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyHistoryLMCDAFHIR.fsh @@ -0,0 +1,66 @@ +Instance: FRObservationPregnancyHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMHistoriqueGrossesse → FRCDAHistoriqueDeLaGrossesse → FRObservationPregnancyHistoryDocument" +Description: "Mapping des éléments du modèle métier FRLMHistoriqueGrossesse vers le profil CDA FRCDAHistoriqueDeLaGrossesse, puis vers le profil FHIR FRObservationPregnancyHistoryDocument." +* title = "Mapping Métier/CDA/FHIR : \"Historique de la grossesse\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-historique-grossesse" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-de-la-grossesse" +// Élément racine +* group[=].element[+].code = #FRLMHistoriqueGrossesse +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMHistoriqueGrossesse.identifiant +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMHistoriqueGrossesse.code +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.code +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMHistoriqueGrossesse.statut +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.statusCode +* group[=].element[=].target.equivalence = #equivalent +// periodeGrossesse +* group[=].element[+].code = #FRLMHistoriqueGrossesse.periodeGrossesse +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// informations relatives à une naissance +* group[=].element[+].code = #FRLMHistoriqueGrossesse.choice:FRLMNaissance +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frNaissance +* group[=].element[=].target.equivalence = #equivalent +// informations relatives à la grossesse +* group[=].element[+].code = #FRLMHistoriqueGrossesse.choice:FRLMObservationGrossesse +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frObservationSurLaGrossesse +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-de-la-grossesse" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-pregnancy-history-document" +// Identifiant +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.id +* group[=].element[=].target.code = #FRObservationPregnancyHistoryDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.code +* group[=].element[=].target.code = #FRObservationPregnancyHistoryDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.statusCode +* group[=].element[=].target.code = #FRObservationPregnancyHistoryDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Periode de la grossesse +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.effectiveTime +* group[=].element[=].target.code = #FRObservationPregnancyHistoryDocument.effectivePeriod +* group[=].element[=].target.equivalence = #equivalent +// Informations relatives à une naissance +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frNaissance +* group[=].element[=].target.code = #FRObservationPregnancyHistoryDocument.hasMember:FRObservationBirthEventDocument +* group[=].element[=].target.equivalence = #equivalent +// Informations relatives à la grossesse +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frObservationSurLaGrossesse +* group[=].element[=].target.code = #FRObservationPregnancyHistoryDocument.hasMember:FRObservationPregnancyDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyLMCDAFHIR.fsh new file mode 100644 index 0000000..4ef4020 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationPregnancyLMCDAFHIR.fsh @@ -0,0 +1,67 @@ +Instance: FRObservationPregnancyLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMObservationGrossesse → FRCDAObservationSurLaGrossesse → FRObservationPregnancyDocument" +Description: "Mapping des éléments du modèle métier FRLMObservationGrossesse vers le profil CDA FRCDAObservationSurLaGrossesse, puis vers le profil FHIR FRObservationPregnancyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Observation sur la grossesse\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-observation-grossesse" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-observation-sur-la-grossesse" +// Élément racine +* group[=].element[+].code = #FRLMObservationGrossesse +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse +* group[=].element[=].target.equivalence = #equivalent +// identifiant +* group[=].element[+].code = #FRLMObservationGrossesse.identifiant +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse.id +* group[=].element[=].target.equivalence = #equivalent +// code +* group[=].element[+].code = #FRLMObservationGrossesse.code +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse.code +* group[=].element[=].target.equivalence = #equivalent +// description +* group[=].element[+].code = #FRLMObservationGrossesse.description +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse.text +* group[=].element[=].target.equivalence = #equivalent +// statut +* group[=].element[+].code = #FRLMObservationGrossesse.statut +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse.statusCode +* group[=].element[=].target.equivalence = #equivalent +// date +* group[=].element[+].code = #FRLMObservationGrossesse.date +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// resultat +* group[=].element[+].code = #FRLMObservationGrossesse.resultat +* group[=].element[=].target.code = #FRCDAObservationSurLaGrossesse.value +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-observation-sur-la-grossesse" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-pregnancy-document" +// Identifiant +* group[=].element[+].code = #FRCDAObservationSurLaGrossesse.id +* group[=].element[=].target.code = #FRObservationPregnancyDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDAObservationSurLaGrossesse.code +* group[=].element[=].target.code = #FRObservationPregnancyDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDAObservationSurLaGrossesse.text +* group[=].element[=].target.code = #FRObservationPregnancyDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDAObservationSurLaGrossesse.statusCode +* group[=].element[=].target.code = #FRObservationPregnancyDocument.status +* group[=].element[=].target.equivalence = #equivalent +// effectiveTime +* group[=].element[+].code = #FRCDAObservationSurLaGrossesse.effectiveTime +* group[=].element[=].target.code = #FRObservationPregnancyDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// value +* group[=].element[+].code = #FRCDAObservationSurLaGrossesse.value +* group[=].element[=].target.code = #FRObservationPregnancyDocument.value +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationResultLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationResultLMCDAFHIR.fsh new file mode 100644 index 0000000..2c5f973 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationResultLMCDAFHIR.fsh @@ -0,0 +1,118 @@ +Instance: FRObservationResultLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMObservationResult → FRCDAResultat → FRObservationResultDocument" +Description: "Mapping des éléments du modèle métier FRLMObservationResult vers le profil CDA FRCDAResultat, puis vers le profil FHIR FRObservationResultDocument." +* title = "Mapping Métier/CDA/FHIR : \"Résultat d'observation\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-observation-result" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultat" +// Élément racine +* group[=].element[+].code = #FRLMObservationResult +* group[=].element[=].target.code = #FRCDAResultat +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'observation +* group[=].element[+].code = #FRLMObservationResult.identifiant +* group[=].element[=].target.code = #FRCDAResultat.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'observation +* group[=].element[+].code = #FRLMObservationResult.code +* group[=].element[=].target.code = #FRCDAResultat.code +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRLMObservationResult.description +* group[=].element[=].target.code = #FRCDAResultat.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'observation +* group[=].element[+].code = #FRLMObservationResult.statut +* group[=].element[=].target.code = #FRCDAResultat.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date/heure de l'observation +* group[=].element[+].code = #FRLMObservationResult.date +* group[=].element[=].target.code = #FRCDAResultat.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Valeur observée +* group[=].element[+].code = #FRLMObservationResult.valeur +* group[=].element[=].target.code = #FRCDAResultat.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation de la valeur +* group[=].element[+].code = #FRLMObservationResult.interpretation +* group[=].element[=].target.code = #FRCDAResultat.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Site de l'observation +* group[=].element[+].code = #FRLMObservationResult.site +* group[=].element[=].target.code = #FRCDAResultat.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMObservationResult.auteur +* group[=].element[=].target.code = #FRCDAResultat.author +* group[=].element[=].target.equivalence = #equivalent +// Intervalle de référence +* group[=].element[+].code = #FRLMObservationResult.intervalleReference +* group[=].element[=].target.code = #FRCDAResultat.referenceRange +* group[=].element[=].target.equivalence = #equivalent +// Commentaires +* group[=].element[+].code = #FRLMObservationResult.commentaires +* group[=].element[=].target.code = #FRCDAResultat.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent +// Demande d'examen associée +* group[=].element[+].code = #FRLMObservationResult.demandeExamen +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Pas de correspondance directe dans FRCDAResultat pour la demande d'examen associée." + +// Groupe Mapping 2 : CDA FRCDAResultat → FHIR FRObservationResultDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultat" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-result-document" +// élément racine +* group[=].element[+].code = #FRCDAResultat +* group[=].element[=].target.code = #FRObservationResultDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant +* group[=].element[+].code = #FRCDAResultat.id +* group[=].element[=].target.code = #FRObservationResultDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDAResultat.code +* group[=].element[=].target.code = #FRObservationResultDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Texte +* group[=].element[+].code = #FRCDAResultat.text +* group[=].element[=].target.code = #FRObservationResultDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDAResultat.statusCode +* group[=].element[=].target.code = #FRObservationResultDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date/heure (effectiveTime) +* group[=].element[+].code = #FRCDAResultat.effectiveTime +* group[=].element[=].target.code = #FRObservationResultDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Valeur (value) +* group[=].element[+].code = #FRCDAResultat.value +* group[=].element[=].target.code = #FRObservationResultDocument.value[x] +* group[=].element[=].target.equivalence = #equivalent +// Interprétation (interpretationCode) +* group[=].element[+].code = #FRCDAResultat.interpretationCode +* group[=].element[=].target.code = #FRObservationResultDocument.interpretation +* group[=].element[=].target.equivalence = #equivalent +// Site (targetSiteCode) +* group[=].element[+].code = #FRCDAResultat.targetSiteCode +* group[=].element[=].target.code = #FRObservationResultDocument.bodySite +* group[=].element[=].target.equivalence = #equivalent +// Auteur (author) +* group[=].element[+].code = #FRCDAResultat.author +* group[=].element[=].target.code = #FRObservationResultDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent +// Intervalle de référence (referenceRange) +* group[=].element[+].code = #FRCDAResultat.referenceRange +* group[=].element[=].target.code = #FRObservationResultDocument.referenceRange +* group[=].element[=].target.equivalence = #equivalent +// Commentaires (entryRelationship:frCommentaireER) +* group[=].element[+].code = #FRCDAResultat.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRObservationResultDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Demande d'examen associée +* group[=].element[=].target.code = #FRObservationResultDocument.basedOn:serviceRequestAccessionNumber +* group[=].element[=].target.equivalence = #unmatched \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSocialHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSocialHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..00dc142 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSocialHistoryLMCDAFHIR.fsh @@ -0,0 +1,95 @@ +Instance: FRObservationSocialHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMHabitusModeDeVieEntree → FRCDAHabitusModeDeVie → FRObservationSocialHistoryDocument" +Description: "Mapping des éléments du modèle métier FRLMHabitusModeDeVieEntree vers le profil CDA FRCDAHabitusModeDeVie, puis vers le profil FHIR FRObservationSocialHistoryDocument." +* title = "Mapping Métier/CDA/FHIR : \"Habitus Mode de vie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-habitus-mode-de-vie-entree" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-habitus-mode-de-vie" +// Élément racine +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.identifiant +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.code +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.code +* group[=].element[=].target.equivalence = #equivalent +// precision sur l'élément observé +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.code.precision +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.code.qualifier +* group[=].element[=].target.equivalence = #equivalent +// - nom du qualifier +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.code.precision.name +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.code.qualifier.name +* group[=].element[=].target.equivalence = #equivalent +// - valeur du qualifier +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.code.precision.value +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.code.qualifier.value +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.description +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.statut +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.horodatage +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l’observation effectuée +* group[=].element[+].code = #FRLMHabitusModeDeVieEntree.resultat +* group[=].element[=].target.code = #FRCDAHabitusModeDeVie.value +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-habitus-mode-de-vie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-social-history-document" +// Élément racine +* group[=].element[+].code = #FRCDAHabitusModeDeVie +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDAHabitusModeDeVie.id +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDAHabitusModeDeVie.code +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.code +* group[=].element[=].target.equivalence = #equivalent +// precision sur l'élément observé (le code 'Autre élément social' du VS jdv-social-history-code-cisis est utilisé) +* group[=].element[+].code = #FRCDAHabitusModeDeVie.code.qualifier +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.component +* group[=].element[=].target.equivalence = #equivalent +// - nom du qualifier +* group[=].element[+].code = #FRCDAHabitusModeDeVie.code.qualifier.name +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.component.code +* group[=].element[=].target.equivalence = #equivalent +// - valeur du qualifier +* group[=].element[+].code = #FRCDAHabitusModeDeVie.code.qualifier.value +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.component.value +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDAHabitusModeDeVie.text +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAHabitusModeDeVie.statusCode +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRCDAHabitusModeDeVie.effectiveTime +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l’observation effectuée +* group[=].element[+].code = #FRCDAHabitusModeDeVie.value +* group[=].element[=].target.code = #FRObservationSocialHistoryDocument.value +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentLMCDAFHIR.fsh new file mode 100644 index 0000000..517cae3 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentLMCDAFHIR.fsh @@ -0,0 +1,94 @@ +Instance: FRObservationSurveyComponentLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEvaluationComposant → FRCDAEvaluationComposant → FRObservationSurveyDocument" +Description: "Mapping des éléments du modèle métier FRLMEvaluationComposant vers le profil CDA FRCDAEvaluationComposant, puis vers le profil FHIR FRObservationSurveyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Composant d'évaluation\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-evaluation-composant" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-evaluation-composant" +// Élément racine +* group[=].element[+].code = #FRLMEvaluationComposant +* group[=].element[=].target.code = #FRCDAEvaluationComposant +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMEvaluationComposant.identifiant +* group[=].element[=].target.code = #FRCDAEvaluationComposant.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'évaluation +* group[=].element[+].code = #FRLMEvaluationComposant.codeEvaluation +* group[=].element[=].target.code = #FRCDAEvaluationComposant.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMEvaluationComposant.description +* group[=].element[=].target.code = #FRCDAEvaluationComposant.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMEvaluationComposant.statut +* group[=].element[=].target.code = #FRCDAEvaluationComposant.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRLMEvaluationComposant.horodatage +* group[=].element[=].target.code = #FRCDAEvaluationComposant.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'évaluation +* group[=].element[+].code = #FRLMEvaluationComposant.resultat +* group[=].element[=].target.code = #FRCDAEvaluationComposant.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRLMEvaluationComposant.interpretation +* group[=].element[=].target.code = #FRCDAEvaluationComposant.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// component N2 de l'évaluation +* group[=].element[+].code = #FRLMEvaluationComposant.composantEvaluation +* group[=].element[=].target.code = #FRCDAEvaluationComposant.entryRelationship:frEvaluationComposantN2 +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRLMEvaluationComposant.commentaire +* group[=].element[=].target.code = #FRCDAEvaluationComposant.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-evaluation-composant" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-survey-document" +// Élément racine +* group[=].element[+].code = #FRCDAEvaluationComposant +* group[=].element[=].target.code = #FRObservationSurveyDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDAEvaluationComposant.id +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN1.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'évaluation +* group[=].element[+].code = #FRCDAEvaluationComposant.code +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN1.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDAEvaluationComposant.text +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN1.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAEvaluationComposant.statusCode +* group[=].element[=].target.code = #FRObservationSurveyDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRCDAEvaluationComposant.effectiveTime +* group[=].element[=].target.code = #FRObservationSurveyDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'évaluation +* group[=].element[+].code = #FRCDAEvaluationComposant.value +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN1.value[x] +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRCDAEvaluationComposant.interpretationCode +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN1.interpretation +* group[=].element[=].target.equivalence = #equivalent +// component N2 de l'évaluation +* group[=].element[+].code = #FRCDAEvaluationComposant.entryRelationship:frEvaluationComposantN2 +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2 +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRCDAEvaluationComposant.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN1.extension:note.value[x] +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentN2LMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentN2LMCDAFHIR.fsh new file mode 100644 index 0000000..9a33d5e --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyComponentN2LMCDAFHIR.fsh @@ -0,0 +1,87 @@ +Instance: FRObservationSurveyComponentN2LMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEvaluationComposantN2 → FRCDAEvaluationComposantN2 → FRObservationSurveyDocument" +Description: "Mapping des éléments du modèle métier FRLMEvaluationComposantN2 vers le profil CDA FRCDAEvaluationComposantN2, puis vers le profil FHIR FRObservationSurveyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Composant d'évaluation N2\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-evaluation-composant-n2" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-evaluation-composant-n2" +// Élément racine +* group[=].element[+].code = #FRLMEvaluationComposantN2 +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2 +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMEvaluationComposantN2.identifiant +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'évaluation +* group[=].element[+].code = #FRLMEvaluationComposantN2.codeEvaluation +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMEvaluationComposantN2.description +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMEvaluationComposantN2.statut +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRLMEvaluationComposantN2.horodatage +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l'évaluation +* group[=].element[+].code = #FRLMEvaluationComposantN2.resultat +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRLMEvaluationComposantN2.interpretation +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRLMEvaluationComposantN2.commentaire +* group[=].element[=].target.code = #FRCDAEvaluationComposantN2.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-evaluation-composant-n2" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-survey-document" +// Élément racine +* group[=].element[+].code = #FRCDAEvaluationComposantN2 +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2 +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDAEvaluationComposantN2.id +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'évaluation +* group[=].element[+].code = #FRCDAEvaluationComposantN2.code +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDAEvaluationComposantN2.text +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAEvaluationComposantN2.statusCode +* group[=].element[=].target.code = #FRObservationSurveyDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRCDAEvaluationComposantN2.effectiveTime +* group[=].element[=].target.code = #FRObservationSurveyDocument.effective[x] +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l'évaluation +* group[=].element[+].code = #FRCDAEvaluationComposantN2.value +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2.value[x] +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRCDAEvaluationComposantN2.interpretationCode +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2.interpretation +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRCDAEvaluationComposantN2.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRObservationSurveyDocument.component:ComposantN2.extension:note.value[x] +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyLMCDAFHIR.fsh new file mode 100644 index 0000000..e807e8b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyLMCDAFHIR.fsh @@ -0,0 +1,122 @@ +Instance: FRObservationSurveyLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEvaluation → FRCDAEvaluation → FRObservationSurveyDocument" +Description: "Mapping des éléments du modèle métier FRLMEvaluation vers le profil CDA FRCDAEvaluation, puis vers le profil FHIR FRObservationSurveyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Evaluation\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-evaluation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-evaluation" +// Élément racine +* group[=].element[+].code = #FRLMEvaluation +* group[=].element[=].target.code = #FRCDAEvaluation +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMEvaluation.identifiant +* group[=].element[=].target.code = #FRCDAEvaluation.id +* group[=].element[=].target.equivalence = #equivalent +// Type d'évaluation +* group[=].element[+].code = #FRLMEvaluation.typeEvaluation +* group[=].element[=].target.code = #FRCDAEvaluation.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMEvaluation.description +* group[=].element[=].target.code = #FRCDAEvaluation.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMEvaluation.statut +* group[=].element[=].target.code = #FRCDAEvaluation.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date +* group[=].element[+].code = #FRLMEvaluation.date +* group[=].element[=].target.code = #FRCDAEvaluation.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'évaluation +* group[=].element[+].code = #FRLMEvaluation.valeur +* group[=].element[=].target.code = #FRCDAEvaluation.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRLMEvaluation.interpretation +* group[=].element[=].target.code = #FRCDAEvaluation.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Evaluateur +* group[=].element[+].code = #FRLMEvaluation.evaluateur +* group[=].element[=].target.code = #FRCDAEvaluation.performer +* group[=].element[=].target.equivalence = #equivalent +// Auteur de l'évaluation +* group[=].element[+].code = #FRLMEvaluation.auteurEvaluation +* group[=].element[=].target.code = #FRCDAEvaluation.author +* group[=].element[=].target.equivalence = #equivalent +// Responsable de l'évaluation +* group[=].element[+].code = #FRLMEvaluation.responsableEvaluation +* group[=].element[=].target.code = #FRCDAEvaluation.participant +* group[=].element[=].target.equivalence = #equivalent +// Composants de l'évaluation +* group[=].element[+].code = #FRLMEvaluation.evaluationComposant +* group[=].element[=].target.code = #FRCDAEvaluation.entryRelationship:frEvaluationComposant +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’évaluation +* group[=].element[+].code = #FRLMEvaluation.statutEvaluation +* group[=].element[=].target.code = #FRCDAEvaluation.entryRelationship:frStatut +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRLMEvaluation.commentaire +* group[=].element[=].target.code = #FRCDAEvaluation.entryRelationship:frCommentaireER +* group[=].element[=].target.equivalence = #equivalent +// Reference Interne +* group[=].element[+].code = #FRLMEvaluation.referenceInterne +* group[=].element[=].target.code = #FRCDAEvaluation.entryRelationship:frReferenceInterne +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-evaluation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-survey-document" +// Élément racine +* group[=].element[+].code = #FRCDAEvaluation +* group[=].element[=].target.code = #FRObservationSurveyDocument +* group[=].element[=].target.equivalence = #equivalent +// type d'évaluation +* group[=].element[+].code = #FRCDAEvaluation.code +* group[=].element[=].target.code = #FRObservationSurveyDocument.code +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRCDAEvaluation.text +* group[=].element[=].target.code = #FRObservationSurveyDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// Valeur de l'évaluation +* group[=].element[+].code = #FRCDAEvaluation.value +* group[=].element[=].target.code = #FRObservationSurveyDocument.value[x] +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRCDAEvaluation.interpretationCode +* group[=].element[=].target.code = #FRObservationSurveyDocument.interpretation +* group[=].element[=].target.equivalence = #equivalent +// Evaluateur +* group[=].element[+].code = #FRCDAEvaluation.performer +* group[=].element[=].target.code = #FRObservationSurveyDocument.performer.extension:Evaluateur +* group[=].element[=].target.equivalence = #equivalent +// Auteur de l'évaluation +* group[=].element[+].code = #FRCDAEvaluation.author +* group[=].element[=].target.code = #FRObservationSurveyDocument.performer.extension:Auteur +* group[=].element[=].target.equivalence = #equivalent +// Responsable de l'évaluation +* group[=].element[+].code = #FRCDAEvaluation.participant +* group[=].element[=].target.code = #FRObservationSurveyDocument.performer.extension:Participant +* group[=].element[=].target.equivalence = #equivalent +// Composants de l'évaluation +* group[=].element[+].code = #FRCDAEvaluation.entryRelationship:frEvaluationComposant +* group[=].element[=].target.code = #FRObservationSurveyDocument.component +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’évaluation +* group[=].element[+].code = #FRCDAEvaluation.entryRelationship:frStatut +* group[=].element[=].target.code = #FRObservationSurveyDocument.status.extension:statusReason +* group[=].element[=].target.equivalence = #equivalent +// Commentaire +* group[=].element[+].code = #FRCDAEvaluation.entryRelationship:frCommentaireER +* group[=].element[=].target.code = #FRObservationSurveyDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Reference Interne +* group[=].element[+].code = #FRCDAEvaluation.entryRelationship:frReferenceInterne +* group[=].element[=].target.code = #FRObservationSurveyDocument.hasMember +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyPannelLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyPannelLMCDAFHIR.fsh new file mode 100644 index 0000000..d65adfb --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationSurveyPannelLMCDAFHIR.fsh @@ -0,0 +1,62 @@ +Instance: FRObservationSurveyPannelLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMGroupDeQuestionnairesDevaluation → FRCDAGroupeDeQuestionnairesDEvaluation → FRObservationSurveyDocument" +Description: "Mapping des éléments du modèle métier FRLMGroupDeQuestionnairesDevaluation vers le profil CDA FRCDAGroupeDeQuestionnairesDEvaluation, puis vers le profil FHIR FRObservationSurveyDocument." +* title = "Mapping Métier/CDA/FHIR : \"Groupe de questionnaires d'évaluation\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-group-de-questionnaires-devaluation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-groupe-de-questionnaires-d-evaluation" +// Élément racine +* group[=].element[+].code = #FRLMGroupDeQuestionnairesDevaluation +* group[=].element[=].target.code = #FRCDAGroupeDeQuestionnairesDEvaluation +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMGroupDeQuestionnairesDevaluation.identifiant +* group[=].element[=].target.code = #FRCDAGroupeDeQuestionnairesDEvaluation.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMGroupDeQuestionnairesDevaluation.code +* group[=].element[=].target.code = #FRCDAGroupeDeQuestionnairesDEvaluation.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMGroupDeQuestionnairesDevaluation.statut +* group[=].element[=].target.code = #FRCDAGroupeDeQuestionnairesDEvaluation.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRLMGroupDeQuestionnairesDevaluation.horodatage +* group[=].element[=].target.code = #FRCDAGroupeDeQuestionnairesDEvaluation.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Évaluation +* group[=].element[+].code = #FRLMGroupDeQuestionnairesDevaluation.evaluation +* group[=].element[=].target.code = #FRCDAGroupeDeQuestionnairesDEvaluation.component:frEvaluation +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-groupe-de-questionnaires-d-evaluation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-survey-document" +// Élément racine +* group[=].element[+].code = #FRCDAGroupeDeQuestionnairesDEvaluation +* group[=].element[=].target.code = #FRObservationSurveyDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDAGroupeDeQuestionnairesDEvaluation.id +* group[=].element[=].target.code = #FRObservationSurveyDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDAGroupeDeQuestionnairesDEvaluation.code +* group[=].element[=].target.code = #FRObservationSurveyDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAGroupeDeQuestionnairesDEvaluation.statusCode +* group[=].element[=].target.code = #FRObservationSurveyDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRCDAGroupeDeQuestionnairesDEvaluation.effectiveTime +* group[=].element[=].target.code = #FRObservationSurveyDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Composants d'évaluation +* group[=].element[+].code = #FRCDAGroupeDeQuestionnairesDEvaluation.component:frEvaluation +* group[=].element[=].target.code = #FRObservationSurveyDocument.hasMember:FRObservationSurveyDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationTransfusionAccidentsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationTransfusionAccidentsLMCDAFHIR.fsh new file mode 100644 index 0000000..d4d308b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationTransfusionAccidentsLMCDAFHIR.fsh @@ -0,0 +1,79 @@ +Instance: FRObservationTransfusionAccidentsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAccidentsTransfusionnels → FRCDAAccidentsTransfusionnels → FRObservationTransfusionAccidentsDocument" +Description: "Mapping des éléments du modèle métier FRLMAccidentsTransfusionnels vers le profil CDA FRCDAAccidentsTransfusionnels, puis vers le profil FHIR FRObservationTransfusionAccidentsDocument." +* title = "Mapping Métier/CDA/FHIR : \"Accident transfusionnel\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-accidents-transfusionnels" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-accidents-transfusionnels" +// Élément racine +* group[=].element[+].code = #FRLMAccidentsTransfusionnels +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l’observation +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.identifiant +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l’observation +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.code +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l’observation +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.description +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’observation +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.statut +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l’observation +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.date +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Description sous forme textuelle de l'accident transfusionnel +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.valeur +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.value +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMAccidentsTransfusionnels.auteur +* group[=].element[=].target.code = #FRCDAAccidentsTransfusionnels.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-accidents-transfusionnels" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-transfusion-accidents-document" +// Élément racine +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l’observation +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.id +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l’observation +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.code +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l’observation +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.text +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’observation +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.statusCode +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date de l’observation +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.effectiveTime +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Description sous forme textuelle de l'accident transfusionnel +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.value +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.valueString +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDAAccidentsTransfusionnels.author +* group[=].element[=].target.code = #FRObservationTransfusionAccidentsDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsLMCDAFHIR.fsh new file mode 100644 index 0000000..b91e4a2 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsLMCDAFHIR.fsh @@ -0,0 +1,103 @@ +Instance: FRObservationVitalSignsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMSigneVitalObserve → FRCDASigneVitalObserve → FRObservationVitalSignsDocument" +Description: "Mapping des éléments du modèle métier FRLMSigneVitalObserve vers le profil CDA FRCDASigneVitalObserve, puis vers le profil FHIR FRObservationVitalSignsDocument." +* title = "Mapping Métier/CDA/FHIR : \"Signe vital observé\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-signe-vital-observe" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-signe-vital-observe" +// Élément racine +* group[=].element[+].code = #FRLMSigneVitalObserve +* group[=].element[=].target.code = #FRCDASigneVitalObserve +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMSigneVitalObserve.identifiant +* group[=].element[=].target.code = #FRCDASigneVitalObserve.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMSigneVitalObserve.code +* group[=].element[=].target.code = #FRCDASigneVitalObserve.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMSigneVitalObserve.description +* group[=].element[=].target.code = #FRCDASigneVitalObserve.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMSigneVitalObserve.statut +* group[=].element[=].target.code = #FRCDASigneVitalObserve.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'observation +* group[=].element[+].code = #FRLMSigneVitalObserve.date +* group[=].element[=].target.code = #FRCDASigneVitalObserve.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Observation effectuée +* group[=].element[+].code = #FRLMSigneVitalObserve.observationEffectuee +* group[=].element[=].target.code = #FRCDASigneVitalObserve.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRLMSigneVitalObserve.interpretation +* group[=].element[=].target.code = #FRCDASigneVitalObserve.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Méthode utilisée pour l'observation +* group[=].element[+].code = #FRLMSigneVitalObserve.methodeUtilisee +* group[=].element[=].target.code = #FRCDASigneVitalObserve.methodCode +* group[=].element[=].target.equivalence = #equivalent +// Site de l'observation +* group[=].element[+].code = #FRLMSigneVitalObserve.siteObservation +* group[=].element[=].target.code = #FRCDASigneVitalObserve.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMSigneVitalObserve.auteur +* group[=].element[=].target.code = #FRCDASigneVitalObserve.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-signe-vital-observe" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-vital-signs-document" +// Élément racine +* group[=].element[+].code = #FRCDASigneVitalObserve +* group[=].element[=].target.code = #FRObservationVitalSignsDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDASigneVitalObserve.id +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDASigneVitalObserve.code +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDASigneVitalObserve.text +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.code.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDASigneVitalObserve.statusCode +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date de l'observation +* group[=].element[+].code = #FRCDASigneVitalObserve.effectiveTime +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Observation effectuée +* group[=].element[+].code = #FRCDASigneVitalObserve.value +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.component.valueQuantity +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRCDASigneVitalObserve.interpretationCode +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.interpretation +* group[=].element[=].target.equivalence = #equivalent +// Méthode utilisée pour l'observation +* group[=].element[+].code = #FRCDASigneVitalObserve.methodCode +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.method +* group[=].element[=].target.equivalence = #equivalent +// Site de l'observation +* group[=].element[+].code = #FRCDASigneVitalObserve.targetSiteCode +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.bodySite +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDASigneVitalObserve.author +* group[=].element[=].target.code = #FRObservationVitalSignsDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsPanelLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsPanelLMCDAFHIR.fsh new file mode 100644 index 0000000..a51d71e --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationVitalSignsPanelLMCDAFHIR.fsh @@ -0,0 +1,71 @@ +Instance: FRObservationVitalSignsPanelLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMSigneVital → FRCDASignesVitaux → FRObservationVitalSignsPanelDocument" +Description: "Mapping des éléments du modèle métier FRLMSigneVital vers le profil CDA FRCDASignesVitaux, puis vers le profil FHIR FRObservationVitalSignsPanelDocument." +* title = "Mapping Métier/CDA/FHIR : \"Signes vitaux\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-signe-vital" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-signes-vitaux" +// Élément racine +* group[=].element[+].code = #FRLMSigneVital +* group[=].element[=].target.code = #FRCDASignesVitaux +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMSigneVital.identifiant +* group[=].element[=].target.code = #FRCDASignesVitaux.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMSigneVital.code +* group[=].element[=].target.code = #FRCDASignesVitaux.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMSigneVital.statut +* group[=].element[=].target.code = #FRCDASignesVitaux.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'entrée +* group[=].element[+].code = #FRLMSigneVital.date +* group[=].element[=].target.code = #FRCDASignesVitaux.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMSigneVital.auteur +* group[=].element[=].target.code = #FRCDASignesVitaux.author +* group[=].element[=].target.equivalence = #equivalent +// Signe vital observé +* group[=].element[+].code = #FRLMSigneVital.signeVital +* group[=].element[=].target.code = #FRCDASignesVitaux.component:frSigneVitalObserve +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-signes-vitaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-vital-signs-panel-document" +// Élément racine +* group[=].element[+].code = #FRCDASignesVitaux +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDASignesVitaux.id +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDASignesVitaux.code +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDASignesVitaux.statusCode +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date de l'entrée +* group[=].element[+].code = #FRCDASignesVitaux.effectiveTime +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRCDASignesVitaux.author +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument.performer.extension:author +* group[=].element[=].target.equivalence = #equivalent +// Signe vital observé +* group[=].element[+].code = #FRCDASignesVitaux.component:frSigneVitalObserve +* group[=].element[=].target.code = #FRObservationVitalSignsPanelDocument.hasMember:FRObservationVitalSignsDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationWorkRelatedAccidentLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationWorkRelatedAccidentLMCDAFHIR.fsh new file mode 100644 index 0000000..c6a1454 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRObservationWorkRelatedAccidentLMCDAFHIR.fsh @@ -0,0 +1,70 @@ +Instance: FRObservationWorkRelatedAccidentLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEnRapportAvecAccidentTravail → FRCDAEnRapportAvecAccidentTravail → FRObservationWorkRelatedAccidentDocument" +Description: "Mapping des éléments du modèle métier FRLMEnRapportAvecAccidentTravail vers le profil CDA FRCDAEnRapportAvecAccidentTravail, puis vers le profil FHIR FRObservationWorkRelatedAccidentDocument." +* title = "Mapping Métier/CDA/FHIR : \"En rapport avec un accident travail\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-en-rapport-avec-accident-travail" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-en-rapport-avec-accident-travail" +// Élément racine +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail.identifiant +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail.code +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail.description +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail.statut +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail.horodatage +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l'observation +* group[=].element[+].code = #FRLMEnRapportAvecAccidentTravail.resultat +* group[=].element[=].target.code = #FRCDAEnRapportAvecAccidentTravail.value +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-en-rapport-avec-accident-travail" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-work-related-accident-document" +// Élément racine +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail.id +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail.code +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail.text +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail.statusCode +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Horodatage de l'entrée +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail.effectiveTime +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de l'observation +* group[=].element[+].code = #FRCDAEnRapportAvecAccidentTravail.value +* group[=].element[=].target.code = #FRObservationWorkRelatedAccidentDocument.valueBoolean +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRParticipantCorpsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRParticipantCorpsLMCDAFHIR.fsh new file mode 100644 index 0000000..7ef66a7 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRParticipantCorpsLMCDAFHIR.fsh @@ -0,0 +1,140 @@ +Instance: FRParticipantCorpsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMParticipantCorps -> FRCDAParticipant -> FRActorExtension" +Description: "Mapping des éléments du modele metier FRLMParticipantCorps vers le profil CDA FRCDAParticipant, puis vers l'extension FHIR FRActorExtension." +* title = "Mapping Metier/CDA/FHIR : \"Participant\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-participant-corps" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-participant" +// Element racine +* group[=].element[+].code = #FRLMParticipantCorps +* group[=].element[=].target.code = #FRCDAParticipant +* group[=].element[=].target.equivalence = #equivalent +// Date et heure de participation +* group[=].element[+].code = #FRLMParticipantCorps.dateEtHeureParticipation +* group[=].element[=].target.code = #FRCDAParticipant.time +* group[=].element[=].target.equivalence = #equivalent +// Identifiant du participant +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.IdentifiantParticipant +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.id +* group[=].element[=].target.equivalence = #equivalent +// Type de participant +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.typeParticipant +* group[=].element[=].target.code = #FRCDAParticipant.code +* group[=].element[=].target.equivalence = #equivalent +// Adresses du participant +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.adresses +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.addr +* group[=].element[=].target.equivalence = #equivalent +// Coordonnees telecom du participant +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.coordonneesTelecom +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.telecom +* group[=].element[=].target.equivalence = #equivalent +// nom du participant +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.identiteParticipant.nom +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingEntity.name +* group[=].element[=].target.equivalence = #equivalent +// Profession / specialite +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.identiteParticipant.ProfessionSpecialite +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingEntity.code +* group[=].element[=].target.equivalence = #equivalent +// Description +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.identiteParticipant.description +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingEntity.desc +* group[=].element[=].target.equivalence = #equivalent +// Organisation +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.Organisation +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.scopingEntity +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.Organisation.identifiant +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.scopingEntity.id +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.Organisation.code +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.scopingEntity.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.Organisation.description +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.scopingEntity.desc +* group[=].element[=].target.equivalence = #equivalent +// Dispositif automatique +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.dispositifAutomatique +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingDevice +* group[=].element[=].target.equivalence = #equivalent +// categorie du dispositif automatique +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.categorie +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingDevice.code +* group[=].element[=].target.equivalence = #equivalent +// nom du modele du dispositif automatique +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.nomModele +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingDevice.manufacturerModelName +* group[=].element[=].target.equivalence = #equivalent +// nom du logiciel du dispositif automatique +* group[=].element[+].code = #FRLMParticipantCorps.participantRole.nomLogiciel +* group[=].element[=].target.code = #FRCDAParticipant.participantRole.playingDevice.softwareName +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-participant" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-actor-extension" +// Element racine +* group[=].element[+].code = #FRCDAParticipant +* group[=].element[=].target.code = #FRActorExtension +* group[=].element[=].target.equivalence = #equivalent +// Type de participation +* group[=].element[+].code = #FRCDAParticipant.code +* group[=].element[=].target.code = #FRActorExtension.extension[typeCode].value[x] +* group[=].element[=].target.equivalence = #equivalent +// Identifiant du participant +* group[=].element[+].code = #FRCDAParticipant.participantRole.id +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FRPractitionerRoleDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Adresses du participant +* group[=].element[+].code = #FRCDAParticipant.participantRole.addr +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FRPractitionerRoleDocument.address +* group[=].element[=].target.equivalence = #equivalent +// Coordonnees telecom du participant +* group[=].element[+].code = #FRCDAParticipant.participantRole.telecom +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FRPractitionerRoleDocument.telecom +* group[=].element[=].target.equivalence = #equivalent +// nom du participant +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingEntity.name +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FRPractitionerRoleDocument.name +* group[=].element[=].target.equivalence = #equivalent +// Profession / specialite +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingEntity.code +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FRPractitionerRoleDocument.practitioner.qualification +* group[=].element[=].target.equivalence = #equivalent +// Description +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingEntity.desc +* group[=].element[=].target.equivalence = #unmatched +// Organisation +* group[=].element[+].code = #FRCDAParticipant.participantRole.scopingEntity +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FROrganizationDocument +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDAParticipant.participantRole.scopingEntity.id +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FROrganizationDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDAParticipant.participantRole.scopingEntity.code +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FROrganizationDocument.type +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[+].code = #FRCDAParticipant.participantRole.scopingEntity.desc +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:FROrganizationDocument.extension:description +* group[=].element[=].target.equivalence = #equivalent +// Dispositif automatique +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingDevice +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:Device +* group[=].element[=].target.equivalence = #equivalent +// categorie du dispositif automatique +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingDevice.code +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:Device.type +* group[=].element[=].target.equivalence = #equivalent +// nom du modele du dispositif automatique +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingDevice.manufacturerModelName +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:Device.manufacturer +* group[=].element[=].target.equivalence = #equivalent +// nom du logiciel du dispositif automatique +* group[=].element[+].code = #FRCDAParticipant.participantRole.playingDevice.softwareName +* group[=].element[=].target.code = #FRActorExtension.extension[actor].value[x]:Device.deviceName.name +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPatientWithNonHumanSubjectLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPatientWithNonHumanSubjectLMCDAFHIR.fsh new file mode 100644 index 0000000..d63eb82 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPatientWithNonHumanSubjectLMCDAFHIR.fsh @@ -0,0 +1,57 @@ +Instance: FRPatientWithNonHumanSubjectLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMPatientSujetNonHumain -> FRCDAPatientAvecSujetNonHumain -> FRObservationLaboratoryReportResultsDocument" +Description: "Mapping des éléments du modele metier FRLMPatientSujetNonHumain vers l'element CDA FRCDAPatientAvecSujetNonHumain, puis vers les ressources FHIR Observation/Specimen/Substance et Observation/subject." +* title = "Mapping Metier/CDA/FHIR : \"Patient avec sujet non humain\"" +* status = #draft + +// Groupe Mapping 1 : modele metier -> CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-patient-sujet-non-humain" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-patient-avec-sujet-non-humain" +// Element racine +* group[=].element[+].code = #FRLMPatientSujetNonHumain +* group[=].element[=].target.code = #FRCDAPatientAvecSujetNonHumain +* group[=].element[=].target.equivalence = #equivalent +// Sujet (non humain) +* group[=].element[+].code = #FRLMPatientSujetNonHumain.sujet +* group[=].element[=].target.code = #FRCDAPatientAvecSujetNonHumain.subject.relatedSubject.code +* group[=].element[=].target.equivalence = #equivalent +// Adresse +* group[=].element[+].code = #FRLMPatientSujetNonHumain.adresse +* group[=].element[=].target.code = #FRCDAPatientAvecSujetNonHumain.subject.relatedSubject.addr +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA -> FHIR (Patient CDA --> Subject FHIR) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-record-target" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// Patient (subject) +* group[=].element[+].code = #FRCDARecordTarget.patientRole +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.subject +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Subject = Reference(FRPatientINSDocument)." + +// Groupe Mapping 3 : CDA -> FHIR (Sujet non humain CDA --> Specimen FHIR) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-patient-avec-sujet-non-humain" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-laboratory-report-results-document" +// Sujet non humain (specimen) +* group[=].element[+].code = #FRCDAPatientAvecSujetNonHumain +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen +* group[=].element[=].target.equivalence = #equivalent +// Substance du sujet non humain +* group[=].element[+].code = #FRCDAPatientAvecSujetNonHumain.subject.relatedSubject.code +* group[=].element[=].target.code = #FRObservationLaboratoryReportResultsDocument.specimen.subject:Substance +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "specimen.subject = Reference(Substance)." + +// Groupe Mapping 4 : CDA -> FHIR (Sujet non humain CDA --> Substance FHIR) +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-patient-avec-sujet-non-humain" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/substance" +// Sujet non humain (substance.code) +* group[=].element[+].code = #FRCDAPatientAvecSujetNonHumain.subject.relatedSubject.code +* group[=].element[=].target.code = #Substance.code +* group[=].element[=].target.equivalence = #equivalent +// Catégorie du sujet non humain (substance.category) +* group[=].element[+].code = #FRCDAPatientAvecSujetNonHumain.subject.relatedSubject.code.qualifier.value +* group[=].element[=].target.code = #Substance.category +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPregnancyHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPregnancyHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..25003fb --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRPregnancyHistoryLMCDAFHIR.fsh @@ -0,0 +1,66 @@ +Instance: FRPregnancyHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMHistoriqueGrossesse → FRCDAHistoriqueDeLaGrossesse → FRPregnancyHistoryDocument" +Description: "Mapping des éléments du modèle métier FRLMHistoriqueGrossesse vers le profil CDA FRCDAHistoriqueDeLaGrossesse, puis vers le profil FHIR FRPregnancyHistoryDocument." +* title = "Mapping Métier/CDA/FHIR : \"Historique de la grossesse\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-historique-grossesse" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-de-la-grossesse" +// Élément racine +* group[=].element[+].code = #FRLMHistoriqueGrossesse +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMHistoriqueGrossesse.identifiant +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMHistoriqueGrossesse.code +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l’entrée +* group[=].element[+].code = #FRLMHistoriqueGrossesse.statut +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Période de la grossesse +* group[=].element[+].code = #FRLMHistoriqueGrossesse.periodeGrossesse +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// informations relatives à la grossesse +* group[=].element[+].code = #FRLMHistoriqueGrossesse.choice[x] +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frObservationSurLaGrossesse +* group[=].element[=].target.equivalence = #equivalent +// informations relatives à une naissance +* group[=].element[+].code = #FRLMHistoriqueGrossesse.choice[x] +* group[=].element[=].target.code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frNaissance +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-de-la-grossesse" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-pregnancy-history-document" +// Élément racine +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse +* group[=].element[=].target.code = #FRPregnancyHistoryDocument +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.id +* group[=].element[=].target.code = #FRPregnancyHistoryDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.code +* group[=].element[=].target.code = #FRPregnancyHistoryDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Période de la grossesse +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.effectiveTime +* group[=].element[=].target.code = #FRPregnancyHistoryDocument.date +* group[=].element[=].target.equivalence = #equivalent +// informations relatives à la grossesse +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frObservationSurLaGrossesse +* group[=].element[=].target.code = #FRPregnancyHistoryDocument.entry.item:FRObservationPregnancyDocument +* group[=].element[=].target.equivalence = #equivalent +// informations relatives à une naissance +* group[=].element[+].code = #FRCDAHistoriqueDeLaGrossesse.entryRelationship:frNaissance +* group[=].element[=].target.code = #FRPregnancyHistoryDocument.entry.item:FRObservationBirthEventDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRProcedureLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRProcedureLMCDAFHIR.fsh new file mode 100644 index 0000000..e3be18b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRProcedureLMCDAFHIR.fsh @@ -0,0 +1,191 @@ +Instance: FRProcedureLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMActe → FRCDAActe → FRProcedureDocument" +Description: "Mapping des éléments du modèle métier FRLMActe vers le profil CDA FRCDAActe, puis vers le profil FHIR FRProcedureDocument." + +* title = "Mapping Métier/CDA/FHIR : \"Acte\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-acte" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-acte" + +* group[=].element[+].code = #FRLMActe +* group[=].element[=].target.code = #FRCDAActe +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.identifiant +* group[=].element[=].target.code = #FRCDAActe.id +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.description +* group[=].element[=].target.code = #FRCDAActe.text +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.code +* group[=].element[=].target.code = #FRCDAActe.code +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.titre +* group[=].element[=].target.equivalence = #unmatched +* group[=].element[=].target.comment = "Le titre métier n’a pas d’équivalent structuré en CDA." + +* group[=].element[+].code = #FRLMActe.statut +* group[=].element[=].target.code = #FRCDAActe.statusCode +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.date +* group[=].element[=].target.code = #FRCDAActe.effectiveTime +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.priorite +* group[=].element[=].target.code = #FRCDAActe.priorityCode +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.localisationAnatomique +* group[=].element[=].target.code = #FRCDAActe.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.voieDAbord +* group[=].element[=].target.code = #FRCDAActe.approachSiteCode +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.perfomer +* group[=].element[=].target.code = #FRCDAActe.performer +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.auteur +* group[=].element[=].target.code = #FRCDAActe.author +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.informateur +* group[=].element[=].target.code = #FRCDAActe.informant +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.participant +* group[=].element[=].target.code = #FRCDAActe.participant +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.circonstances +* group[=].element[=].target.code = #FRCDAActe.entryRelationship:frReferenceInterneCirconstances +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.reason +* group[=].element[=].target.code = #FRCDAActe.entryRelationship:frReferenceInterneMotifActe +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.dispositifMedical +* group[=].element[=].target.code = #FRCDAActe.entryRelationship:frReferenceInterneDM +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.difficulte +* group[=].element[=].target.code = #FRCDAActe.entryRelationship:frSimpleObservationDifficulte +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRLMActe.scores +* group[=].element[=].target.code = #FRCDAActe.entryRelationship:frSimpleObservationScores +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-acte" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-procedure-document" + +/* Element racine */ +* group[=].element[+].code = #FRCDAActe +* group[=].element[=].target.code = #FRProcedureDocument +* group[=].element[=].target.equivalence = #equivalent + +/* Identifiant */ +* group[=].element[+].code = #FRCDAActe.id +* group[=].element[=].target.code = #FRProcedureDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "L'élément id en CDA devient identifier en FHIR." + +/* Code de l'acte */ +* group[=].element[+].code = #FRCDAActe.code +* group[=].element[=].target.code = #FRProcedureDocument.code +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Le code CDA correspond au code FHIR." + +/* Date effectiveTime */ +* group[=].element[+].code = #FRCDAActe.effectiveTime +* group[=].element[=].target.code = #FRProcedureDocument.performed[x] +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "effectiveTime → performedDateTime ou performedPeriod." + +/* Texte narratif */ +* group[=].element[+].code = #FRCDAActe.text +* group[=].element[=].target.code = #FRProcedureDocument.note +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "text CDA devient note/annotation FHIR." + +/* Statut */ +* group[=].element[+].code = #FRCDAActe.statusCode +* group[=].element[=].target.code = #FRProcedureDocument.status +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "statusCode CDA → status FHIR." + +/* Référence interne DM */ +* group[=].element[+].code = #FRCDAActe.entryRelationship:frReferenceInterneDM +* group[=].element[=].target.code = #FRProcedureDocument.usedReference +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "DM référencé dans usedReference." + +/* Observations liées aux scores */ +* group[=].element[+].code = #FRCDAActe.entryRelationship:frSimpleObservationScores +* group[=].element[=].target.code = #FRProcedureDocument.partOf +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Les observations liées aux scores deviennent partOf." + +/* Performers / Informant / Participant */ +* group[=].element[+].code = #FRCDAActe.performer +* group[=].element[=].target.code = #FRProcedureDocument.performer.actor.extension:Intervenant +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRCDAActe.informant +* group[=].element[=].target.code = #FRProcedureDocument.performer.actor.extension:Informateur +* group[=].element[=].target.equivalence = #equivalent + +* group[=].element[+].code = #FRCDAActe.participant +* group[=].element[=].target.code = #FRProcedureDocument.performer.actor.extension:Participant +* group[=].element[=].target.equivalence = #equivalent + +/* Motif de l'acte */ +* group[=].element[+].code = #FRCDAActe.entryRelationship:frReferenceInterneMotifActe +* group[=].element[=].target.code = #FRProcedureDocument.reasonReference +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Motif de l'acte en CDA correspond à reasonReference en FHIR." + +/* Rencontre associée */ +* group[=].element[+].code = #FRCDAActe.entryRelationship:frReferenceInterneCirconstances +* group[=].element[=].target.code = #FRProcedureDocument.encounter +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Référence de contexte CDA → Encounter FHIR." + +/* Difficulté */ +* group[=].element[+].code = #FRCDAActe.entryRelationship:frSimpleObservationDifficulte +* group[=].element[=].target.code = #FRProcedureDocument.extension:difficulte +* group[=].element[=].target.equivalence = #equivalent + +/* author → recorder */ +* group[=].element[+].code = #FRCDAActe.author +* group[=].element[=].target.code = #FRProcedureDocument.recorder.extension:author +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "author CDA → recorder FHIR." + +/* Priorité */ +* group[=].element[+].code = #FRCDAActe.priorityCode +* group[=].element[=].target.code = #FRProcedureDocument.extension:priority +* group[=].element[=].target.equivalence = #equivalent + +/* Localisation anatomique */ +* group[=].element[+].code = #FRCDAActe.targetSiteCode +* group[=].element[=].target.code = #FRProcedureDocument.bodySite.TargetSiteCode +* group[=].element[=].target.equivalence = #equivalent + +/* Voie d'abord */ +* group[=].element[+].code = #FRCDAActe.approachSiteCode +* group[=].element[=].target.code = #FRProcedureDocument.bodySite.ApproachSiteCode +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..5c0b22a --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRResultsLMCDAFHIR.fsh @@ -0,0 +1,75 @@ +Instance: FRResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatsEntry → FRCDAResultats → FRDiagnosticReportDocument" +Description: "Mapping des éléments du modèle métier FRLMResultatsEntry vers le profil CDA FRCDAResultats, puis vers le profil FHIR FRDiagnosticReportDocument." +* title = "Mapping Métier/CDA/FHIR : \"Résultats classés par type d’examens (BIO, IMG, etc…)\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-entry" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats" +// Élément racine +* group[=].element[+].code = #FRLMResultatsEntry +* group[=].element[=].target.code = #FRCDAResultats +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.identifiant +* group[=].element[=].target.code = #FRCDAResultats.id +* group[=].element[=].target.equivalence = #equivalent +// Code de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.code +* group[=].element[=].target.code = #FRCDAResultats.code +* group[=].element[=].target.equivalence = #equivalent +// Statut de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.statut +* group[=].element[=].target.code = #FRCDAResultats.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date de l'entrée +* group[=].element[+].code = #FRLMResultatsEntry.date +* group[=].element[=].target.code = #FRCDAResultats.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Exécutant (laboratoire) +* group[=].element[+].code = #FRLMResultatsEntry.executant +* group[=].element[=].target.code = #FRCDAResultats.performer +* group[=].element[=].target.equivalence = #equivalent +// Auteur +* group[=].element[+].code = #FRLMResultatsEntry.auteur +* group[=].element[=].target.code = #FRCDAResultats.author +* group[=].element[=].target.equivalence = #equivalent +// Résultat (observation) +* group[=].element[+].code = #FRLMResultatsEntry.resultat +* group[=].element[=].target.code = #FRCDAResultats.component:frResultat +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA FRCDAResultats → FHIR FRDiagnosticReportDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-diagnostic-report-document" +// Identifiant +* group[=].element[+].code = #FRCDAResultats.id +* group[=].element[=].target.code = #FRDiagnosticReportDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Code +* group[=].element[+].code = #FRCDAResultats.code +* group[=].element[=].target.code = #FRDiagnosticReportDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Statut +* group[=].element[+].code = #FRCDAResultats.statusCode +* group[=].element[=].target.code = #FRDiagnosticReportDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date (effectiveTime) +* group[=].element[+].code = #FRCDAResultats.effectiveTime +* group[=].element[=].target.code = #FRDiagnosticReportDocument.effectiveDateTime +* group[=].element[=].target.equivalence = #equivalent +// Exécutant (performer) +* group[=].element[+].code = #FRCDAResultats.performer +* group[=].element[=].target.code = #FRDiagnosticReportDocument.performer +* group[=].element[=].target.equivalence = #equivalent +// Auteur (author) +* group[=].element[+].code = #FRCDAResultats.author +* group[=].element[=].target.code = #FRDiagnosticReportDocument.resultsInterpreter +* group[=].element[=].target.equivalence = #equivalent +// Résultats (component → result) +* group[=].element[+].code = #FRCDAResultats.component:frResultat +* group[=].element[=].target.code = #FRDiagnosticReportDocument.result:FRObservationResultDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRServiceRequestLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRServiceRequestLMCDAFHIR.fsh new file mode 100644 index 0000000..c63d5d9 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRServiceRequestLMCDAFHIR.fsh @@ -0,0 +1,107 @@ +Instance: FRServiceRequestLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDemandeExamenOuSuivi → FRCDADemandeDExamenOuDeSuivi → FRServiceRequestDocument" +Description: "Mapping des éléments du modèle métier FRLMDemandeExamenOuSuivi vers le profil CDA FRCDADemandeDExamenOuDeSuivi, puis vers le profil FHIR FRServiceRequestDocument." +* title = "Mapping Métier/CDA/FHIR : \"Demande d'examen ou de suivi\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-demande-examen-ou-suivi" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-demande-d-examen-ou-de-suivi" +// Élément racine +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.identifiant +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.id +* group[=].element[=].target.equivalence = #equivalent +// Type de la demande +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.typeDemande +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'entrée +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.description +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.text +* group[=].element[=].target.equivalence = #equivalent +// Statut de la demande +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.statutDemande +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.statusCode +* group[=].element[=].target.equivalence = #equivalent +// Date prévisionnelle de l'examen, du suivi, de l'objectif +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.date +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Résultat de la demande +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.resultat +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.value +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.interpretation +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.interpretationCode +* group[=].element[=].target.equivalence = #equivalent +// Méthode +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.methode +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.methodCode +* group[=].element[=].target.equivalence = #equivalent +// Cible +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.cible +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Auteur de la demande +* group[=].element[+].code = #FRLMDemandeExamenOuSuivi.auteur +* group[=].element[=].target.code = #FRCDADemandeDExamenOuDeSuivi.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-demande-d-examen-ou-de-suivi" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-service-request-document" +// Élément racine +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi +* group[=].element[=].target.code = #FRServiceRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// intent de la demande (moodCode en CDA) +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.moodCode +* group[=].element[=].target.code = #FRServiceRequestDocument.intent +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de l'entrée +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.id +* group[=].element[=].target.code = #FRServiceRequestDocument.identifier +* group[=].element[=].target.equivalence = #equivalent +// Type de la demande +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.code +* group[=].element[=].target.code = #FRServiceRequestDocument.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'entrée +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.text +* group[=].element[=].target.code = #FRServiceRequestDocument.note +* group[=].element[=].target.equivalence = #equivalent +// Statut de la demande +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.statusCode +* group[=].element[=].target.code = #FRServiceRequestDocument.status +* group[=].element[=].target.equivalence = #equivalent +// Date prévisionnelle de l'examen, du suivi, de l'objectif +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.effectiveTime +* group[=].element[=].target.code = #FRServiceRequestDocument.occurrence[x] +* group[=].element[=].target.equivalence = #equivalent +// Résultat de la demande +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.value +* group[=].element[=].target.code = #FRServiceRequestDocument.orderDetail.coding +* group[=].element[=].target.equivalence = #equivalent +// Interprétation +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.interpretationCode +* group[=].element[=].target.code = #FRServiceRequestDocument.extension:interpretation +* group[=].element[=].target.equivalence = #equivalent +// Méthode +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.methodCode +* group[=].element[=].target.code = #FRServiceRequestDocument.extension:method +* group[=].element[=].target.equivalence = #equivalent +// Cible +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.targetSiteCode +* group[=].element[=].target.code = #FRServiceRequestDocument.bodySite +* group[=].element[=].target.equivalence = #equivalent +// Auteur de la demande +* group[=].element[+].code = #FRCDADemandeDExamenOuDeSuivi.author +* group[=].element[=].target.code = #FRServiceRequestDocument.requester.extension:author +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRSpecimenLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRSpecimenLMCDAFHIR.fsh new file mode 100644 index 0000000..93dac7d --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/composantsElementaires/FRSpecimenLMCDAFHIR.fsh @@ -0,0 +1,87 @@ +Instance: FRSpecimenLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMPrelevement → FRCDAPrelevement → FRSpecimenDocument" +Description: "Mapping des éléments du modèle métier FRLMPrelevement vers le profil CDA FRCDAPrelevement, puis vers le profil FHIR FRSpecimenDocument." +* title = "Mapping Métier/CDA/FHIR : \"Prélèvement\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-prelevement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-prelevement" +// Élément racine +* group[=].element[+].code = #FRLMPrelevement +* group[=].element[=].target.code = #FRCDAPrelevement +* group[=].element[=].target.equivalence = #equivalent +// Acte de prélèvement +* group[=].element[+].code = #FRLMPrelevement.actePrelevement +* group[=].element[=].target.code = #FRCDAPrelevement.code +* group[=].element[=].target.equivalence = #equivalent +// Date du prélèvement +* group[=].element[+].code = #FRLMPrelevement.datePrelevement +* group[=].element[=].target.code = #FRCDAPrelevement.effectiveTime +* group[=].element[=].target.equivalence = #equivalent +// Localisation du prélèvement +* group[=].element[+].code = #FRLMPrelevement.localisationPrelevement +* group[=].element[=].target.code = #FRCDAPrelevement.targetSiteCode +* group[=].element[=].target.equivalence = #equivalent +// Organisation prélevante +* group[=].element[+].code = #FRLMPrelevement.performer +* group[=].element[=].target.code = #FRCDAPrelevement.performer +* group[=].element[=].target.equivalence = #equivalent +// Échantillon prélevé (en CDA participant/@typeCode="PRD" -> specimen) +* group[=].element[+].code = #FRLMPrelevement.echantillonPreleve +* group[=].element[=].target.code = #FRCDAPrelevement.participant:echantillonPreleve +* group[=].element[=].target.equivalence = #equivalent +// Dispositif utilisé (en CDA participant/@typeCode="DEV" -> Device) +* group[=].element[+].code = #FRLMPrelevement.dispositifUtilise +* group[=].element[=].target.code = #FRCDAPrelevement.participant:dispositifUtilise +* group[=].element[=].target.equivalence = #equivalent +// Produit utilisé (en CDA participant/@typeCode="CSM" -> Consumable) +* group[=].element[+].code = #FRLMPrelevement.produitUtilise +* group[=].element[=].target.code = #FRCDAPrelevement.participant:produitUtilise +* group[=].element[=].target.equivalence = #equivalent +// Date de réception de l'échantillon +* group[=].element[+].code = #FRLMPrelevement.dateReceptionEchantillon +* group[=].element[=].target.code = #FRCDAPrelevement.entryRelationship.act +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-prelevement" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-specimen-document" +// Élément racine +* group[=].element[+].code = #FRCDAPrelevement +* group[=].element[=].target.code = #FRSpecimenDocument +* group[=].element[=].target.equivalence = #equivalent +// Acte de prélèvement +* group[=].element[+].code = #FRCDAPrelevement.code +* group[=].element[=].target.code = #FRSpecimenDocument.processing.procedure.coding.code +* group[=].element[=].target.equivalence = #equivalent +// Date du prélèvement +* group[=].element[+].code = #FRCDAPrelevement.effectiveTime +* group[=].element[=].target.code = #FRSpecimenDocument.collection.collected[x] +* group[=].element[=].target.equivalence = #equivalent +// Localisation du prélèvement +* group[=].element[+].code = #FRCDAPrelevement.targetSiteCode +* group[=].element[=].target.code = #FRSpecimenDocument.collection.bodySite +* group[=].element[=].target.equivalence = #equivalent +// Organisation prélevante +* group[=].element[+].code = #FRCDAPrelevement.performer +* group[=].element[=].target.code = #FRSpecimenDocument.collection.collector +* group[=].element[=].target.equivalence = #equivalent +// Échantillon prélevé +* group[=].element[+].code = #FRCDAPrelevement.participant:echantillonPreleve +* group[=].element[=].target.code = #FRSpecimenDocument.type +* group[=].element[=].target.equivalence = #equivalent +// Dispositif utilisé +* group[=].element[+].code = #FRCDAPrelevement.participant:dispositifUtilise +* group[=].element[=].target.code = #FRSpecimenDocument.container +* group[=].element[=].target.equivalence = #equivalent +// Produit utilisé +* group[=].element[+].code = #FRCDAPrelevement.participant:produitUtilise +* group[=].element[=].target.code = #FRSpecimenDocument.processing.additive:Substance +* group[=].element[=].target.equivalence = #equivalent +// Date de réception de l'échantillon +* group[=].element[+].code = #FRCDAPrelevement.entryRelationship.act +* group[=].element[=].target.code = #FRSpecimenDocument.receivedTime +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionActiveProblemsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionActiveProblemsLMCDAFHIR.fsh new file mode 100644 index 0000000..892a0c4 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionActiveProblemsLMCDAFHIR.fsh @@ -0,0 +1,54 @@ +Instance: FRSectionActiveProblemsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMProblemesActifs → FRCDAProblemesActifs → FRCompositionDocument.section:activeProblems" +Description: "Mapping des éléments du modèle métier FRLMProblemesActifs vers la section CDA FRCDAProblemesActifs, puis vers la section FHIR FRCompositionDocument.section:activeProblems." +* title = "Mapping Métier/CDA/FHIR : \"Problèmes actifs\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-problemes-actifs" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-problemes-actifs" +// élément racine +* group[=].element[+].code = #FRLMProblemesActifs +* group[=].element[=].target[+].code = #FRCDAProblemesActifs +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMProblemesActifs.codeSection +* group[=].element[=].target[+].code = #FRCDAProblemesActifs.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMProblemesActifs.titreSection +* group[=].element[=].target[+].code = #FRCDAProblemesActifs.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMProblemesActifs.blocNarratif +* group[=].element[=].target[+].code = #FRCDAProblemesActifs.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Problèmes actifs +* group[=].element[+].code = #FRLMProblemesActifs.entree.problemes +* group[=].element[=].target[+].code = #FRCDAProblemesActifs.entry:FRCDAListeDesProblemes +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-problemes-actifs" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAProblemesActifs +* group[=].element[=].target[+].code = #FRCompositionDocument.section:activeProblems +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAProblemesActifs.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:activeProblems.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAProblemesActifs.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:activeProblems.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAProblemesActifs.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:activeProblems.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Problèmes actifs +* group[=].element[+].code = #FRCDAProblemesActifs.entry:FRCDAListeDesProblemes +* group[=].element[=].target[+].code = #FRCompositionDocument.section:activeProblems.entry:FRConditionDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAddedDocumentsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAddedDocumentsLMCDAFHIR.fsh new file mode 100644 index 0000000..11d7975 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAddedDocumentsLMCDAFHIR.fsh @@ -0,0 +1,63 @@ +Instance: FRSectionAddedDocumentsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDocumentsAjoutes → FRCDADocumentsAjoutes → FRCompositionDocument.section:addedDocuments" +Description: "Mapping des éléments du modèle métier FRLMDocumentsAjoutes vers la section CDA FRCDADocumentsAjoutes, puis vers la section FHIR FRCompositionDocument.section:addedDocuments." +* title = "Mapping Métier/CDA/FHIR : \"Documents ajoutés\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-documents-ajoutes" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-documents-ajoutes" +// élément racine +* group[=].element[+].code = #FRLMDocumentsAjoutes +* group[=].element[=].target[+].code = #FRCDADocumentsAjoutes +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMDocumentsAjoutes.codeSection +* group[=].element[=].target[+].code = #FRCDADocumentsAjoutes.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMDocumentsAjoutes.titreSection +* group[=].element[=].target[+].code = #FRCDADocumentsAjoutes.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMDocumentsAjoutes.blocNarratif +* group[=].element[=].target[+].code = #FRCDADocumentsAjoutes.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Document attaché +* group[=].element[+].code = #FRLMDocumentsAjoutes.entree.documentAttache +* group[=].element[=].target[+].code = #FRCDADocumentsAjoutes.entry:frDocumentAttache +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRLMDocumentsAjoutes.entree.simpleObservation +* group[=].element[=].target[+].code = #FRCDADocumentsAjoutes.entry:frSimpleObservation +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-documents-ajoutes" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDADocumentsAjoutes +* group[=].element[=].target[+].code = #FRCompositionDocument.section:addedDocuments +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADocumentsAjoutes.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:addedDocuments.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDADocumentsAjoutes.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:addedDocuments.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDADocumentsAjoutes.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:addedDocuments.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Document attaché +* group[=].element[+].code = #FRCDADocumentsAjoutes.entry:frDocumentAttache +* group[=].element[=].target[+].code = #FRCompositionDocument.section:addedDocuments.entry:FRDocumentReferenceDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRCDADocumentsAjoutes.entry:frSimpleObservation +* group[=].element[=].target[+].code = #FRCompositionDocument.section:addedDocuments.entry:Observation +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdvanceDirectiveLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdvanceDirectiveLMCDAFHIR.fsh new file mode 100644 index 0000000..f24886a --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdvanceDirectiveLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionAdvanceDirectiveLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDirectivesAnticipees → FRCDADirectivesAnticipees → FRAdvanceDirectiveDocument" +Description: "Mapping des éléments du modèle métier FRLMDirectivesAnticipees vers la section CDA FRCDADirectivesAnticipees, puis vers le profil FHIR FRAdvanceDirectiveDocument." +* title = "Mapping Métier/CDA/FHIR : \"Directives anticipées\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-directives-anticipees" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-directives-anticipees" +// Élément racine +* group[=].element[+].code = #FRLMDirectivesAnticipees +* group[=].element[=].target.code = #FRCDADirectivesAnticipees +* group[=].element[=].target.equivalence = #equivalent +//code de la section +* group[=].element[+].code = #FRLMDirectivesAnticipees.codeSection +* group[=].element[=].target.code = #FRCDADirectivesAnticipees.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMDirectivesAnticipees.titreSection +* group[=].element[=].target.code = #FRCDADirectivesAnticipees.title +* group[=].element[=].target.equivalence = #equivalent +// texte de la section +* group[=].element[+].code = #FRLMDirectivesAnticipees.blocNarratif +* group[=].element[=].target.code = #FRCDADirectivesAnticipees.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée Directive anticipée +* group[=].element[+].code = #FRLMDirectivesAnticipees.entree +* group[=].element[=].target.code = #FRCDADirectivesAnticipees.entry:FRCDADirectiveAnticipee +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-directives-anticipees" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADirectivesAnticipees +* group[=].element[=].target.code = #FRCompositionDocument.section:advanceDirective +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADirectivesAnticipees.code +* group[=].element[=].target.code = #FRCompositionDocument.section:advanceDirective.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADirectivesAnticipees.title +* group[=].element[=].target.code = #FRCompositionDocument.section:advanceDirective.title +* group[=].element[=].target.equivalence = #equivalent +// texte de la section +* group[=].element[+].code = #FRCDADirectivesAnticipees.text +* group[=].element[=].target.code = #FRCompositionDocument.section:advanceDirective.text +* group[=].element[=].target.equivalence = #equivalent +// Entrées Directives anticipées +* group[=].element[+].code = #FRCDADirectivesAnticipees.entry:FRCDADirectiveAnticipee +* group[=].element[=].target.code = #FRCompositionDocument.section:advanceDirective.entry:FRAdvanceDirectiveDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdverseEventLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdverseEventLMCDAFHIR.fsh new file mode 100644 index 0000000..d2f670d --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAdverseEventLMCDAFHIR.fsh @@ -0,0 +1,50 @@ +Instance: FRSectionAdverseEventLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEffetsIndesirables → FRCDAEffetsIndesirables → FRCompositionDocument.section:adverseEvent" +Description: "Mapping des éléments du modèle métier FRLMEffetsIndesirables vers la section CDA FRCDAEffetsIndesirables, puis vers la section FHIR FRCompositionDocument.section:adverseEvent." +* title = "Mapping Métier/CDA/FHIR : \"Effets indésirables\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-effets-indesirables" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-effets-indesirables" +// élément racine +* group[=].element[+].code = #FRLMEffetsIndesirables +* group[=].element[=].target[+].code = #FRCDAEffetsIndesirables +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMEffetsIndesirables.titreSection +* group[=].element[=].target[+].code = #FRCDAEffetsIndesirables.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMEffetsIndesirables.blocNarratif +* group[=].element[=].target[+].code = #FRCDAEffetsIndesirables.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Effet indésirable +* group[=].element[+].code = #FRLMEffetsIndesirables.entree.effetIndesirable +* group[=].element[=].target[+].code = #FRCDAEffetsIndesirables.entry:FRCDAEffetIndesirable +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-effets-indesirables" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAEffetsIndesirables +* group[=].element[=].target[+].code = #FRCompositionDocument.section:adverseEvent +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAEffetsIndesirables.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:adverseEvent.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAEffetsIndesirables.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:adverseEvent.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAEffetsIndesrables.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:adverseEvent.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Effet indésirable +* group[=].element[+].code = #FRCDAEffetsIndesirables.entry:FRCDAEffetIndesirable +* group[=].element[=].target[+].code = #FRCompositionDocument.section:adverseEvent.entry:FRAdverseEventDocument +* group[=].element[=].target[=].equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAllergyIntoleranceLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAllergyIntoleranceLMCDAFHIR.fsh new file mode 100644 index 0000000..3d56aac --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionAllergyIntoleranceLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionAllergyIntoleranceLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Allergies et intolérances" +Description: "Mapping des éléments du modèle métier FRLMAllergiesEtHypersensibilites vers la section CDA FRCDAAllergiesEtHypersensibilites, puis vers le profil FHIR FRCompositionDocument.section:AllergyIntolerance." +* title = "Mapping Métier/CDA/FHIR : \"Allergies et intolérances\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-allergies-et-hypersensibilites" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-allergies-et-hypersensibilites" +// Élément racine +* group[=].element[+].code = #FRLMAllergiesEtHypersensibilites +* group[=].element[=].target.code = #FRCDAAllergiesEtHypersensibilites +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMAllergiesEtHypersensibilites.codeSection +* group[=].element[=].target.code = #FRCDAAllergiesEtHypersensibilites.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMAllergiesEtHypersensibilites.titreSection +* group[=].element[=].target.code = #FRCDAAllergiesEtHypersensibilites.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMAllergiesEtHypersensibilites.blocNarratif +* group[=].element[=].target.code = #FRCDAAllergiesEtHypersensibilites.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Allergie ou intolérance +* group[=].element[+].code = #FRLMAllergiesEtHypersensibilites.entree.allergieOuHypersensibilite +* group[=].element[=].target.code = #FRCDAAllergiesEtHypersensibilites.entry:FRCDAListeDesAllergiesEtHypersensibilites +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-allergies-et-hypersensibilites" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAAllergiesEtHypersensibilites +* group[=].element[=].target.code = #FRCompositionDocument.section:AllergyIntolerance +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDAAllergiesEtHypersensibilites.code +* group[=].element[=].target.code = #FRCompositionDocument.section:AllergyIntolerance.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAAllergiesEtHypersensibilites.title +* group[=].element[=].target.code = #FRCompositionDocument.section:AllergyIntolerance.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDAAllergiesEtHypersensibilites.text +* group[=].element[=].target.code = #FRCompositionDocument.section:AllergyIntolerance.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Allergie ou intolérance +* group[=].element[+].code = #FRCDAAllergiesEtHypersensibilites.entry:FRCDAListeDesAllergiesEtHypersensibilites +* group[=].element[=].target.code = #FRCompositionDocument.section:AllergyIntolerance.entry:FRAllergyIntoleranceDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionBarCodesLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionBarCodesLMCDAFHIR.fsh new file mode 100644 index 0000000..4a4eb2b --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionBarCodesLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionBarCodesLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Codes-barres" +Description: "Mapping des éléments du modèle métier FRLMCodesAbarres vers la section CDA FRCDACodeABarres, puis vers la section FHIR FRCompositionDocument.section:barCodes." +* title = "Mapping Métier/CDA/FHIR : \"Code à barres\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-codes-a-barres" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-code-a-barres" +// Élément racine +* group[=].element[+].code = #FRLMCodesAbarres +* group[=].element[=].target.code = #FRCDACodeABarres +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMCodesAbarres.codeSection +* group[=].element[=].target.code = #FRCDACodeABarres.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMCodesAbarres.titreSection +* group[=].element[=].target.code = #FRCDACodeABarres.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMCodesAbarres.blocNarratif +* group[=].element[=].target.code = #FRCDACodeABarres.text +* group[=].element[=].target.equivalence = #equivalent +// Code à barres +* group[=].element[+].code = #FRLMCodesAbarres.entree.imageIllustrative +* group[=].element[=].target.code = #FRCDACodeABarres.entry.FRCDACodeABarres +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-code-a-barres" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDACodeABarres +* group[=].element[=].target.code = #FRCompositionDocument.section:barCodes +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDACodeABarres.code +* group[=].element[=].target.code = #FRCompositionDocument.section:barCodes.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDACodeABarres.title +* group[=].element[=].target.code = #FRCompositionDocument.section:barCodes.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDACodeABarres.text +* group[=].element[=].target.code = #FRCompositionDocument.section:barCodes.text +* group[=].element[=].target.equivalence = #equivalent +// Code à barres +* group[=].element[+].code = #FRCDACodeABarres.entry.FRCDACodeABarres +* group[=].element[=].target.code = #FRCompositionDocument.section:barCodes.entry:FRCDAMediaDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionCarePlanLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionCarePlanLMCDAFHIR.fsh new file mode 100644 index 0000000..8fb0519 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionCarePlanLMCDAFHIR.fsh @@ -0,0 +1,86 @@ +Instance: FRSectionCarePlanLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMPlanSoins → FRCDAPlanDeSoins → FRCompositionDocument.section:planOfCare" +Description: "Mapping des éléments du modèle métier FRLMPlanSoins vers la section CDA FRCDAPlanDeSoins, puis vers la section FHIR FRCompositionDocument.section:planOfCare." +* title = "Mapping Métier/CDA/FHIR : \"Plan de soins\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-plan-soins" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-plan-de-soins" +// élément racine +* group[=].element[+].code = #FRLMPlanSoins +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMPlanSoins.codeSection +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMPlanSoins.titreSection +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMPlanSoins.blocNarratif +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Plan de soins +* group[=].element[+].code = #FRLMPlanSoins.entree.actes +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.entry:FRCDAActe +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Demande d'examen ou de suivi +* group[=].element[+].code = #FRLMPlanSoins.entree.demandeExamenOuSuivi +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.entry:FRCDADemandeDExamenOuDeSuivi +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Traitement +* group[=].element[+].code = #FRLMPlanSoins.entree.traitement +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.entry:FRCDATraitement +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Vaccin recommandé +* group[=].element[+].code = #FRLMPlanSoins.entree.vaccinRecommande +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.entry:FRCDAVaccinRecommande +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Rencontre +* group[=].element[+].code = #FRLMPlanSoins.entree.rencontre +* group[=].element[=].target[+].code = #FRCDAPlanDeSoins.entry:FRCDARencontre +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-plan-de-soins" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAPlanDeSoins +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAPlanDeSoins.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAPlanDeSoins.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAPlanDeSoins.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Plan de soins +* group[=].element[+].code = #FRCDAPlanDeSoins.entry:FRCDAActe +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.entry:FRProcedureActDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Demande d'examen ou de suivi +* group[=].element[+].code = #FRCDAPlanDeSoins.entry:FRCDADemandeDExamenOuDeSuivi +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.entry:FRServiceRequestDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Traitement +* group[=].element[+].code = #FRCDAPlanDeSoins.entry:FRCDATraitement +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.entry:FRMedicationAdministrationDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Vaccin recommandé +* group[=].element[+].code = #FRCDAPlanDeSoins.entry:FRCDAVaccinRecommande +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.entry:FRImmunizationRecommendationDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Rencontre +* group[=].element[+].code = #FRCDAPlanDeSoins.entry:FRCDARencontre +* group[=].element[=].target[+].code = #FRCompositionDocument.section:planOfCare.entry:FREncounterDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionDocumentStatusLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionDocumentStatusLMCDAFHIR.fsh new file mode 100644 index 0000000..0d8bfa9 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionDocumentStatusLMCDAFHIR.fsh @@ -0,0 +1,56 @@ +Instance: FRSectionDocumentStatusLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMStatutDocument -> FRCDAStatutDuDocument -> FRComposition.section" +Description: "Mapping des éléments du modèle métier FRLMStatutDocument vers la section CDA FRCDAStatutDuDocument, puis vers la section FHIR FRCompositionDocument.section:documentStatus." +* title = "Mapping Métier/CDA/FHIR : \"Statut du document\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-statut-document" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-statut-du-document" +// élément racine +* group[=].element[+].code = #FRLMStatutDocument +* group[=].element[=].target[+].code = #FRCDAStatutDuDocument +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMStatutDocument.codeSection +* group[=].element[=].target[+].code = #FRCDAStatutDuDocument.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMStatutDocument.titreSection +* group[=].element[=].target[+].code = #FRCDAStatutDuDocument.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMStatutDocument.blocNarratif +* group[=].element[=].target[+].code = #FRCDAStatutDuDocument.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Statut du document +* group[=].element[+].code = #FRLMStatutDocument.entree.statutDocument +* group[=].element[=].target[+].code = #FRCDAStatutDuDocument.entry:FRCDAStatutDocument +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-statut-du-document" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAStatutDuDocument +* group[=].element[=].target[+].code = #FRCompositionDocument.section:documentStatus +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAStatutDuDocument.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:documentStatus.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAStatutDuDocument.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:documentStatus.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAStatutDuDocument.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:documentStatus.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Statut du document +* group[=].element[+].code = #FRCDAStatutDuDocument.entry:FRCDAStatutDocument +* group[=].element[=].target[+].code = #FRCompositionDocument.section:documentStatus.entry:Observation.status.extension:FRStatusReasonExtension +* group[=].element[=].target[=].equivalence = #equivalent + diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExaminationResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExaminationResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..c5ea442 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExaminationResultsLMCDAFHIR.fsh @@ -0,0 +1,71 @@ +Instance: FRSectionExaminationResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatsExamens → FRCDAResultatsExamens → FRCompositionDocument.section:Results" +Description: "Mapping des éléments du modèle métier FRLMResultatsExamens vers la section CDA FRCDAResultatsExamens puis vers le profil FHIR FRCompositionDocument.section:Results." +* title = "Mapping Métier/CDA/FHIR : Résultats d'examen" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-examens" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats-examens" +// Élément racine +* group[=].element[+].code = #FRLMResultatsExamens +* group[=].element[=].target.code = #FRCDAResultatsExamens +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMResultatsExamens.codeSection +* group[=].element[=].target.code = #FRCDAResultatsExamens.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMResultatsExamens.titreSection +* group[=].element[=].target.code = #FRCDAResultatsExamens.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRLMResultatsExamens.blocNarratif +* group[=].element[=].target.code = #FRCDAResultatsExamens.text +* group[=].element[=].target.equivalence = #equivalent +// actes +* group[=].element[+].code = #FRLMResultatsExamens.entree.actes +* group[=].element[=].target.code = #FRCDAResultatsExamens.entry:FRCDAActe +* group[=].element[=].target.equivalence = #equivalent +// références externes +* group[=].element[+].code = #FRLMResultatsExamens.entree.referencesExternes +* group[=].element[=].target.code = #FRCDAResultatsExamens.entry:FRCDAReferencesExternes +* group[=].element[=].target.equivalence = #equivalent +// observations +* group[=].element[+].code = #FRLMResultatsExamens.entree.observation +* group[=].element[=].target.code = #FRCDAResultatsExamens.entry:FRCDASimpleObservation +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats-examens" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAResultatsExamens +* group[=].element[=].target.code = #FRCompositionDocument.section:Results +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAResultatsExamens.code +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAResultatsExamens.title +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRCDAResultatsExamens.text +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.text +* group[=].element[=].target.equivalence = #equivalent +// actes +* group[=].element[+].code = #FRCDAResultatsExamens.entry:FRCDAActe +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.entry:FRProcedureActDocument +* group[=].element[=].target.equivalence = #equivalent +// références externes +* group[=].element[+].code = #FRCDAResultatsExamens.entry:FRCDAReferencesExternes +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.entry:FRDocumentReferenceDocument +* group[=].element[=].target.equivalence = #equivalent +// observations +* group[=].element[+].code = #FRCDAResultatsExamens.entry:FRCDASimpleObservation +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.entry:Observation +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExposureRadiationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExposureRadiationLMCDAFHIR.fsh new file mode 100644 index 0000000..8359d45 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionExposureRadiationLMCDAFHIR.fsh @@ -0,0 +1,87 @@ +Instance: FRSectionExposureRadiationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMExpositionRadiations → FRCDADICOMExpositionAuxRadiations → FRCompositionDocument.section:exposureRadiation" +Description: "Mapping des éléments du modèle métier FRLMExpositionRadiations vers la section CDA FRCDADICOMExpositionAuxRadiations, puis vers la section FHIR FRCompositionDocument.section:exposureRadiation." +* title = "Mapping Métier/CDA/FHIR : \"Exposition aux radiations\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-exposition-radiations" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-exposition-aux-radiations" +// élément racine +* group[=].element[+].code = #FRLMExpositionRadiations +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMExpositionRadiations.codeSection +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMExpositionRadiations.titreSection +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMExpositionRadiations.blocNarratif +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Autorisation à l'exposition aux rayonnements ionisants +* group[=].element[+].code = #FRLMExpositionRadiations.entree.autorisationExposition +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDICOMExpositionPatient +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Quantité +* group[=].element[+].code = #FRLMExpositionRadiations.entree.quantiteExposition +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDICOMQuantite +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée administration des produits radiopharmaceutiques +* group[=].element[+].code = #FRLMExpositionRadiations.entree.administrationRadiopharmaceutique +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDICOMAdministrationRadiopharmaceutique +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée observation de grossesse +* group[=].element[+].code = #FRLMExpositionRadiations.entree.observationGrossesse +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDicomObservationGrossesse +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée observation indication +* group[=].element[+].code = #FRLMExpositionRadiations.entree.observationIndication +* group[=].element[=].target[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDicomObservationIndication +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-exposition-aux-radiations" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Autorisation à l'exposition aux rayonnements ionisants +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDICOMExpositionPatient +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.entry:FRObservationRadiationExposureDocument.performer:professionnelAutorisantExposition +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Quantité +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDICOMQuantite +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.entry:FRObservationRadiationExposureDocument.component +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée administration des produits radiopharmaceutiques +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDICOMAdministrationRadiopharmaceutique +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.entry:FRObservationRadiationExposureDocument.partOf:medicationAdministrationRef +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée observation de grossesse +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDicomObservationGrossesse +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.entry:FRObservationRadiationExposureDocument.hasMember:observationGrossesse +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée observation indication +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:frDicomObservationIndication +* group[=].element[=].target[+].code = #FRCompositionDocument.section:exposureRadiation.entry:FRObservationRadiationExposureDocument.hasMember:observationIndication +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFamilyHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFamilyHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..1ed0727 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFamilyHistoryLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionFamilyHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Antécédents familiaux" +Description: "Mapping des éléments du modèle métier FRLMAntecedentsFamiliaux vers la section CDA FRCDAAntecedentsFamiliaux, puis vers le profil FHIR FRCompositionDocument.section:FamilyHistory." +* title = "Mapping Métier/CDA/FHIR : \"Antécédents familiaux\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-antecedents-familiaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedents-familiaux" +// Élément racine +* group[=].element[+].code = #FRLMAntecedentsFamiliaux +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMAntecedentsFamiliaux.codeSection +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMAntecedentsFamiliaux.titreSection +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMAntecedentsFamiliaux.blocNarratif +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Antécédent familial +* group[=].element[+].code = #FRLMAntecedentsFamiliaux.entree.antecedentsFamiliaux +* group[=].element[=].target.code = #FRCDAAntecedentsFamiliaux.entry:FRCDAAntecedentsFamiliaux +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedents-familiaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux +* group[=].element[=].target.code = #FRCompositionDocument.section:FamilyHistory +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.code +* group[=].element[=].target.code = #FRCompositionDocument.section:FamilyHistory.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.title +* group[=].element[=].target.code = #FRCompositionDocument.section:FamilyHistory.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.text +* group[=].element[=].target.code = #FRCompositionDocument.section:FamilyHistory.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Antécédent familial +* group[=].element[+].code = #FRCDAAntecedentsFamiliaux.entry:FRCDAAntecedentsFamiliaux +* group[=].element[=].target.code = #FRCompositionDocument.section:FamilyHistory.entry:FRFamilyMemberHistoryDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFunctionalStatusLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFunctionalStatusLMCDAFHIR.fsh new file mode 100644 index 0000000..81195dd --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionFunctionalStatusLMCDAFHIR.fsh @@ -0,0 +1,70 @@ +Instance: FRSectionFunctionalStatusLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMStatutFonctionnel → FRCDAStatutFonctionnel → FRCompositionDocument.section:FRFunctionalStatus" +Description: "Mapping des éléments du modèle métier FRLMStatutFonctionnel vers la section CDA FRCDAStatutFonctionnel, puis vers la section FHIR FRCompositionDocument.section:FRFunctionalStatus." +* title = "Mapping Métier/CDA/FHIR : \"Statut fonctionnel\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-statut-fonctionnel" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-statut-fonctionnel" +// Élément racine +* group[=].element[+].code = #FRLMStatutFonctionnel +* group[=].element[=].target.code = #FRCDAStatutFonctionnel +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMStatutFonctionnel.codeSection +* group[=].element[=].target.code = #FRCDAStatutFonctionnel.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMStatutFonctionnel.titreSection +* group[=].element[=].target.code = #FRCDAStatutFonctionnel.title +* group[=].element[=].target.equivalence = #equivalent +// bloc narratif +* group[=].element[+].code = #FRLMStatutFonctionnel.blocNarratif +* group[=].element[=].target.code = #FRCDAStatutFonctionnel.text +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRLMStatutFonctionnel.auteur +* group[=].element[=].target.code = #FRCDAStatutFonctionnel.author +* group[=].element[=].target.equivalence = #equivalent +// informateur +* group[=].element[+].code = #FRLMStatutFonctionnel.informateur +* group[=].element[=].target.code = #FRCDAStatutFonctionnel.informant +* group[=].element[=].target.equivalence = #equivalent +// entree - groupeQuestionnairesEvaluation +* group[=].element[+].code = #FRLMStatutFonctionnel.entree.groupeQuestionnairesEvaluation +* group[=].element[=].target.code = #FRCDAStatutFonctionnel.entry:FRCDAGroupDeQuestionnairesDEvaluation +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-statut-fonctionnel" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAStatutFonctionnel +* group[=].element[=].target.code = #FRCompositionDocument.section:FRFunctionalStatus +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAStatutFonctionnel.code +* group[=].element[=].target.code = #FRCompositionDocument.section:FRFunctionalStatus.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAStatutFonctionnel.title +* group[=].element[=].target.code = #FRCompositionDocument.section:FRFunctionalStatus.title +* group[=].element[=].target.equivalence = #equivalent +// bloc narratif +* group[=].element[+].code = #FRCDAStatutFonctionnel.text +* group[=].element[=].target.code = #FRCompositionDocument.section:FRFunctionalStatus.text +* group[=].element[=].target.equivalence = #equivalent +// auteur +* group[=].element[+].code = #FRCDAStatutFonctionnel.author +* group[=].element[=].target.code = #FRCompositionDocument.author +* group[=].element[=].target.equivalence = #equivalent +// informateur +* group[=].element[+].code = #FRCDAStatutFonctionnel.informant +* group[=].element[=].target.code = #FRCompositionDocument.extension:informant +* group[=].element[=].target.equivalence = #equivalent +// entree - groupe questionnaires d'évaluation +* group[=].element[+].code = #FRCDAStatutFonctionnel.entry:FRCDAGroupDeQuestionnairesDEvaluation +* group[=].element[=].target.code = #FRCompositionDocument.section:FRFunctionalStatus.entry:FRObservationSurveyPannelDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHistoryActsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHistoryActsLMCDAFHIR.fsh new file mode 100644 index 0000000..7a6b6a4 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHistoryActsLMCDAFHIR.fsh @@ -0,0 +1,63 @@ +Instance: FRSectionHistoryActsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMHistoriqueDesActes → FRCDAHistoriqueDesActes → FRCompositionDocument.section:historyActs" +Description: "Mapping des éléments du modèle métier FRLMHistoriqueDesActes vers la section CDA FRCDAHistoriqueDesActes, puis vers la section FHIR FRCompositionDocument.section:historyActs." +* title = "Mapping Métier/CDA/FHIR : \"Historique des actes\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-historique-des-actes" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-des-actes" +// élément racine +* group[=].element[+].code = #FRLMHistoriqueDesActes +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesActes +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMHistoriqueDesActes.codeSection +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesActes.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMHistoriqueDesActes.titreSection +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesActes.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMHistoriqueDesActes.blocNarratif +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesActes.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Acte +* group[=].element[+].code = #FRLMHistoriqueDesActes.entree.actes +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesActes.entry:FRCDAActe +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Références externes +* group[=].element[+].code = #FRLMHistoriqueDesActes.entree.references +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesActes.entry:FRCDAReferencesExternes +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-des-actes" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAHistoriqueDesActes +* group[=].element[=].target[+].code = #FRCompositionDocument.section:historyActs +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAHistoriqueDesActes.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:historyActs.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAHistoriqueDesActes.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:historyActs.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAHistoriqueDesActes.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:historyActs.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Acte +* group[=].element[+].code = #FRCDAHistoriqueDesActes.entry:FRCDAActe +* group[=].element[=].target[+].code = #FRCompositionDocument.section:historyActs.entry:FRProcedureDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Références externes +* group[=].element[+].code = #FRCDAHistoriqueDesActes.entry:FRCDAReferencesExternes +* group[=].element[=].target[+].code = #FRCompositionDocument.section:historyActs.entry:FRDocumentReferenceDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHospitalDischargeMedicationsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHospitalDischargeMedicationsLMCDAFHIR.fsh new file mode 100644 index 0000000..c467dbb --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionHospitalDischargeMedicationsLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionHospitalDischargeMedicationsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitementSortie → FRCDATraitementsALaSortie → FRCompositionDocument.section:hospitalDischargeMedications" +Description: "Mapping des éléments du modèle métier FRLMTraitementSortie vers la section CDA FRCDATraitementsALaSortie, puis vers la section FHIR FRCompositionDocument.section:hospitalDischargeMedications." +* title = "Mapping Métier/CDA/FHIR : \"Traitements à la sortie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitement-sortie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitements-a-la-sortie" +// Élément racine +* group[=].element[+].code = #FRLMTraitementSortie +* group[=].element[=].target.code = #FRCDATraitementsALaSortie +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMTraitementSortie.codeSection +* group[=].element[=].target.code = #FRCDATraitementsALaSortie.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMTraitementSortie.titreSection +* group[=].element[=].target.code = #FRCDATraitementsALaSortie.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMTraitementSortie.blocNarratif +* group[=].element[=].target.code = #FRCDATraitementsALaSortie.text +* group[=].element[=].target.equivalence = #equivalent +// entrée de la section +* group[=].element[+].code = #FRLMTraitementSortie.entree.traitementSortie +* group[=].element[=].target.code = #FRCDATraitementsALaSortie.entry.FRCDATraitement +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitements-a-la-sortie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDATraitementsALaSortie +* group[=].element[=].target.code = #FRCompositionDocument.section:hospitalDischargeMedications +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDATraitementsALaSortie.code +* group[=].element[=].target.code = #FRCompositionDocument.section:hospitalDischargeMedications.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDATraitementsALaSortie.title +* group[=].element[=].target.code = #FRCompositionDocument.section:hospitalDischargeMedications.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDATraitementsALaSortie.text +* group[=].element[=].target.code = #FRCompositionDocument.section:hospitalDischargeMedications.text +* group[=].element[=].target.equivalence = #equivalent +// entrée de la section +* group[=].element[+].code = #FRCDATraitementsALaSortie.entry.FRCDATraitement +* group[=].element[=].target.code = #FRCompositionDocument.section:hospitalDischargeMedications.entry:FRMedicationAdministrationDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingActLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingActLMCDAFHIR.fsh new file mode 100644 index 0000000..f4d879e --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingActLMCDAFHIR.fsh @@ -0,0 +1,91 @@ +Instance: FRSectionImagingActLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Acte d'imagerie" +Description: "Mapping des éléments du modèle métier FRLMActeImagerie vers la section CDA FRCDADICOMActeImagerie, puis vers le profil FHIR FRCompositionDocument.section:ImagingStudy." +* title = "Mapping Métier/CDA/FHIR : \"Acte d'imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-acte-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-acte-imagerie" +// Élément racine +* group[=].element[+].code = #FRLMActeImagerie +* group[=].element[=].target.code = #FRCDADICOMActeImagerie +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMActeImagerie.codeSection +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMActeImagerie.titreSection +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'acte +* group[=].element[+].code = #FRLMActeImagerie.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.text +* group[=].element[=].target.equivalence = #equivalent +// Sous section : Complications de l'acte +* group[=].element[+].code = #FRLMActeImagerie.sousSection.complicationsActe +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.component:frDICOMComplications +* group[=].element[=].target.equivalence = #equivalent +// Sous section : Expositions aux radiations +* group[=].element[+].code = #FRLMActeImagerie.sousSection.expositionsRadiations +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.component:frDICOMExpositionsAuxRadiations +* group[=].element[=].target.equivalence = #equivalent +// Sous section : Catalogue des objets +* group[=].element[+].code = #FRLMActeImagerie.sousSection.catalogueObjects +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.component:frDICOMObjectCatalog +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Technique d'imagerie +* group[=].element[+].code = #FRLMActeImagerie.entree.techniqueImagerie +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.entry.frDICOMTechniqueImagerie +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Produits de santé administrés +* group[=].element[+].code = #FRLMActeImagerie.entree.administrationProduits +* group[=].element[=].target.code = #FRCDADICOMActeImagerie.entry.frDICOMAdministrationProduitDeSante +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-acte-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMActeImagerie +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDADICOMActeImagerie.code +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMActeImagerie.title +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'acte +* group[=].element[+].code = #FRCDADICOMActeImagerie.text +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.text +* group[=].element[=].target.equivalence = #equivalent +// Sous section : Complications de l'acte +* group[=].element[+].code = #FRCDADICOMActeImagerie.component:frDICOMComplications +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.section:Complications +* group[=].element[=].target.equivalence = #equivalent +// Sous section : Expositions aux radiations +* group[+].element[+].code = #FRCDADICOMActeImagerie.component:frDICOMExpositionsAuxRadiations +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.section:radiationExposure +* group[=].element[=].target.equivalence = #equivalent +// Sous section : Catalogue des objets +* group[=].element[+].code = #FRCDADICOMActeImagerie.component:frDICOMObjectCatalog +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.section:ObjectCatalog +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Technique d'imagerie +* group[=].element[+].code = #FRCDADICOMActeImagerie.entry.frDICOMTechniqueImagerie +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.entry:ImagingStudy.procedureReference:FRProcedureImagingDocument +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Correspondance avec une référence à une ressource FRProcedureImagingDocument de type Procedure dans l'entrée de la section ImagingStudy. +section:ImagingStudy = Reference(FRImagingStudyDocument) et section:ImagingStudy.entry:ImagingStudy.procedureReference = Reference(FRProcedureImagingDocument)." +// Entrée : Produits de santé administrés +* group[=].element[+].code = #FRCDADICOMActeImagerie.entry.frDICOMAdministrationProduitDeSante +* group[=].element[=].target.code = #FRCompositionDocument.section:ImagingStudy.entry:ImagingStudy.procedureReference:FRProcedureImagingDocument.partOf:FRMedicationAdministrationDocument +* group[=].element[=].target.equivalence = #equivalent +* group[=].element[=].target.comment = "Correspondance avec une référence à une ressource FRMedicationAdministrationDocument de type MedicationAdministration dans l'entrée de la section ImagingStudy. +section:ImagingStudy = Reference(FRImagingStudyDocument) et section:ImagingStudy.entry:ImagingStudy.procedureReference = Reference(FRProcedureImagingDocument) et section:ImagingStudy.entry:ImagingStudy.procedureReference.partOf = Reference(FRMedicationAdministrationDocument)." diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingAddendumLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingAddendumLMCDAFHIR.fsh new file mode 100644 index 0000000..3ce3b14 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingAddendumLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionImagingAddendumLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMAddendum → FRCDAdicomAddendum → FRCompositionDocument.section:Addendum" +Description: "Mapping des éléments du modèle métier FRLMAddendum vers la section CDA FRCDADicomAddendum puis vers le profil FHIR FRCompositionDocument.section:Addendum." +* title = "Mapping Métier/CDA/FHIR : \"Addendum\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-addendum" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-addendum" +// Élément racine +* group[=].element[+].code = #FRLMAddendum +* group[=].element[=].target.code = #FRCDADicomAddendum +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMAddendum.codeSection +* group[=].element[=].target.code = #FRCDADicomAddendum.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMAddendum.titreSection +* group[=].element[=].target.code = #FRCDADicomAddendum.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'addendum +* group[=].element[+].code = #FRLMAddendum.blocNarratif +* group[=].element[=].target.code = #FRCDADicomAddendum.text +* group[=].element[=].target.equivalence = #equivalent +// Auteur de l'addendum +* group[=].element[+].code = #FRLMAddendum.auteur +* group[=].element[=].target.code = #FRCDADicomAddendum.author +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-addendum" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADicomAddendum +* group[=].element[=].target.code = #FRCompositionDocument.section:Addendum +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDADicomAddendum.code +* group[=].element[=].target.code = #FRCompositionDocument.section:Addendum.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADicomAddendum.title +* group[=].element[=].target.code = #FRCompositionDocument.section:Addendum.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de l'addendum +* group[=].element[+].code = #FRCDADicomAddendum.text +* group[=].element[=].target.code = #FRCompositionDocument.section:Addendum.text +* group[=].element[=].target.equivalence = #equivalent +// Auteur de l'addendum +* group[=].element[+].code = #FRCDADicomAddendum.author +* group[=].element[=].target.code = #FRCompositionDocument.section:Addendum.author +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingClinicalInformationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingClinicalInformationLMCDAFHIR.fsh new file mode 100644 index 0000000..a576216 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingClinicalInformationLMCDAFHIR.fsh @@ -0,0 +1,108 @@ +Instance: FRSectionImagingClinicalInformationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMInformationsCliniques → FRCDADICOMHistoriqueMedical → FRCompositionDocument.section:History (Observation / FRConditionDocument/ FRObservationPregnancyDocument / FRObservationContraIndicationsImagingDocument / FRDeviceAuteurDocument / FRMedicationAdministrationDocument)" +Description: "Mapping des éléments du modèle métier FRLMInformationsCliniques vers la section CDA FRCDADICOMHistoriqueMedical puis vers les profils FHIR Observation, FRConditionDocument, FRObservationPregnancyDocument, FRObservationContraIndicationsImagingDocument, FRDeviceAuteurDocument et FRMedicationAdministrationDocument." +* title = "Mapping Métier/CDA/FHIR : Informations cliniques d'imagerie" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-informations-cliniques" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +// élément racine +* group[=].element[+].code = #FRLMInformationsCliniques +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical +* group[=].element[=].target.equivalence = #equivalent +// titre de la section non codée +* group[=].element[+].code = #FRLMInformationsCliniques.titreSection +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical.title +* group[=].element[=].target.equivalence = #equivalent +// bloc narratif : antécédents médicaux, grossesse, contre-indications, dispositifs médicaux implantés, traitements en cours +* group[=].element[+].code = #FRLMInformationsCliniques.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical.text +* group[=].element[=].target.equivalence = #equivalent +// antécédents médicaux +* group[=].element[+].code = #FRLMInformationsCliniques.entree.antecedentsMedicaux +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical.entry.observation:antecedentsMedicaux +* group[=].element[=].target.equivalence = #equivalent +// antécédents chirurgicaux +* group[=].element[+].code = #FRLMInformationsCliniques.entree.antecedentsChirurgicaux +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical.entry.observation:antecedentsChirurgicaux +* group[=].element[=].target.equivalence = #equivalent +// grossesse +* group[=].element[+].code = #FRLMInformationsCliniques.entree.statutGrossesse +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical.entry.observation:grossesse +* group[=].element[=].target.equivalence = #equivalent +// contre-indications +* group[=].element[+].code = #FRLMInformationsCliniques.entree.contreIndications +* group[=].element[=].target.code = #FRCDADICOMHistoriqueMedical.entry.observation:contreIndications +* group[=].element[=].target.equivalence = #equivalent +// Problème +* group[=].element[+].code = #FRLMInformationsCliniques.entree.probleme +* group[=].element[=].target.equivalence = #unmatched +// dispositifs médicaux +* group[=].element[+].code = #FRLMInformationsCliniques.entree.dispositifMedical +* group[=].element[=].target.equivalence = #unmatched +// administration de produit de santé +* group[=].element[+].code = #FRLMInformationsCliniques.entree.administrationProduitDeSante +* group[=].element[=].target.equivalence = #unmatched +// sexe clinique +* group[=].element[+].code = #FRLMInformationsCliniques.entree.sexeClinique +* group[=].element[=].target.equivalence = #unmatched + +// Groupe Mapping 2 : CDA (section FRCDADICOMHistoriqueMedical) → FHIR Observation +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/observation" +// le slicing sur la section section:history sera fait dans l'IG spécifique au volet +* group[=].element[+].code = #FRCDADICOMHistoriqueMedical +* group[=].element[=].target.code = #FRCompositionDocument.section:history +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMHistoriqueMedical.title +* group[=].element[=].target.code = #FRCompositionDocument.section:history.title +* group[=].element[=].target.equivalence = #equivalent +// antécédents médicaux +* group[=].element[+].code = #FRCDADICOMHistoriqueMedical.entry.observation:antecedentsMedicaux +* group[=].element[=].target.code = #FRCompositionDocument.section:history.entry:Observation +* group[=].element[=].target.equivalence = #equivalent +// antécédents chirurgicaux +* group[=].element[+].code = #FRCDADICOMHistoriqueMedical.entry.observation:antecedentsChirurgicaux +* group[=].element[=].target.code = #FRCompositionDocument.section:history.entry:Observation +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 3 : CDA (section FRCDADICOMHistoriqueMedical) → FHIR FRObservationPregnancyDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-pregnancy-document" +// grossesse +* group[=].element[+].code = #FRCDADICOMHistoriqueMedical.entry.observation:grossesse +* group[=].element[=].target.code = #FRCompositionDocument.section:history.entry:FRObservationPregnancyDocument +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 4 : CDA (section FRCDADICOMHistoriqueMedical) → FHIR FRObservationContraIndicationsImagingDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-observation-contra-indications-imaging-document" +// contre-indications +* group[=].element[+].code = #FRCDADICOMHistoriqueMedical.entry.observation:contreIndications +* group[=].element[=].target.code = #FRCompositionDocument.section:history.entry:FRObservationContraIndicationsImagingDocument +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 5 : CDA (section FRCDADICOMHistoriqueMedical) → FHIR FRDeviceAuteurDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-device-auteur-document" +// dispositifs médicaux +* group[=].element[+].target.code = #FRCompositionDocument.section:history.entry:FRDeviceAuteurDocument +* group[=].element[=].target.equivalence = #unmatched + +// Groupe Mapping 6 : CDA (section FRCDADICOMHistoriqueMedical) → FHIR FRMedicationAdministrationDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-medication-administration-document" +// administration de produit de santé +* group[=].element[+].target.code = #FRCompositionDocument.section:history.entry:FRMedicationAdministrationDocument +* group[=].element[=].target.equivalence = #unmatched + +// Groupe Mapping 7 : CDA (section FRCDADICOMHistoriqueMedical) → FHIR FRConditionDocument +* group[=].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-historique-medical" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-condition-document" +// Problème +* group[=].element[+].target.code = #FRCompositionDocument.section:history.entry:FRConditionDocument +* group[=].element[=].target.equivalence = #unmatched \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComparisonLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComparisonLMCDAFHIR.fsh new file mode 100644 index 0000000..54dda08 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComparisonLMCDAFHIR.fsh @@ -0,0 +1,56 @@ +Instance: FRSectionImagingComparisonLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMComparaisonExamensImagerie → FRCDADICOMExamenComparatif → FRCompositionDocument.section:Comparison" +Description: "Mapping des éléments du modèle métier FRLMComparaisonExamensImagerie vers le profil CDA FRCDADICOMExamenComparatif, puis vers la section Comparison du profil FHIR FRCompositionDocument." +* title = "Mapping Métier/CDA/FHIR : \"Comparaison d'examens d'imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-comparaison-examens-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-examen-comparatif" +// Élément racine +* group[=].element[+].code = #FRLMComparaisonExamensImagerie +* group[=].element[=].target.code = #FRCDADICOMExamenComparatif +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMComparaisonExamensImagerie.codeSection +* group[=].element[=].target.code = #FRCDADICOMExamenComparatif.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMComparaisonExamensImagerie.titreSection +* group[=].element[=].target.code = #FRCDADICOMExamenComparatif.title +* group[=].element[=].target.equivalence = #equivalent +// Description de la section +* group[=].element[+].code = #FRLMComparaisonExamensImagerie.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMExamenComparatif.text +* group[=].element[=].target.equivalence = #equivalent +// la section FRDICOMCDAExamenComparatif est non codée en CDA, il n'y a pas de mapping pour les éléments entrée et sousSection. + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-examen-comparatif" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMExamenComparatif +* group[=].element[=].target.code = #FRCompositionDocument.section:Comparison +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADICOMExamenComparatif.code +* group[=].element[=].target.code = #FRCompositionDocument.section:Comparison.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMExamenComparatif.title +* group[=].element[=].target.code = #FRCompositionDocument.section:Comparison.title +* group[=].element[=].target.equivalence = #equivalent +// Description de la section +* group[=].element[+].code = #FRCDADICOMExamenComparatif.text +* group[=].element[=].target.code = #FRCompositionDocument.section:Comparison.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée de la section +// La section Comparison peut etre codée ou non codée, il n'y a pas de mapping pour les éléments entrée et sousSection du modèle CDA. +// Si section codéee : entrée = référence à une ressource FHIR codée FRImagingStudyDocument +// Si section non codée : utiliser le champ text de la section pour décrire la comparaison d'examens d'imagerie, et ne pas utiliser "entry" ou la sous-section "section.section". +* group[=].element[+].code = #_noSourceComparison +* group[=].element[=].display = "Pas d'équivalent dans CDA. Si la section Comparison est codée, les examens d'imagerie comparés doivent être référencés en tant qu'entrées de la section, avec des références à des ressources FHIR de type FRImagingStudyDocument. Si la section Comparison est non codée, le champ 'text' de la section doit être utilisé pour décrire la comparaison d'examens d'imagerie" +* group[=].element[=].target.code = #FRCompositionDocument.section:Comparison.entry:FRImagingStudyDocument +* group[=].element[=].target.equivalence = #unmatched diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComplicationsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComplicationsLMCDAFHIR.fsh new file mode 100644 index 0000000..b6b88d2 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingComplicationsLMCDAFHIR.fsh @@ -0,0 +1,36 @@ +Instance: FRSectionImagingComplicationsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMComplicationsActe → FRCDADICOMComplications → FRProcedureImagingDocument.complication.text" +Description: "Mapping des éléments du modèle métier FRLMComplicationsActe vers la section CDA FRCDADICOMComplications, puis vers le champ 'complication.text' du profil FHIR FRProcedureImagingDocument." +* title = "Mapping Métier/CDA/FHIR : \"Complications survenues au cours de l'acte d'imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-complications-acte" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-complications" +// Élément racine +* group[=].element[+].code = #FRLMComplicationsActe +* group[=].element[=].target.code = #FRCDADICOMComplications +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMComplicationsActe.codeSection +* group[=].element[=].target.code = #FRCDADICOMComplications.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative des complications +* group[=].element[+].code = #FRLMComplicationsActe.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMComplications.text +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMComplicationsActe.titreSection +* group[=].element[=].target.code = #FRCDADICOMComplications.title +* group[=].element[=].target.equivalence = #equivalent +// la section FRDICOMCDAComplications est non codée en CDA, il n'y a pas de mapping pour les éléments entrée et sousSection. + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-complications" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-procedure-imaging-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMComplications +* group[=].element[=].target.code = #FRProcedureImagingDocument.complication.text +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingConclusionLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingConclusionLMCDAFHIR.fsh new file mode 100644 index 0000000..80ed4ba --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingConclusionLMCDAFHIR.fsh @@ -0,0 +1,36 @@ +Instance: FRSectionImagingConclusionLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMConclusionExamenImagerie → FRCDADICOMConclusion → FRDiagnosticReportImagingDocument.conclusion" +Description: "Mapping des éléments du modèle métier FRLMConclusionExamenImagerie vers la section CDA FRCDADICOMConclusion, puis vers le champ 'conclusion' du profil FHIR FRDiagnosticReportImagingDocument." +* title = "Mapping Métier/CDA/FHIR : \"Conclusion de l'examen d'imagerie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-conclusion-examen-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-conclusion" +// Élément racine +* group[=].element[+].code = #FRLMConclusionExamenImagerie +* group[=].element[=].target.code = #FRCDADICOMConclusion +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMConclusionExamenImagerie.codeSection +* group[=].element[=].target.code = #FRCDADICOMConclusion.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la conclusion +* group[=].element[+].code = #FRLMConclusionExamenImagerie.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMConclusion.text +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMConclusionExamenImagerie.titreSection +* group[=].element[=].target.code = #FRCDADICOMConclusion.title +* group[=].element[=].target.equivalence = #equivalent +// la section FRDICOMCDAConclusion est non codée en CDA, il n'y a pas de mapping pour les éléments entrée et sousSection. + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-conclusion" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-diagnostic-report-imaging-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMConclusion +* group[=].element[=].target.code = #FRDiagnosticReportImagingDocument.conclusion +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingObjectCatalogLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingObjectCatalogLMCDAFHIR.fsh new file mode 100644 index 0000000..0ccaaaa --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingObjectCatalogLMCDAFHIR.fsh @@ -0,0 +1,54 @@ +Instance: FRSectionImagingObjectCatalogLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMObjectCatalog → FRCDADICOMObjectCatalog → FRCompositionDocument.section:imagingStudy" +Description: "Mapping des éléments du modèle métier FRLMObjectCatalog vers la section CDA FRCDADICOMObjectCatalog, puis vers la section FHIR FRCompositionDocument.section:imagingStudy." +* title = "Mapping Métier/CDA/FHIR : \"Catalogue des objets d'imagerie\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-object-catalog" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-object-catalog" +// Élément racine +* group[=].element[+].code = #FRLMObjectCatalog +* group[=].element[=].target.code = #FRCDADICOMObjectCatalog +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMObjectCatalog.titreSection +* group[=].element[=].target.code = #FRCDADICOMObjectCatalog.title +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMObjectCatalog.codeSection +* group[=].element[=].target.code = #FRCDADICOMObjectCatalog.code +* group[=].element[=].target.equivalence = #equivalent +// texte narratif de la section +* group[=].element[+].code = #FRLMObjectCatalog.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMObjectCatalog.text +* group[=].element[=].target.equivalence = #equivalent +// entrée Examen imagerie +* group[=].element[+].code = #FRLMObjectCatalog.entree.examenImagerie +* group[=].element[=].target.code = #FRCDADICOMObjectCatalog.entry:FRCDADICOMExamenImagerie +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-object-catalog" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMObjectCatalog +* group[=].element[=].target.code = #FRCompositionDocument.section:imagingStudy +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADICOMObjectCatalog.code +* group[=].element[=].target.code = #FRCompositionDocument.section:imagingStudy.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMObjectCatalog.title +* group[=].element[=].target.code = #FRCompositionDocument.section:imagingStudy.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif de la section +* group[=].element[+].code = #FRCDADICOMObjectCatalog.text +* group[=].element[=].target.code = #FRCompositionDocument.section:imagingStudy.text +* group[=].element[=].target.equivalence = #equivalent +// entrée Examen imagerie +* group[=].element[+].code = #FRCDADICOMObjectCatalog.entry:FRCDADICOMExamenImagerie +* group[=].element[=].target.code = #FRCompositionDocument.section:imagingStudy.entry:FRImagingStudyDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingRadiationExposureLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingRadiationExposureLMCDAFHIR.fsh new file mode 100644 index 0000000..613991e --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingRadiationExposureLMCDAFHIR.fsh @@ -0,0 +1,72 @@ +Instance: FRSectionImagingRadiationExposureLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMExpositionRadiations → FRCDADICOMExpositionAuxRadiations → FRCompositionDocument.section:radiationExposure" +Description: "Mapping des éléments du modèle métier FRLMExpositionRadiations vers la section CDA FRCDADICOMExpositionAuxRadiations puis vers le profil FHIR FRCompositionDocument.section:radiationExposure." +* title = "Mapping Métier/CDA/FHIR : Exposition aux radiations" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-exposition-radiations" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-exposition-aux-radiations" +// Élément racine +* group[=].element[+].code = #FRLMExpositionRadiations +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMExpositionRadiations.codeSection +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations.code +* group[=].element[=].target.equivalence = #equivalent +// titreSection +* group[=].element[+].code = #FRLMExpositionRadiations.titreSection +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRLMExpositionRadiations.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations.text +* group[=].element[=].target.equivalence = #equivalent +// autorisation exposition +* group[=].element[+].code = #FRLMExpositionRadiations.entree.autorisationExposition +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations.entry:FRCDADICOMExpositionPatient +* group[=].element[=].target.equivalence = #equivalent +// quantité d'exposition aux radiations +* group[=].element[+].code = #FRLMExpositionRadiations.entree.quantiteExposition +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations.entry:FRCDADICOMQuantite +* group[=].element[=].target.equivalence = #equivalent +// administration radiopharmaceutique +* group[=].element[+].code = #FRLMExpositionRadiations.entree.administrationRadiopharmaceutique +* group[=].element[=].target.code = #FRCDADICOMExpositionAuxRadiations.entry:FRCDADICOMAdministrationRadiopharmaceutique +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR ObservationRadiationExposureDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-exposition-aux-radiations" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.code +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.title +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.title +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.text +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.text +* group[=].element[=].target.equivalence = #equivalent +// autorisation exposition +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:FRCDADICOMExpositionPatient +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.entry:FRObservationRadiationExposureDocument.performer:professionnelAutorisantExposition +* group[=].element[=].target.equivalence = #equivalent +// quantité d'exposition aux radiations +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:FRCDADICOMQuantite +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.entry:FRObservationRadiationExposureDocument.component +* group[=].element[=].target.equivalence = #equivalent +// administration radiopharmaceutique +* group[=].element[+].code = #FRCDADICOMExpositionAuxRadiations.entry:FRCDADICOMAdministrationRadiopharmaceutique +* group[=].element[=].target.code = #FRCompositionDocument.section:radiationExposure.entry:FRObservationRadiationExposureDocument.partOf:medicationAdministrationRef +* group[=].element[=].target.equivalence = #equivalent + diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..96d5fab --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingResultsLMCDAFHIR.fsh @@ -0,0 +1,43 @@ +Instance: FRSectionImagingResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Résultats d'imagerie" +Description: "Mapping des éléments du modèle métier FRLMResultatsExamenImagerie vers la section CDA FRCDADICOMResultats puis vers le profil FHIR FRCompositionDocument.section:Findings." +* title = "Mapping Métier/CDA/FHIR : Résultats d'imagerie" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-examen-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-resultats" +// Élément racine +* group[=].element[+].code = #FRLMResultatsExamenImagerie +* group[=].element[=].target.code = #FRCDADICOMResultats +* group[=].element[=].target.equivalence = #equivalent +// titreSection +* group[=].element[+].code = #FRLMResultatsExamenImagerie.titreSection +* group[=].element[=].target.code = #FRCDADICOMResultats.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRLMResultatsExamenImagerie.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMResultats.text +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-resultats" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADICOMResultats +* group[=].element[=].target.code = #FRCompositionDocument.section:Findings +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMResultats.title +* group[=].element[=].target.code = #FRCompositionDocument.section:Findings.title +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDADICOMResultats.text +* group[=].element[=].target.code = #FRCompositionDocument.section:Findings.text +* group[=].element[=].target.equivalence = #equivalent +// Résultats codés +// entry FHIR sans équivalent dans la source CDA +* group[=].element[=].target.code = #FRCompositionDocument.section:Findings.entry:FRObservationResultDocument +* group[=].element[=].target.equivalence = #unmatched \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingServiceRequestLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingServiceRequestLMCDAFHIR.fsh new file mode 100644 index 0000000..bd81dff --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImagingServiceRequestLMCDAFHIR.fsh @@ -0,0 +1,44 @@ +Instance: FRSectionImagingServiceRequestLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDemandeExamenImagerie → FRCDADICOMDemandeExamen → FRServiceRequestDocument" +Description: "Mapping des éléments du modèle métier FRLMDemandeExamenImagerie vers la section CDA FRCDADICOMDemandeExamen puis vers le profil FHIR FRCompositionDocument.section:serviceRequest." +* title = "Mapping Métier/CDA/FHIR : Demande d'examen d'imagerie" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-demande-examen-imagerie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-demande-examen" +// élément racine (section Demande d'examen d'imagerie non codée) +* group[=].element[+].code = #FRLMDemandeExamenImagerie +* group[=].element[=].target.code = #FRCDADICOMDemandeExamen +* group[=].element[=].target.equivalence = #equivalent +// titre de la section non codée +* group[=].element[+].code = #FRLMDemandeExamenImagerie.titreSection +* group[=].element[=].target.code = #FRCDADICOMDemandeExamen.title +* group[=].element[=].target.equivalence = #equivalent +// bloc narratif : finalité d'examen et justification de la demande +* group[=].element[+].code = #FRLMDemandeExamenImagerie.blocNarratif +* group[=].element[=].target.code = #FRCDADICOMDemandeExamen.text +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR ServiceRequestDocument +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dicom-demande-examen" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +// le slicing sur la section section:serviceRequest sera fait dans l'IG spécifique au volet imagerie +* group[=].element[+].code = #FRCDADICOMDemandeExamen +* group[=].element[=].target.code = #FRCompositionDocument.section:serviceRequest.FRServiceRequestDocument +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADICOMDemandeExamen.title +* group[=].element[=].target.code = #FRCompositionDocument.section:serviceRequest.title +* group[=].element[=].target.equivalence = #equivalent +// finalité d'examen +* group[=].element[+].code = #FRCDADICOMDemandeExamen.text +* group[=].element[=].target.code = #FRCompositionDocument.section:serviceRequest.FRServiceRequestDocument.note:finaliteExamen +* group[=].element[=].target.equivalence = #equivalent +// justification de la demande +* group[=].element[+].code = #FRCDADICOMDemandeExamen.text +* group[=].element[=].target.code = #FRCompositionDocument.section:serviceRequest.FRServiceRequestDocument.note:justificationDemande +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImmunizationsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImmunizationsLMCDAFHIR.fsh new file mode 100644 index 0000000..dc6c5ea --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionImmunizationsLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionImmunizationsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMVaccinations → FRCDAVaccinations → FRCompositionDocument.section:immunizations" +Description: "Mapping des éléments du modèle métier FRLMVaccinations vers la section CDA FRCDAVaccinations, puis vers la section FHIR FRCompositionDocument.section:immunizations." +* title = "Mapping Métier/CDA/FHIR : \"Vaccinations\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-vaccinations" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-vaccinations" +// Élément racine +* group[=].element[+].code = #FRLMVaccinations +* group[=].element[=].target.code = #FRCDAVaccinations +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMVaccinations.codeSection +* group[=].element[=].target.code = #FRCDAVaccinations.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMVaccinations.titreSection +* group[=].element[=].target.code = #FRCDAVaccinations.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMVaccinations.blocNarratif +* group[=].element[=].target.code = #FRCDAVaccinations.text +* group[=].element[=].target.equivalence = #equivalent +// entrée de la section +* group[=].element[+].code = #FRLMVaccinations.entree.vaccinations +* group[=].element[=].target.code = #FRCDAVaccinations.entry.FRCDAVaccination +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-vaccinations" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAVaccinations +* group[=].element[=].target.code = #FRCompositionDocument.section:immunizations +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAVaccinations.code +* group[=].element[=].target.code = #FRCompositionDocument.section:immunizations.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAVaccinations.title +* group[=].element[=].target.code = #FRCompositionDocument.section:immunizations.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDAVaccinations.text +* group[=].element[=].target.code = #FRCompositionDocument.section:immunizations.text +* group[=].element[=].target.equivalence = #equivalent +// entrée de la section +* group[=].element[+].code = #FRCDAVaccinations.entry.FRCDAVaccination +* group[=].element[=].target.code = #FRCompositionDocument.section:immunizations.entry:FRImmunizationDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratoryChapterLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratoryChapterLMCDAFHIR.fsh new file mode 100644 index 0000000..19f66db --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratoryChapterLMCDAFHIR.fsh @@ -0,0 +1,63 @@ +Instance: FRSectionLaboratoryChapterLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMCRBIOChapitre → FRCDACRBIOChapitre → FRCompositionDocument.section" +Description: "Mapping des éléments du modèle métier FRLMCRBIOChapitre vers la section CDA FRCDACRBIOChapitre, puis vers le profil FHIR FRCompositionDocument.section." +* title = "Mapping Métier/CDA/FHIR : \"Chapitre de BIO\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-crbio-chapitre" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-crbio-chapitre" +// Élément racine +* group[=].element[+].code = #FRLMCRBIOChapitre +* group[=].element[=].target.code = #FRCDACRBIOChapitre +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMCRBIOChapitre.code +* group[=].element[=].target.code = #FRCDACRBIOChapitre.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMCRBIOChapitre.blocNarratif +* group[=].element[=].target.code = #FRCDACRBIOChapitre.text +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMCRBIOChapitre.titreSection +* group[=].element[=].target.code = #FRCDACRBIOChapitre.title +* group[=].element[=].target.equivalence = #equivalent +// résultat d'examen de BIO +* group[=].element[+].code = #FRLMCRBIOChapitre.choice[x]:FRLMResultatsExamensBiologieMedicale +* group[=].element[=].target.code = #FRCDACRBIOChapitre.entry:FRCDAResultatsExamensDeBiologieMedicale +* group[=].element[=].target.equivalence = #equivalent +// sous chapitre de BIO +* group[=].element[+].code = #FRLMCRBIOChapitre.choice[x]:FRLMCRBIOSousChapitre +* group[=].element[=].target.code = #FRCDACRBIOChapitre.component.section:FRCDACRBIOSousChapitre +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-crbio-chapitre" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document-section" +// Élément racine +* group[=].element[+].code = #FRCDACRBIOChapitre +* group[=].element[=].target.code = #FRCompositionDocument.section +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDACRBIOChapitre.code +* group[=].element[=].target.code = #FRCompositionDocument.section.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDACRBIOChapitre.text +* group[=].element[=].target.code = #FRCompositionDocument.section.text +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDACRBIOChapitre.title +* group[=].element[=].target.code = #FRCompositionDocument.section.title +* group[=].element[=].target.equivalence = #equivalent +// résultat d'examen de BIO +* group[=].element[+].code = #FRCDACRBIOChapitre.entry:FRCDAResultatsExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections.entry:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// sous chapitre de BIO +* group[=].element[+].code = #FRCDACRBIOChapitre.component.section:FRCDACRBIOSousChapitre +* group[=].element[=].target.code = #FRCompositionDocument.section:avec-sous-sections.section +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySecondIntentionResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySecondIntentionResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..621b199 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySecondIntentionResultsLMCDAFHIR.fsh @@ -0,0 +1,63 @@ +Instance: FRSectionLaboratorySecondIntentionResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatsLaboratoireBiologieSecondeIntention → FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention → FRCompositionDocument.section:sans-sous-sections" +Description: "Mapping des éléments du modèle métier FRLMResultatsLaboratoireBiologieSecondeIntention vers la section CDA FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention, puis vers le profil FHIR FRCompositionDocument.section:LaboratoryResults." +* title = "Mapping Métier/CDA/FHIR : Résultats de laboratoire de biologie de seconde intention" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-laboratoire-biologie-seconde-intention" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats-de-laboratoire-de-biologie-de-seconde-intention" +// Élément racine +* group[=].element[+].code = #FRLMResultatsLaboratoireBiologieSecondeIntention +* group[=].element[=].target.code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMResultatsLaboratoireBiologieSecondeIntention.codeSection +* group[=].element[=].target.code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMResultatsLaboratoireBiologieSecondeIntention.titreSection +* group[=].element[=].target.code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMResultatsLaboratoireBiologieSecondeIntention.blocNarratif +* group[=].element[=].target.code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRLMResultatsLaboratoireBiologieSecondeIntention.entree.observation:FRLMObservation +* group[=].element[=].target.code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.entry:FRCDASimpleObservation +* group[=].element[=].target.equivalence = #equivalent +// Entrée Document attaché +* group[=].element[+].code = #FRLMResultatsLaboratoireBiologieSecondeIntention.entree.documentAttache:FRLMDocumentAttache +* group[=].element[=].target.code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.entry:FRCDADocumentAttache +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats-de-laboratoire-de-biologie-de-seconde-intention" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.code +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.title +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.text +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.entry:FRCDASimpleObservation +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections.entry:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent +// Entrée Document attaché +* group[=].element[+].code = #FRCDAResultatsDeLaboratoireDeBiologieDeSecondeIntention.entry:FRCDADocumentAttache +* group[=].element[=].target.code = #FRCompositionDocument.section:sans-sous-sections.entry:FRDocumentReferenceDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySubChapterLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySubChapterLMCDAFHIR.fsh new file mode 100644 index 0000000..e2046b0 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionLaboratorySubChapterLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionLaboratorySubChapterLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMCRBIOSousChapitre → FRCDACRBIOSousChapitre → FRCompositionDocument.section:avec-sous-sections.section" +Description: "Mapping des éléments du modèle métier FRLMCRBIOSousChapitre vers la section CDA FRCDACRBIOSousChapitre, puis vers le profil FHIR FRCompositionDocument.section:avec-sous-sections.section." +* title = "Mapping Métier/CDA/FHIR : \"Sous-chapitre de BIO\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-crbio-sous-chapitre" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-crbio-sous-chapitre" +// Élément racine +* group[=].element[+].code = #FRLMCRBIOSousChapitre +* group[=].element[=].target.code = #FRCDACRBIOSousChapitre +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMCRBIOSousChapitre.codeSection +* group[=].element[=].target.code = #FRCDACRBIOSousChapitre.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMCRBIOSousChapitre.blocNarratif +* group[=].element[=].target.code = #FRCDACRBIOSousChapitre.text +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMCRBIOSousChapitre.titreSection +* group[=].element[=].target.code = #FRCDACRBIOSousChapitre.title +* group[=].element[=].target.equivalence = #equivalent +// résultat d'examen de BIO +* group[=].element[+].code = #FRLMCRBIOSousChapitre.entree.resultatsExamensBiologieMedicale +* group[=].element[=].target.code = #FRCDACRBIOSousChapitre.entry:FRCDAResultatsExamensDeBiologieMedicale +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-crbio-sous-chapitre" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDACRBIOSousChapitre +* group[=].element[=].target.code = #FRCompositionDocument.section:avec-sous-sections.section +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDACRBIOSousChapitre.code +* group[=].element[=].target.code = #FRCompositionDocument.section:avec-sous-sections.section.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDACRBIOSousChapitre.text +* group[=].element[=].target.code = #FRCompositionDocument.section:avec-sous-sections.section.text +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDACRBIOSousChapitre.title +* group[=].element[=].target.code = #FRCompositionDocument.section:avec-sous-sections.section.title +* group[=].element[=].target.equivalence = #equivalent +// résultat d'examen de BIO +* group[=].element[+].code = #FRCDACRBIOSousChapitre.entry:FRCDAResultatsExamensDeBiologieMedicale +* group[=].element[=].target.code = #FRCompositionDocument.section:avec-sous-sections.section:sans-sous-sections.entry:FRObservationLaboratoryReportResultsDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalDeviceLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalDeviceLMCDAFHIR.fsh new file mode 100644 index 0000000..0960442 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalDeviceLMCDAFHIR.fsh @@ -0,0 +1,56 @@ +Instance: FRSectionMedicalDeviceLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDispositifsMedicaux → FRCDADispositifsMedicaux → FRCompositionDocument.section:medicalDevice" +Description: "Mapping des éléments du modèle métier FRLMDispositifsMedicaux vers la section CDA FRCDADispositifsMedicaux, puis vers la section FHIR FRCompositionDocument.section:medicalDevice." +* title = "Mapping Métier/CDA/FHIR : \"Dispositifs médicaux\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-dispositifs-medicaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispositifs-medicaux" +// élément racine +* group[=].element[+].code = #FRLMDispositifsMedicaux +* group[=].element[=].target[+].code = #FRCDADispositifsMedicaux +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMDispositifsMedicaux.codeSection +* group[=].element[=].target[+].code = #FRCDADispositifsMedicaux.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMDispositifsMedicaux.titreSection +* group[=].element[=].target[+].code = #FRCDADispositifsMedicaux.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMDispositifsMedicaux.blocNarratif +* group[=].element[=].target[+].code = #FRCDADispositifsMedicaux.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Dispositif medical +* group[=].element[+].code = #FRLMDispositifsMedicaux.entree.dispositifsMedicaux +* group[=].element[=].target[+].code = #FRCDADispositifsMedicaux.entry:FRCDADispositifMedical +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispositifs-medicaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDADispositifsMedicaux +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevice +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADispositifsMedicaux.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevice.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDADispositifsMedicaux.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevice.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDADispositifsMedicaux.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevice.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Dispositif medical +* group[=].element[+].code = #FRCDADispositifsMedicaux.entry:FRCDADispositifMedical +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevice.entry:FRDeviceRequestDocument +* group[=].element[=].target[=].equivalence = #equivalent +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevice.entry:FRDeviceUseStatementDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..52e24a4 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicalHistoryLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionMedicalHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Antécédents médicaux" +Description: "Mapping des éléments du modèle métier FRLMAntecedentsMedicaux vers la section CDA FRCDAAntecedentsMedicaux, puis vers le profil FHIR FRCompositionDocument.section:MedicalHistory." +* title = "Mapping Métier/CDA/FHIR : \"Antécédents médicaux\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-antecedents-medicaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedents-medicaux" +// Élément racine +* group[=].element[+].code = #FRLMAntecedentsMedicaux +* group[=].element[=].target.code = #FRCDAAntecedentsMedicaux +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMAntecedentsMedicaux.codeSection +* group[=].element[=].target.code = #FRCDAAntecedentsMedicaux.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMAntecedentsMedicaux.titreSection +* group[=].element[=].target.code = #FRCDAAntecedentsMedicaux.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMAntecedentsMedicaux.blocNarratif +* group[=].element[=].target.code = #FRCDAAntecedentsMedicaux.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Antécédent médical +* group[=].element[+].code = #FRLMAntecedentsMedicaux.entree.problemes +* group[=].element[=].target.code = #FRCDAAntecedentsMedicaux.entry.FRCDAListeDesProblemes +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-antecedents-medicaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAAntecedentsMedicaux +* group[=].element[=].target.code = #FRCompositionDocument.section:MedicalHistory +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDAAntecedentsMedicaux.code +* group[=].element[=].target.code = #FRCompositionDocument.section:MedicalHistory.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAAntecedentsMedicaux.title +* group[=].element[=].target.code = #FRCompositionDocument.section:MedicalHistory.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDAAntecedentsMedicaux.text +* group[=].element[=].target.code = #FRCompositionDocument.section:MedicalHistory.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée : Antécédent médical +* group[=].element[+].code = #FRCDAAntecedentsMedicaux.entry.FRCDAListeDesProblemes +* group[=].element[=].target.code = #FRCompositionDocument.section:MedicalHistory.entry:FRConditionDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationAdministrationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationAdministrationLMCDAFHIR.fsh new file mode 100644 index 0000000..eea9dda --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationAdministrationLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionMedicationAdministrationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitementsAdministres → FRCDATraitementsAdministres → FRCompositionDocument.section:medicationAdministration" +Description: "Mapping des éléments du modèle métier FRLMTraitementsAdministres vers la section CDA FRCDATraitementsAdministres, puis vers la section FHIR FRCompositionDocument.section:medicationAdministration." +* title = "Mapping Métier/CDA/FHIR : \"Traitements administrés\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitements-administres" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitements-administres" +// Élément racine +* group[=].element[+].code = #FRLMTraitementsAdministres +* group[=].element[=].target.code = #FRCDATraitementsAdministres +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMTraitementsAdministres.codeSection +* group[=].element[=].target.code = #FRCDATraitementsAdministres.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMTraitementsAdministres.titreSection +* group[=].element[=].target.code = #FRCDATraitementsAdministres.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMTraitementsAdministres.blocNarratif +* group[=].element[=].target.code = #FRCDATraitementsAdministres.text +* group[=].element[=].target.equivalence = #equivalent +// entrée de la section +* group[=].element[+].code = #FRLMTraitementsAdministres.entree.traitementAdministre +* group[=].element[=].target.code = #FRCDATraitementsAdministres.entry.FRCDATraitement +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitements-administres" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDATraitementsAdministres +* group[=].element[=].target.code = #FRCompositionDocument.section:medicationAdministration +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDATraitementsAdministres.code +* group[=].element[=].target.code = #FRCompositionDocument.section:medicationAdministration.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDATraitementsAdministres.title +* group[=].element[=].target.code = #FRCompositionDocument.section:medicationAdministration.title +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDATraitementsAdministres.text +* group[=].element[=].target.code = #FRCompositionDocument.section:medicationAdministration.text +* group[=].element[=].target.equivalence = #equivalent +// entrée de la section +* group[=].element[+].code = #FRCDATraitementsAdministres.entry.FRCDATraitement +* group[=].element[=].target.code = #FRCompositionDocument.section:medicationAdministration.entry:FRMedicationAdministrationDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationDispenseLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationDispenseLMCDAFHIR.fsh new file mode 100644 index 0000000..4b21982 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationDispenseLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionMedicationDispenseLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDispensationMedicaments → FRCDADispensationMedicaments → FRMedicationDispenseDocument" +Description: "Mapping des éléments du modèle métier FRLMDispensationMedicaments vers la section CDA FRCDADispensationMedicaments, puis vers la section FHIR FRCompositionDocument.section:medication-dispense." +* title = "Mapping Métier/CDA/FHIR : \"Dispensation de médicaments\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-dispensation-medicaments" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispensation-medicaments" +// Élément racine +* group[=].element[+].code = #FRLMDispensationMedicaments +* group[=].element[=].target.code = #FRCDADispensationMedicaments +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMDispensationMedicaments.codeSection +* group[=].element[=].target.code = #FRCDADispensationMedicaments.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRLMDispensationMedicaments.blocNarratif +* group[=].element[=].target.code = #FRCDADispensationMedicaments.text +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMDispensationMedicaments.titreSection +* group[=].element[=].target.code = #FRCDADispensationMedicaments.title +* group[=].element[=].target.equivalence = #equivalent +// entrées de la section +* group[=].element[+].code = #FRLMDispensationMedicaments.entree.traitementDispense +* group[=].element[=].target.code = #FRCDADispensationMedicaments.entry.FRCDATraitementDispense +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-dispensation-medicaments" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDADispensationMedicaments +* group[=].element[=].target.code = #FRCompositionDocument.section:medication-dispense +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADispensationMedicaments.code +* group[=].element[=].target.code = #FRCompositionDocument.section:medication-dispense.code +* group[=].element[=].target.equivalence = #equivalent +// Description narrative de la section +* group[=].element[+].code = #FRCDADispensationMedicaments.text +* group[=].element[=].target.code = #FRCompositionDocument.section:medication-dispense.text +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDADispensationMedicaments.title +* group[=].element[=].target.code = #FRCompositionDocument.section:medication-dispense.title +* group[=].element[=].target.equivalence = #equivalent +// entrées de la section +* group[=].element[+].code = #FRCDADispensationMedicaments.entry.FRCDATraitementDispense +* group[=].element[=].target.code = #FRCompositionDocument.section:medication-dispense.entry:FRMedicationDispenseDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationRequestLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationRequestLMCDAFHIR.fsh new file mode 100644 index 0000000..d07fc07 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationRequestLMCDAFHIR.fsh @@ -0,0 +1,62 @@ +Instance: FRSectionMedicationRequestLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMPrescriptionMedicaments → FRCDAPrescriptionMedicaments → FRCompositionDocument.section:medicationRequest" +Description: "Mapping des éléments du modèle métier FRLMPrescriptionMedicaments vers la section CDA FRCDAPrescriptionMedicaments, puis vers la section FHIR FRCompositionDocument.section:medicationRequest." +* title = "Mapping Métier/CDA/FHIR : \"Prescription de médicaments\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-prescription-medicaments" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-prescription-medicaments" +// élément racine +* group[=].element[+].code = #FRLMPrescriptionMedicaments +* group[=].element[=].target[+].code = #FRCDAPrescriptionMedicaments +* group[=].element[=].target[=].equivalence = #equivalent +// auteur de la prescription +* group[=].element[+].code = #FRLMPrescriptionMedicaments.auteur +* group[=].element[=].target[+].code = #FRCDAPrescriptionMedicaments.author +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMPrescriptionMedicaments.codeSection +* group[=].element[=].target[+].code = #FRCDAPrescriptionMedicaments.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMPrescriptionMedicaments.titreSection +* group[=].element[=].target[+].code = #FRCDAPrescriptionMedicaments.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMPrescriptionMedicaments.blocNarratif +* group[=].element[=].target[+].code = #FRCDAPrescriptionMedicaments.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Traitement prescrit +* group[=].element[+].code = #FRLMPrescriptionMedicaments.entree.traitementPrescrit +* group[=].element[=].target[+].code = #FRCDAPrescriptionMedicaments.entry:FRCDATraitementPrescrit +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-prescription-medicaments" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAPrescriptionMedicaments +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicationRequest +* group[=].element[=].target[=].equivalence = #equivalent +// auteur de la prescription +* group[=].element[+].code = #FRCDAPrescriptionMedicaments.author +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicationRequest.author +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAPrescriptionMedicaments.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicationRequest.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAPrescriptionMedicaments.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicationRequest.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAPrescriptionMedicaments.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicationRequest.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Traitement prescrit +* group[=].element[+].code = #FRCDAPrescriptionMedicaments.entry:FRCDATraitementPrescrit +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicationRequest.entry:FRMedicationRequestDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationsLMCDAFHIR.fsh new file mode 100644 index 0000000..ca0f126 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionMedicationsLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionMedicationsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMTraitements → FRCDATraitements → FRCompositionDocument.section:medications" +Description: "Mapping des éléments du modèle métier FRLMTraitements vers la section CDA FRCDATraitements, puis vers la section FHIR FRCompositionDocument.section:medications." +* title = "Mapping Métier/CDA/FHIR : \"Traitements\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-traitements" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitements" +// élément racine +* group[=].element[+].code = #FRLMTraitements +* group[=].element[=].target[+].code = #FRCDATraitements +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMTraitements.codeSection +* group[=].element[=].target[+].code = #FRCDATraitements.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMTraitements.titreSection +* group[=].element[=].target[+].code = #FRCDATraitements.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMTraitements.blocNarratif +* group[=].element[=].target[+].code = #FRCDATraitements.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Traitement +* group[=].element[+].code = #FRLMTraitements.entree.traitements +* group[=].element[=].target[+].code = #FRCDATraitements.entry:FRCDATraitement +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-traitements" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDATraitements +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medications +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDATraitements.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medications.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDATraitements.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medications.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDATraitements.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medications.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Traitement +* group[=].element[+].code = #FRCDATraitements.entry:FRCDATraitement +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medications.entry:FRMedicationAdministrationDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionNoteLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionNoteLMCDAFHIR.fsh new file mode 100644 index 0000000..d88d0c3 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionNoteLMCDAFHIR.fsh @@ -0,0 +1,48 @@ +Instance: FRSectionNoteLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping Métier/CDA/FHIR : Commentaire ER" +Description: "Mapping des éléments du modèle métier FRLMCommentaireNonCode vers la section CDA FRCDACommentaireNonCode, puis vers le profil FHIR FRCompositionDocument.section:note." +* title = "Mapping Métier/CDA/FHIR : \"Commentaire non codé\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-commentaire-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-commentaire-non-code" +// Élément racine +* group[=].element[+].code = #FRLMCommentaireNonCode +* group[=].element[=].target.code = #FRCDACommentaireNonCode +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMCommentaireNonCode.codeSection +* group[=].element[=].target.code = #FRCDACommentaireNonCode.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMCommentaireNonCode.titreSection +* group[=].element[=].target.code = #FRCDACommentaireNonCode.title +* group[=].element[=].target.equivalence = #equivalent +// Commentaire non codé +* group[=].element[+].code = #FRLMCommentaireNonCode.blocNarratif +* group[=].element[=].target.code = #FRCDACommentaireNonCode.text +* group[=].element[=].target.equivalence = #equivalent + + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-commentaire-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDACommentaireNonCode +* group[=].element[=].target.code = #FRCompositionDocument.section:note +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDACommentaireNonCode.code +* group[=].element[=].target.code = #FRCompositionDocument.section:note.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDACommentaireNonCode.title +* group[=].element[=].target.code = #FRCompositionDocument.section:note.title +* group[=].element[=].target.equivalence = #equivalent +// Commentaire non codé +* group[=].element[+].code = #FRCDACommentaireNonCode.text +* group[=].element[=].target.code = #FRCompositionDocument.section:note.text +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPDFDocumentCopyLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPDFDocumentCopyLMCDAFHIR.fsh new file mode 100644 index 0000000..fff51d5 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPDFDocumentCopyLMCDAFHIR.fsh @@ -0,0 +1,55 @@ +Instance: FRSectionPDFDocumentCopyLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMDocumentPDFCopie → FRCDADocumentPDFCopie → FRCompositionDocument.section:pdfDocumentCopy" +Description: "Mapping des éléments du modèle métier FRLMDocumentPDFCopie vers la section CDA FRCDADocumentPDFCopie, puis vers la section FHIR FRCompositionDocument.section:pdfDocumentCopy." +* title = "Mapping Métier/CDA/FHIR : \"Document PDF-copie\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-document-pdf-copie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-document-pdf-copie" +// élément racine +* group[=].element[+].code = #FRLMDocumentPDFCopie +* group[=].element[=].target[+].code = #FRCDADocumentPDFCopie +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMDocumentPDFCopie.codeSection +* group[=].element[=].target[+].code = #FRCDADocumentPDFCopie.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMDocumentPDFCopie.titreSection +* group[=].element[=].target[+].code = #FRCDADocumentPDFCopie.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMDocumentPDFCopie.blocNarratif +* group[=].element[=].target[+].code = #FRCDADocumentPDFCopie.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Document attaché +* group[=].element[+].code = #FRLMDocumentPDFCopie.entree.documentAttache +* group[=].element[=].target[+].code = #FRCDADocumentPDFCopie.entry:FRCDADocumentAttache +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-document-pdf-copie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDADocumentPDFCopie +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pdfDocumentCopy +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDADocumentPDFCopie.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pdfDocumentCopy.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDADocumentPDFCopie.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pdfDocumentCopy.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDADocumentPDFCopie.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pdfDocumentCopy.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Document attaché +* group[=].element[+].code = #FRCDADocumentPDFCopie.entry:FRCDADocumentAttache +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pdfDocumentCopy.entry:FRDocumentReferenceDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPatientEducationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPatientEducationLMCDAFHIR.fsh new file mode 100644 index 0000000..add41b7 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPatientEducationLMCDAFHIR.fsh @@ -0,0 +1,70 @@ +Instance: FRSectionPatientEducationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMEducationPatient → FRCDAEducationDuPatient → FRCompositionDocument.section:patientEducation" +Description: "Mapping des éléments du modèle métier FRLMEducationPatient vers la section CDA FRCDAEducationDuPatient, puis vers la section FHIR FRCompositionDocument.section:patientEducation." +* title = "Mapping Métier/CDA/FHIR : \"Education du patient\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-education-patient" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-education-du-patient" +// élément racine +* group[=].element[+].code = #FRLMEducationPatient +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMEducationPatient.codeSection +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMEducationPatient.titreSection +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMEducationPatient.blocNarratif +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Acte +* group[=].element[+].code = #FRLMEducationPatient.entree.acte +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient.entry:frActe +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRLMEducationPatient.entree.observation +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient.entry:frSimpleObservation +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée References externes +* group[=].element[+].code = #FRLMEducationPatient.entree.reference +* group[=].element[=].target[+].code = #FRCDAEducationDuPatient.entry:frReferencesExternes +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-education-du-patient" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAEducationDuPatient +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAEducationDuPatient.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAEducationDuPatient.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAEducationDuPatient.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Acte +* group[=].element[+].code = #FRCDAEducationDuPatient.entry:frActe +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation.entry:FRProcedureActDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRCDAEducationDuPatient.entry:frSimpleObservation +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation.entry:Observation +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée References externes +* group[=].element[+].code = #FRCDAEducationDuPatient.entry:frReferencesExternes +* group[=].element[=].target[+].code = #FRCompositionDocument.section:patientEducation.entry:FRDocumentReferenceDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPhysicalFunctionsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPhysicalFunctionsLMCDAFHIR.fsh new file mode 100644 index 0000000..50f537c --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPhysicalFunctionsLMCDAFHIR.fsh @@ -0,0 +1,70 @@ +Instance: FRSectionPhysicalFunctionsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMFonctionsPhysiques → FRCDAFonctionsPhysiques → FRCompositionDocument.section:PhysicalFunctions" +Description: "Mapping des éléments du modèle métier FRLMFonctionsPhysiques vers la section CDA FRCDAFonctionsPhysiques, puis vers le profil FHIR FRCompositionDocument.section:PhysicalFunctions." +* title = "Mapping Métier/CDA/FHIR : \"Fonctions physiques\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-fonctions-physiques" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-fonctions-physiques" +// Élément racine +* group[=].element[+].code = #FRLMFonctionsPhysiques +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de la section +* group[=].element[+].code = #FRLMFonctionsPhysiques.identifiant +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques.id +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRLMFonctionsPhysiques.code +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRLMFonctionsPhysiques.titreSection +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques.title +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRLMFonctionsPhysiques.blocNarratif +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques.text +* group[=].element[=].target.equivalence = #equivalent +// entrée : Groupe de questionnaires d'évalutation +* group[=].element[+].code = #FRLMFonctionsPhysiques.entree.groupeQuestionnairesEvaluation +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques.entry:FRCDAGroupDeQuestionnairesDEvaluation +* group[=].element[=].target.equivalence = #equivalent +// entrée : Evalutation +* group[=].element[+].code = #FRLMFonctionsPhysiques.entree.evalutation +* group[=].element[=].target.code = #FRCDAFonctionsPhysiques.entry:FRCDAEvaluation +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-fonctions-physiques" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAFonctionsPhysiques +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions +* group[=].element[=].target.equivalence = #equivalent +// Identifiant de la section +* group[=].element[+].code = #FRCDAFonctionsPhysiques.id +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions.id +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDAFonctionsPhysiques.code +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAFonctionsPhysiques.title +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions.title +* group[=].element[=].target.equivalence = #equivalent +// Texte narratif +* group[=].element[+].code = #FRCDAFonctionsPhysiques.text +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions.text +* group[=].element[=].target.equivalence = #equivalent +// entrée : Groupe de questionnaires d'évalutation +* group[=].element[+].code = #FRCDAFonctionsPhysiques.entry:FRCDAGroupDeQuestionnairesDEvaluation +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions.entry:FRObservationSurveyPannelDocument +* group[=].element[=].target.equivalence = #equivalent +// entrée : Evalutation +* group[=].element[+].code = #FRCDAFonctionsPhysiques.entry:FRCDAEvaluation +* group[=].element[=].target.code = #FRCompositionDocument.section:PhysicalFunctions.entry:FRObservationSurveyDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPregnancyHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPregnancyHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..310e32a --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPregnancyHistoryLMCDAFHIR.fsh @@ -0,0 +1,62 @@ +Instance: FRSectionPregnancyHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMHistoriqueDesGrossesses → FRCDAHistoriqueDesGrossesses → FRCompositionDocument.section:pregnancyHistory" +Description: "Mapping des éléments du modèle métier FRLMHistoriqueDesGrossesses vers la section CDA FRCDAHistoriqueDesGrossesses, puis vers la section FHIR FRCompositionDocument.section:pregnancyHistory." +* title = "Mapping Métier/CDA/FHIR : \"Historique des grossesses\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-historique-des-grossesses" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-des-grossesses" +// élément racine +* group[=].element[+].code = #FRLMHistoriqueDesGrossesses +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesGrossesses +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMHistoriqueDesGrossesses.codeSection +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesGrossesses.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMHistoriqueDesGrossesses.titreSection +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesGrossesses.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMHistoriqueDesGrossesses.blocNarratif +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesGrossesses.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Observation sur la grossesse ou Entrée Historique des grossesses +* group[=].element[+].code = #FRLMHistoriqueDesGrossesses.entree[x]:FRLMObservationGrossesse +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesGrossesses.entry:FRCDAObservationSurLaGrossesse +* group[=].element[=].target[=].equivalence = #equivalent +* group[=].element[+].code = #FRLMHistoriqueDesGrossesses.entree[x]:FRLMHistoriqueGrossesse +* group[=].element[=].target[+].code = #FRCDAHistoriqueDesGrossesses.entry:FRCDAHistoriqueDeLaGrossesse +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-historique-des-grossesses" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAHistoriqueDesGrossesses +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pregnancyHistory +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAHistoriqueDesGrossesses.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pregnancyHistory.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAHistoriqueDesGrossesses.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pregnancyHistory.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAHistoriqueDesGrossesses.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pregnancyHistory.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Observation sur la grossesse +* group[=].element[+].code = #FRCDAHistoriqueDesGrossesses.entry:FRCDAObservationSurLaGrossesse +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pregnancyHistory.entry:FRObservationPregnancyDocument +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Historique des grossesses +* group[=].element[+].code = #FRCDAHistoriqueDesGrossesses.entry:FRCDAHistoriqueDeLaGrossesse +* group[=].element[=].target[+].code = #FRCompositionDocument.section:pregnancyHistory.entry:FRObservationPregnancyHistoryDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPrescriptionOfMedicalDevicesLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPrescriptionOfMedicalDevicesLMCDAFHIR.fsh new file mode 100644 index 0000000..eff4b53 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionPrescriptionOfMedicalDevicesLMCDAFHIR.fsh @@ -0,0 +1,62 @@ +Instance: FRSectionPrescriptionOfMedicalDevicesLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMPrescriptionDispositifsMedicaux → FRCDAPrescriptionDispositifsMedicaux → FRCompositionDocument.section:medicalDevicePrescription" +Description: "Mapping des éléments du modèle métier FRLMPrescriptionDispositifsMedicaux vers la section CDA FRCDAPrescriptionDispositifsMedicaux, puis vers la section FHIR FRCompositionDocument.section:medicalDevicePrescription." +* title = "Mapping Métier/CDA/FHIR : \"Prescription de dispositifs médicaux\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-prescription-dispositifs-medicaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-prescription-dispositifs-medicaux" +// élément racine +* group[=].element[+].code = #FRLMPrescriptionDispositifsMedicaux +* group[=].element[=].target[+].code = #FRCDAPrescriptionDispositifsMedicaux +* group[=].element[=].target[=].equivalence = #equivalent +// auteur de la prescription +* group[=].element[+].code = #FRLMPrescriptionDispositifsMedicaux.auteur +* group[=].element[=].target[+].code = #FRCDAPrescriptionDispositifsMedicaux.author +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMPrescriptionDispositifsMedicaux.codeSection +* group[=].element[=].target[+].code = #FRCDAPrescriptionDispositifsMedicaux.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMPrescriptionDispositifsMedicaux.titreSection +* group[=].element[=].target[+].code = #FRCDAPrescriptionDispositifsMedicaux.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMPrescriptionDispositifsMedicaux.blocNarratif +* group[=].element[=].target[+].code = #FRCDAPrescriptionDispositifsMedicaux.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Dispositif medical prescrit +* group[=].element[+].code = #FRLMPrescriptionDispositifsMedicaux.entree.dispositifMedical +* group[=].element[=].target[+].code = #FRCDAPrescriptionDispositifsMedicaux.entry:FRCDADispositifMedical +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-prescription-dispositifs-medicaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAPrescriptionDispositifsMedicaux +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevicePrescription +* group[=].element[=].target[=].equivalence = #equivalent +// auteur de la prescription +* group[=].element[+].code = #FRCDAPrescriptionDispositifsMedicaux.author +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevicePrescription.author +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAPrescriptionDispositifsMedicaux.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevicePrescription.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAPrescriptionDispositifsMedicaux.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevicePrescription.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAPrescriptionDispositifsMedicaux.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevicePrescription.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Dispositif medical prescrit +* group[=].element[+].code = #FRCDAPrescriptionDispositifsMedicaux.entry:FRCDADispositifMedical +* group[=].element[=].target[+].code = #FRCompositionDocument.section:medicalDevicePrescription.entry:FRDeviceRequestDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionReasonForRecommendationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionReasonForRecommendationLMCDAFHIR.fsh new file mode 100644 index 0000000..33f0723 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionReasonForRecommendationLMCDAFHIR.fsh @@ -0,0 +1,62 @@ +Instance: FRSectionReasonForRecommendationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMRaisonRecommandation → FRCDARaisonDeLaRecommandation → FRCompositionDocument.section:reasonForRecommendation" +Description: "Mapping des éléments du modèle métier FRLMRaisonRecommandation vers la section CDA FRCDARaisonDeLaRecommandation, puis vers la section FHIR FRCompositionDocument.section:reasonForRecommendation." +* title = "Mapping Métier/CDA/FHIR : \"Raison de la recommandation\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-raison-recommandation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-raison-de-la-recommandation" +// élément racine +* group[=].element[+].code = #FRLMRaisonRecommandation +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandation +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMRaisonRecommandation.codeSection +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandation.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMRaisonRecommandation.titreSection +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandation.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMRaisonRecommandation.blocNarratif +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandation.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRLMRaisonRecommandation.entree.observation +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandation.entry:FRCDASimpleObservation +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Problème +* group[=].element[+].code = #FRLMRaisonRecommandation.entree.problemes +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandation.entry:FRCDAProbleme +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-raison-de-la-recommandation" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDARaisonDeLaRecommandation +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDARaisonDeLaRecommandation.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDARaisonDeLaRecommandation.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDARaisonDeLaRecommandation.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Simple observation +* group[=].element[+].code = #FRCDARaisonDeLaRecommandation.entry:FRCDASimpleObservation +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.entry:Observation +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Problème +* group[=].element[+].code = #FRCDARaisonDeLaRecommandation.entry:FRCDAProbleme +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.entry:FRConditionDocument +* group[=].element[=].target[=].equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..db38960 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionResultsLMCDAFHIR.fsh @@ -0,0 +1,54 @@ +Instance: FRSectionResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultats → FRCDAResultats → FRCompositionDocument.section:results" +Description: "Mapping des éléments du modèle métier FRLMResultats vers la section CDA FRCDAResultats, puis vers la section FHIR FRCompositionDocument.section:results." +* title = "Mapping Métier/CDA/FHIR : \"Résultats\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats" +// élément racine +* group[=].element[+].code = #FRLMResultats +* group[=].element[=].target[+].code = #FRCDAResultats +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMResultats.codeSection +* group[=].element[=].target[+].code = #FRCDAResultats.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMResultats.titreSection +* group[=].element[=].target[+].code = #FRCDAResultats.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMResultats.blocNarratif +* group[=].element[=].target[+].code = #FRCDAResultats.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Resultats +* group[=].element[+].code = #FRLMResultats.entree.resultatsEntry +* group[=].element[=].target[+].code = #FRCDAResultats.entry:FRCDAResultats +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAResultats +* group[=].element[=].target[+].code = #FRCompositionDocument.section:results +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAResultats.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:results.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAResultats.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:results.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAResultats.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:results.text +* group[=].element[=].target[=].equivalence = #equivalent +// Entrée Resultats +* group[=].element[+].code = #FRCDAResultats.entry:FRCDAResultats +* group[=].element[=].target[+].code = #FRCompositionDocument.section:results.entry:FRDiagnosticReportDocument +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionSocialHistoryLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionSocialHistoryLMCDAFHIR.fsh new file mode 100644 index 0000000..ffa5d94 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionSocialHistoryLMCDAFHIR.fsh @@ -0,0 +1,54 @@ +Instance: FRSectionSocialHistoryLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMHabitusModeDeVie → FRCDAHabitusModeDeVieSection → FRCompositionDocument.section:socialHistory" +Description: "Mapping des éléments du modèle métier FRLMHabitusModeDeVie vers la section CDA FRCDAHabitusModeDeVieSection, puis vers le profil FHIR FRCompositionDocument.section:socialHistory." +* title = "Mapping Métier/CDA/FHIR : Habitus et modes de vie" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-habitus-mode-de-vie" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-habitus-mode-de-vie-section" +// Élément racine +* group[=].element[+].code = #FRLMHabitusModeDeVie +* group[=].element[=].target.code = #FRCDAHabitusModeDeVieSection +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMHabitusModeDeVie.codeSection +* group[=].element[=].target.code = #FRCDAHabitusModeDeVieSection.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMHabitusModeDeVie.titreSection +* group[=].element[=].target.code = #FRCDAHabitusModeDeVieSection.title +* group[=].element[=].target.equivalence = #equivalent +// bloc narratif +* group[=].element[+].code = #FRLMHabitusModeDeVie.blocNarratif +* group[=].element[=].target.code = #FRCDAHabitusModeDeVieSection.text +* group[=].element[=].target.equivalence = #equivalent +// entrées Habitus, Mode de vie +* group[=].element[+].code = #FRLMHabitusModeDeVie.entree.habitusModeDeVieEntry +* group[=].element[=].target.code = #FRCDAHabitusModeDeVieSection.entry:FRCDAHabitusModeDeVie +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR CompositionDocument.section:socialHistory +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-habitus-mode-de-vie-section" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAHabitusModeDeVieSection +* group[=].element[=].target.code = #FRCompositionDocument.section:socialHistory +* group[=].element[=].target.equivalence = #equivalent +// Code de la section +* group[=].element[+].code = #FRCDAHabitusModeDeVieSection.code +* group[=].element[=].target.code = #FRCompositionDocument.section:socialHistory.code +* group[=].element[=].target.equivalence = #equivalent +// Titre de la section +* group[=].element[+].code = #FRCDAHabitusModeDeVieSection.title +* group[=].element[=].target.code = #FRCompositionDocument.section:socialHistory.title +* group[=].element[=].target.equivalence = #equivalent +// Bloc narratif +* group[=].element[+].code = #FRCDAHabitusModeDeVieSection.text +* group[=].element[=].target.code = #FRCompositionDocument.section:socialHistory.text +* group[=].element[=].target.equivalence = #equivalent +// Entrées Habitus, Mode de vie +* group[=].element[+].code = #FRCDAHabitusModeDeVieSection.entry:FRCDAHabitusModeDeVie +* group[=].element[=].target.code = #FRCompositionDocument.section:socialHistory.entry:FRObservationSocialHistoryDocument +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedExaminationResultsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedExaminationResultsLMCDAFHIR.fsh new file mode 100644 index 0000000..a7462e6 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedExaminationResultsLMCDAFHIR.fsh @@ -0,0 +1,47 @@ +Instance: FRSectionUncodedExaminationResultsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMResultatsExamensNonCode → FRCDAResultatsExamensNonCode → FRCompositionDocument.section:Results" +Description: "Mapping des éléments du modèle métier FRLMResultatsExamensNonCode vers la section CDA FRCDAResultatsExamensNonCode puis vers le profil FHIR FRCompositionDocument.section:Results." +* title = "Mapping Métier/CDA/FHIR : Résultats d'examen" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-resultats-examens-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats-examens-non-code" +// Élément racine +* group[=].element[+].code = #FRLMResultatsExamensNonCode +* group[=].element[=].target.code = #FRCDAResultatsExamensNonCode +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMResultatsExamensNonCode.codeSection +* group[=].element[=].target.code = #FRCDAResultatsExamensNonCode.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMResultatsExamensNonCode.titreSection +* group[=].element[=].target.code = #FRCDAResultatsExamensNonCode.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRLMResultatsExamensNonCode.blocNarratif +* group[=].element[=].target.code = #FRCDAResultatsExamensNonCode.text +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-resultats-examens" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDAResultatsExamensNonCode +* group[=].element[=].target.code = #FRCompositionDocument.section:Results +* group[=].element[=].target.equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAResultatsExamensNonCode.code +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.code +* group[=].element[=].target.equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAResultatsExamensNonCode.title +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.title +* group[=].element[=].target.equivalence = #equivalent +// texte narratif +* group[=].element[+].code = #FRCDAResultatsExamensNonCode.text +* group[=].element[=].target.code = #FRCompositionDocument.section:Results.text +* group[=].element[=].target.equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedOccupationalRiskFactorsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedOccupationalRiskFactorsLMCDAFHIR.fsh new file mode 100644 index 0000000..c27aa76 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedOccupationalRiskFactorsLMCDAFHIR.fsh @@ -0,0 +1,47 @@ +Instance: FRSectionUncodedOccupationalRiskFactorsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMFacteursDeRisqueProfessionnelsNonCode → FRCDAFacteursDeRisqueProfessionnelsNonCode → FRCompositionDocument.section:uncodedOccupationalRiskFactors" +Description: "Mapping des éléments du modèle métier FRLMFacteursDeRisqueProfessionnelsNonCode vers la section CDA FRCDAFacteursDeRisqueProfessionnelsNonCode, puis vers la section FHIR FRCompositionDocument.section:uncodedOccupationalRiskFactors." +* title = "Mapping Métier/CDA/FHIR : \"Facteurs de risque professionnels non codés\"" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-facteurs-de-risque-professionnels-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-facteurs-de-risque-professionnels-non-code" +// élément racine +* group[=].element[+].code = #FRLMFacteursDeRisqueProfessionnelsNonCode +* group[=].element[=].target[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMFacteursDeRisqueProfessionnelsNonCode.codeSection +* group[=].element[=].target[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMFacteursDeRisqueProfessionnelsNonCode.titreSection +* group[=].element[=].target[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMFacteursDeRisqueProfessionnelsNonCode.blocNarratif +* group[=].element[=].target[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode.text +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-facteurs-de-risque-professionnels-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedOccupationalRiskFactors +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedOccupationalRiskFactors.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedOccupationalRiskFactors.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[+].element[+].code = #FRCDAFacteursDeRisqueProfessionnelsNonCode.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedOccupationalRiskFactors.text +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedPointsOfVigilanceLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedPointsOfVigilanceLMCDAFHIR.fsh new file mode 100644 index 0000000..9c42326 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedPointsOfVigilanceLMCDAFHIR.fsh @@ -0,0 +1,46 @@ +Instance: FRSectionUncodedPointsOfVigilanceLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMPointsDeVigilancesNonCode → FRCDAPointsDeVigilancesNonCode → FRCompositionDocument.section:uncodedPointsOfVigilance" +Description: "Mapping des éléments du modèle métier FRLMPointsDeVigilancesNonCode vers la section CDA FRCDAPointsDeVigilancesNonCode, puis vers la section FHIR FRCompositionDocument.section:uncodedPointsOfVigilance." +* title = "Mapping Métier/CDA/FHIR : \"Points de vigilance (non-codés)\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-points-de-vigilances-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-points-de-vigilances-non-code" +// élément racine +* group[=].element[+].code = #FRLMPointsDeVigilancesNonCode +* group[=].element[=].target[+].code = #FRCDAPointsDeVigilancesNonCode +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMPointsDeVigilancesNonCode.codeSection +* group[=].element[=].target[+].code = #FRCDAPointsDeVigilancesNonCode.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMPointsDeVigilancesNonCode.titreSection +* group[=].element[=].target[+].code = #FRCDAPointsDeVigilancesNonCode.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMPointsDeVigilancesNonCode.blocNarratif +* group[=].element[=].target[+].code = #FRCDAPointsDeVigilancesNonCode.text +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-points-de-vigilances-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDAPointsDeVigilancesNonCode +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedPointsOfVigilance +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDAPointsDeVigilancesNonCode.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedPointsOfVigilance.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDAPointsDeVigilancesNonCode.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedPointsOfVigilance.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDAPointsDeVigilancesNonCode.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:uncodedPointsOfVigilance.text +* group[=].element[=].target[=].equivalence = #equivalent \ No newline at end of file diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedReasonForRecommendationLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedReasonForRecommendationLMCDAFHIR.fsh new file mode 100644 index 0000000..9ce73db --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionUncodedReasonForRecommendationLMCDAFHIR.fsh @@ -0,0 +1,46 @@ +Instance: FRSectionUncodedReasonForRecommendationLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMRaisonRecommandationNonCode → FRCDARaisonDeLaRecommandationNonCode → FRCompositionDocument.section:reasonForRecommendation" +Description: "Mapping des éléments du modèle métier FRLMRaisonRecommandationNonCode vers la section CDA FRCDARaisonDeLaRecommandationNonCode, puis vers la section FHIR FRCompositionDocument.section:reasonForRecommendation." +* title = "Mapping Métier/CDA/FHIR : \"Raison de la recommandation\"" +* status = #draft +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-raison-recommandation-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-raison-de-la-recommandation-non-code" +// élément racine +* group[=].element[+].code = #FRLMRaisonRecommandationNonCode +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandationNonCode +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRLMRaisonRecommandationNonCode.codeSection +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandationNonCode.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRLMRaisonRecommandationNonCode.titreSection +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandationNonCode.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRLMRaisonRecommandationNonCode.blocNarratif +* group[=].element[=].target[+].code = #FRCDARaisonDeLaRecommandationNonCode.text +* group[=].element[=].target[=].equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-raison-de-la-recommandation-non-code" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// élément racine +* group[=].element[+].code = #FRCDARaisonDeLaRecommandationNonCode +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation +* group[=].element[=].target[=].equivalence = #equivalent +// code de la section +* group[=].element[+].code = #FRCDARaisonDeLaRecommandationNonCode.code +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.code +* group[=].element[=].target[=].equivalence = #equivalent +// titre de la section +* group[=].element[+].code = #FRCDARaisonDeLaRecommandationNonCode.title +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.title +* group[=].element[=].target[=].equivalence = #equivalent +// bloc narratif de la section +* group[=].element[+].code = #FRCDARaisonDeLaRecommandationNonCode.text +* group[=].element[=].target[+].code = #FRCompositionDocument.section:reasonForRecommendation.text +* group[=].element[=].target[=].equivalence = #equivalent diff --git a/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionVitalSignsLMCDAFHIR.fsh b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionVitalSignsLMCDAFHIR.fsh new file mode 100644 index 0000000..b88a910 --- /dev/null +++ b/input/fsh/MappingLM_CDA_FHIR_Corps/sections/FRSectionVitalSignsLMCDAFHIR.fsh @@ -0,0 +1,47 @@ +Instance: FRSectionVitalSignsLMCDAFHIR +InstanceOf: ConceptMap +Usage: #definition +Title: "Mapping FRLMSignesVitaux → FRCDASignesVitaux → FRCompositionDocument.section" +Description: "Mapping des éléments du modèle métier FRLMSignesVitaux vers la section CDA FRCDASignesVitaux, puis vers le profil FHIR FRCompositionDocument.section:SignesVitaux." +* title = "Mapping Métier/CDA/FHIR : Signes vitaux" +* status = #draft + +// Groupe Mapping 1 : modèle métier → CDA +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-lm-signes-vitaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-signes-vitaux" +// Élément racine +* group[=].element[+].code = #FRLMSignesVitaux +* group[=].element[=].target.code = #FRCDASignesVitaux +* group[=].element[=].target.equivalence = #equivalent +// titreSection +* group[=].element[+].code = #FRLMSignesVitaux.titreSection +* group[=].element[=].target.code = #FRCDASignesVitaux.title +* group[=].element[=].target.equivalence = #equivalent +// Description de la section +* group[=].element[+].code = #FRLMSignesVitaux.blocNarratif +* group[=].element[=].target.code = #FRCDASignesVitaux.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée Signes vitaux +* group[=].element[+].code = #FRLMSignesVitaux.entree.signesVitauxEntry:FRLMSigneVital +* group[=].element[=].target.code = #FRCDASignesVitaux.entry:FRCDASignesVitauxEntry +* group[=].element[=].target.equivalence = #equivalent + +// Groupe Mapping 2 : CDA → FHIR +* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-cda-signes-vitaux" +* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document" +// Élément racine +* group[=].element[+].code = #FRCDASignesVitaux +* group[=].element[=].target.code = #FRCompositionDocument.section:VitalSigns +* group[=].element[=].target.equivalence = #equivalent +// titreSection +* group[=].element[+].code = #FRCDASignesVitaux.title +* group[=].element[=].target.code = #FRCompositionDocument.section:VitalSigns.title +* group[=].element[=].target.equivalence = #equivalent +// Description de la section +* group[=].element[+].code = #FRCDASignesVitaux.text +* group[=].element[=].target.code = #FRCompositionDocument.section:VitalSigns.text +* group[=].element[=].target.equivalence = #equivalent +// Entrée Signes vitaux +* group[=].element[+].code = #FRCDASignesVitaux.entry:FRCDASignesVitauxEntry +* group[=].element[=].target.code = #FRCompositionDocument.section:VitalSigns.entry:FRObservationVitalSignsDocument +* group[=].element[=].target.equivalence = #equivalent diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMAttester.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMAttester.fsh new file mode 100644 index 0000000..882c90d --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMAttester.fsh @@ -0,0 +1,7 @@ +Logical: FRLMAttester +Id: fr-lm-attester +Title: "Logical model - FR LM Attester" +Description: "Professionnel attestant la validité des informations portées dans le document sans pour autant en prendre la responsabilité. N'est pas utilisé dans un document d'expression personnelle du patient/usager et un document produit par un système." +Characteristics: #can-be-target +* dateTime 1..1 dateTime "Date/Heure de l'attestation de validité." +* attester[x] 1..1 FRLMHealthProfessional or FRLMDevice "Professionnel attestant la validité." \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMConsent.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMConsent.fsh new file mode 100644 index 0000000..f279c3f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMConsent.fsh @@ -0,0 +1,9 @@ +Logical: FRLMConsent +Id: fr-lm-consent +Title: "Logical model - FR LM Consent" +Description: "Permet de documenter qu'un consentement éclairé a été obtenu et d'indiquer quel type de consentement a été fourni." +Characteristics: #can-be-target + +* identifier 0..* Identifier "Identifiant du consentement." +* type 1..1 CodeableConcept "Type de consentement." +* status 1..1 CodeableConcept "Statut du consentement." \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMDataEnterer.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMDataEnterer.fsh new file mode 100644 index 0000000..6913e91 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMDataEnterer.fsh @@ -0,0 +1,8 @@ +Logical: FRLMDataEnterer +Id: fr-lm-data-enterer +Title: "Logical model - FR LM Data Enterer" +Description: "Opérateur de saisie de la totalité ou d'une partie du contenu du document." +Characteristics: #can-be-target +* . 0..1 +* date 1..1 dateTime "Date de la saisie." +* dataEnterer[x] 1..1 FRLMHealthProfessional or FRLMPatient "Opérateur de saisie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMHeaderDocument.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMHeaderDocument.fsh new file mode 100644 index 0000000..dee5512 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMHeaderDocument.fsh @@ -0,0 +1,26 @@ +Logical: FRLMHeaderDocument +Id: fr-lm-header-document +Title: "Logical model - FR LM Header Document" +Description: "Eléments de l'entête d'un document contenant les informations générales et nécessaires à la gestion du document (identification et type du document, patient/usager, auteur, évènement documenté, etc...)." + +* identifier 1..* Identifier "Identifiant unique du document et/ou du lot de version du meme document." +* documentType 1..1 CodeableConcept "Type de document." +* documentTitle 1..1 string "Titre du document." +* date 1..1 dateTime "Date de création du document." +* confidentiality 1..1 code "Niveau de confidentialité du document." +* language 1..1 code "Langue principale du document." +* version 1..1 string "Numéro de version du document." +* status 1..1 CodeableConcept "Statut du document." +* eventType 1..* CodeableConcept "Evènement documenté et notamment le cadre d'exercice." +* subject 1..1 FRLMPatient "Patient / Usager." +* author[x] 1..* FRLMHealthProfessional or FRLMOrganisation or FRLMDevice "Auteur du document." +* dataEnterer 0..1 FRLMDataEnterer "Opérateur de saisie." +* informant 0..* FRLMInformant "Informateur ayant fourni des informations utiles à la production du document." +* custodian 1..1 FRLMOrganisation "Structure chargée de la conservation du document." +* intendedRecipient 0..* FRLMIntendedRecipient "Destinataire prévu du document." +* legalAuthentication 1..1 FRLMLegalAuthentication "Responsable du document." +* attester 0..* FRLMAttester "Professionnel attestant la validité du contenu du document." +* participant 0..* FRLMParticipant "Participant, différent de l'auteur, du responsable, de l'opérateur de saisie, de l'informateur ou du destinataire." +* order 0..* FRLMOrder "Association du document à une prescription." +* consent 0..* FRLMConsent "Consentement associé au document." +* encounter 1..1 FRLMEncounter "Association du document à une prise en charge." \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMHealthProfessional.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMHealthProfessional.fsh new file mode 100644 index 0000000..823aaa2 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMHealthProfessional.fsh @@ -0,0 +1,16 @@ +Logical: FRLMHealthProfessional +Id: fr-lm-health-professional +Title: "Logical model - FR LM Health Professional" +Description: "Une personne (professionnel ou patient ou autre)" +Characteristics: #can-be-target + +* identifier 0..1 Identifier "Identifiant." +* name 0..1 FRLMHumanName "Nom du professionnel de santé." +* address 0..* Address "Adresses géopostales du professionnel de santé." +* telecom 0..* ContactPoint "Coordonnées télécom du professionnel de santé." +* professionalRole 0..* Base "Rôle professionnel" + * role 0..* CodeableConcept "Rôle du professionnel de santé." + * organisation 0..1 FRLMOrganisation "Organisation à laquelle le professionnel de santé est rattaché pour exercer ce rôle." + * specialty 0..* CodeableConcept "Spécialité d'un professionnel de santé qui décrit le rôle fonctionnel qu'il exerce au sein de l'organisation." + + diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMHumanName.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMHumanName.fsh new file mode 100644 index 0000000..33ab153 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMHumanName.fsh @@ -0,0 +1,19 @@ +Logical: FRLMHumanName +Id: fr-lm-human-name +Parent: Base +Title: "Logical model - FR LM Human Name" +Description: "Modele logique metier - FR LM Human Name" + +* use 0..1 CodeableConcept "Identifie le type de nom (ex : official, usual, etc.)" + * ^binding.description = "ValueSet HL7 name-use" + * ^binding.valueSet = "http://hl7.org/fhir/ValueSet/name-use" +* text 0..1 string "Nom complet tel qu'il doit etre affiche" +* family 0..* string "Nom" +* given 0..* string "Prenom" +* prefix 0..1 string "Civilite" + * ^binding.description = "JDV_J245-Civilite-CISIS" + * ^binding.valueSet = "https://mos.esante.gouv.fr/NOS/JDV_J245-Civilite-CISIS/FHIR/JDV-J245-Civilite-CISIS" +* suffix 0..1 string "Titre" + * ^binding.description = "JDV_J246-Titre-CISIS" + * ^binding.valueSet = "https://mos.esante.gouv.fr/NOS/JDV_J246-Titre-CISIS/FHIR/JDV-J246-Titre-CISIS" +* period 0..1 Period "Periode pendant laquelle ce nom est/etait utilisé" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMInformant.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMInformant.fsh new file mode 100644 index 0000000..e310b17 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMInformant.fsh @@ -0,0 +1,8 @@ +Logical: FRLMInformant +Id: fr-lm-informant +Title: "Logical model - FR LM Informant" +Description: "Informant (personne ayant fourni des informations utiles à la production du document : professionnel, structure, patient/usager, autre), personne de confiance, personne à prévenir en cas d'urgence, aidant, aidé." +* informant[x] 0..* Base "Informateur / personne de confiance / personne à prévenir en cas d’urgence / aidant / personne aidée." + * informantProfessional 0..* FRLMHealthProfessional "L'informateur est un professionnel de santé" + * informantOrganisation 0..* FRLMOrganisation "L'informateur est une organisation" + * informantPersonne[x] 0..* FRLMRelatedPerson or FRLMPatient "L'informateur est un patient/usager ou un autre type d'informateur (ex : aidant, personne à prévenir en cas d'urgence, etc.)" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMIntendedRecipient.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMIntendedRecipient.fsh new file mode 100644 index 0000000..05484ed --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMIntendedRecipient.fsh @@ -0,0 +1,13 @@ +Logical: FRLMIntendedRecipient +Title: "Logical model - FR LM Intended Recipient" +Id: fr-lm-intended-recipient +Description: "Personne déclarée comme destinataire prévu du document. +- Attention : Cet élément ne contient que le(s) destinataire(s) initialement prévu(s) à la création du document. Rien ne permet par la suite, de certifier que le document a réellement été envoyé à ce(s) destinataire(s). + Par ailleurs, il ne faut pas créer de nouvelle version du document si on souhaite l'envoyer à d'autres destinataires." +Characteristics: #can-be-target +* intendedRecipient[x] 0..* Base "destinataire prévu du document" + * intendedRecipientPatient 0..* FRLMPatient "Le destinataire prévu est un patient" + * intendedRecipientRelatedPerson 0..* FRLMRelatedPerson "Le destinataire prévu est une personne de confiance du patient" + * intendedRecipientHealthProfessional 0..* FRLMHealthProfessional "Le destinataire prévu est un professionnel de santé" + * intendedRecipientOrganisation 0..* FRLMOrganisation "Le destinataire prévu est une organisation" + * intendedRecipientDevice 0..* FRLMDevice "Le destinataire prévu est un système" diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMLegalAuthentication.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMLegalAuthentication.fsh new file mode 100644 index 0000000..62020bf --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMLegalAuthentication.fsh @@ -0,0 +1,13 @@ +Logical: FRLMLegalAuthentication +Id: fr-lm-legal-authentication +Title: "Logical model - FR LM Legal Authentication" +Description: "Représente le responsable du document, qui est : + - soit le professionnel qui prend la responsabilité du document produit par un lui-même ou un autre professionnel. + - soit le professionnel qui prend la responsabilité du document produit par un système de structure (ES, …). + - soit le patient/usager responsable du document d'expression personnelle + - soit le SNR responsable du document produit via ce SNR. + - Soit le Dossier Pharmaceutique (DP) responsable des documents qu'il produit" +Characteristics: #can-be-target +* . 1..1 +* dateTime 1..1 dateTime "Date/Heure de la prise de responsabilité." +* legalAuthenticator[x] 1..1 FRLMHealthProfessional or FRLMPatient or FRLMDevice or FRLMOrganisation "Responsable du document." diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMLocation.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMLocation.fsh new file mode 100644 index 0000000..8cccff2 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMLocation.fsh @@ -0,0 +1,14 @@ +Logical: FRLMLocation +Id: fr-lm-location +Title: "Logical model - FR LM Location" +Description: """Lieu""" +Characteristics: #can-be-target + +* identifier 0..* Identifier "Identifiant du lieu" +* name 0..1 string "Nom du lieu" +* description 0..1 string "Informations complémentaires sur le lieu permettant de mieux l'identifier, au-delà de son nom." +* type 0..* CodeableConcept "Type de fonction exercée sur le lieu" + * ^binding.description = "(preferred): https://terminology.hl7.org/ValueSet-v3-ServiceDeliveryLocationRoleType.html" +* address 0..1 Address "Adresse du lieu" +* managingOrganisation 0..1 FRLMOrganisation "Organisation responsable du lieu" +* partOf 0..1 FRLMLocation "Lieu dont celui-ci fait physiquement partie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMOganisation.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMOganisation.fsh new file mode 100644 index 0000000..05534ca --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMOganisation.fsh @@ -0,0 +1,16 @@ +Logical: FRLMOrganisation +Id: fr-lm-organisation +Title: "Logical model - FR LM Organisation" +Description: "Une structure (organisation) pour les professionnels de santé." +* . 1..1 +* identifier 0..* Identifier "Identifiant de la structure" +* type 0..* CodeableConcept "Type de structure" + * ^binding.description = "Catégorie d'établissement provenant du jdv FHIR https://smt.esante.gouv.fr/fhir/ValueSet/jdv-j368-categorie-etablissement-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-j368-categorie-etablissement-cisis" +* name 0..1 string "Nom de la structure" +* address 0..1 Address "Adresse de la structure" +* telecom 0..* ContactPoint "Coordonnées télécom" +* partOf 0..1 FRLMOrganisation "Lieu dont celui-ci fait physiquement partie" +* industrySector 0..1 CodeableConcept "JDV_J02_XdsHealthcareFacilityTypeCode_CISIS" + * ^binding.description = "JDV_J02_XdsHealthcareFacilityTypeCode_CISIS (Code de type d'établissement de santé provenant du JDV FHIR)" + * ^binding.valueSet = "https://mos.esante.gouv.fr/NOS/JDV_J02-XdsHealthcareFacilityTypeCode-CISIS/FHIR/JDV-J02-XdsHealthcareFacilityTypeCode-CISIS" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMOrder.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMOrder.fsh new file mode 100644 index 0000000..7013e4f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMOrder.fsh @@ -0,0 +1,11 @@ +Logical: FRLMOrder +Id: fr-lm-order +Title: "Logical model - FR LM Order" +Description: "Association to an order that is the origin of the act resulting in the document." +Characteristics: #can-be-target + +* orderId 1..1 Identifier "Identifiant de la demande." +* accessionNumber 0..1 Identifier "Accession Number (Spécifique à l’imagerie)." +* orderDateAndTime 0..1 dateTime "Date et heure de la demande." +* orderPlacer[x] 0..1 FRLMHealthProfessional or FRLMOrganisation or FRLMPatient "La personne/l'organisation à l'origine de la demande." +* orderReason[x] 0..* CodeableConcept or FRLMCondition or FRLMObservation "Motif de la demande." diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMParticipant.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMParticipant.fsh new file mode 100644 index 0000000..bce2d46 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMParticipant.fsh @@ -0,0 +1,19 @@ +Logical: FRLMParticipant +Id: fr-lm-participant +Title: "Logical model - FR LM Participant" +Description: "Personne/Structure impliquée dans les évènements décrits par le document qui n'a pas été mentionné ailleurs." +Characteristics: #can-be-target + +* identifier 0..* Identifier "Identifiants de la personne" +* name 0..* fr-lm-human-name "Nom de la personne" +* type 1..1 CodeableConcept "Type de participation" + * ^binding.description = "jdv-hl7-v3-ParticipationType-cisis (2.16.840.1.113883.1.11.10901)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ParticipationType-cisis" +* role 0..1 CodeableConcept "Rôle fonctionnel" + * ^binding.description = "JDV_J47_FunctionCode_CISIS (1.2.250.1.213.1.1.5.124)" + * ^binding.valueSet = "https://mos.esante.gouv.fr/NOS/JDV_J47-FunctionCode-CISIS/FHIR/JDV-J47-FunctionCode-CISIS" +* period 0..1 Period "Période de la participation" +* participant 1..1 Base "Participant" + * participantProfessional 0..* FRLMHealthProfessional "Le participant est un professionnel de santé" + * participantOrganisation 0..* FRLMOrganisation "Le participant est une organisation" + * participantDevice 0..* FRLMDevice "Le participant est un système" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMPatient.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMPatient.fsh new file mode 100644 index 0000000..75fe962 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMPatient.fsh @@ -0,0 +1,24 @@ +Logical: FRLMPatient +Id: fr-lm-patient +Title: "Logical model - FR LM Patient" +Description: """Patient/Usager concerné par le document.""" +Characteristics: #can-be-target +* . 1..1 +* identifier 1..* Identifier "Identifiant du patient / usager. +- Première occurrence obligatoire pour un document mis en partage dans un système d’information de santé partagé : Matricule INS du patient/usager tel que défini dans le cadre juridique. +- Occurrence(s) suivante(s) (optionnelles) : Identifiant connu pour le patient/usager dans le système d’information du producteur du document (IPP, NIP, etc.).""" +* address 0..* Address "Adresse géopostale du patient/usager." +* telecom 0..* ContactPoint "Coordonnées télécom du patient/usager (numéro de téléphone, adresse e-mail, …)." +* name 1..1 FRLMHumanName "Noms et prénoms du patient/usager." +* administrativeGender 1..1 CodeableConcept "Sexe administratif du patient/usager." +* dateOfBirth 1..1 dateTime "Date et heure de naissance du patient/usager." +* deceased[x] 0..1 boolean or dateTime "Patient/usager décédé / Date et heure du décès." +* multipleBirth[x] 0..1 boolean or integer "Patient/usager né d'une grossesse multiple / Nombre d'ordres de naissance." +* birthPlace 0..1 Address "Lieu de naissance. + - Obligatoire si le matricule INS est présent pour porter le code officiel géographique (COG) du lieu de naissance. + - Le lieu de naissance est constitué du nom et/ou de l’adresse du lieu de naissance du patient/usager." +* contact 0..* Base "Représentant du patient/usager." + * address 0..* Address "Adresse géopostale." + * telecom 0..* ContactPoint "Coordonnées télécom." + * name 1..1 FRLMHumanName "Noms et Prénoms du représentant." + * organization 0..1 FRLMOrganisation "Structure représentant le patient/usager." diff --git a/input/fsh/ModeleLogiqueMetier/Entete/FRLMRelatedPerson.fsh b/input/fsh/ModeleLogiqueMetier/Entete/FRLMRelatedPerson.fsh new file mode 100644 index 0000000..32ace82 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/Entete/FRLMRelatedPerson.fsh @@ -0,0 +1,29 @@ +Logical: FRLMRelatedPerson +Id: fr-lm-related-person +Parent: Base +Title: "Logical model - FR LM Related Person" +Description: "Related Person" + +* identifier 0..* Identifier "Identifiants de la personne" +* name 0..* FRLMHumanName "Nom de la personne" +* subject 1..1 FRLMPatient "Patient / Usager avec la personne" +* relationship 1..1 CodeableConcept "Lien avec le patient" + * ^binding.description = "jdv-hl7-v3-PersonalRelationshipRoleType-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-PersonalRelationshipRoleType-cisis" +* address 0..* Address "Adresse" +* telecom 0..* ContactPoint "Telecom" +* gender 0..1 CodeableConcept "Sexe de la personne" + * ^binding.description = "jdv-hl7-v3-AdministrativeGender-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-AdministrativeGender-cisis" +* birthDate 0..1 dateTime "Date de naissance de la personne" +* deceased 0..1 BackboneElement "Personne decedee" + * deceasedBoolean 0..1 boolean "Personne decedee (booleen)" + * deceasedDateTime 0..1 dateTime "Date et heure du deces" +* multipleBirth 0..1 BackboneElement "Naissance multiple" + * multipleBirthBoolean 0..1 boolean "Personne nee d'une naissance multiple" + * multipleBirthInteger 0..1 integer "Rang de naissance (en cas de naissances multiples)" +* photo 0..* Attachment "Photo de la personne" +* period 0..1 Period "Periode pendant laquelle cette relation est consideree comme valide" +* communication 0..* BackboneElement "Langue qui peut etre utilisee pour communiquer avec la personne" + * language 1..1 CodeableConcept "Langue qui peut etre utilisee pour communiquer avec la personne" + * preferred 0..1 boolean "Indicateur Langue preferee" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/FRLMCorpsDocument.fsh b/input/fsh/ModeleLogiqueMetier/FRLMCorpsDocument.fsh new file mode 100644 index 0000000..18ba64d --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/FRLMCorpsDocument.fsh @@ -0,0 +1,47 @@ +Logical: FRLMCorpsDocument +Id: fr-lm-corps-document +Title: "Logical model - FR LM Corps document" +Description: "Eléments métier du corps d'un document contenant les sections du document." + +* alerts 0..* FRLMAlerts "Section Points de vigilance" +* allergiesAndIntolerances 0..* FRLMAllergiesAndIntolerances "Section Allergies et hypersensibilités" +* problems 0..* FRLMProblems "Section Problemès Actifs" +* medicationSummary 0..* FRLMMedicationSummary "Section Traitement" +* medicalDevicesAndImplants 0..* FRLMMedicalDevicesAndImplants "Section Dispositifs medicaux" +* procedures 0..* FRLMProcedures "Section Historique des actes" +* immunisations 0..* FRLMImmunisations "Section Vaccinations" +* functionalStatus 0..* FRLMFunctionalStatus "Section Statut fonctionnel" +* socialHistory 0..* FRLMSocialHistory "Section Habitus et modes de vie" +* pregnancyHistory 0..* FRLMSectionPregnancyHistory "Section Historique des grossesses" +* advanceDirectives 0..* FRLMAdvanceDirectives "Section Directives anticipées" +* observationResults 0..* FRLMObservationResults "Section Résultats" +* carePlans 0..* FRLMCarePlans "Section Plan de Soins" +* familyMedicalHistory 0..* FRLMFamilyMedicalHistory "Section Antécédents familiaux" +* historyOfPastIllness 0..* FRLMHistoryOfPastIllness "Section Antécédents médicaux" +* predictableAdverseDrugReactions 0..* FRLMPredictableAdverseDrugReaction "Section Effets indesirables" +* hazardousWorkingConditions 0..* FRLMHazardousWorkingConditions "Section Facteurs de risque professionnels non Codé" +* qrCode 0..* FRLMQRCode "Section Codes à barres" +* note 0..* FRLMNote "Section Commentaire (Non-Codé)" +* medicationPrescriptions 0..* FRLMMedicationPrescription "Section Prescription médicaments" +* medicalDevicePrescriptions 0..* FRLMMedicalDevicePrescriptions "Section Prescription de dispositifs médicaux" +* presentedForm 0..* FRLMPresentedForm "Section Document PDF-copie" +* attachments 0..* FRLMAttachments "Section Documents ajoutés" +* travelHistory 0..* FRLMSectionTravelHistory "Section Historique des voyages" +* patientStory 0..* FRLMPatientStory "Section Récit du patient" +* addendum 0..* FRLMAddendum "Section Addendum" +* vitalSigns 0..* FRLMVitalSigns "Section Signes vitaux" +* resultData 0..* FRLMResultData "section Compte rendu de biologie de 1er niveau" +* examinationReport 0..* FRLMExaminationReport "Section Acte d'imagerie" +* orderInformation 0..* FRLMOrderInformation "Section Demande d'examen" +* comparisonStudy 0..* FRLMComparisonStudy "Section Examen comparatif" +* exposureInformation 0..* FRLMExposureInformation "Section Exposition aux radiations" +* supportingInformation 0..* FRLMSupportingInformation "Section Informations cliniques" +* dicomStudyMetadata 0..* FRLMDicomStudyMetadata "Section object catalog" +* recommendation 0..* FRLMRecommendation "Section Recommandation" +* conclusion 0..* FRLMConclusion "Section Conclusion" +* medicationDispensations 0..* FRLMMedicationDispensations "Section Dispensation médicaments" +* patientEducation 0..* FRLMPatientEducation "Section Education du patient" +* patientHistory 0..* FRLMPatientHistory "Section Historique du patient" +* reasonForReferral 0..* FRLMReasonForReferral "Section Raison de la recommandation" +* courseOfEncounter 0..* FRLMCourseOfEncounter "Section Résultats d'événements" +* hospitalDischargeMedications 0..* FRLMHospitalDischargeMedications "Section Traitement à la sortie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdvanceDirective.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdvanceDirective.fsh new file mode 100644 index 0000000..794d94d --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdvanceDirective.fsh @@ -0,0 +1,16 @@ +Logical: FRLMAdvanceDirective +Id: fr-lm-advance-directive +Parent: FRLMEntry +Title: "Logical model - FR LM Advance Directive" +Description: """Directive anticipée""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de la directive anticipée" +* date 1..1 dateTime "Date de la directive anticipée" +* category 1..1 CodeableConcept "Type de directive" + * ^binding.description = "jdv-type-directive-anticipee-cisis (1.2.250.1.213.1.1.5.136)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-type-directive-anticipee-cisis" +* value 1..1 boolean "Procédure autorisée ou pas" +* note 0..1 string "Commentaire" +* attachment 0..1 FRLMAttachment "Piece jointe associee a la directive" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdverseDrugReaction.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdverseDrugReaction.fsh new file mode 100644 index 0000000..35cb913 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAdverseDrugReaction.fsh @@ -0,0 +1,22 @@ +Logical: FRLMAdverseDrugReaction +Id: fr-lm-adverse-drug-reaction +Parent: FRLMEntry +Title: "Modèle logique métier - FR LM Adverse Drug Reaction" +Description: """Effet indésirable médicamenteux""" +Characteristics: #can-be-target + +* adverseDrugReactionType 1..1 CodeableConcept "Type d'effet indésirable" + * ^binding.description = "Type d'effet indésirable provenant du jdv-type-effet-indesirable-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-origine-effet-indesirable-cisis" +* value 1..1 CodeableConcept "Valeur de l'observation" +* medicationAdministration 1..1 FRLMMedicationAdministration "Médicament, substance incriminée, posologie" +* reaction 0..* FRLMCondition "Réaction observée" +* causalityAssessment 0..1 CodeableConcept "Imputabilité" + * ^binding.description = "Niveau d'imputabilité provenant du jdv-imputabilite-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-imputabilite-cisis" +* severity 1..1 CodeableConcept "Gravité" + * ^binding.description = "Gravité provenant du jdv-gravite-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-gravite-cisis" +* outcome 0..1 CodeableConcept "Évolution de l'effet indésirable" + * ^binding.description = "Évolution de l'effet indésirable provenant du jdv-evolution-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-evolution-cisis" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAlert.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAlert.fsh new file mode 100644 index 0000000..2c6bf6b --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAlert.fsh @@ -0,0 +1,15 @@ +Logical: FRLMAlert +Id: fr-lm-alert +Parent: FRLMEntry +Title: "Logical model - FR LM Alert" +Description: """Points de vigilances""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de l'alerte" +* code 0..1 CodeableConcept "Code de l'alerte" +* description 0..1 string "Description narrative de l'alerte" +* priority 0..1 CodeableConcept "Priorite" + * ^binding.description = "(preferred): hl7:Flag-priority-code" +* period 0..1 Period "Période de validité de l'alerte. Durée entre l'activation et la désactivation de l'alerte. Si l'alerte est active, la fin de cette période ne doit pas être spécifiée." +* sourceReference 0..* Reference "Référence de la source de l'alerte" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAllergyIntolerance.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAllergyIntolerance.fsh new file mode 100644 index 0000000..5d529a5 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAllergyIntolerance.fsh @@ -0,0 +1,45 @@ +Logical: FRLMAllergyIntolerance +Id: fr-lm-allergy-intolerance +Parent: FRLMEntry +Title: "Logical model - FR LM Allergy Intolerance" +Description: """Allergie ou Hypersensibilité""" +Characteristics: #can-be-target + +* type 1..1 CodeableConcept "Allergie / hypersensibilité non allergique / intolérance / idiosyncrasie" + * ^binding.description = " jdv-type-event-indesirable-previsible-cisis (1.2.250.1.213.1.1.5.842)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-type-evenement-indesirable-previsible-cisis" +* category 1..1 CodeableConcept "food | medication | environment | biologic" + * ^binding.description = " jdv-hl7-allergy-intolerance-category-cisis (2.16.840.1.113883.4.642.3.133)" + * ^binding.valueSet = "" +* agentOrAllergen 1..1 CodeableConcept "Agent responsable +- Médicaments : CIP ou UCD +- Substances : SMS +- Aliments : CIM-11 Chapitre X Extensions – Allergènes ou substances non médicinales +- Agents environnementaux ou physiques : idem CIM-11 Chapitre X Extensions +- Allergènes pouvant induire une contre-indication vaccinale : jdv-allergie-vaccin-cisis" +* header.status + * ^short = "Statut clinique de l'allergie" + * ^binding.description = "jdv-hl7-allergyintolerance-clinical-cisis (2.16.840.1.113883.4.642.3.1372)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-allergyintolerance-clinical-cisis" +* note 0..1 string "commentaire" +* criticality 0..1 CodeableConcept "Criticité" + * ^binding.description = "jdv-hl7-allergy-intolerance-criticality-cisis (2.16.840.1.113883.4.642.3.129" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-allergy-intolerance-criticality-cisis" +* certainty 0..1 CodeableConcept "Certitude" + * ^binding.description = "jdv-hl7-condition-ver-status-cisis (2.16.840.1.113883.4.642.3.166)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-condition-ver-status-cisis" +* period 1..1 period "Période" + * onsetDate 0..1 dateTime "Date de début" + * endDate 0..1 dateTime "Date de fin" +* reaction 0..* Base "Réaction observée" + * agentOrAllergen 0..1 CodeableConcept "Agent responsable : - Substances : SMS" + * ^binding.description = "SMS" + * manifestation 1..1 CodeableConcept "Manifestation +CIM-11 / Chapitre 04 Maladies du système immunitaire / Bloc Affections allergiques ou d'hypersen-sibilité" + * ^binding.description = "CIM-11" + * severity 0..1 CodeableConcept "Sévérité de la manifestion" + * ^binding.description = "SNOMED_CT (preferred)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-severite-observation-cisis" + * period 1..1 period "Période" + * onsetDate 0..1 dateTime "Date de début" + * endDate 0..1 dateTime "Date de fin" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAttachment.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAttachment.fsh new file mode 100644 index 0000000..0d22c9c --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMAttachment.fsh @@ -0,0 +1,17 @@ +Logical: FRLMAttachment +Id: fr-lm-attachment +Parent: FRLMEntry +Title: "Logical model - FR LM Attachment" +Description: """Document attaché""" +Characteristics: #can-be-target + +* contentType 0..1 CodeableConcept "Type MIME de la piece jointe, avec encodage de caracteres, etc." + * ^binding.description = "(preferred): BCP-13" +* language 0..1 CodeableConcept "Langue du contenu" + * ^binding.description = "(preferred): BCP 47" +* data 0..1 base64Binary "Contenu encode en base64" +* url 0..1 uri "URL de la ressource" +/*le type integer64 n’existe pas il existe en R5 +* size 0..1 integer64 "Taille de la piece jointe avant encodage en base64"*/ +* size 0..1 unsignedInt "Taille de la piece jointe avant encodage en base64" +* title 0..1 string "Titre de la piece jointe" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBatterieExamensBiologieMedicale.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBatterieExamensBiologieMedicale.fsh new file mode 100644 index 0000000..0de01b6 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBatterieExamensBiologieMedicale.fsh @@ -0,0 +1,15 @@ +// En attente de validation par APE concernant la création d’un modèle logique unique ObservationLab, ainsi que le choix du parent : FRLMEntry ou un FRLMObservationLab commun. +Logical: FRLMBatterieExamensBiologieMedicale +Id: fr-lm-batterie-examens-biologie-medicale +Parent: FRLMEntry +Title: "Modèle logique métier - FR LM Batterie d'examens de biologie médicale" +Description: """Entrée Batterie d'examens de biologie médicale""" +Characteristics: #can-be-target + +* codeBatterieExamen 0..1 CodeableConcept "Code de la batterie d'examen" +//* choice[x] 0..1 FRLMSujetNonHumain or FRLMPatientSujetNonHumain "Sujet non humain ou Patient avec sujet non humain" +* laboratoireExecutant 0..* FRLMLaboratoireExecutant "Laboratoire sous-traitant. Apparaît à ce niveau si et et seulement si ce résultat a été produit par un laboratoire exécutant distinct du laboratoire exécutant déclaré aux niveaux supérieurs." +* prelevement 0..* FRLMSpecimen "Prélèvement" +* resultatElementCliniquePertinent 0..* FRLMResultatExamensBiologieElementCliniquePertinent "Résultat d'examen de biologie / élément clinique pertinent" +* imageIllustrative 0..* FRLMObservationMedia "Image illustrative" +* commentaire 0..* string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBodyStructure.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBodyStructure.fsh new file mode 100644 index 0000000..12bcc50 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMBodyStructure.fsh @@ -0,0 +1,14 @@ +Logical: FRLMBodyStructure +Id: fr-lm-body-structure +Title: "Logical model - FR LM Body Structure" +Description: """Localisation anatomique""" +Characteristics: #can-be-target + +* morphology 0..1 CodeableConcept "Type de structure représentée par la localisation anatomique. Peut décrire une morphologie normale ou anormale." +* location 0..1 CodeableConcept "Site anatomique" + * ^binding.description = "SNOMED CT" + * ^binding.strength = #preferred +* locationQualifier 0..* CodeableConcept "Précision topographique (par exemple : supérieur, inférieur, distal, proximal)." + * ^binding.description = "jdv-modificateur-topographique-cisis" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-modificateur-topographique-cisis" +* description 0..1 string "Description textuelle de la localisation anatomique" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCarePlan.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCarePlan.fsh new file mode 100644 index 0000000..5b39790 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCarePlan.fsh @@ -0,0 +1,12 @@ +Logical: FRLMCarePlan +Id: fr-lm-care-plan +Parent: FRLMEntry +Title: "Logical model - FR LM Care Plan" +Description: """Plan de soins""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut du plan de soin (projet, actif, suspendu, annulé, terminé, erreur, inconnu)" +* addresses 0..* FRLMCondition "Problèmes de santé traités par ce plan" +* goal 0..* CodeableConcept "Résultat souhaité du plan" +* activity 0..* Reference "Action incluse dans ce plan de soins" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCondition.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCondition.fsh new file mode 100644 index 0000000..cc29a00 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMCondition.fsh @@ -0,0 +1,34 @@ +Logical: FRLMCondition +Id: fr-lm-condition +Parent: FRLMEntry +Title: "Logical model - FR LM Condition" +Description: """Problème""" +Characteristics: #can-be-target + +* type 1..1 CodeableConcept "Type d'observation" + * ^binding.description = "Valeur issue du jdv-code-probleme-cisis (1.2.250.1.213.1.1.5.172)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-code-probleme-cisis" +* problem 1..1 CodeableConcept "Problème observé : + - CIM-10 (2.16.840.1.113883.6.3) ; + - CISP-2 (2.16.840.1.113883.6.139) ; + - CISP-3 / DRC (1.2.250.1.213.2.9) ; + - OrphaCodes (1.2.250.1.213.2.49)" +* period 1..1 period "Période" + * onsetDate 0..1 dateTime "Date de début" + * endDate 0..1 dateTime "Date de fin" +* severity 0..1 CodeableConcept "Sévérité de la manifestion" + * ^binding.description = "(preferred): SNOMED_CT => Valeur issue du jdv-severite-observation-cisis (1.2.250.1.213.1.1.5.675)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-severite-observation-cisis" +* header.status + * ^short = "Statut du problème" + * ^binding.description = "Valeur issue du jdv-hl7-condition-clinical-cisis (2.16.840.1.113883.4.642.3.164)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-condition-clinical-cisis" +* clinicalStatus 0..1 CodeableConcept "Statut clinique du patient" +* bodySite 0..* FRLMBodyStructure "Localisation anatomique" +* stage 0..* CodeableConcept "Stade/Grade. codeSystem spécifique au contexte. +Binding Description: (preferred): e.g. TNM, ICD-O-3, Bi-Rads, Li-Rads, …" +* diagnosisAssertionStatus 0..1 CodeableConcept "Certitude" + * ^binding.description = "Valeur issue du jdv-hl7-condition-ver-status-cisis (2.16.840.1.113883.4.642.3.166)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-condition-ver-status-cisis" +* reference 1..* uri "Cet élément contient l’URL du document" +* note 0..1 string "commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDICOMMedicationAdministration.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDICOMMedicationAdministration.fsh new file mode 100644 index 0000000..2a4c4ef --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDICOMMedicationAdministration.fsh @@ -0,0 +1,20 @@ +Logical: FRLMDICOMMedicationAdministration +Id: fr-lm-dicom-medication-administration +Parent: FRLMEntry +Title: "Logical model - FR LM DICOM Medication Administration" +Description: """Administration de produit de santé dans le contexte de l'imagerie médicale""" +Characteristics: #can-be-target + +* voieAdministration 0..1 CodeableConcept "Voie d'administration" + * ^binding.description = "EDQM (0.4.0.127.0.16.1.1.2.1)" +* dose 0..1 Quantity "Dose à administrer" +* rythme 0..1 Range "Rythme d'administration" +* medicament 1..1 Base "Médicament" + * produit 1..1 Base "Produit de santé" + * codeProduit 0..1 CodeableConcept "Code du produit" + * ^binding.description = "CIP (1.2.250.1.213.2.3.2)" + * ^binding.description = "UCD (1.2.250.1.213.2.61) + code ATC" + * autreCodification 0..1 CodeableConcept "Autre(s) codification(s)" + * ^binding.description = "ATC (2.16.840.1.113883.6.73) or CIS (1.2.250.1.213.2.3.1) or MV (1.2.250.1.213.2.59)" + * nomMarque 0..1 string "Nom de marque du produit" + * numeroLot 0..1 string "Numéro de lot" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDevice.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDevice.fsh new file mode 100644 index 0000000..0fb8d41 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDevice.fsh @@ -0,0 +1,20 @@ +Logical: FRLMDevice +Id: fr-lm-device +Title: "Logical model - Device" +Description: """Dispositif médical""" +Characteristics: #can-be-target + +* identifier 0..* Identifier "Identifiant du DM" +* udi 0..1 Identifier "Identifiant unique du DM (UDI)" +* manufacturer 0..1 string "Nom du fabricant du DM. Si le code du fabricant est inclus dans l'identifiant, le nom du fabricant doit correspondre à ce code." +* manufactureDate 0..1 dateTime "Date d'heure de production du DM" +* expiryDate 0..1 dateTime "Date d'expiration du DM" +* lotNumber 0..1 string "Numéro de lot du DM. Optionnel si le numéro de lot est inclus dans l'identifiant." +* serialNumber 0..1 string "Numéro de série attribué par le fabricant. Optionnel si le numéro de série est inclus dans l'identifiant." +* name 0..* Base "Nom du DM" + * value 1..1 string "Nom du DM (ex Nom du DM associé à l'UDI, Nom commercial du DM attribué par le fabricant)" + * type 1..1 CodeableConcept "Type de nom du DM (ex Nom du DM associé à l'UDI, nom commercial du DM attribué par le fabricant)" +* modelNumber 0..1 string "Numéro de modèle attribué par le fabricant." +* version 0..* string "Version du DM" +* type 1..1 CodeableConcept "Type de DM - EMDN (1.2.250.1.213.2.68)" +* note 0..1 string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDeviceUse.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDeviceUse.fsh new file mode 100644 index 0000000..7fb7f57 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDeviceUse.fsh @@ -0,0 +1,24 @@ +Logical: FRLMDeviceUse +Id: fr-lm-device-use +Parent: FRLMEntry +Title: "Logical model - FR LM Device use" +Description: """Dispositif médical usage""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Status de l'utilisation du DM (ex active, completed, etc)." + * ^binding.description = "Valeur issue du http://hl7.org/fhir/ValueSet/device-statement-status" + * ^binding.valueSet = "https://hl7.org/fhir/R4/valueset-device-statement-status.html" +* periodOfUse 1..1 period "Période d'utilisation ou de présence chez le patient" + * onsetDate 0..1 dateTime "Date de début" + * endDate 0..1 dateTime "Date de fin" + * duration 0..1 dateTime "Durée d'utilisation" +* device 1..1 FRLMDevice "Dispositif médical" +* bodySite 0..1 FRLMBodyStructure "localisation anatomique" + * ^binding.description = "SNOMED CT (2.16.840.1.113883.6.96)" +* reason[x] 0..* CodeableConcept or FRLMCondition or FRLMObservation or FRLMProcedure "Motif de l'utilisation du dispositif médical. + - motif codé (spécifique à un contexte) + - motif : un problème + - motif : une observation + - motif : un acte" +* note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDosageInstructions.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDosageInstructions.fsh new file mode 100644 index 0000000..b3de380 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDosageInstructions.fsh @@ -0,0 +1,45 @@ +Logical: FRLMDosageInstructions +Id: fr-lm-dosageInstructions +Title: "Logical model- FR LM Dosage Instructions" +Description: """Posologie""" +Characteristics: #can-be-target + +* renderedDosageInstruction 0..1 string "Posologie sous forme textuelle" +* dosageDetails 0..* Base "Posologie Structurée" + * sequence 0..1 decimal "Numéro de séquence permettant d'indiquer l'ordre des posologies dans le cas où il y a plusieurs posologies. La séquence s+1 commence à la fin de la séquence s. En cas de séquences ayant le même numéro, celles-ci se déroulent simultanément." + * note 0..1 string "Instructions au patient" + * doseAndRate 0..* Base "Quantité de médicament administrée par prise" + * dose[x] 0..1 Quantity or Range "La quantité de médicament administrée par prise +Exemple - 20mg: {'value':20,'unit':'mg','system':'http://unitsofmeasure.org','code':'mg'} +Exemple - 1 à 3 comprimés: {'low':{'value':1,'unit':'Comprimé','system':'http://standardterms.edqm.eu','code':'15054000'},'high':{'value':3,'unit':'Comprimé','system':'http://standardterms.edqm.eu','code':'15054000'}}" + * rate[x] 0..1 Quantity or Ratio or Range "Rythme d'administration +Période temporelle pendant laquelle une dose définie est administrée, pour les perfusions par exemple. +Exemple - 400µg pendant une minute (perfusion): {'numerator':{'value':400,'unit':'µg','system':'http://unitsofmeasure.org','code':'µg'},'denominator':{'value':1,'unit':'min','system':'http://unitsofmeasure.org','code':'min'}}" + * dateOfAdministration 0..* dateTime "Date précise du moment de prise" + //Précondition + * conditionOfAdministration 0..* CodeableConcept "Code ou texte de la condition sous laquelle le traitement doit être pris (ex : en cas de douleurs)." + * date[x] 0..1 Period or Quantity or Range "Période (date de début et de fin), durée ou intervalle de durée de la séquence de traitement (un parmi les trois) +Exemple - La période représente une date de début et de fin (ex : du 1/10/2025 au 10/10/2025), la durée représente une quantité (ex : 5 jours), l'intervalle représente une quantité minimale et une quantité maximale (ex : de 5 à 10 jours)): {}" + * duration 0..1 Base "Durée ou rythme d'administration - indique le temps d'administration des prises de la séquence (exemple d'utilisation : perfusion ou patch) +Exemple - Administration pendant 10 minutes: {}" + * durationValue 0..1 decimal "Durée de l'administration" + * durationUnit 0..1 code "Unité de la durée d'administration" + * durationMax 0..1 decimal "Durée maximale de l'administration" + * frequency 0..1 Base "Fréquence de prise" + * numberOfTimes 0..1 decimal "Nombre de prise de la quantité 'quantitePrescrite' par période (ex : *une fois* dans une fois tous les trois jours)" + * period 0..1 Quantity "Durée sur laquelle la fréquence s'applique (ex : *tous les trois jours* une fois tous les trois jours)" + * dayOfWeek 0..* code "Jour de la semaine de la prise" + * timeOfDay 0..1 time "Heure de la prise" + * additionalInstructions 0..1 string "Instruction additionnelle" + * eventTime 0..* Base "Définition du moment de prise au cours de la journée (ex : 30 minutes avant le repas)" + * eventTimeCode 0..1 CodeableConcept "Code ou texte du moment de prise" + * offset 0..1 unsignedInt "Temps en minute avant/après l'élément déclenchant" + * eventEndSequence 0..1 CodeableConcept "Evenement de fin de la séquence" + * bodySite 0..* CodeableConcept "région anatomique d'administration" + * routeOfAdministration 0..1 CodeableConcept "Voie d'administration" + * maxDosePerPeriod 0..* Base "Dose maximale pour un temps donné (exemple : prise maximale pour 24h)." + * quantity 0..1 SimpleQuantity "Dose maximale à administrer pour l'unité de temps donnée" + * duration 0..1 Quantity "Durée pour laquelle il y a une dose maximale administrable +Exemple - Par jour, par semaine, par mois, ...: {}" + * maxDosePerAdministration 0..1 Quantity "Dose maximale pour une administration" + * maxLifetimeDose 0..1 Quantity "Dose maximale sur une vie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDoseNumber.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDoseNumber.fsh new file mode 100644 index 0000000..0f16ddc --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMDoseNumber.fsh @@ -0,0 +1,14 @@ +Logical: FRLMDoseNumber +Id: fr-lm-dose-number +Title: "Logical model - FR LM Dose Number" +Description: """Rang de la vaccination""" +Characteristics: #can-be-target + +* identifier 0..* Identifier "Identifiant de la dose de vaccin" +* status 1..1 code "Statut de la dose de vaccin" +* date 0..1 dateTime "Date de la dose de vaccin" +* priority 0..1 CodeableConcept "Priorité" +* renewal 0..1 Range "Nombre de renouvellements possibles" +* language 0..1 code "Language" +* doseNumber 1..1 integer "Rang de la vaccination" + diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEncounter.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEncounter.fsh new file mode 100644 index 0000000..162a68f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEncounter.fsh @@ -0,0 +1,33 @@ +Logical: FRLMEncounter +Id: fr-lm-encounter +Parent : FRLMEntry +Title: "Logical model - FR LM Encounter" +Description: """Rencontre""" +Characteristics: #can-be-target + +* header.author[x] + * ^short = "Responsable de la rencontre" +* header.participant[x] 0..0 +* participant 0..* FRLMParticipant "Personne impliquée dans la rencontre" +* period 1..1 Period "Date de début et de fin de la rencontre." +* priority 0..1 CodeableConcept "Priorité de la rencontre (ex : urgence, etc.)." +* type 1..1 CodeableConcept "Type de la rencontre (hospitalisation, soins à domicile, etc.)." +* serviceProvider 0..1 FRLMOrganisation "Organisation (établissement) responsable de cette rencontre" +* referringProfessional 0..1 FRLMHealthProfessional "Professionnel de santé référent" +* basedOn[x] 0..* FRLMCarePlan or FRLMServiceRequest "Référence à la demande ayant initié cette rencontre" +* reason[x] 0..* CodeableConcept or FRLMCondition or FRLMProcedure or FRLMObservation or string "Motif(s) de l'admission, ex : problème, procédure ou constatation." +* admission 0..1 Base "Détails de l'admission" + * admitter 0..1 FRLMHealthProfessional "Professionnel de santé ayant admis le patient" + * admitSource 0..1 CodeableConcept "Modalité d'entrée d'un patient en ES (urgence, programmée, etc...)." + * ^binding.description = "jdv-modalite-entree : Modalité d'entrée en établissement de santé" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-modalite-entree-cisis" +* dischargeDiagnosis[x] 0..* CodeableConcept or FRLMCondition "Les diagnostics au moment de la sortie." +* dischargeDestination 0..1 Base "modalité de sortie du patient d'un ES (retour à domicile, EHPAD, HAD, etc...)" + * type 0..1 CodeableConcept "Type de sortie" + * ^binding.description = "JDV_ModaliteSortie_CISIS (1.2.250.1.213.1.1.5.74) ou autre JDV spécifique à un volet" + * location[x] 0..1 FRLMOrganisation or FRLMLocation "Le lieu ou l'organisation" +* serviceLocation 0..* Base "Liste des lieux où le patient était présent pendant cette rencontre." + * period 0..1 Period "Période pendant laquelle le patient était présent au lieu" + * organisationPart[x] 1..1 FRLMOrganisation or FRLMLocation "Organisation ou partie d'une organisation (ex : département) où le patient était présent pendant la rencontre." +* subEncounter 0..* FRLMEncounter "référence aux rencontres considérées comme faisant partie de cette rencontre." +* note 0..1 string "Notes" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEndpoint.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEndpoint.fsh new file mode 100644 index 0000000..85fdc56 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEndpoint.fsh @@ -0,0 +1,10 @@ +Logical: FRLMEndpoint +Id: fr-lm-endpoint +Parent: FRLMEntry +Title: "Logical model - FR LM Endpoint" +Description: """Référence Wado d'un objet DICOM (SOP Instance)""" +Characteristics: #can-be-target + +* connectionType 1..1 CodeableConcept "IHE Invoke Image Display" +* payloadType 1..1 CodeableConcept "Type de media" +* address 1..1 uri "WADO reference" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEntry.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEntry.fsh new file mode 100644 index 0000000..3664030 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMEntry.fsh @@ -0,0 +1,24 @@ +Logical: FRLMEntry +Id: fr-lm-entry +Title: "Logical model - FR LM Entry" +Description: "Modèle logique représentant l'entrée" + +* header 1..1 Base "Métadonnées de base" + * subject 1..1 FRLMPatient "Patient / Usager" + * identifier 0..* Identifier "Identifiant de l’entrée" + * author[x] 0..* Base "author[x] peut correspondre soit à un professionnel, soit à une organisation, soit à un système." + * authorProfessional 0..* FRLMHealthProfessional "L'auteur est un professionnel de santé" + * authorOrganisation 0..* FRLMOrganisation "L'auteur est une organisation" + * authorDevice 0..* FRLMDevice "L'auteur est un système" + * performer[x] 0..* FRLMHealthProfessional or FRLMOrganisation "Exécutant (performer)" + * participant[x] 0..* Base "Participant" + * participantProfessional 0..* FRLMHealthProfessional "Le participant est un professionnel de santé" + * participantOrganisation 0..* FRLMOrganisation "Le participant est une organisation" + * participantDevice 0..* FRLMDevice "Le participant est un système" + * informant 0..* FRLMInformant "Informateur" + * date 0..1 dateTime "Date/Heure de création par l'auteur" + * status 0..1 CodeableConcept "Statut" + * source 0..1 CodeableConcept "Source" + * language 0..1 CodeableConcept "'fr-FR' pour français métropolitain (la casse des caractères doit être respectée) +La partie en minuscules indique le code de la langue utilisée (ISO-639-1) +La partie en majuscules indique le code pays (ISO-3166)" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMFamilyMemberHistory.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMFamilyMemberHistory.fsh new file mode 100644 index 0000000..e605d46 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMFamilyMemberHistory.fsh @@ -0,0 +1,20 @@ +Logical: FRLMFamilyMemberHistory +Id: fr-lm-family-member-history +Parent: FRLMEntry +Title: "Logical model - FR LM Family Member History" +Description: "Antécédent familial" +Characteristics: #can-be-target + +* header.status 1..1 + * ^binding.description = "Statut de l'entrée provenant du jdv FHIR https://hl7.org/fhir/R4/valueset-history-status" + * ^binding.valueSet = "https://hl7.org/fhir/R4/valueset-history-status.html" +* relatedPerson 1..1 FRLMRelatedPerson "Membre de la famille" +* condition 0..* BackboneElement "Problème du membre de la famille" + * code 1..1 CodeableConcept "Problème du membre de la famille" + * outcome 0..1 CodeableConcept "mort(e) | incapacité ; sévère | etc." + * ^binding.description = "Statut provenant du jdv-health-status-code-cisis (1.2.250.1.213.1.1.4.2.283.1)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-health-status-code-cisis" + * contributedToDeath 0..1 boolean "problème cause du décès (O/N)" + * onset[x] 0..1 dateTime or Period "Date du problème" + * bodySite 0..1 FRLMBodyStructure "Site de l'observation" +* note 0..1 string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImagingStudy.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImagingStudy.fsh new file mode 100644 index 0000000..4c9cf6a --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImagingStudy.fsh @@ -0,0 +1,21 @@ +Logical: FRLMImagingStudy +Id: fr-lm-imaging-study +Parent: FRLMEntry +Title: "Logical model - FR LM Imaging Study" +Description: """DICOM Examen Imagerie""" +Characteristics: #can-be-target + +* header.identifier 1..* + * ^short = "UUID instance examen" +* modality 1..* CodeableConcept "Modalités d'imagerie utilisées lors de l'examen (DICOM CID029)" + * ^binding.description = "jdv-modalite-acquisition-cisis : Modalité d'imagerie" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-modalite-acquisition-cisis" +* bodySite 0..* FRLMBodyStructure "Localisations anatomiques" +* encounter 0..1 FRLMEncounter "Rencontre associée à l'examen" +* started 0..1 dateTime "Date de l'examen" +* basedOn 0..* FRLMServiceRequest "Demande d'examen" +* numberOfSeries 0..1 integer "Nombre de séries d'actes d'imagerie composant l'examen" +* numberOfInstances 0..1 integer "Nombre d'instances d'imagerie composant l'examen" +* studyCustodian 0..1 FRLMOrganisation "Organisation responsable de l'examen" +* studyEndpoint 0..* FRLMEndpoint "Endpoint de l'examen d'imagerie" +* series 1..1 FRLMSeries "Séries d'actes d'imagerie composant l'examen" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImmunisation.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImmunisation.fsh new file mode 100644 index 0000000..707bfe5 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMImmunisation.fsh @@ -0,0 +1,22 @@ +Logical: FRLMImmunisation +Id: fr-lm-immunisation +Parent: FRLMEntry +Title: "Logical model - FR LM Immunisation" +Description: """Vaccination""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de la vaccination (réalisé, non fait, ...)." +* periodOfImmunisation 1..1 period "Période de vaccination - Si vaccin effectuée => que la dateDebutVaccination est renseignée - Si vaccin à effectuer => dateDebutVaccination et dateFinVaccination peuvent être renseignée (période souhaitée pour la vaccination)" + * startDate 0..1 dateTime "Date de début" + * endDate 0..1 dateTime "Date de fin" +* diseaseOrAgentTargeted 0..* CodeableConcept "Maladie ou agent contre lequel la vaccination offre une protection. Binding Description: (preferred): ICD-10" +* administeredProduct 1..1 FRLMMedication "Vaccin" +* route 0..1 CodeableConcept "Voie d'administration" +* site 0..* CodeableConcept "Région anatomique d'administration" +* doseQuantity 0..1 Quantity "Dose administrée" +* doseNumber 0..1 FRLMDoseNumber "Rang de la vaccination" +* note 0..1 string "Commentaire" +* prescription 0..1 FRLMPrescriptionEntree "Référence de la prescription" +* reaction 0..* FRLMCondition "Réaction observée suite au vaccin" +* reasonCode 0..* CodeableConcept "Raison de la vaccination (voyage, professionnel, etc.)" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMIsolatMicrobiologique.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMIsolatMicrobiologique.fsh new file mode 100644 index 0000000..82229ee --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMIsolatMicrobiologique.fsh @@ -0,0 +1,22 @@ +// En attente de validation par APE concernant la création d’un modèle logique unique ObservationLab, ainsi que le choix du parent : FRLMEntry ou un FRLMObservationLab commun. +Logical: FRLMIsolatMicrobiologique +Id: fr-lm-isolat-microbiologique +Parent: FRLMEntry +Title: "Modèle logique métier - FR LM Isolat microbiologique" +Description: """Isolat microbiologique""" +Characteristics: #can-be-target + +* codeIsolat 0..1 CodeableConcept "Code isolat" +* header + * date ^short = "Date et heure des résultats" +//* choice[x] 0..1 FRLMSujetNonHumain or FRLMPatientSujetNonHumain "Sujet non humain ou Patient avec sujet non humain" +* isolatMicrobiologique 1..1 Base "Isolat microbiologique" + * isolat 1..1 Base "Isolat microbiologique" + * identifiant 1..1 Identifier "Identifiant de l'isolat" + * agent 1..1 Base "L'agent infectieux cultivé (bactérie, levure, virus, parasite)" + * code 1..1 CodeableConcept "Code isolat" +* laboratoireExecutant 0..* FRLMLaboratoireExecutant "Laboratoire sous-traitant. Apparaît à ce niveau si et et seulement si ce résultat a été produit par un laboratoire exécutant distinct du laboratoire exécutant déclaré aux niveaux supérieurs." +* batterieExamensDeBiologieMedicale 0..* FRLMBatterieExamensBiologieMedicale "Batterie d'examens de biologie médicale" +* resultatElementCliniquePertinent 0..* FRLMResultatExamensBiologieElementCliniquePertinent "Résultat d'examen de biologie / élément clinique pertinent" +* imageIllustrative 0..* FRLMObservationMedia "Image ou graphe" +* commentaire 0..* string "Commentaire de section interprétant l'ensemble des résultats" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoireExecutant.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoireExecutant.fsh new file mode 100644 index 0000000..61c7bda --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoireExecutant.fsh @@ -0,0 +1,8 @@ +// En attente de validation par APE concernant la création d’un modèle logique unique ObservationLab, ainsi que le choix du parent : FRLMEntry ou un FRLMObservationLab commun. +Logical: FRLMLaboratoireExecutant +Id: fr-lm-laboratoire-executant +Title: "Modèle logique métier - FR LM Laboratoire exécutant" +Description: "Laboratoire exécutant" + +* dateExecution 1..1 dateTime "Date de l’exécution" +* executant[x] 1..1 FRLMHealthProfessional or FRLMOrganisation "Directeur du laboratoire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoryObservation.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoryObservation.fsh new file mode 100644 index 0000000..0205715 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMLaboratoryObservation.fsh @@ -0,0 +1,14 @@ +Logical: FRLMLaboratoryObservation +Id: fr-lm-laboratory-observation +Parent: FRLMObservation +Title: "Logical model - Laboratory Observation" +Description: """Résultats d'examen de biologie médicale""" +Characteristics: #can-be-target + +* result ^short = "Résultats d'examen" +* triggeredBy[x] 0..* FRLMLaboratoryObservation or FRLMObservation "Référence à l'observation ayant déclenché la réalisation de cette observation." +* testKit 0..1 FRLMDevice "Test Kit utilisé pour la réalisation de l'observation." +* calibrator 0..1 Identifier "Identifiant du calibrateur utilisé pour la réalisation de l'observation." +* accreditationStatus 0..1 boolean "Statut d'accréditation du laboratoire pour l'observation." +* previousResults 0..* FRLMLaboratoryObservation "Résultats précédents de la même observation" +* pointOfCareTest 0..1 boolean "Indique si l'observation est un test de point de soins ou non." \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedication.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedication.fsh new file mode 100644 index 0000000..2ba62d2 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedication.fsh @@ -0,0 +1,40 @@ +Logical: FRLMMedication +Id: fr-lm-medication +Title: "Logical model - FR LM Medication" +Description: """Produit de santé""" +Characteristics: #can-be-target + +* identifyingCode[x] 0..* CodeableConcept "Code du produit de santé. Non présent pour les préparations magistrales." + * identifyingCodeCodeableConcept 0..1 CodeableConcept "Codes du médicament dans une termino spécifique" + * identifyingCodeIdentifier 0..* Identifier "identifiant du medication" +* classification 0..* CodeableConcept "Classification ATC" +* productName 0..1 string "Nom du produit (contenant aussi le dosage et la forme galénique). Si le médicament est codé, le nom du produit peut ne pas être renseigné." +* marketingAuthorisationHolder 0..1 Base "Titulaire de l'autorisation de mise sur le marché du médicament. + Cette information est utile pour identifier précisément le produit. Si le produit ne dispose pas d'une autorisation de mise sur le marché, les informations fournies par le fabricant peuvent être utilisées." + * organisationName 0..1 string "Nom de l'organisme détenant l'autorisation de commercialisation/fabrication." + * organisationIdentifier 0..* Identifier "Identifiant de l'organisation et/ou de son emplacement physique." +* item 0..* Base "Dans le cas de conditionnements combinés, chaque ingrédient dispose de sa propre forme galénique, ses propres ingrédients et leurs dosages respectifs." + * doseForm 0..1 CodeableConcept "Forme galénique du produit de santé. EDQM Standard Terms (0.4.0.127.0.16.1.1.2.1) / classe PDF (forme galénique)." + * ^binding.description = "EDQM Standard Terms" + * ingredient 1..* Base "Ingrédient" + * isActive 0..1 boolean "Indique si l'ingrédient est considéré comme un ingrédient actif. Les excipients ne sont généralement pas nécessaires et, par défaut, seuls les ingrédients actifs sont attendus." + * substance 1..1 CodeableConcept "Substance. Code SMS (2.16.840.1.113883.3.6905.2) de la substance active de l’European Medicines Agency (EMA)" + * ^binding.description = "SMS (2.16.840.1.113883.3.6905.2)" + * strengthInfo 0..1 Base "Concentration de l'ingrédient par unité" + * strength 1..1 Ratio "numérateur/dénominateur. Ex 100 mg/1 ml ou 500 mg / comprimé." + // à vérifier avec Yann + * basisOfStrengthSubstance 0..1 CodeableConcept "Substance concernée. code SMS (2.16.840.1.113883.3.6905.2) de la substance active de l’European Medicines Agency (EMA)" + * unitOfPresentation 0..1 CodeableConcept "Unité de présentation du produit de santé (comprimé, ampoule, tube). En général, le plus petit objet dénombrable du package. +EDQM Standard Terms (0.4.0.127.0.16.1.1.2.1) / classe UOP (Unit of Presentation)." + * containedQuantity 0..1 Ratio "Quantité de produit par unité (ex : 3 ml / 1 flacon)" + * amount 0..1 Quantity "Nombre d'unités dans un package (ex : 5 ampoules)" + * packageType 0..1 CodeableConcept "Conditionnement primaire (ampoule, plaquette,…) EDQM Standard Terms (0.4.0.127.0.16.1.1.2.1) / classe CON (Récipient)." +* device 0..* Base "Dispositif d'administration inclus dans le produit. Les dispositifs qui ne sont pas contenus dans le conditionnement du médicament ne sont pas pris en compte." + * deviceQuantity 1..1 Quantity "Nombre de dispositifs." + * device[x] 1..1 CodeableConcept or FRLMDevice "Code du dispositif" +* characteristic 0..* Base "Caractéristiques supplémentaires du produit (par ex. sans sucre, bouchon facile à ouvrir, dosage gradué). Il est prévu que les implémenteurs définissent un ensemble de valeurs (ValueSet) adapté à leurs cas d’usage." + * type 1..1 CodeableConcept "Type de caractéristique" + * value[x] 0..1 boolean or CodeableConcept or string or Quantity or dateTime or integer or decimal or Ratio "Valeur de la caractéristique" +* batch 0..1 Base "Informations relatives au lot d’un médicament. Elles sont généralement enregistrées lors de la dispensation ou de l’administration et sont rarement connues ou pertinentes dans le cadre d’une ordonnance ou d’une demande." + * lotNumber 0..1 string "Numéro de lot" + * expirationDate 0..1 dateTime "Date d'expiration du produit" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationAdministration.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationAdministration.fsh new file mode 100644 index 0000000..3f6f087 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationAdministration.fsh @@ -0,0 +1,13 @@ +Logical: FRLMMedicationAdministration +Id: fr-lm-medication-administration +Parent: FRLMEntry +Title: "Logical model- FR LM Medication Administration " +Description: """Traitement""" +Characteristics: #can-be-target + +* medication 1..1 FRLMMedication "Médicament" +* occurrence[x] 1..1 dateTime or Period "date/ durée du traitement" +* reason[x] 0..* CodeableConcept or FRLMCondition or FRLMObservation "Motif du traitement" +* dosage 0..1 FRLMDosageInstructions "Posologie" +* note 0..1 string "Note" + diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationDispense.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationDispense.fsh new file mode 100644 index 0000000..df0987c --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMedicationDispense.fsh @@ -0,0 +1,22 @@ +Logical: FRLMMedicationDispense +Id: fr-lm-medication-dispense +Parent: FRLMEntry +Title: "Logical model - FR LM Medication Dispense" +Description: """Traitement dispense""" +Characteristics: #can-be-target + +* header.author[x] 1..* + * ^short = "Auteur de la Auteur de la dispensation" +* header.status 1..1 + * ^short = "Statut de la ligne de prescription" + * ^binding.description = "Valeur issue du JDV_CompletudeDispensation_CISIS (1.2.250.1.213.1.1.5.765)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-completude-dispensation-cisis" +* receiver[x] 0..1 FRLMPatient or FRLMHealthProfessional or FRLMRelatedPerson "Identification de la personne ayant reçu le médicament délivré, notamment lorsqu'il ne s'agit pas du patient. Si non présent, le patient est considéré comme le destinataire." +* relatedRequest 0..* identifier "Référence de la prescription" +* medicament 1..1 FRLMMedication "Médicament délivré" +* dispensedQuantity 1..1 Quantity "Quantite de produit. +Nombre d'emballages distribués si leur format est connu, ou nombre d'articles/unités plus petits, selon le médicament distribué. Une unité est attendue." +* timeOfDispensation 0..1 dateTime "Date et heure de dispense du médicament. Si non présent, la date de dispensation est celle du header." +* substitutionOccurred 1..1 boolean "Autorisation de substitution" +* dosageInstructions 0..1 FRLMDosageInstructions "Posologie" +* note 0..1 string "Notes du dispensateur" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMicroOrganismSearch.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMicroOrganismSearch.fsh new file mode 100644 index 0000000..f040f3a --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMicroOrganismSearch.fsh @@ -0,0 +1,9 @@ +Logical: FRLMMicroOrganismSearch +Id: fr-lm-micro-organism-search +Parent: FRLMEntry +Title: "Logical model - FR LM Micro Organism Search" +Description: """Recherche de micro organismes""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code de l’observation" +* value 1..1 boolean "Valeur de l’observation" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMultidrugResistantMicroorganismIdentification.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMultidrugResistantMicroorganismIdentification.fsh new file mode 100644 index 0000000..683ed6c --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMMultidrugResistantMicroorganismIdentification.fsh @@ -0,0 +1,10 @@ +// Entrée utilisée dans le volet LDL-SES, LM à supprimé ? +Logical: FRLMMultidrugResistantMicroorganismIdentification +Id: fr-lm-multidrug-resistant-microorganism-identification +Parent : FRLMEntry +Title: "Logical model - FR LM Multidrug Resistant Microorganism Identification" +Description: """Identification de micro-organismes multirésistants""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code de l’observation" +* value 1..1 string "Description sous forme textuelle des micro-organismes identifiés" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservation.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservation.fsh new file mode 100644 index 0000000..1211d17 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservation.fsh @@ -0,0 +1,41 @@ +Logical: FRLMObservation +Id: fr-lm-observation +Parent: FRLMEntry +Title: "Logical model - FR LM Observation" +Description: """Résultat d'une observation réalisée sur le patient ou un dispositif médical.""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de l'observation" +* directSubject[x] 0..1 FRLMPatient or FRLMDevice or FRLMHealthProfessional or FRLMOrganisation or FRLMProcedure "Sujet direct de l'observation si différent du patient, par exemple dans le cas d’une observation portant sur un dispositif implanté. D’autres types de sujets peuvent être autorisés selon les implémentations." +* observationDate[x] 1..1 dateTime or Period "Date de l'observation" +* type 1..1 CodeableConcept "Type d'observation" + * ^binding.description = "LOINC (2.16.840.1.113883.6.1) ou autre" +* originalName 0..1 string "Nom de l'observation" +* method 0..1 CodeableConcept "Méthode utilisée pour l'observation" +* specimen 0..1 FRLMSpecimen "Prélèvement" +* order 0..1 FRLMServiceRequest "Demande d'examen correspondante" +* bodySite 0..1 FRLMBodyStructure "Localisation anatomique" +* result 1..1 Base "Valeur de l'observation" + * Value[x] 0..1 string or Quantity or Range or Ratio or CodeableConcept or boolean "Valeur de l'observation. Le type de donnée doit être adapté au type d'observation." +* referenceRange 0..* Base "Intervalle de référence. Plusieurs intervalles de référence, de types différents, peuvent être fournis." + * low 0..1 Quantity "Limite inférieure de l'intervalle" + * ^binding.description = "(preferred): UCUM for units" + * high 0..1 Quantity "Limite supérieure de l'intervalle" + * ^binding.description = "(preferred): UCUM for units" + * normalValue 0..1 CodeableConcept "Valeur normale si pertinente pour l'intervalle" + * ^binding.description = "(preferred): SNOMED CT" + * type 0..1 CodeableConcept "Type d'intervalle de référence" + * ^binding.description = "(preferred): HL7 Observation Reference Range Meaning Codes" + * appliesTo 0..* CodeableConcept "Population concernée pour cet intervalle" + * ^binding.description = "(preferred): SNOMED CT, HL7 v3-Race" + * age 0..1 Range "Tranche d'âge pour cet intervalle" + * ^binding.description = "(preferred): UCUM for units" + * text 0..1 string "Texte libre" +* interpretation 0..* CodeableConcept "Interprétation" + * ^binding.description = "(preferred): HL7 Observation Interpretation Codes" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ObservationInterpretation-cisis" +* note 0..1 string "Commentaire" +* component 0..* Base "Composant dans le cas d'une observation composée de plusieurs sous-observations" +* derivedFrom[x] 0..* FRLMObservation or FRLMLaboratoryObservation or FRLMImagingStudy "Référence de la resource à partir de laquelle l'observation a été faite. Par exemple, une image échographique à partir de laquelle une mesure fœtale est réalisée." +* hasMember[x] 0..* FRLMLaboratoryObservation or FRLMObservation "Cette observation est un groupe d'observations (par exemple, une batterie de tests, un ensemble de mesures de signes vitaux)." \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationAssessment.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationAssessment.fsh new file mode 100644 index 0000000..ecf4a94 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationAssessment.fsh @@ -0,0 +1,19 @@ +Logical: FRLMObservationAssessment +Id: fr-lm-observation-assessment +Parent: FRLMEntry +Title: "Logical model - FR LM Assessment" +Description: """Evaluation""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de l'évaluation" +* observationDate[x] 1..1 dateTime or Period "date de l'évaluation" +* type 1..1 CodeableConcept "Type d'observation. +- LOINC (2.16.840.1.113883.6.1) ou ICF (2.16.840.1.113883.6.254) ou autre +- Si le type d'évaluation n'est pas trouvé dans les terminologies proposées, utiliser le code='54522-8' displayName='Statut fonctionnel' codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'" +* method 0..1 CodeableConcept "Méthode utilisée pour l'observation" +* bodySite 0..1 FRLMBodyStructure "Site de l'observation" +* result 1..1 CodeableConcept "Valeur de l’évaluation" +* interpretation 0..* CodeableConcept "Interprétation" +* note 0..1 string "Commentaire" +* component 0..* FRLMObservationAssessment "Composant de l'évaluation" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationMedia.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationMedia.fsh new file mode 100644 index 0000000..8c4a91c --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationMedia.fsh @@ -0,0 +1,15 @@ +// l'équivalent de ce modèle EHDSMedia a été supprimé ! +// https://www.xt-ehr.eu/fhir/models/StructureDefinition-EHDSMedia.html +Logical: FRLMObservationMedia +Id: fr-lm-observation-media +Parent : FRLMEntry +Title: "Logical model - FR LM ObservationMedia" +Description: """Image illustrative.""" +Characteristics: #can-be-target + +* content 1..1 FRLMAttachment "Image encodée en Base64" +* content.data 1..1 +* content.contentType 1..1 + +* subject[x] 1..1 Reference(FRLMPatient or FRLMSpecimen) "Patient ou spécimen concerné par l’image" +* note 0..* string "Précondition" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationSocialHistory.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationSocialHistory.fsh new file mode 100644 index 0000000..e284a94 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationSocialHistory.fsh @@ -0,0 +1,21 @@ +Logical: FRLMObservationSocialHistory +Id: fr-lm-observation-social-history +Parent: FRLMEntry +Title: "Logical model- FR LM Observation Social History" +Description: """Habitus Mode de vie""" +Characteristics: #can-be-target + +* header.status 1..1 +* observationDate[x] 1..1 dateTime or Period "date de l'observation" +* type 1..1 CodeableConcept "Type d'observation" + * ^binding.description = "jdv-social-history-code-cisis (1.2.250.1.213.1.1.4.2.283.4)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-social-history-code-cisis" +* result 1..1 CodeableConcept "Résultat de l’observation effectuée : +- Statut tabagique : jdv-statut-tabagique-cisis (1.2.250.1.213.1.1.5.667) +- Consommation tabagique : {pack}/d ou {pack}/wk ou {pack}/a ou {cigarette}/d ou {cigarette}/wk ou {cigarette}/a +- Consommation d’alcool : {drink}/d or {drink}/wk +- Consommation de drogue non médicale : SNOMED CT concepts de la sous-hiérarchie 418149003 | substance psychoactive (substance) +- Exercice physique : {times}/wk +- Régime : LOINC Answer List LL3984- +- Statut d'emploi : jdv-hl7-v2-0066-cisis (2.16.840.1.113883.21.29)" +* note 0..1 string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationVitalSign.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationVitalSign.fsh new file mode 100644 index 0000000..3a6af6b --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMObservationVitalSign.fsh @@ -0,0 +1,19 @@ +Logical: FRLMObservationVitalSign +Id: fr-lm-observation-vital-sign +Parent: FRLMEntry +Title: "Logical model - FR LM Observation Vital Sign" +Description: """Signe vital observé""" +Characteristics: #can-be-target + +* observationDate[x] 1..1 dateTime or Period "date de l'observation" +* type 1..1 CodeableConcept "Type d'observation" + * ^binding.description = "Valeur issue du jdv-signe-vital-cisis (1.2.250.1.213.1.1.5.171)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-signe-vital-cisis" +* header.status 1..1 +* method 0..1 CodeableConcept "Méthode utilisée pour l'observation" +* bodySite 0..1 FRLMBodyStructure "Site de l'observation" +* result 1..1 CodeableConcept "Résultat de l'observation effectuée: unité de la mesure codée à partir de UCUM (2.16.840.1.113883.6.8)" +* interpretation 0..* CodeableConcept "Interprétation" + * ^binding.description = "Valeur issue du jdv-hl7-v3-ObservationInterpretation-cisis (2.16.840.1.113883.1.113883.5.1170)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ObservationInterpretation-cisis" +* note 0..1 string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPatientTransfer.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPatientTransfer.fsh new file mode 100644 index 0000000..a65e9eb --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPatientTransfer.fsh @@ -0,0 +1,10 @@ +Logical: FRLMPatientTransfer +Id: fr-lm-patient-transfer +Parent: FRLMEntry +Title: "Logical model - FR LM Patient Transfer." +Description: """Transfert du patient""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code du transfert" +* header.date ^short = "Date du transfert" +* header.participant[x].participantOrganisation ^short = "Destination" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyHistory.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyHistory.fsh new file mode 100644 index 0000000..5ddf81d --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyHistory.fsh @@ -0,0 +1,25 @@ +Logical: FRLMPregnancyHistory +Id: fr-lm-pregnancy-history +Parent: FRLMEntry +Title: "Logical model- FR LM Pregnancy History" +Description: """Historique de la grossesse""" +Characteristics: #can-be-target + +* header.status 1..1 +* directSubject[x] 0..1 FRLMPatient or FRLMDevice or FRLMHealthProfessional or FRLMOrganisation or FRLMProcedure "Sujet de l'observation (si différent du patient)" +* observationDate[x] 1..1 dateTime or Period "Période de la grossesse" +* type 1..1 CodeableConcept "Type d'observation" + * ^binding.description = "jdv-historique-grossesses-cisis (1.2.250.1.213.1.1.5.852)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-historique-grossesses-cisis" +* method 0..1 CodeableConcept "Methode utilisée" +* result 1..1 Base "Resultat de l'observation sur l'historique de grossesse" + * value[x] 0..1 string or Quantity or Range or Ratio or CodeableConcept "Valeur du resultat" + * uncertainty 0..1 Base "Incertitude associée au resultat" + * value 1..1 decimal "Niveau d'incertitude du resultat" + * type 0..1 Coding "Type d'incertitude" + * dataAbsentReason 0..1 CodeableConcept "Raison de l'absence de resultat" +* interpretation 0..* CodeableConcept "Interpretation du resultat" +* note 0..1 string "Commentaire" +* component 0..* Base "Composant detaillé de l'observation" +* derivedFrom[x] 0..* FRLMObservation or FRLMLaboratoryObservation or FRLMImagingStudy "Observation ou examen source dont derive cette information" +* hasMember[x] 0..* FRLMLaboratoryObservation or FRLMObservation "Observations associées et rattachées à cette entree" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyObservation.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyObservation.fsh new file mode 100644 index 0000000..a7059f7 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyObservation.fsh @@ -0,0 +1,36 @@ +Logical: FRLMPregnancyObservation +Id: fr-lm-pregnancy-observation +Parent: FRLMEntry +Title: "Logical model- FR LM Pregnancy Observation" +Description: """Observation sur la grossesse""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de l'observation" +* directSubject[x] 0..1 FRLMPatient or FRLMDevice or FRLMHealthProfessional or FRLMOrganisation or FRLMProcedure "Sujet de l'observation (si different du patient)" +* observationDate[x] 1..1 dateTime or Period "Date de l'observation" +* type 1..1 CodeableConcept "Type d'observation" + * ^binding.description = "jdv-issue-grossesse-cisis (1.2.250.1.213.1.1.5.731)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-issue-grossesse-cisis" +* method 0..1 CodeableConcept "Methode utilisee" + * ^binding.description = "jdv-mode-accouchement-cisis (1.2.250.1.213.1.1.5.735)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-mode-accouchement-cisis" +* result 1..1 Base "Valeur de l'observation" + * value[x] 0..1 string or Quantity or Range or Ratio or CodeableConcept "Valeur du resultat" + * uncertainty 0..1 Base "Incertitude associee au resultat" + * value 1..1 decimal "Niveau d'incertitude du resultat" + * type 0..1 Coding "Type d'incertitude" + * dataAbsentReason 0..1 CodeableConcept "Raison de l'absence de resultat" + * referenceRange 0..* Base "Intervalle de reference" + * low 0..1 Quantity "Limite inférieure de l'intervalle" + * high 0..1 Quantity "Limite supérieure de l'intervalle" + * normalValue 0..1 CodeableConcept "Valeur normale" + * type 0..1 CodeableConcept "Type d'intervalle de reference" + * appliesTo 0..* CodeableConcept "Population ou contexte d'application" + * age 0..1 Range "Tranche d'age" + * text 0..1 string "Texte libre de l'intervalle de reference" +* interpretation 0..* CodeableConcept "Interpretation du resultat" +* note 0..1 string "Commentaire" +* component 0..* Base "Composant detaillé de l'observation" +* derivedFrom[x] 0..* FRLMObservation or FRLMLaboratoryObservation or FRLMImagingStudy "Observation ou examen source dont derive cette information" +* hasMember[x] 0..* FRLMLaboratoryObservation or FRLMObservation "Observations associees rattachees a cette entree" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyStatus.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyStatus.fsh new file mode 100644 index 0000000..390b64e --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPregnancyStatus.fsh @@ -0,0 +1,28 @@ +Logical: FRLMPregnancyStatus +Id: fr-lm-pregnancy-status +Parent: FRLMEntry +Title: "Logical model- FR LM Pregnancy Status" +Description: """Statut de grossesse""" +Characteristics: #can-be-target + +* header.status 1..1 +* observationDate[x] 1..1 dateTime or Period "Date ou periode de l'observation" +* type 1..1 CodeableConcept "Type d'observation" + * ^short = "LOINC 11449-6 'Pregnancy status'" +* result 1..1 Base "Resultat de l'observation" + * value[x] 0..1 string or Quantity or Range or Ratio or CodeableConcept "Valeur du resultat" + * ^binding.description = "Statut de grossesse de la patiente (enceinte, pas enceinte, etc.)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-statut-grossesse-cisis" + * uncertainty 0..1 Base "Incertitude associée au resultat" + * value 1..1 decimal "Niveau d'incertitude du resultat" + * type 0..1 Coding "Type d'incertitude" + * dataAbsentReason 0..1 CodeableConcept "Raison de l'absence de resultat" +* note 0..1 string "Commentaire" +* hasMember[x] 0..* Base "Observations rattachées a cette entrée" + * hasMemberFRLMLaboratoryObservation 0..* FRLMLaboratoryObservation "Observation de laboratoire associée" + * hasMemberEstimatedDeliveryDate 0..* FRLMObservation "Observation associée a la date d'accouchement" + * ^binding.description = "jdv-date-accouchement-cisis (1.2.250.1.213.1.1.5.853)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-date-accouchement-cisis" + * hasMemberGestationalAge 0..* FRLMObservation "Observation associée a l'age gestationnel" + * ^binding.description = "jdv-age-gestationnel-cisis (1.2.250.1.213.1.1.5.854)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-age-gestationnel-cisis" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionEntree.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionEntree.fsh new file mode 100644 index 0000000..b72c3a3 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionEntree.fsh @@ -0,0 +1,14 @@ +Logical: FRLMPrescriptionEntree +Id: fr-lm-prescription-entree +Title: "Logical model - FR LM Prescription" +Parent: FRLMEntry +Description: """Prescription """ +Characteristics: #can-be-target + +* identifiantPrescription 1..1 Identifier "Identifiant de la prescription" +//sequence +* nombreRenouvellements 0..1 Range "Nombre de renouvellements possibles" +//doseAndRate +* quantitePrescription 0..1 Quantity "Quantité" +//additionalInstruction : CodeableConcept +* instructionsAuDispensateur 0..1 string "Instructions au dispensateur" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionItem.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionItem.fsh new file mode 100644 index 0000000..2628f86 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMPrescriptionItem.fsh @@ -0,0 +1,39 @@ +Logical: FRLMPrescriptionItem +Id: fr-lm-prescription-item +Parent: FRLMEntry +Title: "Logical model - FR LM Medication Prescription" +Description: """Traitement prescrit""" +Characteristics: #can-be-target + +* . 1..* +* header.identifier 1..* +* header.status 1..1 + * ^short = "Statut de la ligne de prescription" +* header.author[x] 0..1 + * ^short = "Auteur de la prescription" +* statusReason[x] 0..1 CodeableConcept or string "Motif du statut de la ligne de prescription. +Par exemple, motif pour lequelle la ligne de prescription a été invalidée ou modifiée par rapport à la version précédente." +* medication 1..1 FRLMMedication "Produit de santé" +* indication[x] 0..* CodeableConcept or string "Motif du traitement (problème ou acte)." + * ^binding.description = "ICD-10, SNOMED CT, Orphacode" + * ^binding.strength = #preferred +* intendedUseType 0..1 CodeableConcept "Objet de la prescription - prophylaxie, traitement, anesthésie, etc" +* periodOfUse 0..1 Period "Durée du traitement" +* dosageInstructions 1..1 FRLMDosageInstructions "Posologie" +* quantityPrescribed 0..1 Quantity "Quantite de produit" +* validityPeriod 0..1 Period "Periode de validité de la ligne de prescription" +* substitution 0..1 Base "Autorisation de substitution" + * allowed[x] 0..1 CodeableConcept or boolean "Type de substitution" + * ^binding.description = "jdv-hl7-v3-ActSubstanceAdminSubstitutionCode-cisis (2.16.840.1.113883.1.11.16621)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ActSubstanceAdminSubstitutionCode-cisis" + * reason[x] 0..1 CodeableConcept or string "Motif de non substitution (Marge thérapeutique étroite, Enfant forme galénique, Contre-indication formelle)." +* numberOfRepeats 0..1 integer "Nombre de renouvellement(s) possible(s). Non renseigné si pas de limite du nombre de dispensation. '0'=dispensation unique. Le nombre total de dispensation = nombre de renouvellement + 1." +* minimumDispenseInterval 0..1 Quantity "Intervalle minimal de délivrance. Si une ordonnance autorise des délivrances répétées, l'intervalle entre ces délivrances doit être indiqué ici." +* offLabel 1..1 Base "Hors AMM. Indique que le prescripteur a sciemment prescrit le médicament pour une indication, un groupe d'âge, une posologie ou une voie d'administration non approuvée par les organismes de réglementation et non mentionnée dans la notice du médicament." + * isOffLabelUse 1..1 boolean "Indique si la prescription est hors AMM. Doit être égal à « true » lorsque la raison est fournie." + * reason[x] 0..* CodeableConcept or string "Raison de la prescription hors AMM" +* note 0..1 string "Instructions au dispensateur" +* enRapportAvecALD 1..1 boolean "En rapport avec ALD" +* enRapportAvecAccidentTravail 1..1 boolean "En rapport avec accident travail" +* enRapportAvecPrevention 1..1 boolean "En rapport avec la prevention" +* nonRemboursable 1..1 boolean "Non remboursable" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMProcedure.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMProcedure.fsh new file mode 100644 index 0000000..ca1bed1 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMProcedure.fsh @@ -0,0 +1,35 @@ +Logical: FRLMProcedure +Id: fr-lm-procedure +Parent: FRLMEntry +Title: "Logical model- FR LM Procedure" +Description: """Acte""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code de l'acte" + * ^binding.description = "CCAM (1.2.250.1.215.300.1)" +* header.status 1..1 + * ^short = "Statut de l'acte" + * ^binding.description = "jdv-hl7-v3-ActStatus-cisis (2.16.840.1.113883.1.11.15933)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-hl7-v3-ActStatus-cisis" +* procedureDate[x] 1..1 period "Période de l'acte" + * procedureDateDateTime 0..1 dateTime "Date de début de l'acte" + * procedureDatePeriod 0..1 dateTime "Date de fin de l'acte" +* priority 0..1 CodeableConcept "Priorité" + * ^binding.description = "jdv-hl7-v3-ActPriority-cisis (2.16.840.1.113883.1.11.16866) ou autre JDV" +* bodySite 0..1 FRLMBodyStructure "localisation anatomique" + * ^binding.description = "SNOMED CT (2.16.840.1.113883.6.96)" +* approachSiteCode 0..1 CodeableConcept "Voie d’abord" + * ^binding.description = "SNOMED CT (2.16.840.1.113883.6.96)" +* difficulty 0..1 CodeableConcept "Difficulté" +* reason[x] 0..* CodeableConcept or FRLMCondition or FRLMObservation or FRLMProcedure or FRLMEncounter "Motif de l’acte. +- motif codé (spécifique à un contexte) +- motif : un problème +- motif : une observation +- motif : un acte +- motif : une rencontre (consultation, etc…)" +* outcome 0..1 CodeableConcept "Résultat immédiat de l'acte (succès, échec, ...). Ne concerne pas l'évaluation sur une période plus longue." +* complication 0..* CodeableConcept "Complication survenue pendant l'acte ou immédiatement après uniquement." + * ^binding.description = "(preferred): ICD-10, SNOMED CT" +* deviceUsed 0..* FRLMDevice "Dispositif médical utilisé pendant l'acte" +* focalDevice 0..* FRLMDevice "Dispositif implanté, retiré ou manipulé chez le patient (étalonnage, remplacement de la batterie, pose d'une prothèse, fixation d'un système de drainage des plaies par aspiration, etc.)." +* note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMQuantityExposure.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMQuantityExposure.fsh new file mode 100644 index 0000000..c0bb39f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMQuantityExposure.fsh @@ -0,0 +1,14 @@ +Logical: FRLMQuantityExposure +Id: fr-lm-quantity-exposure +Parent: FRLMEntry +Title: "Logical model - FR LM Quantity Exposure" +Description: """Quantité exposition""" +Characteristics: #can-be-target + +* header.participant[x].participantProfessional 1..1 + * ^short = "Identité du professionnel de santé ayant donné l'autorisation de l'exposition du patient aux rayonnements" +* type 1..1 CodeableConcept "Type de mesure d'exposition" + * ^binding.description = "jdv-quantite-exposition-rayonnements-cisis (1.2.250.1.213.1.1.5.620)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-quantite-exposition-rayonnements-cisis" +* quantity 1..1 Quantity "Quantité mesurée" +* bodySite 0..1 FRLMBodyStructure "Localisation anatomique irradiée (précision topographique)" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatExamensBiologieElementCliniquePertinent.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatExamensBiologieElementCliniquePertinent.fsh new file mode 100644 index 0000000..b90e604 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatExamensBiologieElementCliniquePertinent.fsh @@ -0,0 +1,20 @@ +// En attente de validation par APE concernant la création d’un modèle logique unique ObservationLab, ainsi que le choix du parent : FRLMEntry ou un FRLMObservationLab commun. +Logical: FRLMResultatExamensBiologieElementCliniquePertinent +Id: fr-lm-resultat-examens-biologie-element-clinique-pertinent +Parent: FRLMEntry +Title: "Modèle logique métier - FR LM Résultat d'examens de biologie / élement clinique pertinent" +Description: """Résultat d'examens de biologie / élement clinique pertinent""" +Characteristics: #can-be-target + +* codeIdentification 0..1 CodeableConcept "Code d'identification de l'analyse ou de l'observation" +* header.status ^short = "Niveau de complétude" +* valeurResultat[x] 0..1 CodeableConcept or string or Quantity or Ratio or Range "Valeur du résultat" +* interpretation 0..1 CodeableConcept "Code d'interprétation" +* methode 0..1 CodeableConcept "Méthode ou technique employée" +//* choice[x] 0..1 FRLMSujetNonHumain or FRLMPatientSujetNonHumain "Sujet non humain ou Patient avec sujet non humain" +* laboratoireExecutant 0..* FRLMLaboratoireExecutant "Laboratoire sous-traitant. Apparaît à ce niveau si et et seulement si ce résultat a été produit par un laboratoire exécutant distinct du laboratoire exécutant déclaré aux niveaux supérieurs." +* commentaire 0..* string "Commentaire d'interprétation des résultats" +* prelevement 0..* FRLMSpecimen "Prélèvement" +* resultatsAnterieurs 0..* Base "Résultats antérieurs. Plusieurs résultats antérieurs peuvent être ajoutés. + - Ils doivent être comparables avec le résultat rendu, c'est-à-dire obtenus suivant la même méthode ou une méthode comparable, et exprimés dans la même unité ou dans le même système de codage." +* intervallesReference 0..1 Base "Intervalles de référence" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatsExamensBiologieMedicale.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatsExamensBiologieMedicale.fsh new file mode 100644 index 0000000..0040b84 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMResultatsExamensBiologieMedicale.fsh @@ -0,0 +1,18 @@ +// En attente de validation par APE concernant la création d’un modèle logique unique ObservationLab, ainsi que le choix du parent : FRLMEntry ou un FRLMObservationLab commun. +Logical: FRLMResultatsExamensBiologieMedicale +Id: fr-lm-resultats-examens-biologie-medicale +Parent: FRLMEntry +Title: "Logical model - FR LM Resultats d'examens de biologie medicale" +Description: """Resultats d'examens de biologie medicale""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code dont dérive le code de section" +* header.status ^short = "Niveau de complétude" +//* choice[x] 0..1 FRLMSujetNonHumain or FRLMPatientSujetNonHumain "Sujet non humain ou Patient avec sujet non humain" +* laboratoireExecutant 0..* FRLMLaboratoireExecutant "Laboratoire sous-traitant." +* prelevement 0..* FRLMSpecimen "Prélèvement" +* batterieExamensDeBiologieMedicale 0..* FRLMBatterieExamensBiologieMedicale "Batterie d'examens de biologie médicale" +* isolatMicrobiologique 0..* FRLMIsolatMicrobiologique "Isolat microbiologique" +* resultatElementCliniquePertinent 0..* FRLMResultatExamensBiologieElementCliniquePertinent "Résultat d'examen de biologie / élément clinique pertinent" +* observationMedia 0..* FRLMObservationMedia "Image ou graphe" +* commentaire 0..* string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSOPInstance.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSOPInstance.fsh new file mode 100644 index 0000000..60d62b5 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSOPInstance.fsh @@ -0,0 +1,14 @@ +Logical: FRLMSOPInstance +Id: fr-lm-sop-instance +Parent: FRLMEntry +Title: "Logical model - FR LM SOP Instance" +Description: """SOP Instance""" +Characteristics: #can-be-target + +* header.identifier 1..* + * ^short = "UUID SOP instance" +* sopClass 1..1 CodeableConcept "Classe SOP" + * ^binding.description = "JDV-SOPClass_CISIS (1.2.250.1.213.1.1.5.689)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-sop-class-cisis" +* instanceNumber 0..1 integer "Numéro de l'instance dans la série" +* numberOfFrames 0..1 integer "Nombre de cadres composant l'instance" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSeries.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSeries.fsh new file mode 100644 index 0000000..cc46730 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSeries.fsh @@ -0,0 +1,18 @@ +Logical: FRLMSeries +Id: fr-lm-series +Parent: FRLMEntry +Title: "Logical model - FR LM Series" +Description: """Séries d'actes d'imagerie""" +Characteristics: #can-be-target + +* seriesUid 1..* Identifier "DICOM UUID instance de la série" +* number 0..1 integer "identfiant numérique de la série" +* seriesModality 1..1 CodeableConcept "Modalités d'imagerie utilisées lors de l'examen (DICOM CID029)" + * ^binding.description = "jdv-modalite-acquisition-cisis : Modalité d'imagerie" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-modalite-acquisition-cisis" +* bodySite 0..1 FRLMBodyStructure "Localisations anatomiques" +* specimen 0..* FRLMSpecimen "Spécimen associé à la série" +* numberOfInstances 0..1 integer "Nombre d'instances d'imagerie composant l'examen" +* seriesEndpoint 0..* FRLMEndpoint "Endpoint de l'examen d'imagerie" +* started 0..1 dateTime "Date de début de la série d'actes" +* instanceSOP 1..1 FRLMSOPInstance "SOP instance" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMServiceRequest.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMServiceRequest.fsh new file mode 100644 index 0000000..ac6c512 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMServiceRequest.fsh @@ -0,0 +1,20 @@ +Logical: FRLMServiceRequest +Id: fr-lm-service-request +Parent: FRLMEntry +Title: "Logical model - FR LM Service Request" +Description: """Demande d'examen ou de suivi / Objectif à atteindre""" +Characteristics: #can-be-target + +* header.status 1..1 + * ^short = "Statut de la demande" +* code 1..1 CodeableConcept "Type de la demande" +* quantity 0..1 Quantity "Quantité demandée" +* bodySite 0..* FRLMBodyStructure "Localisation anatomique" +* reason[x] 0..* FRLMObservation or FRLMCondition or FRLMMedication or string "Motif de la demande" +* priority 0..1 CodeableConcept "Priorité de la demande" + * ^binding.description = "(preferred): HL7 Request Priority" +* supportingInformation[x] 0..* FRLMObservation or FRLMCondition or FRLMProcedure or FRLMMedicationAdministration "Informations pertinentes pour l'interprétation des résultats, par exemple le statut de jeûne, le sexe, etc." +* specimen 0..* FRLMSpecimen "Prélèvement" +* encounter 0..1 FRLMEncounter "Consultation à l'origine, pour avoir des informations complémentaires sur le contexte dans lequel cette demande est formulée" +* occurrence[x] 1..1 dateTime or Period "Date ou période prévisionnelle de l'examen" +* patientInstructions 0..1 string "Instructions au patient" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSpecimen.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSpecimen.fsh new file mode 100644 index 0000000..d711820 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMSpecimen.fsh @@ -0,0 +1,35 @@ +Logical: FRLMSpecimen +Id: fr-lm-specimen +Parent: FRLMEntry +Title: "Logical model - FR LM Specimen" +Description: """Prélèvement""" +Characteristics: #can-be-target + +* identifier 1..* Identifier "Identifiant unique de l'échantillon, au sein d'un périmètre défini. Exemple : identifiant attribué par le système du préleveur, identifiant attribué par le laboratoire, etc. Plusieurs identifiants peuvent être utilisés." +* header.status + * ^short = "Disponibilité du prélèvement" + * ^binding.description = "(preferred): HL7 specimen-status" +* type 0..1 CodeableConcept "Échantillon prélevé" + * ^binding.description = "jdv-specimen-type-cisis (1.2.250.1.213.1.1.5.819)" + * ^binding.valueSet = "https://smt.esante.gouv.fr/fhir/ValueSet/jdv-specimen-type-cisis" +* specimenSource[x] 0..1 FRLMPatient or FRLMLocation or FRLMDevice "Origine du prélèvement : il peut provenir d'un patient, d'un lieu ou d'un dispositif" +* parentSpecimen 0..* FRLMSpecimen "Prélèvement dont provient cet échantillon" +* request 0..* FRLMServiceRequest "Demande à l'origine du prélèvement" +* combined 0..1 CodeableConcept "Binding Description: (preferred): HL7 specimen-combined" + * ^binding.description = "(preferred): HL7 specimen-combined" +* collection 0..* Base "Détails de la collecte" + * performer[x] 0..1 FRLMHealthProfessional or FRLMOrganisation or FRLMPatient or FRLMRelatedPerson "Organisation prélevante" + * collected[x] 1..1 dateTime or Period "Date du prélèvement" + * quantity 0..1 Quantity "Quantité" + * method 0..1 CodeableConcept "Acte de prélèvement" + * ^binding.description = "NABM (1.2.250.1.215.300.2) ou 33882-2 [LOINC] Prélèvement" + * device 0..* FRLMDeviceUse "Dispositif utilisé" + * additive[x] 0..* CodeableConcept or FRLMDevice "Produit utilisé" + * bodySite 0..1 FRLMBodyStructure "Localisation du prélèvement" +* receivedDate 1..1 dateTime "Date de réception de l'échantillon" +* container 0..* Base "Contenant du prélèvement" + * specimenQuantity 0..1 Quantity "Quantité de prélèvement dans le contenant" + * containerDevice 1..1 FRLMDevice "Dispositif utilisé comme contenant" +* condition 0..* CodeableConcept "État de l'échantillon" + * ^binding.description = "(preferred): HL7 specimenCondition" +* note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTechniqueImagerie.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTechniqueImagerie.fsh new file mode 100644 index 0000000..772f331 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTechniqueImagerie.fsh @@ -0,0 +1,18 @@ +Logical: FRLMTechniqueImagerie +Id: fr-lm-technique-imagerie +Parent: FRLMEntry +Title: "Logical model- FR LM Technique imagerie" +Description: """Entrée Technique imagerie""" +Characteristics: #can-be-target + +* codeActe 1..1 CodeableConcept "Code de l'acte d'imagerie" + * ^binding.description = "jdv-code-document-imagerie-cisis (1.2.250.1.213.1.1.5.687)" +* description 0..1 Narrative "Partie narrative de l'observation" +* modaliteAcquisition 1..* CodeableConcept "Modalité d’acquisition" + * ^binding.description = "jdv-modalite-acquisition-cisis (1.2.250.1.213.1.1.5.618)" +* lateralite 0..1 CodeableConcept "Latéralité et topographie" + * ^binding.description = "SNOMED CT (2.16.840.1.113883.6.96)" + * precisionTopographique 0..1 CodeableConcept "Précision topographique" + * nom 1..1 CodeableConcept "name" + * valeur 1..1 CodeableConcept "Valeur de la topographie" + * ^binding.description = "jdv-modificateur-topographique-cisis (1.2.250.1.213.1.1.5.688)" diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionAccidents.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionAccidents.fsh new file mode 100644 index 0000000..0529176 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionAccidents.fsh @@ -0,0 +1,9 @@ +Logical: FRLMTransfusionAccidents +Id: fr-lm-transfusion-accidents +Parent: FRLMEntry +Title: "Logical model - FR LM Transfusion accidents" +Description: """Accidents transfusionnels""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code de l’observation" +* valeur 1..1 string "Description sous forme textuelle de l'accident transfusionnel" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionDeProduitsSanguins.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionDeProduitsSanguins.fsh new file mode 100644 index 0000000..03b2917 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTransfusionDeProduitsSanguins.fsh @@ -0,0 +1,9 @@ +Logical: FRLMTransfusionDeProduitsSanguins +Id: fr-lm-transfusion-de-produits-sanguins +Parent: FRLMEntry +Title: "Logical model - FR LM Transfusion de produits sanguins" +Description: """Transfusion de produits sanguins""" +Characteristics: #can-be-target + +* code 1..1 CodeableConcept "Code de l'entrée" +* transfusionProduitSanguin 1..1 boolean "Transfusion de produit sanguin" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTravelHistory.fsh b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTravelHistory.fsh new file mode 100644 index 0000000..ae489b9 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/composantsElementaires/FRLMTravelHistory.fsh @@ -0,0 +1,11 @@ +Logical: FRLMTravelHistory +Id: fr-lm-travel-history +Parent : FRLMEntry +Title: "Logical model - FR LM TravelHistory" +Description: """Historique des voyages.""" +Characteristics: #can-be-target + +* country 1..1 CodeableConcept "Pays de destination du voyage" + * ^binding.description = "ISO 3166" + * ^binding.strength = #preferred +* period 0..1 Period "Période du voyage" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMAddendum.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMAddendum.fsh new file mode 100644 index 0000000..4dbe69d --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMAddendum.fsh @@ -0,0 +1,10 @@ +Logical: FRLMAddendum +Id: fr-lm-addendum +Parent: FRLMSection +Title: "Logical model - FR LM Addendum" +Description: """Section Addendum""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 0..0 +* titleSection 1..1 \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMAdmissionEvaluation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMAdmissionEvaluation.fsh new file mode 100644 index 0000000..2526ebf --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMAdmissionEvaluation.fsh @@ -0,0 +1,14 @@ +Logical: FRLMAdmissionEvaluation +Id: fr-lm-admission-evaluation +Parent: FRLMSection +Title: "Logical model - FR LM Admission Evaluation" +Description: """Section Évaluation à l'admission""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * encounterInformation 0..1 FRLMEncounter "Entrée Informations sur la rencontre" + * objectiveFindings 0..* FRLMObservation "Constatations objectives" + * functionalStatus[x] 0..* FRLMCondition or FRLMObservation "Statut fonctionnel" + * note 0..1 string "Commentaire" diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMAdvanceDirectives.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMAdvanceDirectives.fsh new file mode 100644 index 0000000..53fe941 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMAdvanceDirectives.fsh @@ -0,0 +1,11 @@ +Logical: FRLMAdvanceDirectives +Id: fr-lm-advance-directives +Parent: FRLMSection +Title: "Logical model - FR LM Advance Directives" +Description: """Section Directives anticipées""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * advanceDirective 0..* FRLMAdvanceDirective "Entrée Directive anticipée" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMAlerts.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMAlerts.fsh new file mode 100644 index 0000000..8410568 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMAlerts.fsh @@ -0,0 +1,11 @@ +Logical: FRLMAlerts +Id: fr-lm-alerts +Parent: FRLMSection +Title: "Logical model - FR LM Alerts" +Description: """Section Points de vigilance """ +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * alert 0..* FRLMAlert "Points de vigilance" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMAllergiesAndIntolerances.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMAllergiesAndIntolerances.fsh new file mode 100644 index 0000000..a0d0278 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMAllergiesAndIntolerances.fsh @@ -0,0 +1,12 @@ +Logical: FRLMAllergiesAndIntolerances +Id: fr-lm-allergies-and-intolerances +Parent : FRLMSection +Title: "Logical model - FR LM Allergies And Intolerances" +Description: """Section Allergies et hypersensibilités""" +Characteristics: #can-be-target + +* titleSection 1..1 +* titleSection ^short = "Allergies et hypersensibilités" +* subSection 0..0 +* entry 1..* + * allergieIntolerance 1..* FRLMAllergyIntolerance "Entrée Allergie ou Hypersensibilité" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMAttachments.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMAttachments.fsh new file mode 100644 index 0000000..175849c --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMAttachments.fsh @@ -0,0 +1,11 @@ +Logical: FRLMAttachments +Id: fr-lm-attachments +Parent: FRLMSection +Title: "Logical model - FR LM Attachments" +Description: """Section Documents ajoutés""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry + * observation 0..1 FRLMObservation "Entrée Simple observation : Permet d'indiquer la nature des documents ajoutés" + * attachment 1..* FRLMAttachment "Entrée Document attaché" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMCarePlans.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMCarePlans.fsh new file mode 100644 index 0000000..f1eaebc --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMCarePlans.fsh @@ -0,0 +1,11 @@ +Logical: FRLMCarePlans +Id: fr-lm-care-plans +Parent: FRLMSection +Title: "Logical model - FR LM CarePlans" +Description: """Section Plan de soins""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * carePlans 0..* FRLMCarePlan "Entrée Plan de soins" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMComparisonStudy.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMComparisonStudy.fsh new file mode 100644 index 0000000..6307242 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMComparisonStudy.fsh @@ -0,0 +1,10 @@ +Logical: FRLMComparisonStudy +Id: fr-lm-comparison-study +Parent: FRLMSection +Title: "Logical model - FR LM Comparison Study" +Description: """Section Comparaison d'examens d'imagerie""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 0..0 \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMConclusion.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMConclusion.fsh new file mode 100644 index 0000000..cf7bdad --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMConclusion.fsh @@ -0,0 +1,13 @@ +Logical: FRLMConclusion +Id: fr-lm-conclusion +Parent: FRLMSection +Title: "Logical model - FR LM Conclusion" +Description: """Section Conclusion""" +Characteristics: #can-be-target + +* titleSection 1..1 +* description + * ^short = "Conclusions" +* subSection 0..0 +* entry + * conditionOrFinding[x] 0..* FRLMCondition or FRLMObservation "Conditions ou observations associées aux conclusions" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMCourseOfEncounter.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMCourseOfEncounter.fsh new file mode 100644 index 0000000..779bc70 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMCourseOfEncounter.fsh @@ -0,0 +1,20 @@ +Logical: FRLMCourseOfEncounter +Id: fr-lm-course-of-encounter +Parent: FRLMSection +Title: "Logical model - FR LM Course of encounter" +Description: """Section Résultats d'événements""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry + * testResults 1..* FRLMObservation "Résultats" + * patientTransfer 0..* FRLMPatientTransfer "Transfert du patient" + * diagnosticSummary 0..* FRLMCondition "Problème" + * procedures 0..* FRLMProcedure "Acte" + * medicalDevicesAndImplants 0..* FRLMDeviceUse "Dispositif médical et implant" + // à voir si on va suivre la meme logique que l'Europe et créer un profil spécifique MedicationUse + * medications 0..* FRLMMedicationAdministration "Traitement administré pendant le séjour" + * reactions 0..* Base "événement indésirable" + * reactionDuringEncounter 0..1 string "Description sous forme textuelle des évènements indésirables survenus pendant l'hospitalisation" + * reactionFollowingAdministrationBloodDerivatives 0..1 string "Description sous forme textuelle des réactions indésirables survenues après l'administration de dérivés sanguins" + * notes 0..1 string "Note" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMDicomStudyMetadata.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMDicomStudyMetadata.fsh new file mode 100644 index 0000000..5c620a0 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMDicomStudyMetadata.fsh @@ -0,0 +1,11 @@ +Logical: FRLMDicomStudyMetadata +Id: fr-lm-dicom-study-metadata +Parent: FRLMSection +Title: "Logical model - FR LM DICOM Study Metadata" +Description: """Section Object Catalog""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * imagingStudy 0..* FRLMImagingStudy "Entrée Examen imagerie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMEncounterInformation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMEncounterInformation.fsh new file mode 100644 index 0000000..120f837 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMEncounterInformation.fsh @@ -0,0 +1,12 @@ +Logical: FRLMEncounterInformation +Id: fr-lm-encounter-information +Parent: FRLMSection +Title: "Logical model - FR LM Encounter Information" +Description: """Section Informations sur la rencontre""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * encounterInformation 0..1 FRLMEncounter "Entrée Informations sur la rencontre" + * note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMExaminationReport.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMExaminationReport.fsh new file mode 100644 index 0000000..4d64e60 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMExaminationReport.fsh @@ -0,0 +1,15 @@ +Logical: FRLMExaminationReport +Id: fr-lm-examination-report +Parent: FRLMSection +Title: "Logical model - FR LM Examination Report" +Description: """Section Acte d'imagerie""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection + * conclusion 0..1 FRLMConclusion "Conclusion de l'examen" +* entry + * imagingProcedures 1..1 FRLMProcedure "Entrée Techniques d'imagerie" + * medicationAdministrations 0..* FRLMMedicationAdministration "Entrée Produits de santé administrés pendant l'acte d'imagerie" + * adverseReactions 0..* FRLMAllergyIntolerance "Entrée allergies et intolérances" + * results[x] 0..* FRLMObservation or string "Résultats d'examens" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMExposureInformation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMExposureInformation.fsh new file mode 100644 index 0000000..3714cc4 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMExposureInformation.fsh @@ -0,0 +1,11 @@ +Logical: FRLMExposureInformation +Id: fr-lm-exposure-information +Parent: FRLMSection +Title: "Logical model - FR LM Exposure Information" +Description: """Section Exposition aux radiations""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 + * quantityExposure 0..* FRLMQuantityExposure "Entrée Quantité" + * radiopharmaceuticalAdministration 0..1 FRLMMedicationAdministration "Entrée administration des produits radiopharmaceutiques" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMFamilyMedicalHistory.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMFamilyMedicalHistory.fsh new file mode 100644 index 0000000..9ebd681 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMFamilyMedicalHistory.fsh @@ -0,0 +1,10 @@ +Logical: FRLMFamilyMedicalHistory +Id: fr-lm-family-medical-history +Parent: FRLMSection +Title: "Logical model - FR LM Family Medical History" +Description: """Section Antécédents familiaux""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 1..* + * familyMemberHistory 1..* FRLMFamilyMemberHistory "Entrée Antécédents familiaux" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMFunctionalStatus.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMFunctionalStatus.fsh new file mode 100644 index 0000000..6c597c0 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMFunctionalStatus.fsh @@ -0,0 +1,11 @@ +Logical: FRLMFunctionalStatus +Id: fr-lm-functional-status +Parent: FRLMSection +Title: "logical model- FR LM Functional Status" +Description: """Section Statut fonctionnel""" +Characteristics: #can-be-target + +* subSection 0..0 +* titleSection 1..1 +* entry + * assessment 0..* FRLMObservationAssessment "résultat d'une évaluation du statut fonctionnel" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMHazardousWorkingConditions.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMHazardousWorkingConditions.fsh new file mode 100644 index 0000000..3bf4394 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMHazardousWorkingConditions.fsh @@ -0,0 +1,9 @@ +Logical: FRLMHazardousWorkingConditions +Id: fr-lm-hazardous-working-conditions +Parent: FRLMSection +Title: "Logical model - FR LM Hazardous Working Conditions" +Description: """Section Facteurs de risque professionnels non codés""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 0..0 \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMHistoryOfPastIllness.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMHistoryOfPastIllness.fsh new file mode 100644 index 0000000..1749f62 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMHistoryOfPastIllness.fsh @@ -0,0 +1,11 @@ +Logical: FRLMHistoryOfPastIllness +Id: fr-lm-history-of-past-illness +Parent: FRLMSection +Title: "Logical model - FR LM FRLM History Of Past Illness" +Description: """Section Antécédents médicaux""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 1..* + * problem 1..* FRLMCondition "Entrée Problème" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMHospitalDischargeMedications.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMHospitalDischargeMedications.fsh new file mode 100644 index 0000000..2f1a155 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMHospitalDischargeMedications.fsh @@ -0,0 +1,10 @@ +Logical: FRLMHospitalDischargeMedications +Id: fr-lm-hospital-discharge-medications +Parent: FRLMSection +Title: "Logical model - FR LM Hospital Discharge Medications" +Description: """Section Traitements à la sortie""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 1..* + * hospitalDischargeMedications 1..* FRLMMedicationAdministration "Entrée Traitement à la sortie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMImmunisations.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMImmunisations.fsh new file mode 100644 index 0000000..8447b53 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMImmunisations.fsh @@ -0,0 +1,11 @@ +Logical: FRLMImmunisations +Id: fr-lm-immunisations +Parent : FRLMSection +Title: "Logical model - FR LM Immunisations" +Description: """Section Vaccinations""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * immunisation 1..* FRLMImmunisation "Entrée Vaccination" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicePrescriptions.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicePrescriptions.fsh new file mode 100644 index 0000000..4f5eeb1 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicePrescriptions.fsh @@ -0,0 +1,10 @@ +Logical: FRLMMedicalDevicePrescriptions +Id: fr-lm-medical-device-prescriptions +Parent: FRLMSection +Title: "Logical Model - FR LM Medical Device Prescriptions" +Description: """Section Prescription de dispositifs médicaux""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 1..* + * deviceUse 1..* FRLMDeviceUse "Entrée Dispositif médical prescrit" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicesAndImplants.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicesAndImplants.fsh new file mode 100644 index 0000000..d1e2276 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicalDevicesAndImplants.fsh @@ -0,0 +1,11 @@ +Logical: FRLMMedicalDevicesAndImplants +Id: fr-lm-medical-devices-and-implants +Parent: FRLMSection +Title: "Logical Model - FR LM Medical Devices and Implants" +Description: """Section Dispositifs Medicaux""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * deviceUse 0..* FRLMDeviceUse "Entrée Dispositif medical" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationDispensations.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationDispensations.fsh new file mode 100644 index 0000000..4acc212 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationDispensations.fsh @@ -0,0 +1,11 @@ +Logical: FRLMMedicationDispensations +Id: fr-lm-medication-dispensations +Parent: FRLMSection +Title: "Logical model - FR LM Medication Dispensations" +Description: """Section Dispensation médicaments""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 1..* + * medicationDispense 1..* FRLMMedicationDispense "Entrée Traitement dispensé" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationPrescription.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationPrescription.fsh new file mode 100644 index 0000000..7a8e307 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationPrescription.fsh @@ -0,0 +1,10 @@ +Logical: FRLMMedicationPrescription +Id: fr-lm-medication-prescription +Parent: FRLMSection +Title: "Logical model - FR LM FR LM Medication Prescription" +Description: """Section Prescription de médicaments""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 1..* + * prescriptionItem 1..* FRLMPrescriptionItem "Entrée Traitement prescrit" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationSummary.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationSummary.fsh new file mode 100644 index 0000000..6a51976 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMMedicationSummary.fsh @@ -0,0 +1,11 @@ +Logical: FRLMMedicationSummary +Id: fr-lm-medication-summary +Parent : FRLMSection +Title: "Logical model - FR LM Medication Summary" +Description: """Section Traitements""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * medicationAdministration 1..* FRLMMedicationAdministration "Entrée Traitement" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMNote.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMNote.fsh new file mode 100644 index 0000000..b4c1af7 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMNote.fsh @@ -0,0 +1,9 @@ +Logical: FRLMNote +Id: fr-lm-note +Parent: FRLMSection +Title: "Logical model - FR LM Note" +Description: """Section Commentaire (non-codé)""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 0..0 \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMObservationResults.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMObservationResults.fsh new file mode 100644 index 0000000..bfd57ec --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMObservationResults.fsh @@ -0,0 +1,11 @@ +Logical: FRLMObservationResults +Id: fr-lm-observation-results +Parent: FRLMSection +Title: "Logical model - FR LM ObservationResults" +Description: """Section Résultats""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * observationResult 0..* FRLMObservation "Entrée Resultats" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMOrderInformation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMOrderInformation.fsh new file mode 100644 index 0000000..f32ec07 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMOrderInformation.fsh @@ -0,0 +1,11 @@ +Logical: FRLMOrderInformation +Id: fr-lm-order-information +Parent: FRLMSection +Title: "Logical model - FR LM Order Information" +Description: """Section Demande d'examen d'imagerie""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * orderInformation 0..1 FRLMServiceRequest "Entrée Demande d'examen d'imagerie" diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientEducation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientEducation.fsh new file mode 100644 index 0000000..1c786ed --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientEducation.fsh @@ -0,0 +1,12 @@ +Logical: FRLMPatientEducation +Id: fr-lm-patient-education +Parent: FRLMSection +Title: "Logical model - FR LM Patient Education" +Description: """Section Education du patient""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry + * procedure 0..* FRLMProcedure "Entrée Acte" + * observation 0..* FRLMObservation "Entrée Simple observation" + * reference 0..* FRLMAttachment "Entrée Références externes" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientHistory.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientHistory.fsh new file mode 100644 index 0000000..d92b42f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientHistory.fsh @@ -0,0 +1,11 @@ +Logical: FRLMPatientHistory +Id: fr-lm-patient-history +Parent: FRLMSection +Title: "Logical model - FR LM Patient History" +Description: """Section Historique du patient""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 0..0 +* note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientStory.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientStory.fsh new file mode 100644 index 0000000..bd5a547 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMPatientStory.fsh @@ -0,0 +1,11 @@ +Logical: FRLMPatientStory +Id: fr-lm-patient-story +Parent: FRLMSection +Title: "Logical model - FR LM Patient Story" +Description: """Récit du patient""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 0..0 +* note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMPredictableAdverseDrugReaction.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMPredictableAdverseDrugReaction.fsh new file mode 100644 index 0000000..ea84104 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMPredictableAdverseDrugReaction.fsh @@ -0,0 +1,11 @@ +Logical: FRLMPredictableAdverseDrugReaction +Id: fr-lm-predictable-adverse-drug-reaction +Parent: FRLMSection +Title: "Logical model - FR LM Predictable Adverse Drug Reaction" +Description: """Section Effets indesirables""" +Characteristics: #can-be-target + +* subSection 0..0 +* titleSection 1..1 +* entry 1..* + * adverseEvent 1..* FRLMAdverseDrugReaction "Entrée Effet indesirable" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMPresentedForm.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMPresentedForm.fsh new file mode 100644 index 0000000..68f86c9 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMPresentedForm.fsh @@ -0,0 +1,11 @@ +Logical: FRLMPresentedForm +Id: fr-lm-presented-form +Parent: FRLMSection +Title: "Logical model - FR LM Presented Form" +Description: """Section Document PDF-copie""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 1..1 + * attachment 1..1 FRLMAttachment "Entrée Document attaché" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMProblems.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMProblems.fsh new file mode 100644 index 0000000..fa1d47c --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMProblems.fsh @@ -0,0 +1,11 @@ +Logical: FRLMProblems +Id: fr-lm-problems +Parent: FRLMSection +Title: "Logical model - FR LM Problems" +Description: """Section Problems""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * problem 1..* FRLMCondition "Entrée Problème" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMProcedures.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMProcedures.fsh new file mode 100644 index 0000000..12586c3 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMProcedures.fsh @@ -0,0 +1,11 @@ +Logical: FRLMProcedures +Id: fr-lm-procedures +Parent: FRLMSection +Title: "logical model - FR LM Procedures" +Description: """Section Historique des actes""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * procedure 1..* FRLMProcedure "Entrée Acte" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMQRCode.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMQRCode.fsh new file mode 100644 index 0000000..c7e713f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMQRCode.fsh @@ -0,0 +1,10 @@ +Logical: FRLMQRCode +Id: fr-lm-qr-code +Parent: FRLMSection +Title: "Logical model - FR LM QR Code" +Description: """Section Codes à barres""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry + * observationMedia 0..* FRLMObservationMedia "Codes à barres : Entrée Image illustrative" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMReasonForReferral.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMReasonForReferral.fsh new file mode 100644 index 0000000..66a8b73 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMReasonForReferral.fsh @@ -0,0 +1,11 @@ +Logical: FRLMReasonForReferral +Id: fr-lm-reason-for-referral +Parent: FRLMSection +Title: "Logical model - FR LM Reason for referral" +Description: """Section Raison de la recommandation""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry 1..* + * observation 1..1 FRLMObservation "Entrée Simple observation" + * problemes 1..* FRLMCondition "Entrée Problème" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMRecommendation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMRecommendation.fsh new file mode 100644 index 0000000..f31cb68 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMRecommendation.fsh @@ -0,0 +1,11 @@ +Logical: FRLMRecommendation +Id: fr-lm-recommendation +Parent: FRLMSection +Title: "Logical model - FR LM Recommendation" +Description: """Section Recommandation""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry 0..* + * carePlan 0..* FRLMCarePlan "Recommandation sous forme de plan de soins" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMResultData.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMResultData.fsh new file mode 100644 index 0000000..e0ebf93 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMResultData.fsh @@ -0,0 +1,10 @@ +Logical: FRLMResultData +Id: fr-lm-result-data +Parent: FRLMSection +Title: "Logical model - FR LM Compte rendu de biologie de 1er niveau" +Description: """Section Compte rendu de biologie de 1er niveau""" +Characteristics: #can-be-target + +* subSection 0..0 +* entry + * resultatsExamensBiologieMedicale 1..1 FRLMResultatsExamensBiologieMedicale "Entrée Résultats d'examens de biologie médicale" diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMSection.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMSection.fsh new file mode 100644 index 0000000..8503aef --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMSection.fsh @@ -0,0 +1,16 @@ +Logical: FRLMSection +Id: fr-lm-section +Title: "Logical model - FR LM Section" +Description: """Section""" +Characteristics: #can-be-target + +* codeSection 1..1 CodeableConcept "Code de la section" +* titleSection 0..1 string "Titre de la section" +* description 1..1 string "Bloc narratif" +* author[x] 0..* Base "author[x] peut correspondre soit à un professionnel, soit à une organisation, soit à un système." + * authorProfessional 0..* FRLMHealthProfessional "L'auteur est un professionnel de santé" + * authorOrganisation 0..* FRLMOrganisation "L'auteur est une organisation" + * authorDevice 0..* FRLMDevice "L'auteur est un système" +* informant 0..* FRLMInformant "Informateur" +* subSection 0..* Base "Sous-sections" +* entry 0..* Base "Entrées" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMSectionPregnancyHistory.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMSectionPregnancyHistory.fsh new file mode 100644 index 0000000..16cd45f --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMSectionPregnancyHistory.fsh @@ -0,0 +1,13 @@ +Logical: FRLMSectionPregnancyHistory +Id: fr-lm-section-pregnancy-history +Parent: FRLMSection +Title: "Logical model - FR LM Pregnancy History" +Description: """Section Historique des grossesses""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * pregnancyStatus 0..1 FRLMPregnancyStatus "Statut de grossesse" + * pregnancyHistory 0..* FRLMPregnancyHistory "Historique des grossesses. Exemple : nb d'enfants nés vivants, etc…" +* note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMSectionTravelHistory .fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMSectionTravelHistory .fsh new file mode 100644 index 0000000..0214b50 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMSectionTravelHistory .fsh @@ -0,0 +1,12 @@ +Logical: FRLMSectionTravelHistory +Id: fr-lm-section-travel-history +Parent: FRLMSection +Title: "Logical model - FR LM Travel History" +Description: """Section Historique des voyages""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * travelHistory 0..* FRLMTravelHistory "Historique des voyages" + * note 0..1 string "Commentaire" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMSocialHistory.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMSocialHistory.fsh new file mode 100644 index 0000000..b609d81 --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMSocialHistory.fsh @@ -0,0 +1,11 @@ +Logical: FRLMSocialHistory +Id: fr-lm-social-history +Parent: FRLMSection +Title: "Logical model - FR LM SocialHistory" +Description: """Section Habitus et modes de vie""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * observationSocialHistory 0..* FRLMObservationSocialHistory "Entrée Habitus, Mode de vie" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMSupportingInformation.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMSupportingInformation.fsh new file mode 100644 index 0000000..8206dfa --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMSupportingInformation.fsh @@ -0,0 +1,19 @@ +Logical: FRLMSupportingInformation +Id: fr-lm-supporting-information +Parent: FRLMSection +Title: "Logical model - FR LM Supporting Information" +Description: """Section Informations Cliniques""" +Characteristics: #can-be-target + +* subSection 0..0 +* titleSection 1..1 +* entry 1..* + * previousResultsInformation 0..* FRLMObservation "Résultats d'examens antérieurs pertinents" + * historyOfPastIllness 1..1 FRLMObservation "Observation" + * historyOfPastProcedures 1..1 FRLMObservation "Observation" + * contraIndication 0..1 FRLMObservation "Observation" + * condition 0..* FRLMCondition "Problème" + * device 0..* FRLMDeviceUse "Dispositif médical" + * pregnancyStatus 0..1 FRLMPregnancyObservation "Statut grossesse" + * priorMedicationAdministration 0..* FRLMDICOMMedicationAdministration "Produits de santé administré avant l'examen d'imagerie" + * sexForClinicalUse 0..1 CodeableConcept "Sexe Clinique" \ No newline at end of file diff --git a/input/fsh/ModeleLogiqueMetier/sections/FRLMVitalSigns.fsh b/input/fsh/ModeleLogiqueMetier/sections/FRLMVitalSigns.fsh new file mode 100644 index 0000000..50ffe0d --- /dev/null +++ b/input/fsh/ModeleLogiqueMetier/sections/FRLMVitalSigns.fsh @@ -0,0 +1,11 @@ +Logical: FRLMVitalSigns +Id: fr-lm-vital-signs +Parent: FRLMSection +Title: "Logical model - FR LM Vital Signs" +Description: """Section Signes vitaux""" +Characteristics: #can-be-target + +* titleSection 1..1 +* subSection 0..0 +* entry + * observationVitalSign 1..* FRLMObservationVitalSign "Entrée Signes vitaux" \ No newline at end of file diff --git a/input/fsh/Profile-datatype/.gitkeep b/input/fsh/Profile-datatype/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/input/fsh/Profile-resource/FrPatient.fsh b/input/fsh/Profile-resource/FrPatient.fsh deleted file mode 100644 index ffc14a0..0000000 --- a/input/fsh/Profile-resource/FrPatient.fsh +++ /dev/null @@ -1,33 +0,0 @@ -Alias: $SCT = http://snomed.info/sct - -Profile: FrPatient -Parent: Patient -Id: fr-patient -Title: "Patient français" -Description: "Description du patient français" -// Extensions -* extension contains EyeColor named eyecolor 0..1 -  -* extension[eyecolor] MS -* extension[eyecolor] ^short = "Eye color of the patient" - -* identifier ^slicing.discriminator.type = #pattern -* identifier ^slicing.discriminator.path = "system" -* identifier ^slicing.rules = #open -* identifier ^slicing.ordered = false -* identifier ^slicing.description = "Slice based on the identifier.system pattern" - - -* identifier contains INS 1..1 MS -* identifier[INS].system = "urn:oid:1.2.250.1.213.1.4.8"   - - -* gender from ModifiedAdministrativeGender (required) -* gender ^short = "male | female | other" // instead of "male | female | other | unknown" - - - -Extension: EyeColor -Description: "Eye color extension" -* value[x] only CodeableConcept -* valueCodeableConcept from EyeColorVS (required) \ No newline at end of file diff --git a/input/fsh/SearchParameters/.gitkeep b/input/fsh/SearchParameters/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/input/fsh/ValueSets/VS_EyeColor.fsh b/input/fsh/ValueSets/VS_EyeColor.fsh deleted file mode 100644 index 13a27ce..0000000 --- a/input/fsh/ValueSets/VS_EyeColor.fsh +++ /dev/null @@ -1,6 +0,0 @@ -ValueSet: EyeColorVS -Title: "EyeColor Value Set" -Description: "Different eye colors." -* $SCT#405738005 "Blue color" -* $SCT#371254008 "Brown color" -* $SCT#54662009 "Green color" \ No newline at end of file diff --git a/input/fsh/ValueSets/VS_MeltingPot.fsh b/input/fsh/ValueSets/VS_MeltingPot.fsh deleted file mode 100644 index ff33829..0000000 --- a/input/fsh/ValueSets/VS_MeltingPot.fsh +++ /dev/null @@ -1,7 +0,0 @@ -ValueSet: MeltingPotVS -Title: "Melting Pot Value Set" -Description: "Melting Pot Value Set." -* $SCT#405738005 "Blue color (qualifier value)" -* $SCT#371254008 // Display rajouté tout seul -* competence-code-system#C01 // Display et définition rajoutés tout seul -* include codes from system type-carte-code-system // Display et définition rajoutés tout seul \ No newline at end of file diff --git a/input/fsh/ValueSets/VS_ModifiedAdministrativeGender.fsh b/input/fsh/ValueSets/VS_ModifiedAdministrativeGender.fsh deleted file mode 100644 index d4aa314..0000000 --- a/input/fsh/ValueSets/VS_ModifiedAdministrativeGender.fsh +++ /dev/null @@ -1,5 +0,0 @@ -ValueSet: ModifiedAdministrativeGender -Title: "ModifiedAdministrativeGender" -Description: "AdministrativeGender without unknown code" -* include codes from system http://hl7.org/fhir/administrative-gender -* exclude http://hl7.org/fhir/administrative-gender#unknown \ No newline at end of file diff --git a/input/fsh/ValueSets/VS_TypeCarte.fsh b/input/fsh/ValueSets/VS_TypeCarte.fsh deleted file mode 100644 index 70ffd32..0000000 --- a/input/fsh/ValueSets/VS_TypeCarte.fsh +++ /dev/null @@ -1,4 +0,0 @@ -ValueSet: TypeCarteVS -Title: "Type Carte Value Set" -Description: "Type Carte Value Set." -* include codes from system type-carte-code-system // Display et définition rajoutés tout seul \ No newline at end of file diff --git a/input/pagecontent/StructureDefinition-Auteur-intro.md b/input/pagecontent/StructureDefinition-Auteur-intro.md new file mode 100644 index 0000000..0baa1c3 --- /dev/null +++ b/input/pagecontent/StructureDefinition-Auteur-intro.md @@ -0,0 +1,10 @@ +**Voici les cas d'usage des documents et leurs auteurs** : + +| Cas d'usage | Auteur(s) du document | Structure de l'auteur | +|-------------|----------------------|-----------------------| +| Création d'un document par un professionnel sur son logiciel professionnel | Professionnel | Structure | +| Création d'un document patient par un professionnel sur son logiciel professionnel pour le compte du patient | Professionnel | Structure | +| Création d'un document patient par le patient | Patient | non utilisé | +| Création d'un document par un système (dispositif, automate, …) de structure (ES, …) | Système de structure | Structure | +| Création d'un document par un Service numérique référencé (SNR) | SNR | Editeur | +| Création d'un document par le DP | CNOP/DP | CNOP | diff --git a/input/pagecontent/annexe-downloads.md b/input/pagecontent/annexe-downloads.md deleted file mode 100644 index be686e0..0000000 --- a/input/pagecontent/annexe-downloads.md +++ /dev/null @@ -1,30 +0,0 @@ -### Téléchargement - -L'implementation guide contient un package [téléchargeable ici](package.tgz) permettant de valider les instances par rapport aux profils qu'il contient. - -Pour cela, il suffit de télécharger le [package.tgz](package.tgz) et l'importer dans un serveur, par exemple sur hapi en suivant ce [script python](https://github.com/nmdp-bioinformatics/igloader) open source. - -Ensemble des ressources téléchargeables : - -* [L'ensemble de la specification (zip)](../full-ig.zip) -* [Package (tgz)](../package.tgz) - -#### Définitions - -* [Définitions JSON (zip)](../definitions.json.zip) -* [Définitions XML (zip)](../definitions.xml.zip) -* [Définitions Turtle (zip)](../definitions.ttl.zip) - -#### Exemples - -* [Exemples XML (zip)](../examples.xml.zip) -* [Exemples JSON (zip)](../examples.json.zip) -* [Exemples Turtle (zip)](../examples.ttl.zip) - -### Usage - -Ce guide d'implémentation contient les profils qui définissent la structure des instances FHIR attendues. - -Les serveurs ainsi que les clients qui envoient de la donnée aux serveurs devront s'assurer de la conformité des ressources envoyées par rapport aux profils indiqués dans le guide ainsi qu'à la spécification FHIR de base. Pour cela, il est possible d'utiliser le validateur officiel [FHIR Validator](https://confluence.hl7.org/display/FHIR/Using+the+FHIR+Validator) qui est également accessible [en ligne](https://validator.fhir.org/). - -Pour plus d'information sur la validation des instances de ressource contre un profil issu de cette spécification, consulter la documentation de l'opération [$validate](https://www.hl7.org/fhir/resource-operation-validate.html) et la [documentation de l'ANS](https://interop.esante.gouv.fr/ig/documentation/valider_res.html). diff --git a/input/pagecontent/autres_ressources.md b/input/pagecontent/autres_ressources.md index ba4b669..dd6d10c 100644 --- a/input/pagecontent/autres_ressources.md +++ b/input/pagecontent/autres_ressources.md @@ -1,3 +1,3 @@ -* [Téléchargements et usage](./downloads.html) -* [Spécifications FHIR]({{site.data.fhir.path}}index.html) -* [Site de l'ANS](https://esante.gouv.fr/) +* [Téléchargements et usage](./downloads.html) +* [Spécifications FHIR]({{site.data.fhir.path}}index.html) +* [Site de l'ANS](https://esante.gouv.fr/) diff --git a/input/pagecontent/change-log.md b/input/pagecontent/change-log.md deleted file mode 100644 index 4ea7e23..0000000 --- a/input/pagecontent/change-log.md +++ /dev/null @@ -1,9 +0,0 @@ -### version xxx - -**Release xxx de l'Implementation Guide FHIR xxx.** - -URL : - -[Modifications apportées dans cette release](https://github.com/ansforge/xxx/milestone/10?closed=1) : - -* [narratif] modification xxx [numéro d'issue](https://github.com/ansforge/xxx/issues/numéro d'issue) diff --git a/input/pagecontent/corpsDocument.md b/input/pagecontent/corpsDocument.md new file mode 100644 index 0000000..0742527 --- /dev/null +++ b/input/pagecontent/corpsDocument.md @@ -0,0 +1,4 @@ +* [Modèle logique métier](./StructureDefinition-fr-lm-corps-document.html) +* [CDA](https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-corps.html) +* [FHIR](https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-corps.html) +* [Mapping Métier/CDA/FHIR](./mappingCDA-FHIR-corps.html) diff --git a/input/pagecontent/downloads.md b/input/pagecontent/downloads.md new file mode 100644 index 0000000..c0579aa --- /dev/null +++ b/input/pagecontent/downloads.md @@ -0,0 +1,22 @@ +L'implementation guide contient un package [téléchargeable ici](../package.tgz) permettant de valider les instances par rapport aux profils qu'il contient. + +Pour cela, il suffit de télécharger le [package.tgz](../package.tgz) et l'importer dans un serveur, par exemple sur hapi en suivant ce [script python](https://github.com/nmdp-bioinformatics/igloader) open source. + +Vous pourrez ensuite utiliser l'opération [$validate](https://www.hl7.org/fhir/resource-operation-validate.html) pour valider les instances de ressource contre un profil issu de cette spécification. + +Ensemble des ressources téléchargeables : + +* [L'ensemble de la specification (zip)](../full-ig.zip) +* [Package (tgz)](../package.tgz) + +### Définitions + +* [Définitions JSON (zip)](../definitions.json.zip) +* [Définitions XML (zip)](../definitions.xml.zip) +* [Définitions Turtle (zip)](../definitions.ttl.zip) + +### Exemples + +* [Exemples XML (zip)](../examples.xml.zip) +* [Exemples JSON (zip)](../examples.json.zip) +* [Exemples Turtle (zip)](../examples.ttl.zip) diff --git a/input/pagecontent/enteteDocument.md b/input/pagecontent/enteteDocument.md new file mode 100644 index 0000000..d14229a --- /dev/null +++ b/input/pagecontent/enteteDocument.md @@ -0,0 +1,4 @@ +* [Modèle logique métier](./StructureDefinition-fr-lm-header-document.html) +* [CDA](https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-entete.html) +* [FHIR](https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-entete.html) +* [Mapping Métier/CDA/FHIR](./mappingCDA-FHIR-entete.html) diff --git a/input/pagecontent/exigencesSpecifiques.md b/input/pagecontent/exigencesSpecifiques.md new file mode 100644 index 0000000..62c4edb --- /dev/null +++ b/input/pagecontent/exigencesSpecifiques.md @@ -0,0 +1,67 @@ +### Exigences spécifiques aux documents dématérialisés + +La dématérialisation d’un document médical ou médico-social à des fins de partage (par exemple dans Mon espace santé) ou d’échange (via messagerie sécurisée de santé) pour améliorer la continuité et la coordination des soins est soumise à un certain nombre d'exigences : + +* **Persistance** : Le document dématérialisé doit rester inaltérable et accessible pour une période dont la durée est fonction du cadre réglementaire et des règles mises en place par la communauté de soins. +* **Administration** : La structure émettrice du document dématérialisé doit en assurer la gestion et le suivi, en mettant à disposition les éventuelles mises à jour. +* **Responsabilité** : Le document dématérialisé doit être endossé par le responsable – personne physique assumant l’entière responsabilité du contenu du document. +* **Cohérence** : Le document embarque le contexte (métier et de gestion) de son contenu. +* **Intégralité** : Contenu et contexte restent indissociables. +* **Lisibilité** : Le document dématérialisé doit pouvoir être restitué aux personnes habilitées à le lire. + +Ces exigences sont globales et ne sont pas spécifiques à la France. + +### Exigences spécifiques au contexte français + +Les spécifications françaises définies dans le CI-SIS des documents dématérialisés portent des exigences complémentaires et spécifiques au contexte français : + +#### Identification des patients + +Dans les documents dématérialisés, le patient doit être clairement identifié. + +Selon le cas d'usage, cette identification utilise l'Identité Nationale de Santé (INS) et/ou d'autres données identifiantes (identifiants et informations d'identité). + +**L'identité Nationale de santé (INS)** + +L’utilisation de l’Identité Nationale de Santé (INS) pour référencer les données de santé est obligatoire depuis le 1er janvier 2021. + +Elle est constituée : + +* du **matricule INS** qui correspond au NIR (Numéro d’Identification au Répertoire des personnes physiques) ou au NIA (Numéro Identifiant Attente) de l’individu +* des cinq traits INS : **nom de naissance**, **prénom(s) de naissance**, **date de naissance**, **sexe**, **COG du lieu de naissance**. + +L'INS a plusieurs objectifs : + +* Elle contribue à la qualité de la prise en charge et à la sécurité des soins. +* Elle permet aux usagers de disposer d’une identité unique et pérenne +* Elle permet de faciliter l’échange et le partage des données de santé entre l’ensemble des acteurs intervenant dans la prise en charge sanitaire et le suivi médico-social de la personne. + +En pratique, l'INS n'est pas toujours obligatoire dans les documents médicaux et médico-sociaux. Mais elle est obligatoire dès lors que le document est mis en partage (dans Mon espace santé notamment). + +Lorsqu'elle est facultative, par exemple dans un document uniquement échangé par messagerie sécurisée de santé, il est quand même préférable de la fournir dès lors que cette INS est qualifiée. + +Pour en savoir plus : [https://esante.gouv.fr/produits-services/referentiel-ins](https://esante.gouv.fr/produits-services/referentiel-ins) + +**Autres identifiants du patient** + +Lors de la prise en charge ou du suivi du patient, les organisations (et leurs professionnels) peuvent utiliser des données d'identification locales (identifiant interne à l'organisation). +Cette pratique, mise en œuvre avant l'arrivée de l'INS, va perdurer encore tant que le déploiement de l'INS (et notamment la qualification de l'INS) ne sera pas totalement généralisé. +Ces identifiants locaux peuvent être transmis dans les documents dématérialisées, y compris lorsque l'INS est obligatoire. + +Par exemple : une synthèse médicale rédigée par le médecin traitant du patient exerçant dans un Centre de santé et mise en partage dans le DMP portera l'INS du patient (obligatoire pour le DMP) et l'identifiant local du patient dans le Centre de santé (facultatif). + +#### Identification des personnes physiques + +**Les professionnels des secteurs sanitaire et médico-social** référencés dans les documents doivent être identifiées à partir des référentiels nationaux publiés par l'ANS. + +**Les personnes physiques qui ne sont pas répertoriés dans les référentiels nationaux** publiés par l'ANS peuvent ne pas avoir d'identifiant ou avoir un identifiant spécifique. Dans ce dernier cas, il convient de bien identifier l'autorité ayant affecté cet identifiant spécifique. + +#### Identification des structures des secteurs sanitaire et médico-social + +**Les structures des secteurs sanitaire et médico-social** référencées dans les documents doivent être identifiées à partir des référentiels nationaux publiés par l'ANS. + +**Les structures (personnes morales) qui ne sont pas répertoriés dans les référentiels nationaux** publiés par l'ANS peuvent ne pas avoir d'identifiant ou avoir un identifiant spécifique. Dans ce dernier cas, il convient de bien identifier l'autorité ayant affecté cet identifiant spécifique. + +#### Terminologies de références + +Voir [https://ansforge.github.io/IG-terminologie-de-sante/ig/main/index.html](https://ansforge.github.io/IG-terminologie-de-sante/ig/main/index.html) diff --git a/input/pagecontent/introduction.md b/input/pagecontent/introduction.md new file mode 100644 index 0000000..41020d7 --- /dev/null +++ b/input/pagecontent/introduction.md @@ -0,0 +1,12 @@ +Ce guide constitue les spécifications françaises des documents médicaux et médico-sociaux. + +Il s'appuie sur les standards internationaux CDA et FHIR. Selon le cas d'usage un document se conformera à l'un ou l'autre de ces deux standards. + +Ce guide ne remplace pas les standards, il vient en complément de ces standards en fournissant : + +* des précisions et des conseils pour la mise en œuvre, +* des exigences spécifiques à l'implémentation en France, par exemple sur l'identification du patient (INS), l'identification des professionnels et des organisations, les terminologies et jeux de valeurs utilisés. + +S'il existe des différences entre les standards et ce guide, les standards prévalent. + +Les spécifications françaises des documents dématérialisés définies dans le CI-SIS s'imposent à la communauté des acteurs partageant ou échangeant des documents électroniques. diff --git a/input/pagecontent/mappingCDA-FHIR-corps.md b/input/pagecontent/mappingCDA-FHIR-corps.md new file mode 100644 index 0000000..94f8054 --- /dev/null +++ b/input/pagecontent/mappingCDA-FHIR-corps.md @@ -0,0 +1,311 @@ +Liste des ConceptMap détaillant le mapping entre les éléments du modèle métier, du CDA et de FHIR. + +### Mapping des sections entre : Modèle métier / CDA / FHIR +{% sql { +"query": " +WITH AllGroups AS ( + -- Récupère tous les groupes de tous les ConceptMap et leur index + SELECT + r.id AS cm_id, + r.title AS Title, + r.Web AS Web, + g.key AS group_index, + g.value AS group_json, + json_extract(g.value, '$.source') AS grp_source, + json_extract(g.value, '$.target') AS grp_target + FROM Resources r + JOIN json_each(r.json, '$.group') g + WHERE r.Type = 'ConceptMap' AND Description LIKE 'Mapping des éléments%' + AND Description LIKE '%vers la section%' +), + +ClassifiedGroups AS ( + -- Classer chaque groupe en METIER / CDA / FHIR + SELECT + cm_id, + Title, + Web, + group_index, + group_json, + grp_source, + grp_target, + CASE + WHEN grp_source LIKE '%fr-lm%' THEN 'METIER' + WHEN grp_source LIKE '%cda%' + OR grp_target LIKE '%cda%' + OR grp_source LIKE '%fr-cda%' + OR grp_target LIKE '%fr-cda%' THEN 'CDA' + ELSE 'FHIR' + END AS grp_type + FROM AllGroups +), + +Elements AS ( + -- Extraire éléments + targets de chaque groupe classé + SELECT + cg.cm_id, + cg.Title, + cg.Web, + cg.group_index, + cg.grp_type, + e.key AS elem_index, + json_extract(e.value, '$.code') AS elem_code, + json_extract(t.value, '$.code') AS elem_target_code + FROM ClassifiedGroups cg + JOIN json_each(cg.group_json, '$.element') e + JOIN json_each(e.value, '$.target') t +), + +MetierToCDA AS ( + SELECT + cm_id, + Title, + Web, + group_index, + elem_index, + elem_code AS Metier, + elem_target_code AS CDA + FROM Elements + WHERE grp_type = 'METIER' +), + +CDAtoFHIR AS ( + SELECT + cm_id, + elem_index, + elem_code AS CDA, + elem_target_code AS FHIR + FROM Elements + WHERE grp_type = 'CDA' +), + +FinalMapping AS ( + -- Join Metier->CDA with CDA->FHIR + SELECT + m.Web, + m.Title, + m.group_index, + m.elem_index, + m.Metier, + m.CDA, + cf.FHIR + FROM MetierToCDA m + LEFT JOIN CDAtoFHIR cf + ON m.cm_id = cf.cm_id + AND m.CDA = cf.CDA +) + +SELECT + CASE + WHEN Metier NOT LIKE '%.%' THEN + '**' || Metier || '**' + + WHEN (LENGTH(Metier) - LENGTH(REPLACE(Metier, '.', ''))) > 2 THEN + -- position du 1er point + substr(Metier, 1, + instr(Metier, '.') + + instr(substr(Metier, instr(Metier, '.') + 1), '.') + ) + || '\n' || + -- texte après le 2ème point + substr( + Metier, + instr(Metier, '.') + + instr(substr(Metier, instr(Metier, '.') + 1), '.') + 1 + ) + ELSE Metier +END AS Metier, + CASE + WHEN CDA NOT LIKE '%@%' + AND CDA NOT LIKE '%.%' THEN + '**' || CDA || '**' + + WHEN (LENGTH(CDA) - LENGTH(REPLACE(CDA, '.', ''))) > 2 THEN + -- position du 1er point + substr(CDA, 1, + instr(CDA, '.') + + instr(substr(CDA, instr(CDA, '.') + 1), '.') + ) + || '\n' || + -- texte après le 2ème point + substr( + CDA, + instr(CDA, '.') + + instr(substr(CDA, instr(CDA, '.') + 1), '.') + 1 + ) + ELSE CDA + END AS CDA, + CASE + WHEN FHIR NOT LIKE '%.%' THEN '**' || FHIR || '**' + ELSE FHIR + END AS FHIR, + Title AS \"Titre du profil\", + Web +FROM FinalMapping +ORDER BY + Title, + group_index, + elem_index +", +"class" : "lines", +"columns" : [ + { "title": "Modèle métier", "type": "markdown", "source": "Metier" }, + { "title": "CDA", "type": "markdown", "source": "CDA" }, + { "title": "FHIR", "type": "markdown", "source": "FHIR" } +] +} %} + + +### Mapping des entrées entre : Modèle métier / CDA / FHIR +{% sql { +"query": " +WITH AllGroups AS ( + -- Récupère tous les groupes de tous les ConceptMap et leur index + SELECT + r.id AS cm_id, + r.title AS Title, + r.Web AS Web, + g.key AS group_index, + g.value AS group_json, + json_extract(g.value, '$.source') AS grp_source, + json_extract(g.value, '$.target') AS grp_target + FROM Resources r + JOIN json_each(r.json, '$.group') g + WHERE r.Type = 'ConceptMap' AND Description LIKE 'Mapping des éléments%' +), + +ClassifiedGroups AS ( + -- Classer chaque groupe en METIER / CDA / FHIR + SELECT + cm_id, + Title, + Web, + group_index, + group_json, + grp_source, + grp_target, + CASE + WHEN grp_source LIKE '%fr-lm%' THEN 'METIER' + WHEN grp_source LIKE '%cda%' + OR grp_target LIKE '%cda%' + OR grp_source LIKE '%fr-cda%' + OR grp_target LIKE '%fr-cda%' THEN 'CDA' + ELSE 'FHIR' + END AS grp_type + FROM AllGroups +), + +Elements AS ( + -- Extraire éléments + targets de chaque groupe classé + SELECT + cg.cm_id, + cg.Title, + cg.Web, + cg.group_index, + cg.grp_type, + e.key AS elem_index, + json_extract(e.value, '$.code') AS elem_code, + json_extract(t.value, '$.code') AS elem_target_code + FROM ClassifiedGroups cg + JOIN json_each(cg.group_json, '$.element') e + JOIN json_each(e.value, '$.target') t +), + +MetierToCDA AS ( + SELECT + cm_id, + Title, + Web, + group_index, + elem_index, + elem_code AS Metier, + elem_target_code AS CDA + FROM Elements + WHERE grp_type = 'METIER' +), + +CDAtoFHIR AS ( + SELECT + cm_id, + elem_index, + elem_code AS CDA, + elem_target_code AS FHIR + FROM Elements + WHERE grp_type = 'CDA' +), + +FinalMapping AS ( + -- Join Metier->CDA with CDA->FHIR + SELECT + m.Web, + m.Title, + m.group_index, + m.elem_index, + m.Metier, + m.CDA, + cf.FHIR + FROM MetierToCDA m + LEFT JOIN CDAtoFHIR cf + ON m.cm_id = cf.cm_id + AND m.CDA = cf.CDA +) + +SELECT + CASE + WHEN Metier NOT LIKE '%.%' THEN + '**' || Metier || '**' + + WHEN (LENGTH(Metier) - LENGTH(REPLACE(Metier, '.', ''))) > 2 THEN + -- position du 1er point + substr(Metier, 1, + instr(Metier, '.') + + instr(substr(Metier, instr(Metier, '.') + 1), '.') + ) + || '\n' || + -- texte après le 2ème point + substr( + Metier, + instr(Metier, '.') + + instr(substr(Metier, instr(Metier, '.') + 1), '.') + 1 + ) + ELSE Metier +END AS Metier, + CASE + WHEN CDA NOT LIKE '%@%' + AND CDA NOT LIKE '%.%' THEN + '**' || CDA || '**' + + WHEN (LENGTH(CDA) - LENGTH(REPLACE(CDA, '.', ''))) > 2 THEN + -- position du 1er point + substr(CDA, 1, + instr(CDA, '.') + + instr(substr(CDA, instr(CDA, '.') + 1), '.') + ) + || '\n' || + -- texte après le 2ème point + substr( + CDA, + instr(CDA, '.') + + instr(substr(CDA, instr(CDA, '.') + 1), '.') + 1 + ) + ELSE CDA + END AS CDA, + CASE + WHEN FHIR NOT LIKE '%.%' THEN '**' || FHIR || '**' + ELSE FHIR + END AS FHIR, + Title AS \"Titre du profil\", + Web +FROM FinalMapping +ORDER BY + Title, + group_index, + elem_index +", +"class" : "lines", +"columns" : [ + { "title": "Modèle métier", "type": "markdown", "source": "Metier" }, + { "title": "CDA", "type": "markdown", "source": "CDA" }, + { "title": "FHIR", "type": "markdown", "source": "FHIR" } +] +} %} \ No newline at end of file diff --git a/input/pagecontent/mappingCDA-FHIR-entete.md b/input/pagecontent/mappingCDA-FHIR-entete.md new file mode 100644 index 0000000..3c20121 --- /dev/null +++ b/input/pagecontent/mappingCDA-FHIR-entete.md @@ -0,0 +1,181 @@ +Liste des ConceptMap détaillant le mapping entre les éléments du modèle métier, du CDA et de FHIR. + +### Mapping entre les éléments de l'entête : Modèle métier / CDA / FHIR + + + + + +{% sql { +"query": " +WITH AllGroups AS ( + -- Récupère tous les groupes de tous les ConceptMap et leur index + SELECT + r.id AS cm_id, + r.name AS Name, + r.Web AS Web, + g.key AS group_index, + g.value AS group_json, + json_extract(g.value, '$.source') AS grp_source, + json_extract(g.value, '$.target') AS grp_target + FROM Resources r + JOIN json_each(r.json, '$.group') g + WHERE r.Type = 'ConceptMap' AND Description LIKE 'Ce ConceptMap%' +), + +ClassifiedGroups AS ( + -- Classer chaque groupe en METIER / CDA / FHIR + SELECT + cm_id, + Name, + Web, + group_index, + group_json, + grp_source, + grp_target, + CASE + WHEN grp_source LIKE '%fr-lm%' THEN 'METIER' + WHEN grp_source LIKE '%cda%' + OR grp_target LIKE '%cda%' + OR grp_source LIKE '%fr-cda%' + OR grp_target LIKE '%fr-cda%' THEN 'CDA' + ELSE 'FHIR' + END AS grp_type + FROM AllGroups +), + +Elements AS ( + -- Extraire éléments + targets de chaque groupe classé + SELECT + cg.cm_id, + cg.Name, + cg.Web, + cg.group_index, + cg.grp_type, + e.key AS elem_index, + json_extract(e.value, '$.code') AS elem_code, + json_extract(t.value, '$.code') AS elem_target_code + FROM ClassifiedGroups cg + JOIN json_each(cg.group_json, '$.element') e + JOIN json_each(e.value, '$.target') t +), + +MetierToCDA AS ( + SELECT + cm_id, + Name, + Web, + group_index, + elem_index, + elem_code AS Metier, + elem_target_code AS CDA + FROM Elements + WHERE grp_type = 'METIER' +), + +CDAtoFHIR AS ( + SELECT + cm_id, + elem_index, + elem_code AS CDA, + elem_target_code AS FHIR + FROM Elements + WHERE grp_type = 'CDA' +), + +FinalMapping AS ( + -- Join Metier->CDA with CDA->FHIR + SELECT + m.Web, + m.Name, + m.group_index, + m.elem_index, + m.Metier, + m.CDA, + cf.FHIR + FROM MetierToCDA m + LEFT JOIN CDAtoFHIR cf + ON m.cm_id = cf.cm_id + AND m.CDA = cf.CDA +) + +SELECT + CASE + WHEN Metier NOT LIKE '%.%' THEN + '**' || Metier || '**' + + WHEN (LENGTH(Metier) - LENGTH(REPLACE(Metier, '.', ''))) > 2 THEN + -- position du 1er point + substr(Metier, 1, + instr(Metier, '.') + + instr(substr(Metier, instr(Metier, '.') + 1), '.') + ) + || '\n' || + -- texte après le 2ème point + substr( + Metier, + instr(Metier, '.') + + instr(substr(Metier, instr(Metier, '.') + 1), '.') + 1 + ) + ELSE Metier +END AS Metier, + CASE + WHEN CDA NOT LIKE '%@%' + AND CDA NOT LIKE '%.%' THEN + '**' || CDA || '**' + + WHEN (LENGTH(CDA) - LENGTH(REPLACE(CDA, '.', ''))) > 2 THEN + -- position du 1er point + substr(CDA, 1, + instr(CDA, '.') + + instr(substr(CDA, instr(CDA, '.') + 1), '.') + ) + || '\n' || + -- texte après le 2ème point + substr( + CDA, + instr(CDA, '.') + + instr(substr(CDA, instr(CDA, '.') + 1), '.') + 1 + ) + ELSE CDA + END AS CDA, + CASE + WHEN FHIR NOT LIKE '%.%' THEN '**' || FHIR || '**' + ELSE FHIR + END AS FHIR, + Name AS \"Titre du profil\", + Web +FROM FinalMapping +ORDER BY + Name, + group_index, + elem_index +", +"class" : "lines", +"columns" : [ + { "title": "Modèle métier", "type": "markdown", "source": "Metier" }, + { "title": "CDA", "type": "markdown", "source": "CDA" }, + { "title": "FHIR", "type": "markdown", "source": "FHIR" } +] +} %} diff --git a/input/pagecontent/mappingCDA-FHIR-struc-gen.md b/input/pagecontent/mappingCDA-FHIR-struc-gen.md new file mode 100644 index 0000000..755ee5d --- /dev/null +++ b/input/pagecontent/mappingCDA-FHIR-struc-gen.md @@ -0,0 +1,76 @@ +### Principe général + +Le mapping CDA / FHIR présenté ici s'appuie sur l'IG [FHIR Clinical Documents](https://hl7.org/fhir/uv/fhir-clinical-document/2024Sep/mapping.html) réalisé par HL7. + +Il est adapté pour intégrer le modèle métier (1ère colonne), indépendant de toute syntaxe. + +| Donnée métier | Élément CDA | Card | Élément FHIR | Card | +|--------------|------------|------|--------------|------| +| **Document** | ClinicalDocument | | Bundle | | +| **Entête du document** | | | | | +| Identifiant unique du document | id | [1..1] | Bundle.identifier | [1..1] | +| | | | **Bundle.entry 1 de type Composition** | [1..1] | +| Modèle du document et version du modèle | templateId / extension | [1..1] | Composition.meta.profile | [1..1] | +| Type de document | code | [1..1] | Composition.type | [1..1] | +| Titre du document | title | [1..1] | Composition.title | [1..1] | +| Date de création | effectiveTime | [1..1] | Composition.date | [1..1] | +| Niveau de confidentialité | confidentialityCode | [1..1] | Composition.confidentiality | [1..1] | +| Langue | languageCode | [1..1] | Composition.language | [1..1] | +| Identifiant lot de versions | setId | [1..1] | Composition.identifier | [1..1] | +| Version du document | versionNumber | [1..1] | Composition.extension:R5-Composition-version | [1..1] | +| Statut du document | | | Composition.status | [1..1] | +| Patient / Usager | recordTarget | [1..1] | Composition.subject | [1..1] | +| Auteur | author | [1..*] | Composition.author | [1..*] | +| Opérateur de saisie | dataEnterer | [0..1] | Composition.extension:data-enterer | [0..1]| +| Informateur | informant | [0..*] | Composition.extension:informant | [0..*]| +| Informateur : Personne de confiance, Personne à prévenir en cas d'urgence, Aidant, Aidé | informant | [0..*] | Composition.subject (ressource Patient / Patient.contact) | [0..*] | +| Structure chargée de la conservation du document | custodian | [1..1] | Composition.custodian |[1..1] | +| Destinataire prévu du document | informationRecipient | [0..*] | Composition.extension:informationRecipient | [0..*] | +| Responsable du document | legalAuthenticator | [1..1] | Composition.attester (legal) | [1..1] | +| Professionnel attestant la validité du contenu du document | authenticator | [0..*] | Composition.attester (professional) | [0..*] | +| Autres personnes / structures impliquées | participant | [0..*] | Composition.extension:participant | [0..*] | +| Médecin traitant | participant | [0..*] | Composition.subject (ressource Patient / Patient.generalPractitioner) | [0..*] | +| Association du document à une prescription | inFulfillmentOf | [0..*] | Composition.extension:order | [0..*] | +| Évènement documenté | documentationOf | [1..*] | Composition.event | [1..*] | +| Document de référence | relatedDocument | [0..1] | Composition.relatesTo | [0..1] | +| Consentement associé au document | authorization | [0..*] | Composition.extension:consent | [0..*]| +| Association du document à une prise en charge | componentOf | [1..1] | Composition.encounter | [1..1] | +| **Corps du document** | component / structuredBody ou nonXMLBody | | | | +| Sections | section | [1..*] | Composition.section | [1..*] | +| | | | **Bundle.entry suivantes** | [0..*] | +| | | | ressources référencées dans la Composition | [0..*] | + +**Le mapping présenté est un principe général** qui permet de faire le lien entre les données métier, les informations CDA et les informations FHIR. Ce mapping ne montre pas la complexité des mappings possibles pour le corps d'un document structuré (CDA R2 N3) avec la multitude de sections et d'entrées existant en CDA. + +* Le mapping détaillé de l'entête est fourni dans le menu [Entête d'un document / Mapping CDA/FHIR](mappingCDA-FHIR-entete.html). +* Le mapping détaillé de sections et entrées est fourni dans le menu [Corps d'un document / Mapping CDA/FHIR](mappingCDA-FHIR-corps.html). + +**Mapping d'un CDA R2 niveau 1** : le corps d'un CDA R2 niveau 1 (``) est repris en FHIR dans une unique **Composition.section** contenant une **Composition.section.entry** (de type Binary) qui fait référence au PDF. + +**Mapping d'un CDA R2 niveau 3** : le corps d'un CDA R2 niveau 3 (``) est composé de sections qui sont reprises en FHIR dans des **Composition.section**. + +### Conversion CDA / FHIR + +La conversion d'un document CDA vers FHIR (ou inversement) est possible et peut être envisagée dans certains cas d'usage. + +Le mapping présenté doit permettre de développer des outils de conversion automatiques. + +Il convient cependant de noter quelques remarques préalables. + +**Conversion par modèle et pas par type de modèle** : + +Si l’entête CDA peut assez simplement être convertie dans la ressource Composition (et les ressources associées), la conversion des sections et entrées est beaucoup complexe et doit se faire modèle par modèle et pas par type de section ou type d'entrée. + +Par exemple, un outil de conversion ne doit pas convertir toutes les entrées CDA de type Observation de la même manière. L'outil de conversion doit convertir spécifiquement chaque entrée de type observation. Par exemple, un convertisseur pour FR-Criticite, un autre pour FR-Certitude, etc… + +**Parties narratives** (pour consultation par un humain) : + +En FHIR, seule la section de 1er niveau ne peut contenir une partie narrative. En CDA, chaque section et sous-section peut contenir une partie narrative. Lorsqu'il n'y pas de sous-section, la conversion de la partie narrative sera simple (section CDA section FHIR). En revanche, s'il y a des sous-sections avec des parties narratives, les convertisseurs devront prévoir une solution permettant de reprendre correctement ses parties narratives. + +**Eléments narratifs référencés dans la partie structurée** : + +FHIR et CDA permettent d’établir des liens (via des références) entre du texte de la partie narrative et des éléments spécifiques dans la partie structurée d’un document. Si l’on effectue une conversion entre CDA et FHIR (dans les 2 sens), ces liens doivent également être convertis. Cependant, cette conversion est compliquée par le fait que la granularité à laquelle les liens peuvent être fait est différente entre les deux spécifications. En CDA, les liens ne peuvent être mis que sur un ou deux types d’éléments. En FHIR, les liens peuvent être mis à n’importe quel niveau. La conversion de CDA vers FHIR sera possible, mais il y aura une perte d’information lors de la conversion de FHIR vers CDA. + +**Syntaxe de la partie narrative** : + +CDA définit sa propre syntaxe XML pour le contenu des parties narratives, vaguement basée sur HTML. FHIR utilise un ensemble limité de XHTML qui est un peu plus expressif que le balisage CDA. Les conversions de FHIR vers CDA devront tenir compte de ces contraintes. diff --git a/input/pagecontent/annexe-securite.md b/input/pagecontent/securite.md similarity index 100% rename from input/pagecontent/annexe-securite.md rename to input/pagecontent/securite.md diff --git a/input/pagecontent/spec-fonctionnelle-alimentation.md b/input/pagecontent/spec-fonctionnelle-alimentation.md deleted file mode 100644 index d8bd577..0000000 --- a/input/pagecontent/spec-fonctionnelle-alimentation.md +++ /dev/null @@ -1,3 +0,0 @@ -### Alimentation - -Description fonctionnelle de l'alimentation \ No newline at end of file diff --git a/input/pagecontent/spec-fonctionnelle-intro.md b/input/pagecontent/spec-fonctionnelle-intro.md deleted file mode 100644 index 75404c4..0000000 --- a/input/pagecontent/spec-fonctionnelle-intro.md +++ /dev/null @@ -1,3 +0,0 @@ -### Introduction spécifications fonctionnelles - -Introduction specs fonctionnelles \ No newline at end of file diff --git a/input/pagecontent/spec-technique-flux-alimentation.md b/input/pagecontent/spec-technique-flux-alimentation.md deleted file mode 100644 index c3f4ceb..0000000 --- a/input/pagecontent/spec-technique-flux-alimentation.md +++ /dev/null @@ -1,3 +0,0 @@ -### Spécifications techniques du flux d'alimentation - -Description technique du flux d'alimentation \ No newline at end of file diff --git a/input/pagecontent/spec-technique-flux-consommation.md b/input/pagecontent/spec-technique-flux-consommation.md deleted file mode 100644 index 469b532..0000000 --- a/input/pagecontent/spec-technique-flux-consommation.md +++ /dev/null @@ -1,3 +0,0 @@ -### Spécifications techniques du flux de consommation - -Description technique du flux de consommation \ No newline at end of file diff --git a/input/pagecontent/spec-technique-intro.md b/input/pagecontent/spec-technique-intro.md deleted file mode 100644 index 96f185e..0000000 --- a/input/pagecontent/spec-technique-intro.md +++ /dev/null @@ -1,3 +0,0 @@ -### Introduction technique - -Cette section présente les spécifications techniques du guide d'implémentation. diff --git a/input/pagecontent/spec-technique-vue-ensemble.md b/input/pagecontent/spec-technique-vue-ensemble.md deleted file mode 100644 index 490d0df..0000000 --- a/input/pagecontent/spec-technique-vue-ensemble.md +++ /dev/null @@ -1,3 +0,0 @@ -### Vue d'ensemble des spécifications techniques - -Vue d'ensemble des spécifications techniques \ No newline at end of file diff --git a/input/pagecontent/structureGenerale.md b/input/pagecontent/structureGenerale.md new file mode 100644 index 0000000..0c0b6f6 --- /dev/null +++ b/input/pagecontent/structureGenerale.md @@ -0,0 +1,5 @@ +* [Introduction](./introduction.html) +* [Exigences spécifiques](./exigencesSpecifiques.html) +* [CDA](https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-struc-gen.html) +* [FHIR](https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-struc-gen.html) +* [Mapping CDA / FHIR](./mappingCDA-FHIR-struc-gen.html) diff --git a/sushi-config.yaml b/sushi-config.yaml index 7cea923..ad71849 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -34,48 +34,329 @@ parameters: #Parameters list - https://build.fhir.org/ig/FHIR/fhir-tools-ig/Code translation-sources: - input/translations/en +dependencies: + ans.fr.terminologies: latest + ans.fhir.fr.document-core: current + ans.cda.fr.document-core: current + pages: index.md: title: Accueil - spec-fonctionnelle-intro.md: - title: Vue d'ensemble - spec-fonctionnelle-alimentation.md: - title: Alimentation - spec-technique-intro.md: - title: Introduction - spec-technique-vue-ensemble.md: - title: Vue d'ensemble - spec-technique-flux-alimentation.md: - title: Flux d'alimentation - spec-technique-flux-consommation.md: - title: Flux de consommation - change-log.md: - title: Historique des versions + structureGenerale.md: + title: Structure générale document + introduction.md: + title: Introduction + exigencesSpecifiques.md: + title: Exigences spécifiques + mappingCDA-FHIR-struc-gen.md: + title: Mapping CDA / FHIR + enteteDocument.md: + title: Entête document + mappingCDA-FHIR-entete.md: + title: Mapping Métier/CDA/FHIR + corpsDocument.md: + title: Corps d'un document + mappingCDA-FHIR-corps.md: + title: Mapping Métier/CDA/FHIR autres_ressources.md: title: Autres Ressources - annexe-securite.md: + securite.md: title: Sécurité - annexe-downloads.md: + downloads.md: title: Téléchargements et usages translationinfo.md: title: Informations sur la traduction menu: Accueil: index.html - Vol. 1 - Etude fonctionnelle: - Introduction: spec-fonctionnelle-intro.html - Alimentation: spec-fonctionnelle-alimentation.html - Vol. 2 - Détail des transactions: - Introduction: spec-technique-intro.html - Vue d'ensemble: spec-technique-vue-ensemble.html - Flux d'alimentation: spec-technique-flux-alimentation.html - Flux de consommation: spec-technique-flux-consommation.html - Vol. 3 - Annexes: + Structure générale document: + Introduction: introduction.html + Exigences spécifiques: exigencesSpecifiques.html + CDA: new-tab https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-struc-gen.html + FHIR: new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-struc-gen.html + Mapping CDA / FHIR: mappingCDA-FHIR-struc-gen.html + Entête document: + Modèle logique métier: StructureDefinition-fr-lm-header-document.html + CDA: new-tab https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-entete.html + FHIR: new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-entete.html + Mapping Métier/CDA/FHIR: mappingCDA-FHIR-entete.html + Corps d'un document: + Modèle logique métier: StructureDefinition-fr-lm-corps-document.html + CDA: new-tab https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-corps.html + FHIR: new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-corps.html + Mapping Métier/CDA/FHIR: mappingCDA-FHIR-corps.html + Ressources de conformité: artifacts.html + Autres ressources: + "Espace de publication du CI-SIS": new-tab https://esante.gouv.fr/offres-services/ci-sis/espace-publication + "Serveur Multi-terminologies": new-tab https://smt.esante.gouv.fr/ + "Serveur Multi-terminologies / FHIR": new-tab https://smt.esante.gouv.fr/fhir + "IG terminologies et jeux de valeurs du CI-SIS": new-tab https://ansforge.github.io/IG-terminologie-de-sante/ig/main/index.html + "Espace de tests du CI-SIS": new-tab https://interop.esante.gouv.fr/ Sécurité: securite.html + "Standard CDA": new-tab https://hl7.org/cda/stds/online-navigation/index.html + "Standard FHIR": new-tab https://hl7.org/fhir/R4/index.html + "Documentation des guides d'implémentation de l'ANS": new-tab https://interop.esante.gouv.fr/ig/documentation/index.html Téléchargements et usage: downloads.html - "Spécifications FHIR ": new-tab {{site.data.fhir.path}}index.html - "Site de l'ANS ": new-tab https://esante.gouv.fr/ - Ressources de conformité: artifacts.html - Documentation: new-tab https://interop.esante.gouv.fr/ig/documentation/ - Historique: change-log.html + +groups: + Modèles logiques métier de l'entête d'un document: + name: Modèles logiques métier de l'entête d'un document + resources: + - FRLMHeaderDocument + - FRLMPatient + - FRLMHealthProfessional + - FRLMOrganisation + - FRLMInformant + - FRLMIntendedRecipient + - FRLMLegalAuthentication + - FRLMAttester + - FRLMDataEnterer + - FRLMParticipant + - FRLMOrder + - FRLMConsent + - FRLMLocation + - FRLMRelatedPerson + - FRLMHumanName + + Modèles logiques métier des sections d'un document: + name: Modèles logiques métier des sections d'un document + resources: + - StructureDefinition/fr-lm-corps-document + #Sections + - StructureDefinition/fr-lm-section + - StructureDefinition/fr-lm-allergies-and-intolerances + - StructureDefinition/fr-lm-family-medical-history + - StructureDefinition/fr-lm-history-of-past-illness + - StructureDefinition/fr-lm-qr-code + - StructureDefinition/fr-lm-note + - StructureDefinition/fr-lm-addendum + - StructureDefinition/fr-lm-observation-results + - StructureDefinition/fr-lm-advance-directives + - StructureDefinition/fr-lm-medical-devices-and-implants + - StructureDefinition/fr-lm-presented-form + - StructureDefinition/fr-lm-attachments + - StructureDefinition/fr-lm-predictable-adverse-drug-reaction + - StructureDefinition/fr-lm-hazardous-working-conditions + - StructureDefinition/fr-lm-social-history + - StructureDefinition/fr-lm-procedures + - StructureDefinition/fr-lm-result-data + - StructureDefinition/fr-lm-examination-report + - StructureDefinition/fr-lm-order-information + - StructureDefinition/fr-lm-comparison-study + - StructureDefinition/fr-lm-exposure-information + - StructureDefinition/fr-lm-supporting-information + - StructureDefinition/fr-lm-dicom-study-metadata + - StructureDefinition/fr-lm-recommendation + - StructureDefinition/fr-lm-conclusion + - StructureDefinition/fr-lm-medication-dispensations + - StructureDefinition/fr-lm-patient-education + - StructureDefinition/fr-lm-section-pregnancy-history + - StructureDefinition/fr-lm-care-plans + - StructureDefinition/fr-lm-medical-device-prescriptions + - StructureDefinition/fr-lm-medication-prescription + - StructureDefinition/fr-lm-problems + - StructureDefinition/fr-lm-vital-signs + - StructureDefinition/fr-lm-functional-status + - StructureDefinition/fr-lm-medication-summary + - StructureDefinition/fr-lm-immunisations + - StructureDefinition/fr-lm-reason-for-referral + - StructureDefinition/fr-lm-course-of-encounter + - StructureDefinition/fr-lm-hospital-discharge-medications + - StructureDefinition/fr-lm-alerts + - StructureDefinition/fr-lm-admission-evaluation + - StructureDefinition/fr-lm-encounter-information + + Modèles logiques métier des composants communs: + name: Modèles logiques métier des composants communs + description: Modèles de données métier représentant les concepts communs, modélisés indépendamment de la syntaxe et de façon plus accessible pour le métier que les éléments techniques CDA et FHIR. + resources: + - StructureDefinition/fr-lm-entry + - StructureDefinition/fr-lm-procedure + - StructureDefinition/fr-lm-family-member-history + - StructureDefinition/fr-lm-service-request + - StructureDefinition/fr-lm-care-plan + - StructureDefinition/fr-lm-condition + - StructureDefinition/fr-lm-encounter + - StructureDefinition/fr-lm-observation + - StructureDefinition/fr-lm-allergy-intolerance + - StructureDefinition/fr-lm-advance-directive + - StructureDefinition/fr-lm-device-use + - StructureDefinition/fr-lm-attachment + - StructureDefinition/fr-lm-adverse-drug-reaction + - StructureDefinition/fr-lm-observation-assessment + - StructureDefinition/fr-lm-observation-social-history + - StructureDefinition/fr-lm-observation-media + - StructureDefinition/fr-lm-pregnancy-observation + - StructureDefinition/fr-lm-pregnancy-status + - StructureDefinition/fr-lm-pregnancy-history + - StructureDefinition/fr-lm-medication + - StructureDefinition/fr-lm-dose-number + - StructureDefinition/fr-lm-resultats-examens-biologie-medicale + - StructureDefinition/fr-lm-observation-vital-sign + - StructureDefinition/fr-lm-medication-administration + - StructureDefinition/fr-lm-dicom-medication-administration + - StructureDefinition/fr-lm-immunisation + - StructureDefinition/fr-lm-medication-dispense + - StructureDefinition/fr-lm-specimen + - StructureDefinition/fr-lm-batterie-examens-biologie-medicale + - StructureDefinition/fr-lm-isolat-microbiologique + - StructureDefinition/fr-lm-resultat-examens-biologie-element-clinique-pertinent + - StructureDefinition/fr-lm-imaging-study + - StructureDefinition/fr-lm-series + - StructureDefinition/fr-lm-sop-instance + - StructureDefinition/fr-lm-prescription-item + - StructureDefinition/fr-lm-quantity-exposure + - StructureDefinition/fr-lm-transfusion-de-produits-sanguins + - StructureDefinition/fr-lm-multidrug-resistant-microorganism-identification + - StructureDefinition/fr-lm-transfusion-accidents + - StructureDefinition/fr-lm-patient-transfer + - StructureDefinition/fr-lm-laboratoire-executant + - StructureDefinition/fr-lm-device + - StructureDefinition/fr-lm-dosageInstructions + - StructureDefinition/fr-lm-prescription-entree + - StructureDefinition/fr-lm-laboratory-observation + - StructureDefinition/fr-lm-body-structure + - StructureDefinition/fr-lm-travel-history + Mapping ML-CDA-FHIR entête: + name: Concept Maps de l'entête du document + resources: + - mappingmodelemetierCDAFHIR + - mappingPatientCDAFHIR + - mappingAuteurCDAFHIR + - mappingOperateurSaisieCDAFHIR + - mappingInformateurCDAFHIR + - mappingStructureConservationCDAFHIR + - mappingDestinatairePrevuCDAFHIR + - mappingResponsableCDAFHIR + - mappingValidateurCDAFHIR + - mappingParticipantCDAFHIR + - mappingPrescriptionCDAFHIR + - mappingEvenementCDAFHIR + - mappingDocumentDeReferenceCDAFHIR + - mappingConsentementCDAFHIR + - mappingPriseEnchargeCDAFHIR + - mappingPersonneStructureAssignedEntityFHIR + - mappingPersonneStructureRelatedEntityFHIR + - mappingPersonneStructureAuteurFHIR + - mappingSystemeFHIR + + Mapping ML-CDA-FHIR des sections d'un document: + name: Concept Maps des sections d'un document + resources: + - FRSectionImagingResultsLMCDAFHIR + - FRSectionImagingClinicalInformationLMCDAFHIR + - FRSectionImagingServiceRequestLMCDAFHIR + - FRSectionImagingRadiationExposureLMCDAFHIR + - FRSectionImagingActLMCDAFHIR + - FRSectionImagingAddendumLMCDAFHIR + - FRSectionSocialHistoryLMCDAFHIR + - FRSectionFunctionalStatusLMCDAFHIR + - FRSectionPhysicalFunctionsLMCDAFHIR + - FRSectionAllergyIntoleranceLMCDAFHIR + - FRSectionFamilyHistoryLMCDAFHIR + - FRSectionBarCodesLMCDAFHIR + - FRSectionNoteLMCDAFHIR + - FRSectionImagingComparisonLMCDAFHIR + - FRSectionImagingComplicationsLMCDAFHIR + - FRSectionImagingConclusionLMCDAFHIR + - FRSectionMedicalHistoryLMCDAFHIR + - FRSectionLaboratoryChapterLMCDAFHIR + - FRSectionLaboratorySubChapterLMCDAFHIR + - FRSectionAdvanceDirectiveLMCDAFHIR + - FRSectionMedicalDeviceLMCDAFHIR + - FRSectionPDFDocumentCopyLMCDAFHIR + - FRSectionAddedDocumentsLMCDAFHIR + - FRSectionPatientEducationLMCDAFHIR + - FRSectionAdverseEventLMCDAFHIR + - FRSectionExposureRadiationLMCDAFHIR + - FRSectionUncodedOccupationalRiskFactorsLMCDAFHIR + - FRSectionHistoryActsLMCDAFHIR + - FRSectionPregnancyHistoryLMCDAFHIR + - FRSectionImagingObjectCatalogLMCDAFHIR + - FRSectionCarePlanLMCDAFHIR + - FRSectionUncodedPointsOfVigilanceLMCDAFHIR + - FRSectionPrescriptionOfMedicalDevicesLMCDAFHIR + - FRSectionMedicationRequestLMCDAFHIR + - FRSectionActiveProblemsLMCDAFHIR + - FRSectionReasonForRecommendationLMCDAFHIR + - FRSectionUncodedReasonForRecommendationLMCDAFHIR + - FRSectionResultsLMCDAFHIR + - FRSectionExaminationResultsLMCDAFHIR + - FRSectionUncodedExaminationResultsLMCDAFHIR + - FRSectionLaboratorySecondIntentionResultsLMCDAFHIR + - FRSectionVitalSignsLMCDAFHIR + - FRSectionDocumentStatusLMCDAFHIR + - FRSectionMedicationsLMCDAFHIR + - FRSectionMedicationAdministrationLMCDAFHIR + - FRSectionHospitalDischargeMedicationsLMCDAFHIR + - FRSectionImmunizationsLMCDAFHIR + - FRSectionMedicationDispenseLMCDAFHIR + + Mapping ML-CDA-FHIR des composants communs d'un document: + name: Concept Maps des composants communs d'un Document + resources: + - FRProcedureLMCDAFHIR + - FRAdvanceDirectiveLMCDAFHIR + - FRAdverseEventLMCDAFHIR + - FRAllergyIntoleranceLMCDAFHIR + - FRCarePlanLMCDAFHIR + - FRConditionLMCDAFHIR + - FRDeviceRequestLMCDAFHIR + - FRDeviceUseStatementLMCDAFHIR + - FRDiagnosticReportLMCDAFHIR + - FRDocumentReferenceLMCDAFHIR + - FREncounterLMCDAFHIR + - FRFamilyMemberHistoriesLMCDAFHIR + - FRFamilyMemberHistoryLMCDAFHIR + - FRImagingStudyLMCDAFHIR + - FRImmunizationLMCDAFHIR + - FRImmunizationRecommendationLMCDAFHIR + - FRObservationBirthEventLMCDAFHIR + - FRMediaLMCDAFHIR + - FRMedicationAdministrationLMCDAFHIR + - FRMedicationDispenseLMCDAFHIR + - FRMedicationLMCDAFHIR + - FRMedicationRequestLMCDAFHIR + - FRMedicationsCombinaisonRequestLMCDAFHIR + - FRMedicationsCombinaisonLMCDAFHIR + - FRMedicationStatementLMCDAFHIR + - FRObservationAdministrationBloodDerivativesLMCDAFHIR + - FRObservationBloodProductTransfusionLMCDAFHIR + - FRLaboratoryIsolateResultsLMCDAFHIR + - FRLaboratoryBatteryResultsLMCDAFHIR + - FRLaboratoryResultsLMCDAFHIR + - FRLaboratoryResultClinicalElementLMCDAFHIR + - FRObservationMedicalSummaryLMCDAFHIR + - FRObservationMicroorganismDetectionLMCDAFHIR + - FRObservationMultiresistantMicroorganismsIdentificationLMCDAFHIR + - FRObservationPregnancyLMCDAFHIR + - FRObservationPregnancyHistoryLMCDAFHIR + - FRImagingQuantityLMCDAFHIR + - FRResultsLMCDAFHIR + - FRObservationResultLMCDAFHIR + - FRObservationSocialHistoryLMCDAFHIR + - FRObservationSurveyPannelLMCDAFHIR + - FRObservationSurveyLMCDAFHIR + - FRObservationSurveyComponentLMCDAFHIR + - FRObservationSurveyComponentN2LMCDAFHIR + - FRObservationTransfusionAccidentsLMCDAFHIR + - FRObservationVitalSignsLMCDAFHIR + - FRObservationVitalSignsPanelLMCDAFHIR + - FRObservationWorkRelatedAccidentLMCDAFHIR + - FRPregnancyHistoryLMCDAFHIR + - FRImagingProcedureLMCDAFHIR + - FRServiceRequestLMCDAFHIR + - FRSpecimenLMCDAFHIR + - FRImagingMedicationAministrationLMCDAFHIR + - FRImagingRadiationExposureAuthorizationLMCDAFHIR + - FRAllowedSubstitutionLMCDAFHIR + - FRActSubstitutionLMCDAFHIR + - FRCertitudeLMCDAFHIR + - FRCriticiteLMCDAFHIR + - FRNoteLMCDAFHIR + - FRParticipantCorpsLMCDAFHIR + - FRObservationLMCDAFHIR + - FRPatientWithNonHumanSubjectLMCDAFHIR + - FRNonHumanSubjectLMCDAFHIR + - FRImagingSeriesLMCDAFHIR From e9c24dc57ea0ded5279a350e1a6395ecb65de0ff Mon Sep 17 00:00:00 2001 From: Nicolas Riss <48218773+nriss@users.noreply.github.com> Date: Wed, 1 Jul 2026 14:03:17 +0200 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20simplifie=20le=20menu=20m=C3=A9?= =?UTF-8?q?tier=20(retire=20les=20liens=20crois=C3=A9s=20vers=20CDA/FHIR?= =?UTF-8?q?=20des=20hubs,=20les=20ajoute=20dans=20Autres=20ressources)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Structure générale/Entête/Corps ne gardent que les enfants réellement locaux (introduction, exigences, mapping, modèle logique métier) * Ajout des liens vers les IG FHIR et CDA dans Autres ressources --- input/pagecontent/corpsDocument.md | 2 -- input/pagecontent/enteteDocument.md | 2 -- input/pagecontent/structureGenerale.md | 2 -- sushi-config.yaml | 8 ++------ 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/input/pagecontent/corpsDocument.md b/input/pagecontent/corpsDocument.md index 0742527..9334bb9 100644 --- a/input/pagecontent/corpsDocument.md +++ b/input/pagecontent/corpsDocument.md @@ -1,4 +1,2 @@ * [Modèle logique métier](./StructureDefinition-fr-lm-corps-document.html) -* [CDA](https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-corps.html) -* [FHIR](https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-corps.html) * [Mapping Métier/CDA/FHIR](./mappingCDA-FHIR-corps.html) diff --git a/input/pagecontent/enteteDocument.md b/input/pagecontent/enteteDocument.md index d14229a..70c3fc6 100644 --- a/input/pagecontent/enteteDocument.md +++ b/input/pagecontent/enteteDocument.md @@ -1,4 +1,2 @@ * [Modèle logique métier](./StructureDefinition-fr-lm-header-document.html) -* [CDA](https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-entete.html) -* [FHIR](https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-entete.html) * [Mapping Métier/CDA/FHIR](./mappingCDA-FHIR-entete.html) diff --git a/input/pagecontent/structureGenerale.md b/input/pagecontent/structureGenerale.md index 0c0b6f6..b5c2d13 100644 --- a/input/pagecontent/structureGenerale.md +++ b/input/pagecontent/structureGenerale.md @@ -1,5 +1,3 @@ * [Introduction](./introduction.html) * [Exigences spécifiques](./exigencesSpecifiques.html) -* [CDA](https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-struc-gen.html) -* [FHIR](https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-struc-gen.html) * [Mapping CDA / FHIR](./mappingCDA-FHIR-struc-gen.html) diff --git a/sushi-config.yaml b/sushi-config.yaml index ad71849..b200f8f 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -73,21 +73,17 @@ menu: Structure générale document: Introduction: introduction.html Exigences spécifiques: exigencesSpecifiques.html - CDA: new-tab https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-struc-gen.html - FHIR: new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-struc-gen.html Mapping CDA / FHIR: mappingCDA-FHIR-struc-gen.html Entête document: Modèle logique métier: StructureDefinition-fr-lm-header-document.html - CDA: new-tab https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-entete.html - FHIR: new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-entete.html Mapping Métier/CDA/FHIR: mappingCDA-FHIR-entete.html Corps d'un document: Modèle logique métier: StructureDefinition-fr-lm-corps-document.html - CDA: new-tab https://interop.esante.gouv.fr/ig/cda/document-core/ressourcesCDA-corps.html - FHIR: new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/ressourcesFHIR-corps.html Mapping Métier/CDA/FHIR: mappingCDA-FHIR-corps.html Ressources de conformité: artifacts.html Autres ressources: + "IG FHIR": new-tab https://interop.esante.gouv.fr/ig/fhir/document-core/index.html + "IG CDA": new-tab https://interop.esante.gouv.fr/ig/cda/document-core/index.html "Espace de publication du CI-SIS": new-tab https://esante.gouv.fr/offres-services/ci-sis/espace-publication "Serveur Multi-terminologies": new-tab https://smt.esante.gouv.fr/ "Serveur Multi-terminologies / FHIR": new-tab https://smt.esante.gouv.fr/fhir From 0f7c3b48737c1ad5f28fdbb615cf8ef2d0871af8 Mon Sep 17 00:00:00 2001 From: Nicolas Riss <48218773+nriss@users.noreply.github.com> Date: Wed, 8 Jul 2026 11:54:25 +0200 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20d=C3=A9clarer=20explicitement=20lice?= =?UTF-8?q?nse:=20CC0-1.0=20dans=20sushi-config.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Même correctif que sur le volet FHIR de document-core : le publisher IG exige un ImplementationGuide.license (SPDX id ou not-open-source) et ne doit pas dépendre implicitement d'un défaut hérité du template. --- sushi-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/sushi-config.yaml b/sushi-config.yaml index b200f8f..d970631 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -12,6 +12,7 @@ status: draft version: 0.1.0 # shall conforms to Semantic Versioning https://fr.wiktionary.org/wiki/SemVer fhirVersion: 4.0.1 copyrightYear: 2020+ +license: CC0-1.0 releaseLabel: ci-build # le release label doit être conforme au cycle de vie de la doctrine du ci-sis. Cf. https://interop.esante.gouv.fr/ig/documentation/mod_bonnes_pratiques.html#release-dun-ig-fhir colonne "label de publication" jurisdiction: urn:iso:std:iso:3166#FR "France (la)" From 09c62a2587fa201f3358bcfd0d01222040a8a91c Mon Sep 17 00:00:00 2001 From: Nicolas Riss <48218773+nriss@users.noreply.github.com> Date: Fri, 10 Jul 2026 16:05:32 +0200 Subject: [PATCH 4/4] Update template path in ig.ini --- ig.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ig.ini b/ig.ini index 848ac90..b7e0b97 100644 --- a/ig.ini +++ b/ig.ini @@ -3,7 +3,7 @@ # see comments below for instructions ig = fsh-generated/resources/ImplementationGuide-ans.fr.document-core.json -template = https://github.com/ansforge/IG-template/tree/nr-remove-js-template +template = ans.fr.template#current #template = https://github.com/ansforge/IG-template/tree/for-comment-template #Usage to be discussed #template = #local-template