0.1.4 - draft
NabotoImplementationGuide - Local Development build (v0.1.4). See the Directory of published versions
This section explains what you can do with the API described by this IG. In the current version the API is supposed only to be used for one-way synchonization. Therefor you can export data from your system to Naboto, but not the other way around. In the future the API is likely to be extended to also provide GET endpoints and allow synchronization of data from Naboto to your AIS/KIS (from here on called your system).
With this API patients can be created and updated in Naboto using the Naboto Patient Profile data structure. Please note that each patient is required to have either an email address or a mobile number (see Patient.telecom). This is necessary because Patients will receive messages containing links for joining video calls.
Patient-URL: [base-url]/patient
For creating a new patient send a POST
request to the Patient-URL containing a valid NabotoPatient JSON object (see NabotoPatientExample).
For updating an existing Patient send a PUT
request to the Patient-URL containing a valid NabotoPatient JSON object (see NabotoPatientExample).
Whenever a Patient which was created by your software through this API is updated in your system, those changes should also be applied to the patient in the Naboto System, if any of the relevant data (the fields from NabotoPatient) has changed. Patients created through the API can’t be edited inside the Naboto GUI in order to prevent conflicting data.
With this API Appointments can be created and updated in Naboto using the Naboto Appointment Profile data structure.
Note: Currently only video call Appointments can be created in Visit-e.
Appointment-URL: [base-url]/appointment
For creating a new Appointment send a POST
request to the Appointment-URL containing a valid NabotoAppointment JSON object (see NabotoAppointmentExample).
Only appointments that already have been accepted by their participants should be synchronized to our server.
For updating an existing Appointment send a PUT
request to the Appointment-URL containing a valid NabotoAppointment JSON object (see NabotoAppointmentExample).
Whenever an Appointment which was created by your software through this API is updated in your system, those changes should also be applied to the appointment in the Naboto System, if any of the relevant data (the fields from NabotoAppointment) has changed. Appointments created through the API can’t be edited inside the Naboto GUI in order to prevent conflicting data. Naboto periodically simulates the expected start times of Appointments for the entire current day and communicates delays to Patients. It is important that changes in the status of an Appointment are updated in Naboto as soon as they occur in your system.
If you want to create an Appointment that is supposed to be conducted as a video call, you need to use the VirtualServiceContactDetail extension. If the extension is present on any of the participants, the appointment is concidered to take place as a video call. The attributes url
and sessionKey
are generated by the server and therefor ignored during create and update operations.
Example VirtualServiceContactDetail for creating an Appointment for a video consultation:
{
"extension" : [
{
"extension" : [
{
"url" : "channelType",
"valueCoding" : {
"system" : "http://fhir.naboto.com/4.0.1/NabotoProfiles/CodeSystem/naboto-vidcall-channel-type",
"code" : "visit-e"
}
}
],
"url" : "http://hl7.at/fhir/NABOTO/R4/StructureDefinition/virtual-service-contact-detail"
}
],
}
Example VirtualServiceContactDetail for with automatically assigned URL for video consultation:
{
"extension" : [
{
"extension" : [
{
"url" : "channelType",
"valueCoding" : {
"system" : "http://fhir.naboto.com/4.0.1/NabotoProfiles/CodeSystem/naboto-vidcall-channel-type",
"code" : "visit-e"
}
},
{
"url" : "address",
"valueUrl" : "https://patient.visit-e.at/1234567890"
},
{
"url" : "sessionKey",
"valueString" : "1234567890"
}
],
"url" : "http://hl7.at/fhir/NABOTO/R4/StructureDefinition/virtual-service-contact-detail"
}
]
}
Please be aware that each participant is assigned a personal address
and sessionKey
. They serve as access keys for joining the video calls and should be protected in your application accordingly.
The server automatically creates messages for the participating Patient and Practitioner (if the Practitioner enabled this in their account settings). For the patient the messages are sent either as Emails or SMS depending on which ContactPoint is present for the Patient. The following types of messages are sent to Patients:
For inter-service identification of entities (e.g. patient, appointment) an identifier containing the id
of the entity in your system should be used.
Example identifier: An identifier that refers to a patient with id 12345 on a fictional system
{
"use" : "official",
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/v2-0203",
"code" : "PI",
"display" : "Patient internal identifier"
}
]
},
"system" : "https://your-system.xy/Patients",
"value" : "12345",
"assigner" : {
"display" : "Ein GDA in Österreich"
}
}
The id
attribute for the scope of this API refers to the id
of an entity assigned to it by the Naboto system. For creating a new entity it should not be present in the request object, since the entity doesn’t exist in the Naboto database before creation. The response will contain an automatically assigned id
, which should be persisted in your system so you can later reference the same entity in an update operation.
When updating an entity the id
attribute must be present in the request object.