Data Management with FHIR
0.1.0 - ci-build France (la) flag

Data Management with FHIR - version de développement local (intégration continue v0.1.0) construite par les outils de publication FHIR (HL7® FHIR® Standard). Voir le répertoire des versions publiées

StructureMap: FHIR Patient resource to Tables CDM OMOP

Official URL: https://aphp.github.io/IG-fhir-dm/StructureMap/CoreFHIRPatient2OMOP Version: 0.1.0
Draft as of 2026-10-15 Computable Name: CoreFHIRPatient2OMOP

Cette ressource présente les spécifications de l'alignement entre la ressource Patient vers les tables correspodantes du CDM OMOP.

map "https://aphp.github.io/IG-fhir-dm/StructureMap/CoreFHIRPatient2OMOP" = "CoreFHIRPatient2OMOP"

// Cette ressource présente les spécifications de l'alignement entre la ressource `Patient` vers les tables correspodantes du CDM OMOP.

uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as source
uses "https://aphp.github.io/IG-fhir-dm/StructureDefinition/logical-bundle" alias LogicalBundle as target
uses "https://aphp.github.io/IG-fhir-dm/StructureDefinition/omop-person" alias PersonTable as target
uses "https://aphp.github.io/IG-fhir-dm/StructureDefinition/omop-location" alias LocationTable as target
uses "https://aphp.github.io/IG-fhir-dm/StructureDefinition/omop-death" alias DeathTable as target

imports "https://aphp.github.io/IG-fhir-dm/StructureMap/CoreFHIR2OMOPPerson"
imports "https://aphp.github.io/IG-fhir-dm/StructureMap/CoreFHIR2OMOPLocation"
imports "https://aphp.github.io/IG-fhir-dm/StructureMap/CoreFHIR2OMOPDeath"

group Patient(source src : Patient, target tgtBundle : LogicalBundle) <<types>> {
  src -> tgtBundle.entry as newEntry then {
    src -> newEntry.person = create('PersonTable') as newPerson then {
      src then Person(src, newPerson) "transformPerson";
    } "createPerson";
    src.address as srcAddress where ((use = 'home') and period.end.empty()) -> newEntry.location = create('LocationTable') as newLocation then {
      srcAddress then Location(srcAddress, newLocation) "transformLocation";
    } "createLocation";
    src where (deceased.is(System.DateTime) or deceased.is(System.Boolean)) -> newEntry.death = create('DeathTable') as newDeath then {
      src then Death(src, newDeath) "transformDeath";
    } "createDeath";
  } "newEntry";
}