Skip to content

Commit 5463a6d

Browse files
author
Issam Kadar
committed
Merge branch 'main' into fix/converter/rs-eda-v1-to-v3-default-vehicletype
2 parents 2d2a29b + 50cf474 commit 5463a6d

File tree

3 files changed

+134
-1
lines changed

3 files changed

+134
-1
lines changed

converter/converter/versions/create_case_health/v1_v2/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,11 @@ def update_language(message: Dict[str, Any], language_map: Dict[str, str]) -> No
7373
Constants.INITIAL_ALERT_CALLER_LANGUAGE_PATH,
7474
language_map,
7575
)
76-
else:
76+
elif language is not None:
7777
add_to_initial_alert_notes(message, f"Langue du requérant: {language}")
7878
delete_paths(message, [Constants.INITIAL_ALERT_CALLER_LANGUAGE_KEY])
79+
else:
80+
delete_paths(message, [Constants.INITIAL_ALERT_CALLER_LANGUAGE_KEY])
7981

8082

8183
def add_to_initial_alert_notes(
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"createCaseHealth": {
3+
"qualification": {
4+
"origin": "112",
5+
"riskThreat": [
6+
{
7+
"code": "R01",
8+
"label": "libellé R01"
9+
}
10+
],
11+
"whatsHappen": {
12+
"code": "C02.15.01",
13+
"label": "libellé de C021501"
14+
},
15+
"locationKind": {
16+
"code": "L01.00.00",
17+
"label": "libellé type de lieu"
18+
},
19+
"healthMotive": {
20+
"code": "M03.11",
21+
"label": "libellé motif de recours"
22+
},
23+
"details": {
24+
"status": " ACTIF",
25+
"attribution": "PEDIA",
26+
"priority": "P1",
27+
"careLevel": "R3"
28+
}
29+
},
30+
"location": {
31+
"geometry": {
32+
"point": {
33+
"coord": {
34+
"lat": 37.7749,
35+
"lon": 122.4194,
36+
"height": 16,
37+
"precision": "INCONNUE"
38+
},
39+
"isAml": true
40+
},
41+
"obsDatime": "2025-02-27T06:30:00+01:00"
42+
},
43+
"name": "nom du lieu",
44+
"detailedAddress": {
45+
"complete": "12 rue de nulle part",
46+
"number": "12",
47+
"wayName": {
48+
"complete": "rue de nulle part",
49+
"type": "rue",
50+
"name": "de nulle part"
51+
}
52+
},
53+
"city": {
54+
"name": "nowhere",
55+
"inseeCode": "99999"
56+
}
57+
},
58+
"initialAlert": {
59+
"caller": {
60+
"callerContact": {
61+
"channel": "PERSONNE",
62+
"type": "TEL",
63+
"detail": "+33645897846457895"
64+
},
65+
"type": "MEDSOS"
66+
},
67+
"reception": "2025-02-13T15:00:00+01:00",
68+
"notes": [
69+
{
70+
"creation": "2025-02-27T00:00:00+01:00",
71+
"freetext": "commentaire alerte initiale"
72+
}
73+
]
74+
},
75+
"caseId": "fr.health.samu770.DRFR157702400400055",
76+
"senderCaseId": "DRFR157702400400055",
77+
"creation": "2025-02-27T01:15:00+01:00",
78+
"perimeter": "AMU",
79+
"interventionType": "PRIMAIRE",
80+
"owner": "fr.health.samu770",
81+
"patient": [
82+
{
83+
"idPat": "fr.health.samu770.patient.DRFR157702400400055.1",
84+
"identity": {
85+
"strictFeatures": {
86+
"birthName": "Nom de naissance",
87+
"birthDate": "1954-08-12",
88+
"sex": "MASC"
89+
}
90+
},
91+
"healthMotive": {
92+
"code": "M01.00",
93+
"label": "Détresse vitale"
94+
}
95+
}
96+
]
97+
}
98+
}

converter/tests/versions/create_health_case/test_v1_v2_converter.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import datetime
22
import json
33
from unittest.mock import patch
4+
import pytest
45

56
from converter.utils import get_field_value, extract_message_content
67
from converter.versions.create_case_health.create_case_health_converter import (
@@ -124,3 +125,35 @@ def test_upgrade_with_unknown_v2_language_code():
124125
notes = get_field_value(converted_message_content, "$.initialAlert.notes")
125126
assert len(notes) > 1
126127
assert "Langue du requérant: AX" in notes[-1]["freetext"]
128+
129+
130+
@pytest.mark.parametrize(
131+
"target_version",
132+
[
133+
("v2"),
134+
("v3"),
135+
],
136+
)
137+
def test_upgrade_with_no_language_field(target_version):
138+
"""Test that when language field is not provided, no note is created"""
139+
message = TestHelper.create_edxl_json_from_sample(
140+
TestConstants.EDXL_HEALTH_TO_HEALTH_ENVELOPE_PATH,
141+
"tests/fixtures/RS-EDA/RS-EDA_V1.0_no_language.json",
142+
)
143+
converted_message = CreateHealthCaseConverter.convert("v1", target_version, message)
144+
converted_message_content = extract_message_content(converted_message)[
145+
"createCaseHealth"
146+
]
147+
148+
# Language field should not be present
149+
language = get_field_value(
150+
converted_message_content, "$.initialAlert.caller.language"
151+
)
152+
assert language is None
153+
154+
# No note should be added about language
155+
notes = get_field_value(converted_message_content, "$.initialAlert.notes")
156+
assert len(notes) == 1
157+
# Verify no note contains any language mention
158+
for note in notes:
159+
assert "Langue du requérant" not in note["freetext"]

0 commit comments

Comments
 (0)