--- title: Integration of Document Repository & Document Registry on Healthcare Ecosystem tags: FHIR on DocumentRepository & DocumentRegistry --- ## Integration of Document Repository & Document Registry on Healthcare Ecosystem [TOC] ## Introduction Setiap rumah sakit memiliki tempat penyimpanan dokumen masing-masing, seperti server VNA, File server, dll. Dokumen yang disimpan dapat berupa ringkasan medis, report laboratory, report radiology, photo medis, dll. Untuk menunjang pelayanan medis dan kesehatan pertukaran dokumen antara rumah sakit sangat diperlukan. Maka dari itu pada artikel kali ini, akan menjabarkan mekanisme pertukaran dokumen antar repositori dengan mengimplementasi dokument registry. Sebelum itu mari kita pahami definisi masing-masing. - Dokumen repository = storage tempat menyimpan dokumen, seperti File server, Google drive, VNA, etc Dokumen repository digunakan bagi menyedia jasa medis untuk menyimpan dokumen, baik dokumen pasien maupun dokumen administrasi rumah sakit. - Document registry = storage tempat mengindex dokumen, seperti excel, database, etc Dokumen registry digunakan untuk memudahkan managemen, pencarian dan pengaksesan dokumen. Dengan dokumen registri dokument yang tersebar dan tersimpan pada several storage pun dapat mudah diakses, tersentralize, dan akses terpusat. Berikut diagram hubungan antara dokument repositori dan dokumen registri: ![Untitled Diagram.drawio (1)](https://hackmd.io/_uploads/SJ40vNWFT.png) *<center>fig 1.1 Diagram relasi antar dokumen repository dan dokumen registry</center>* Diagram diatas (fig 1.1) menyatakan bahwasanya Hospital A menyimpan photo medis pada Gdrive, Hospital B menyimpan photo medis pada File server, dan Hospital C menyimpan photo medis pada VNA Server. Photo medis ini perlu diindex pada satu dokumen registry untuk memungkinkan pertukaran photo medis antar institusi kesehatan. ## Implementasi Pada artikel kali ini, kita akan mengimplementasi ide diatas dengan skenario yaitu penyimpanan gambar skin lesi pasien rumah sakit A 'Billy Smith' ke dokumen repository GDrive. Kemudian dokument yang telah tersimpan pada dokument repository (File server / Google Drive / VNA Server) diindex pada Dokument Registry (FHIR Server) menggunakan resource FHIR DocumentReference agar dapat diakses oleh rumah sakit lain. ### Phase 1: Tenaga medis mengupload poto ke document repository Beberapa klinik pada rumah sakit melakukan pemotretan gambar untuk pemantauan kondisi pasien. Beberapa klinik diantaranya adalah klinik kulit, mata, THT, dll. Pemotretan dilaksanakan umumnya oleh tenaga medis. Pada kali ini kami akan mendemonstrasi skenario ini. Berikut langkah-langkahnya: 1. Tenaga medis memotret skin lesi dari pasien Billy Smith 2. Tenaga medis menyimpan poto ke dokumen repository (Google Drive) ![_Pink and Beige Web Projects Computer Logo](https://hackmd.io/_uploads/rkpNWtKup.png) - Photo in Gdrive access url: a. bodyshot_skinlesionbodyshot01: https://drive.google.com/file/d/1EA3bFg2Y61IvJ9awUkjoCJ3wuPB-vb_Q/view?usp=drive_link b. macrodermoscopic_skinlesionmacrodermoscopic01: https://drive.google.com/file/d/1Xf11KHwDlJil0kqiAyX89uYOf-ifAS8R/view?usp=drive_link c. wholebody_skinlesionwholebody01: https://drive.google.com/file/d/1_KMjoG59FMlqZLLTj5Ebbtq18ymoIBpK/view?usp=sharing 2. Poto tersimpan pada repository dan terindex ke dokumen registry - Dokumen terindexed dengan FHIR DocumentReference URL: :::spoiler [TCUMI.skinlesionimagestudy01.01]() ```json=18 { "resourceType": "DocumentReference", "id": "TCUMI.skinlesionimagestudy01.01", "meta": { "versionId": "1", "lastUpdated": "2023-08-06T13:44:51.660+08:00", "source": "#IvKImzH60hJWQNGy" }, "status": "current", "docStatus": "final", "type": { "coding": [ { "system": "https://203.64.84.150:58443/r5/fhir/CodeSystem/8f414151-bf5f-46ce-94fe-f96d9e867d29", "code": "skinlesion.imagestudy", "display": "Skin lesion image study" } ] }, "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/media-category", "code": "image", "display": "Image" } ] }, { "coding": [ { "system": "https://203.64.84.150:58443/r5/fhir/CodeSystem/8f414151-bf5f-46ce-94fe-f96d9e867d29", "code": "skinlesion.image", "display": "Skin lesion image" } ] } ], "subject": { "reference": "Patient/TCUMI.Patient01", "display": "Billy Smith" }, "custodian": { "reference": "Organization/TCUMI.Organization01", "display": "Jian Hospital" }, "date": "2023-06-11T00:26:24.24+08:00", "author": [ { "reference": "PractitionerRole/TCUMI.PractitionerRole02", "display": "Dr. Lissa Carte" } ], "description": "This is document reference for recording skin lesion examination attached images", "content": [ { "attachment": { "contentType": "image/jpeg", "url": "https://drive.google.com/file/d/1EA3bFg2Y61IvJ9awUkjoCJ3wuPB-vb_Q/view?usp=drive_link", "title": "wholebody_skinlesionwholebody01.JPG" } }, { "attachment": { "contentType": "image/jpeg", "url": "https://drive.google.com/file/d/1Xf11KHwDlJil0kqiAyX89uYOf-ifAS8R/view?usp=drive_link", "title": "bodyshot_skinlesionbodyshot01.JPG" } }, { "attachment": { "contentType": "image/jpeg", "url": "https://drive.google.com/file/d/1_KMjoG59FMlqZLLTj5Ebbtq18ymoIBpK/view?usp=sharing", "title": "macrodermoscopic_skinlesionmacrodermoscopic01.JPG" } } ] } ``` ## Specs Data Format ### 1. [FHIR Organization](https://www.hl7.org/fhir/organization.html) #### 1.1. Deskripsi Pengelompokan orang atau organisasi yang diakui secara formal atau informal yang dibentuk untuk mencapai tujuan tertentu. Termasuk perusahaan, institusi, korporasi, departemen, kelompok masyarakat, tim medis, pembayar/penjamin, dll. Ada dua contoh *Organization* yang bisa kita lihat di website HL7 FHIR, [Burgers UMC](https://www.hl7.org/fhir/organization-example-f001-burgers.html) dan [Burgers UMC Cardiology unit](https://www.hl7.org/fhir/organization-example-f002-burgers-card.html). "Burger UMC" adalah rumah sakit dan "Burgers UMC Cardiology unit" adalah salah satu departemen di UMC Burger. **Organization.Partof** Di contoh JSON dari [Burgers UMC Cardiology unit](https://www.hl7.org/fhir/organization-example-f002-burgers-card.html), kita bisa lihat ada kolom "partof" yang menunjukkan hubungan antara departemen Kardiologi Burgers UMC dengan parentnya yaitu Rumah Sakit Burgers UMC. ![](https://i.imgur.com/ucihrqt.png =500x350) *<center>fig 1.5 Hubungan antara Burgers UMC Hospital dan Burgers UMC Cardiology unit</center>* Kolom “partof” dapat menghubungkan setiap unit di rumah sakit dan menunjukkan hubungan antara *parent* dan *child*. Ketika seluruh relasi dihubungkan, maka diagram pohon organisasi akan terbentuk, yang mana diagram ini merupakan dasar dalam implementasi sebuah sistem healthcare. #### 1.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/Organization.xlsx) #### 1.3. Scenario <table> <tr> <td><b>Scenario 1</b></td> <td>Rumah sakit</td> </tr> <tr> <td><b>Scenario 2</b></td> <td>Cluster/departemen/klinik spesialis</td> </tr> </table> - **Example SC1**: Jian Hospital [Public server API](https://203.64.84.150:58443/r5/fhir/Organization/TCUMI.Organization01) :::spoiler JSON example ```gherkin= { "resourceType": "Organization", "id": "TCUMI.Organization01", "meta": { "versionId": "1", "lastUpdated": "2023-06-15T01:41:20.039+08:00", "source": "#YMJQ3KS6s2OvOcnA" }, "identifier": [ { "use": "official", "system": "HOSP_RowId", "value": "3" }, { "use": "usual", "system": "HOSP_Code", "value": "8890" } ], "active": true, "type": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/organization-type", "code": "prov", "display": "Healthcare Provider" } ] } ], "name": "Jian Hospital", "contact": [ { "purpose": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/contactentity-type", "code": "ADMIN", "display": "Administrative" } ] }, "name": [ { "text": "Emergency" } ], "telecom": [ { "system": "phone", "value": "(021)50950800", "use": "work" } ] }, { "purpose": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/contactentity-type", "code": "ADMIN", "display": "Administrative" } ] }, "name": [ { "text": "Call Center Telephone" } ], "telecom": [ { "system": "phone", "value": "(03)50950888", "use": "work" } ] }, { "purpose": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/contactentity-type", "code": "ADMIN", "display": "Administrative" } ] }, "name": [ { "text": "Call Center WA" } ], "telecom": [ { "system": "other", "value": "(+886)909678987", "use": "work" } ] } ] } ``` ::: - **Example SC2-2**: Cluster Dermatovenerology [Public server API](https://203.64.84.150:58443/r5/fhir/Organization/TCUMI.Organization02) :::spoiler JSON example ```gherkin= { "resourceType": "Organization", "id": "TCUMI.Organization02", "meta": { "versionId": "1", "lastUpdated": "2024-02-05T09:25:16.246+00:00", "source": "#7z3jxUfXZOJ1a4xg" }, "identifier": [ { "system": "CLUSTER_RowId", "value": "14" }, { "system": "CLUSTER_Code", "value": "CSE" } ], "active": true, "type": [ { "coding": [ { "system": "https://www.hl7.org/fhir/codesystem-organization-type.html", "code": "dept", "display": "Hospital Department" } ], "text": "Hospital Department" } ], "name": "Dermatovenerology Center", "partOf": { "reference": "Organization/TCUMI.Organization01" } } ``` ::: - **Example SC2-4**: Departemen Spesialis Kulit (Dermatovenerology) [Public server API](https://203.64.84.150:58443/r5/fhir/Organization/TCUMI.Organization03) :::spoiler JSON example ```gherkin= { "resourceType": "Organization", "id": "TCUMI.Organization03", "meta": { "versionId": "1", "lastUpdated": "2024-02-05T09:29:36.582+00:00", "source": "#l30mc0JEXUvLS83s" }, "identifier": [ { "system": "DEPT_RowId", "value": "77" }, { "system": "DEPT_Code", "value": "TCHDER" } ], "active": true, "type": [ { "coding": [ { "system": "https://www.hl7.org/fhir/codesystem-organization-type.html", "code": "dept", "display": "Hospital Department" } ], "text": "Hospital Department" } ], "name": "Dermatovenerology Clinic (5th fl)", "partOf": { "reference": "Organization/TCUMI.Organization02" } } ``` ::: --- ### 2. [FHIR Patient](https://www.hl7.org/fhir/organization.html) #### 2.1. Deskripsi Seseorang yang menerima pelayanan medis. #### 2.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/Patient.xlsx) #### 2.3. Scenario <table> <tr> <td><b>Scenario 1</b></td> <td>Pasien</td> </tr> </table> - **Example SC1-1**: Pasien Jian Hospital bernama Billy Smith [Public server API](https://203.64.84.150:58443/r5/fhir/Patient/TCUMI.Patient01) :::spoiler JSON example ```gherkin= { "resourceType": "Patient", "id": "TCUMI.Patient01", "meta": { "versionId": "4", "lastUpdated": "2023-06-19T23:56:20.376+08:00", "source": "#pXS4dqIZfSNieVMa" }, "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><table class=\"hapiPropertyTable\"><tbody/></table></div>" }, "identifier": [ { "system": "http://www.boca.gov.tw/", "value": "310942728" }, { "system": "https://docs.google.com/spreadsheets/d/1BBBZZbEO82wkvLbHtbpa4ihdFTMoIG0KQGH5bgUoo70/edit#gid=1986712865", "value": "JianHospital_Patient01" } ], "name": [ { "text": "Billy Smith", "family": "Smith", "given": [ "Billy" ] } ], "gender": "male", "birthDate": "2000-03-03T01:52:25.835+08:00", "managingOrganization": { "reference": "Organization/TCUMI.Organization01", "display": "Jian Hospital" } } ``` ::: --- ### 3. [FHIR Practitioner](https://www.hl7.org/fhir/practitioner.html) #### 3.1. Deskripsi Seseorang yang secara langsung atau tidak langsung terlibat dalam penyediaan layanan kesehatan, atau disebut juga tenaga kesehatan (Nakes) #### 3.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/Practitioner.xlsx) #### 3.3. Scenario <table> <tr> <td><b>Scenario 1</b></td> <td>Dokter</td> </tr> </table> - **Example SC1**: Dr. Lissa Carte [Public server API](https://203.64.84.150:58443/r5/fhir/Practitioner/TCUMI.Practitioner02) :::spoiler JSON example ```gherkin= { "resourceType": "Practitioner", "id": "TCUMI.Practitioner02", "meta": { "versionId": "1", "lastUpdated": "2023-06-15T15:33:55.407+08:00", "source": "#MsbDlS1QrZZycVTe" }, "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n <p>Dr. Lissa Carte is a Referring Practitioner for Jian Hospital from 1-Jan 2012 to 31-Mar\n 2023</p>\n </div>" }, "identifier": [ { "system": "http://www.jian.org/practitioners", "value": "Practitioner0002" } ], "active": true, "name": [ { "text": "Dr. Lissa Carte", "family": "Carte", "given": [ "Lissa" ], "prefix": [ "Dr." ] } ], "address": [ { "use": "home", "line": [ "534 Erewhon St" ], "city": "PleasantVille", "state": "Vic", "postalCode": "3999" } ], "qualification": [ { "identifier": [ { "system": "http://example.org/UniversityIdentifier", "value": "12346" } ], "code": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0360/2.7", "code": "BS", "display": "Bachelor of Science" } ], "text": "Bachelor of Science" }, "period": { "start": "1995" }, "issuer": { "display": "Tzu Chi University" } } ] } ``` ::: --- ### 4. [FHIR PractitionerRole](https://www.hl7.org/fhir/practitionerrole.html) #### 4.1. Deskripsi Nama spesialis Nakes. PractitionerRole berfungsi sebagai penghubung antara Dokter (Practitioner) dan nama spesialis (Organization) #### 4.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/PractitionerRole.xlsx) #### 4.3. Scenario <table> <tr> <td><b>Scenario 1</b></td> <td>Spesialis Nakes</td> </tr> </table> - **Example SC1**: Nama spesialis Dr. Lissa Carte [Public server API](https://203.64.84.150:58443/r5/fhir/PractitionerRole/TCUMI.PractitionerRole02) :::spoiler JSON example ```gherkin= { "resourceType": "PractitionerRole", "id": "TCUMI.PractitionerRole02", "meta": { "versionId": "3", "lastUpdated": "2023-06-20T18:45:33.645+08:00", "source": "#QksGenXsuRqHbUbm" }, "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>\n\t\t\t\tDr. Lissa Carte is a Referring Practitioner for Jian Hospital from 1-Jan 2012 to 31-December\n\t\t\t\t2023\n\t\t\t</p>\n\t\t</div>" }, "identifier": [ { "system": "https://docs.google.com/spreadsheets/d/1BBBZZbEO82wkvLbHtbpa4ihdFTMoIG0KQGH5bgUoo70/edit#gid=1319234787", "value": "JianHospital_Practitioner02" } ], "active": true, "period": { "start": "2012-01-01", "end": "2023-12-31" }, "practitioner": { "reference": "Practitioner/TCUMI.Practitioner02", "display": "Dr. Lissa Carte" }, "organization": { "reference": "Organization/TCUMI.Organization01", "display": "Jian Hospital" }, "code": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0286", "code": "RP", "display": "Referring Provider" } ] } ], "specialty": [ { "coding": [ { "system": "https://203.64.84.150:58443/r5/fhir/CodeSystem/8f414151-bf5f-46ce-94fe-f96d9e867d29", "code": "dermatologist", "display": "Dermatologist" } ] } ], "contact": [ { "telecom": [ { "system": "phone", "value": "(03) 5555 6473", "use": "work" }, { "system": "email", "value": "lissacarte@gmail.com", "use": "work" } ] } ], "availability": [ { "availableTime": [ { "daysOfWeek": [ "mon", "tue", "wed" ], "availableStartTime": "09:00:00", "availableEndTime": "16:30:00" }, { "daysOfWeek": [ "thu", "fri" ], "availableStartTime": "09:00:00", "availableEndTime": "12:00:00" } ], "notAvailableTime": [ { "description": "Dr. Lissa Carte be on extended leave during May 2017", "during": { "start": "2017-05-01", "end": "2017-05-20" } }, { "description": "Dr. Lissa Carte is generally unavailable on public holidays and during the Christmas/New Year break" } ] } ] } ``` ::: --- ### 2. [FHIR DocumentReference](https://www.hl7.org/fhir/organization.html) #### 2.1. Deskripsi Dokumen untuk mengindex dokumen pada repository. #### 2.2. Spesifikasi data format -> [link](https://github.com/victoriatjia/Guideline/blob/master/SatuSehat/Specs%20Format%20FHIR/custom/DocumentReference.xlsx) #### 2.3. Scenario <table> <tr> <td><b>Scenario 1</b></td> <td>Photo skin lesi</td> </tr> <tr> <td><b>Scenario 2</b></td> <td>Report pemeriksaan skin lesi</td> </tr>tr> <tr> <td><b>Scenario 3</b></td> <td>Report pemeriksaan radiologi</td> </tr> </table> - **Example SC1-1**: Photo skin lesi [Public server API](https://203.64.84.150:58443/r5/fhir/DocumentReference/TCUMI.skinlesionimagestudy01.01) :::spoiler JSON example ```gherkin= { "resourceType": "DocumentReference", "id": "TCUMI.skinlesionimagestudy01.01", "meta": { "versionId": "1", "lastUpdated": "2023-08-06T13:44:51.660+08:00", "source": "#IvKImzH60hJWQNGy" }, "status": "current", "docStatus": "final", "type": { "coding": [ { "system": "https://203.64.84.150:58443/r5/fhir/CodeSystem/8f414151-bf5f-46ce-94fe-f96d9e867d29", "code": "skinlesion.imagestudy", "display": "Skin lesion image study" } ] }, "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/media-category", "code": "image", "display": "Image" } ] }, { "coding": [ { "system": "https://203.64.84.150:58443/r5/fhir/CodeSystem/8f414151-bf5f-46ce-94fe-f96d9e867d29", "code": "skinlesion.image", "display": "Skin lesion image" } ] } ], "subject": { "reference": "Patient/TCUMI.Patient01", "display": "Billy Smith" }, "custodian": { "reference": "Organization/TCUMI.Organization01", "display": "Jian Hospital" }, "date": "2023-06-11T00:26:24.24+08:00", "author": [ { "reference": "PractitionerRole/TCUMI.PractitionerRole02", "display": "Dr. Lissa Carte" } ], "description": "This is document reference for recording skin lesion examination attached images", "content": [ { "attachment": { "contentType": "image/jpeg", "url": "https://drive.google.com/file/d/1EA3bFg2Y61IvJ9awUkjoCJ3wuPB-vb_Q/view?usp=drive_link", "title": "wholebody_skinlesionwholebody01.JPG" } }, { "attachment": { "contentType": "image/jpeg", "url": "https://drive.google.com/file/d/1Xf11KHwDlJil0kqiAyX89uYOf-ifAS8R/view?usp=drive_link", "title": "bodyshot_skinlesionbodyshot01.JPG" } }, { "attachment": { "contentType": "image/jpeg", "url": "https://drive.google.com/file/d/1_KMjoG59FMlqZLLTj5Ebbtq18ymoIBpK/view?usp=sharing", "title": "macrodermoscopic_skinlesionmacrodermoscopic01.JPG" } } ] } ``` ::: <br> --- ## Usecase Jian Hospital dermatovenerology department mengupload photo lesi kulit pasien ke VNA server serta mengindexnya pada dokumen registri publik, sehingga photo dapat diakses oleh rumah sakit lain.