894 lines
46 KiB
PHP
894 lines
46 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
<title>CPONE</title>
|
|
<link rel="stylesheet" href="../../../libs/vendor/css/google-fonts.css">
|
|
<link rel="stylesheet" href="../../../libs/vendor/css/icomoon-fonts.css">
|
|
<link rel="stylesheet" href="../../../libs/vendor/css/vuetify.min.css">
|
|
</head>
|
|
|
|
<body onbeforeunload="return ''">
|
|
<div v-cloak id="app">
|
|
<v-app id="smartApp">
|
|
<!--<one-navbar></one-navbar>-->
|
|
<v-content style="background:#F5E8DF!important">
|
|
<v-container fluid>
|
|
<template>
|
|
<div id="e3" style="max-width: 620px; margin:auto">
|
|
<v-dialog v-model="dialogError" width="500">
|
|
<v-card>
|
|
<v-card-title class="headline red ligthen-2 text-white" primary-title>
|
|
ERROR !
|
|
</v-card-title>
|
|
|
|
<v-card-text>
|
|
<p v-html="errorMsg"></p>
|
|
</v-card-text>
|
|
|
|
<v-divider></v-divider>
|
|
|
|
<v-card-actions>
|
|
<v-spacer></v-spacer>
|
|
<v-btn color="primary" block @click="dialogError = false">
|
|
Tutup
|
|
</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
<v-toolbar class="primary" dark>
|
|
<v-btn icon>
|
|
<v-icon>assignment</v-icon>
|
|
</v-btn>
|
|
<v-toolbar-title>Riwayat Pasien</v-toolbar-title>
|
|
<v-spacer></v-spacer>
|
|
<!--<v-btn @click="logout()" icon>
|
|
<v-icon color="black">remove_circle</v-icon>
|
|
</v-btn>-->
|
|
</v-toolbar>
|
|
|
|
<v-card>
|
|
<v-card-text>
|
|
<v-progress-linear v-if="loading_form_code" :indeterminate="true"></v-progress-linear>
|
|
<v-layout v-if="open_form_code" row>
|
|
<v-flex xs12>
|
|
<v-card>
|
|
<v-card-text>
|
|
<v-text-field :clearable="true" v-model="form_code" placeholder="Masukkan kode form" :error-messages="errorMsg" :error="errorMsg == ''" label="Kode" />
|
|
</v-card-text>
|
|
<v-card-actions>
|
|
<v-btn block :disabled="form_code == ''" color="primary" @click="saveFormCode">Lanjutkan</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout v-if="!open_form_code && start_form == false" row>
|
|
<v-flex xs12>
|
|
<v-card>
|
|
<v-card-text>
|
|
<h4>DATA PASIEN</h4>
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
<v-layout row>
|
|
<v-flex xs12>
|
|
<v-text-field disabled :value="data_patient.patient_name" label="Nama" />
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs6>
|
|
<v-text-field disabled :value="data_patient.gender == 'male' ? 'Laki-laki' : 'Perempuan'" label="Jenis Kelamin" />
|
|
</v-flex>
|
|
<v-flex xs6>
|
|
<v-text-field disabled :value="data_patient.dob" label="Tanggal Lahir" />
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout class="mb-3" row>
|
|
<v-flex xs12>
|
|
<v-text-field disabled :value="data_patient.location_mcu" :success-messages="data_patient.department" label="Department"/>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout class="mb-3" row>
|
|
<v-flex xs12>
|
|
<v-text-field disabled :value="data_patient.corporate_name" :success-messages="data_patient.corporate_address" label="Perusahaan" />
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-card-text>
|
|
</v-card>
|
|
</v-layout>
|
|
|
|
<v-layout v-if="!open_form_code && data_riwayat.length > 0" class="mt-2" row>
|
|
<v-flex xs12>
|
|
<v-card >
|
|
<v-card-text v-if="start_form == true">
|
|
<h4>DATA RIWAYAT</h4>
|
|
<p class="mt-2 mb-2">Pilih yang sesuai dengan riwayat anda</p>
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
<div v-for="(item,item_idx) in data_riwayat" :key="item_idx">
|
|
<div v-if="templates[tab].title === item.title">
|
|
<h4 class="mt-4 mb-2" >{{ templates[tab].alias }}</h4>
|
|
<div v-if="item.type_form === 'XVS'">
|
|
<v-layout v-if="templates[tab].allow_normal" row>
|
|
<v-flex xs12>
|
|
<v-card class="btn-card" v-if="item.flag_normal === 'N' && data_patient.is_sampling !== 'D'" block @click="item.flag_normal = 'Y'">{{item.label_flag_normal}}</v-card>
|
|
<v-card class="btn-card" dark v-if="item.flag_normal === 'Y' && data_patient.is_sampling !== 'D'" block color="primary" @click="item.flag_normal = 'N'">{{item.label_flag_normal}}</v-card>
|
|
|
|
<v-card class="btn-card" v-if="item.flag_normal === 'N' && data_patient.is_sampling === 'D'" block flat>{{item.label_flag_normal}}</v-card>
|
|
<v-card class="btn-card" dark v-if="item.flag_normal === 'Y' && data_patient.is_sampling === 'D'" block color="primary" flat>{{item.label_flag_normal}}</v-card>
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
</v-flex>
|
|
</v-layout>
|
|
<div v-for="(detail,detail_idx) in item.details" :key="detail_idx">
|
|
<v-layout wrap>
|
|
<v-flex xs12>
|
|
<v-layout v-for="(child_detail,child_detail_idx) in detail.details" :key="child_detail_idx" v-if="!templates[tab].section.includes(child_detail.segment_name)" row>
|
|
<v-flex xs12>
|
|
<v-card class="btn-card" :dark="child_detail.chx" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" @click="child_detail.chx = child_detail.chx === true ? false : true">{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark >{{child_detail.label}}</v-card>
|
|
|
|
<v-card class="btn-card" :dark="child_detail.chx" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" flat>{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark flat>{{child_detail.label}}</v-card>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-for="(detail,detail_idx) in item.details" :key="detail_idx">
|
|
<h5 class="mt-3 mb-2" v-if="templates[tab].section.includes(detail.name)">{{detail.name == 'Allergi' ? 'ALERGI' : detail.name}}</h5>
|
|
<v-layout wrap>
|
|
<v-flex xs12>
|
|
<v-layout v-for="(child_detail,child_detail_idx) in detail.details" :key="child_detail_idx" v-if="templates[tab].section.includes(child_detail.segment_name)" row>
|
|
<v-flex xs12>
|
|
<v-card class="btn-card" :dark="child_detail.chx" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" @click="child_detail.chx = child_detail.chx === true ? false : true">{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark >{{child_detail.label}}</v-card>
|
|
|
|
<v-card class="btn-card" :dark="child_detail.chx" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" flat>{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark flat>{{child_detail.label}}</v-card>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
</div>
|
|
<div v-if="item.type_form === 'XV'">
|
|
<v-layout wrap>
|
|
<v-flex xs12>
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'N'" block @click="item.flag_normal = 'Y'">{{item.label_flag_normal}}</v-card>
|
|
<v-card class="btn-card" dark v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'Y'" block color="primary" @click="item.flag_normal = 'N'">{{item.label_flag_normal}}</v-card>
|
|
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'N'" block flat>{{item.label_flag_normal}}</v-card>
|
|
<v-card class="btn-card" dark v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'Y'" block color="primary" flat>{{item.label_flag_normal}}</v-card>
|
|
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
<v-layout v-for="(child_detail,child_detail_idx) in item.details" :key="child_detail_idx" row>
|
|
<v-flex xs12>
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" @click="child_detail.chx = child_detail.chx === true ? false : true">{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark >{{child_detail.label}}</v-card>
|
|
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" flat>{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark flat>{{child_detail.label}}</v-card>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-if="item.type_form === 'XO' && item.title === 'RIWAYAT PENYAKIT KELUARGA'">
|
|
<p class="mt-2 mb-1 subheader">Apakah ada orang tua yang memiliki penyakit berikut :</p>
|
|
<p class="mt-0 mb-2 caption">Klik pada ( ayah / ibu ) jika ada</p>
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
<v-layout wrap>
|
|
<v-flex xs12>
|
|
<v-layout v-for="(child_detail,child_detail_idx) in item.details" :key="child_detail_idx" class="pt-2 pb-2" row>
|
|
<v-flex xs6>
|
|
<span>{{child_detail.label}}</span>
|
|
</v-flex>
|
|
<v-flex xs3 class="text-xs-right" v-for="(chx_detail,chx_detail_idx) in child_detail.options" :key="child_detail_idx" row>
|
|
<v-chip v-if="data_patient.is_sampling !== 'D'" label dark :color="chx_detail.selected ? 'primary' : ''" @click="chx_detail.selected = chx_detail.selected === true ? false : true">{{chx_detail.label}}</v-chip>
|
|
<v-chip v-if="data_patient.is_sampling === 'D'" label dark :color="chx_detail.selected ? 'primary' : ''" flat>{{chx_detail.label}}</v-chip>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-if="item.type_form === 'XD'">
|
|
<v-layout v-if="templates[tab].allow_normal" row>
|
|
<v-flex xs12>
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'N'" block @click="item.flag_normal = 'Y'">{{item.label_flag_normal}}</v-card>
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'Y'" block color="primary" @click="item.flag_normal = 'N'">{{item.label_flag_normal}}</v-card>
|
|
|
|
<v-card class="btn-card" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'N'" block flat>{{item.label_flag_normal}}</v-card>
|
|
<v-card class="btn-card" dark v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'Y'" block color="primary" flat>{{item.label_flag_normal}}</v-card>
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
</v-flex>
|
|
</v-layout>
|
|
<div v-for="(detail,detail_idx) in item.details" :key="detail_idx">
|
|
<h5 class="mt-4 mb-2">{{detail.label}}</h5>
|
|
<v-layout wrap>
|
|
<v-flex xs12>
|
|
<v-layout v-for="(child_detail,child_detail_idx) in detail.details" :key="child_detail_idx" row>
|
|
<v-flex xs12>
|
|
<v-card :dark="child_detail.chx" class="btn-card" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" @click="child_detail.chx = child_detail.chx === true ? false : true">{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling !== 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark >{{child_detail.label}}</v-card>
|
|
|
|
<v-card :dark="child_detail.chx" class="btn-card" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'N' && templates[tab].childs.includes(child_detail.id_code)" :color="child_detail.chx ? 'primary' : ''" flat>{{child_detail.label}}</v-card>
|
|
<v-card flat color="#f5f5f5" class="btn-card grey--text text--darken-1" v-if="data_patient.is_sampling === 'D' && item.flag_normal === 'Y' && templates[tab].childs.includes(child_detail.id_code)" dark flat>{{child_detail.label}}</v-card>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
</div>
|
|
</v-layout>
|
|
<v-divider class="mt-2 mb-2"></v-divider>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</v-card-text>
|
|
<v-card-actions>
|
|
<v-btn v-if="start_form == false" block color="red" dark @click="start_form = true">Mulai</v-btn>
|
|
|
|
<v-btn v-if="start_form == true && tab > 0" block color="black" dark @click="tab = tab - 1">Kembali</v-btn>
|
|
<v-btn v-if="start_form == true && tab == 0" block color="black" dark @click="start_form = false">Kembali</v-btn>
|
|
|
|
<v-btn v-if="start_form == true && tab < templates.length - 1" block color="red" dark @click="doLanjut()">Lanjut</v-btn>
|
|
<v-btn v-if="start_form == true && tab === templates.length - 1 && data_patient.is_sampling === 'D'" block depressed>Sudah Selesai</v-btn>
|
|
<v-btn v-if="start_form == true && tab === templates.length - 1 && data_patient.is_sampling !== 'D'" block color="teal" dark @click="saveRiwayat">Simpan</v-btn>
|
|
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-card-text>
|
|
</v-card>
|
|
</div>
|
|
</template>
|
|
<v-dialog v-model="dialog_success" width="500">
|
|
<v-card >
|
|
<v-card-title class="headline success text-white" primary-title>
|
|
Berhasil
|
|
</v-card-title>
|
|
<v-card-text>
|
|
<p>Riwayat pasien berhasil disimpan</p>
|
|
</v-card-text>
|
|
<v-card-actions>
|
|
<v-btn block color="primary" @click="dialog_success = false">Tutup</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
|
|
</v-dialog>
|
|
</v-container>
|
|
</v-content>
|
|
<!--<one-footer> </one-footer>-->
|
|
|
|
</v-app>
|
|
</div>
|
|
<style>
|
|
.btn-card{
|
|
padding: 10px;
|
|
border-radius: 5px;
|
|
cursor: pointer;
|
|
margin-bottom: 10px;
|
|
}
|
|
</style>
|
|
|
|
<!-- Vendor -->
|
|
<script src="../../../libs/vendor/html5-qrcode.min.js"></script>
|
|
<script src="../../../libs/vendor/moment.min.js"></script>
|
|
<script src="../../../libs/vendor/numeral.min.js"></script>
|
|
<script src="../../../libs/vendor/moment-locale-id.js"></script>
|
|
<script src="../../../libs/vendor/lodash.js"></script>
|
|
<script src="../../../libs/vendor/axios.min.js"></script>
|
|
<script src="../../../libs/vendor/vue.js"></script>
|
|
<script src="../../../libs/vendor/vuex.js"></script>
|
|
<script src="../../../libs/vendor/vuetify.js"></script>
|
|
<script src="../../../libs/vendor/httpVueLoader.js"></script>
|
|
<script src="../../../libs/one_global.js"></script>
|
|
<script src="../../../libs/one_print_barcode.js"></script>
|
|
<script src="../../../libs/one_print_robo.js"></script>
|
|
|
|
|
|
|
|
<!-- App Script -->
|
|
<?php
|
|
$ts = "?ts=" . Date("ymdhis");
|
|
?>
|
|
<script type="module">
|
|
window.calculate_age = function(inp_dob) {
|
|
var now = moment(new Date())
|
|
var dob = moment(new Date(inp_dob))
|
|
var year = now.diff(dob, 'years')
|
|
dob.add(year, 'years')
|
|
var month = now.diff(dob, 'months')
|
|
dob.add(month, 'months')
|
|
var day = now.diff(dob, 'days')
|
|
if (isNaN(year)) return ''
|
|
return `${year} tahun ${month} bulan ${day} hari`
|
|
}
|
|
|
|
|
|
import {
|
|
store
|
|
} from './store.js<?php echo $ts ?>';
|
|
|
|
//for testing
|
|
window.store = store;
|
|
new Vue({
|
|
store,
|
|
el: '#app',
|
|
components: {
|
|
'one-navbar': httpVueLoader('../../../apps/components/oneNavbarComponent.vue'),
|
|
'one-footer': httpVueLoader('../../../apps/components/oneFooter.vue'),
|
|
'one-patient-list': httpVueLoader('./components/onePatientList.vue')
|
|
|
|
},
|
|
mounted: function() {
|
|
let url_string = window.location.href
|
|
let url = new URL(url_string)
|
|
let id = url.searchParams.get("id")
|
|
|
|
let dt_patient = this.$store.state.patient.data_patient
|
|
if (id && _.isEmpty(dt_patient)) {
|
|
this.$store.commit('patient/update_uuid_form', id)
|
|
}
|
|
|
|
},
|
|
methods: {
|
|
saveRiwayat(){
|
|
this.loading_form_code = true
|
|
let dt_riwayat = this.data_riwayat
|
|
let errors = []
|
|
dt_riwayat.forEach(item => {
|
|
if(item.type_form === 'XVS'){
|
|
let flag_normal = true
|
|
let checked = []
|
|
|
|
item.details.forEach(detail => {
|
|
let per_child = []
|
|
detail.details.forEach(child_detail => {
|
|
if(child_detail.chx){
|
|
checked.push(child_detail.id_code)
|
|
per_child.push(child_detail.id_code)
|
|
}
|
|
})
|
|
//console.log(detail.name)
|
|
//console.log(per_child.length)
|
|
if(item.title === 'RIWAYAT KEBIASAAN HIDUP' && per_child.length > 1){
|
|
let errMsg = `Pilih salah satu dari ${detail.name} <br>`
|
|
errors.push(errMsg)
|
|
}
|
|
if(item.title === 'RIWAYAT KEBIASAAN HIDUP' && per_child.length === 0){
|
|
let errMsg = `Pilih salah satu dari ${detail.name} <br>`
|
|
errors.push(errMsg)
|
|
}
|
|
})
|
|
if(checked.length > 0){
|
|
flag_normal = false
|
|
}
|
|
|
|
item.flag_normal = flag_normal ? 'Y' : 'N'
|
|
}
|
|
|
|
if(item.type_form === 'XV'){
|
|
let flag_normal = true
|
|
let checked = []
|
|
item.details.forEach(detail => {
|
|
if(detail.chx){
|
|
checked.push(detail.id_code)
|
|
}
|
|
})
|
|
if(checked.length > 0){
|
|
flag_normal = false
|
|
}
|
|
|
|
item.flag_normal = flag_normal ? 'Y' : 'N'
|
|
}
|
|
|
|
if(item.type_form === 'XO'){
|
|
let flag_normal = true
|
|
let checked = []
|
|
item.details.forEach(detail => {
|
|
detail.options.forEach(child_detail => {
|
|
if(child_detail.selected){
|
|
checked.push(child_detail.label)
|
|
}
|
|
})
|
|
})
|
|
if(checked.length > 0){
|
|
flag_normal = false
|
|
}
|
|
|
|
item.flag_normal = flag_normal ? 'Y' : 'N'
|
|
}
|
|
|
|
if(item.type_form === 'XD'){
|
|
let flag_normal = true
|
|
let checked = []
|
|
item.details.forEach(detail => {
|
|
let per_child = []
|
|
detail.details.forEach(child_detail => {
|
|
if(child_detail.chx){
|
|
checked.push(child_detail.id_code)
|
|
per_child.push(child_detail.id_code)
|
|
}
|
|
})
|
|
|
|
if(per_child.length > 1){
|
|
let errMsg = `Pilih salah satu dari ${detail.label}`
|
|
errors.push(errMsg)
|
|
}
|
|
|
|
if(per_child.length === 0){
|
|
let errMsg = `Pilih salah satu dari ${detail.label}`
|
|
errors.push(errMsg)
|
|
}
|
|
})
|
|
if(checked.length > 0){
|
|
flag_normal = false
|
|
}
|
|
|
|
item.flag_normal = flag_normal ? 'Y' : 'N'
|
|
}
|
|
|
|
})
|
|
if(errors.length > 0){
|
|
this.loading_form_code = false
|
|
this.errorMsg = errors.join('<br>')
|
|
this.dialogError = true
|
|
return
|
|
}else{
|
|
this.$store.dispatch("patient/save_riwayat", {
|
|
'id': this.$store.state.patient.uuid_form,
|
|
'form_code': this.form_code,
|
|
'data_riwayat': dt_riwayat
|
|
})
|
|
}
|
|
},
|
|
doLanjut(){
|
|
this.tab = this.tab + 1
|
|
this.start_form = true
|
|
},
|
|
saveFormCode(){
|
|
this.loading_form_code = true
|
|
this.$store.dispatch("patient/get_patient", {
|
|
'id': this.$store.state.patient.uuid_form,
|
|
'form_code': this.form_code
|
|
})
|
|
}
|
|
|
|
},
|
|
computed: {
|
|
error_msg: {
|
|
get() {
|
|
return this.$store.state.patient.error_msg
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_error_msg", val)
|
|
}
|
|
},
|
|
dialogError: {
|
|
get() {
|
|
return this.$store.state.patient.dialogError
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_dialogError", val)
|
|
}
|
|
},
|
|
dialog_success: {
|
|
get() {
|
|
return this.$store.state.patient.dialog_success
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_dialog_success", val)
|
|
}
|
|
},
|
|
errorMsg: {
|
|
get() {
|
|
return this.$store.state.patient.errorMsg
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_errorMsg", val)
|
|
}
|
|
},
|
|
loading_form_code: {
|
|
get() {
|
|
return this.$store.state.patient.loading_form_code
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_loading_form_code", val)
|
|
}
|
|
},
|
|
open_form_code: {
|
|
get() {
|
|
return this.$store.state.patient.open_form_code
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_open_form_code", val)
|
|
}
|
|
},
|
|
form_code: {
|
|
get() {
|
|
return this.$store.state.patient.form_code
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_form_code", val)
|
|
}
|
|
},
|
|
glucoses: {
|
|
get() {
|
|
return this.$store.state.patient.glucoses
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_glucoses", val)
|
|
}
|
|
},
|
|
loc_id() {
|
|
return this.$store.state.patient.loc_id
|
|
},
|
|
stat_id() {
|
|
return this.$store.state.patient.station_id
|
|
},
|
|
url_labnumber() {
|
|
return this.$store.state.patient.url_labnumber
|
|
},
|
|
btwrn: {
|
|
get() {
|
|
return this.$store.state.patient.btwrn
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_btwrn", val)
|
|
}
|
|
},
|
|
dkos: {
|
|
get() {
|
|
return this.$store.state.patient.dkos
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_dkos", val)
|
|
}
|
|
},
|
|
dkod: {
|
|
get() {
|
|
return this.$store.state.patient.dkod
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_dkod", val)
|
|
}
|
|
},
|
|
tkos: {
|
|
get() {
|
|
return this.$store.state.patient.tkos
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_tkos", val)
|
|
}
|
|
},
|
|
tkod: {
|
|
get() {
|
|
return this.$store.state.patient.tkod
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_tkod", val)
|
|
}
|
|
},
|
|
visusAdd: {
|
|
get() {
|
|
return this.$store.state.patient.visusAdd
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_visusAdd", val)
|
|
}
|
|
},
|
|
value_tb: {
|
|
get() {
|
|
return this.$store.state.patient.value_tb
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_value_tb", val)
|
|
}
|
|
},
|
|
value_bb: {
|
|
get() {
|
|
return this.$store.state.patient.value_bb
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_value_bb", val)
|
|
}
|
|
},
|
|
value_bf: {
|
|
get() {
|
|
return this.$store.state.patient.value_bf
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_value_bf", val)
|
|
}
|
|
},
|
|
status_done() {
|
|
return this.$store.state.patient.status_done
|
|
},
|
|
isdone() {
|
|
return this.$store.state.patient.isdone
|
|
},
|
|
stations() {
|
|
return this.$store.state.patient.stations
|
|
},
|
|
selected_station: {
|
|
get() {
|
|
return this.$store.state.patient.selected_station
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_selected_station", val)
|
|
this.$store.dispatch("patient/getLocation", val.id)
|
|
}
|
|
},
|
|
locations() {
|
|
return this.$store.state.patient.locations
|
|
},
|
|
selected_location: {
|
|
get() {
|
|
return this.$store.state.patient.selected_location
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_selected_location", val)
|
|
}
|
|
},
|
|
data_patient: {
|
|
get() {
|
|
return this.$store.state.patient.data_patient
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_data_patient", val)
|
|
}
|
|
},
|
|
data_riwayat: {
|
|
get() {
|
|
return this.$store.state.patient.data_riwayat
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_data_riwayat", val)
|
|
}
|
|
},
|
|
dialog_scanner: {
|
|
get() {
|
|
return this.$store.state.patient.dialog_scanner
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_dialog_scanner", val)
|
|
}
|
|
},
|
|
|
|
withCorection: {
|
|
get() {
|
|
return this.$store.state.patient.withCorection
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_withCorection", val)
|
|
}
|
|
},
|
|
odSph: {
|
|
get() {
|
|
return this.$store.state.patient.odSph
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_odSph", val)
|
|
}
|
|
},
|
|
odCyl: {
|
|
get() {
|
|
return this.$store.state.patient.odCyl
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_odCyl", val)
|
|
}
|
|
},
|
|
odX: {
|
|
get() {
|
|
return this.$store.state.patient.odX
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_odX", val)
|
|
}
|
|
},
|
|
osSph: {
|
|
get() {
|
|
return this.$store.state.patient.osSph
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_osSph", val)
|
|
}
|
|
},
|
|
osCyl: {
|
|
get() {
|
|
return this.$store.state.patient.osCyl
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_osCyl", val)
|
|
}
|
|
},
|
|
osX: {
|
|
get() {
|
|
return this.$store.state.patient.osX
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_osX", val)
|
|
}
|
|
},
|
|
colorBlindNumber: {
|
|
get() {
|
|
return this.$store.state.patient.colorBlindNumber
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_colorBlindNumber", val)
|
|
}
|
|
},
|
|
dialogError: {
|
|
get() {
|
|
return this.$store.state.patient.dialogError
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_dialogError", val)
|
|
}
|
|
},
|
|
errorMsg: {
|
|
get() {
|
|
return this.$store.state.patient.errorMsg
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_errorMsg", val)
|
|
}
|
|
},
|
|
data_patient() {
|
|
return this.$store.state.patient.data_patient
|
|
},
|
|
data_requirement() {
|
|
return this.$store.state.patient.data_requirement
|
|
},
|
|
data_packet() {
|
|
return this.$store.state.patient.data_packet
|
|
},
|
|
data_tests() {
|
|
return this.$store.state.patient.data_tests
|
|
},
|
|
data_sample_lab() {
|
|
return this.$store.state.patient.data_sample_lab
|
|
},
|
|
data_sample_radiodiagnostic() {
|
|
return this.$store.state.patient.data_sample_radiodiagnostic
|
|
},
|
|
data_sample_electromedic() {
|
|
return this.$store.state.patient.data_sample_electromedic
|
|
},
|
|
data_sample_other() {
|
|
return this.$store.state.patient.data_sample_other
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
tab:0,
|
|
start_form:false,
|
|
template_title:['RIWAYAT PENYAKIT','RIWAYAT KONSUMSI OBAT TERATUR','RIWAYAT KEBIASAAN HIDUP'],
|
|
templates:[
|
|
{title:'RIWAYAT PENYAKIT', allow_normal : true,alias:'RIWAYAT PENYAKIT DAN ALERGI',section:['Allergi'],childs:[
|
|
'fisik_penyakit_1',
|
|
'fisik_penyakit_2',
|
|
'fisik_penyakit_5',
|
|
'fisik_penyakit_8',
|
|
'fisik_penyakit_9',
|
|
'fisik_penyakit_11',
|
|
'fisik_penyakit_74',
|
|
'fisik_penyakit_14',
|
|
'fisik_penyakit_19',
|
|
'fisik_penyakit_20',
|
|
'fisik_penyakit_23',
|
|
'fisik_penyakit_15',
|
|
'fisik_penyakit_25',
|
|
'fisik_penyakit_26',
|
|
'fisik_penyakit_31',
|
|
'fisik_penyakit_32',
|
|
'fisik_penyakit_40',
|
|
'fisik_penyakit_38',
|
|
'fisik_penyakit_39',
|
|
'fisik_penyakit_43',
|
|
'fisik_penyakit_47',
|
|
'fisik_penyakit_44',
|
|
'fisik_penyakit_46',
|
|
'fisik_penyakit_48',
|
|
'fisik_penyakit_57',
|
|
'fisik_penyakit_58',
|
|
'fisik_penyakit_65',
|
|
'fisik_penyakit_67',
|
|
'fisik_penyakit_66',
|
|
'fisik_penyakit_69',
|
|
'fisik_penyakit_71',
|
|
'fisik_penyakit_70',
|
|
'fisik_penyakit_22',
|
|
'fisik_penyakit_82',
|
|
'fisik_penyakit_60',
|
|
'fisik_penyakit_62',
|
|
'fisik_penyakit_61',
|
|
'fisik_penyakit_63'
|
|
]},
|
|
{title:'RIWAYAT KONSUMSI OBAT TERATUR',allow_normal : false,alias:'RIWAYAT KONSUMSI OBAT TERATUR',childs:[
|
|
'fisik_konsumsiobatteratur_1',
|
|
'fisik_konsumsiobatteratur_2',
|
|
'fisik_konsumsiobatteratur_3'
|
|
]},
|
|
{title:'RIWAYAT KEBIASAAN HIDUP', allow_normal : false,alias:'RIWAYAT KEBIASAAN HIDUP',section:['Minum alkohol','Olahraga','Merokok'],
|
|
childs:[
|
|
'fisik_kebiasaanhidup_1',
|
|
'fisik_kebiasaanhidup_3',
|
|
'fisik_kebiasaanhidup_4',
|
|
'fisik_kebiasaanhidup_5',
|
|
'fisik_kebiasaanhidup_6',
|
|
'fisik_kebiasaanhidup_8'
|
|
]
|
|
},
|
|
{title:'RIWAYAT PENYAKIT KELUARGA',alias:'RIWAYAT PENYAKIT KELUARGA'},
|
|
{title:'RIWAYAT IMUNISASI', allow_normal : false,alias:'RIWAYAT IMUNISASI',
|
|
childs:[
|
|
'fisik_riwayatimunisasi_1_details_1',
|
|
'fisik_riwayatimunisasi_1_details_2',
|
|
'fisik_riwayatimunisasi_2_details_1',
|
|
'fisik_riwayatimunisasi_2_details_2',
|
|
'fisik_riwayatimunisasi_3_details_1',
|
|
'fisik_riwayatimunisasi_3_details_2',
|
|
'fisik_riwayatimunisasi_4_details_1',
|
|
'fisik_riwayatimunisasi_4_details_2',
|
|
'fisik_riwayatimunisasi_5_details_1',
|
|
'fisik_riwayatimunisasi_5_details_2'
|
|
]
|
|
},
|
|
],
|
|
exclude_detail_code:['fisik_penyakit_6'],
|
|
off_visus:false,
|
|
allowReload: false,
|
|
imageSrc: './images/undraw_the_search_s0xf.png',
|
|
showReloadDialog: false,
|
|
items2: [{
|
|
icon: 'assignment',
|
|
iconClass: 'blue white--text',
|
|
title: 'Vacation itinerary',
|
|
subtitle: 'Jan 20, 2014'
|
|
},
|
|
{
|
|
icon: 'call_to_action',
|
|
iconClass: 'amber white--text',
|
|
title: 'Kitchen remodel',
|
|
subtitle: 'Jan 10, 2014'
|
|
}
|
|
],
|
|
items: [{
|
|
action: 'healing',
|
|
title: 'Paket Pria 2024',
|
|
items: [{
|
|
title: 'List Item'
|
|
},
|
|
{
|
|
title: 'List Item'
|
|
},
|
|
{
|
|
title: 'List Item'
|
|
}
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
watch: {
|
|
|
|
}
|
|
})
|
|
</script>
|
|
<style>
|
|
[v-cloak] {
|
|
display: none
|
|
}
|
|
|
|
.left {}
|
|
|
|
.right {}
|
|
</style>
|
|
</body>
|
|
|
|
</html>
|