1666 lines
76 KiB
Vue
1666 lines
76 KiB
Vue
<template>
|
|
<div>
|
|
<v-layout row justify-center>
|
|
<v-dialog v-model="xdialogform" max-width="800px" :hide-overlay="checkact()" :fullscreen="checkact()" transition="dialog-bottom-transition">
|
|
<v-card>
|
|
<v-toolbar color="#64b5f6">
|
|
<v-btn icon dark @click="xdialogform = false">
|
|
<v-icon>close</v-icon>
|
|
</v-btn>
|
|
|
|
<v-spacer></v-spacer>
|
|
<v-toolbar-items>
|
|
<!--<v-btn flat @click="xdialogform = false">{{xstatusnow.name}}</v-btn>-->
|
|
<v-btn v-if="xstatusnow.id === '1'" dark flat @click="actConfirm()">CONFIRM</v-btn>
|
|
<v-btn v-if="btnorder === 'show'" dark flat @click="actOrderLab()">ORDER LAB</v-btn>
|
|
<v-btn v-if="xformact === 'edit'" dark flat @click="updateOrder('update')">Simpan Perubahan</v-btn>
|
|
</v-toolbar-items>
|
|
</v-toolbar>
|
|
<v-layout row wrap>
|
|
<v-flex v-if="xdisabledregister === false" xs6 pa-2>
|
|
<v-card flat style="border:1px solid #64b5f6" color="#fff">
|
|
<v-card-title style="border-bottom: 1px solid #fff;background-color:#64b5f6" >
|
|
<h2 class="white--text font-weight-light">Pendaftaran Pasien</h2>
|
|
</v-card-title>
|
|
<v-container>
|
|
<v-layout row>
|
|
<v-flex xs2 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_TitleName"
|
|
return-object
|
|
:items="xtitles"
|
|
v-model="xtitle"
|
|
label="Panggilan*"
|
|
></v-select>
|
|
</v-flex>
|
|
<v-flex xs6 pa-1>
|
|
<v-text-field v-model="xpatientname" label="Nama Pasien*"></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-select
|
|
|
|
item-text="m_sexname"
|
|
return-object
|
|
:items="xsexs"
|
|
v-model="xsex"
|
|
label="Jenis Kelamin*"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs8 pa-1>
|
|
<v-text-field label="Tanggal Lahir*" hint="format : DD-MM-YYYY , contoh : 22-06-1988" v-model="xdob"></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_ReligionName"
|
|
return-object
|
|
:items="xreligions"
|
|
v-model="xreligion"
|
|
label="Agama"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs4 pa-1>
|
|
<v-text-field label="Telepon" v-model="xphone" ></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-text-field label="Hp" v-model="xhp" ></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-text-field label="Email" v-model="xemail"></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs4 pa-1>
|
|
<v-autocomplete
|
|
label="Kota*"
|
|
v-model="xcity"
|
|
:items="xcities"
|
|
:search-input.sync="search_city"
|
|
auto-select-first
|
|
no-filter
|
|
item-text="M_CityName"
|
|
return-object
|
|
:loading="is_loading"
|
|
no-data-text="Pilih Kota*"
|
|
>
|
|
<template
|
|
slot="item"
|
|
slot-scope="{ item }"
|
|
>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title v-text="item.M_CityName"></v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</template>
|
|
</v-autocomplete>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_DistrictName"
|
|
return-object
|
|
:items="xdistricts"
|
|
v-model="xdistrict"
|
|
label="Kecamatan*"
|
|
></v-select>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_KelurahanName"
|
|
return-object
|
|
:items="xkelurahans"
|
|
v-model="xkelurahan"
|
|
label="Kelurahan / Desa*"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs12 pa-1>
|
|
<v-text-field v-model="xaddress" label="Alamat Lengkap*" ></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs12 mt-3 class="text-sm-right">
|
|
<v-btn v-if="xsavestatus !== 1" dark @click="saveNewPatient()" color="blue en-3">Daftarkan Sekarang</v-btn>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-container>
|
|
</v-card>
|
|
</v-flex>
|
|
|
|
<v-flex v-bind:class="{ 'xs6': checkact() === true,'xs12': checkact() === false}" pa-2>
|
|
<v-card flat style="border:1px solid #64b5f6" color="#fff">
|
|
<v-card-title style="border-bottom: 1px solid #fff;height:63px;padding:0;color:#fffff;text-align:center;justify-content: center;background-color:#64b5f6" color="#64b5f6">
|
|
<!--<v-breadcrumbs pb-2 :items="steps">
|
|
<template v-slot:divider>
|
|
<v-icon>forward</v-icon>
|
|
</template>
|
|
</v-breadcrumbs>-->
|
|
<v-btn
|
|
color="pink"
|
|
dark
|
|
small
|
|
class="btn-time"
|
|
@click="changeStep('order')"
|
|
>
|
|
Order
|
|
</v-btn>
|
|
<v-icon dark>forward</v-icon>
|
|
<v-btn
|
|
color="pink"
|
|
dark
|
|
small
|
|
class="btn-time"
|
|
@click="changeStep('test')"
|
|
>
|
|
Pemeriksaan
|
|
</v-btn>
|
|
<v-icon dark>forward</v-icon>
|
|
<v-btn
|
|
color="pink"
|
|
dark
|
|
small
|
|
class="btn-time"
|
|
@click="changeStep('staff')"
|
|
>
|
|
Staff
|
|
</v-btn>
|
|
<v-icon dark>forward</v-icon>
|
|
<v-btn
|
|
color="pink"
|
|
dark
|
|
small
|
|
class="btn-time"
|
|
@click="changeStep('delivery')"
|
|
>
|
|
Delivery
|
|
</v-btn>
|
|
<v-icon dark>forward</v-icon>
|
|
<v-btn
|
|
color="pink"
|
|
dark
|
|
small
|
|
class="btn-time"
|
|
@click="changeStep('doctor')"
|
|
>
|
|
Dokter
|
|
</v-btn>
|
|
</v-card-title>
|
|
<v-container>
|
|
<div v-show="xstep === 'order'">
|
|
<v-layout row>
|
|
<v-flex xs2 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_PreOrderTypeName"
|
|
return-object
|
|
:items="xordertypes"
|
|
v-model="xordertype"
|
|
label="Type*"
|
|
></v-select>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-menu
|
|
ref="menuorderdate"
|
|
v-model="menuorderdate"
|
|
:close-on-content-click="false"
|
|
:nudge-right="0"
|
|
lazy
|
|
transition="scale-transition"
|
|
offset-y
|
|
full-width
|
|
max-width="290px"
|
|
min-width="290px"
|
|
>
|
|
<template v-slot:activator="{ on }">
|
|
<v-text-field
|
|
v-model="orderComputedDateFormatted"
|
|
label="Tanggal Order*"
|
|
readonly
|
|
v-on="on"
|
|
@blur="date = deFormatedDate(orderComputedDateFormatted)"
|
|
></v-text-field>
|
|
</template>
|
|
<v-date-picker :min="xmindate" :disabled="xsuppliestrxid" v-model="xorderdate" no-title @input="menuorderdate = false"></v-date-picker>
|
|
</v-menu>
|
|
</v-flex>
|
|
<v-flex xs2 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_SamplingTimeTime"
|
|
return-object
|
|
:items="xordertimes"
|
|
v-model="xordertime"
|
|
label="Jam Order*"
|
|
></v-select>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-text-field label="Telepon" v-model="xorderphone"></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs4 pa-1>
|
|
<v-autocomplete
|
|
label="Pasien*"
|
|
v-model="xorderpatient"
|
|
:items="xorderpatients"
|
|
:search-input.sync="search_patient"
|
|
auto-select-first
|
|
no-filter
|
|
item-text="M_PatientName"
|
|
return-object
|
|
:loading="is_loading"
|
|
no-data-text="Pilih Pasien*"
|
|
>
|
|
<template
|
|
slot="item"
|
|
slot-scope="{ item }"
|
|
>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title v-text="item.M_PatientName"></v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</template>
|
|
</v-autocomplete>
|
|
</v-flex>
|
|
<v-flex xs8 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_PatientAddressDescription"
|
|
return-object
|
|
:items="xorderaddresss"
|
|
v-model="xorderaddress"
|
|
label="Alamat*"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout v-if="xorderaddress.M_PatientAddressID === 'X'" row>
|
|
<v-flex xs4 pa-1>
|
|
<v-autocomplete
|
|
label="Kota*"
|
|
v-model="xnewcity"
|
|
:items="xnewcities"
|
|
:search-input.sync="search_new_city"
|
|
auto-select-first
|
|
no-filter
|
|
item-text="M_CityName"
|
|
return-object
|
|
:loading="is_loading"
|
|
no-data-text="Pilih Kota*"
|
|
>
|
|
<template
|
|
slot="item"
|
|
slot-scope="{ item }"
|
|
>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title v-text="item.M_CityName"></v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</template>
|
|
</v-autocomplete>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-select
|
|
|
|
item-text="M_DistrictName"
|
|
return-object
|
|
:items="xnewdistricts"
|
|
v-model="xnewdistrict"
|
|
label="Kecamatan*"
|
|
></v-select>
|
|
</v-flex>
|
|
<v-flex xs4 pa-1>
|
|
<v-select
|
|
item-text="M_KelurahanName"
|
|
return-object
|
|
:items="xnewkelurahans"
|
|
v-model="xnewkelurahan"
|
|
label="Kelurahan / Desa*"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout v-if="xorderaddress.M_PatientAddressID === 'X'" row>
|
|
<v-flex xs12 pa-1>
|
|
<v-text-field v-model="xnewaddress" label="Alamat Lengkap*" ></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout v-if="xordernote !== ''" row>
|
|
|
|
<v-flex xs12 pa-1>
|
|
<h4 class="mb-2">Catatan : </h4>
|
|
<v-textarea
|
|
filled
|
|
solo
|
|
readonly="readonly"
|
|
background-color="amber lighten-4"
|
|
color="orange orange-darken-4"
|
|
label="Format Email"
|
|
v-model="xordernote"
|
|
rows="5"
|
|
></v-textarea>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-show="xstep === 'test'">
|
|
<v-layout row>
|
|
<v-flex xs8 pa-1>
|
|
<v-autocomplete
|
|
label="Pemeriksaan"
|
|
v-model="xorderautotest"
|
|
:items="xorderautotests"
|
|
:search-input.sync="search_test"
|
|
auto-select-first
|
|
no-filter
|
|
item-text="T_TestName"
|
|
return-object
|
|
:loading="is_loading"
|
|
no-data-text="Cari Pemeriksaan"
|
|
outline
|
|
small
|
|
>
|
|
<template
|
|
slot="item"
|
|
slot-scope="{ item }"
|
|
>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title v-text="item.T_TestName"></v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</template>
|
|
</v-autocomplete>
|
|
</v-flex>
|
|
<v-flex xs-4 class="text-md-right">
|
|
<v-btn @click="addTest()" color="blue en-3">Pilih Pemeriksaan</v-btn>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-divider></v-divider>
|
|
<v-layout row wrap>
|
|
<v-flex xs12 pt-2 pb-1>
|
|
<table style="
|
|
font-family: arial, sans-serif;
|
|
border-collapse: collapse;
|
|
width: 100%;
|
|
border: 0px;
|
|
" class="px">
|
|
<tr>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;"
|
|
width="5%"
|
|
class="text-md-center pt-2 pb-2">#
|
|
</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;"
|
|
class="text-md-center pt-2 pb-2">PEMERIKSAAN
|
|
</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;"
|
|
class="text-md-center pt-2 pb-2">BRUTO
|
|
</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;"
|
|
class="text-md-center pt-2 pb-2">DISKON
|
|
</td>
|
|
<td style=" border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;"
|
|
class="text-md-center pt-2 pb-2">DISKON RP
|
|
</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;"
|
|
class="text-md-center pt-2 pb-2">TOTAL
|
|
</td>
|
|
</tr>
|
|
<tr v-if="xordertests.length > 0" class="mini-input" v-for="(vpx,idx) in xordertests">
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;
|
|
text-align:center;
|
|
vertical-align:center;" align="center">
|
|
<span v-if="vpx.editable == 'N'">{{idx + 1}}</span>
|
|
<v-icon v-else-if="vpx.editable == 'Y'" color="#c75c3a" @click="deleteDataPx(idx)">delete</v-icon>
|
|
</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;"
|
|
class="text-md-left pl-3">{{vpx.T_TestName}}</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;"
|
|
class="text-md-right pr-2">{{convertMoney(vpx.T_PriceAmount)}}</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;"
|
|
class="text-md-right pr-2">{{convertMoney(vpx.T_PriceDisc)}}</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;"
|
|
class="text-md-right pr-2">{{convertMoney(vpx.T_PriceDiscRp)}}</td>
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;"
|
|
class="text-md-right pr-2">{{convertMoney(vpx.total)}}</td>
|
|
</tr>
|
|
<tr v-if="xordertests.length === 0" class="mini-input">
|
|
<td style="border: 1px solid #fff;
|
|
border-collapse: collapse;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
padding: 8px;"
|
|
align="center" colspan="6">Belum ada data</td>
|
|
</tr>
|
|
</table>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-show="xstep === 'staff'">
|
|
<v-layout row>
|
|
<v-flex xs12 pa-1>
|
|
<v-select
|
|
:disabled="xsuppliestrxid"
|
|
item-text="M_StaffName"
|
|
return-object
|
|
:items="xstaffs"
|
|
v-model="xorderstaff"
|
|
label="Staff Pengambil Sample"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-if="xstep === 'delivery'">
|
|
<v-layout row>
|
|
<v-flex xs12 d-flex>
|
|
<v-select
|
|
v-model="xorderdeliverytype"
|
|
:items="xorderdeliverytipes"
|
|
auto-select-first
|
|
item-text = "M_DeliveryName"
|
|
return-object
|
|
label="Tipe Pengiriman"
|
|
>
|
|
<template
|
|
slot="item"
|
|
slot-scope="{ item }"
|
|
>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title v-text="item.M_DeliveryName"></v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</template>
|
|
</v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex xs12 d-flex>
|
|
<v-layout row v-if="xorderdeliverytype && xorderdeliverytype.M_DeliveryTypeCode == 'EMAIL'">
|
|
<v-flex pb-1 xs12>
|
|
<v-layout row>
|
|
<v-flex pt-2 xs12 >
|
|
<v-text-field
|
|
v-model="xorderdeliveryaddress"
|
|
label="Alamat email"
|
|
|
|
></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row v-if="xorderdeliverytype && xorderdeliverytype.M_DeliveryTypeCode == 'WHATSAPP'">
|
|
<v-flex pb-1 xs12>
|
|
<v-layout row>
|
|
<v-flex pt-2 xs12 >
|
|
<v-text-field
|
|
v-model="xorderdeliveryaddress"
|
|
label="Nomor Whatsapp"
|
|
|
|
></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row v-if="xorderdeliverytype && xorderdeliverytype.M_DeliveryTypeCode == 'TELEGRAM'">
|
|
<v-flex pb-1 xs12>
|
|
<v-layout row>
|
|
<v-flex pt-2 xs12 >
|
|
<v-text-field
|
|
v-model="xorderdeliveryaddress"
|
|
label="Nomor Telegram"
|
|
|
|
></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row v-else-if="xorderdeliverytype && xorderdeliverytype.M_DeliveryTypeCode == 'ADDRESS'">
|
|
<v-flex pb-1 xs12>
|
|
<v-layout row>
|
|
<v-flex pt-2 pr-2 xs12>
|
|
<v-select
|
|
|
|
item-text="M_PatientAddressDescription"
|
|
return-object
|
|
:items="xorderaddresss"
|
|
v-model="xorderpatientdeliveryaddress"
|
|
label="Alamat Pengiriman"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<div v-show="xstep === 'doctor'">
|
|
<v-layout row>
|
|
<v-flex xs12 pa-1>
|
|
<v-autocomplete
|
|
label="Dokter"
|
|
v-model="xorderdoctor"
|
|
:items="xorderdoctors"
|
|
:search-input.sync="search_doctor"
|
|
auto-select-first
|
|
no-filter
|
|
item-text="M_DoctorName"
|
|
return-object
|
|
:loading="is_loading"
|
|
no-data-text="Pilih Doctor"
|
|
>
|
|
<template
|
|
slot="item"
|
|
slot-scope="{ item }"
|
|
>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title v-text="item.M_DoctorName"></v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</template>
|
|
</v-autocomplete>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row>
|
|
<v-flex>
|
|
<v-select
|
|
|
|
item-text="M_DoctorAddressDescription"
|
|
return-object
|
|
:items="xdoctoraddresss"
|
|
v-model="xdoctoraddress"
|
|
label="Alamat Dokter*"
|
|
></v-select>
|
|
</v-flex>
|
|
</v-layout>
|
|
</div>
|
|
<v-layout row>
|
|
<v-flex xs12 mt-3 class="text-sm-left">
|
|
<v-btn v-if="xstep !== 'order'" dark @click="prevStep()" color="blue en-3">Kembali</v-btn>
|
|
</v-flex>
|
|
<v-flex xs12 mt-3 class="text-sm-right">
|
|
<v-btn v-if="xstep === 'doctor' && xformact === 'new'" dark @click="saveOrder()" color="blue en-3">Simpan</v-btn>
|
|
<v-btn v-if="xstep !== 'doctor'" @click="nextStep()" dark color="blue en-3">Lanjut</v-btn>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-container>
|
|
</v-card>
|
|
|
|
</v-flex>
|
|
</v-layout>
|
|
|
|
</v-card>
|
|
</v-dialog>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<v-dialog
|
|
v-model="dialogerrormsg"
|
|
|
|
max-width="30%"
|
|
>
|
|
<v-card>
|
|
<v-card-title
|
|
class="headline red en-1 pt-2 pb-2"
|
|
primary-title
|
|
>
|
|
<h4 style="color:#FFEBEE">Peringatan !</h4>
|
|
</v-card-title>
|
|
<v-card-text class="pt-2 pb-2">
|
|
<v-layout row>
|
|
<v-flex xs12 d-flex>
|
|
<v-layout row>
|
|
<v-flex pb-1 xs12>
|
|
<v-layout row>
|
|
<v-flex pt-2 pr-2 v-html="errormsg" xs12>
|
|
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-card-text>
|
|
<v-divider></v-divider>
|
|
<v-card-actions>
|
|
<v-spacer></v-spacer>
|
|
|
|
<v-btn
|
|
color="error"
|
|
flat
|
|
@click="dialogerrormsg = false"
|
|
>
|
|
Tutup
|
|
</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
|
|
</template>
|
|
|
|
<template>
|
|
|
|
<v-dialog
|
|
v-model="xdialogordernumber"
|
|
|
|
max-width="30%"
|
|
>
|
|
<v-card>
|
|
<v-card-title
|
|
class="headline success pt-2 pb-2"
|
|
primary-title
|
|
>
|
|
<h4 style="color:#FFEBEE" v-html="xtitleordernumber"></h4>
|
|
</v-card-title>
|
|
<v-card-text class="pt-2 pb-2">
|
|
<v-layout row>
|
|
<v-flex xs12 d-flex>
|
|
<v-layout row>
|
|
<v-flex pb-1 xs12>
|
|
<v-layout row>
|
|
<v-flex pt-2 pr-2 v-html="xmsgordernumber" xs12>
|
|
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-card-text>
|
|
<v-divider></v-divider>
|
|
<v-card-actions>
|
|
<v-spacer></v-spacer>
|
|
<v-btn
|
|
color="success"
|
|
flat
|
|
v-if="xbtnconfirm === 'show'"
|
|
@click="doConfirm()"
|
|
>
|
|
Ok, Confirm !
|
|
</v-btn>
|
|
<v-btn
|
|
color="success"
|
|
flat
|
|
v-if="xdobtnorder === 'show'"
|
|
@click="doOrderLab()"
|
|
>
|
|
Ok, Lanjut !
|
|
</v-btn>
|
|
<v-btn
|
|
color="error"
|
|
flat
|
|
@click="closeDialogOrderNumber(false)"
|
|
>
|
|
Tutup
|
|
</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
|
|
</template>
|
|
</v-layout>
|
|
</div>
|
|
</template>
|
|
<style scoped>
|
|
.v-breadcrumbs__item{
|
|
color:#fff!important;
|
|
}
|
|
</style>
|
|
<script>
|
|
module.exports = {
|
|
data() {
|
|
return {
|
|
dialogerrormsg:false,
|
|
errormsg:'',
|
|
steps: [
|
|
{
|
|
text: 'Order',
|
|
disabled: false,
|
|
href: '#'
|
|
},
|
|
{
|
|
text: 'Pemeriksaan',
|
|
disabled: false,
|
|
href: '#'
|
|
},
|
|
{
|
|
text: 'Staf',
|
|
disabled: false,
|
|
href: '#'
|
|
},
|
|
{
|
|
text: 'Pengiriman',
|
|
disabled: false,
|
|
href: '#'
|
|
}
|
|
],
|
|
is_loading:false,
|
|
search_city:'',
|
|
search_new_city:'',
|
|
search_patient:'',
|
|
search_test:'',
|
|
search_doctor:'',
|
|
menuorderdate:false,
|
|
date: new Date().toISOString().substr(0, 10)
|
|
|
|
}
|
|
},
|
|
computed: {
|
|
xsuppliestrxid(){
|
|
if(this.$store.state.form.supplies_trx_id === 0 || this.$store.state.form.supplies_trx_id === '0')
|
|
return false
|
|
else
|
|
return true
|
|
},
|
|
xordernote(){
|
|
return this.$store.state.form.ordernote
|
|
},
|
|
xmindate(){
|
|
return this.$store.state.form.mindate
|
|
},
|
|
xstep(){
|
|
return this.$store.state.form.step
|
|
},
|
|
xstatusnow(){
|
|
return this.$store.state.form.status_now
|
|
},
|
|
xdisabledregister(){
|
|
return this.$store.state.form.disabled_register
|
|
},
|
|
xsavestatus(){
|
|
return this.$store.state.form.save_status
|
|
},
|
|
xbtnconfirm(){
|
|
return this.$store.state.form.btn_confirm
|
|
},
|
|
btnorder(){
|
|
return this.$store.state.form.btn_order
|
|
},
|
|
xdobtnorder(){
|
|
return this.$store.state.form.do_btn_order
|
|
},
|
|
xformact(){
|
|
return this.$store.state.form.form_act
|
|
},
|
|
xdialogform : {
|
|
get() {
|
|
return this.$store.state.form.dialog_form
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_dialog_form",val)
|
|
}
|
|
},
|
|
xtitles(){
|
|
return this.$store.state.form.titles
|
|
},
|
|
xdialogordernumber:{
|
|
get() {
|
|
return this.$store.state.form.dialog_ordernumber
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_dialog_ordernumber",val)
|
|
}
|
|
|
|
},
|
|
xtitleordernumber(){
|
|
return this.$store.state.form.title_ordernumber
|
|
},
|
|
xmsgordernumber(){
|
|
return this.$store.state.form.msg_ordernumber
|
|
},
|
|
xtitle:{
|
|
get() {
|
|
return this.$store.state.form.title
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_title",val)
|
|
}
|
|
},
|
|
xsexs(){
|
|
return this.$store.state.form.sexs
|
|
},
|
|
xsex:{
|
|
get() {
|
|
return this.$store.state.form.sex
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_sex",val)
|
|
}
|
|
},
|
|
xreligions(){
|
|
return this.$store.state.form.religions
|
|
},
|
|
xreligion:{
|
|
get() {
|
|
return this.$store.state.form.religion
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_religion",val)
|
|
}
|
|
},
|
|
xcities(){
|
|
return this.$store.state.form.cities
|
|
},
|
|
xnewcities(){
|
|
return this.$store.state.form.new_cities
|
|
},
|
|
xcity:{
|
|
get() {
|
|
return this.$store.state.form.city
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_city",val)
|
|
this.$store.dispatch("form/getdistrict",this.$store.state.form.city)
|
|
}
|
|
},
|
|
xnewcity:{
|
|
get() {
|
|
return this.$store.state.form.new_city
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_new_city",val)
|
|
this.$store.dispatch("form/getnewdistrict",this.$store.state.form.new_city)
|
|
}
|
|
},
|
|
xdistricts(){
|
|
return this.$store.state.form.districts
|
|
},
|
|
xnewdistricts(){
|
|
return this.$store.state.form.new_districts
|
|
},
|
|
xdistrict:{
|
|
get() {
|
|
return this.$store.state.form.district
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_district",val)
|
|
this.$store.dispatch("form/getkelurahan",this.$store.state.form.new_district)
|
|
}
|
|
},
|
|
xnewdistrict:{
|
|
get() {
|
|
return this.$store.state.form.new_district
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_new_district",val)
|
|
this.$store.dispatch("form/getnewkelurahan",this.$store.state.form.new_district)
|
|
}
|
|
},
|
|
xkelurahans(){
|
|
return this.$store.state.form.kelurahans
|
|
},
|
|
xnewkelurahans(){
|
|
return this.$store.state.form.new_kelurahans
|
|
},
|
|
xkelurahan:{
|
|
get() {
|
|
return this.$store.state.form.kelurahan
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_kelurahan",val)
|
|
}
|
|
},
|
|
xnewkelurahan:{
|
|
get() {
|
|
return this.$store.state.form.new_kelurahan
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_new_kelurahan",val)
|
|
}
|
|
},
|
|
xpatientname:{
|
|
get() {
|
|
return this.$store.state.form.patientname
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_patientname",val)
|
|
}
|
|
},
|
|
xdob:{
|
|
get() {
|
|
return this.$store.state.form.dob
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_dob",val)
|
|
}
|
|
},
|
|
xhp:{
|
|
get() {
|
|
return this.$store.state.form.hp
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_hp",val)
|
|
}
|
|
},
|
|
xphone:{
|
|
get() {
|
|
return this.$store.state.form.phone
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_phone",val)
|
|
}
|
|
},
|
|
xemail:{
|
|
get() {
|
|
return this.$store.state.form.email
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_email",val)
|
|
}
|
|
},
|
|
xaddress:{
|
|
get() {
|
|
return this.$store.state.form.address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_address",val)
|
|
}
|
|
},
|
|
xnewaddress:{
|
|
get() {
|
|
return this.$store.state.form.new_address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_new_address",val)
|
|
}
|
|
},
|
|
xorderpatients(){
|
|
return this.$store.state.form.orderpatients
|
|
},
|
|
xorderpatient:{
|
|
get() {
|
|
return this.$store.state.form.orderpatient
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderpatient",val)
|
|
this.$store.dispatch("form/getaddress",this.$store.state.form.orderpatient)
|
|
}
|
|
},
|
|
xorderaddresss(){
|
|
return this.$store.state.form.orderadresss
|
|
},
|
|
xorderaddress:{
|
|
get() {
|
|
return this.$store.state.form.orderadress
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderadress",val)
|
|
}
|
|
},
|
|
xdoctoraddresss(){
|
|
return this.$store.state.form.doctoradresss
|
|
},
|
|
xdoctoraddress:{
|
|
get() {
|
|
return this.$store.state.form.doctoradress
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_doctoradress",val)
|
|
}
|
|
},
|
|
xordertypes(){
|
|
return this.$store.state.form.ordertypes
|
|
},
|
|
xordertype:{
|
|
get() {
|
|
return this.$store.state.form.ordertype
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_ordertype",val)
|
|
}
|
|
},
|
|
xorderdate:{
|
|
get() {
|
|
//var vorderdate = moment().format("DD-MM-YYYY hh:mm")
|
|
return this.$store.state.form.orderdate
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderdate",val)
|
|
}
|
|
},
|
|
xordertimes(){
|
|
return this.$store.state.form.ordertimes
|
|
},
|
|
xordertime : {
|
|
get() {
|
|
return this.$store.state.form.ordertime
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_ordertime",val)
|
|
}
|
|
},
|
|
xorderphone:{
|
|
get() {
|
|
return this.$store.state.form.orderphone
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderphone",val)
|
|
}
|
|
},
|
|
xorderautotests(){
|
|
return this.$store.state.form.orderautotests
|
|
},
|
|
xorderautotest:{
|
|
get() {
|
|
return this.$store.state.form.orderautotest
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderautotest",val)
|
|
}
|
|
},
|
|
xordertests(){
|
|
return this.$store.state.form.ordertests
|
|
},
|
|
xstaffs(){
|
|
return this.$store.state.form.staffs
|
|
},
|
|
xorderstaff:{
|
|
get() {
|
|
return this.$store.state.form.orderstaff
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderstaff",val)
|
|
}
|
|
},
|
|
xorderdeliverytipes(){
|
|
return this.$store.state.form.orderdeliverytipes
|
|
},
|
|
xorderdeliverytype:{
|
|
get() {
|
|
return this.$store.state.form.orderdeliverytype
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderdeliverytype",val)
|
|
}
|
|
},
|
|
xorderdeliveryaddress:{
|
|
get() {
|
|
return this.$store.state.form.orderdeliveryaddress
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderdeliveryaddress",val)
|
|
}
|
|
},
|
|
xorderpatientdeliveryaddress:{
|
|
get() {
|
|
return this.$store.state.form.orderpatientdeliveryaddress
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderpatientdeliveryaddress",val)
|
|
}
|
|
},
|
|
xorderdoctors(){
|
|
return this.$store.state.form.orderdoctors
|
|
},
|
|
xorderdoctor:{
|
|
get() {
|
|
return this.$store.state.form.orderdoctor
|
|
},
|
|
set(val) {
|
|
this.$store.commit("form/update_orderdoctor",val)
|
|
this.$store.dispatch("form/getdoctoraddress",this.$store.state.form.orderdoctor)
|
|
}
|
|
},
|
|
orderComputedDateFormatted () {
|
|
return this.formatDate(this.xorderdate)
|
|
}
|
|
},
|
|
methods: {
|
|
formatDate (date) {
|
|
if (!date) return null
|
|
|
|
const [year, month, day] = date.split('-')
|
|
return `${day}-${month}-${year}`
|
|
},
|
|
deFormatedDate (date) {
|
|
if (!date) return null
|
|
|
|
const [ day,month, year] = date.split('-')
|
|
return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`
|
|
},
|
|
saveNewPatient(){
|
|
var error_count = 0
|
|
var error_msg = ''
|
|
if(_.isEmpty(this.xtitle)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Panggilan</kbd> : Ayo, pilih salah satu panggilan</p>"
|
|
}
|
|
|
|
if(this.xnewpatientname === ""){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Nama Pasien</kbd> : Diisi dong nama pasiennya</p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.xsex)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Jenis Kelamin</kbd> : Ayo, pilih salah satu jenis kelamin</p>"
|
|
}
|
|
|
|
if(this.xdob === ""){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Tanggal Lahir</kbd> : Diisi dong tanggal lahirnya</p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.$store.state.form.city)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kota</kbd> : Ayo, pilih salah satu kota</p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.$store.state.form.district)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kecamatan</kbd> : Ayo, pilih salah satu kecamatan</p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.xkelurahan)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kelurahan</kbd> : Ayo, pilih salah satu kelurahan</p>"
|
|
}
|
|
|
|
if(this.xaddress === ""){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Alamat Lengkap</kbd> : Diisi dong alamatnya</p>"
|
|
}
|
|
|
|
var aDOB = moment(this.xdob, 'DD-MM-YYYY', true)
|
|
var isValidDOB = aDOB.isValid()
|
|
if(!isValidDOB){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Tanggal Lahir</kbd> : Diisi sesuai format dong (DD-MM-YYYY, contoh : 22-06-1988)</p>"
|
|
}
|
|
|
|
if(error_count > 0){
|
|
this.errormsg = error_msg
|
|
this.dialogerrormsg = true
|
|
}
|
|
else{
|
|
var params = {
|
|
titleid:this.xtitle.M_TitleID,
|
|
patientname:this.xpatientname,
|
|
sexid:this.xsex.M_SexID,
|
|
dob:this.xdob,
|
|
religionid:this.xreligion.M_ReligionID,
|
|
hp:this.xhp,
|
|
email:this.xemail,
|
|
phone:this.xphone,
|
|
cityid:this.$store.state.form.city.M_CityID,
|
|
districtid:this.$store.state.form.district.M_DistrictID,
|
|
kelurahanid:this.xkelurahan.M_KelurahanID,
|
|
address:this.xaddress
|
|
}
|
|
this.$store.dispatch("form/savenewpatient",params)
|
|
}
|
|
|
|
},
|
|
checkact(){
|
|
return this.xdisabledregister === false
|
|
},
|
|
thr_search_city: _.debounce( function () {
|
|
this.$store.dispatch("form/searchcity",this.search_city)
|
|
},2000),
|
|
thr_search_new_city: _.debounce( function () {
|
|
this.$store.dispatch("form/searchnewcity",this.search_new_city)
|
|
},2000),
|
|
thr_search_patient: _.debounce( function () {
|
|
this.$store.dispatch("form/searchpatient",this.search_patient)
|
|
},2000),
|
|
thr_search_doctor: _.debounce( function () {
|
|
this.$store.dispatch("form/searchdoctor",this.search_doctor)
|
|
},2000),
|
|
thr_search_test: _.debounce( function () {
|
|
this.$store.dispatch("form/searchtest",this.search_test)
|
|
},2000),
|
|
nextStep(){
|
|
var nowstep = this.xstep
|
|
if(nowstep === 'order'){
|
|
this.$store.commit("form/update_step",'test')
|
|
}else if(nowstep === 'test'){
|
|
this.$store.commit("form/update_step",'staff')
|
|
}else if(nowstep === 'staff'){
|
|
this.$store.commit("form/update_step",'delivery')
|
|
}
|
|
else if(nowstep === 'delivery'){
|
|
this.$store.commit("form/update_step",'doctor')
|
|
}
|
|
},
|
|
prevStep(){
|
|
var nowstep = this.xstep
|
|
if(nowstep === 'doctor'){
|
|
this.$store.commit("form/update_step",'delivery')
|
|
}
|
|
else if(nowstep === 'delivery'){
|
|
this.$store.commit("form/update_step",'staff')
|
|
}
|
|
else if(nowstep === 'staff'){
|
|
this.$store.commit("form/update_step",'test')
|
|
}else if(nowstep === 'test'){
|
|
this.$store.commit("form/update_step",'order')
|
|
}
|
|
|
|
},
|
|
changeStep(val){
|
|
this.$store.commit("form/update_step",val)
|
|
},
|
|
convertMoney(money){
|
|
return one_money(money)
|
|
},
|
|
addTest(){
|
|
var oldArr = this.$store.state.form.ordertests
|
|
oldArr.push(this.$store.state.form.orderautotest)
|
|
this.searchtest = ''
|
|
this.$store.commit("form/update_orderautotests",[])
|
|
this.$store.commit("form/update_orderautotest",{})
|
|
},
|
|
deleteDataPx(idx){
|
|
var inx = parseInt(idx);
|
|
var xrow = this.$store.state.form.ordertests[inx]
|
|
if(parseInt(xrow.xid) !== 0){
|
|
var xdeltest = this.$store.state.form.deleted_ordertests
|
|
xdeltest.push(xrow)
|
|
this.$store.commit("form/update_deleted_ordertests",xdeltest)
|
|
}
|
|
var oldArr = this.$store.state.form.ordertests
|
|
oldArr.splice(inx,1)
|
|
this.$store.commit("form/update_ordertests",oldArr)
|
|
},
|
|
saveOrder(){
|
|
var error_count = 0
|
|
var error_msg = ''
|
|
var deliveryaddressid = 0
|
|
if(this.xordertests.length === 0){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Pemeriksaan</kbd> : Beneran ini ? gak ada pemeriksaannya ? </p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.xordertype)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Tipe</kbd> : Ayo, pilih salah satu tipe order</p>"
|
|
}
|
|
else{
|
|
if(parseInt(this.xordertype.M_PreOrderTypeID) === 1 && this.xorderphone === '' ){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Tanggal dan Jam Order</kbd> : Diisi dong nomor telpon nya, kan ordernya lewat telpon </p>"
|
|
}
|
|
}
|
|
|
|
if(_.isEmpty(this.xorderpatient)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Pasien</kbd> : Pasiennya siapa ? diisi dong</p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.xorderaddress)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Alamat</kbd> : Alamatnya kok gak diisi ? bingung dong yang ngambil sampling</p>"
|
|
}else{
|
|
if(this.xorderaddress.M_PatientAddressID === 'X'){
|
|
if(_.isEmpty(this.xnewcity)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kota [<code>baru</code>]</kbd> : Pilih dong kotanya, katanya mau bikin alamat baru ?</p>"
|
|
}
|
|
if(_.isEmpty(this.xnewdistrict)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kecamatan [<code>baru</code>]</kbd> : Pilih dong kecamatannya, katanya mau bikin alamat baru ?</p>"
|
|
}
|
|
if(_.isEmpty(this.xnewkelurahan)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kelurahan [<code>baru</code>]</kbd> : Pilih dong kelurahan, katanya mau bikin alamat baru ?</p>"
|
|
}
|
|
if(_.isEmpty(this.xnewaddress)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Yakin ? gak ada nomor rumah / RT RW / nama jalan ? </p>"
|
|
error_msg += "<p><kbd class='text-uppercase'>Yang jelas dong kalo mau bikin almat baru !</p>"
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(this.xorderdeliverytype && typeof this.xorderdeliverytype !== 'undefined'){
|
|
if(parseInt(this.xorderdeliverytype.M_DeliveryID) === 2 && _.isEmpty(this.xorderpatientdeliveryaddress)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Pengiriman Hasil</kbd> : Alamat pengiriman hasil pasien belum dipilih kan ya ?</p>"
|
|
}
|
|
}
|
|
|
|
|
|
if(parseInt(this.xorderdeliverytype.M_DeliveryID) === 2){
|
|
//console.log(this.xorderpatientdeliveryaddress)
|
|
var xd = this.xorderpatientdeliveryaddress
|
|
deliveryaddressid = xd.M_PatientAddressID
|
|
//console.log(xd.M_PatientAddressDescription)
|
|
this.$store.commit("form/update_orderdeliveryaddress",xd.M_PatientAddressDescription)
|
|
}
|
|
|
|
if(error_count > 0){
|
|
this.errormsg = error_msg
|
|
this.dialogerrormsg = true
|
|
}
|
|
else{
|
|
var staffid = 0
|
|
if(this.xorderstaff){
|
|
staffid = this.xorderstaff.M_StaffID
|
|
}
|
|
var xtime = 0
|
|
if(this.xordertime){
|
|
xtime = this.xordertime.M_SamplingTimeTime
|
|
//console.log(xtime)
|
|
}
|
|
var deliverytypeid = 0
|
|
var deliveryid = 0
|
|
var kelurahanid = 0
|
|
if(this.xorderdeliverytype){
|
|
deliverytypeid = this.xorderdeliverytype.M_DeliveryTypeID
|
|
deliveryid = this.xorderdeliverytype.M_DeliveryID
|
|
if(this.xorderdeliverytype.M_DeliveryTypeID === '2' || this.xorderdeliverytype.M_DeliveryTypeID === 2){
|
|
kelurahanid = this.xorderpatientdeliveryaddress.M_PatientAddressM_KelurahanID
|
|
}
|
|
}
|
|
var doctorid = 0
|
|
if(this.xorderdoctor){
|
|
doctorid = this.xorderdoctor.M_DoctorID
|
|
}
|
|
var params = {
|
|
ordertype : this.xordertype.M_PreOrderTypeID,
|
|
orderdate : this.xorderdate,
|
|
ordertime : xtime,
|
|
orderphone : this.xorderphone,
|
|
orderpatient : this.xorderpatient.M_PatientID,
|
|
ordersex : this.xorderpatient.M_PatientM_SexID,
|
|
orderaddress : this.xorderaddress.M_PatientAddressID,
|
|
orderkelurahan : this.xorderaddress.M_PatientAddressM_KelurahanID,
|
|
ordertests : this.xordertests,
|
|
orderstaff : staffid,
|
|
orderdeliverydeliveryid:deliveryid,
|
|
orderdeliverydeliverytype:deliverytypeid ,
|
|
orderdeliverydestination:this.xorderdeliveryaddress,
|
|
orderdeliverykelurahan:kelurahanid,
|
|
orderdeliveryaddressid:deliveryaddressid,
|
|
orderdoctor:doctorid,
|
|
orderdoctoraddress : this.xdoctoraddress.M_DoctorAddressID,
|
|
newcity:this.xnewcity,
|
|
newdistrict:this.xnewdistrict,
|
|
newkelurahan:this.xnewkelurahan,
|
|
newaddress:this.xnewaddress
|
|
}
|
|
this.$store.dispatch("form/saveorder",params)
|
|
}
|
|
},
|
|
updateOrder(act){
|
|
var error_count = 0
|
|
var error_msg = ''
|
|
var deliveryaddressid = 0
|
|
if(this.xordertests.length === 0){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Pemeriksaan</kbd> : Beneran ini ? gak ada pemeriksaannya ? </p>"
|
|
}
|
|
|
|
if(_.isEmpty(this.xordertype)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Tipe</kbd> : Ayo, pilih salah satu tipe order</p>"
|
|
}
|
|
else{
|
|
if(parseInt(this.xordertype.M_PreOrderTypeID) === 1 && this.xorderphone === '' ){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Tanggal dan Jam Order</kbd> : Diisi dong nomor telpon nya, kan ordernya lewat telpon </p>"
|
|
}
|
|
}
|
|
|
|
if(_.isEmpty(this.xorderpatient)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Pasien</kbd> : Pasiennya siapa ? diisi dong</p>"
|
|
}
|
|
|
|
|
|
if(_.isEmpty(this.xorderaddress)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Alamat</kbd> : Alamatnya kok gak diisi ? bingung dong yang ngambil sampling</p>"
|
|
}else{
|
|
if(this.xorderaddress.M_PatientAddressID === 'X'){
|
|
if(_.isEmpty(this.xnewcity)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kota [<code>baru</code>]</kbd> : Pilih dong kotanya, katanya mau bikin alamat baru ?</p>"
|
|
}
|
|
if(_.isEmpty(this.xnewdistrict)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kecamatan [<code>baru</code>]</kbd> : Pilih dong kecamatannya, katanya mau bikin alamat baru ?</p>"
|
|
}
|
|
if(_.isEmpty(this.xnewkelurahan)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Kelurahan [<code>baru</code>]</kbd> : Pilih dong kelurahan, katanya mau bikin alamat baru ?</p>"
|
|
}
|
|
if(_.isEmpty(this.xnewaddress)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Yakin ? gak ada nomor rumah / RT RW / nama jalan ? </p>"
|
|
error_msg += "<p><kbd class='text-uppercase'>Yang jelas dong kalo mau bikin almat baru !</p>"
|
|
}
|
|
}
|
|
}
|
|
|
|
if(this.xorderdeliverytype && typeof this.xorderdeliverytype !== 'undefined'){
|
|
if(parseInt(this.xorderdeliverytype.M_DeliveryID) === 2 && _.isEmpty(this.xorderpatientdeliveryaddress)){
|
|
error_count++
|
|
error_msg += "<p><kbd class='text-uppercase'>Pengiriman Hasil</kbd> : Alamat pengiriman hasil pasien belum dipilih kan ya ?</p>"
|
|
}
|
|
|
|
if(parseInt(this.xorderdeliverytype.M_DeliveryID) === 2){
|
|
var xd = this.xorderpatientdeliveryaddress
|
|
deliveryaddressid = xd.M_PatientAddressID
|
|
this.$store.commit("form/update_orderdeliveryaddress",xd.M_PatientAddressDescription)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
if(error_count > 0){
|
|
this.errormsg = error_msg
|
|
this.dialogerrormsg = true
|
|
}
|
|
else{
|
|
var staffid = 0
|
|
if(this.xorderstaff){
|
|
staffid = this.xorderstaff.M_StaffID
|
|
}
|
|
var xtime = 0
|
|
if(this.xordertime){
|
|
xtime = this.xordertime.M_SamplingTimeTime
|
|
//console.log(xtime)
|
|
}
|
|
var deliverytypeid = 0
|
|
var deliveryid = 0
|
|
var kelurahanid = 0
|
|
if(this.xorderdeliverytype && typeof this.xorderdeliverytype !== 'undefined'){
|
|
deliverytypeid = this.xorderdeliverytype.M_DeliveryTypeID
|
|
deliveryid = this.xorderdeliverytype.M_DeliveryID
|
|
if(this.xorderdeliverytype.M_DeliveryTypeID === '2' || this.xorderdeliverytype.M_DeliveryTypeID === 2){
|
|
kelurahanid = this.xorderpatientdeliveryaddress.M_PatientAddressM_KelurahanID
|
|
}
|
|
}
|
|
var doctorid = 0
|
|
if(this.xorderdoctor){
|
|
doctorid = this.xorderdoctor.M_DoctorID
|
|
}
|
|
|
|
|
|
var patientdob = this.$store.state.form.patient_dob
|
|
var patientage = ''
|
|
var now = moment(new Date())
|
|
var dob = moment(new Date(patientdob))
|
|
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)) patientage= ''
|
|
else patientage = `${year} tahun ${month} bulan ${day} hari`
|
|
|
|
|
|
var params = {
|
|
act:act,
|
|
patientage:patientage,
|
|
fdate:this.$store.state.order.fdate,
|
|
fstatus:this.$store.state.status.selected_status.id,
|
|
ftype:this.$store.state.type.selected_type.id,
|
|
orderid:this.$store.state.form.orderid,
|
|
ordertype : this.xordertype.M_PreOrderTypeID,
|
|
orderdate : this.xorderdate,
|
|
ordertime : xtime,
|
|
orderphone : this.xorderphone,
|
|
orderpatient : this.xorderpatient.M_PatientID,
|
|
ordersex : this.xorderpatient.M_PatientM_SexID,
|
|
orderaddress : this.xorderaddress.M_PatientAddressID,
|
|
orderkelurahan : this.xorderaddress.M_PatientAddressM_KelurahanID,
|
|
ordertests : this.xordertests,
|
|
deleted_ordertests : this.$store.state.form.deleted_ordertests,
|
|
orderstaff : staffid,
|
|
orderdeliverydeliveryid:deliveryid,
|
|
orderdeliverydeliverytype:deliverytypeid ,
|
|
orderdeliverydestination:this.xorderdeliveryaddress,
|
|
orderdeliverykelurahan:kelurahanid,
|
|
orderdeliveryaddressid:deliveryaddressid,
|
|
orderdoctor:doctorid,
|
|
orderdoctoraddress : this.xdoctoraddress.M_DoctorAddressID,
|
|
newcity:this.xnewcity,
|
|
newdistrict:this.xnewdistrict,
|
|
newkelurahan:this.xnewkelurahan,
|
|
newaddress:this.xnewaddress
|
|
}
|
|
this.$store.dispatch("form/updateorder",params)
|
|
}
|
|
},
|
|
actConfirm(){
|
|
this.$store.commit("form/update_btn_confirm",'show')
|
|
this.$store.commit("form/update_title_ordernumber",'Konfirmasi')
|
|
this.$store.commit("form/update_msg_ordernumber","<p>Yakin ? Ingin mengubah status menjadi 'CONFIRM' ?</p>")
|
|
this.$store.commit("form/update_dialog_ordernumber",true)
|
|
},
|
|
actOrderLab(){
|
|
this.$store.commit("form/update_dialog_form",false)
|
|
this.$store.commit("form/update_do_btn_order",'show')
|
|
this.$store.commit("form/update_title_ordernumber",'Konfirmasi')
|
|
this.$store.commit("form/update_msg_ordernumber","<p>Yakin ? Ingin melanjutkan ke order lab ?</p>")
|
|
this.$store.commit("form/update_dialog_ordernumber",true)
|
|
},
|
|
doConfirm(){
|
|
var params = {
|
|
orderid:this.$store.state.form.orderid,
|
|
fdate:this.$store.state.order.fdate,
|
|
fstatus:this.$store.state.status.selected_status.id,
|
|
ftype:this.$store.state.type.selected_type.id
|
|
}
|
|
this.$store.commit("form/update_dialog_ordernumber",false)
|
|
this.$store.commit("form/update_dialog_form",false)
|
|
this.$store.dispatch("order/doconfirm",params)
|
|
},
|
|
doOrderLab(){
|
|
/*var patientdob = this.$store.state.form.patient_dob
|
|
var patientage = ''
|
|
var now = moment(new Date())
|
|
var dob = moment(new Date(patientdob))
|
|
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)) patientage= ''
|
|
else patientage = `${year} tahun ${month} bulan ${day} hari`
|
|
|
|
var params = {
|
|
orderid:this.$store.state.form.orderid,
|
|
patientage:patientage,
|
|
fdate:this.$store.state.order.fdate,
|
|
fstatus:this.$store.state.status.selected_status.id,
|
|
ftype:this.$store.state.type.selected_type.id
|
|
}
|
|
this.$store.commit("form/update_do_btn_order",'hide')
|
|
this.$store.commit("form/update_dialog_ordernumber",false)
|
|
this.$store.dispatch("order/doorderlab",params)*/
|
|
|
|
this.$store.commit("form/update_do_btn_order",'hide')
|
|
this.$store.commit("form/update_dialog_ordernumber",false)
|
|
this.updateOrder('orderlab')
|
|
},
|
|
closeDialogOrderNumber(val){
|
|
this.$store.commit("form/update_dialog_ordernumber",val)
|
|
var prm = {fdate:this.$store.state.order.fdate,fstatus:this.$store.state.status.selected_status.id,ftype:this.$store.state.type.selected_type.id}
|
|
this.$store.dispatch("order/search",prm)
|
|
this.$store.dispatch("order/lookup_staff",prm)
|
|
}
|
|
},
|
|
watch: {
|
|
search_city(val,old) {
|
|
if (val == old ) return
|
|
if (! val) return
|
|
if (val.length < 1 ) return
|
|
if (this.$store.state.form.update_autocomplete_status == 1 ) return
|
|
this.thr_search_city()
|
|
},
|
|
search_new_city(val,old) {
|
|
if (val == old ) return
|
|
if (! val) return
|
|
if (val.length < 1 ) return
|
|
if (this.$store.state.form.update_autocomplete_status == 1 ) return
|
|
this.thr_search_new_city()
|
|
},
|
|
search_patient(val,old) {
|
|
if (val == old ) return
|
|
if (! val) return
|
|
if (val.length < 1 ) return
|
|
if (this.$store.state.form.update_autocomplete_status == 1 ) return
|
|
this.thr_search_patient()
|
|
},
|
|
search_test(val,old) {
|
|
if (val == old ) return
|
|
if (! val) return
|
|
if (val.length < 1 ) return
|
|
if (this.$store.state.form.update_autocomplete_status == 1 ) return
|
|
this.thr_search_test()
|
|
},
|
|
search_doctor(val,old) {
|
|
if (val == old ) return
|
|
if (! val) return
|
|
if (val.length < 1 ) return
|
|
if (this.$store.state.form.update_autocomplete_status == 1 ) return
|
|
this.thr_search_doctor()
|
|
}
|
|
}
|
|
}
|
|
</script> |