Merge branch 'cobaTampilan' of https://git.rssa.top/dwi.firman/cobaKeuangan into keycloak
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
<script setup lang="ts">
|
||||
import {Icon} from "@iconify/vue";
|
||||
|
||||
withDefaults(
|
||||
defineProps<{
|
||||
item: Object;
|
||||
// type: string;
|
||||
}>(),
|
||||
{
|
||||
item: () => ({}),
|
||||
// type: () => ({}),
|
||||
}
|
||||
)
|
||||
const emit = defineEmits(["detail"]);
|
||||
</script>
|
||||
<template>
|
||||
<v-card
|
||||
elevation="10"
|
||||
:class="[
|
||||
'mx-auto',
|
||||
item.status === 'planned'
|
||||
? ''
|
||||
: item.status === 'in-progress'
|
||||
? 'bg-info'
|
||||
: item.status === 'completed'
|
||||
? 'bg-success'
|
||||
: item.status === 'cancelled'
|
||||
? 'bg-error'
|
||||
: '',
|
||||
]"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<v-avatar
|
||||
size="50"
|
||||
:class="[
|
||||
'mx-auto rounded-md',
|
||||
item.status === 'planned'
|
||||
? ''
|
||||
: item.status === 'in-progress'
|
||||
? 'bg-info'
|
||||
: item.status === 'completed'
|
||||
? 'bg-success'
|
||||
: item.status === 'cancelled'
|
||||
? 'bg-error'
|
||||
: '',
|
||||
]"
|
||||
>
|
||||
<Icon
|
||||
icon="solar:user-circle-broken"
|
||||
:class="[
|
||||
item.status === 'planned'
|
||||
? 'text-primary'
|
||||
: item.status === 'in-progress'
|
||||
? 'text-primary'
|
||||
: item.status === 'completed'
|
||||
? 'text-light'
|
||||
: item.status === 'cancelled'
|
||||
? 'text-light'
|
||||
: '',
|
||||
]"
|
||||
height="36"
|
||||
/>
|
||||
</v-avatar>
|
||||
</template>
|
||||
<template v-slot:title>
|
||||
<h3>{{item.display}}</h3>
|
||||
<!-- <h3>{{ item.subject.display }}</h3> -->
|
||||
</template>
|
||||
<template v-slot:subtitle> </template>
|
||||
<template v-slot:text>
|
||||
<div class="pl-3">
|
||||
<div class="align-center d-flex">
|
||||
<!-- <Icon icon="mdi:doctor" class="text-primary" height="25" />
|
||||
<h4>actor</h4> -->
|
||||
<!-- <h4>{{ item.participant[0].actor.display }}</h4> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="pl-3 pt-2">
|
||||
<div class="align-center d-flex">
|
||||
<!-- <Icon
|
||||
icon="mdi:hospital-marker"
|
||||
class="text-primary"
|
||||
height="25"
|
||||
/> -->
|
||||
<!-- <h4>location</h4> -->
|
||||
<!-- <h4>Sps. {{ item.location[0].location.display }}</h4> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:actions>
|
||||
<v-btn color="primary" class="ms-auto" @click="emit('detail', props?.item)">Detail</v-btn>
|
||||
<!-- <v-btn v-for="itemButton in showButtons" @click="$emit(itemButton.tipe, props?.item)" :color="itemButton.color" class="ms-auto">
|
||||
<v-icon :color="itemButton.color">{{ itemButton.icon }}</v-icon>
|
||||
{{ itemButton.text }}
|
||||
</v-btn> -->
|
||||
</template>
|
||||
</v-card>
|
||||
</template>
|
||||
@@ -0,0 +1,46 @@
|
||||
<script setup lang="ts">
|
||||
import typeUser from "@/data/dummy/keuangan.type_user.json";
|
||||
import role_menu from "@/data/dummy/keuangan.role_menu.json";
|
||||
import menu from "@/data/dummy/keuangan.menu.json";
|
||||
//misal id = 683d57b2bccc67d467a9e10f
|
||||
// const id=ref('683d57b2bccc67d467a9e10f')
|
||||
// const { data:role_menu } = await useFetch(`/api/role_menu/${id.value}`)
|
||||
|
||||
const props = defineProps({
|
||||
data: {
|
||||
type: Array,
|
||||
},
|
||||
columns: {
|
||||
type: Array,
|
||||
}
|
||||
})
|
||||
const updateData = (id) => {
|
||||
console.log("update data:", id);
|
||||
};
|
||||
|
||||
const deleteData = (id) => {
|
||||
console.log("delete data:", id);
|
||||
};
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<!-- {{ data() }} -->
|
||||
<!-- {{props.columns}} -->
|
||||
<v-table density="compact">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-left" v-for="(col,index) in columns" :key="index">{{col.label}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item,index) in data" :key="index">
|
||||
<td v-for="(col,colIndex) in columns" :key="colIndex">{{item[col.key]}}
|
||||
<template v-if="col.key == 'actions'">
|
||||
<v-btn class="mx-2" @click="updateData(item)">ubah</v-btn>
|
||||
<v-btn @click="deleteData(item)">hapus</v-btn>
|
||||
</template>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</v-table>
|
||||
</template>
|
||||
@@ -33,7 +33,7 @@ const sidebarItem: menu[] = [
|
||||
children:[
|
||||
{
|
||||
title: "index",
|
||||
to: "/master/index",
|
||||
to: "/master/",
|
||||
external: false,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<template>
|
||||
<!-- <v-card elevation="10" >
|
||||
<v-card-item> -->
|
||||
<div class="d-md-flex justify-space-between mb-mb-0 mb-3">
|
||||
<!-- <v-card-title class="text-h5">Revenue Forecast</v-card-title> -->
|
||||
</div>
|
||||
<div class="mt-4 pt-2">
|
||||
<Vueform v-model="data" validate-on="change|step" method="post" :endpoint="onSubmit">
|
||||
<FormLibMasterName />
|
||||
<FormLibMasterEmail />
|
||||
<FormLibMasterPassword />
|
||||
<FormLibMasterRole />
|
||||
<ButtonElement
|
||||
name="primaryButton"
|
||||
button-label="Button"
|
||||
:submits="true"
|
||||
align="center"
|
||||
size="lg"
|
||||
/>
|
||||
</Vueform>
|
||||
</div>
|
||||
<!-- </v-card-item>
|
||||
</v-card> -->
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
const data = ref('')
|
||||
const onSubmit = () => {
|
||||
console.log(data)
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,952 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"resourceType": "Encounter",
|
||||
"id": "682eca2506243e4b51edf8b1",
|
||||
"identifier": [
|
||||
{
|
||||
"use": "usual",
|
||||
"type": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"system": "",
|
||||
"value": "",
|
||||
"period": {
|
||||
"start": "2025-05-22"
|
||||
},
|
||||
"assigner": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"coding": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"status": "planned",
|
||||
"class": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||
"version": "",
|
||||
"code": "AMB",
|
||||
"display": "ambulatory",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"priority": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"type": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://snomed.info/sct",
|
||||
"version": "",
|
||||
"code": "000000002116",
|
||||
"display": "Consultan",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"serviceType": null,
|
||||
"subject": {
|
||||
"reference": "Patient/682c20242af192c70dccef9b",
|
||||
"display": "Hilyah Wati Sukma S.P"
|
||||
},
|
||||
"subjectStatus": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"episodeOfCare": null,
|
||||
"baseOn": null,
|
||||
"careTeam": null,
|
||||
"partOf": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"serviceProvider": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"participant": [
|
||||
{
|
||||
"type": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"period": {},
|
||||
"actor": {
|
||||
"reference": "Practitioner/68253d9305321465b1fd64ad",
|
||||
"display": "dr.VATIEN RAHMAWATI,Sp.M"
|
||||
}
|
||||
}
|
||||
],
|
||||
"appointment": null,
|
||||
"virtualServiceDetail": null,
|
||||
"actualPeriod": {},
|
||||
"plannedStartDate": "",
|
||||
"plannedEndDate": "",
|
||||
"length": {
|
||||
"duration": {
|
||||
"system": "http://unitsofmeasure.org",
|
||||
"version": "",
|
||||
"code": "min",
|
||||
"display": "45 Minutes",
|
||||
"userSelected": "",
|
||||
"value": 45,
|
||||
"unit": "minutes"
|
||||
}
|
||||
},
|
||||
"reason": [
|
||||
{
|
||||
"use": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://hl7.org/fhir/ValueSet/encounter-reason-use",
|
||||
"version": "",
|
||||
"code": "CC",
|
||||
"display": "Chief Complaint",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": "aaaaaaaaa"
|
||||
}
|
||||
],
|
||||
"value": null,
|
||||
"reference": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"diagnosis": null,
|
||||
"account": null,
|
||||
"dietPreference": null,
|
||||
"specialArrangement": null,
|
||||
"specialCourtesy": null,
|
||||
"admission": {
|
||||
"preAdmissionIdentifier": {
|
||||
"use": "",
|
||||
"type": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"system": "",
|
||||
"value": "",
|
||||
"period": {},
|
||||
"assigner": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"coding": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
},
|
||||
"origin": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"admitSource": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"readmitSource": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"destination": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"dischargeDisposition": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
}
|
||||
},
|
||||
"location": [
|
||||
{
|
||||
"location": {
|
||||
"reference": "Location/682e8c4aae74fc3d30866a65",
|
||||
"display": "MATA"
|
||||
},
|
||||
"status": "",
|
||||
"form": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"period": {}
|
||||
}
|
||||
],
|
||||
"createdAt": "2025-05-22 13:54:29",
|
||||
"updatedAt": "2025-05-22 13:54:29",
|
||||
"extension": null
|
||||
},
|
||||
{
|
||||
"resourceType": "Encounter",
|
||||
"id": "682eca3c06243e4b51edf8c4",
|
||||
"identifier": [
|
||||
{
|
||||
"use": "usual",
|
||||
"type": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"system": "",
|
||||
"value": "",
|
||||
"period": {
|
||||
"start": "2025-05-22"
|
||||
},
|
||||
"assigner": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"coding": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"status": "in-progress",
|
||||
"class": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||
"version": "",
|
||||
"code": "AMB",
|
||||
"display": "ambulatory",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"priority": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"type": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://snomed.info/sct",
|
||||
"version": "",
|
||||
"code": "000000002115",
|
||||
"display": "Consultan",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"serviceType": null,
|
||||
"subject": {
|
||||
"reference": "Patient/682c1f662af192c70dccef3b",
|
||||
"display": "dr. Soni sulis haryono SP.OK"
|
||||
},
|
||||
"subjectStatus": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"episodeOfCare": null,
|
||||
"baseOn": null,
|
||||
"careTeam": null,
|
||||
"partOf": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"serviceProvider": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"participant": [
|
||||
{
|
||||
"type": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"period": {},
|
||||
"actor": {
|
||||
"reference": "Practitioner/68253d9305321465b1fd6438",
|
||||
"display": "dr.AUNUR ROFIQ,Sp.KK"
|
||||
}
|
||||
}
|
||||
],
|
||||
"appointment": null,
|
||||
"virtualServiceDetail": null,
|
||||
"actualPeriod": {},
|
||||
"plannedStartDate": "",
|
||||
"plannedEndDate": "",
|
||||
"length": {
|
||||
"duration": {
|
||||
"system": "http://unitsofmeasure.org",
|
||||
"version": "",
|
||||
"code": "min",
|
||||
"display": "45 Minutes",
|
||||
"userSelected": "",
|
||||
"value": 45,
|
||||
"unit": "minutes"
|
||||
}
|
||||
},
|
||||
"reason": [
|
||||
{
|
||||
"use": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://hl7.org/fhir/ValueSet/encounter-reason-use",
|
||||
"version": "",
|
||||
"code": "CC",
|
||||
"display": "Chief Complaint",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": "cssssss"
|
||||
}
|
||||
],
|
||||
"value": null,
|
||||
"reference": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"diagnosis": null,
|
||||
"account": null,
|
||||
"dietPreference": null,
|
||||
"specialArrangement": null,
|
||||
"specialCourtesy": null,
|
||||
"admission": {
|
||||
"preAdmissionIdentifier": {
|
||||
"use": "",
|
||||
"type": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"system": "",
|
||||
"value": "",
|
||||
"period": {},
|
||||
"assigner": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"coding": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
},
|
||||
"origin": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"admitSource": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"readmitSource": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"destination": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"dischargeDisposition": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
}
|
||||
},
|
||||
"location": [
|
||||
{
|
||||
"location": {
|
||||
"reference": "Location/682e8c4aae74fc3d30866a6a",
|
||||
"display": "KULIT"
|
||||
},
|
||||
"status": "",
|
||||
"form": {
|
||||
"coding": null,
|
||||
"text": ""
|
||||
},
|
||||
"period": {}
|
||||
}
|
||||
],
|
||||
"createdAt": "2025-05-22 13:54:52",
|
||||
"updatedAt": "2025-05-22 13:54:52",
|
||||
"extension": null
|
||||
},
|
||||
{
|
||||
"resourceType": "Encounter",
|
||||
"id": "68357074f856dc2104eb5c87",
|
||||
"identifier": [
|
||||
{
|
||||
"use": "",
|
||||
"type": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"system": "",
|
||||
"value": "",
|
||||
"period": {},
|
||||
"assigner": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"coding": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"status": "in-progress",
|
||||
"class": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||
"version": "",
|
||||
"code": "AMB",
|
||||
"display": "ambulatory",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"priority": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"type": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "http://snomed.info/sct",
|
||||
"version": "",
|
||||
"code": "11429006",
|
||||
"display": "Consultation",
|
||||
"userSelected": true
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"serviceType": [
|
||||
{
|
||||
"concept": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"reference": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"subject": {
|
||||
"reference": "Patient/1",
|
||||
"display": "John Doe"
|
||||
},
|
||||
"subjectStatus": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"episodeOfCare": [
|
||||
{
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
],
|
||||
"baseOn": [
|
||||
{
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
],
|
||||
"careTeam": [
|
||||
{
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
],
|
||||
"partOf": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"serviceProvider": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"participant": [
|
||||
{
|
||||
"type": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"period": {},
|
||||
"actor": {
|
||||
"reference": "Practitioner/1",
|
||||
"display": "Dr. Sarah Smith"
|
||||
}
|
||||
}
|
||||
],
|
||||
"appointment": [
|
||||
{
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
],
|
||||
"virtualServiceDetail": [
|
||||
{
|
||||
"channelType": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
},
|
||||
"address": {
|
||||
"addressUrl": "",
|
||||
"addressString": "",
|
||||
"addressContactPoint": {
|
||||
"rank": "0",
|
||||
"period": {}
|
||||
},
|
||||
"addressExtendedContactDetail": {
|
||||
"purpose": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"name": [
|
||||
{
|
||||
"use": "",
|
||||
"text": "",
|
||||
"family": "",
|
||||
"given": [
|
||||
""
|
||||
],
|
||||
"prefix": [
|
||||
""
|
||||
],
|
||||
"suffix": [
|
||||
""
|
||||
],
|
||||
"period": {}
|
||||
}
|
||||
],
|
||||
"telecom": [
|
||||
{
|
||||
"rank": "0",
|
||||
"period": {}
|
||||
}
|
||||
],
|
||||
"address": {
|
||||
"use": "",
|
||||
"type": "",
|
||||
"text": "",
|
||||
"line": [
|
||||
""
|
||||
],
|
||||
"village": "",
|
||||
"district": "",
|
||||
"city": "",
|
||||
"state": "",
|
||||
"postalCode": "",
|
||||
"country": "",
|
||||
"period": {},
|
||||
"extension": [
|
||||
{
|
||||
"url": "",
|
||||
"extension": [
|
||||
{
|
||||
"url": "",
|
||||
"valueDisplay": "",
|
||||
"valueCode": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"organization": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"period": {}
|
||||
}
|
||||
},
|
||||
"additionalInfo": [
|
||||
""
|
||||
],
|
||||
"maxParticipants": 0,
|
||||
"sessionKey": ""
|
||||
}
|
||||
],
|
||||
"actualPeriod": {},
|
||||
"plannedStartDate": "",
|
||||
"plannedEndDate": "",
|
||||
"length": {
|
||||
"duration": {
|
||||
"system": "http://unitsofmeasure.org",
|
||||
"version": "",
|
||||
"code": "min",
|
||||
"display": "45 Minutes",
|
||||
"userSelected": "",
|
||||
"value": 45,
|
||||
"unit": "minutes"
|
||||
}
|
||||
},
|
||||
"reason": [
|
||||
{
|
||||
"use": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"value": [
|
||||
{
|
||||
"concept": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"reference": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"reference": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"diagnosis": [
|
||||
{
|
||||
"condition": [
|
||||
{
|
||||
"concept": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"reference": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"use": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"account": [
|
||||
{
|
||||
"reference": "",
|
||||
"display": ""
|
||||
}
|
||||
],
|
||||
"dietPreference": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"specialArrangement": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"specialCourtesy": [
|
||||
{
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
],
|
||||
"admission": {
|
||||
"preAdmissionIdentifier": {
|
||||
"use": "",
|
||||
"type": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"system": "",
|
||||
"value": "",
|
||||
"period": {},
|
||||
"assigner": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"coding": {
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
},
|
||||
"origin": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"admitSource": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"readmitSource": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"destination": {
|
||||
"reference": "",
|
||||
"display": ""
|
||||
},
|
||||
"dischargeDisposition": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
}
|
||||
},
|
||||
"location": [
|
||||
{
|
||||
"location": {
|
||||
"reference": "Location/1",
|
||||
"display": "City Clinic - Room 5"
|
||||
},
|
||||
"status": "",
|
||||
"form": {
|
||||
"coding": [
|
||||
{
|
||||
"system": "",
|
||||
"version": "",
|
||||
"code": "",
|
||||
"display": "",
|
||||
"userSelected": false
|
||||
}
|
||||
],
|
||||
"text": ""
|
||||
},
|
||||
"period": {}
|
||||
}
|
||||
],
|
||||
"createdAt": "2025-05-27 14:57:40",
|
||||
"updatedAt": "2025-05-27 14:57:40",
|
||||
"extension": [
|
||||
{
|
||||
"url": "",
|
||||
"extension": [
|
||||
{
|
||||
"url": "",
|
||||
"valueDisplay": "",
|
||||
"valueCode": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"message": "Encounter Sukses Ter-ambil "
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
[{
|
||||
"_id": {
|
||||
"$oid": "683d582ebccc67d467a9e114"
|
||||
},
|
||||
"display": "Setting",
|
||||
"child": "",
|
||||
"ordered": 9,
|
||||
"parent": null,
|
||||
"icon": "",
|
||||
"link": "/setting"
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d99fe1b8c132fda4b32cb"
|
||||
},
|
||||
"display": "Tipe Pengguna",
|
||||
"child": "",
|
||||
"ordered": 9,
|
||||
"parent": "683d582ebccc67d467a9e114",
|
||||
"icon": "",
|
||||
"link": "/setting/typeUser"
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d9d561b8c132fda4b32e1"
|
||||
},
|
||||
"display": "Hak Akses",
|
||||
"child": "",
|
||||
"ordered": 9,
|
||||
"parent": "683d582ebccc67d467a9e114",
|
||||
"icon": "",
|
||||
"link": "/setting/typeUser/hakAkses"
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d9ebc1b8c132fda4b32e2"
|
||||
},
|
||||
"display": "Profile",
|
||||
"child": "",
|
||||
"ordered": 3,
|
||||
"parent": null,
|
||||
"icon": "",
|
||||
"link": "/profile"
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d9f071b8c132fda4b32e3"
|
||||
},
|
||||
"display": "Dashboard",
|
||||
"child": "",
|
||||
"ordered": 1,
|
||||
"parent": null,
|
||||
"icon": "",
|
||||
"link": "/"
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683da1491b8c132fda4b32e7"
|
||||
},
|
||||
"display": "Sample Page",
|
||||
"child": "",
|
||||
"ordered": 2,
|
||||
"parent": null,
|
||||
"icon": "",
|
||||
"link": "/sample"
|
||||
}]
|
||||
@@ -0,0 +1,126 @@
|
||||
[{
|
||||
"_id": {
|
||||
"$oid": "683da37c1b8c132fda4b32f7"
|
||||
},
|
||||
"type_user_id": "683d57b2bccc67d467a9e10f",
|
||||
"menu_id": "683d582ebccc67d467a9e114",
|
||||
"access": [
|
||||
{
|
||||
"add": 0
|
||||
},
|
||||
{
|
||||
"update": 0
|
||||
},
|
||||
{
|
||||
"read": 0
|
||||
},
|
||||
{
|
||||
"delete": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683da7481b8c132fda4b3302"
|
||||
},
|
||||
"type_user_id": "683d57b2bccc67d467a9e10f",
|
||||
"menu_id": "683d99fe1b8c132fda4b32cb",
|
||||
"access": [
|
||||
{
|
||||
"add": 1
|
||||
},
|
||||
{
|
||||
"update": 1
|
||||
},
|
||||
{
|
||||
"read": 1
|
||||
},
|
||||
{
|
||||
"delete": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683da81a1b8c132fda4b3308"
|
||||
},
|
||||
"type_user_id": "683d57b2bccc67d467a9e10f",
|
||||
"menu_id": "683d9d561b8c132fda4b32e1",
|
||||
"access": [
|
||||
{
|
||||
"add": 1
|
||||
},
|
||||
{
|
||||
"update": 1
|
||||
},
|
||||
{
|
||||
"read": 1
|
||||
},
|
||||
{
|
||||
"delete": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683da9791b8c132fda4b3314"
|
||||
},
|
||||
"type_user_id": "683d57b2bccc67d467a9e10f",
|
||||
"menu_id": "683d9ebc1b8c132fda4b32e2",
|
||||
"access": [
|
||||
{
|
||||
"add": 1
|
||||
},
|
||||
{
|
||||
"update": 1
|
||||
},
|
||||
{
|
||||
"read": 1
|
||||
},
|
||||
{
|
||||
"delete": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683daa6f1b8c132fda4b3319"
|
||||
},
|
||||
"type_user_id": "683d57b2bccc67d467a9e10f",
|
||||
"menu_id": "683d9f071b8c132fda4b32e3",
|
||||
"access": [
|
||||
{
|
||||
"add": 1
|
||||
},
|
||||
{
|
||||
"update": 1
|
||||
},
|
||||
{
|
||||
"read": 1
|
||||
},
|
||||
{
|
||||
"delete": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683daaf71b8c132fda4b3322"
|
||||
},
|
||||
"type_user_id": "683d57b2bccc67d467a9e10f",
|
||||
"menu_id": "683da1491b8c132fda4b32e7",
|
||||
"access": [
|
||||
{
|
||||
"add": 1
|
||||
},
|
||||
{
|
||||
"update": 1
|
||||
},
|
||||
{
|
||||
"read": 1
|
||||
},
|
||||
{
|
||||
"delete": 0
|
||||
}
|
||||
]
|
||||
}]
|
||||
@@ -0,0 +1,28 @@
|
||||
[{
|
||||
"_id": {
|
||||
"$oid": "683d57b2bccc67d467a9e10f"
|
||||
},
|
||||
"display": "Super Admin",
|
||||
"status": true
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d5805bccc67d467a9e110"
|
||||
},
|
||||
"display": "Admin",
|
||||
"status": true
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d5811bccc67d467a9e111"
|
||||
},
|
||||
"display": "Staf",
|
||||
"status": true
|
||||
},
|
||||
{
|
||||
"_id": {
|
||||
"$oid": "683d5825bccc67d467a9e112"
|
||||
},
|
||||
"display": "PJA / Koordinator",
|
||||
"status": true
|
||||
}]
|
||||
+6
-1
@@ -56,9 +56,14 @@ export default defineNuxtConfig({
|
||||
public: {
|
||||
keycloakUrl: 'https://auth.rssa.top',
|
||||
keycloakRealm: 'sandbox',
|
||||
keycloakClient: 'keuangan-firman',
|
||||
keycloakClient: 'keuangan-davila',
|
||||
keycloakSecretKey: '32HslhZ8Hn97SsbxcmowhXvmNZ9cPGNE',
|
||||
keycloakRedirectURI: 'http://localhost:3000',
|
||||
// keycloakUrl: 'https://auth.rssa.top',
|
||||
// keycloakRealm: 'sandbox',
|
||||
// keycloakClient: 'keuangan-firman',
|
||||
// keycloakSecretKey: '32HslhZ8Hn97SsbxcmowhXvmNZ9cPGNE',
|
||||
// keycloakRedirectURI: 'http://localhost:3000',
|
||||
|
||||
SIMRS_API: 'http://10.10.150.131:8084/api', // local Ahdan
|
||||
// SIMRS_API: 'http://10.10.123.140:8084/api'
|
||||
|
||||
Generated
+937
-18
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,48 @@
|
||||
<script setup lang="ts">
|
||||
import typeUser from "@/data/dummy/keuangan.type_user.json";
|
||||
import role_menu from "@/data/dummy/keuangan.role_menu.json";
|
||||
import menu from "@/data/dummy/keuangan.menu.json";
|
||||
//misal id = 683d57b2bccc67d467a9e10f
|
||||
// const id=ref('683d57b2bccc67d467a9e10f')
|
||||
// const { data:role_menu } = await useFetch(`/api/role_menu/${id.value}`)
|
||||
// const data = ref([]);
|
||||
|
||||
const dataMenu = computed(() => {
|
||||
return role_menu.map((role_menu) => {
|
||||
const menuItem = menu.find((menu) => menu._id.$oid == role_menu.menu_id)
|
||||
const type_user= typeUser.find((type_user) => type_user._id.$oid == role_menu.type_user_id)
|
||||
|
||||
return {
|
||||
_id: role_menu._id,
|
||||
menu: menuItem?.display || '-',
|
||||
type_user: type_user?.display || '-',
|
||||
accessAdd: role_menu.access?.[0]?.add || 0,
|
||||
accessUpdate: role_menu.access?.[1]?.update || 0,
|
||||
accessRead: role_menu.access?.[2]?.read || 0,
|
||||
accessDelete: role_menu.access?.[3]?.delete || 0
|
||||
}
|
||||
});
|
||||
// console.log(data)
|
||||
});
|
||||
|
||||
const updateData = (id) => {
|
||||
console.log("update data:", id);
|
||||
};
|
||||
|
||||
const deleteData = (id) => {
|
||||
console.log("delete data:", id);
|
||||
};
|
||||
|
||||
const columns=ref([
|
||||
{label:'Nama Menu',key:'menu'},
|
||||
{label:'Tambah',key:'accessAdd'},
|
||||
{label:'Ubah',key:'accessUpdate'},
|
||||
{label:'Baca',key:'accessRead'},
|
||||
{label:'Hapus',key:'accessDelete'},
|
||||
{label:'Aksi',key:'actions'},
|
||||
])
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<MasterTable :columns="columns" :data="dataMenu"/>
|
||||
</template>
|
||||
@@ -0,0 +1,35 @@
|
||||
<script setup lang="ts">
|
||||
// import encounter from "@/data/dummy/encounter.json";
|
||||
import typeUser from "@/data/dummy/keuangan.type_user.json";
|
||||
import role_menu from "@/data/dummy/keuangan.role_menu.json";
|
||||
import menu from "@/data/dummy/keuangan.menu.json";
|
||||
import { ref } from "vue";
|
||||
|
||||
console.log(typeUser);
|
||||
console.log(role_menu);
|
||||
console.log(menu);
|
||||
|
||||
const detailType = (item) => {
|
||||
console.log(item); //simpan pinia
|
||||
navigateTo(`/Setting/typeUser/HakAkses`);
|
||||
};
|
||||
const dialog = ref(false);
|
||||
|
||||
</script>
|
||||
<!-- ini list -->
|
||||
<template>
|
||||
<v-row no-gutters>
|
||||
<div class="d-flex justify-space-between">
|
||||
<template v-if="typeUser && typeUser.length > 0">
|
||||
<v-col v-for="(item, index) in typeUser" :key="index">
|
||||
<MasterCardList :item="item" @detail="detailType" />
|
||||
</v-col>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div class="d-flex justify-content-center align-items-center">
|
||||
<p>Tidak ada Pasien</p>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</v-row>
|
||||
</template>
|
||||
@@ -1,19 +0,0 @@
|
||||
<template>
|
||||
<!-- <v-row>
|
||||
<v-col cols="8"><MasterForm /></v-col>
|
||||
</v-row> -->
|
||||
<v-card elevation="9">
|
||||
<v-card-title>Form Pendaftaran</v-card-title>
|
||||
<v-card-text>
|
||||
<MasterForm />
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
+2
-94
@@ -1,95 +1,3 @@
|
||||
<script setup lang="ts">
|
||||
import dummy from '@/data/dummy/dataDummy.json'
|
||||
|
||||
// console.log(dummy)
|
||||
</script>
|
||||
<template>
|
||||
<!-- <v-row no-gutters>
|
||||
<div class="d-flex justify-space-between">
|
||||
<template v-if="resGetEncounter && resGetEncounter.length > 0">
|
||||
<v-col v-for="(item, index) in resGetEncounter" :key="index">
|
||||
<v-card
|
||||
elevation="10"
|
||||
:class="[
|
||||
'mx-auto',
|
||||
item.status === 'planned'
|
||||
? ''
|
||||
: item.status === 'in-progress'
|
||||
? 'bg-info'
|
||||
: item.status === 'completed'
|
||||
? 'bg-success'
|
||||
: item.status === 'cancelled'
|
||||
? 'bg-error'
|
||||
: '',
|
||||
]"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<v-avatar
|
||||
size="50"
|
||||
:class="[
|
||||
'mx-auto rounded-md',
|
||||
item.status === 'planned'
|
||||
? ''
|
||||
: item.status === 'in-progress'
|
||||
? 'bg-info'
|
||||
: item.status === 'completed'
|
||||
? 'bg-success'
|
||||
: item.status === 'cancelled'
|
||||
? 'bg-error'
|
||||
: '',
|
||||
]"
|
||||
>
|
||||
<Icon
|
||||
icon="solar:user-circle-broken"
|
||||
:class="[
|
||||
item.status === 'planned'
|
||||
? 'text-primary'
|
||||
: item.status === 'in-progress'
|
||||
? 'text-primary'
|
||||
: item.status === 'completed'
|
||||
? 'text-light'
|
||||
: item.status === 'cancelled'
|
||||
? 'text-light'
|
||||
: '',
|
||||
]"
|
||||
height="36"
|
||||
/>
|
||||
</v-avatar>
|
||||
</template>
|
||||
<template v-slot:title>
|
||||
<h3>{{ item.subject.display }}</h3>
|
||||
</template>
|
||||
<template v-slot:subtitle> </template>
|
||||
<template v-slot:text>
|
||||
<div class="pl-3">
|
||||
<div class="align-center d-flex">
|
||||
<Icon icon="mdi:doctor" class="text-primary" height="25" />
|
||||
<h4>{{ item.participant[0].actor.display }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pl-3 pt-2">
|
||||
<div class="align-center d-flex">
|
||||
<Icon
|
||||
icon="mdi:hospital-marker"
|
||||
class="text-primary"
|
||||
height="25"
|
||||
/>
|
||||
<h4>Sps. {{ item.location[0].location.display }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:actions>
|
||||
<v-btn color="primary" class="ms-auto">Detail</v-btn>
|
||||
</template>
|
||||
|
||||
</v-card>
|
||||
</v-col>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div class="d-flex justify-content-center align-items-center">
|
||||
<p>Tidak ada Pasien</p>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</v-row> -->
|
||||
</template>
|
||||
<div>master</div>
|
||||
</template>
|
||||
@@ -0,0 +1,12 @@
|
||||
//https://stackoverflow.com/questions/68549027/currency-formatting-using-intl-numberformat-without-currency-symbol
|
||||
export function format(data:number){
|
||||
return new Intl.NumberFormat('id-ID',{
|
||||
style:'currency',
|
||||
currency:'IDR',
|
||||
currencyDisplay: "code",
|
||||
}).formatToParts(data)
|
||||
.filter(x => x.type !== "currency")
|
||||
.filter(x => x.type !== "literal" || x.value.trim().length !== 0)
|
||||
.map(x => x.value)
|
||||
.join("")
|
||||
}
|
||||
Reference in New Issue
Block a user