Skip to content

Commit e1b0e2a

Browse files
authored
Merge pull request #363 from ansforge/fix/converter/rs-eda-v1-to-v3-default-vehicletype
Fix/converter/rs-ri v1 to v3 default vehicletype
2 parents 379642a + 5f265a3 commit e1b0e2a

File tree

5 files changed

+109
-4
lines changed

5 files changed

+109
-4
lines changed

converter/converter/versions/resources_info/resources_info_constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class ResourcesInfoConstants:
8686
}
8787

8888
MOBILIZED_RESOURCE_DEFAULT_VALUE = "AUTRE"
89+
DEFAULT_VEHICLE_TYPE = "AUTREVEC.AUTRE"
8990

9091
MOBILIZED_RESOURCE_PATH = "$.mobilizedResource"
9192
MOBILIZED_RESOURCE_PLATE_PATH = "$.plate"

converter/converter/versions/resources_info/resources_info_converter.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,23 @@ def convert_v1_to_v2(cls, input_json) -> Dict[str, Any]:
6666
freetext,
6767
)
6868

69-
map_to_new_value(
69+
# Set default vehicle type if missing (required in v2/v3, optional in v1)
70+
vehicle_type = get_field_value(
7071
mobilizedResource,
7172
ResourcesInfoConstants.MOBILIZED_RESOURCE_VEHICULE_TYPE_PATH,
72-
ResourcesInfoConstants.V1_TO_V2_VEHICULE_TYPE_MAPPING,
7373
)
74+
if vehicle_type is None:
75+
set_value(
76+
mobilizedResource,
77+
ResourcesInfoConstants.MOBILIZED_RESOURCE_VEHICULE_TYPE_PATH,
78+
ResourcesInfoConstants.DEFAULT_VEHICLE_TYPE,
79+
)
80+
else:
81+
map_to_new_value(
82+
mobilizedResource,
83+
ResourcesInfoConstants.MOBILIZED_RESOURCE_VEHICULE_TYPE_PATH,
84+
ResourcesInfoConstants.V1_TO_V2_VEHICULE_TYPE_MAPPING,
85+
)
7486

7587
switch_field_name(
7688
mobilizedResource,
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"resourcesInfo": {
3+
"mobilizedResource": [
4+
{
5+
"datetime": "2024-08-01T16:55:00+02:00",
6+
"resourceId": "fr.health.samu770.resource.VLM250",
7+
"resourceType": "SMUR",
8+
"team": {
9+
"teamCare": "MED"
10+
},
11+
"state": [
12+
{
13+
"datetime": "2024-08-06T16:45:00+02:00",
14+
"status": "ENGAGE"
15+
}
16+
]
17+
}
18+
],
19+
"caseId": "fr.health.samu770.DRFR157702421400215"
20+
}
21+
}

converter/tests/versions/snapshots/snap_test_resources_info_converter.py

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,69 @@
8282
},
8383
{
8484
"datetime": "2024-08-01T16:55:00+02:00",
85-
"resourceId": "fr.health.samu800.resource.Heli80bec6"
85+
"resourceId": "fr.health.samu800.resource.Heli80bec6",
86+
"vehicleType": "AUTREVEC.AUTRE"
87+
}
88+
]
89+
}
90+
}
91+
}
92+
}
93+
}
94+
]
95+
}"""
96+
97+
snapshots[
98+
"TestSnapshotV1V2Converter::test_missing_vehicle_type_snapshot_V1_to_V2_upgrade 1"
99+
] = """{
100+
"distributionID": "fr.health.samuA_2608323d-507d-4cbf-bf74-52007f8124ea",
101+
"senderID": "fr.health.samuA",
102+
"dateTimeSent": "2022-09-27T08:23:34+02:00",
103+
"dateTimeExpires": "2072-09-27T08:23:34+02:00",
104+
"distributionStatus": "Actual",
105+
"distributionKind": "Report",
106+
"descriptor": {
107+
"language": "fr-FR",
108+
"explicitAddress": {
109+
"explicitAddressScheme": "hubex",
110+
"explicitAddressValue": "fr.health.samuB"
111+
}
112+
},
113+
"content": [
114+
{
115+
"jsonContent": {
116+
"embeddedJsonContent": {
117+
"message": {
118+
"messageId": "2608323d-507d-4cbf-bf74-52007f8124ea",
119+
"sender": {
120+
"name": "samuA",
121+
"URI": "hubsante:fr.health.samuA"
122+
},
123+
"sentAt": "2022-09-27T08:23:34+02:00",
124+
"status": "Actual",
125+
"kind": "Report",
126+
"recipient": [
127+
{
128+
"name": "samuB",
129+
"URI": "hubsante:fr.health.samuB"
130+
}
131+
],
132+
"resourcesInfo": {
133+
"caseId": "fr.health.samu770.DRFR157702421400215",
134+
"resource": [
135+
{
136+
"datetime": "2024-08-01T16:55:00+02:00",
137+
"resourceId": "fr.health.samu770.resource.VLM250",
138+
"team": {
139+
"medicalLevel": "MED"
140+
},
141+
"state": [
142+
{
143+
"datetime": "2024-08-06T16:45:00+02:00",
144+
"status": "ENGAGE"
145+
}
146+
],
147+
"vehicleType": "AUTREVEC.AUTRE"
86148
}
87149
]
88150
}
@@ -133,7 +195,8 @@
133195
"resource": [
134196
{
135197
"datetime": "2024-08-01T16:55:00+02:00",
136-
"resourceId": "fr.health.samu800.resource.Heli80bec6"
198+
"resourceId": "fr.health.samu800.resource.Heli80bec6",
199+
"vehicleType": "AUTREVEC.AUTRE"
137200
}
138201
]
139202
}

converter/tests/versions/test_resources_info_converter.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ def test_required_fields_snapshot_V1_to_V2_upgrade(self):
3939
output_data = ResourcesInfoConverter.convert_v1_to_v2(message)
4040
self.assertMatchSnapshot(json.dumps(output_data, indent=2))
4141

42+
def test_missing_vehicle_type_snapshot_V1_to_V2_upgrade(self):
43+
message = TestHelper.create_edxl_json_from_sample(
44+
TestConstants.EDXL_HEALTH_TO_HEALTH_ENVELOPE_PATH,
45+
"tests/fixtures/RS-RI/RS-RI_V1.0_missing_vehicleType.json",
46+
)
47+
output_data = ResourcesInfoConverter.convert_v1_to_v2(message)
48+
self.assertMatchSnapshot(json.dumps(output_data, indent=2))
49+
4250

4351
def test_V2_to_V1_downgrade():
4452
v1_schema_endpoint = get_file_endpoint(

0 commit comments

Comments
 (0)