Code Monkey home page Code Monkey logo

ansforge / ig-fhir-repertoire-offre-ressources-sante Goto Github PK

View Code? Open in Web Editor NEW
2.0 8.0 1.0 3.23 GB

Définition des spécifications de l'API FHIR pour utiliser le Répertoire national de l’Offre et des Ressources en santé et accompagnement médico-social (ROR).

Home Page: https://interop.esante.gouv.fr/ig/fhir/ror/

License: MIT License

Batchfile 2.29% Shell 1.34% GLSL 96.36%
ror fhir hl7 ig location practitioner healthcareservice practitionerrole organization

ig-fhir-repertoire-offre-ressources-sante's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

loic-brtd

ig-fhir-repertoire-offre-ressources-sante's Issues

Questions sur le NotAvailable du HealthcareService

Bonjour,

Nous avons des questions sur la modélisation du champ NotAvailable du HealthcareService.

Voilà un exemple de sortie FHIR que nous obtenons pour un HealthcareService contenant une date de fermeture et une date de réouverture prévisionnelle.

    "notAvailable": [
        {
            "description": "notAvailable:closingDate",
            "during": {
                "start": "2030-12-30T00:00:00+00:00"
            }
        },
        {
            "description": "notAvailable:previsionalReopeningDate",
            "during": {
                "end": "2040-11-30T00:00:00+00:00"
            }
        }
    ]

Question concernant le slicing du champ NotAvailable :
Comment réaliser le slicing pour différencier les deux dates ?
Sachant :

  • Qu’un objet de type BackboneElement ne dispose pas de champ URL.
  • Que la Structure Définition ne spécifie pas d’URL pour les slices du champ NotAvailable (contrairement aux autres champs devant être slicés).

Question concernant la description du champ NotAvailable :
Ne disposant pas de données pouvant aller dans la description du NotAvailable, nous nous demandions s’il n’y a pas une coquille avec la cardinalité (1..1) de la description.
Cette dernière est-elle correcte ?

Merci d’avance pour vos retours.

Hugo,
Développeur sur le projet du ROR-National.

Modélisation healthcare service sur contacts - télécommunication

Bonjour
On a identifié un souci de modélisation sur les contacts dans Healthcare Service. Suivant le MEV3.0, un contact peut avoir 0..* Télécommunication.
Sur le mapping les attributs de telecommunication sont directement dans Contact avec une cardinalité 1..1 ou 0..1. Cela ne permet pas d'avoir n telecom dans un contact.

Précision sur la syntaxe des paramètres de ressource

Dans l'exemple ci-dessous de l'IG, le ":" est utilisé pour accéder au paramètre "address-postalcode" de la ressource "Location".
Devons-nous utiliser ":" ou "." ?

Cas d'usage : 5.1.6.8 Scénario 8 : Recherche sur un département

GET [BASE]/HealthcareService?location:address-postalcode=XX&_include:iterate=HealthcareService:organization&_include=HealthcareService:location&_revincluded=PractitionerRole:service&_include=PractitionerRole:practitioner

Pourquoi est-ce que cet IG réinvente la roue ?

Le profile IHE https://profiles.ihe.net/ITI/mCSD/artifacts.html aurait pu servir de base.
De plus, aucun des profils du ROR n'hérite d'aucun profil du FR CORE. Le ROR n'aurait-il vocation à n'être interopérable qu'avec lui même ?
Et je ne parle même pas de la liste à la Prevert des extensions qui sont plus la trace de mauvaises modélisations. Par exemple : ROROrganizationPrice : Il y a une ressource FHIR qui s'appelle ChargeItemDefinition et qui aurait pu a mon avis bien mieux convenir.

Cordialement,

Location : erreur de validation sur l'extension geolocation

Bonjour,

Prenons cette ressource FHIR qui respecte au mieux la Structure Definition fournie :

{
    "resourceType": "Location",
    "id": "103",
    "meta": {
        "lastUpdated": "2023-03-31T16:48:04.000+00:00",
        "tag": [
            {
                "system": "https://mos.esante.gouv.fr/NOS/TRE_R30-RegionOM/FHIR/TRE-R30-RegionOM",
                "code": "52"
            }
        ]
    },
    "status": "active",
    "name": "Consultation kinésithérapie",
    "address": {
        "line": [
            "14 BIS R GEORGES CLEMENCEAU",
            "85140 Les Essarts"
        ],
        "_line": [
            {
                "extension": [
                    {
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber",
                        "valueString": "14"
                    },
                    {
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix",
                        "valueString": "BIS"
                    },
                    {
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetNameBase",
                        "valueString": "R GEORGES CLEMENCEAU"
                    }
                ]
            },
            null
        ],
        "city": "Les Essarts",
        "postalCode": "85140"
    },
    "position": {
        "extension": [
            {
                "url": "http://hl7.org/fhir/StructureDefinition/geolocation",
                "extension": [
                    {
                        "url": "latitude",
                        "valueDecimal": 49.133333
                    },
                    {
                        "url": "longitude",
                        "valueDecimal": 6.166667
                    },
                    {
                        "url": "geodicSystem",
                        "valueString": "WGS84"
                    },
                    {
                        "url": "reliablePosition",
                        "valueBoolean": false
                    }
                ]
            }
        ],
        "longitude": 6.166667,
        "latitude": 49.133333
    }
}

Le validateur indique :

The modifier extension http://hl7.org/fhir/StructureDefinition/geolocation is not allowed to be used at this point (allowed = e:Address; this element is [Location.position, BackboneElement]).

En effet, la documentation de cette extension native FHIR indique :

Context of Use: Use on Element ID Address.

Pour information, si j'utilise l'URL "https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-geolocation" à la place, le validateur m'indique :

Value is 'https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-geolocation' but must be 'http://hl7.org/fhir/StructureDefinition/geolocation'

Loïc BERTRAND
[email protected]
Ingénieur d’études et développement
Atos France - Département Est - Metz

PS : Il me semble que le terme pour "système géodésique" en anglais est "geodetic system" au lieu de "geodic system".

SearchParameter "gender-capacity-available"/"gender-capacity"

Bonjour,

Nous avons identifié une différence de nommage sur le critère de recherche "gender-capacity-available"/"gender-capacity" entre ces trois pages de l'implementation guide :

Loïc BERTRAND
[email protected]
Ingénieur d’études et développement
Atos France - Département Est - Metz

Zone intervention

Pour rechercher sur une zone d'intervention la syntaxe proposée dans le docX est get[BASE]/HealthcareService?location.intervention-zone=XXX .
L'intervention zone est une extension complexe avec 2 codeable concept type, code. Est il possible de rechercher en précisant les types , les codes ... si oui quelle syntaxe adopter ?

Ajout de paramètres de recherche

Ajout de _content pour la recherche FullText et ajout de _has et _filter (utilisés dans les autres cas d'usage) pour uniformiser

Usage incorrect de _elements

La spécification FHIR précise que _elements doit contenir l'ensemble des éléments obligatoires d'une ressource Clients SHOULD list all mandatory and modifier elements in a resource as part of the list of elements

Or ça n'est pas le cas ici, dans HealthcareService _elements :
https://interop.esante.gouv.fr/ig/fhir/ror/specifications_techniques_2.html#sc%C3%A9nario-7-extraction-partielle-de-loffre-sur-un-p%C3%A9rim%C3%A8tre-limit%C3%A9

Il faut rajouter les éléments obligatoires de HS définis dans le mapping.

Location.address.line : différencier les slices streetNameHamlet et streetNameBase

Bonjour,

Voici un exemple de Location avec une adresse qui inclut toutes les valeurs pour les extensions de lignes d'adresse (Location.address.line) :

{
    "resourceType": "Location",
    "id": "0",
    "meta": {
        "tag": [
            {
                "system": "https://mos.esante.gouv.fr/NOS/TRE_R30-RegionOM/FHIR/TRE-R30-RegionOM",
                "code": "11"
            }
        ]
    },
    "extension": [
        {
            "url": "https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-commune-cog",
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "https://mos.esante.gouv.fr/NOS/TRE_R13-CommuneOM/FHIR/TRE-R13-CommuneOM",
                        "code": "57463",
                        "display": "Metz"
                    }
                ]
            }
        }
    ],
    "status": "active",
    "name": "nom",
    "description": "description",
    "type": [
        {
            "coding": [
                {
                    "system": "https://mos.esante.gouv.fr/NOS/TRE_R343-FonctionLieu/FHIR/TRE-R343-FonctionLieu",
                    "code": "001",
                    "display": "Hébergement"
                }
            ]
        }
    ],
    "address": {
        "line": [
            "3e étage",
            "Entrée A",
            "1 Bis Pl. de la Bibliothèque",
            "Pontiffroy BP 57012",
            "57000 Metz"
        ],
        "_line": [
            {
                "extension": [
                    {
                        "id": "Location.address.line.extension:careOf",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-careOf",
                        "valueString": "3e étage"
                    }
                ]
            },
            {
                "extension": [
                    {
                        "id": "Location.address.line.extension:additionalLocator",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator",
                        "valueString": "Entrée A"
                    }
                ]
            },
            {
                "extension": [
                    {
                        "id": "Location.address.line.extension:houseNumber",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber",
                        "valueString": "1"
                    },
                    {
                        "id": "Location.address.line.extension:buildingNumberSuffix",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix",
                        "valueString": "Bis"
                    },
                    {
                        "id": "Location.address.line.extension:streetNameType",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetNameType",
                        "valueString": "Pl."
                    },
                    {
                        "id": "Location.address.line.extension:streetNameBase",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetNameBase",
                        "valueString": "de la Bibliothèque"
                    }
                ]
            },
            {
                "extension": [
                    {
                        "id": "Location.address.line.extension:streetNameHamlet",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetNameBase",
                        "valueString": "Pontiffroy"
                    },
                    {
                        "id": "Location.address.line.extension:postBox",
                        "url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-postBox",
                        "valueString": "BP 57012"
                    }
                ]
            },
            null
        ],
        "city": "Metz",
        "postalCode": "57000"
    }
}

Etant donné que l'extension "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetNameBase" est utilisée à la fois pour le libellé de la voie et le lieu dit, j'imagine qu'il serait intéressant de pouvoir les différencier à la consommation d'un tel flux.

C'est pourquoi j'ai ajouté des id ("Location.address.line.extension:streetNameBase" et "Location.address.line.extension:streetNameHamlet").

Pourrais-je avoir votre avis sur la question et/ou votre validation sur la pertinence et la syntaxe de ces id ?

Loïc BERTRAND
[email protected]
Ingénieur d’études et développement
Atos France - Département Est - Metz

release note mai 2023

Bonjour,

Il faudrait préparer la release note pour la prochaine release de l'IG prévue d'ici fin mai

Cohérence terminologies unité de prix et de mesure

Des incohérences entre le modèle d'exposition et les ressources de conformité ont été identifiées concernant 2 nomenclatures, en effet :

  • La TRE_R247-UcumUniteMesure est utilisée pour l'attribut uniteMesure de la classe Mesure, mappé en FHIR sur Quantity.code. Il est précisé que si l'unité peut être codée, le code doit être issu de UCUM, qui contient bien les valeurs de la TRE_R247.
  • La TRE_R230-Devise est utilisée pour l'attribut devise de la classe Montant, mappé en FHIR sur Money.currency. Le valueset Currencies est required pour cet élement, il contient bien le seul code présent dans la TRE_R230 "EUR".
    Nous conseillons donc conserver les valuesets utilisés par FHIR puisqu'ils contiennent les valeurs des TRE et de modifier le modèle d'exposition en conséquence. De plus, les nomenclatures NOS issues de terminologies externes sont vouées à disparaître.

Ressource Organization: question sur le system des Identifiers

Bonjour,

Nous avons une interrogation pour la valeur que doit prendre le system des Identifiers de la ressource Organization.

La description de la Structure Definition indique « The namespace for the identifier value ».

Savez-vous à quoi cela correspond pour les Identifiers suivants : idNatStruct, numFINESS, numSIREN, numero_cabinet_RPPS, numSIRET, identifierOI, numero_cabinet_ADELI ?

Merci d’avance pour vos retours.

Hugo,
Développeur sur le projet du ROR-National.

SearchParameter specific-competence (characteristic ?)

Bonjour,

Le SearchParameter specific-competence pointe sur une URL d'extension qui n'existe pas :

HealthcareService.extension.where(url='http://interop.esante.gouv.fr/ig/fhir/ror30/StructureDefinition/ror-healthcareservice-competence-ressource').extension(url='specificCompetence').valueCode

Ce critère de recherche ne serait-il pas couvert par le champ natif FHIR characteristic ?

Loïc BERTRAND
[email protected]
Ingénieur d’études et développement
Atos France - Département Est - Metz

Ressource Organization: cardinalité de l'extension ror-organization-price

Bonjour,

Après avoir instancier une ressource Organization, nous avons constaté des cardinalités qui nous semblent erronées dans l'extension ror-organization-price :

  • La cardinalité 9..* des slices : seuls le typeTarif, le montantTarif et l’ unitePrix devraient être au minimum obligatoires (il s’agit des attributs communs à tous les types de tarif). La cardinalité devrait donc être 3..* .
  • La cardinalité 1..1 de l’extension under60 devrait être 0..1. En effet, cette extension est seulement utilisable dans un Tarif Forfait Socle Hébergement et pas dans les sept autres types de tarifs ;
  • La cardinalité 1..1 de residentialType devrait être 0..1, car elle est utilisée par deux des sept types de tarifs ;
  • La cardinalité 1..1 de welcomeType devrait être 0..1, car elle est utilisée par deux des sept types de tarifs ;
  • La cardinalité 1..1 de dependancyLevel devrait être 0..1, car elle est utilisée par un des sept types de tarifs ;
  • La cardinalité 1..1 de managementType devrait être 0..1, car elle est utilisée par un des sept types de tarifs ;
  • La cardinalité 1..1 de otherAdditionalServiceName devrait être 0..1, car elle est utilisée par un des sept types de tarifs ;

Pourriez-vous nous indiquer si nos observations et les corrections proposées vous semblent correctes ?

Merci d’avance pour vos retours.

Hugo,
Développeur sur le projet du ROR-National.

Territorial division - erreur de validation

Bonjour,
Lorsqu'on passe nos ressources healthcare service au validate à partir des ressources de conformité actuelles, on obtient l'erreur suivante concernant la donnée territorial division:
The modifier extension https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-territorial-division is not allowed to be used at this point (allowed = e:Organization; this element is [Bundle.entry.resource.ofType(HealthcareService), BackboneElement.resource, HealthcareService])
Il semble que c'est la même erreur qu'on a eu avec la creation date.

Task : type de la valeur de la slice input:pathElementError

Bonjour,

Dans la ressource Task, la valeur de la slice input:pathElementError a pour type Expression :

image

Or, la valeur que l'on doit mettre dedans est issue d'une nomenclature, par exemple :

        {
            "type": {
                "coding": [
                    {
                        "system": "TBD",
                        "code": "pathElementError",
                        "display": "TBD"
                    }
                ]
            },
            "valueCoding": {
                "system": "TBD",
                "code": "052",
                "display": "Patientele.ageMin"
            }
        },

Ce type ne devrait-il pas être Coding ou CodeableConcept ?

Loïc BERTRAND
[email protected]
Ingénieur d’études et développement
Atos France - Département Est - Metz

[Héritage] mise à jour avec les nouveaux profils annuaires

Lorsque l'IG annuaire sera publié, après concertation, il faudra ajouter la dépendance vers cet IG et mettre à jour les profils ROR qui hériteraient de l'annuaire

[EDIT 26/10]

Il faudra également faire un refacto des extensions, beaucoup d'extensions sont définies pour des choses déjà existantes en FHIR ou des extensions déjà existantes à l'international. Il faudra par exemple estimer la capacité d'hériter de mCSD. (cf #17).

Une discussion avec l'équipe projet du ROR doit avoir lieu pour estimer si l'implémentation peut évoluer.

Gestion des versions

Semver ou préfixe 1.3.x ?

Pas de décision forte, les deux ont des avantages et inconvénients

Problème sur les ressources liées à l'équipement

Bonjour,

Suite aux premiers retours sur le dernière version des spécifications, concernant le cas d'usage "Création et Mise à jour du lieu de réalisation de l’offre" et plus précisément la mise à jour d'un équipement, nous avons identifié un problème sur les ressources de conformité liées à l'équipement.
En effet, actuellement 2 extensions sur Location permettent de représenter les éléments liés à l'équipement :

  • RORLocationEquipment qui représente la classe EquipementSpecifique (type et nombre d'équipement)
  • RORLocationEquipmentLimit qui représente la classe LimiteCaracteristiqueEquipement (type caractéristique et limite)
    Hors l'implémentation actuelle ne permet pas de faire le lien entre l'équipement et sa/ses limite(s) puisque ces 2 extensions sont "à plat" dans la ressource Location.

Nous proposons donc de déplacer l'extension RORLocationEquipmentLimit dans l'extension RORLocationEquipment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.