diff --git a/input/pagecontent/specifications_techniques_10.md b/input/pagecontent/specifications_techniques_10.md index 32365526580..b6539839a61 100644 --- a/input/pagecontent/specifications_techniques_10.md +++ b/input/pagecontent/specifications_techniques_10.md @@ -71,6 +71,17 @@ Si la mise à jour échoue, le serveur doit répondre : ### Exemple de requêtes +
+

+Les exemples de ressources utilisés dans ces exemples de requêtes sont fictifs. +
Ces ressources ne sont pas validées par le guide d'implémentation et sont donc sujettes aux erreurs. Pour l'implémentation il faut se baser sur les profils. +

+Pour les requêtes PATCH, il est conseillé de bien prendre connaissance de la documentation FHIR avant de les implémenter (https://hl7.org/fhir/R4/http.html#patch et https://hl7.org/fhir/R4/fhirpatch.html) +

+Piste pour une implémentation future dans le ROR: la gestion des accès concurrentiels pourrait être améliorée en utilisant la combinaison de ETag et If-Match (https://hl7.org/fhir/R4/http.html#concurrency) +

+
+ #### [spécifique serveur] Scénario 1 : Ajout d'un lieu de réalisation de l'offre draft *Cette requête ne pourra être exécutée que par le serveur.* @@ -81,8 +92,6 @@ Si la mise à jour échoue, le serveur doit répondre : - Création du nouveau lieu de réalisation de l'offre -N.B.: Exemple de ressource fictif pour illustration, ces ressources ne sont pas validées par le guide d'implémentation et sont donc sujettes aux erreurs. Pour l'implémentation se baser sur les profils. - ```json POST [BASE]/Location { @@ -192,148 +201,139 @@ PATCH [BASE]/HealthcareService/XXX } ``` -#### [spécifique serveur] Scénario 2 : Ajout d'une capacité de prise en charge +#### [BED MANAGEMENT] Scénario 2 : Ajout d'une capacité de prise en charge -*Cette requête ne pourra être exécutée que par le serveur.* +*Ce scénario cible les éditeurs de solutions de bedmanagement.* -**Description du scénario :** Un établissement (via bed management, \...) ajoute dans un lieu de réalisation de l\'offre existant dont l'identifiant est XXX, des données capacitaires pour une affectation temporaire : une affectation temporaire \"Covid +\", 2 lits disponibles (sexe indifférencié), à t0. +**Description du scénario :** Un établissement (via bed management, \...) ajoute dans un lieu de réalisation de l\'offre déjà existant, dont l'identifier:idExterneSynchro est XXX, des données capacitaires pour une affectation non temporaire, 2 places disponibles (sexe indifférencié), à t0. **Requête :** ```json -PATCH [BASE]/Location/XXX +PATCH [BASE]/Location?identifier=XXX { - "resourceType": "Parameters", - "parameter": [ + "parameter": [ { "name": "operation", - "part": [ + "part": [ { "name": "type", "valueString": "add" - }, + }, { "name": "path", - "valueString": "Location" - }, + "valueString": "Location.extension.where(url='https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-supported-capacity')" + }, { - "name": "extension", - "part": [ - { - "name": "url", - "valueUri": "https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition-ror-location-supported-capacity" - }, + "name": "value", + "part": [ { - "name": "extension", - "part": [ - { - "name": "url", - "valueString": "temporaryAssignement" - }, - { - "name": "value", - "valueCodeableConcept": { - "coding": [ - { - "system": "https://mos.esante.gouv.fr/NOS/JDV_J195-AffectationTemporaire-ROR/FHIR/JDV-J195-AffectationTemporaire-ROR/", - "code": "02", - "display": "Covid+" - } - ] - } - }, + "extension": [ { - "name": "url", - "valueString": "capacityType" - }, - { - "name": "value", - "valueCodeableConcept": { - "coding": [ - { - "system": "https://mos.esante.gouv.fr/NOS/JDV_J187-NatureCapacite-ROR/FHIR/JDV-J187-NatureCapacite-ROR/", - "code": "01", - "display": "Lit" - } - ] - } - }, - { - "name": "url", - "valueString": "capacityStatus" - }, - { - "name": "value", - "valueCodeableConcept": { - "coding": [ - { - "system": "https://mos.esante.gouv.fr/NOS/JDV_J188-TypeStatutCapacite-ROR/FHIR/JDV-J188-TypeStatutCapacite-ROR/", - "code": "02", - "display": "Disponible" - } - ] - } - }, - { - "name": "url", - "valueString": "temporalityCapacity" - }, - { - "name": "value", - "valueCodeableConcept": { - "coding": [ - { - "system": "https://mos.esante.gouv.fr/NOS/JDV_J189-TemporaliteCapacite-ROR/FHIR/JDV-J189-TemporaliteCapacite-ROR/", - "code": "01", - "display": "Courant" - } - ] - } - }, - { - "name": "url", - "valueString": "nbCapacity" - }, - { - "name": "value", - "valueInt": "2" - }, - { - "name": "url", - "valueString": "genderCapacityAvailable" - }, - { - "name": "value", - "valueCodeableConcept": { - "coding": [ - { - "system": "https://mos.esante.gouv.fr/NOS/JDV_J190-GenreCapacite-ROR/FHIR/JDV-J190-GenreCapacite-ROR/", - "code": "02", - "display": "Indifférencié" - } - ] - } - } - ] - } - ] - } - ] - } - ] + "extension": [ + { + "url": "nbCapacity", + "valueInteger": 25 + }, + { + "url": "capacityUpdateDate", + "valueDateTime": "2025-02-26T15:17:33Z" + }, + { + "url": "capacityStatus", + "valueCodeableConcept": { + "coding": [ + { + "code": "02", + "display": "Disponible", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R330-TypeStatutCapacite/FHIR/TRE-R330-TypeStatutCapacite" + } + ] + } + }, + { + "url": "capacityType", + "valueCodeableConcept": { + "coding": [ + { + "code": "02", + "display": "Place", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R329-NatureCapacite/FHIR/TRE-R329-NatureCapacite" + } + ] + } + }, + { + "url": "temporalityCapacity", + "valueCodeableConcept": { + "coding": [ + { + "code": "01", + "display": "Courant", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R331-TemporaliteCapacite/FHIR/TRE-R331-TemporaliteCapacite" + } + ] + } + }, + { + "url": "capacitySourceType", + "valueCodeableConcept": { + "coding": [ + { + "code": "02", + "display": "Bed management", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R335-TypeSourceCapacite/FHIR/TRE-R335-TypeSourceCapacite" + } + ] + } + }, + { + "url": "genderCapacityAvailable", + "valueCodeableConcept": { + "coding": [ + { + "code": "03", + "display": "Indifférencié", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R332-GenreCapacite/FHIR/TRE-R332-GenreCapacite" + } + ] + } + }, + { + "url": "temporaryAssignement", + "valueCodeableConcept": { + "coding": [ + { + "code": "01", + "display": "Aucune", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R337-AffectationTemporaire/FHIR/TRE-R337-AffectationTemporaire" + } + ] + } + } + ], + "url": "https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-supported-capacity" + } + ] + } + ] + } + ] + } + ], + "resourceType": "Parameters" } ``` -#### [spécifique serveur] Scénario 3 : Suppression d'une capacité d'accueil opérationnelle draft +#### [BED MANAGEMENT] Scénario 2 BIS : Mise à jour d'une capacité de prise en charge -*Cette requête ne pourra être exécutée que par le serveur.* +*Ce scenario cible les éditeurs de solutions de bedmanagement.* -**Description du scénario :** Un établissement (via bed management, ...) supprime dans un lieu de réalisation de l\'offre existant dont l'identifiant est XXX tous les enregistrements liés à l\'affectation temporaire \"Covid-\". +**Description du scénario :** Un établissement (via bed management, \...) met à jour dans un lieu de réalisation de l\'offre déjà existant, dont l'identifier:idExterneSynchro est XXX, des données capacitaires pour une affectation non temporaire, 12 places disponibles (sexe indifférencié), à t0. **Requête :** ```json -PATCH [BASE]/Location/XXX +PATCH [BASE]/Location?identifier=XXX { - "resourceType": "Parameters", "parameter": [ { "name": "operation", @@ -344,11 +344,131 @@ PATCH [BASE]/Location/XXX }, { "name": "path", - "valueString": "Location.extension.where(url='https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-supported-capacity' and extension.where(url='temporaryAssignement' and valueCodeableConcept.coding[0].code='02')).extension.where(url='nbCapacity')" + "valueString": "Location.extension.where(url='https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-supported-capacity').where(extension.where(url = 'capacityStatus' and valueCodeableConcept.coding.code = '02') and extension.where(url = 'temporalityCapacity' and valueCodeableConcept.coding.code = '01') and extension.where(url = 'genderCapacityAvailable' and valueCodeableConcept.coding.code = '03') and extension.where(url = 'temporaryAssignement' and valueCodeableConcept.coding.code = '01'))" }, { - "name": "valueInteger", - "value": 0 + "name": "value", + "part": [ + { + "extension": [ + { + "extension": [ + { + "url": "nbCapacity", + "valueInteger": 12 + }, + { + "url": "capacityUpdateDate", + "valueDateTime": "2025-02-26T15:17:33Z" + }, + { + "url": "capacityStatus", + "valueCodeableConcept": { + "coding": [ + { + "code": "02", + "display": "Disponible", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R330-TypeStatutCapacite/FHIR/TRE-R330-TypeStatutCapacite" + } + ] + } + }, + { + "url": "capacityType", + "valueCodeableConcept": { + "coding": [ + { + "code": "02", + "display": "Place", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R329-NatureCapacite/FHIR/TRE-R329-NatureCapacite" + } + ] + } + }, + { + "url": "temporalityCapacity", + "valueCodeableConcept": { + "coding": [ + { + "code": "01", + "display": "Courant", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R331-TemporaliteCapacite/FHIR/TRE-R331-TemporaliteCapacite" + } + ] + } + }, + { + "url": "capacitySourceType", + "valueCodeableConcept": { + "coding": [ + { + "code": "02", + "display": "Bed management", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R335-TypeSourceCapacite/FHIR/TRE-R335-TypeSourceCapacite" + } + ] + } + }, + { + "url": "genderCapacityAvailable", + "valueCodeableConcept": { + "coding": [ + { + "code": "03", + "display": "Indifférencié", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R332-GenreCapacite/FHIR/TRE-R332-GenreCapacite" + } + ] + } + }, + { + "url": "temporaryAssignement", + "valueCodeableConcept": { + "coding": [ + { + "code": "01", + "display": "Aucune", + "system": "https://mos.esante.gouv.fr/NOS/TRE_R337-AffectationTemporaire/FHIR/TRE-R337-AffectationTemporaire" + } + ] + } + } + ], + "url": "https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-supported-capacity" + } + ] + } + ] + } + ] + } + ], + "resourceType": "Parameters" +} +``` + +#### [BED MANAGEMENT] Scénario 3 : Suppression d'une capacité d'accueil opérationnelle + +*Ce scenario cible les éditeurs de solutions de bedmanagement.* + +**Description du scénario :** Un établissement (via bed management, \...) supprime dans un lieu de réalisation de l\'offre, dont l'identifier:idExterneSynchro est XXX, les données capacitaires d'une affectation non temporaire, portant sur les places indifférenciées, à t0. + +**Requête :** +```json +PATCH [BASE]/Location?identifier=XXX +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "operation", + "part": [ + { + "name": "type", + "valueString": "remove" + }, + { + "name": "path", + "valueString": "Location.extension.where(url='https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-location-supported-capacity').where(extension.where(url = 'capacityStatus' and valueCodeableConcept.coding.code = '02') and extension.where(url = 'temporalityCapacity' and valueCodeableConcept.coding.code = '01') and extension.where(url = 'genderCapacityAvailable' and valueCodeableConcept.coding.code = '03') and extension.where(url = 'temporaryAssignement' and valueCodeableConcept.coding.code = '01'))" } ] } @@ -614,12 +734,18 @@ PATCH [BASE]/Location/XXX } ``` -#### [Bed Management] Scénario 9 : Remplacement de toutes les données capacitaires draft +#### [Bed Management] Scénario 9 : Remplacement de toutes les données capacitaires deprecated *Ce scenario cible les éditeurs de solutions de bedmanagement.* +

+Avertissement: Ce scénario est déprécié et ne doit pas être utilisé car il est préférable de mettre à jour les données capacitaires unitairement comme présenté dans les scénarios 2 et 2bis. +

+ **Description du scénario :** Un établissement remplace toutes les données capacitaires (les anciennes données sont écrasées par les nouvelles). + + **Exemple :** @@ -1189,4 +1315,4 @@ PATCH [BASE]/Location?identifier=YYY } ] } -``` \ No newline at end of file +```