###### tags: `Projects` `CMS` `KB` # [CMS] Knowledge Base ###### *`CMS` -> `Cloud Medical System`* :::warning # TODO - [ ] Patient page mobile app - [ ] Dashboard update ::: ## Resources - [Development](#Development) - [[CMS] Entity Relationship Diagram](https://hackmd.io/@noobtech/B1G6MC40t) - [[CMS] Activity Diagrams](/Bd42hQesSRCvfNI0noI7Zg) ### Repositories - [API Repo](https://gitlab.com/Noob-Tech/cms/api-repo) - [API Record](https://gitlab.com/Noob-Tech/cms/api-record) - [Admin Dashboard](https://gitlab.com/Noob-Tech/cms/admin-dashboard) - [Web App](https://gitlab.com/Noob-Tech/cms/web-app-v2) #### Mockup - [Dashboard](https://xd.adobe.com/view/b7408017-a32c-4028-a285-c933c7693d49-e213) - [Mobile App](https://xd.adobe.com/view/ba44db66-4598-4a81-ac87-c0cd4601d274-ef17/) ## Overview ### Definisi / *Definition* Tentang *CMS App* secara umum untuk menjawab seputar *Q&A* *5W+1H* berikut: 1. ***What*** - Apa itu Cloud Medical System (*CMS*)? 2. **Why** - Kenapa perlu menggunakan *CMS* ? 3. **Who** - Pengguna *CMS* siapa aja? 4. **How** - Bagaimana CMS bisa menjadi solusi atau sebagai *demand* pengguna? ### Objektif / *Objective* 1. Dokter dapat mengakses data rekam medis dengan cepat dan mudah 2. Dokter A dapat menangani pasien yang sama di rumah sakit yang berbeda 3. Pasien dapat mempunyai dan melihat data rekam medisnya sendiri dari setiap dokter yang menanganinya ### Entitas / *Entities* 1. Dokter 2. Pasien 3. *Medical Record* ### Glosarium / *Glossary* Istilah & objek yg terlibat di *CMS* | Istilah | Definisi | |:-------------- |:------------------ | | Patient | Pasien | | Doctor | Dokter | | Medical Record | Rekam medik pasien | ### Fitur utama / *Key Features* Tentang fitur-fitur utama yang jadi keunggulan *CMS* bagi pengguna 1. *Medical Record* berbasis penyimpanan *Cloud Computing* 2. Dokter dapat membuat *medical record* pasien yang masih aktif dalam *treatment* 3. Dokter mempunyai daftar pasien & *medical record*-nya yang masih dalam *treatment* & pernah ditangani > ### Fitur Rinci / *Detailed Features* 1. Doctor 1. Dashboard - Melihat daftar pasien yang sedang aktif pengobatan - Membuat *Medical Record* pasien yang sedang aktif pengobatan - Menambahkan pasien yang sedang ditangani menggunakan fitur *add patient* agar dokter dapat membuat *medical record* pasien - Melakukan *finish treatment* pasien yang telah selesai pengobatan 2. Patient - Menyimpan daftar pasien yang sedang & pernah ditangani dokter. Pada menu ini juga dokter dapat melihat *medical record* pasiennya 3. Shared Record - Tempat dokter dapat melihat *medical record* milik pasien yang ditulis oleh dokter lain - Dokter hanya bisa melihat *medical record* yang dibagikan oleh pasiennya 4. Account 4.1 Profile - Menampilkan informasi singkat dokter - Mengganti alamat *email* 4.2 Change Password - Mengganti *account* password 2. Patient 1. Dashboard - Pasien dapat melihat seluruh *medical record* miliknya - Pasien dapat membagikan *medical record* kepada dokter yang diizinkan & telah terdaftar sebagai dokter yang sedang menangani pasien ybs 2. Upload - Pasien dapat mengunggah *medical record* yang berbentuk *file* lalu akan terdafar didalam Dashboard pasien 4. Account 3.1 Profile - Menampilkan informasi singkat pasien - Mengganti alamat *email* 3.2 Change Password - Mengganti *account* password #### Feature Matrix | No | Fitur | Cek | | --- | ----- | ----- | | 1 | A | | | 2 | B | **✓** | | 3 | ... | ... | ## Technology Stack ### User Dashboard (Web) | Tool | Name | | --------------- | --------- | | Language | Typescript | | Architecture | MVVM | | Platform | Web App | | Library | Svelte | | Design Approach | MaterialUI | | API Integration | gRPC Web | ### Admin Dashboard (Web) | Tool | Name | | --------------- | --------- | | Language | Typescript | | Architecture | MVVM | | Platform | Web App | | Library | NextJS | | Design Approach | MaterialUI | | API Integration | gRPC Web | ### Backend | Tool | Name | |:------------- |:--------------------------- | | Language | Golang, Python | | Design Pattern | Repository Pattern | | Architecture | Clean Arch | | API Library | gRPC | | Database | PostgreSQL | | Storage | MinIO | | Containerized | Docker | | API Testing | Postman, Stoplight, Swagger | ### Development #### Keys 1. Client credentials ```yaml= > Admin App Client credential. ClientId = TD1SZQ8R ClientSecret = GMwqYsT8M0C10h416X4hQCYXfH3AfWOA > User Web App Client credential. ClientId = Q8PS84VG ClientSecret = uL74DvNICcarVBwPnTEVVYJdTqDm5cXl > User Mobile App Client credential. ClientId = APOEMM7E ClientSecret = mB18HOVTaSIbqeXIN0tiEE4DYzfRyiXD > Internal Service Client credential. ClientId = O6GT47N3 ClientSecret = RnZ0UFjwxzRBQuHriFjAcLf2mOOUQHZi ``` 2. User credentials ```yaml= > Super Administrator credential. Username = superadmin@cms.co.id Password = jo4RTmskFfflDYoffxwomSzXo3S1w6O5 ``` #### Postman #### Importing - Collection: :::info Use **Import > Link** to import collection ::: - Environment: :::info Use **Import > Raw Text** to import environment and put environment below :::