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