---
# System prepended metadata

title: MOD 1. Doctor's Schedule

---

---
title: FHIR Schedule
tags: fhir-tutorial
disqus: victoriatjia
---

# Module 1. Doctor's Schedule

**Jadwal Dokter Spesialis**
![](https://i.imgur.com/vjKtl6f.png)
*<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:
<!-- ![](https://i.imgur.com/efD0SCA.png) -->
![](https://i.imgur.com/WDR7d9a.png)

---
## 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)-->