integrasi identitas & pengukuran
This commit is contained in:
parent
3d63594d4f
commit
58fa93d99c
|
@ -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)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -16,80 +16,104 @@
|
|||
<ion-list>
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Berat Badan (Kg)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Berat Badan"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.berat_badan" placeholder="Masukkan Berat Badan"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Tinggi Badan (Cm)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Tinggi Badan"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.tinggi_badan" placeholder="Masukkan Tinggi Badan"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">IMT (Kg/m²)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan IMT"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.imt" placeholder="Masukkan IMT"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Lingkar Perut (Cm)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Lingkar Perut"></ion-input>
|
||||
<ion-label position="stacked">Tekanan Darah Diastole(mmHg)</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.tekanan_darah_diastole" placeholder="Masukkan Tekanan Darah Diastole"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Tekanan Darah (mmHg)</ion-label>
|
||||
<ion-input type="text" placeholder="Masukkan Tekanan Darah"></ion-input>
|
||||
<ion-label position="stacked">Tekanan Darah Sistole(mmHg)</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.tekanan_darah_sistole" placeholder="Masukkan Tekanan Darah Sistole"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Frekuensi Nafas (Kali/menit)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Frekuensi Nafas"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.frekuensi_nafas" placeholder="Masukkan Frekuensi Nafas"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Nadi (Kali/menit)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Nadi"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.nadi" placeholder="Masukkan Nadi"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kadar Gula Darah (mg/dL)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Kadar Gula Darah"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.kadar_gula_darah" placeholder="Masukkan Kadar Gula Darah"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kadar Kolesterol (mg/dL)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Kadar Kolesterol"></ion-input>
|
||||
<ion-label position="stacked">Kadar Kolesterol HDL(mg/dL)</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.kolesterol_hdl" placeholder="Masukkan Kadar Kolesterol"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kadar Kolesterol LDL(mg/dL)</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.kolesterol_ldl" placeholder="Masukkan Kadar Kolesterol LDL"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kadar Kolesterol Total(mg/dL)</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.kolesterol_total" placeholder="Masukkan Kadar Kolesterol Total"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kadar HB (gr/dL)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Kadar HB"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.kadar_hb" placeholder="Masukkan Kadar HB"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kadar Asam Urat (mg/dL)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Kadar Asam Urat"></ion-input>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.kadar_asam_urat" placeholder="Masukkan Kadar Asam Urat"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Golongan Darah</ion-label>
|
||||
<ion-input type="text" placeholder="Masukkan Golongan Darah"></ion-input>
|
||||
<ion-input type="text" [(ngModel)]="payloadData.golongan_darah" placeholder="Masukkan Golongan Darah"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Px. HbA1C (%)</ion-label>
|
||||
<ion-input type="number" placeholder="Masukkan Px. HbA1C"></ion-input>
|
||||
<ion-label position="stacked">Trigliserida</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.trigliserida" placeholder="Masukkan Trigliserida"></ion-input>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Lingkar Perut</ion-label>
|
||||
<ion-input type="number" [(ngModel)]="payloadData.lingkar_perut" placeholder="Masukkan Lingkar Perut"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Waktu Pengambilan Gula Darah</ion-label>
|
||||
<ion-select [(ngModel)]="payloadData.waktu_pengambilan_gula_darah" placeholder="Pilih waktu">
|
||||
<ion-select-option value="puasa">Puasa minimal 8 jam</ion-select-option>
|
||||
<ion-select-option value="makan">Satu sampai 2 jam setelah makan</ion-select-option>
|
||||
<ion-select-option value="gds">Gula Darah Sewaktu/GDS</ion-select-option>
|
||||
<ion-select-option value="tidur">Sebelum berangkat tidur malam</ion-select-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Kondisi Umum</ion-label>
|
||||
<ion-input type="text" placeholder="Masukkan Kondisi Umum"></ion-input>
|
||||
<ion-input type="text" [(ngModel)]="payloadData.kondisi_umum" placeholder="Masukkan Kondisi Umum"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="stacked">Keluhan/Perasaan</ion-label>
|
||||
<ion-textarea placeholder="Tuliskan Keluhan atau Perasaan"></ion-textarea>
|
||||
<ion-textarea [(ngModel)]="payloadData.keluhan_perasaan" placeholder="Tuliskan Keluhan atau Perasaan"></ion-textarea>
|
||||
</ion-item>
|
||||
|
||||
<ion-button expand="block" color="primary">Simpan</ion-button>
|
||||
<ion-button expand="block" color="primary" (click)="simpanData()">Simpan</ion-button>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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<any> {
|
||||
return this.http.post(this.apiUrl, data);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue