This MovementService describes all the information related to a voyage. This section describes the mapping with the SSN message MS2SSN_PortPlus_Not, which contains information about Port Call, Hazmat and Security. Waste declaration is not supported by the CISE data model.
The message structure of MS2SSN_PortPlus_Not can be found here.
XML Example
<?xml version="1.0" encoding="UTF-8"?> <!-- Mapping with SSN message Port notification --> <Movement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://cise.jrc.ec.europa.eu/datamodel/last/xsd/Movement.xsd" xsi:schemaLocation="http://www.cise.eu/datamodel/v1/entity/vessel/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/vessel/Vessel.xsd http://www.cise.eu/datamodel/v1/entity/location/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/location/PortLocation.xsd http://www.cise.eu/datamodel/v1/entity/location/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/location/PortFacilityLocation.xsd http://www.cise.eu/datamodel/v1/entity/organization/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/organization/Organization.xsd http://www.cise.eu/datamodel/v1/entity/document/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/document/VesselDocument.xsd http://www.cise.eu/datamodel/v1/entity/document/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/document/Document.xsd http://www.cise.eu/datamodel/v1/entity/person/ https://cise.jrc.ec.europa.eu/datamodel/last/xsd/entity/person/Person.xsd" xmlns:vessel="http://www.cise.eu/datamodel/v1/entity/vessel/" xmlns:loc="http://www.cise.eu/datamodel/v1/entity/location/" xmlns:orga="http://www.cise.eu/datamodel/v1/entity/organization/" xmlns:doc="http://www.cise.eu/datamodel/v1/entity/document/" xmlns:person="http://www.cise.eu/datamodel/v1/entity/person/"> <!-- information about the voyage --> <LocationRel><!-- port of departure of the current voyage --> <Location xsi:type="loc:PortLocation"><LocationCode>EGDAM</LocationCode></Location> <DateTime><EndDate>2017-11-18</EndDate><EndTime>07:35:00Z</EndTime></DateTime> <LocationRole>StartPlace</LocationRole> <SourceType>Declaration</SourceType> </LocationRel> <LocationRel><!-- port of arrival of the current voyage --> <Location xsi:type="loc:PortLocation"> <LocationCode>ESBCN</LocationCode> <FacilityRel><PortFacilityLocation><PortFacilityNumber>ESBCN:0022</PortFacilityNumber></PortFacilityLocation></FacilityRel> </Location><!-- TODO: include the facility in the port of arrival --> <DateTime><EndDate>2017-11-22</EndDate><EndTime>02:30:00Z</EndTime><StartDate>2017-11-21</StartDate><StartTime>19:00:00Z</StartTime></DateTime> <LocationRole>EndPlace</LocationRole> <SourceType>Declaration</SourceType> </LocationRel> <LocationRel><!-- next port after the current voyage --> <Location xsi:type="loc:PortLocation"><LocationCode>FRMRS</LocationCode></Location> <DateTime><StartDate>2017-11-22</StartDate><StartTime>17:00:00Z</StartTime></DateTime> <LocationRole>NextPlace</LocationRole> <SourceType>Declaration</SourceType> </LocationRel> <!-- information about the vessel involved in this voyage --> <InvolvedObjectRel> <Object xsi:type="vessel:Vessel"> <Name>HANOVER EXPRESS</Name> <LocationRel> <!-- place of registration --> <Location xsi:type="loc:PortLocation"><LocationCode>DEHAM</LocationCode><PortName>Hamburg</PortName></Location> <LocationRole>PortOfRegistry</LocationRole> </LocationRel> <InvolvedAgentRel> <!-- Company --> <Agent xsi:type="orga:Organization"> <IdentificationNumber>0217944</IdentificationNumber> <LegalName>HAPAG-LLOYD AG</LegalName> <OrganizationClassification>Private</OrganizationClassification> </Agent> <AgentRole>ShipOperatingCompany</AgentRole> </InvolvedAgentRel> <InvolvedAgentRel> <!-- Contact for DG Manifest (for Hazmat notification) --> <Agent xsi:type="person:Person"> <ContactInformation> BEGIN:VCARD VERSION:4.0 N:Dupont;Jean;;Mr.; FN:Jean Dupont ORG:ESBCN TEL;TYPE=work,voice;VALUE=uri:tel:+34123456789 TEL;TYPE=work,fax;VALUE=uri:tel:+34012345678 EMAIL:jean.dupont@example.com END:VCARD </ContactInformation> <FamilyName>Dupont</FamilyName> <GivenName>Jean</GivenName> </Agent> <AgentRole>DGPContactPoint</AgentRole> </InvolvedAgentRel> <InvolvedAgentRel> <!-- Agent in port at arrival (for security notification) --> <Agent xsi:type="person:Person"> <ContactInformation> BEGIN:VCARD VERSION:4.0 N:Dupont;Paul;;Mr.; FN:Paul Dupont ORG:ESBCN TEL;TYPE=work,voice;VALUE=uri:tel:+34123456789 TEL;TYPE=work,fax;VALUE=uri:tel:+34012345678 EMAIL:paul.dupont@example.com END:VCARD </ContactInformation> <FamilyName>Dupont</FamilyName> <GivenName>Paul</GivenName> </Agent> <AgentRole>ShipAgent</AgentRole> </InvolvedAgentRel> <Nationality>DE</Nationality> <TotalPersonsOnBoard>21</TotalPersonsOnBoard> <CallSign>DFGX2</CallSign> <ConditionOfTheCargoAndBallast>Empty</ConditionOfTheCargoAndBallast> <GrossTonnage>93750</GrossTonnage> <IMONumber>9343716</IMONumber> <INFShipClass>INF1</INFShipClass> <INMARSATNumber>+870123456789</INMARSATNumber> <ISPSSSecurityLevel>SecurityLevel1</ISPSSSecurityLevel> <MMSI>218092000</MMSI> <RegistryDate>2008-12-05</RegistryDate> <RegistryNumber>123456789</RegistryNumber> <ShipConfiguration>DoubleHullTanker</ShipConfiguration> <ShipType>GeneralCargoShip</ShipType> </Object> <ObjectRole>Participant</ObjectRole> </InvolvedObjectRel> <!-- information about Hazmat involved in this voyage --> <DocumentRel> <Document xsi:type="doc:VesselDocument"> <ReferenceURI>http://myserver.com/GetDGManifest?imo=9343716</ReferenceURI> <DocumentType>DangerousGoodsManifest</DocumentType> </Document> </DocumentRel> <MovementType>Voyage</MovementType> <VoyageNumber>123456789</VoyageNumber> </Movement>
Detailed mapping
Information about the vessel identification and details involved in the voyage
CISE data model element | MS2SSN_PortPlus_Not element | formating or code conversion | Remarks | |
---|---|---|---|---|
SSN | CISE | |||
Movement.InvolvedObjectRel.ObjectRole | - | - | fixed value: Participant | |
Movement.InvolvedObjectRel.Vessel.IMONumber | Body.Notification.VesselIdentification.IMONumber | |||
Movement.InvolvedObjectRel.Vessel.MMSI | Body.Notification.VesselIdentification.MMSINumber | |||
Movement.InvolvedObjectRel.Vessel.CallSign | Body.Notification.VesselIdentification.CallSign | |||
Movement.InvolvedObjectRel.Vessel.Name | Body.Notification.VesselIdentification.ShipName | |||
Movement.InvolvedObjectRel.Vessel.Nationality | Body.Notification.VesselIdentification.Flag | |||
Movement.InvolvedObjectRel.Vessel.GrossTonnage | Body.Notification.VesselsDetails.GrossTonnage | Decimal | double | |
Movement.InvolvedObjectRel.Vessel.ShipType | Body.Notification.VesselsDetails.ShipType | codes | codes | See mapping here |
Movement.InvolvedObjectRel.Vessel.INMARSATNumber | Body.Notification.VesselsDetails.InmarsatCallNumber.Inmarsat | text | text | It is possible to support up to 5 different numbers in SSN, only one is supported in CISE |
Movement.InvolvedObjectRel.Vessel.RegistryDate | Body.Notification.VesselsDetails.CertificateOfRegistry.IssueDate | Date | XSD::Date (YYY-MM-DD) | |
Movement.InvolvedObjectRel.Vessel.RegistryNumber | Body.Notification.VesselsDetails.CertificateOfRegistry.CertificateNumber | |||
Movement.InvolvedObjectRel.Vessel.LocationRel.LocationRole | - | - | fixed value: PortOfRegistry | |
Movement.InvolvedObjectRel.Vessel.LocationRel.PortLocation.LocationCode | Body.Notification.VesselsDetails.CertificateOfRegistry.PortOfRegistry.LoCode | locode | locode | |
Movement.InvolvedObjectRel.Vessel.LocationRel.PortLocation.PortName | Body.Notification.VesselsDetails.CertificateOfRegistry.PortOfRegistry.LocationName | text | text | |
Movement.InvolvedObjectRel.Vessel.InvolvedAgentRel.AgentRole | - | - | fixed value: ShipOperatingCompany | |
Movement.InvolvedObjectRel.Vessel.InvolvedAgentRel.Organization.LegalName | Body.Notification.VesselsDetails.Company.CompanyName | |||
Movement.InvolvedObjectRel.Vessel.InvolvedAgentRel.Organization.IdentificationNumber | Body.Notification.VesselsDetails.Company.IMOCompanyNr | |||
Movement.InvolvedObjectRel.Vessel.InvolvedAgentRel.Organization.OrganizationClassification | - | - | fixed value: private | If it is a private company. Other possible values: Governmental, InterGovernmental (not provided if not known) |
Movement.InvolvedObjectRel.Vessel.ShipConfiguration | Body.Notification.PreArrival3DaysNotificationDetails.ShipConfiguration | Codes:
| Codes:
| Exact correspondences of the codes |
Movement.InvolvedObjectRel.Vessel.ConditionOfTheCargoAndBallast | Body.Notification.PreArrival3DaysNotificationDetails.ConditionCargoBallastTanks | Text | Codes: Full, Empty, Inerted, Other | SSN is a free text, looking for keywords full, empty or inerted to assign a value, if not: Other |
Movement.InvolvedObjectRel.Vessel.TotalPersonsOnBoard | Body.Notification.PreArrival24HoursNotificationDetails.POBVoyageTowardsPortOfCall | int | int |
Information about the voyage
CISE data model element | MS2SSN_PortPlus_Not element | formating or code conversion | Remarks | |
---|---|---|---|---|
SSN | CISE | |||
Movement.VoyageNumber | Body.Notification.VoyageInformation.ShipCallId | |||
Movement.MovementType | - | - | Fixed value: Voyage | Movement is the voyage between the last port of call and the current port of call (reporting) |
Movement.LocationRel1.PortLocation.LocationCode | Body.Notification.VoyageInformation.LastPort | Locode | Locode | LocationRel1 is the description of the last port of call (start of the current voyage) |
Movement.LocationRel1.LocationRole | - | - | Fixed value: StartPlace | Start place means start of the current voyage |
Movement.LocationRel1.SourceType | - | - | Fixed value: Declaration | |
Movement.LocationRel1.DateTime.EndDate | Body.Notification.VoyageInformation.ETDFromLastPort | End date and time are used because they represent the end of the call in the port | ||
Movement.LocationRel1.DateTime.EndTime | Body.Notification.VoyageInformation.ETDFromLastPort | |||
Movement.LocationRel2.PortLocation.LocationCode | Body.Notification.VoyageInformation.PortOfCall | Locode | Locode | LocationRel2 is the description of the current port of call (end of the current voyage) |
Movement.LocationRel2.PortLocation.FacilityRel.PortFacilityLocation.PortFacilityNumber | Body.Notification.VoyageInformation.PortFacility and Body.Notification.VoyageInformation.PortFacilityLocode | Locode:PortFacility eg: ESBCN:0022 | In SSN, PortFacilityLocode gives the locode of the port, PortFacility gives the 4 digits In CISE, the PortFacilityNumber is PortFacilityLocode:PortFacility | |
Movement.LocationRel2.LocationRole | - | - | Fixed value: EndPlace | End place means end of the current voyage |
Movement.LocationRel2.SourceType | - | - | Fixed value: Declaration | Nota: The value could be "Observed" if the information is reported by the port and not the vessel, for instance once the vessel has arrived (ATA - actual time of arrival) |
Movement.LocationRel2.DateTime.StartDate | Body.Notification.VoyageInformation.ETAToPortOfCall or Body.Notification.ArrivalNotificationDetails.ATAPortOfCall (if known) | start = arrival | ||
Movement.LocationRel2.DateTime.StartTime | Body.Notification.VoyageInformation.ETAToPortOfCall or Body.Notification.ArrivalNotificationDetails.ATAPortOfCall (if known) | |||
Movement.LocationRel2.DateTime.EndDate | Body.Notification.VoyageInformation.ETDFromPortofCall or Body.Notification.DepartureNotificationDetails.ATDPortOfCall (if known) | end = departure | ||
Movement.LocationRel2.DateTime.EndTime | Body.Notification.VoyageInformation.ETDFromPortofCall or Body.Notification.DepartureNotificationDetails.ATDPortOfCall (if known) | |||
Movement.LocationRel2.PlannedOperations | Body.Notification.PreArrival3DaysNotificationDetails.PlannedOperations | Text | codes: Loading, Unloading, Other | SSN is a free text, looking for keywords loading or unloading to assign a value, if not: Other Planned Operation is not declared properly: to be fixed in the model |
Movement.LocationRel2.PlannedWorks | Body.Notification.PreArrival3DaysNotificationDetails.PlannedWorks | Text | codes: inspection, MaintenanceAndRepair, Other | SSN is a free text, looking for keywords inspection or maintenance or repair to assign a value, if not: Other Planned Works is not declared properly: to be fixed in the model |
Movement.LocationRel3.PortLocation.LocationCode | Body.Notification.VoyageInformation.NextPort | Locode | Locode | LocationRel3 is the description of the next port of call in the next voyage |
Movement.LocationRel3.LocationRole | - | - | Fixed value: NextPlace | |
Movement.LocationRel3.SourceType | - | - | Fixed value: Declaration | |
Movement.LocationRel3.DateTime.StartDate | Body.Notification.VoyageInformation.ETAToNextPort | start = arrival | ||
Movement.LocationRel3.DateTime.StartTime | Body.Notification.VoyageInformation.ETAToNextPort |
Information about Hazmat
The information can use the HazmatNotificationInfoNonEUDepartures or from HazmatNotificationInfoEUDepartures depending where is the information for the current voyage (if last port was EU or not)
CISE data model element | MS2SSN_PortPlus_Not element | formating or code conversion | Remarks | |
---|---|---|---|---|
SSN | CISE | |||
Movement.InvolvedObjectRel.Vessel.INFShipClass | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.HazmatCargoInformation.INFShipClass | codes:
| codes:
| This information should be at the same level of the other vessel information |
Movement.DocumentRel.VesselDocument.DocumentType | - | - | fixed value: DangerousGoodsManifest | |
Movement.DocumentRel.VesselDocument.ReferenceURI | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.UrlDetails.Url | text | text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.AgentRole | - | - | fixed value: DGPContactPoint | This information should be at the same level of the other vessel information |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.FamilyName | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.ContactDetails.LastName | text | text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.GivenName | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.ContactDetails.FirstName | text | text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.TEL;TYPE=voice | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.ContactDetails.Phone | text | text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.TEL;TYPE=fax | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.ContactDetails.Fax | text | text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.EMAIL | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.ContactDetails.EMail | text | text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.ORG | Body.NotificationStatus.HazmatNotificationInfoNonEUDepartures.CargoManifest.ContactDetails.LoCode | text | text |
Information about Security
CISE data model element | MS2SSN_PortPlus_Not element | formating or code conversion | Remarks | |
---|---|---|---|---|
SSN | CISE | |||
Movement.InvolvedObjectRel.Vessel.ISPSSecurityLevel | Body.NotificationStatus.SecurityNotification.CurrentSecurityLevel | codes:
| codes:
| This information should be at the same level of the other vessel information |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.AgentRole | - | - | fixed value: ShipAgent | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.FamilyName | Body.NotificationStatus.SecurityNotification.AgentInPortAtArrival.AgentName | Text | Text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.TEL;TYPE=voice | Body.NotificationStatus.SecurityNotification.AgentInPortAtArrival.Phone | Text | Text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.TEL;TYPE=fax | Body.NotificationStatus.SecurityNotification.AgentInPortAtArrival.Fax | Text | Text | |
Movement.InvolvedObjectRel.Vessel.InvoledAgentRel.Person.ContactInformation.EMAIL | Body.NotificationStatus.SecurityNotification.AgentInPortAtArrival.EMail | Text | Text |