Waiting room screen¶
Hint
For each request on this page you need to add identication data. More information about this can be found in Identification / access chapter.
Introduction¶
Bricks Huisarts has the option to share information to, for example, a waiting room screen (wachtkamerscherm). Based on the requests on this page your logic can retrieve the needed information to display information on the screen.
Implementation¶
To make the logic work you need to create an application/implement the following:
Get all practice agendas with the Get all practice agendas request
Cache the result and make an option for the practice to retrieve updates when the a new agenda was added (or deleted)
Make it possible for the practice to disable/enable agendas, not all agendas are used for patient appointments!
Get appointment statuses with the Getting appointment status request. The minimal time between status update requests should be five minutes.
Based upon the appointment statuses the application can calculate the global patient waiting time
For a more advanced usage it is possible to give patients the option to manually change their status in the Bricks Huisarts agenda into “present”. This can be done with the Patient registration (easy) request.
Get all practice agendas¶
Use the following request to get all available agendas of the practice.
The result needs to be cached in your application.
Since not all agendas contain appointments that should be included to make calculations you need to create some logic to make it possible to include or exclude agendas.
Request¶
{
"Name": "{{name}}",
"Key": "{{key}}",
"Target": "{{target}}",
"Method": "GetAgendas"
}
.. code-block:: xml
<?xml version="1.0" encoding="utf-16"?>
<Tetra_Agenda_GetAgendas_Verzoek xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1002">
<Identificatie xsi:type="OZB_Communicatie_Identificatie_Servertoken" Id="-1001">
<Token>[token id]</Token>
</Identificatie>
<OntvangerEntiteit>[practice code]</OntvangerEntiteit>
</Tetra_Agenda_GetAgendas_Verzoek>
Response¶
{
"agendas": [
{
"Id": 10013,
"Naam": "Harry v.d. Ploeg"
},
{
"Id": 10082,
"Naam": "Kees van Sichem"
},
{
"Id": 10083,
"Naam": "POH DM"
}
],
"ReturnValue": {
"ResponseCode": 200,
"ResponseText": "OK",
"Melding": "OK",
"Gelukt": true
}
}
<?xml version="1.0" encoding="utf-16"?>
<Tetra_Agenda_GetAgendas_Antwoord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1000">
<CommunicatieStatus>OZB_Communicatie_Status_Verzoek_is_geslaagd</CommunicatieStatus>
<ObjectOmschrijvingen>
<OZB_Communicatie_ObjectOmschrijving Id="10106">
<KorteOmschrijving>Dr. Janssen</KorteOmschrijving>
</OZB_Communicatie_ObjectOmschrijving>
<OZB_Communicatie_ObjectOmschrijving Id="10090">
<KorteOmschrijving>Dr. de Tester</KorteOmschrijving>
</OZB_Communicatie_ObjectOmschrijving>
<OZB_Communicatie_ObjectOmschrijving Id="10118">
<KorteOmschrijving>Dr. Voorbeeld</KorteOmschrijving>
</OZB_Communicatie_ObjectOmschrijving>
</ObjectOmschrijvingen>
</Tetra_Agenda_GetAgendas_Antwoord>
Getting appointment status¶
Based on the selected agenda(s) the appointment statuses can be retrieved from Bricks Huisarts.
The result of the request is cached and updated every five minutes. Getting updates with a higher frequency does not result in updated appointment statuses.
Info
It’s not possible to see if the patient in treatment by the doctor (appointment started).
Request¶
{
"Name": "{{name}}",
"Key": "{{key}}",
"Target": "{{target}}",
"Method": "GetAfspraken",
"start": "2023-05-02T00:00:00",
"eind": "2023-05-05T00:00:00",
"agendaIds": [10013]
}
To get data for multiple agendas add multiple agenda ID’s to agendaIds.
<?xml version="1.0" encoding="utf-16"?>
<Tetra_Agenda_GetAfspraken_Verzoek xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1000">
<Identificatie xsi:type="OZB_Communicatie_Identificatie_Servertoken" Id="-1001">
<Token>[token id]</Token>
</Identificatie>
<OntvangerEntiteit>[practice code]</OntvangerEntiteit>
<Start>2019-05-09T00:00:00+02:00</Start>
<Eind>2019-05-10T00:00:00+02:00</Eind>
<Agendas>
<Tetra_Agenda Id="10106" />
</Agendas>
</Tetra_Agenda_GetAfspraken_Verzoek>
To get data for multiple agendas repeat the <Tetra_Agenda /> with the extra agenda ID as a the ID attribute. In case you leave the <Agendas /> empty the appointments for all agendas will be retrieved.
Response¶
{
"afspraken": [
{
"Id": 116513,
"PatientId": 0,
"AgendaId": 10085,
"AgendaNaam": "Dhr/Mw Voorbeeld agenda",
"Opmerkingen": null,
"PortaalAfspraak": false,
"GemaaktDoorPraktijk": false,
"Start": "2024-01-16T14:15:00",
"Eind": "2024-01-16T14:20:00",
"AfspraakStatus": "",
"WisAfspraakToken": null,
"Metas": {},
"BlokType": null,
"Email": null,
"Voornaam": null,
"Achternaam": null,
"Geslacht": "O"
}
],
"ReturnValue": {
"ResponseCode": 200,
"ResponseText": "OK",
"Melding": "OK",
"Gelukt": true
}
}
Response values
AgendaId
: Connected Agenda (ID)AgendaNaam
: Name of the agenda that contains the appointmentStart
: Start time of the appointmentEind
: End time of the appointmentAfspraakStatus
can contain the following options:NietAanwezig
(1): Patient is not presentAanwezig
(2): Patient is in waiting roomGebeurd
(3): Appointment finishedNietGekomen
(4): Patient did not show upBezig
(5): Appointment started/patient at the doctor
WisAfspraakToken
: Token that can be used to cancel the appointment in combination with the cancel appointment url. For logged in users cancel the appointment using the WisAfspraakById method.BlokType
: Contains information of the connected blocktype for the appointmentEmail
: Patient email addressVoornaam
: First nameAchternaam
: Family nameGeslacht
(gender) can contain the following options:O
: UnknownM
: MaleV
: Female
<?xml version="1.0" encoding="utf-16"?>
<Tetra_Agenda_GetAfspraken_Antwoord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1000">
<CommunicatieStatus>OZB_Communicatie_Status_Verzoek_is_geslaagd</CommunicatieStatus>
<Afspraken>
<Tetra_Agenda_Afspraak Id="-1000">
<PatientId>0</PatientId>
<AgendaId>10106</AgendaId>
<AgendaNaam>Dr. Janssen</AgendaNaam>
<Start>2019-05-09T09:00:00</Start>
<Eind>2019-05-09T09:10:00</Eind>
<AfspraakStatus>OZB_NietGevuld</AfspraakStatus>
<PortaalAfspraak>false</PortaalAfspraak>
<GemaaktDoorPraktijk>false</GemaaktDoorPraktijk>
</Tetra_Agenda_Afspraak>
<Tetra_Agenda_Afspraak Id="-1001">
<PatientId>0</PatientId>
<AgendaId>10090</AgendaId>
<AgendaNaam>Dr. de Tester</AgendaNaam>
<Start>2019-05-09T10:40:00</Start>
<Eind>2019-05-09T10:55:00</Eind>
<AfspraakStatus>OZB_NietGevuld</AfspraakStatus>
<PortaalAfspraak>false</PortaalAfspraak>
<GemaaktDoorPraktijk>false</GemaaktDoorPraktijk>
</Tetra_Agenda_Afspraak>
<Tetra_Agenda_Afspraak Id="-1002">
<PatientId>0</PatientId>
<AgendaId>10118</AgendaId>
<AgendaNaam>Dr. Voorbeeld</AgendaNaam>
<Start>2019-05-09T09:40:00</Start>
<Eind>2019-05-09T09:55:00</Eind>
<AfspraakStatus>OZB_NietGevuld</AfspraakStatus>
<PortaalAfspraak>false</PortaalAfspraak>
<GemaaktDoorPraktijk>false</GemaaktDoorPraktijk>
</Tetra_Agenda_Afspraak>
</Afspraken>
</Tetra_Agenda_GetAfspraken_Antwoord>
Appointment status options
Status (<AfspraakStatus />) |
Description |
---|---|
OZB_NietGevuld |
Patient present status not set (unknown) |
Tetra_Agenda_Afspraak_Status_Aanwezig |
Patient is present (waiting for doctor), set by patient or assistent |
Tetra_Agenda_Afspraak_Status_Gebeurd |
Appointment finished |
Tetra_Agenda_Afspraak_Status_Niet_gekomen |
No show, set by assistent |
Patient registration (easy)¶
The following request can be used to “tell” Bricks Huisarts that the patient is present and is waiting for the doctor. When there is a match, the appointment status will be changed accordingly.
Request¶
{
"Name": "{{name}}",
"Key": "{{key}}",
"Target": "{{target}}",
"Method": "MeldPatientAan",
"identifier": "08-03-1972"
}
Warning
When multiple patients are found or multiple appointments for the same patient on the current day the status won’t be changed.
<?xml version="1.0" encoding="utf-16"?>
<Tetra_Agenda_AanmeldenPatient_Verzoek xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1000">
<Identificatie xsi:type="OZB_Communicatie_Identificatie_Servertoken" Id="-1001">
<Token>[token id]</Token>
</Identificatie>
<OntvangerEntiteit>[practice code]</OntvangerEntiteit>
<Identifier>20050616</Identifier>
</Tetra_Agenda_AanmeldenPatient_Verzoek>
Info
When setting an appointment status to “is present,” the system follows this process:
Check for multiple patients with the same “identifier” for today:
- If multiple patients are found, the API returns an error message indicating this.In this situation there is no 100% guarantee that the correct patient will be set to “is present”.
If only one patient is found, the logic proceeds to the next step.
Check for multiple appointments for the patient:
If multiple appointments exist, the system selects the one closest to the current time and sets its status to “is present.”
If there is only one appointment, it is set to “is present.”
Request values
identifier
can contain the following options:Social security number (BSN)
Patient ID/HIS patient number
Date of birth (dd-mm-yyyy or yyyymmdd)
The patient that has an appointment for today with the given date of birth with be set to “present”.
Response (success)¶
{
"tijdstip": "2023-05-24T15:50:00",
"agenda": "agenda name",
"ReturnValue": {
"ResponseCode": 200,
"ResponseText": "OK",
"Melding": "OK",
"Gelukt": true
}
}
<?xml version="1.0" encoding="utf-8"?>
<Tetra_Agenda_AanmeldenPatient_Antwoord xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="-1000">
<CommunicatieStatus>OZB_Communicatie_Status_Verzoek_is_geslaagd</CommunicatieStatus>
<UitgebreideStatus>Afspraak gevonden en op status Aanwezig gezet.</UitgebreideStatus>
<Transactiestatus>OZB_NietGevuld</Transactiestatus>
<AfsprakenVandaag>
<Tetra_Agenda_Afspraak Id="-1000">
<PatientId>0</PatientId>
<AgendaId>10090</AgendaId>
<AgendaNaam>Dhr. J. Voorbeeld</AgendaNaam>
<Start>2019-05-22T13:50:00</Start>
<Eind>2019-05-22T14:00:00</Eind>
<AfspraakStatus>Tetra_Agenda_Afspraak_Status_Aanwezig</AfspraakStatus>
<PortaalAfspraak>false</PortaalAfspraak>
<GemaaktDoorPraktijk>false</GemaaktDoorPraktijk>
</Tetra_Agenda_Afspraak>
</AfsprakenVandaag>
</Tetra_Agenda_AanmeldenPatient_Antwoord>
Response (no patient/appointments found)¶
{
"tijdstip": "0001-01-01T00:00:00",
"agenda": "",
"ReturnValue": {
"ResponseCode": 500,
"ResponseText": "Server error",
"Melding": "0 patienten gevonden met afspraak vandaag",
"Gelukt": false
}
}
The Melding
can contain messages like:
Message |
Remark |
---|---|
0 afspraken gevonden die niet intern zijn |
No appointments found that are not marked as “internal appointment” for the given identifier |
0 patienten gevonden met afspraak vandaag |
No patients found for the given identifier |
Wel afspraken maar 0 afspraken gevonden zonder “Interne afspraak, niet in portaal tonen” |
There are appointments found for the given identifier, but all of them are marked as internal appointments |
<?xml version="1.0" encoding="utf-8"?>
<Tetra_Agenda_AanmeldenPatient_Antwoord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1000">
<CommunicatieStatus>OZB_Communicatie_Status_Verzoek_is_mislukt</CommunicatieStatus>
<UitgebreideStatus>0 patienten gevonden</UitgebreideStatus>
<Transactiestatus>OZB_NietGevuld</Transactiestatus>
<AfsprakenVandaag />
</Tetra_Agenda_AanmeldenPatient_Antwoord>
Response (more than one appointment found)¶
No example available.
<?xml version="1.0" encoding="utf-8"?>
<Tetra_Agenda_AanmeldenPatient_Antwoord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="-1004">
<CommunicatieStatus>OZB_Communicatie_Status_Verzoek_is_mislukt</CommunicatieStatus>
<UitgebreideStatus>0 of meer dan 1 afspraken gevonden voor deze patient op vandaag</UitgebreideStatus>
<Transactiestatus>OZB_NietGevuld</Transactiestatus>
<AfsprakenVandaag />
</Tetra_Agenda_AanmeldenPatient_Antwoord>
Patient registration (by agenda)¶
The following request can be used to “tell” Bricks Huisarts that the patient is present and is waiting for the doctor. By providing one or more agenda ID’s you specify the agendas that will be uses to find the patient and identify the appointment that needs to be set to “present”.
When there is a match the appointment status will be changed accordingly.
In some situations there are multiple practices configured in Bricks Huisarts and there is a users that works
for multiple practices, but they only has 1 agenda. When you know the agendaID that contains the appointment,
the MeldPatientAanInAgenda
method is the one to use to set appointments to “is present” since it isn’t bound
by targets.
In other words, when a patient is visiting practice A and the agenda that contains the appointment is linked to a user in practice B you can change the patient status to “is present” by sending the request to the target of practice A!
Request¶
{
"Name": "{{name}}",
"Key": "{{key}}",
"Target": "{{target}}",
"Method": "MeldPatientAanInAgenda",
"identifier": "157376",
"agendaIds": [10198]
}
Info
When setting an appointment status to “is present,” the system follows this process:
Check for multiple patients with the same “identifier” for today:
- If multiple patients are found, the API returns an error message indicating this.In this situation there is no 100% guarantee that the correct patient will be set to “is present”.
If only one patient is found, the logic proceeds to the next step.
Check for multiple appointments for the patient:
If multiple appointments exist, the system selects the one closest to the current time and sets its status to “is present.”
If there is only one appointment, it is set to “is present.”
Request values
identifier
can contain the following options:Social security number (BSN)
Patient ID/HIS patient number
Date of birth (dd-mm-yyyy or yyyymmdd)
Response (success)¶
{
"tijdstip": "2023-05-24T15:50:00",
"agenda": "agenda name",
"ReturnValue": {
"ResponseCode": 200,
"ResponseText": "OK",
"Melding": "OK",
"Gelukt": true
}
}
Response (no patient/appointments found)¶
{
"tijdstip": "0001-01-01T00:00:00",
"agenda": "",
"ReturnValue": {
"ResponseCode": 500,
"ResponseText": "Server error",
"Melding": "0 patienten gevonden met afspraak vandaag",
"Gelukt": false
}
}
The Melding
can contain messages like:
Message |
Remark |
---|---|
0 afspraken gevonden die niet intern zijn |
No appointments found that are not marked as “internal appointment” for the given identifier |
0 patienten gevonden met afspraak vandaag |
No patients found for the given identifier |
Wel afspraken maar 0 afspraken gevonden zonder “Interne afspraak, niet in portaal tonen” |
There are appointments found for the given identifier, but all of them are marked as internal appointments |