diff --git a/csv_parser/json_schema2xsd/src/main/resources/schemas.yaml b/csv_parser/json_schema2xsd/src/main/resources/schemas.yaml
index fb0e4a7cc7..ba36bf6a76 100644
--- a/csv_parser/json_schema2xsd/src/main/resources/schemas.yaml
+++ b/csv_parser/json_schema2xsd/src/main/resources/schemas.yaml
@@ -83,6 +83,18 @@ schemas:
sheet: RS-RI
subschema: N
xmlns: eda:1.9:resourcesinfo
+- automaticGeneration: Y
+ customExtendClass: null
+ customExtendPackage: null
+ file: model.xlsx
+ header: Y
+ package: cisu.resources
+ perimeter: 15-18
+ rootElement: resourcesInfoCisu
+ schema: RC-RI
+ sheet: RS-RI
+ subschema: N
+ xmlns: eda:1.9:resourcesInfoCisu
- automaticGeneration: Y
customExtendClass: null
customExtendPackage: null
diff --git a/csv_parser/models/model.xlsx b/csv_parser/models/model.xlsx
old mode 100755
new mode 100644
index b22527beb7..d2f0bac96a
Binary files a/csv_parser/models/model.xlsx and b/csv_parser/models/model.xlsx differ
diff --git a/csv_parser/out/EMSI/EMSI.schema.docx b/csv_parser/out/EMSI/EMSI.schema.docx
index f6f968a408..14902f5211 100644
Binary files a/csv_parser/out/EMSI/EMSI.schema.docx and b/csv_parser/out/EMSI/EMSI.schema.docx differ
diff --git a/csv_parser/out/EMSI/EMSI.uml_diagram.pdf b/csv_parser/out/EMSI/EMSI.uml_diagram.pdf
index 8455dd0e7b..c2853eafb6 100644
Binary files a/csv_parser/out/EMSI/EMSI.uml_diagram.pdf and b/csv_parser/out/EMSI/EMSI.uml_diagram.pdf differ
diff --git a/csv_parser/out/GEO-POS/GEO-POS.schema.docx b/csv_parser/out/GEO-POS/GEO-POS.schema.docx
index a60ab20877..ed8b80396a 100644
Binary files a/csv_parser/out/GEO-POS/GEO-POS.schema.docx and b/csv_parser/out/GEO-POS/GEO-POS.schema.docx differ
diff --git a/csv_parser/out/GEO-POS/GEO-POS.uml_diagram.pdf b/csv_parser/out/GEO-POS/GEO-POS.uml_diagram.pdf
index 3a6a14d947..187e3110c4 100644
Binary files a/csv_parser/out/GEO-POS/GEO-POS.uml_diagram.pdf and b/csv_parser/out/GEO-POS/GEO-POS.uml_diagram.pdf differ
diff --git a/csv_parser/out/GEO-REQ/GEO-REQ.schema.docx b/csv_parser/out/GEO-REQ/GEO-REQ.schema.docx
index f42c594495..d615d97c35 100644
Binary files a/csv_parser/out/GEO-REQ/GEO-REQ.schema.docx and b/csv_parser/out/GEO-REQ/GEO-REQ.schema.docx differ
diff --git a/csv_parser/out/GEO-REQ/GEO-REQ.uml_diagram.pdf b/csv_parser/out/GEO-REQ/GEO-REQ.uml_diagram.pdf
index 63ea99c897..03ad63bfb2 100644
Binary files a/csv_parser/out/GEO-REQ/GEO-REQ.uml_diagram.pdf and b/csv_parser/out/GEO-REQ/GEO-REQ.uml_diagram.pdf differ
diff --git a/csv_parser/out/GEO-RES/GEO-RES.schema.docx b/csv_parser/out/GEO-RES/GEO-RES.schema.docx
index 8883ec2dc3..b614e1005f 100644
Binary files a/csv_parser/out/GEO-RES/GEO-RES.schema.docx and b/csv_parser/out/GEO-RES/GEO-RES.schema.docx differ
diff --git a/csv_parser/out/GEO-RES/GEO-RES.uml_diagram.pdf b/csv_parser/out/GEO-RES/GEO-RES.uml_diagram.pdf
index cf5c6a0eb4..3d60e25f6a 100644
Binary files a/csv_parser/out/GEO-RES/GEO-RES.uml_diagram.pdf and b/csv_parser/out/GEO-RES/GEO-RES.uml_diagram.pdf differ
diff --git a/csv_parser/out/RC-DE/RC-DE.schema.docx b/csv_parser/out/RC-DE/RC-DE.schema.docx
index d98879a36d..89939c4730 100644
Binary files a/csv_parser/out/RC-DE/RC-DE.schema.docx and b/csv_parser/out/RC-DE/RC-DE.schema.docx differ
diff --git a/csv_parser/out/RC-DE/RC-DE.uml_diagram.pdf b/csv_parser/out/RC-DE/RC-DE.uml_diagram.pdf
index 6d9a7e7818..34de63da02 100644
Binary files a/csv_parser/out/RC-DE/RC-DE.uml_diagram.pdf and b/csv_parser/out/RC-DE/RC-DE.uml_diagram.pdf differ
diff --git a/csv_parser/out/RC-EDA/RC-EDA.schema.docx b/csv_parser/out/RC-EDA/RC-EDA.schema.docx
index 3f01197e9a..dabb5c0387 100644
Binary files a/csv_parser/out/RC-EDA/RC-EDA.schema.docx and b/csv_parser/out/RC-EDA/RC-EDA.schema.docx differ
diff --git a/csv_parser/out/RC-EDA/RC-EDA.uml_diagram.pdf b/csv_parser/out/RC-EDA/RC-EDA.uml_diagram.pdf
index 03a46e6c46..be6b646429 100644
Binary files a/csv_parser/out/RC-EDA/RC-EDA.uml_diagram.pdf and b/csv_parser/out/RC-EDA/RC-EDA.uml_diagram.pdf differ
diff --git a/csv_parser/out/RC-REF/RC-REF.schema.docx b/csv_parser/out/RC-REF/RC-REF.schema.docx
index efeab389d3..3142e81bc7 100644
Binary files a/csv_parser/out/RC-REF/RC-REF.schema.docx and b/csv_parser/out/RC-REF/RC-REF.schema.docx differ
diff --git a/csv_parser/out/RC-REF/RC-REF.uml_diagram.pdf b/csv_parser/out/RC-REF/RC-REF.uml_diagram.pdf
index 4e3a2baca2..6455d1c6f8 100644
Binary files a/csv_parser/out/RC-REF/RC-REF.uml_diagram.pdf and b/csv_parser/out/RC-REF/RC-REF.uml_diagram.pdf differ
diff --git a/csv_parser/out/RC-RI/RC-RI.example.json b/csv_parser/out/RC-RI/RC-RI.example.json
new file mode 100644
index 0000000000..dbe40d4799
--- /dev/null
+++ b/csv_parser/out/RC-RI/RC-RI.example.json
@@ -0,0 +1,32 @@
+{
+ "caseId": "fr.health.samu440.DRFR15440241550012",
+ "resource": [
+ {
+ "datetime": "2022-09-27T08:23:34+02:00",
+ "resourceId": "fr.health.samu770.resource.VLM250\nfr.health.samu440.resource.DRFR15DDXAAJJJ0000.1",
+ "requestId": "fr.health.samu770.request.1249875\nfr.health.samu690.request.DRFR15690242370035.3",
+ "missionId": "DRFR15DDXAAJJJ0000.M001",
+ "orgId": "fr.health.samu440",
+ "centerName": "CHU Nantes",
+ "vehicleType": "SMUR",
+ "name": "SMUR 123",
+ "centerCity": 44109,
+ "team": {
+ "medicalLevel": "MED",
+ "name": "Equipe A"
+ },
+ "state": {
+ "datetime": "2022-09-27T08:23:34+02:00",
+ "status": "ARRIVE",
+ "availability": "FALSE"
+ },
+ "contact": {
+ "type": "PHNADD",
+ "details": "+33671830530"
+ },
+ "freetext": [
+ "SMUR pédiatrique"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/csv_parser/out/RC-RI/RC-RI.input.csv b/csv_parser/out/RC-RI/RC-RI.input.csv
new file mode 100644
index 0000000000..575391285c
--- /dev/null
+++ b/csv_parser/out/RC-RI/RC-RI.input.csv
@@ -0,0 +1,41 @@
+Donnée (Niveau 1),Donnée (Niveau 2),Donnée (Niveau 3),Donnée (Niveau 4),Donnée (Niveau 5),Donnée (Niveau 6),Description,Exemples,Balise,Cardinalité,Objet,Format (ou type),Détails de format
+Identifiant affaire/dossier,,,,,,"A valoriser avec l'identifiant partagé de l'affaire/dossier, généré une seule fois par le système du partenaire qui recoit la primo-demande de secours (créateur du dossier).
+Il est valorisé comme suit lors de sa création :
+{pays}.{domaine}.{organisation}.{senderCaseId}
+
+Il doit pouvoir être généré de façon décentralisée et ne présenter aucune ambiguïté.
+ Il doit être unique dans l'ensemble des systèmes : le numéro de dossier fourni par celui qui génère l'identifiant partagé doit donc être un numéro unique dans son système.",fr.health.samu440.DRFR15440241550012,caseId,1..1,,string,"REGEX: ^([a-zA-Z0-9_-]+\.?){4,10}$"
+Ressource,,,,,,Objet permettant de communquer la liste des ressource et vecteurs mobilisés en 15-15 et 15-SMUR,,resource,0..n,X,resource,
+,Date/heure de déclenchement,,,,,A valoriser avec la date et heure d'engagement de la ressource/du vecteur,2022-09-27T08:23:34+02:00,datetime,1..1,,datetime,Format datetime décrit dans le DSF
+,ID Ressource partagé,,,,,"A valoriser avec l'identifiant partagé unique de la ressource engagée, normé comme suit :
+{orgID}.resource.{ID unique de la ressource partagée}
+OU - uniquement dans le cas où un ID unique de ressource ne peut pas être garanti par l'organisation propriétaire :
+{orgID}.resource.{sendercaseId}.{n° d’ordre chronologique de la ressource}","fr.health.samu770.resource.VLM250
+fr.health.samu440.resource.DRFR15DDXAAJJJ0000.1",resourceId,1..1,,string,"REGEX: ^([a-zA-Z0-9_-]+\.){3,8}resource(\.[a-zA-Z0-9_-]+){1,2}$"
+,ID Demande partagé,,,,,"A valoriser avec l'identifiant unique partagé de la demande de ressource (si la ressource a été engagée suite à une demande de ressource), normé comme suit :
+{orgID}.request.{ID unique de la demande dans le système émetteur}
+OU - si un ID unique de la demande n'était pas disponible :
+{OrgId émetteur}.request.{senderCaseId}.{numéro d’ordre chronologique}","fr.health.samu770.request.1249875
+fr.health.samu690.request.DRFR15690242370035.3",requestId,0..1,,string,"REGEX: ^([a-zA-Z0-9_-]+\.){3,8}request(\.[a-zA-Z0-9_-]+){1,2}$"
+,ID Mission local,,,,,"A valoriser avec le numéro de mission unique du central d’appel (PSAP, …) qui a déclenché le vecteur",DRFR15DDXAAJJJ0000.M001,missionId,0..1,,string,
+,ID Organisation propriétaire,,,,,"A valoriser avec l'identifiant de l'organisation à laquelle appartient la ressource, normé comme suit :
+{pays}.{domaine}.{organisation}",fr.health.samu440,orgId,0..1,,string,
+,Nom du centre d’affectation,,,,,A valoriser avec le lieu de garage principal,CHU Nantes,centerName,0..1,,string,
+,Type de vecteur,,,,,A valoriser avec le type de vecteur mobilisé : cf. nomenclature associée,SMUR,vehicleType,1..1,,string,"ENUM: SMUR, SIS"
+,Nom du vecteur,,,,,A valoriser avec le nom donné à la ressource par l’organisation d’appartenance,SMUR 123,name,0..1,,string,
+,Commune du centre d’affectation,,,,,A valoriser avec le code INSEE de la commune du centre d'affectation,44109,centerCity,0..1,,string,REGEX: ^[0-9]{5}$
+,Equipe vecteur,,,,,Objet qui décrit l'équipe à bord du vecteur,,team,0..1,X,team,
+,,Type,,,,A valoriser avec le niveau de médicalisation du vecteur. Cf. nomenclature associée,MED,medicalLevel,0..1,,string,NOMENCLATURE: HubSante.typePEC
+,,Nom,,,,A valoriser avec le nom de l'équipe à bord du vecteur (celui communiqué par l'organisation à laquelle l'équipe appartient),Equipe A,name,0..1,,string,
+,Etat vecteur,,,,,"Objet qui permet de décrire l'état d'un vecteur mobilisé - sous forme de liste, il permet de décrire l'historique des états connus d'un même vecteur. ",,state,1..1,X,state,
+,,Date/heure de changement de statut,,,,A valoriser avec la date et heure d'engagement de changement vers le nouveau statut,2022-09-27T08:23:34+02:00,datetime,1..1,,datetime,Format datetime décrit dans le DSF
+,,Statut du vecteur,,,,A valoriser avec le statut du vecteur. Cf nomenclature associée.,ARRIVE,status,1..1,,string,NOMENCLATURE: HubSante.statutVecteur
+,,Disponibilité du vecteur,,,,"A valoriser de manière à indiquer la disponibilité du vecteur.
+TRUE = DISPONIBLE
+FALSE = INDISPONIBLE
+VIDE = INCONNU",FALSE,availability,0..1,,boolean,
+,Contact,,,,,"Objet qui permet de décrire le type et la valeur de l'URI utilisée par un contact, ici spécifiquement le contact du vecteur mobilisé.",,contact,0..1,X,contact,
+,,Type de contact ,,,,A valoriser avec le type de l'URI utilisée. Cf nomenclature associée.,PHNADD,type,0..1,,string,NOMENCLATURE: HubSante.typeCom
+,,URI du contact,,,,"A valoriser avec la valeur de l'URI utilisée
+Le format attendu pour un numéro de téléphone est le suivant : +{indicatif pays}{numéro de téléphone}",+33671830530,details,0..1,,string,
+,Commentaires,,,,,"Texte libre permettant de passer toute autre information sur la ressource (équipements supplémentaires / spécifiques, particularités du vecteur, etc.)",SMUR pédiatrique,freetext,0..n,,string,
diff --git a/csv_parser/out/RC-RI/RC-RI.schema.docx b/csv_parser/out/RC-RI/RC-RI.schema.docx
new file mode 100644
index 0000000000..4c00094722
Binary files /dev/null and b/csv_parser/out/RC-RI/RC-RI.schema.docx differ
diff --git a/csv_parser/out/RC-RI/RC-RI.uml_diagram b/csv_parser/out/RC-RI/RC-RI.uml_diagram
new file mode 100644
index 0000000000..7503c3543e
--- /dev/null
+++ b/csv_parser/out/RC-RI/RC-RI.uml_diagram
@@ -0,0 +1,40 @@
+// UML MDD Hub Sante
+strict digraph {
+ node [shape=none]
+ edge [arrowhead=odiamond arrowtail=none]
+ rankdir=BT
+ team [label=<
+
+ | team |
+
+ | objet team |
| medicalLevel string : [0..1] |
| name string : [0..1] |
+
>]
+ team -> resource [headlabel=1 taillabel="0..1"]
+ state [label=<
+
+ | state |
+
+ | objet state |
| datetime date-time : [1..1] |
| status string : [1..1] |
| availability boolean : [0..1] |
+
>]
+ state -> resource [headlabel=1 taillabel=1]
+ contact [label=<
+
+ | contact |
+
+ | objet contact |
| type string : [0..1] |
| details string : [0..1] |
+
>]
+ contact -> resource [headlabel=1 taillabel="0..1"]
+ resource [label=<
+
+ | resource |
+
+ | objet resource |
| datetime date-time : [1..1] |
| resourceId string : [1..1] |
| requestId string : [0..1] |
| missionId string : [0..1] |
| orgId string : [0..1] |
| centerName string : [0..1] |
| vehicleType string : [1..1] |
| name string : [0..1] |
| centerCity string : [0..1] |
| freetext string : [0..*] |
+
>]
+ resource -> resourcesInfoCisu [headlabel=1 taillabel="0..*"]
+ resourcesInfoCisu [label=<
+
+ | resourcesInfoCisu |
+
+ | objet resourcesInfoCisu |
| caseId string : [1..1] |
+
>]
+}
diff --git a/csv_parser/out/RC-RI/RC-RI.uml_diagram.pdf b/csv_parser/out/RC-RI/RC-RI.uml_diagram.pdf
new file mode 100644
index 0000000000..bebaa73d89
Binary files /dev/null and b/csv_parser/out/RC-RI/RC-RI.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-BPV/RS-BPV.schema.docx b/csv_parser/out/RS-BPV/RS-BPV.schema.docx
index fd3b909e67..7665b48677 100644
Binary files a/csv_parser/out/RS-BPV/RS-BPV.schema.docx and b/csv_parser/out/RS-BPV/RS-BPV.schema.docx differ
diff --git a/csv_parser/out/RS-BPV/RS-BPV.uml_diagram.pdf b/csv_parser/out/RS-BPV/RS-BPV.uml_diagram.pdf
index 0e4ecc2b91..45947bcac0 100644
Binary files a/csv_parser/out/RS-BPV/RS-BPV.uml_diagram.pdf and b/csv_parser/out/RS-BPV/RS-BPV.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-DR/RS-DR.schema.docx b/csv_parser/out/RS-DR/RS-DR.schema.docx
index 5b68020660..697c73c97c 100644
Binary files a/csv_parser/out/RS-DR/RS-DR.schema.docx and b/csv_parser/out/RS-DR/RS-DR.schema.docx differ
diff --git a/csv_parser/out/RS-DR/RS-DR.uml_diagram.pdf b/csv_parser/out/RS-DR/RS-DR.uml_diagram.pdf
index 0caade4a24..00c4affa12 100644
Binary files a/csv_parser/out/RS-DR/RS-DR.uml_diagram.pdf and b/csv_parser/out/RS-DR/RS-DR.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.schema.docx b/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.schema.docx
index 5e371c8e14..156a0422b4 100644
Binary files a/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.schema.docx and b/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.schema.docx differ
diff --git a/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.uml_diagram.pdf b/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.uml_diagram.pdf
index fff11c8c67..babd85d087 100644
Binary files a/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.uml_diagram.pdf and b/csv_parser/out/RS-EDA-MAJ/RS-EDA-MAJ.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-EDA/RS-EDA.schema.docx b/csv_parser/out/RS-EDA/RS-EDA.schema.docx
index 745d5cc5f7..2af8ec649f 100644
Binary files a/csv_parser/out/RS-EDA/RS-EDA.schema.docx and b/csv_parser/out/RS-EDA/RS-EDA.schema.docx differ
diff --git a/csv_parser/out/RS-EDA/RS-EDA.uml_diagram.pdf b/csv_parser/out/RS-EDA/RS-EDA.uml_diagram.pdf
index 558fd4e79e..086536cc03 100644
Binary files a/csv_parser/out/RS-EDA/RS-EDA.uml_diagram.pdf and b/csv_parser/out/RS-EDA/RS-EDA.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-ER/RS-ER.schema.docx b/csv_parser/out/RS-ER/RS-ER.schema.docx
index d745c68253..d4612f7c3a 100644
Binary files a/csv_parser/out/RS-ER/RS-ER.schema.docx and b/csv_parser/out/RS-ER/RS-ER.schema.docx differ
diff --git a/csv_parser/out/RS-ER/RS-ER.uml_diagram.pdf b/csv_parser/out/RS-ER/RS-ER.uml_diagram.pdf
index f4e7a44a61..a631d5aa86 100644
Binary files a/csv_parser/out/RS-ER/RS-ER.uml_diagram.pdf and b/csv_parser/out/RS-ER/RS-ER.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-ERROR/RS-ERROR.schema.docx b/csv_parser/out/RS-ERROR/RS-ERROR.schema.docx
index cac17161b4..25f369c755 100644
Binary files a/csv_parser/out/RS-ERROR/RS-ERROR.schema.docx and b/csv_parser/out/RS-ERROR/RS-ERROR.schema.docx differ
diff --git a/csv_parser/out/RS-ERROR/RS-ERROR.uml_diagram.pdf b/csv_parser/out/RS-ERROR/RS-ERROR.uml_diagram.pdf
index 0c0b729680..16dd4bc52a 100644
Binary files a/csv_parser/out/RS-ERROR/RS-ERROR.uml_diagram.pdf and b/csv_parser/out/RS-ERROR/RS-ERROR.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-RI/RS-RI.schema.docx b/csv_parser/out/RS-RI/RS-RI.schema.docx
index c0d1e01046..421947ea28 100644
Binary files a/csv_parser/out/RS-RI/RS-RI.schema.docx and b/csv_parser/out/RS-RI/RS-RI.schema.docx differ
diff --git a/csv_parser/out/RS-RI/RS-RI.uml_diagram.pdf b/csv_parser/out/RS-RI/RS-RI.uml_diagram.pdf
index bd6af33156..103407a28f 100644
Binary files a/csv_parser/out/RS-RI/RS-RI.uml_diagram.pdf and b/csv_parser/out/RS-RI/RS-RI.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-RPIS/RS-RPIS.schema.docx b/csv_parser/out/RS-RPIS/RS-RPIS.schema.docx
index ab0c43c2bd..653d04a410 100644
Binary files a/csv_parser/out/RS-RPIS/RS-RPIS.schema.docx and b/csv_parser/out/RS-RPIS/RS-RPIS.schema.docx differ
diff --git a/csv_parser/out/RS-RPIS/RS-RPIS.uml_diagram.pdf b/csv_parser/out/RS-RPIS/RS-RPIS.uml_diagram.pdf
index e3152d2291..656b010dfc 100644
Binary files a/csv_parser/out/RS-RPIS/RS-RPIS.uml_diagram.pdf and b/csv_parser/out/RS-RPIS/RS-RPIS.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-RR/RS-RR.schema.docx b/csv_parser/out/RS-RR/RS-RR.schema.docx
index 646c615633..46f0d45e9b 100644
Binary files a/csv_parser/out/RS-RR/RS-RR.schema.docx and b/csv_parser/out/RS-RR/RS-RR.schema.docx differ
diff --git a/csv_parser/out/RS-RR/RS-RR.uml_diagram.pdf b/csv_parser/out/RS-RR/RS-RR.uml_diagram.pdf
index 5a8434e750..a303234db6 100644
Binary files a/csv_parser/out/RS-RR/RS-RR.uml_diagram.pdf and b/csv_parser/out/RS-RR/RS-RR.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.schema.docx b/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.schema.docx
index b59a18d880..d37278d521 100644
Binary files a/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.schema.docx and b/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.schema.docx differ
diff --git a/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.uml_diagram.pdf b/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.uml_diagram.pdf
index 0c4f45f0b1..476677a254 100644
Binary files a/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.uml_diagram.pdf and b/csv_parser/out/RS-SAS-RDV/RS-SAS-RDV.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-SR/RS-SR.schema.docx b/csv_parser/out/RS-SR/RS-SR.schema.docx
index 112910b693..28ad7c51dd 100644
Binary files a/csv_parser/out/RS-SR/RS-SR.schema.docx and b/csv_parser/out/RS-SR/RS-SR.schema.docx differ
diff --git a/csv_parser/out/RS-SR/RS-SR.uml_diagram.pdf b/csv_parser/out/RS-SR/RS-SR.uml_diagram.pdf
index 7fa191e476..09603080d7 100644
Binary files a/csv_parser/out/RS-SR/RS-SR.uml_diagram.pdf and b/csv_parser/out/RS-SR/RS-SR.uml_diagram.pdf differ
diff --git a/csv_parser/out/RS-URL/RS-URL.schema.docx b/csv_parser/out/RS-URL/RS-URL.schema.docx
index 4153d36248..e5a1d6c814 100644
Binary files a/csv_parser/out/RS-URL/RS-URL.schema.docx and b/csv_parser/out/RS-URL/RS-URL.schema.docx differ
diff --git a/csv_parser/out/RS-URL/RS-URL.uml_diagram.pdf b/csv_parser/out/RS-URL/RS-URL.uml_diagram.pdf
index bdcfd3a677..b24c8d7a0a 100644
Binary files a/csv_parser/out/RS-URL/RS-URL.uml_diagram.pdf and b/csv_parser/out/RS-URL/RS-URL.uml_diagram.pdf differ
diff --git a/csv_parser/out/TECHNICAL/TECHNICAL.schema.docx b/csv_parser/out/TECHNICAL/TECHNICAL.schema.docx
index bd3a4cac47..219225b22a 100644
Binary files a/csv_parser/out/TECHNICAL/TECHNICAL.schema.docx and b/csv_parser/out/TECHNICAL/TECHNICAL.schema.docx differ
diff --git a/csv_parser/out/TECHNICAL/TECHNICAL.uml_diagram.pdf b/csv_parser/out/TECHNICAL/TECHNICAL.uml_diagram.pdf
index 5f9d5b3a3d..63a99dee8a 100644
Binary files a/csv_parser/out/TECHNICAL/TECHNICAL.uml_diagram.pdf and b/csv_parser/out/TECHNICAL/TECHNICAL.uml_diagram.pdf differ
diff --git a/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.schema.docx b/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.schema.docx
index 2fa88df6ab..73e538483a 100644
Binary files a/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.schema.docx and b/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.schema.docx differ
diff --git a/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.uml_diagram.pdf b/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.uml_diagram.pdf
index b212ac41c2..ff1fb6513d 100644
Binary files a/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.uml_diagram.pdf and b/csv_parser/out/TECHNICAL_NOREQ/TECHNICAL_NOREQ.uml_diagram.pdf differ
diff --git a/csv_parser/out/customContent/customContent.schema.docx b/csv_parser/out/customContent/customContent.schema.docx
index b56f3e5571..5a9e778ff7 100644
Binary files a/csv_parser/out/customContent/customContent.schema.docx and b/csv_parser/out/customContent/customContent.schema.docx differ
diff --git a/csv_parser/out/customContent/customContent.uml_diagram.pdf b/csv_parser/out/customContent/customContent.uml_diagram.pdf
index cf8268ce8a..db2c3ae453 100644
Binary files a/csv_parser/out/customContent/customContent.uml_diagram.pdf and b/csv_parser/out/customContent/customContent.uml_diagram.pdf differ
diff --git a/csv_parser/out/hubsante.asyncapi.yaml b/csv_parser/out/hubsante.asyncapi.yaml
index cf1f517f03..e37314228d 100644
--- a/csv_parser/out/hubsante.asyncapi.yaml
+++ b/csv_parser/out/hubsante.asyncapi.yaml
@@ -313,6 +313,7 @@ components:
- $ref: '#/components/schemas/createCaseHealthUpdate'
- $ref: '#/components/schemas/emsi'
- $ref: '#/components/schemas/resourcesInfo'
+ - $ref: '#/components/schemas/resourcesInfoCisu'
- $ref: '#/components/schemas/resourcesEngagement'
- $ref: '#/components/schemas/resourcesStatus'
- $ref: '#/components/schemas/resourcesRequest'
@@ -6159,6 +6160,38 @@ components:
- datetime: '2022-09-27T08:23:34+02:00'
status: ARRIVE
availability: 'FALSE'
+ resourcesInfoCisu:
+ $id: classpath:/json-schema/schema#
+ x-id: RC-RI.schema.json#
+ example: example.json#
+ type: object
+ title: resourcesInfoCisu
+ required:
+ - caseId
+ properties:
+ caseId:
+ type: string
+ title: Identifiant affaire/dossier
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/caseId
+ description: "A valoriser avec l'identifiant partag\xE9 de l'affaire/dossier,\
+ \ g\xE9n\xE9r\xE9 une seule fois par le syst\xE8me du partenaire qui recoit\
+ \ la primo-demande de secours (cr\xE9ateur du dossier). \nIl est valoris\xE9\
+ \ comme suit lors de sa cr\xE9ation : \n{pays}.{domaine}.{organisation}.{senderCaseId}\n\
+ \nIl doit pouvoir \xEAtre g\xE9n\xE9r\xE9 de fa\xE7on d\xE9centralis\xE9\
+ e et ne pr\xE9senter aucune ambigu\xEFt\xE9.\n Il doit \xEAtre unique\
+ \ dans l'ensemble des syst\xE8mes : le num\xE9ro de dossier fourni par\
+ \ celui qui g\xE9n\xE8re l'identifiant partag\xE9 doit donc \xEAtre un\
+ \ num\xE9ro unique dans son syst\xE8me."
+ pattern: ^([a-zA-Z0-9_-]+\.?){4,10}$
+ examples:
+ - fr.health.samu440.DRFR15440241550012
+ resource:
+ type: array
+ items:
+ $ref: '#/components/schemas/resource'
+ additionalProperties: false
resourcesEngagement:
$id: classpath:/json-schema/schema#
x-id: RS-ER.schema.json#
diff --git a/csv_parser/out/schemas.yaml b/csv_parser/out/schemas.yaml
index fb0e4a7cc7..ba36bf6a76 100644
--- a/csv_parser/out/schemas.yaml
+++ b/csv_parser/out/schemas.yaml
@@ -83,6 +83,18 @@ schemas:
sheet: RS-RI
subschema: N
xmlns: eda:1.9:resourcesinfo
+- automaticGeneration: Y
+ customExtendClass: null
+ customExtendPackage: null
+ file: model.xlsx
+ header: Y
+ package: cisu.resources
+ perimeter: 15-18
+ rootElement: resourcesInfoCisu
+ schema: RC-RI
+ sheet: RS-RI
+ subschema: N
+ xmlns: eda:1.9:resourcesInfoCisu
- automaticGeneration: Y
customExtendClass: null
customExtendPackage: null
diff --git a/generator/config/generated/RC-RI/RC-RI.generator-config.json b/generator/config/generated/RC-RI/RC-RI.generator-config.json
new file mode 100644
index 0000000000..f4f5bf7ea7
--- /dev/null
+++ b/generator/config/generated/RC-RI/RC-RI.generator-config.json
@@ -0,0 +1,22 @@
+{
+ "inputSpec": "./input/RC-RI.openapi.yaml",
+ "outputDir": "classes/",
+ "generatorName": "java",
+ "templateDir": "templates/child-classes/",
+ "globalProperties": {
+ "models": "",
+ "apis": false,
+ "apiTests": false,
+ "apiDocs": false,
+ "modelDocs": false,
+ "modelTests": false
+ },
+ "additionalProperties": {
+ "library": "native",
+ "modelPackage": "com.hubsante.model.cisu.resources",
+ "serializationLibrary": "jackson",
+ "openApiNullable": true,
+ "supportUrlQuery": false,
+ "enablePostProcessFile": true
+ }
+}
diff --git a/generator/config/generated/RC-RI/RC-RI.usecase.generator-config.json b/generator/config/generated/RC-RI/RC-RI.usecase.generator-config.json
new file mode 100644
index 0000000000..84207f5fb4
--- /dev/null
+++ b/generator/config/generated/RC-RI/RC-RI.usecase.generator-config.json
@@ -0,0 +1,23 @@
+{
+ "inputSpec": "./input/RC-RI.openapi.yaml",
+ "outputDir": "classes/",
+ "generatorName": "java",
+ "templateDir": "templates/useCase/",
+ "globalProperties": {
+ "models": "resourcesInfoCisu",
+ "apis": false,
+ "apiTests": false,
+ "apiDocs": false,
+ "modelDocs": false,
+ "modelTests": false
+ },
+ "additionalProperties": {
+ "library": "native",
+ "modelPackage": "com.hubsante.model.cisu.resources",
+ "serializationLibrary": "jackson",
+ "openApiNullable": true,
+ "supportUrlQuery": false,
+ "xmlns": "eda:1.9:resourcesInfoCisu",
+ "enablePostProcessFile": true
+ }
+}
diff --git a/generator/config/generated/RC-RI/RC-RI.wrapper.generator-config.json b/generator/config/generated/RC-RI/RC-RI.wrapper.generator-config.json
new file mode 100644
index 0000000000..7869930080
--- /dev/null
+++ b/generator/config/generated/RC-RI/RC-RI.wrapper.generator-config.json
@@ -0,0 +1,23 @@
+{
+ "inputSpec": "./input/RC-RI.openapi.yaml",
+ "outputDir": "classes/",
+ "generatorName": "java",
+ "templateDir": "templates/wrapper/",
+ "globalProperties": {
+ "models": "resourcesInfoCisuWrapper",
+ "apis": false,
+ "apiTests": false,
+ "apiDocs": false,
+ "modelDocs": false,
+ "modelTests": false
+ },
+ "additionalProperties": {
+ "library": "native",
+ "modelPackage": "com.hubsante.model.cisu.resources",
+ "serializationLibrary": "jackson",
+ "openApiNullable": true,
+ "supportUrlQuery": false,
+ "xmlns": "eda:1.9",
+ "enablePostProcessFile": true
+ }
+}
diff --git a/generator/input/RC-RI.openapi.yaml b/generator/input/RC-RI.openapi.yaml
new file mode 100644
index 0000000000..6c0316b414
--- /dev/null
+++ b/generator/input/RC-RI.openapi.yaml
@@ -0,0 +1,327 @@
+openapi: 3.0.0
+components:
+ schemas:
+ resourcesInfoCisuWrapper:
+ type: object
+ required:
+ - resourcesInfoCisu
+ properties:
+ resourcesInfoCisu:
+ $ref: '#/components/schemas/resourcesInfoCisu'
+ resourcesInfoCisu:
+ $id: classpath:/json-schema/schema#
+ x-id: RC-RI.schema.json#
+ example: example.json#
+ type: object
+ title: resourcesInfoCisu
+ required:
+ - caseId
+ properties:
+ caseId:
+ type: string
+ title: Identifiant affaire/dossier
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/caseId
+ description: "A valoriser avec l'identifiant partag\xE9 de l'affaire/dossier,\
+ \ g\xE9n\xE9r\xE9 une seule fois par le syst\xE8me du partenaire qui recoit\
+ \ la primo-demande de secours (cr\xE9ateur du dossier). \nIl est valoris\xE9\
+ \ comme suit lors de sa cr\xE9ation : \n{pays}.{domaine}.{organisation}.{senderCaseId}\n\
+ \nIl doit pouvoir \xEAtre g\xE9n\xE9r\xE9 de fa\xE7on d\xE9centralis\xE9\
+ e et ne pr\xE9senter aucune ambigu\xEFt\xE9.\n Il doit \xEAtre unique\
+ \ dans l'ensemble des syst\xE8mes : le num\xE9ro de dossier fourni par\
+ \ celui qui g\xE9n\xE8re l'identifiant partag\xE9 doit donc \xEAtre un\
+ \ num\xE9ro unique dans son syst\xE8me."
+ pattern: ^([a-zA-Z0-9_-]+\.?){4,10}$
+ examples:
+ - fr.health.samu440.DRFR15440241550012
+ resource:
+ type: array
+ items:
+ $ref: '#/components/schemas/resource'
+ additionalProperties: false
+ resource:
+ type: object
+ title: Ressource
+ x-display: expansion-panels
+ x-health-only: false
+ required:
+ - datetime
+ - resourceId
+ - vehicleType
+ - state
+ properties:
+ datetime:
+ type: string
+ title: "Date/heure de d\xE9clenchement"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/datetime
+ description: A valoriser avec la date et heure d'engagement de la ressource/du
+ vecteur
+ pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[\-+]\d{2}:\d{2}$
+ format: date-time
+ examples:
+ - '2022-09-27T08:23:34+02:00'
+ resourceId:
+ type: string
+ title: "ID Ressource partag\xE9"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/resourceId
+ description: "A valoriser avec l'identifiant partag\xE9 unique de la ressource\
+ \ engag\xE9e, norm\xE9 comme suit :\n{orgID}.resource.{ID unique de la\
+ \ ressource partag\xE9e}\nOU - uniquement dans le cas o\xF9 un ID unique\
+ \ de ressource ne peut pas \xEAtre garanti par l'organisation propri\xE9\
+ taire :\n{orgID}.resource.{sendercaseId}.{n\xB0 d\u2019ordre chronologique\
+ \ de la ressource}"
+ pattern: ^([a-zA-Z0-9_-]+\.){3,8}resource(\.[a-zA-Z0-9_-]+){1,2}$
+ examples:
+ - 'fr.health.samu770.resource.VLM250
+
+ fr.health.samu440.resource.DRFR15DDXAAJJJ0000.1'
+ requestId:
+ type: string
+ title: "ID Demande partag\xE9"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/requestId
+ description: "A valoriser avec l'identifiant unique partag\xE9 de la demande\
+ \ de ressource (si la ressource a \xE9t\xE9 engag\xE9e suite \xE0 une\
+ \ demande de ressource), norm\xE9 comme suit :\n{orgID}.request.{ID unique\
+ \ de la demande dans le syst\xE8me \xE9metteur}\nOU - si un ID unique\
+ \ de la demande n'\xE9tait pas disponible : \n{OrgId \xE9metteur}.request.{senderCaseId}.{num\xE9\
+ ro d\u2019ordre chronologique}"
+ pattern: ^([a-zA-Z0-9_-]+\.){3,8}request(\.[a-zA-Z0-9_-]+){1,2}$
+ examples:
+ - 'fr.health.samu770.request.1249875
+
+ fr.health.samu690.request.DRFR15690242370035.3'
+ missionId:
+ type: string
+ title: ID Mission local
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/missionId
+ description: "A valoriser avec le num\xE9ro de mission unique du central\
+ \ d\u2019appel (PSAP, \u2026) qui a d\xE9clench\xE9 le vecteur"
+ examples:
+ - DRFR15DDXAAJJJ0000.M001
+ orgId:
+ type: string
+ title: "ID Organisation propri\xE9taire"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/orgId
+ description: "A valoriser avec l'identifiant de l'organisation \xE0 laquelle\
+ \ appartient la ressource, norm\xE9 comme suit : \n{pays}.{domaine}.{organisation}"
+ examples:
+ - fr.health.samu440
+ centerName:
+ type: string
+ title: "Nom du centre d\u2019affectation"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/centerName
+ description: A valoriser avec le lieu de garage principal
+ examples:
+ - CHU Nantes
+ vehicleType:
+ type: string
+ title: Type de vecteur
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/vehicleType
+ description: "A valoriser avec le type de vecteur mobilis\xE9 : cf. nomenclature\
+ \ associ\xE9e"
+ enum:
+ - SMUR
+ - SIS
+ examples:
+ - SMUR
+ name:
+ type: string
+ title: Nom du vecteur
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/name
+ description: "A valoriser avec le nom donn\xE9 \xE0 la ressource par l\u2019\
+ organisation d\u2019appartenance"
+ examples:
+ - SMUR 123
+ centerCity:
+ type: string
+ title: "Commune du centre d\u2019affectation"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/centerCity
+ description: A valoriser avec le code INSEE de la commune du centre d'affectation
+ pattern: ^[0-9]{5}$
+ examples:
+ - 44109
+ team:
+ $ref: '#/components/schemas/team'
+ state:
+ $ref: '#/components/schemas/state'
+ contact:
+ $ref: '#/components/schemas/contact'
+ freetext:
+ type: array
+ x-health-only: false
+ items:
+ type: string
+ title: Commentaires
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/freetext/0
+ description: "Texte libre permettant de passer toute autre information\
+ \ sur la ressource (\xE9quipements suppl\xE9mentaires / sp\xE9cifiques,\
+ \ particularit\xE9s du vecteur, etc.)"
+ examples:
+ - "SMUR p\xE9diatrique"
+ additionalProperties: false
+ example: example.json#/resource/0
+ team:
+ type: object
+ title: Equipe vecteur
+ x-display: expansion-panels
+ x-health-only: false
+ required: []
+ properties:
+ medicalLevel:
+ type: string
+ title: Type
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/team/medicalLevel
+ description: "A valoriser avec le niveau de m\xE9dicalisation du vecteur.\
+ \ Cf. nomenclature associ\xE9e"
+ enum:
+ - MED
+ - PARAMED
+ - SECOURS
+ - SANS
+ examples:
+ - MED
+ name:
+ type: string
+ title: Nom
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/team/name
+ description: "A valoriser avec le nom de l'\xE9quipe \xE0 bord du vecteur\
+ \ (celui communiqu\xE9 par l'organisation \xE0 laquelle l'\xE9quipe appartient)"
+ examples:
+ - Equipe A
+ additionalProperties: false
+ example: example.json#/resource/0/team
+ examples:
+ - medicalLevel: MED
+ name: Equipe A
+ state:
+ type: object
+ title: Etat vecteur
+ x-display: expansion-panels
+ x-health-only: false
+ required:
+ - datetime
+ - status
+ properties:
+ datetime:
+ type: string
+ title: Date/heure de changement de statut
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/state/datetime
+ description: A valoriser avec la date et heure d'engagement de changement
+ vers le nouveau statut
+ pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[\-+]\d{2}:\d{2}$
+ format: date-time
+ examples:
+ - '2022-09-27T08:23:34+02:00'
+ status:
+ type: string
+ title: Statut du vecteur
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/state/status
+ description: "A valoriser avec le statut du vecteur. Cf nomenclature associ\xE9\
+ e."
+ enum:
+ - DECISION
+ - DECLENCHE
+ - DEPART
+ - ANNULE
+ - ARRIVEE
+ - PEC
+ - BILAN
+ - ORIENTAT
+ - TRANSP
+ - ETAPE1
+ - TRANSP2
+ - ETAPE2
+ - TRANSP3
+ - DESTIN
+ - FINPEC
+ - RETOUR
+ - RET-BASE
+ - REN-BASE
+ examples:
+ - ARRIVE
+ availability:
+ type: boolean
+ title: "Disponibilit\xE9 du vecteur"
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/state/availability
+ description: "A valoriser de mani\xE8re \xE0 indiquer la disponibilit\xE9\
+ \ du vecteur.\nTRUE = DISPONIBLE\nFALSE = INDISPONIBLE\nVIDE = INCONNU"
+ examples:
+ - 'FALSE'
+ additionalProperties: false
+ example: example.json#/resource/0/state
+ examples:
+ - datetime: '2022-09-27T08:23:34+02:00'
+ status: ARRIVE
+ availability: 'FALSE'
+ contact:
+ type: object
+ title: Contact
+ x-display: expansion-panels
+ x-health-only: false
+ required: []
+ properties:
+ type:
+ type: string
+ title: 'Type de contact '
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/contact/type
+ description: "A valoriser avec le type de l'URI utilis\xE9e. Cf nomenclature\
+ \ associ\xE9e."
+ enum:
+ - EMAIL
+ - FAX
+ - MSS
+ - POSTAL
+ - RADIO
+ - TEL
+ - WEB
+ examples:
+ - PHNADD
+ details:
+ type: string
+ title: URI du contact
+ x-health-only: false
+ x-cols: 6
+ example: example.json#/resource/0/contact/details
+ description: "A valoriser avec la valeur de l'URI utilis\xE9e\nLe format\
+ \ attendu pour un num\xE9ro de t\xE9l\xE9phone est le suivant : +{indicatif\
+ \ pays}{num\xE9ro de t\xE9l\xE9phone}"
+ examples:
+ - '+33671830530'
+ additionalProperties: false
+ example: example.json#/resource/0/contact
+ examples:
+ - type: PHNADD
+ details: '+33671830530'
diff --git a/generator_csharp/config/generated/RC-RI/RC-RI.generator-config.json b/generator_csharp/config/generated/RC-RI/RC-RI.generator-config.json
new file mode 100644
index 0000000000..8bdfc6df36
--- /dev/null
+++ b/generator_csharp/config/generated/RC-RI/RC-RI.generator-config.json
@@ -0,0 +1,16 @@
+{
+ "inputSpec": "../generator/input/RC-RI.openapi.yaml",
+ "outputDir": "package/",
+ "generatorName": "csharp",
+ "globalProperties": {
+ "models": "",
+ "apis": false,
+ "apiTests": false,
+ "apiDocs": false,
+ "modelDocs": false,
+ "modelTests": false
+ },
+ "additionalProperties": {
+ "packageName": "HubsanteModel/Cisu.resources"
+ }
+}
diff --git a/generator_python/config/generated/RC-RI/RC-RI.generator-config.json b/generator_python/config/generated/RC-RI/RC-RI.generator-config.json
new file mode 100644
index 0000000000..9d174b8723
--- /dev/null
+++ b/generator_python/config/generated/RC-RI/RC-RI.generator-config.json
@@ -0,0 +1,16 @@
+{
+ "inputSpec": "../generator/input/RC-RI.openapi.yaml",
+ "outputDir": "package/src/",
+ "generatorName": "python",
+ "globalProperties": {
+ "models": "",
+ "apis": false,
+ "apiTests": false,
+ "apiDocs": false,
+ "modelDocs": false,
+ "modelTests": false
+ },
+ "additionalProperties": {
+ "packageName": "hubsante_model.cisu.resources"
+ }
+}
diff --git a/generator_ruby/config/generated/RC-RI/RC-RI.generator-config.json b/generator_ruby/config/generated/RC-RI/RC-RI.generator-config.json
new file mode 100644
index 0000000000..a348556baa
--- /dev/null
+++ b/generator_ruby/config/generated/RC-RI/RC-RI.generator-config.json
@@ -0,0 +1,20 @@
+{
+ "inputSpec": "../generator/input/RC-RI.openapi.yaml",
+ "outputDir": "gem/cisuresources",
+ "generatorName": "ruby",
+ "globalProperties": {
+ "models": "",
+ "apis": false,
+ "apiTests": false,
+ "apiDocs": false,
+ "modelDocs": false,
+ "modelTests": false
+ },
+ "additionalProperties": {
+ "moduleName": "Cisuresources",
+ "gemName": "hubsanteModel",
+ "allowUnicodeIdentifiers": true,
+ "useAutoload": true,
+ "sortParamsByRequiredFlag": true
+ }
+}
diff --git a/src/main/java/com/hubsante/model/cisu/resources/Contact.java b/src/main/java/com/hubsante/model/cisu/resources/Contact.java
new file mode 100644
index 0000000000..595a5a0541
--- /dev/null
+++ b/src/main/java/com/hubsante/model/cisu/resources/Contact.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright © 2023-2025 Agence du Numerique en Sante (ANS)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ *
+ *
+ *
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator
+ * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
+ * the class manually.
+ */
+
+package com.hubsante.model.cisu.resources;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import java.util.Arrays;
+import java.util.Arrays;
+import java.util.Objects;
+
+/**
+ * Contact
+ */
+@JsonPropertyOrder({Contact.JSON_PROPERTY_TYPE, Contact.JSON_PROPERTY_DETAILS})
+@JsonTypeName("contact")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class Contact {
+
+ /**
+ * A valoriser avec le type de l'URI utilisée. Cf nomenclature associée.
+ */
+ public enum TypeEnum {
+ EMAIL("EMAIL"),
+
+ FAX("FAX"),
+
+ MSS("MSS"),
+
+ POSTAL("POSTAL"),
+
+ RADIO("RADIO"),
+
+ TEL("TEL"),
+
+ WEB("WEB");
+
+ private String value;
+
+ TypeEnum(String value) { this.value = value; }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private TypeEnum type;
+
+ public static final String JSON_PROPERTY_DETAILS = "details";
+ private String details;
+
+ public Contact() {}
+
+ public Contact type(TypeEnum type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le type de l'URI utilisée. Cf nomenclature associée.
+ * @return type
+ **/
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setType(TypeEnum type) {
+ this.type = type;
+ }
+
+ public Contact details(String details) {
+
+ this.details = details;
+ return this;
+ }
+
+ /**
+ * A valoriser avec la valeur de l'URI utilisée Le format attendu pour un
+ *numéro de téléphone est le suivant : +{indicatif pays}{numéro de téléphone}
+ * @return details
+ **/
+ @JsonProperty(JSON_PROPERTY_DETAILS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getDetails() {
+ return details;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DETAILS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDetails(String details) {
+ this.details = details;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Contact contact = (Contact)o;
+ return Objects.equals(this.type, contact.type) &&
+ Objects.equals(this.details, contact.details);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, details);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Contact {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" details: ").append(toIndentedString(details)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/hubsante/model/cisu/resources/Resource.java b/src/main/java/com/hubsante/model/cisu/resources/Resource.java
new file mode 100644
index 0000000000..0c643c8b2e
--- /dev/null
+++ b/src/main/java/com/hubsante/model/cisu/resources/Resource.java
@@ -0,0 +1,537 @@
+/**
+ * Copyright © 2023-2025 Agence du Numerique en Sante (ANS)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ *
+ *
+ *
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator
+ * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
+ * the class manually.
+ */
+
+package com.hubsante.model.cisu.resources;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import com.hubsante.model.cisu.resources.Contact;
+import com.hubsante.model.cisu.resources.State;
+import com.hubsante.model.cisu.resources.Team;
+import java.time.OffsetDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Resource
+ */
+@JsonPropertyOrder(
+ {Resource.JSON_PROPERTY_DATETIME, Resource.JSON_PROPERTY_RESOURCE_ID,
+ Resource.JSON_PROPERTY_REQUEST_ID, Resource.JSON_PROPERTY_MISSION_ID,
+ Resource.JSON_PROPERTY_ORG_ID, Resource.JSON_PROPERTY_CENTER_NAME,
+ Resource.JSON_PROPERTY_VEHICLE_TYPE, Resource.JSON_PROPERTY_NAME,
+ Resource.JSON_PROPERTY_CENTER_CITY, Resource.JSON_PROPERTY_TEAM,
+ Resource.JSON_PROPERTY_STATE, Resource.JSON_PROPERTY_CONTACT,
+ Resource.JSON_PROPERTY_FREETEXT})
+@JsonTypeName("resource")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class Resource {
+ public static final String JSON_PROPERTY_DATETIME = "datetime";
+ private OffsetDateTime datetime;
+
+ public static final String JSON_PROPERTY_RESOURCE_ID = "resourceId";
+ private String resourceId;
+
+ public static final String JSON_PROPERTY_REQUEST_ID = "requestId";
+ private String requestId;
+
+ public static final String JSON_PROPERTY_MISSION_ID = "missionId";
+ private String missionId;
+
+ public static final String JSON_PROPERTY_ORG_ID = "orgId";
+ private String orgId;
+
+ public static final String JSON_PROPERTY_CENTER_NAME = "centerName";
+ private String centerName;
+
+ /**
+ * A valoriser avec le type de vecteur mobilisé : cf. nomenclature associée
+ */
+ public enum VehicleTypeEnum {
+ SMUR("SMUR"),
+
+ SIS("SIS");
+
+ private String value;
+
+ VehicleTypeEnum(String value) { this.value = value; }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static VehicleTypeEnum fromValue(String value) {
+ for (VehicleTypeEnum b : VehicleTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_VEHICLE_TYPE = "vehicleType";
+ private VehicleTypeEnum vehicleType;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_CENTER_CITY = "centerCity";
+ private String centerCity;
+
+ public static final String JSON_PROPERTY_TEAM = "team";
+ private Team team;
+
+ public static final String JSON_PROPERTY_STATE = "state";
+ private State state;
+
+ public static final String JSON_PROPERTY_CONTACT = "contact";
+ private Contact contact;
+
+ public static final String JSON_PROPERTY_FREETEXT = "freetext";
+ private List freetext;
+
+ public Resource() {}
+
+ public Resource datetime(OffsetDateTime datetime) {
+
+ this.datetime = datetime;
+ return this;
+ }
+
+ /**
+ * A valoriser avec la date et heure d'engagement de la ressource/du
+ *vecteur
+ * @return datetime
+ **/
+ @JsonProperty(JSON_PROPERTY_DATETIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public OffsetDateTime getDatetime() {
+ return datetime;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DATETIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDatetime(OffsetDateTime datetime) {
+ this.datetime = datetime;
+ }
+
+ public Resource resourceId(String resourceId) {
+
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * A valoriser avec l'identifiant partagé unique de la ressource engagée,
+ *normé comme suit : {orgID}.resource.{ID unique de la ressource partagée} OU
+ *- uniquement dans le cas où un ID unique de ressource ne peut pas être
+ *garanti par l'organisation propriétaire :
+ *{orgID}.resource.{sendercaseId}.{n° d’ordre chronologique de la ressource}
+ * @return resourceId
+ **/
+ @JsonProperty(JSON_PROPERTY_RESOURCE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESOURCE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public Resource requestId(String requestId) {
+
+ this.requestId = requestId;
+ return this;
+ }
+
+ /**
+ * A valoriser avec l'identifiant unique partagé de la demande de
+ *ressource (si la ressource a été engagée suite à une demande de ressource),
+ *normé comme suit : {orgID}.request.{ID unique de la demande dans le système
+ *émetteur} OU - si un ID unique de la demande n'était pas disponible :
+ *{OrgId émetteur}.request.{senderCaseId}.{numéro d’ordre chronologique}
+ * @return requestId
+ **/
+ @JsonProperty(JSON_PROPERTY_REQUEST_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getRequestId() {
+ return requestId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REQUEST_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRequestId(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public Resource missionId(String missionId) {
+
+ this.missionId = missionId;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le numéro de mission unique du central d’appel (PSAP, …)
+ *qui a déclenché le vecteur
+ * @return missionId
+ **/
+ @JsonProperty(JSON_PROPERTY_MISSION_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getMissionId() {
+ return missionId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MISSION_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMissionId(String missionId) {
+ this.missionId = missionId;
+ }
+
+ public Resource orgId(String orgId) {
+
+ this.orgId = orgId;
+ return this;
+ }
+
+ /**
+ * A valoriser avec l'identifiant de l'organisation à laquelle
+ *appartient la ressource, normé comme suit : {pays}.{domaine}.{organisation}
+ * @return orgId
+ **/
+ @JsonProperty(JSON_PROPERTY_ORG_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getOrgId() {
+ return orgId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ORG_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOrgId(String orgId) {
+ this.orgId = orgId;
+ }
+
+ public Resource centerName(String centerName) {
+
+ this.centerName = centerName;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le lieu de garage principal
+ * @return centerName
+ **/
+ @JsonProperty(JSON_PROPERTY_CENTER_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getCenterName() {
+ return centerName;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CENTER_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCenterName(String centerName) {
+ this.centerName = centerName;
+ }
+
+ public Resource vehicleType(VehicleTypeEnum vehicleType) {
+
+ this.vehicleType = vehicleType;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le type de vecteur mobilisé : cf. nomenclature associée
+ * @return vehicleType
+ **/
+ @JsonProperty(JSON_PROPERTY_VEHICLE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public VehicleTypeEnum getVehicleType() {
+ return vehicleType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VEHICLE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setVehicleType(VehicleTypeEnum vehicleType) {
+ this.vehicleType = vehicleType;
+ }
+
+ public Resource name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le nom donné à la ressource par l’organisation
+ *d’appartenance
+ * @return name
+ **/
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Resource centerCity(String centerCity) {
+
+ this.centerCity = centerCity;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le code INSEE de la commune du centre d'affectation
+ * @return centerCity
+ **/
+ @JsonProperty(JSON_PROPERTY_CENTER_CITY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getCenterCity() {
+ return centerCity;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CENTER_CITY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCenterCity(String centerCity) {
+ this.centerCity = centerCity;
+ }
+
+ public Resource team(Team team) {
+
+ this.team = team;
+ return this;
+ }
+
+ /**
+ * Get team
+ * @return team
+ **/
+ @JsonProperty(JSON_PROPERTY_TEAM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Team getTeam() {
+ return team;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TEAM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTeam(Team team) {
+ this.team = team;
+ }
+
+ public Resource state(State state) {
+
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get state
+ * @return state
+ **/
+ @JsonProperty(JSON_PROPERTY_STATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public State getState() {
+ return state;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ public Resource contact(Contact contact) {
+
+ this.contact = contact;
+ return this;
+ }
+
+ /**
+ * Get contact
+ * @return contact
+ **/
+ @JsonProperty(JSON_PROPERTY_CONTACT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Contact getContact() {
+ return contact;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CONTACT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setContact(Contact contact) {
+ this.contact = contact;
+ }
+
+ public Resource freetext(List freetext) {
+
+ this.freetext = freetext;
+ return this;
+ }
+
+ public Resource addFreetextItem(String freetextItem) {
+ if (this.freetext == null) {
+ this.freetext = new ArrayList<>();
+ }
+ this.freetext.add(freetextItem);
+ return this;
+ }
+
+ /**
+ * Get freetext
+ * @return freetext
+ **/
+ @JsonProperty(JSON_PROPERTY_FREETEXT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public List getFreetext() {
+ return freetext;
+ }
+
+ @JacksonXmlElementWrapper(useWrapping = false)
+
+ @JsonProperty(JSON_PROPERTY_FREETEXT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setFreetext(List freetext) {
+ if (freetext == null) {
+ return;
+ }
+ if (this.freetext == null) {
+ this.freetext = new ArrayList<>();
+ }
+ this.freetext.addAll(freetext);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Resource resource = (Resource)o;
+ return Objects.equals(this.datetime, resource.datetime) &&
+ Objects.equals(this.resourceId, resource.resourceId) &&
+ Objects.equals(this.requestId, resource.requestId) &&
+ Objects.equals(this.missionId, resource.missionId) &&
+ Objects.equals(this.orgId, resource.orgId) &&
+ Objects.equals(this.centerName, resource.centerName) &&
+ Objects.equals(this.vehicleType, resource.vehicleType) &&
+ Objects.equals(this.name, resource.name) &&
+ Objects.equals(this.centerCity, resource.centerCity) &&
+ Objects.equals(this.team, resource.team) &&
+ Objects.equals(this.state, resource.state) &&
+ Objects.equals(this.contact, resource.contact) &&
+ Objects.equals(this.freetext, resource.freetext);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(datetime, resourceId, requestId, missionId, orgId,
+ centerName, vehicleType, name, centerCity, team, state,
+ contact, freetext);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Resource {\n");
+ sb.append(" datetime: ").append(toIndentedString(datetime)).append("\n");
+ sb.append(" resourceId: ")
+ .append(toIndentedString(resourceId))
+ .append("\n");
+ sb.append(" requestId: ")
+ .append(toIndentedString(requestId))
+ .append("\n");
+ sb.append(" missionId: ")
+ .append(toIndentedString(missionId))
+ .append("\n");
+ sb.append(" orgId: ").append(toIndentedString(orgId)).append("\n");
+ sb.append(" centerName: ")
+ .append(toIndentedString(centerName))
+ .append("\n");
+ sb.append(" vehicleType: ")
+ .append(toIndentedString(vehicleType))
+ .append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" centerCity: ")
+ .append(toIndentedString(centerCity))
+ .append("\n");
+ sb.append(" team: ").append(toIndentedString(team)).append("\n");
+ sb.append(" state: ").append(toIndentedString(state)).append("\n");
+ sb.append(" contact: ").append(toIndentedString(contact)).append("\n");
+ sb.append(" freetext: ").append(toIndentedString(freetext)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/hubsante/model/cisu/resources/ResourcesInfoCisu.java b/src/main/java/com/hubsante/model/cisu/resources/ResourcesInfoCisu.java
new file mode 100644
index 0000000000..5fc0514779
--- /dev/null
+++ b/src/main/java/com/hubsante/model/cisu/resources/ResourcesInfoCisu.java
@@ -0,0 +1,170 @@
+/**
+ * Copyright © 2023-2025 Agence du Numerique en Sante (ANS)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ *
+ *
+ *
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator
+ * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
+ * the class manually.
+ */
+
+package com.hubsante.model.cisu.resources;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import com.hubsante.model.cisu.resources.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ResourcesInfoCisu
+ */
+@JsonPropertyOrder({ResourcesInfoCisu.JSON_PROPERTY_CASE_ID,
+ ResourcesInfoCisu.JSON_PROPERTY_RESOURCE})
+@JsonTypeName("resourcesInfoCisu")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class ResourcesInfoCisu {
+ @JacksonXmlProperty(isAttribute = true)
+ String xmlns = "urn:emergency:eda:1.9:resourcesInfoCisu";
+ public static final String JSON_PROPERTY_CASE_ID = "caseId";
+ private String caseId;
+
+ public static final String JSON_PROPERTY_RESOURCE = "resource";
+ private List resource;
+
+ public ResourcesInfoCisu() {}
+
+ public ResourcesInfoCisu caseId(String caseId) {
+
+ this.caseId = caseId;
+ return this;
+ }
+
+ /**
+ * A valoriser avec l'identifiant partagé de l'affaire/dossier, généré
+ *une seule fois par le système du partenaire qui recoit la primo-demande de
+ *secours (créateur du dossier). Il est valorisé comme suit lors de sa
+ *création : {pays}.{domaine}.{organisation}.{senderCaseId} Il doit pouvoir
+ *être généré de façon décentralisée et ne présenter aucune ambiguïté. Il
+ *doit être unique dans l'ensemble des systèmes : le numéro de dossier
+ *fourni par celui qui génère l'identifiant partagé doit donc être un
+ *numéro unique dans son système.
+ * @return caseId
+ **/
+ @JsonProperty(JSON_PROPERTY_CASE_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getCaseId() {
+ return caseId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CASE_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCaseId(String caseId) {
+ this.caseId = caseId;
+ }
+
+ public ResourcesInfoCisu resource(List resource) {
+
+ this.resource = resource;
+ return this;
+ }
+
+ public ResourcesInfoCisu addResourceItem(Resource resourceItem) {
+ if (this.resource == null) {
+ this.resource = new ArrayList<>();
+ }
+ this.resource.add(resourceItem);
+ return this;
+ }
+
+ /**
+ * Get resource
+ * @return resource
+ **/
+ @JsonProperty(JSON_PROPERTY_RESOURCE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public List getResource() {
+ return resource;
+ }
+
+ @JacksonXmlElementWrapper(useWrapping = false)
+
+ @JsonProperty(JSON_PROPERTY_RESOURCE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setResource(List resource) {
+ if (resource == null) {
+ return;
+ }
+ if (this.resource == null) {
+ this.resource = new ArrayList<>();
+ }
+ this.resource.addAll(resource);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResourcesInfoCisu resourcesInfoCisu = (ResourcesInfoCisu)o;
+ return Objects.equals(this.caseId, resourcesInfoCisu.caseId) &&
+ Objects.equals(this.resource, resourcesInfoCisu.resource);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(caseId, resource);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResourcesInfoCisu {\n");
+ sb.append(" caseId: ").append(toIndentedString(caseId)).append("\n");
+ sb.append(" resource: ").append(toIndentedString(resource)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/hubsante/model/cisu/resources/ResourcesInfoCisuWrapper.java b/src/main/java/com/hubsante/model/cisu/resources/ResourcesInfoCisuWrapper.java
new file mode 100644
index 0000000000..15b68f53fd
--- /dev/null
+++ b/src/main/java/com/hubsante/model/cisu/resources/ResourcesInfoCisuWrapper.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright © 2023-2025 Agence du Numerique en Sante (ANS)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ *
+ *
+ *
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator
+ * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
+ * the class manually.
+ */
+
+package com.hubsante.model.cisu.resources;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import com.hubsante.model.cisu.resources.ResourcesInfoCisu;
+import com.hubsante.model.rcde.DistributionElement;
+import java.util.Arrays;
+import java.util.Arrays;
+import java.util.Objects;
+
+/**
+ * ResourcesInfoCisuWrapper
+ */
+@JsonPropertyOrder({DistributionElement.JSON_PROPERTY_MESSAGE_ID,
+ DistributionElement.JSON_PROPERTY_SENDER,
+ DistributionElement.JSON_PROPERTY_SENT_AT,
+ DistributionElement.JSON_PROPERTY_KIND,
+ DistributionElement.JSON_PROPERTY_STATUS,
+ DistributionElement.JSON_PROPERTY_RECIPIENT,
+ ResourcesInfoCisuWrapper.JSON_PROPERTY_RESOURCES_INFO_CISU})
+@JsonTypeName("resourcesInfoCisuWrapper")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class ResourcesInfoCisuWrapper extends DistributionElement {
+ @JacksonXmlProperty(isAttribute = true)
+ String xmlns = "urn:emergency:eda:1.9";
+ public static final String JSON_PROPERTY_RESOURCES_INFO_CISU =
+ "resourcesInfoCisu";
+ private ResourcesInfoCisu resourcesInfoCisu;
+
+ public ResourcesInfoCisuWrapper() {}
+
+ public ResourcesInfoCisuWrapper
+ resourcesInfoCisu(ResourcesInfoCisu resourcesInfoCisu) {
+
+ this.resourcesInfoCisu = resourcesInfoCisu;
+ return this;
+ }
+
+ /**
+ * Get resourcesInfoCisu
+ * @return resourcesInfoCisu
+ **/
+ @JsonProperty(JSON_PROPERTY_RESOURCES_INFO_CISU)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ResourcesInfoCisu getResourcesInfoCisu() {
+ return resourcesInfoCisu;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESOURCES_INFO_CISU)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResourcesInfoCisu(ResourcesInfoCisu resourcesInfoCisu) {
+ this.resourcesInfoCisu = resourcesInfoCisu;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResourcesInfoCisuWrapper resourcesInfoCisuWrapper =
+ (ResourcesInfoCisuWrapper)o;
+ return Objects.equals(this.resourcesInfoCisu,
+ resourcesInfoCisuWrapper.resourcesInfoCisu) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(resourcesInfoCisu, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResourcesInfoCisuWrapper {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" resourcesInfoCisu: ")
+ .append(toIndentedString(resourcesInfoCisu))
+ .append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/hubsante/model/cisu/resources/State.java b/src/main/java/com/hubsante/model/cisu/resources/State.java
new file mode 100644
index 0000000000..e2219171b2
--- /dev/null
+++ b/src/main/java/com/hubsante/model/cisu/resources/State.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright © 2023-2025 Agence du Numerique en Sante (ANS)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ *
+ *
+ *
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator
+ * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
+ * the class manually.
+ */
+
+package com.hubsante.model.cisu.resources;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+import java.util.Arrays;
+import java.util.Objects;
+
+/**
+ * State
+ */
+@JsonPropertyOrder({State.JSON_PROPERTY_DATETIME, State.JSON_PROPERTY_STATUS,
+ State.JSON_PROPERTY_AVAILABILITY})
+@JsonTypeName("state")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class State {
+ public static final String JSON_PROPERTY_DATETIME = "datetime";
+ private OffsetDateTime datetime;
+
+ /**
+ * A valoriser avec le statut du vecteur. Cf nomenclature associée.
+ */
+ public enum StatusEnum {
+ DECISION("DECISION"),
+
+ DECLENCHE("DECLENCHE"),
+
+ DEPART("DEPART"),
+
+ ANNULE("ANNULE"),
+
+ ARRIVEE("ARRIVEE"),
+
+ PEC("PEC"),
+
+ BILAN("BILAN"),
+
+ ORIENTAT("ORIENTAT"),
+
+ TRANSP("TRANSP"),
+
+ ETAPE1("ETAPE1"),
+
+ TRANSP2("TRANSP2"),
+
+ ETAPE2("ETAPE2"),
+
+ TRANSP3("TRANSP3"),
+
+ DESTIN("DESTIN"),
+
+ FINPEC("FINPEC"),
+
+ RETOUR("RETOUR"),
+
+ RET_BASE("RET-BASE"),
+
+ REN_BASE("REN-BASE");
+
+ private String value;
+
+ StatusEnum(String value) { this.value = value; }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static StatusEnum fromValue(String value) {
+ for (StatusEnum b : StatusEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ private StatusEnum status;
+
+ public static final String JSON_PROPERTY_AVAILABILITY = "availability";
+ private Boolean availability;
+
+ public State() {}
+
+ public State datetime(OffsetDateTime datetime) {
+
+ this.datetime = datetime;
+ return this;
+ }
+
+ /**
+ * A valoriser avec la date et heure d'engagement de changement vers le
+ *nouveau statut
+ * @return datetime
+ **/
+ @JsonProperty(JSON_PROPERTY_DATETIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public OffsetDateTime getDatetime() {
+ return datetime;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DATETIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDatetime(OffsetDateTime datetime) {
+ this.datetime = datetime;
+ }
+
+ public State status(StatusEnum status) {
+
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le statut du vecteur. Cf nomenclature associée.
+ * @return status
+ **/
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public StatusEnum getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setStatus(StatusEnum status) {
+ this.status = status;
+ }
+
+ public State availability(Boolean availability) {
+
+ this.availability = availability;
+ return this;
+ }
+
+ /**
+ * A valoriser de manière à indiquer la disponibilité du vecteur. TRUE =
+ *DISPONIBLE FALSE = INDISPONIBLE VIDE = INCONNU
+ * @return availability
+ **/
+ @JsonProperty(JSON_PROPERTY_AVAILABILITY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Boolean getAvailability() {
+ return availability;
+ }
+
+ @JsonProperty(JSON_PROPERTY_AVAILABILITY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAvailability(Boolean availability) {
+ this.availability = availability;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ State state = (State)o;
+ return Objects.equals(this.datetime, state.datetime) &&
+ Objects.equals(this.status, state.status) &&
+ Objects.equals(this.availability, state.availability);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(datetime, status, availability);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class State {\n");
+ sb.append(" datetime: ").append(toIndentedString(datetime)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" availability: ")
+ .append(toIndentedString(availability))
+ .append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/hubsante/model/cisu/resources/Team.java b/src/main/java/com/hubsante/model/cisu/resources/Team.java
new file mode 100644
index 0000000000..9c8438b699
--- /dev/null
+++ b/src/main/java/com/hubsante/model/cisu/resources/Team.java
@@ -0,0 +1,184 @@
+/**
+ * Copyright © 2023-2025 Agence du Numerique en Sante (ANS)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ *
+ *
+ *
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator
+ * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
+ * the class manually.
+ */
+
+package com.hubsante.model.cisu.resources;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import java.util.Arrays;
+import java.util.Arrays;
+import java.util.Objects;
+
+/**
+ * Team
+ */
+@JsonPropertyOrder({Team.JSON_PROPERTY_MEDICAL_LEVEL, Team.JSON_PROPERTY_NAME})
+@JsonTypeName("team")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class Team {
+
+ /**
+ * A valoriser avec le niveau de médicalisation du vecteur. Cf. nomenclature
+ * associée
+ */
+ public enum MedicalLevelEnum {
+ MED("MED"),
+
+ PARAMED("PARAMED"),
+
+ SECOURS("SECOURS"),
+
+ SANS("SANS");
+
+ private String value;
+
+ MedicalLevelEnum(String value) { this.value = value; }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static MedicalLevelEnum fromValue(String value) {
+ for (MedicalLevelEnum b : MedicalLevelEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_MEDICAL_LEVEL = "medicalLevel";
+ private MedicalLevelEnum medicalLevel;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public Team() {}
+
+ public Team medicalLevel(MedicalLevelEnum medicalLevel) {
+
+ this.medicalLevel = medicalLevel;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le niveau de médicalisation du vecteur. Cf. nomenclature
+ *associée
+ * @return medicalLevel
+ **/
+ @JsonProperty(JSON_PROPERTY_MEDICAL_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public MedicalLevelEnum getMedicalLevel() {
+ return medicalLevel;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MEDICAL_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMedicalLevel(MedicalLevelEnum medicalLevel) {
+ this.medicalLevel = medicalLevel;
+ }
+
+ public Team name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A valoriser avec le nom de l'équipe à bord du vecteur (celui communiqué
+ *par l'organisation à laquelle l'équipe appartient)
+ * @return name
+ **/
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Team team = (Team)o;
+ return Objects.equals(this.medicalLevel, team.medicalLevel) &&
+ Objects.equals(this.name, team.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(medicalLevel, name);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Team {\n");
+ sb.append(" medicalLevel: ")
+ .append(toIndentedString(medicalLevel))
+ .append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/hubsante/model/edxl/ContentMessage.java b/src/main/java/com/hubsante/model/edxl/ContentMessage.java
index cffc4d7608..1bb3e54266 100644
--- a/src/main/java/com/hubsante/model/edxl/ContentMessage.java
+++ b/src/main/java/com/hubsante/model/edxl/ContentMessage.java
@@ -35,6 +35,8 @@
import com.hubsante.model.emsi.EmsiWrapper;
import com.hubsante.model.resources.info.ResourcesInfo;
import com.hubsante.model.resources.info.ResourcesInfoWrapper;
+import com.hubsante.model.cisu.resources.ResourcesInfoCisu;
+import com.hubsante.model.cisu.resources.ResourcesInfoCisuWrapper;
import com.hubsante.model.resources.info.ResourcesEngagement;
import com.hubsante.model.resources.info.ResourcesEngagementWrapper;
import com.hubsante.model.resources.status.ResourcesStatus;
@@ -77,6 +79,7 @@
@JsonSubTypes.Type(CreateCaseHealthUpdateWrapper.class),
@JsonSubTypes.Type(EmsiWrapper.class),
@JsonSubTypes.Type(ResourcesInfoWrapper.class),
+ @JsonSubTypes.Type(ResourcesInfoCisuWrapper.class),
@JsonSubTypes.Type(ResourcesEngagementWrapper.class),
@JsonSubTypes.Type(ResourcesStatusWrapper.class),
@JsonSubTypes.Type(ResourcesRequestWrapper.class),
@@ -121,6 +124,7 @@ public static class UseCaseHelper {
{"createCaseHealthUpdate", CreateCaseHealthUpdate.class.getCanonicalName()},
{"emsi", Emsi.class.getCanonicalName()},
{"resourcesInfo", ResourcesInfo.class.getCanonicalName()},
+ {"resourcesInfoCisu", ResourcesInfoCisu.class.getCanonicalName()},
{"resourcesEngagement", ResourcesEngagement.class.getCanonicalName()},
{"resourcesStatus", ResourcesStatus.class.getCanonicalName()},
{"resourcesRequest", ResourcesRequest.class.getCanonicalName()},
diff --git a/src/main/resources/json-schema/EDXL-DE-full.schema.json b/src/main/resources/json-schema/EDXL-DE-full.schema.json
index 0157504992..0f522f0510 100644
--- a/src/main/resources/json-schema/EDXL-DE-full.schema.json
+++ b/src/main/resources/json-schema/EDXL-DE-full.schema.json
@@ -237,6 +237,31 @@
}
]
},
+ {
+ "allOf": [
+ {
+ "properties": {
+ "message": {
+ "$ref": "RC-DE.schema.json"
+ }
+ }
+ },
+ {
+ "properties": {
+ "message": {
+ "properties": {
+ "resourcesInfoCisu": {
+ "$ref": "RC-RI.schema.json"
+ }
+ },
+ "required": [
+ "resourcesInfoCisu"
+ ]
+ }
+ }
+ }
+ ]
+ },
{
"allOf": [
{
diff --git a/src/main/resources/json-schema/EMSI.schema.json b/src/main/resources/json-schema/EMSI.schema.json
index 01f1756a1a..59bda68490 100644
--- a/src/main/resources/json-schema/EMSI.schema.json
+++ b/src/main/resources/json-schema/EMSI.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "EMSI.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "emsi",
diff --git a/src/main/resources/json-schema/GEO-POS.schema.json b/src/main/resources/json-schema/GEO-POS.schema.json
index 1ab798653f..02b894f69f 100644
--- a/src/main/resources/json-schema/GEO-POS.schema.json
+++ b/src/main/resources/json-schema/GEO-POS.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "GEO-POS.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "geoPositionsUpdate",
diff --git a/src/main/resources/json-schema/GEO-REQ.schema.json b/src/main/resources/json-schema/GEO-REQ.schema.json
index f4f7e6f354..eb0251542e 100644
--- a/src/main/resources/json-schema/GEO-REQ.schema.json
+++ b/src/main/resources/json-schema/GEO-REQ.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "GEO-REQ.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "geoResourcesRequest",
diff --git a/src/main/resources/json-schema/GEO-RES.schema.json b/src/main/resources/json-schema/GEO-RES.schema.json
index 98d5dba5dc..90f3891267 100644
--- a/src/main/resources/json-schema/GEO-RES.schema.json
+++ b/src/main/resources/json-schema/GEO-RES.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "GEO-RES.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "geoResourcesDetails",
diff --git a/src/main/resources/json-schema/RC-DE.schema.json b/src/main/resources/json-schema/RC-DE.schema.json
index cf5cd40aad..d4920aa3ff 100644
--- a/src/main/resources/json-schema/RC-DE.schema.json
+++ b/src/main/resources/json-schema/RC-DE.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RC-DE.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "distributionElement",
diff --git a/src/main/resources/json-schema/RC-EDA.schema.json b/src/main/resources/json-schema/RC-EDA.schema.json
index 8a4933968c..826a8a3c4e 100644
--- a/src/main/resources/json-schema/RC-EDA.schema.json
+++ b/src/main/resources/json-schema/RC-EDA.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RC-EDA.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "createCase",
diff --git a/src/main/resources/json-schema/RC-REF.schema.json b/src/main/resources/json-schema/RC-REF.schema.json
index d40a0f1f5d..393de1eba0 100644
--- a/src/main/resources/json-schema/RC-REF.schema.json
+++ b/src/main/resources/json-schema/RC-REF.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RC-REF.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "reference",
diff --git a/src/main/resources/json-schema/RC-RI.schema.json b/src/main/resources/json-schema/RC-RI.schema.json
new file mode 100644
index 0000000000..70199c4a46
--- /dev/null
+++ b/src/main/resources/json-schema/RC-RI.schema.json
@@ -0,0 +1,279 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "classpath:/json-schema/schema#",
+ "x-id": "RC-RI.schema.json#",
+ "version": "25.11.13",
+ "example": "example.json#",
+ "type": "object",
+ "title": "resourcesInfoCisu",
+ "required": [
+ "caseId"
+ ],
+ "properties": {
+ "caseId": {
+ "type": "string",
+ "title": "Identifiant affaire/dossier",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/caseId",
+ "description": "A valoriser avec l'identifiant partagé de l'affaire/dossier, généré une seule fois par le système du partenaire qui recoit la primo-demande de secours (créateur du dossier). \nIl est valorisé comme suit lors de sa création : \n{pays}.{domaine}.{organisation}.{senderCaseId}\n\nIl doit pouvoir être généré de façon décentralisée et ne présenter aucune ambiguïté.\n Il doit être unique dans l'ensemble des systèmes : le numéro de dossier fourni par celui qui génère l'identifiant partagé doit donc être un numéro unique dans son système.",
+ "pattern": "^([a-zA-Z0-9_-]+\\.?){4,10}$"
+ },
+ "resource": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/resource"
+ }
+ }
+ },
+ "definitions": {
+ "resource": {
+ "type": "object",
+ "title": "Ressource",
+ "x-display": "expansion-panels",
+ "x-health-only": false,
+ "required": [
+ "datetime",
+ "resourceId",
+ "vehicleType",
+ "state"
+ ],
+ "properties": {
+ "datetime": {
+ "type": "string",
+ "title": "Date/heure de déclenchement",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/datetime",
+ "description": "A valoriser avec la date et heure d'engagement de la ressource/du vecteur",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[\\-+]\\d{2}:\\d{2}$",
+ "format": "date-time"
+ },
+ "resourceId": {
+ "type": "string",
+ "title": "ID Ressource partagé",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/resourceId",
+ "description": "A valoriser avec l'identifiant partagé unique de la ressource engagée, normé comme suit :\n{orgID}.resource.{ID unique de la ressource partagée}\nOU - uniquement dans le cas où un ID unique de ressource ne peut pas être garanti par l'organisation propriétaire :\n{orgID}.resource.{sendercaseId}.{n° d’ordre chronologique de la ressource}",
+ "pattern": "^([a-zA-Z0-9_-]+\\.){3,8}resource(\\.[a-zA-Z0-9_-]+){1,2}$"
+ },
+ "requestId": {
+ "type": "string",
+ "title": "ID Demande partagé",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/requestId",
+ "description": "A valoriser avec l'identifiant unique partagé de la demande de ressource (si la ressource a été engagée suite à une demande de ressource), normé comme suit :\n{orgID}.request.{ID unique de la demande dans le système émetteur}\nOU - si un ID unique de la demande n'était pas disponible : \n{OrgId émetteur}.request.{senderCaseId}.{numéro d’ordre chronologique}",
+ "pattern": "^([a-zA-Z0-9_-]+\\.){3,8}request(\\.[a-zA-Z0-9_-]+){1,2}$"
+ },
+ "missionId": {
+ "type": "string",
+ "title": "ID Mission local",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/missionId",
+ "description": "A valoriser avec le numéro de mission unique du central d’appel (PSAP, …) qui a déclenché le vecteur"
+ },
+ "orgId": {
+ "type": "string",
+ "title": "ID Organisation propriétaire",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/orgId",
+ "description": "A valoriser avec l'identifiant de l'organisation à laquelle appartient la ressource, normé comme suit : \n{pays}.{domaine}.{organisation}"
+ },
+ "centerName": {
+ "type": "string",
+ "title": "Nom du centre d’affectation",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/centerName",
+ "description": "A valoriser avec le lieu de garage principal"
+ },
+ "vehicleType": {
+ "type": "string",
+ "title": "Type de vecteur",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/vehicleType",
+ "description": "A valoriser avec le type de vecteur mobilisé : cf. nomenclature associée",
+ "enum": [
+ "SMUR",
+ "SIS"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "title": "Nom du vecteur",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/name",
+ "description": "A valoriser avec le nom donné à la ressource par l’organisation d’appartenance"
+ },
+ "centerCity": {
+ "type": "string",
+ "title": "Commune du centre d’affectation",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/centerCity",
+ "description": "A valoriser avec le code INSEE de la commune du centre d'affectation",
+ "pattern": "^[0-9]{5}$"
+ },
+ "team": {
+ "$ref": "#/definitions/team"
+ },
+ "state": {
+ "$ref": "#/definitions/state"
+ },
+ "contact": {
+ "$ref": "#/definitions/contact"
+ },
+ "freetext": {
+ "type": "array",
+ "x-health-only": false,
+ "items": {
+ "type": "string",
+ "title": "Commentaires",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/freetext/0",
+ "description": "Texte libre permettant de passer toute autre information sur la ressource (équipements supplémentaires / spécifiques, particularités du vecteur, etc.)"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "example": "example.json#/resource/0"
+ },
+ "team": {
+ "type": "object",
+ "title": "Equipe vecteur",
+ "x-display": "expansion-panels",
+ "x-health-only": false,
+ "required": [],
+ "properties": {
+ "medicalLevel": {
+ "type": "string",
+ "title": "Type",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/team/medicalLevel",
+ "description": "A valoriser avec le niveau de médicalisation du vecteur. Cf. nomenclature associée",
+ "enum": [
+ "MED",
+ "PARAMED",
+ "SECOURS",
+ "SANS"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "title": "Nom",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/team/name",
+ "description": "A valoriser avec le nom de l'équipe à bord du vecteur (celui communiqué par l'organisation à laquelle l'équipe appartient)"
+ }
+ },
+ "additionalProperties": false,
+ "example": "example.json#/resource/0/team"
+ },
+ "state": {
+ "type": "object",
+ "title": "Etat vecteur",
+ "x-display": "expansion-panels",
+ "x-health-only": false,
+ "required": [
+ "datetime",
+ "status"
+ ],
+ "properties": {
+ "datetime": {
+ "type": "string",
+ "title": "Date/heure de changement de statut",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/state/datetime",
+ "description": "A valoriser avec la date et heure d'engagement de changement vers le nouveau statut",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[\\-+]\\d{2}:\\d{2}$",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "title": "Statut du vecteur",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/state/status",
+ "description": "A valoriser avec le statut du vecteur. Cf nomenclature associée.",
+ "enum": [
+ "DECISION",
+ "DECLENCHE",
+ "DEPART",
+ "ANNULE",
+ "ARRIVEE",
+ "PEC",
+ "BILAN",
+ "ORIENTAT",
+ "TRANSP",
+ "ETAPE1",
+ "TRANSP2",
+ "ETAPE2",
+ "TRANSP3",
+ "DESTIN",
+ "FINPEC",
+ "RETOUR",
+ "RET-BASE",
+ "REN-BASE"
+ ]
+ },
+ "availability": {
+ "type": "boolean",
+ "title": "Disponibilité du vecteur",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/state/availability",
+ "description": "A valoriser de manière à indiquer la disponibilité du vecteur.\nTRUE = DISPONIBLE\nFALSE = INDISPONIBLE\nVIDE = INCONNU"
+ }
+ },
+ "additionalProperties": false,
+ "example": "example.json#/resource/0/state"
+ },
+ "contact": {
+ "type": "object",
+ "title": "Contact",
+ "x-display": "expansion-panels",
+ "x-health-only": false,
+ "required": [],
+ "properties": {
+ "type": {
+ "type": "string",
+ "title": "Type de contact ",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/contact/type",
+ "description": "A valoriser avec le type de l'URI utilisée. Cf nomenclature associée.",
+ "enum": [
+ "EMAIL",
+ "FAX",
+ "MSS",
+ "POSTAL",
+ "RADIO",
+ "TEL",
+ "WEB"
+ ]
+ },
+ "details": {
+ "type": "string",
+ "title": "URI du contact",
+ "x-health-only": false,
+ "x-cols": 6,
+ "example": "example.json#/resource/0/contact/details",
+ "description": "A valoriser avec la valeur de l'URI utilisée\nLe format attendu pour un numéro de téléphone est le suivant : +{indicatif pays}{numéro de téléphone}"
+ }
+ },
+ "additionalProperties": false,
+ "example": "example.json#/resource/0/contact"
+ }
+ },
+ "additionalProperties": false
+}
\ No newline at end of file
diff --git a/src/main/resources/json-schema/RS-BPV.schema.json b/src/main/resources/json-schema/RS-BPV.schema.json
index 41c2ad2898..bd70b8ae09 100644
--- a/src/main/resources/json-schema/RS-BPV.schema.json
+++ b/src/main/resources/json-schema/RS-BPV.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-BPV.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "interventionReport",
diff --git a/src/main/resources/json-schema/RS-DR.schema.json b/src/main/resources/json-schema/RS-DR.schema.json
index 2541845003..f9a99ed335 100644
--- a/src/main/resources/json-schema/RS-DR.schema.json
+++ b/src/main/resources/json-schema/RS-DR.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-DR.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "resourcesRequest",
diff --git a/src/main/resources/json-schema/RS-EDA-MAJ.schema.json b/src/main/resources/json-schema/RS-EDA-MAJ.schema.json
index 6fcbcb390f..9695c8bec3 100644
--- a/src/main/resources/json-schema/RS-EDA-MAJ.schema.json
+++ b/src/main/resources/json-schema/RS-EDA-MAJ.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-EDA-MAJ.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "createCaseHealthUpdate",
diff --git a/src/main/resources/json-schema/RS-EDA.schema.json b/src/main/resources/json-schema/RS-EDA.schema.json
index 5e5cd8f593..ece70749e5 100644
--- a/src/main/resources/json-schema/RS-EDA.schema.json
+++ b/src/main/resources/json-schema/RS-EDA.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-EDA.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "createCaseHealth",
diff --git a/src/main/resources/json-schema/RS-ER.schema.json b/src/main/resources/json-schema/RS-ER.schema.json
index a1f252e689..84f0a22604 100644
--- a/src/main/resources/json-schema/RS-ER.schema.json
+++ b/src/main/resources/json-schema/RS-ER.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-ER.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "resourcesEngagement",
diff --git a/src/main/resources/json-schema/RS-ERROR.schema.json b/src/main/resources/json-schema/RS-ERROR.schema.json
index 086a63adba..2a5c6bb8af 100644
--- a/src/main/resources/json-schema/RS-ERROR.schema.json
+++ b/src/main/resources/json-schema/RS-ERROR.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-ERROR.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "error",
diff --git a/src/main/resources/json-schema/RS-RI.schema.json b/src/main/resources/json-schema/RS-RI.schema.json
index b2d39a6d57..1de5976a64 100644
--- a/src/main/resources/json-schema/RS-RI.schema.json
+++ b/src/main/resources/json-schema/RS-RI.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-RI.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "resourcesInfo",
diff --git a/src/main/resources/json-schema/RS-RPIS.schema.json b/src/main/resources/json-schema/RS-RPIS.schema.json
index 66a4de6899..b682e348af 100644
--- a/src/main/resources/json-schema/RS-RPIS.schema.json
+++ b/src/main/resources/json-schema/RS-RPIS.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-RPIS.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "rpis",
diff --git a/src/main/resources/json-schema/RS-RR.schema.json b/src/main/resources/json-schema/RS-RR.schema.json
index 4938916ecd..b969c54335 100644
--- a/src/main/resources/json-schema/RS-RR.schema.json
+++ b/src/main/resources/json-schema/RS-RR.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-RR.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "resourcesResponse",
diff --git a/src/main/resources/json-schema/RS-SAS-RDV.schema.json b/src/main/resources/json-schema/RS-SAS-RDV.schema.json
index a8218ee021..291802801e 100644
--- a/src/main/resources/json-schema/RS-SAS-RDV.schema.json
+++ b/src/main/resources/json-schema/RS-SAS-RDV.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-SAS-RDV.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "appointment",
diff --git a/src/main/resources/json-schema/RS-SR.schema.json b/src/main/resources/json-schema/RS-SR.schema.json
index 983bcc4ee5..c6fbfb5a11 100644
--- a/src/main/resources/json-schema/RS-SR.schema.json
+++ b/src/main/resources/json-schema/RS-SR.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-SR.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "resourcesStatus",
diff --git a/src/main/resources/json-schema/RS-URL.schema.json b/src/main/resources/json-schema/RS-URL.schema.json
index 75d79a18c3..eab0eb39bb 100644
--- a/src/main/resources/json-schema/RS-URL.schema.json
+++ b/src/main/resources/json-schema/RS-URL.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "RS-URL.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "documentLink",
diff --git a/src/main/resources/json-schema/TECHNICAL.schema.json b/src/main/resources/json-schema/TECHNICAL.schema.json
index f1cb987e7b..5c12285efe 100644
--- a/src/main/resources/json-schema/TECHNICAL.schema.json
+++ b/src/main/resources/json-schema/TECHNICAL.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "TECHNICAL.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "technical",
diff --git a/src/main/resources/json-schema/TECHNICAL_NOREQ.schema.json b/src/main/resources/json-schema/TECHNICAL_NOREQ.schema.json
index 3c923e3411..78511e5b20 100644
--- a/src/main/resources/json-schema/TECHNICAL_NOREQ.schema.json
+++ b/src/main/resources/json-schema/TECHNICAL_NOREQ.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "TECHNICAL_NOREQ.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "technicalNoreq",
diff --git a/src/main/resources/json-schema/customContent.schema.json b/src/main/resources/json-schema/customContent.schema.json
index 1a611315ba..e7b05a8510 100644
--- a/src/main/resources/json-schema/customContent.schema.json
+++ b/src/main/resources/json-schema/customContent.schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "classpath:/json-schema/schema#",
"x-id": "customContent.schema.json#",
- "version": "25.10.23",
+ "version": "25.11.13",
"example": "example.json#",
"type": "object",
"title": "customContent",
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.json b/src/main/resources/sample/examples/RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.json
new file mode 100644
index 0000000000..9444f8e30b
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.json
@@ -0,0 +1,23 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "team": {
+ "medicalLevel": "MED",
+ "name": "Equipe VSAV 4"
+ },
+ "vehicleType": "SIS",
+ "name": "VSAV4",
+ "datetime": "2024-05-26T15:05:00+02:00",
+ "resourceId": "fr.fire.sis044.cgo-044.resource.VSAV4",
+ "orgId": "fr.fire.sdis44.cgo-044",
+ "state": {
+ "status": "DECLENCHE",
+ "datetime": "2024-05-26T15:05:00+02:00",
+ "availability": false
+ }
+ }
+ ],
+ "caseId": "fr.fire.sis044.cga-044.SC-20240526-044-cga-AL8"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.xml
new file mode 100644
index 0000000000..0ecf818f12
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.xml
@@ -0,0 +1,20 @@
+
+
+ fr.fire.sis044.cga-044.SC-20240526-044-cga-AL8
+
+ 2024-05-26T15:05:00+02:00
+ fr.fire.sis044.cgo-044.resource.VSAV4
+ fr.fire.sdis44.cgo-044
+ SIS
+ VSAV4
+
+ MED
+ Equipe VSAV 4
+
+
+ 2024-05-26T15:05:00+02:00
+ DECLENCHE
+ false
+
+
+
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.json b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.json
new file mode 100644
index 0000000000..064c71f4e1
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.json
@@ -0,0 +1,28 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "team": {
+ "name": "Equipe VSAV 2"
+ },
+ "name": "VSAV2",
+ "datetime": "2024-05-18T18:20:00+02:00",
+ "resourceId": "fr.fire.sis044.cgo-044.resource.VSAV2",
+ "orgId": "fr.fire.sdis44.cgo-044",
+ "state": {
+ "datetime": "2024-05-18T18:19:00+02:00",
+ "status": "DECISION"
+ },
+ "vehicleType": "SIS",
+ "contact": {
+ "type": "TEL",
+ "details": "0762865426"
+ },
+ "freetext": [
+ "Eric AZERTY, Marie-Jo ANELI, Pierre LOUITUT"
+ ]
+ }
+ ],
+ "caseId": "fr.health.samu440.DRFR154402413800236"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.xml
new file mode 100644
index 0000000000..a20868a431
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.xml
@@ -0,0 +1,23 @@
+
+
+ fr.health.samu440.DRFR154402413800236
+
+ 2024-05-18T18:20:00+02:00
+ fr.fire.sis044.cgo-044.resource.VSAV2
+ fr.fire.sdis44.cgo-044
+ SIS
+ VSAV2
+
+ Equipe VSAV 2
+
+
+ 2024-05-18T18:19:00+02:00
+ DECISION
+
+
+ TEL
+ 0762865426
+
+ Eric AZERTY, Marie-Jo ANELI, Pierre LOUITUT
+
+
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.json b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.json
new file mode 100644
index 0000000000..acf68bd1ab
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.json
@@ -0,0 +1,39 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "team": {
+ "medicalLevel": "MED",
+ "name": "Equipe VSAV 2"
+ },
+ "vehicleType": "SIS",
+ "name": "VSAV2",
+ "datetime": "2024-05-18T18:20:00+02:00",
+ "resourceId": "fr.fire.sis044.cgo-044.resource.VSAV2",
+ "orgId": "fr.fire.sdis44.cgo-044",
+ "state": {
+ "status": "DECLENCHE",
+ "datetime": "2024-05-18T18:20:00+02:00",
+ "availability": false
+ }
+ },
+ {
+ "team": {
+ "medicalLevel": "SECOURS"
+ },
+ "datetime": "2024-05-18T18:22:00+02:00",
+ "resourceId": "fr.fire.sis044.cgo-044.resource.VSAV3",
+ "orgId": "fr.fire.sdis044.cgo-044",
+ "vehicleType": "SIS",
+ "name": "VSAV3",
+ "centerCity": "44109",
+ "state": {
+ "status": "DECLENCHE",
+ "datetime": "2024-05-18T18:20:00+02:00",
+ "availability": false
+ }
+ }
+ ],
+ "caseId": "fr.health.samu440.DRFR154402413800236"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.xml
new file mode 100644
index 0000000000..a63dd9c690
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.xml
@@ -0,0 +1,36 @@
+
+
+ fr.health.samu440.DRFR154402413800236
+
+ 2024-05-18T18:20:00+02:00
+ fr.fire.sis044.cgo-044.resource.VSAV2
+ fr.fire.sdis44.cgo-044
+ SIS
+ VSAV2
+
+ MED
+ Equipe VSAV 2
+
+
+ 2024-05-18T18:20:00+02:00
+ DECLENCHE
+ false
+
+
+
+ 2024-05-18T18:22:00+02:00
+ fr.fire.sis044.cgo-044.resource.VSAV3
+ fr.fire.sdis044.cgo-044
+ SIS
+ VSAV3
+ 44109
+
+ SECOURS
+
+
+ 2024-05-18T18:20:00+02:00
+ DECLENCHE
+ false
+
+
+
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.json b/src/main/resources/sample/examples/RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.json
new file mode 100644
index 0000000000..04df5f6381
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.json
@@ -0,0 +1,39 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "team": {
+ "medicalLevel": "MED",
+ "name": "Equipe FEU 3"
+ },
+ "name": "VSR-Rea3",
+ "datetime": "2024-08-13T10:23:00+02:00",
+ "resourceId": "fr.fire.sisXXX.cga-XXX.resource.VSR268",
+ "orgId": "fr.fire.sisXXX.cgo-XXX",
+ "state": {
+ "status": "DECLENCHE",
+ "datetime": "2024-08-13T10:24:00+02:00",
+ "availability": false
+ },
+ "vehicleType": "SIS"
+ },
+ {
+ "team": {
+ "medicalLevel": "MED"
+ },
+ "datetime": "2024-08-13T10:23:00+02:00",
+ "resourceId": "fr.fire.sisXXX.cga-XXX.resource.VSR268",
+ "orgId": "fr.fire.sisXXX.cgo-XXX",
+ "state": {
+ "status": "DECLENCHE",
+ "datetime": "2024-08-13T10:24:00+02:00",
+ "availability": false
+ },
+ "vehicleType": "SIS",
+ "name": "VSR-Rea3",
+ "centerCity": "35580"
+ }
+ ],
+ "caseId": "fr.fire.sisXXX.cga-XXX.SC-20240813-XXX-cga-AT517"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.xml
new file mode 100644
index 0000000000..1f11b04819
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.xml
@@ -0,0 +1,36 @@
+
+
+ fr.fire.sisXXX.cga-XXX.SC-20240813-XXX-cga-AT517
+
+ 2024-08-13T10:23:00+02:00
+ fr.fire.sisXXX.cga-XXX.resource.VSR268
+ fr.fire.sisXXX.cgo-XXX
+ SIS
+ VSR-Rea3
+
+ MED
+ Equipe FEU 3
+
+
+ 2024-08-13T10:24:00+02:00
+ DECLENCHE
+ false
+
+
+
+ 2024-08-13T10:23:00+02:00
+ fr.fire.sisXXX.cga-XXX.resource.VSR268
+ fr.fire.sisXXX.cgo-XXX
+ SIS
+ VSR-Rea3
+ 35580
+
+ MED
+
+
+ 2024-08-13T10:24:00+02:00
+ DECLENCHE
+ false
+
+
+
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_DidierMorel.01b.json b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_DidierMorel.01b.json
new file mode 100644
index 0000000000..b74a475054
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_DidierMorel.01b.json
@@ -0,0 +1,38 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "team": {
+ "medicalLevel": "MED",
+ "name": "Equipe VSR A"
+ },
+ "vehicleType": "SIS",
+ "name": "VSR 77 - 250",
+ "datetime": "2024-01-04T08:05:00+01:00",
+ "resourceId": "fr.fire.sdis77.cgo-077.resource.VSR250",
+ "orgId": "fr.fire.sdis77.cgo-077",
+ "state": {
+ "status": "DECLENCHE",
+ "datetime": "2024-01-04T08:05:00+01:00",
+ "availability": false
+ }
+ },
+ {
+ "team": {
+ "medicalLevel": "SECOURS",
+ "name": "Equipe 89"
+ },
+ "state": {
+ "status": "ARRIVEE",
+ "datetime": "2024-01-04T08:06:00+01:00"
+ },
+ "datetime": "2024-01-04T08:06:00+01:00",
+ "resourceId": "fr.fire.sis077.cgo-077.resource.VSAV32",
+ "orgId": "fr.fire.sdis77.cgo-077",
+ "vehicleType": "SIS",
+ "name": "VSAV 77 - A7B"
+ }
+ ],
+ "caseId": "fr.health.samu770.DRFR157702400400055"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_DidierMorel.01b.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_DidierMorel.01b.xml
new file mode 100644
index 0000000000..6e590d9fde
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_DidierMorel.01b.xml
@@ -0,0 +1,35 @@
+
+
+ fr.health.samu770.DRFR157702400400055
+
+ 2024-01-04T08:05:00+01:00
+ fr.fire.sdis77.cgo-077.resource.VSR250
+ fr.fire.sdis77.cgo-077
+ SIS
+ VSR 77 - 250
+
+ MED
+ Equipe VSR A
+
+
+ 2024-01-04T08:05:00+01:00
+ DECLENCHE
+ false
+
+
+
+ 2024-01-04T08:06:00+01:00
+ fr.fire.sis077.cgo-077.resource.VSAV32
+ fr.fire.sdis77.cgo-077
+ SIS
+ VSAV 77 - A7B
+
+ SECOURS
+ Equipe 89
+
+
+ 2024-01-04T08:06:00+01:00
+ ARRIVEE
+
+
+
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.json b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.json
new file mode 100644
index 0000000000..5f3665a1a9
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.json
@@ -0,0 +1,46 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "contact": {
+ "details": "+33744947325",
+ "type": "TEL"
+ },
+ "team": {
+ "medicalLevel": "MED",
+ "name": "Equipe VSAV 5"
+ },
+ "state": {
+ "datetime": "2024-08-01T16:42:00+02:00",
+ "status": "DECLENCHE"
+ },
+ "datetime": "2024-08-01T16:42:00+02:00",
+ "resourceId": "fr.fire.sisXXX.cga-XXX.resource.VSAV12",
+ "orgId": "fr.fire.sisXXX.cga-XXX",
+ "vehicleType": "SIS",
+ "name": "VSAV 76 - A45"
+ },
+ {
+ "contact": {
+ "details": "+33645987297",
+ "type": "TEL"
+ },
+ "team": {
+ "name": "Equipe Rouge",
+ "medicalLevel": "SECOURS"
+ },
+ "state": {
+ "datetime": "2024-08-01T16:40:00+02:00",
+ "status": "DECLENCHE",
+ "availability": false
+ },
+ "datetime": "2024-08-01T16:40:00+02:00",
+ "resourceId": "fr.fire.sisXXX.cga-XXX.resource.VSAV3A",
+ "orgId": "fr.fire.sisXXX.cga-XXX",
+ "name": "VSAV 76 - 22D8",
+ "vehicleType": "SIS"
+ }
+ ],
+ "caseId": "fr.health.samu760.DRFR158002421400215"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.xml
new file mode 100644
index 0000000000..be1aacf78f
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.xml
@@ -0,0 +1,43 @@
+
+
+ fr.health.samu760.DRFR158002421400215
+
+ 2024-08-01T16:42:00+02:00
+ fr.fire.sisXXX.cga-XXX.resource.VSAV12
+ fr.fire.sisXXX.cga-XXX
+ SIS
+ VSAV 76 - A45
+
+ MED
+ Equipe VSAV 5
+
+
+ 2024-08-01T16:42:00+02:00
+ DECLENCHE
+
+
+ TEL
+ +33744947325
+
+
+
+ 2024-08-01T16:40:00+02:00
+ fr.fire.sisXXX.cga-XXX.resource.VSAV3A
+ fr.fire.sisXXX.cga-XXX
+ SIS
+ VSAV 76 - 22D8
+
+ SECOURS
+ Equipe Rouge
+
+
+ 2024-08-01T16:40:00+02:00
+ DECLENCHE
+ false
+
+
+ TEL
+ +33645987297
+
+
+
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_LolaHalimi.01b.json b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_LolaHalimi.01b.json
new file mode 100644
index 0000000000..70908f4043
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_LolaHalimi.01b.json
@@ -0,0 +1,27 @@
+{
+ "resourcesInfoCisu": {
+ "resource": [
+ {
+ "contact": {
+ "type": "TEL",
+ "details": "+33645789512"
+ },
+ "team": {
+ "medicalLevel": "SECOURS",
+ "name": "Equipe C"
+ },
+ "state": {
+ "datetime": "2024-01-18T18:06:00+01:00",
+ "status": "DECLENCHE",
+ "availability": false
+ },
+ "datetime": "2024-01-18T18:06:00+01:00",
+ "resourceId": "fr.fire.sisXXX.cga-XXX.resource.VSAV95",
+ "orgId": "fr.fire.sisXXX.cga-XXX",
+ "vehicleType": "SIS",
+ "name": "VSAV95.C"
+ }
+ ],
+ "caseId": "fr.health.samu950.DRFR159502401800159"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_LolaHalimi.01b.xml b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_LolaHalimi.01b.xml
new file mode 100644
index 0000000000..4e7b5b9526
--- /dev/null
+++ b/src/main/resources/sample/examples/RC-RI/RC-RI_partageDossier_LolaHalimi.01b.xml
@@ -0,0 +1,24 @@
+
+
+ fr.health.samu950.DRFR159502401800159
+
+ 2024-01-18T18:06:00+01:00
+ fr.fire.sisXXX.cga-XXX.resource.VSAV95
+ fr.fire.sisXXX.cga-XXX
+ SIS
+ VSAV95.C
+
+ SECOURS
+ Equipe C
+
+
+ 2024-01-18T18:06:00+01:00
+ DECLENCHE
+ false
+
+
+ TEL
+ +33645789512
+
+
+
diff --git a/src/main/resources/sample/examples/messagesList.json b/src/main/resources/sample/examples/messagesList.json
index 5c00e997d3..3abf4faa5a 100644
--- a/src/main/resources/sample/examples/messagesList.json
+++ b/src/main/resources/sample/examples/messagesList.json
@@ -685,6 +685,55 @@
}
]
},
+ {
+ "label": "RC-RI",
+ "schemaName": "RC-RI.schema.json",
+ "schema": null,
+ "examples": [
+ {
+ "file": "RC-RI/RC-RI_partageDossier_DidierMorel.01b.json",
+ "icon": "mdi-circular-saw",
+ "name": "Didier MOREL.01b",
+ "environment": "Engagement d'un VSR et d'un VSAV par le SDIS 77"
+ },
+ {
+ "file": "RC-RI/RC-RI_partageDossier_LolaHalimi.01b.json",
+ "icon": "mdi-image-broken-variant",
+ "name": "Lola HALIMI.01b",
+ "environment": "Engagement d'un VSAV par le SDIS 95"
+ },
+ {
+ "file": "RC-RI/RC-RI_partageDossier_EnfantsNguyen.03b.json",
+ "icon": "mdi-baby-face-outline",
+ "name": "Enfants NGUYEN.03b",
+ "environment": "Engagement de deux VSAV par le SDIS 76"
+ },
+ {
+ "file": "RC-RI/RC-RI_FemmeEnceinte_DelphineVigneau.03.json",
+ "icon": "mdi-human-pregnant",
+ "name": "Delphine VIGNEAU.03",
+ "environment": "Engagement d'un VSAV par le SDIS 44"
+ },
+ {
+ "file": "RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.03.json",
+ "icon": "mdi-molecule-co2",
+ "name": "Alice et Grégoire NORMAND.03",
+ "environment": "Engagenement d'un VSAV avec le détail de l'équipe"
+ },
+ {
+ "file": "RC-RI/RC-RI_FuiteDeGaz_AliceGregoireNORMAND.06.json",
+ "icon": "mdi-molecule-co2",
+ "name": "Alice et Grégoire NORMAND.06",
+ "environment": "Partage des ressources engagées avec le SAMU 44"
+ },
+ {
+ "file": "RC-RI/RC-RI_Incendie_RaymondeLECCIA.04.json",
+ "icon": "mdi-fire-truck",
+ "name": "Raymonde LECCIA.04",
+ "environment": "Détail des ressources SIS mobilisées pour l'intervention"
+ }
+ ]
+ },
{
"label": "EMSI",
"schemaName": "EMSI.schema.json",
diff --git a/src/main/resources/xsd/RC-RI.xsd b/src/main/resources/xsd/RC-RI.xsd
new file mode 100644
index 0000000000..5a747b8a6c
--- /dev/null
+++ b/src/main/resources/xsd/RC-RI.xsd
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+ A valoriser avec l'identifiant partagé de l'affaire/dossier, généré une seule fois par le système du partenaire qui recoit la primo-demande de secours (créateur du dossier).
+Il est valorisé comme suit lors de sa création :
+{pays}.{domaine}.{organisation}.{senderCaseId}
+
+Il doit pouvoir être généré de façon décentralisée et ne présenter aucune ambiguïté.
+ Il doit être unique dans l'ensemble des systèmes : le numéro de dossier fourni par celui qui génère l'identifiant partagé doit donc être un numéro unique dans son système.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A valoriser avec la date et heure d'engagement de la ressource/du vecteur
+
+
+
+
+ A valoriser avec l'identifiant partagé unique de la ressource engagée, normé comme suit :
+{orgID}.resource.{ID unique de la ressource partagée}
+OU - uniquement dans le cas où un ID unique de ressource ne peut pas être garanti par l'organisation propriétaire :
+{orgID}.resource.{sendercaseId}.{n° d’ordre chronologique de la ressource}
+
+
+
+
+
+
+
+
+
+ A valoriser avec l'identifiant unique partagé de la demande de ressource (si la ressource a été engagée suite à une demande de ressource), normé comme suit :
+{orgID}.request.{ID unique de la demande dans le système émetteur}
+OU - si un ID unique de la demande n'était pas disponible :
+{OrgId émetteur}.request.{senderCaseId}.{numéro d’ordre chronologique}
+
+
+
+
+
+
+
+
+
+ A valoriser avec le numéro de mission unique du central d’appel (PSAP, …) qui a déclenché le vecteur
+
+
+
+
+ A valoriser avec l'identifiant de l'organisation à laquelle appartient la ressource, normé comme suit :
+{pays}.{domaine}.{organisation}
+
+
+
+
+ A valoriser avec le lieu de garage principal
+
+
+
+
+ A valoriser avec le type de vecteur mobilisé : cf. nomenclature associée
+
+
+
+
+
+
+
+
+
+
+ A valoriser avec le nom donné à la ressource par l’organisation d’appartenance
+
+
+
+
+ A valoriser avec le code INSEE de la commune du centre d'affectation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A valoriser avec le niveau de médicalisation du vecteur. Cf. nomenclature associée
+
+
+
+
+
+
+
+
+
+
+
+
+ A valoriser avec le nom de l'équipe à bord du vecteur (celui communiqué par l'organisation à laquelle l'équipe appartient)
+
+
+
+
+
+
+
+
+ A valoriser avec la date et heure d'engagement de changement vers le nouveau statut
+
+
+
+
+ A valoriser avec le statut du vecteur. Cf nomenclature associée.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A valoriser de manière à indiquer la disponibilité du vecteur.
+TRUE = DISPONIBLE
+FALSE = INDISPONIBLE
+VIDE = INCONNU
+
+
+
+
+
+
+
+
+ A valoriser avec le type de l'URI utilisée. Cf nomenclature associée.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A valoriser avec la valeur de l'URI utilisée
+Le format attendu pour un numéro de téléphone est le suivant : +{indicatif pays}{numéro de téléphone}
+
+
+
+
+
diff --git a/src/main/resources/xsd/RC-XML-ContentType.xsd b/src/main/resources/xsd/RC-XML-ContentType.xsd
index d106b1c26a..08be73aad7 100644
--- a/src/main/resources/xsd/RC-XML-ContentType.xsd
+++ b/src/main/resources/xsd/RC-XML-ContentType.xsd
@@ -13,6 +13,7 @@
xmlns:createCaseHealthUpdate="urn:emergency:eda:1.9:createCaseHealthUpdate"
xmlns:emsi="urn:emergency:eda:1.9:emsi"
xmlns:resourcesInfo="urn:emergency:eda:1.9:resourcesinfo"
+ xmlns:resourcesInfoCisu="urn:emergency:eda:1.9:resourcesInfoCisu"
xmlns:resourcesEngagement="urn:emergency:eda:1.9:resourcesengagement"
xmlns:resourcesStatus="urn:emergency:eda:1.9:resourcesstatus"
xmlns:resourcesRequest="urn:emergency:eda:1.9:resourcesrequest"
@@ -41,6 +42,7 @@
+
@@ -81,6 +83,7 @@
+