@@ -14,8 +14,12 @@ import entities.events.EventProperties.EventKey
1414import entities.events.ProcessEvent
1515import entities.events.TrackingEvent
1616import entities.process.ProcessData
17+ import entities.process.ProcessData.RoomType.OPERATING_ROOM
18+ import entities.process.ProcessData.RoomType.PRE_OPERATING_ROOM
1719import infrastructure.digitaltwins.events.RelationshipEvents
1820import infrastructure.digitaltwins.events.TwinProperties.DTModelID.HEALTH_PROFESSIONAL_MODEL_ID
21+ import infrastructure.digitaltwins.events.TwinProperties.DTModelID.PATIENT_MODEL_ID
22+ import infrastructure.digitaltwins.events.TwinProperties.DTModelID.PRE_OPERATING_ROOM_MODEL_ID
1923import infrastructure.digitaltwins.events.TwinProperties.DTModelID.PROCESS_MODEL_ID
2024
2125/* *
@@ -38,7 +42,24 @@ class RelationshipEventParser {
3842 data = true ,
3943 dateTime = createdRelationship.eventDateTime
4044 )
41-
45+ else -> EmptyEvent ()
46+ }
47+ }
48+ PATIENT_MODEL_ID .id -> {
49+ when (createdRelationship.data.relationshipName) {
50+ " rel_is_inside" -> ProcessEvent (
51+ key = EventKey .PATIENT_TRACKED_EVENT ,
52+ data = ProcessData .PatientTracked (
53+ patientId = createdRelationship.data.sourceId,
54+ roomId = createdRelationship.data.targetId,
55+ entered = true ,
56+ roomType =
57+ if (createdRelationship.data.targetModel == PRE_OPERATING_ROOM_MODEL_ID .id)
58+ PRE_OPERATING_ROOM
59+ else OPERATING_ROOM
60+ ),
61+ dateTime = createdRelationship.eventDateTime
62+ )
4263 else -> EmptyEvent ()
4364 }
4465 }
@@ -65,12 +86,34 @@ class RelationshipEventParser {
6586 */
6687 fun manageDeletedRelationship (deletedRelationship : RelationshipEvents .RelationshipEvent ): Event <Any > =
6788 when (deletedRelationship.data.relationshipName) {
68- " rel_is_inside" -> TrackingEvent (
69- healthProfessionalId = deletedRelationship.data.sourceId,
70- roomId = deletedRelationship.data.targetId,
71- data = false ,
72- dateTime = deletedRelationship.eventDateTime
73- )
89+ " rel_is_inside" -> {
90+ when (deletedRelationship.data.sourceModel) {
91+ HEALTH_PROFESSIONAL_MODEL_ID .id -> {
92+ TrackingEvent (
93+ healthProfessionalId = deletedRelationship.data.sourceId,
94+ roomId = deletedRelationship.data.targetId,
95+ data = false ,
96+ dateTime = deletedRelationship.eventDateTime
97+ )
98+ }
99+ PATIENT_MODEL_ID .id -> {
100+ ProcessEvent (
101+ key = EventKey .PATIENT_TRACKED_EVENT ,
102+ data = ProcessData .PatientTracked (
103+ patientId = deletedRelationship.data.sourceId,
104+ roomId = deletedRelationship.data.targetId,
105+ entered = false ,
106+ roomType =
107+ if (deletedRelationship.data.targetModel == PRE_OPERATING_ROOM_MODEL_ID .id)
108+ PRE_OPERATING_ROOM
109+ else OPERATING_ROOM
110+ ),
111+ dateTime = deletedRelationship.eventDateTime
112+ )
113+ }
114+ else -> EmptyEvent ()
115+ }
116+ }
74117 else -> EmptyEvent ()
75118 }
76119}
0 commit comments