diff --git a/src/app/identitas/identitas.page.ts b/src/app/identitas/identitas.page.ts index 889d7b6..50fc1c1 100644 --- a/src/app/identitas/identitas.page.ts +++ b/src/app/identitas/identitas.page.ts @@ -94,7 +94,7 @@ export class IdentitasPage implements OnInit { }); toast.present(); } - simpanData() { + async simpanData() { if (this.isEdit && this.idIdentitas) { this.identitasService.updateIdentitas(this.idIdentitas, this.userData).subscribe( response => this.handleResponse(response), @@ -102,7 +102,14 @@ export class IdentitasPage implements OnInit { ); } else { this.identitasService.simpanIdentitas(this.userData).subscribe( - response => this.handleResponse(response), + async (response) => { + if (!this.isEdit) { + await this.storage.set('id_identitas', response.id || response.data.id); + this.idIdentitas = response.id || response.data.id; // Update local idIdentitas + this.isEdit = true; + } + this.handleResponse(response); + }, error => this.handleError(error) ); } diff --git a/src/app/pemeriksaan/pemeriksaan.page.html b/src/app/pemeriksaan/pemeriksaan.page.html index f99498b..7d9d50c 100644 --- a/src/app/pemeriksaan/pemeriksaan.page.html +++ b/src/app/pemeriksaan/pemeriksaan.page.html @@ -16,80 +16,104 @@ Berat Badan (Kg) - + Tinggi Badan (Cm) - + IMT (Kg/m²) - + - Lingkar Perut (Cm) - + Tekanan Darah Diastole(mmHg) + - Tekanan Darah (mmHg) - + Tekanan Darah Sistole(mmHg) + Frekuensi Nafas (Kali/menit) - + Nadi (Kali/menit) - + Kadar Gula Darah (mg/dL) - + - Kadar Kolesterol (mg/dL) - + Kadar Kolesterol HDL(mg/dL) + + + + + Kadar Kolesterol LDL(mg/dL) + + + + + Kadar Kolesterol Total(mg/dL) + Kadar HB (gr/dL) - + Kadar Asam Urat (mg/dL) - + Golongan Darah - + - Px. HbA1C (%) - + Trigliserida + + + + Lingkar Perut + + + + + Waktu Pengambilan Gula Darah + + Puasa minimal 8 jam + Satu sampai 2 jam setelah makan + Gula Darah Sewaktu/GDS + Sebelum berangkat tidur malam + Kondisi Umum - + Keluhan/Perasaan - + - Simpan + Simpan diff --git a/src/app/pemeriksaan/pemeriksaan.page.ts b/src/app/pemeriksaan/pemeriksaan.page.ts index 2baf2d5..0dcc48a 100644 --- a/src/app/pemeriksaan/pemeriksaan.page.ts +++ b/src/app/pemeriksaan/pemeriksaan.page.ts @@ -1,5 +1,8 @@ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; +import { Storage } from '@ionic/storage-angular'; +import { ToastController } from '@ionic/angular'; +import { PengukuranService } from '../services/pengukuran.service'; @Component({ selector: 'app-pemeriksaan', @@ -7,13 +10,68 @@ import { Router } from '@angular/router'; styleUrls: ['./pemeriksaan.page.scss'], }) export class PemeriksaanPage implements OnInit { + public payloadData = { + identitas_id: 0, + berat_badan: '', + frekuensi_nafas: '', + golongan_darah: "", + imt: '', + kadar_asam_urat: '', + kadar_gula_darah: '', + kadar_hb: '', + keluhan_perasaan: '', + kolesterol_hdl: '', + kolesterol_ldl: '', + kolesterol_total: '', + kondisi_umum: '', + lingkar_perut: '', + nadi: '', + tekanan_darah_diastole: 0, + tekanan_darah_sistole: 0, + tinggi_badan: '', + trigliserida: '', + waktu_pengambilan_gula_darah: '' + }; + private idIdentitas: number | null = null; - constructor(private router: Router) { } + constructor( + private storage: Storage, + private toastController: ToastController, + private pengukuranService: PengukuranService + ) {} - ngOnInit() { + async ngOnInit() { + await this.storage.create(); + this.idIdentitas = await this.storage.get('id_identitas'); + } + async simpanData() { + if (!this.payloadData.identitas_id && this.idIdentitas) { + this.payloadData.identitas_id = this.idIdentitas; + } + console.log(this.payloadData); + this.pengukuranService.simpanPengukuran(this.payloadData).subscribe( + async (response) => { + this.handleResponse(response); + }, + error => this.handleError(error) + ); + } + handleResponse(response: any) { + this.showToast('Data successfully saved!', 'top', 'success'); } - goToNewPage() { - this.router.navigate(['/indikator']); + handleError(error: { message: any; }) { + this.showToast(`Error saving data: ${error.message}`, 'top', 'danger'); } + async showToast(message: string, position: 'top' | 'middle' | 'bottom', color: string) { + const toast = await this.toastController.create({ + message: message, + duration: 2000, + position: position, + color: color + }); + toast.present(); + } + + } diff --git a/src/app/services/pengukuran.service.spec.ts b/src/app/services/pengukuran.service.spec.ts new file mode 100644 index 0000000..e4199b9 --- /dev/null +++ b/src/app/services/pengukuran.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PengukuranService } from './pengukuran.service'; + +describe('PengukuranService', () => { + let service: PengukuranService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PengukuranService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/pengukuran.service.ts b/src/app/services/pengukuran.service.ts new file mode 100644 index 0000000..749b29b --- /dev/null +++ b/src/app/services/pengukuran.service.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from '../../environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class PengukuranService { + + private apiUrl = `${environment.apiUrl}/pengukuran`; + + constructor(private http: HttpClient) { } + + simpanPengukuran(data: any): Observable { + return this.http.post(this.apiUrl, data); + } +} \ No newline at end of file