---
title: FHIR Schedule
tags: fhir-tutorial
disqus: victoriatjia
---
# Module 1. Doctor's Schedule
**Jadwal Dokter Spesialis**

*<center>fig 1.3 Diagram relasi antar resource pada jadwal dokter</center>*
Berdasarkan contoh diagram fig 1.3 Dr. Will Smith memiliki jadwal di setiap hari Senin dari jam 10:00 - 11:30. Durasi konsultasinya adalah 30 menit/ pasien. Jadwal ini berlaku dari tanggal 1 Oktober 2022 hingga 14 Januari 2023. Data-data ini tersimpan dalam *Schedule* resource. Sedangkan *Slot* resource akan menyimpan sesi konsultasi per hari dan jamnya. Sehingga bisa kita lihat dari *Schedule* di fig 1.3 akan menghasilkan 45 *Slot*, dikarenakan antara tanggal 1 Oktober 2022 sampai 14 Januari 2023 ada 15 hari Senin, dan dalam 1 hari ada 3 sesi konsultasi (I= 10:00-10:30; II= 10:30-11:00; III= 11:00-11:30). Untuk status apakah sesi tersebut masih available untuk di booked pasien, atau sudah di booked ataupun unavailable dikarenakan dokter tersebut cuti juga akan tercatat di *Slot* resource.
## Specs Data Format
### 5. [FHIR Schedule](https://hl7.org/fhir/schedule.html)
#### 5.1. Deskripsi
Jadwal Dokter
#### 5.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/Schedule.xlsx)
#### 5.3. Scenario
<table>
<tr>
<td><b>Scenario 1</b></td>
<td>Jadwal dokter</td>
</tr>
</table>
**Example SC1**: Jadwal Carolina Dr. SpKK
[Public server API](https://hapi.fhir.org/baseR4/Schedule/406daecc-9331-4ac8-b861-fdef5d88df65)
:::spoiler JSON example
```gherkin=
{
"resourceType": "Schedule",
"id": "406daecc-9331-4ac8-b861-fdef5d88df65",
"meta": {
"versionId": "7",
"lastUpdated": "2024-01-10T07:23:51.018+00:00",
"source": "#0HG6IBXkaR1KoVbx"
},
"identifier": [ {
"system": "SCH_RowId",
"value": "237||1||3"
} ],
"active": true,
"actor": [ {
"reference": "Practitioner/af387bf9-e4e2-4e58-bb33-6892f4d95eec",
"display": "Carolina Dr. SpKK"
}, {
"reference": "Location/5d47b02b-3c89-4845-bf64-b364851bef61",
"display": "Dermatovenerology Clinic (5th fl)"
} ],
"planningHorizon": {
"start": "2020-10-13T08:00:00",
"end": "2023-11-16T12:00:00"
},
"comment": "Tuesday"
}
```
:::
<!--
---
### 6. [FHIR Slot](https://www.hl7.org/fhir/slot.html)
#### 6.1. Deskripsi
Slot waktu pada jadwal dokter yang tersedia untuk membuat appointment
#### 6.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/Slot.xlsx)
#### 6.3. Scenario
<table>
<tr>
<td><b>Scenario 1</b></td>
<td>Slot jadwal Dokter</td>
</tr>
</table>
**Example SC1**: Slot untuk appointment
[Public server API](https://hapi.fhir.org/baseR4/Slot/9c60f99f-6711-4358-b74f-a7ccec424f2e)
:::spoiler JSON example
```gherkin=
{
"resourceType": "Slot",
"id": "9c60f99f-6711-4358-b74f-a7ccec424f2e",
"meta": {
"versionId": "1",
"lastUpdated": "2022-11-23T03:57:11.304+00:00",
"source": "#lOkXFv43M9cAUgCf"
},
"identifier": [ {
"system": "SLOT_RowId",
"value": "237-6077"
}, {
"system": "SLOT_SlotNo",
"value": "5"
} ],
"schedule": {
"reference": "Schedule/406daecc-9331-4ac8-b861-fdef5d88df65"
},
"status": "free",
"start": "2022-11-22T08:40:00+07:00",
"end": "2022-11-22T08:50:00+07:00"
}
```
:::
:::info
:pushpin: **Untuk search semua Slot dari Schedule/406daecc-9331-4ac8-b861-fdef5d88df65, gunakan search parameter dibawah ini**:
http://[base_url]/fhir/Slot?schedule=406daecc-9331-4ac8-b861-fdef5d88df65
:::
-->
---
## Relasi antar FHIR Resource
Apabila dilihat secara keseluruhan, relasi antar FHIR Resource pada module jadwal dan profil dokter akan membentuk diagram dibawah ini:
<!--  -->

---
## Workflow
Contoh yg tertera di part ini menggunakan FHIR Endpoint: https://hapi.fhir.org/baseR4/
### Menampilkan jadwal dokter berdasarkan nama spesialis
1. GET semua Cluster TCH
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">Organization</font><font style="color:blue">?partof=[Rumah Sakit ID]</font>
Example:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Organization</font><font style="color:blue">?partof=1cfef442-08d8-4e43-a256-3ec28b0e3ba9</font>](https://hapi.fhir.org/baseR4/Organization?partof=1cfef442-08d8-4e43-a256-3ec28b0e3ba9)
2. GET semua Departemen Spesialis Pulmonology By Cluster ID
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">Organization</font><font style="color:blue">?partof=[Cluster ID]</font>
Example:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Organization</font><font style="color:blue">?partof=de83fbb6-f8c6-434d-8619-c48f50430984</font>](https://hapi.fhir.org/baseR4/Organization?partof=de83fbb6-f8c6-434d-8619-c48f50430984)
3. GET lokasi Departemen Spesialis Pulmonology
Ada 2 opsi untuk retrieve FHIR Location:
* Opsi 1: Berdasarkan Organization ID
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">Location</font><font style="color:blue">?organization=[Department spesialis ID]</font>
Example:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Location</font><font style="color:blue">?organization=9f436ce4-f176-4f5d-8ea0-664fbca07f52</font>](https://hapi.fhir.org/baseR4/Location?organization=9f436ce4-f176-4f5d-8ea0-664fbca07f52)
* Opsi 2: Berdasarkan Organization Identifier
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">Location</font><font style="color:blue">?identifier=[Dept_RowId]</font>
Example:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Location</font><font style="color:blue">?identifier=50</font>](https://hapi.fhir.org/baseR4/Location?identifier=50)
4. GET Schedule Dokter spesialis Pulmonology
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">Schedule</font><font style="color:blue">?actor=Location/[Location ID]</font>
Example:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Schedule</font><font style="color:blue">?actor=Location/5d47b02b-3c89-4845-bf64-b364851bef61</font>](https://hapi.fhir.org/baseR4/Schedule?actor=Location/5d47b02b-3c89-4845-bf64-b364851bef61)
### Menampilkan jadwal dokter berdasarkan nama dokter
1. GET semua PractitionerRole yang rolenya adalah dokter
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">PractitionerRole</font><font style="color:blue">?role=[Doctor code]</font>
Example: Kode untuk role dokter di contoh ini adalah 8
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">PractitionerRole</font><font style="color:blue">?role=8</font>](https://hapi.fhir.org/baseR4/PractitionerRole?role=8)
2. Cek apakah Dokter tersebut memiliki jadwal praktek di TCH. Tampilkan nama2 Dokter yang jadwalnya exist saja.
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">Schedule</font><font style="color:blue">?actor=Practitioner/[Practitioner ID]</font>
* Example dokter yang punya jadwal praktek:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Schedule</font><font style="color:blue">?actor=Practitioner/af387bf9-e4e2-4e58-bb33-6892f4d95eec</font>](https://hapi.fhir.org/baseR4/Schedule?actor=Practitioner/af387bf9-e4e2-4e58-bb33-6892f4d95eec)
* Example dokter yang tidak punya jadwal praktek:
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">Schedule</font><font style="color:blue">?actor=Practitioner/32003509-7ea8-4e50-9de5-9b179c695e74</font>](https://hapi.fhir.org/baseR4/Schedule?actor=Practitioner/32003509-7ea8-4e50-9de5-9b179c695e74)
<!--### Menampilkan Profil dokter
1. GET semua PractitionerRole yang rolenya adalah dokter
Format:
<font style="color:orange">[FHIR server endpoint]</font>/<font style="color:green">PractitionerRole</font><font style="color:blue">?role=[Doctor code]</font>
Example: Kode untuk role dokter di contoh ini adalah 8
[<font style="color:orange">https://hapi.fhir.org/baseR4</font>/<font style="color:green">PractitionerRole</font><font style="color:blue">?role=8</font>](https://hapi.fhir.org/baseR4/PractitionerRole?role=8)-->