Created Department Module
This commit is contained in:
parent
fa1430fb17
commit
8545975107
@ -44,6 +44,10 @@ const routes: Routes = [
|
|||||||
path: 'patients',
|
path: 'patients',
|
||||||
loadChildren: () => import('./patients/patients.module').then(m => m.PatientsModule),
|
loadChildren: () => import('./patients/patients.module').then(m => m.PatientsModule),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'departments',
|
||||||
|
loadChildren: () => import('./departments/departments.module').then(m => m.DepartmentsModule),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
@ -49,7 +49,7 @@ import { CommonModule } from '@angular/common';
|
|||||||
templateUrl: './appointment-dialog.component.html',
|
templateUrl: './appointment-dialog.component.html',
|
||||||
styleUrl: './appointment-dialog.component.scss',
|
styleUrl: './appointment-dialog.component.scss',
|
||||||
})
|
})
|
||||||
export class AppointmentDialogComponent implements OnInit, OnChanges {
|
export class AppointmentDialogComponent implements OnInit {
|
||||||
@Input() visible: boolean = false; // Control modal visibility
|
@Input() visible: boolean = false; // Control modal visibility
|
||||||
@Input() name: string;
|
@Input() name: string;
|
||||||
@Input() isEditMode: boolean = false; // Determine if it's for edit or create
|
@Input() isEditMode: boolean = false; // Determine if it's for edit or create
|
||||||
@ -70,8 +70,6 @@ export class AppointmentDialogComponent implements OnInit, OnChanges {
|
|||||||
constructor(
|
constructor(
|
||||||
private DoctorService: DoctorService,
|
private DoctorService: DoctorService,
|
||||||
private AppointmentService: AppointmentService,
|
private AppointmentService: AppointmentService,
|
||||||
private http: HttpClient,
|
|
||||||
private confirmation: ConfirmationService,
|
|
||||||
private toaster: ToasterService
|
private toaster: ToasterService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@ -101,15 +99,9 @@ export class AppointmentDialogComponent implements OnInit, OnChanges {
|
|||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.fetchAppointmentData();
|
this.fetchAppointmentData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ngOnChanges(changes: SimpleChanges): void {
|
|
||||||
|
|
||||||
// if (changes['appointmentId'] && this.appointmentId) {
|
|
||||||
// this.fetchAppointmentData();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
fetchAppointmentData() {
|
fetchAppointmentData() {
|
||||||
this.AppointmentService.getAppointmentById(this.appointmentId).subscribe(result => {
|
this.AppointmentService.getAppointmentById(this.appointmentId).subscribe(result => {
|
||||||
@ -161,7 +153,6 @@ export class AppointmentDialogComponent implements OnInit, OnChanges {
|
|||||||
() => {
|
() => {
|
||||||
this.toaster.success('Appointment created successfully', 'Success');
|
this.toaster.success('Appointment created successfully', 'Success');
|
||||||
this.AppointmentDialog = false;
|
this.AppointmentDialog = false;
|
||||||
|
|
||||||
this.onClose();
|
this.onClose();
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
|
@ -16,7 +16,6 @@ import { appointmentStatus, Gender, paymentStatus, visitType } from '@proxy/glob
|
|||||||
export class ViewAppointmentComponent {
|
export class ViewAppointmentComponent {
|
||||||
totalRecords: number = 0;
|
totalRecords: number = 0;
|
||||||
appointmentIdToEdit: string;
|
appointmentIdToEdit: string;
|
||||||
|
|
||||||
AppointmentDialogTitle: string = '';
|
AppointmentDialogTitle: string = '';
|
||||||
AppointmentDialog: boolean = false;
|
AppointmentDialog: boolean = false;
|
||||||
patients: [];
|
patients: [];
|
||||||
@ -71,7 +70,6 @@ export class ViewAppointmentComponent {
|
|||||||
|
|
||||||
doctors = [];
|
doctors = [];
|
||||||
doctorOptions = [];
|
doctorOptions = [];
|
||||||
|
|
||||||
createPermission = true;
|
createPermission = true;
|
||||||
editPermission = true;
|
editPermission = true;
|
||||||
deletePermission = true;
|
deletePermission = true;
|
||||||
@ -165,7 +163,6 @@ export class ViewAppointmentComponent {
|
|||||||
defaultValue: 'Are you sure?',
|
defaultValue: 'Are you sure?',
|
||||||
})
|
})
|
||||||
.subscribe((status: Confirmation.Status) => {
|
.subscribe((status: Confirmation.Status) => {
|
||||||
// your code here
|
|
||||||
if (status == 'confirm') {
|
if (status == 'confirm') {
|
||||||
this.AppointmentService.deleteAppointmentRecord(id).subscribe(() => {
|
this.AppointmentService.deleteAppointmentRecord(id).subscribe(() => {
|
||||||
this.toaster.success('Appointment deleted successfully', 'Success');
|
this.toaster.success('Appointment deleted successfully', 'Success');
|
||||||
|
145
angular/src/app/departments/department-dialog.component.html
Normal file
145
angular/src/app/departments/department-dialog.component.html
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
<div
|
||||||
|
class="modal fade show d-block"
|
||||||
|
tabindex="-1"
|
||||||
|
role="dialog"
|
||||||
|
style="background: rgba(0, 0, 0, 0.5)"
|
||||||
|
*ngIf="visible"
|
||||||
|
aria-label="l('name')"
|
||||||
|
>
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header py-4">
|
||||||
|
<h4 class="text-success mb-0 fs-3 fw-normal">
|
||||||
|
{{ isEditMode ? 'Edit ' : 'Create ' }}{{name}}
|
||||||
|
</h4>
|
||||||
|
<button
|
||||||
|
tabindex="0"
|
||||||
|
type="button"
|
||||||
|
(click)="onClose()"
|
||||||
|
class="btn-close"
|
||||||
|
aria-label="Close"
|
||||||
|
></button>
|
||||||
|
</div>
|
||||||
|
<form #departmentForm="ngForm" (ngSubmit)="saveDepartment(departmentForm)">
|
||||||
|
<div class="p-fluid grid justify-content-center">
|
||||||
|
<div class="field col-md-5">
|
||||||
|
<label for="departmentNo">Department No <span class="text-danger">*</span></label>
|
||||||
|
<span class="p-input-icon-left p-input-icon-right">
|
||||||
|
<i class="pi pi-hashtag"></i>
|
||||||
|
<input
|
||||||
|
pInputText
|
||||||
|
id="departmentNo"
|
||||||
|
name="departmentNo"
|
||||||
|
[(ngModel)]="department.departmentNo"
|
||||||
|
#departmentNoCtrl="ngModel"
|
||||||
|
required
|
||||||
|
[ngClass]="{ 'is-valid': departmentNoCtrl.valid && departmentNoCtrl.touched, 'is-invalid': departmentNoCtrl.invalid && departmentNoCtrl.touched }"
|
||||||
|
/>
|
||||||
|
<i *ngIf="departmentNoCtrl.valid && departmentNoCtrl.touched" class="pi pi-check text-success"></i>
|
||||||
|
<i *ngIf="departmentNoCtrl.invalid && departmentNoCtrl.touched" class="pi pi-times text-danger"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-danger" *ngIf="departmentNoCtrl.invalid && departmentNoCtrl.touched">
|
||||||
|
<span *ngIf="departmentNoCtrl.errors?.required">Department No is required.</span>
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
<div class="field col-md-1"></div>
|
||||||
|
|
||||||
|
<div class="field col-md-5">
|
||||||
|
<label for="departmentName">Department Name <span class="text-danger">*</span></label>
|
||||||
|
<span class="p-input-icon-left p-input-icon-right">
|
||||||
|
<i class="pi pi-building"></i>
|
||||||
|
<input
|
||||||
|
pInputText
|
||||||
|
id="departmentName"
|
||||||
|
name="departmentName"
|
||||||
|
[(ngModel)]="department.departmentName"
|
||||||
|
#departmentNameCtrl="ngModel"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<small class="text-danger" *ngIf="departmentNameCtrl.invalid && departmentNameCtrl.touched">
|
||||||
|
<span *ngIf="departmentNameCtrl.errors?.required">Department Name is required.</span>
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="field col-md-5">
|
||||||
|
<label for="departmentDate">Department Date</label>
|
||||||
|
<p-calendar
|
||||||
|
id="departmentDate"
|
||||||
|
name="departmentDate"
|
||||||
|
[(ngModel)]="Departmentdate"
|
||||||
|
[showIcon]="true">
|
||||||
|
</p-calendar>
|
||||||
|
</div>
|
||||||
|
<div class="field col-md-1"></div>
|
||||||
|
|
||||||
|
<div class="field col-md-5">
|
||||||
|
<label for="departmentHead">Department Head</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-user"></i>
|
||||||
|
<input
|
||||||
|
pInputText
|
||||||
|
id="departmentHead"
|
||||||
|
name="departmentHead"
|
||||||
|
[(ngModel)]="department.departmentHead"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="field col-md-5">
|
||||||
|
<label>Status</label>
|
||||||
|
<div class="flex align-items-center p-input-icon-right">
|
||||||
|
<p-radioButton
|
||||||
|
name="status"
|
||||||
|
value="Active"
|
||||||
|
[(ngModel)]="department.status"
|
||||||
|
inputId="active"
|
||||||
|
></p-radioButton>
|
||||||
|
<label for="active" class="ml-2 mr-3">Active</label>
|
||||||
|
|
||||||
|
<p-radioButton
|
||||||
|
name="status"
|
||||||
|
value="Inactive"
|
||||||
|
[(ngModel)]="department.status"
|
||||||
|
inputId="inactive"
|
||||||
|
></p-radioButton>
|
||||||
|
<label for="inactive" class="ml-2">Inactive</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="field col-md-6"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="field col-11">
|
||||||
|
<label for="description">Description</label>
|
||||||
|
<textarea
|
||||||
|
id="description"
|
||||||
|
name="description"
|
||||||
|
[(ngModel)]="department.description"
|
||||||
|
rows="5"
|
||||||
|
cols="30"
|
||||||
|
pInputTextarea>
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="field col-11 flex justify-content-end">
|
||||||
|
<button
|
||||||
|
pButton
|
||||||
|
type="submit"
|
||||||
|
label="Save"
|
||||||
|
class="p-button-success"
|
||||||
|
[disabled]="departmentForm.invalid">
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
pButton
|
||||||
|
type="button"
|
||||||
|
label="Cancel"
|
||||||
|
class="p-button-secondary ml-2"
|
||||||
|
(click)="onClose()">
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
23
angular/src/app/departments/department-dialog.component.scss
Normal file
23
angular/src/app/departments/department-dialog.component.scss
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
.hide_body{
|
||||||
|
scrollbar-width: auto !important;
|
||||||
|
min-height: 150px;
|
||||||
|
max-height: calc(100vh - 13rem);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.is-valid {
|
||||||
|
border-color: green !important;
|
||||||
|
}
|
||||||
|
.is-invalid {
|
||||||
|
border-color: red !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Adjust the z-index of the calendar dropdown */
|
||||||
|
.p-calendar .p-datepicker {
|
||||||
|
z-index: 1050 !important; /* Make sure it's above other elements */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* You can also adjust modal z-index if necessary */
|
||||||
|
.modal {
|
||||||
|
z-index: 1040; /* Set lower z-index to ensure modal is behind the calendar */
|
||||||
|
}
|
||||||
|
|
109
angular/src/app/departments/department-dialog.component.ts
Normal file
109
angular/src/app/departments/department-dialog.component.ts
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||||
|
import { DepartmentsRoutingModule } from './departments-routing.module';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule, NgForm } from '@angular/forms';
|
||||||
|
import { ButtonModule } from 'primeng/button';
|
||||||
|
import { CalendarModule } from 'primeng/calendar';
|
||||||
|
import { ChipModule } from 'primeng/chip';
|
||||||
|
import { DialogModule } from 'primeng/dialog';
|
||||||
|
import { DropdownModule } from 'primeng/dropdown';
|
||||||
|
import { InputTextModule } from 'primeng/inputtext';
|
||||||
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
||||||
|
import { RadioButtonModule } from 'primeng/radiobutton';
|
||||||
|
import { TableModule } from 'primeng/table';
|
||||||
|
import { CreateDepartmentDto } from '@proxy/dtos';
|
||||||
|
import { DepartmentService } from '@proxy/departments';
|
||||||
|
import { ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-department-dialog',
|
||||||
|
standalone: true,
|
||||||
|
imports: [
|
||||||
|
TableModule,
|
||||||
|
DialogModule,
|
||||||
|
FormsModule,
|
||||||
|
TableModule,
|
||||||
|
ButtonModule,
|
||||||
|
DialogModule,
|
||||||
|
InputTextModule,
|
||||||
|
CalendarModule,
|
||||||
|
DropdownModule,
|
||||||
|
RadioButtonModule,
|
||||||
|
InputTextareaModule,
|
||||||
|
ChipModule,
|
||||||
|
CommonModule,
|
||||||
|
],
|
||||||
|
templateUrl: './department-dialog.component.html',
|
||||||
|
styleUrl: './department-dialog.component.scss',
|
||||||
|
})
|
||||||
|
export class DepartmentDialogComponent implements OnInit {
|
||||||
|
@Input() visible: boolean = false;
|
||||||
|
@Input() name: string;
|
||||||
|
@Input() isEditMode: boolean = false;
|
||||||
|
@Output() save = new EventEmitter<any>();
|
||||||
|
@Output() close = new EventEmitter<void>();
|
||||||
|
@Input() Id: string;
|
||||||
|
DepartmentDialog: boolean;
|
||||||
|
Departmentdate: Date;
|
||||||
|
constructor(
|
||||||
|
private DepartmentService: DepartmentService,
|
||||||
|
private toaster: ToasterService
|
||||||
|
) {}
|
||||||
|
ngOnInit(): void {
|
||||||
|
debugger;
|
||||||
|
if(this.isEditMode){
|
||||||
|
this.fetchDepartmentData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
department: CreateDepartmentDto = {
|
||||||
|
departmentNo: '',
|
||||||
|
departmentName: '',
|
||||||
|
departmentDate: '',
|
||||||
|
departmentHead: '',
|
||||||
|
description: '',
|
||||||
|
status: '',
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchDepartmentData() {
|
||||||
|
this.DepartmentService.getDepartmentById(this.Id).subscribe(result => {
|
||||||
|
this.department = result;
|
||||||
|
this.Departmentdate = new Date(result.departmentDate);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
saveDepartment(form: NgForm) {
|
||||||
|
if (form.invalid) {
|
||||||
|
Object.values(form.controls).forEach(control => control.markAsTouched());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.department.departmentDate = this.Departmentdate.toDateString();
|
||||||
|
|
||||||
|
if (this.isEditMode) {
|
||||||
|
this.DepartmentService.updateDepartment(this.department).subscribe(
|
||||||
|
() => {
|
||||||
|
this.toaster.success('Department updated successfully', 'Success');
|
||||||
|
this.onClose();
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.toaster.error(error, 'Error');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.DepartmentService.createDepartment(this.department).subscribe(
|
||||||
|
() => {
|
||||||
|
this.toaster.success('Department created successfully', 'Success');
|
||||||
|
this.onClose();
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.toaster.error(error, 'Error');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onClose() {
|
||||||
|
this.Id = '';
|
||||||
|
this.close.emit();
|
||||||
|
}
|
||||||
|
}
|
16
angular/src/app/departments/departments-routing.module.ts
Normal file
16
angular/src/app/departments/departments-routing.module.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
import { DepartmentsComponent } from './departments.component';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
|
||||||
|
{ path: '', component: DepartmentsComponent },
|
||||||
|
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule]
|
||||||
|
})
|
||||||
|
export class DepartmentsRoutingModule { }
|
97
angular/src/app/departments/departments.component.html
Normal file
97
angular/src/app/departments/departments.component.html
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<div>
|
||||||
|
<p-table
|
||||||
|
#dt2
|
||||||
|
dataKey="id"
|
||||||
|
[value]="departments"
|
||||||
|
[paginator]="true"
|
||||||
|
[rows]="10"
|
||||||
|
[totalRecords]="totalRecords"
|
||||||
|
[lazy]="true"
|
||||||
|
(onLazyLoad)="loaddepartments($event)"
|
||||||
|
[rowsPerPageOptions]="[10, 20, 50]"
|
||||||
|
[responsiveLayout]="'scroll'"
|
||||||
|
[globalFilterFields]="['id', 'name', 'status']"
|
||||||
|
[filters]="{ global: { value: '', matchMode: 'contains' } }"
|
||||||
|
class="table table-striped"
|
||||||
|
>
|
||||||
|
<ng-template pTemplate="caption">
|
||||||
|
<div class="flex align-items-center justify-content-between mb-3 gap-3">
|
||||||
|
<h4 class="m-0">Department List</h4>
|
||||||
|
<div class="flex-grow-1 flex justify-content-center">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-text"><i class="pi pi-search"></i></span>
|
||||||
|
<input
|
||||||
|
pInputText
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
(input)="dt2.filterGlobal($event.target.value, 'contains')"
|
||||||
|
[(ngModel)]="globalFilter"
|
||||||
|
placeholder="Search keyword"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
pButton
|
||||||
|
class="p-button-rounded p-button-secondary ml-2"
|
||||||
|
(click)="loaddepartments($event)"
|
||||||
|
>
|
||||||
|
<i class="pi pi-refresh"></i>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
pButton
|
||||||
|
class="p-button-rounded p-button-success ml-2"
|
||||||
|
(click)="openNewDepartmentDialog()"
|
||||||
|
pTooltip="Add Department"
|
||||||
|
tooltipPosition="left"
|
||||||
|
>
|
||||||
|
<i class="pi pi-plus-circle"></i>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
pButton
|
||||||
|
class="p-button-rounded p-button-warning ml-2"
|
||||||
|
(click)="exportDepartments()"
|
||||||
|
>
|
||||||
|
<i class="pi pi-download"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template pTemplate="header">
|
||||||
|
<tr>
|
||||||
|
<th pSortableColumn="departmentNo">Department Number <p-sortIcon field="departmentNo" /></th>
|
||||||
|
<th pSortableColumn="departmentName">Department Name <p-sortIcon field="departmentName" /></th>
|
||||||
|
<th pSortableColumn="description">Description <p-sortIcon field="description" /></th>
|
||||||
|
<th pSortableColumn="departmentDate">Date <p-sortIcon field="departmentDate" /></th>
|
||||||
|
<th pSortableColumn="departmentHead">Department Head<p-sortIcon field="departmentHead" /></th>
|
||||||
|
<th pSortableColumn="status">Status <p-sortIcon field="status" /></th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template pTemplate="body" let-department>
|
||||||
|
<tr>
|
||||||
|
<td>{{ department.departmentNo }}</td>
|
||||||
|
<td>{{ department.departmentName }}</td>
|
||||||
|
<td>{{ department.description }}</td>
|
||||||
|
<td>{{ department.departmentDate | date }}</td>
|
||||||
|
<td>{{ department.departmentHead }}</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge" [ngClass]="department.status === 'Active' ? 'bg-primary' : 'bg-danger'">
|
||||||
|
{{ department.status }}
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td class="d-flex">
|
||||||
|
<button class="btn btn-warning btn-sm ml-1" (click)="editDepartment(department)">
|
||||||
|
<i class="pi pi-pencil"></i>
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-danger btn-sm ml-1" (click)="deletedepartment(department.id)">
|
||||||
|
<i class="pi pi-trash"></i>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</ng-template>
|
||||||
|
</p-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<app-department-dialog [Id]="DepartmentIdToEdit"[isEditMode]="isEditMode"
|
||||||
|
[visible]="isModalVisible"*ngIf="isModalVisible" [name]="'Department'" (close)="closeDialog()"></app-department-dialog >
|
23
angular/src/app/departments/departments.component.spec.ts
Normal file
23
angular/src/app/departments/departments.component.spec.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { DepartmentsComponent } from './departments.component';
|
||||||
|
|
||||||
|
describe('DepartmentsComponent', () => {
|
||||||
|
let component: DepartmentsComponent;
|
||||||
|
let fixture: ComponentFixture<DepartmentsComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [DepartmentsComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(DepartmentsComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
115
angular/src/app/departments/departments.component.ts
Normal file
115
angular/src/app/departments/departments.component.ts
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { DepartmentService } from '@proxy/departments';
|
||||||
|
import { PagingSortResultDto } from '@proxy/dto';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-departments',
|
||||||
|
templateUrl: './departments.component.html',
|
||||||
|
styleUrl: './departments.component.scss',
|
||||||
|
})
|
||||||
|
export class DepartmentsComponent implements OnInit {
|
||||||
|
totalRecords: number = 0;
|
||||||
|
departments= [];
|
||||||
|
loading: boolean = false;
|
||||||
|
params: PagingSortResultDto;
|
||||||
|
isModalVisible: boolean;
|
||||||
|
isEditMode: boolean = false;
|
||||||
|
DepartmentIdToEdit: string;
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.loaddepartments({
|
||||||
|
first: 0,
|
||||||
|
rows: 10,
|
||||||
|
sortField: 'id',
|
||||||
|
sortOrder: 1,
|
||||||
|
globalFilter: null,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
constructor(
|
||||||
|
private DepartmentService: DepartmentService,
|
||||||
|
private http: HttpClient,
|
||||||
|
private confirmation: ConfirmationService,
|
||||||
|
private toaster: ToasterService
|
||||||
|
|
||||||
|
) {}
|
||||||
|
loaddepartments(event: any) {
|
||||||
|
this.loading = true;
|
||||||
|
let order = event.sortOrder == 1 ? ' asc' : ' desc';
|
||||||
|
event.sortField = event.sortField == undefined ? 'id' : event.sortField;
|
||||||
|
this.params = {
|
||||||
|
skipCount: event.first,
|
||||||
|
maxResultCount: event.rows,
|
||||||
|
sorting: event.sortField + order,
|
||||||
|
search: event.globalFilter == null ? '' : event.globalFilter,
|
||||||
|
};
|
||||||
|
|
||||||
|
this.DepartmentService.getDepartmentList(this.params).subscribe(data => {
|
||||||
|
this.departments = data.items;
|
||||||
|
this.totalRecords = data.totalCount;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
openNewDepartmentDialog() {
|
||||||
|
this.isModalVisible=true;
|
||||||
|
this.isEditMode = false;
|
||||||
|
}
|
||||||
|
editDepartment(Department: any) {
|
||||||
|
this.isEditMode = true;
|
||||||
|
this.DepartmentIdToEdit = Department.id;
|
||||||
|
this.isModalVisible=true;
|
||||||
|
}
|
||||||
|
deletedepartment(id: string) {
|
||||||
|
this.confirmation
|
||||||
|
.warn('Do you really want to delete this Department?', {
|
||||||
|
key: '::AreYouSure',
|
||||||
|
defaultValue: 'Are you sure?',
|
||||||
|
})
|
||||||
|
.subscribe((status: Confirmation.Status) => {
|
||||||
|
if (status == 'confirm') {
|
||||||
|
this.DepartmentService.deleteDepartmentRecord(id).subscribe(() => {
|
||||||
|
this.toaster.success('Deleted successfully', 'Success');
|
||||||
|
this.loaddepartments(this.params);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
closeDialog() {
|
||||||
|
this.isModalVisible = false;
|
||||||
|
this.loaddepartments({
|
||||||
|
first: 0,
|
||||||
|
rows: 10,
|
||||||
|
sortField: 'id',
|
||||||
|
sortOrder: 1,
|
||||||
|
globalFilter: null,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
exportDepartments() {
|
||||||
|
this.DepartmentService.getExportDepartmentRecord().subscribe(result => {
|
||||||
|
const binary = atob(result.fileContent);
|
||||||
|
const len = binary.length;
|
||||||
|
const bytes = new Uint8Array(len);
|
||||||
|
|
||||||
|
for (let i = 0; i < len; i++) {
|
||||||
|
bytes[i] = binary.charCodeAt(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
const blob = new Blob([bytes], { type: 'application/xlsx' });
|
||||||
|
|
||||||
|
const url = window.URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
const link = document.createElement('a');
|
||||||
|
link.href = url;
|
||||||
|
link.download = result.fileName;
|
||||||
|
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
|
||||||
|
document.body.removeChild(link);
|
||||||
|
window.URL.revokeObjectURL(url);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
39
angular/src/app/departments/departments.module.ts
Normal file
39
angular/src/app/departments/departments.module.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
|
||||||
|
import { DepartmentsRoutingModule } from './departments-routing.module';
|
||||||
|
import { DepartmentsComponent } from './departments.component';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { ButtonModule } from 'primeng/button';
|
||||||
|
import { CalendarModule } from 'primeng/calendar';
|
||||||
|
import { ChipModule } from 'primeng/chip';
|
||||||
|
import { DialogModule } from 'primeng/dialog';
|
||||||
|
import { DropdownModule } from 'primeng/dropdown';
|
||||||
|
import { InputTextModule } from 'primeng/inputtext';
|
||||||
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
||||||
|
import { RadioButtonModule } from 'primeng/radiobutton';
|
||||||
|
import { TableModule } from 'primeng/table';
|
||||||
|
import { DepartmentDialogComponent } from "./department-dialog.component";
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [DepartmentsComponent],
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
DepartmentsRoutingModule,
|
||||||
|
TableModule,
|
||||||
|
DialogModule,
|
||||||
|
FormsModule,
|
||||||
|
TableModule,
|
||||||
|
ButtonModule,
|
||||||
|
DialogModule,
|
||||||
|
InputTextModule,
|
||||||
|
CalendarModule,
|
||||||
|
DropdownModule,
|
||||||
|
RadioButtonModule,
|
||||||
|
InputTextareaModule,
|
||||||
|
ChipModule,
|
||||||
|
DepartmentDialogComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DepartmentsModule { }
|
@ -2,7 +2,7 @@ import type { Gender } from '../../global-enum/gender.enum';
|
|||||||
import type { appointmentStatus } from '../../global-enum/appointment-status.enum';
|
import type { appointmentStatus } from '../../global-enum/appointment-status.enum';
|
||||||
import type { visitType } from '../../global-enum/visit-type.enum';
|
import type { visitType } from '../../global-enum/visit-type.enum';
|
||||||
import type { paymentStatus } from '../../global-enum/payment-status.enum';
|
import type { paymentStatus } from '../../global-enum/payment-status.enum';
|
||||||
import type { Doctor } from '../../doctors/models';
|
import type { DoctorDto } from '../../doctors/dto/models';
|
||||||
|
|
||||||
export interface AppointmentDto {
|
export interface AppointmentDto {
|
||||||
id?: string;
|
id?: string;
|
||||||
@ -22,7 +22,7 @@ export interface AppointmentDto {
|
|||||||
appointmentStatus: appointmentStatus;
|
appointmentStatus: appointmentStatus;
|
||||||
visitType: visitType;
|
visitType: visitType;
|
||||||
paymentStatus: paymentStatus;
|
paymentStatus: paymentStatus;
|
||||||
doctor: Doctor;
|
doctor: DoctorDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CreateOrUpdateAppointmentDto {
|
export interface CreateOrUpdateAppointmentDto {
|
||||||
|
@ -1,2 +1 @@
|
|||||||
export * from './appointment.service';
|
export * from './appointment.service';
|
||||||
export * from './models';
|
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
|
||||||
import type { Gender } from '../global-enum/gender.enum';
|
|
||||||
import type { Doctor } from '../doctors/models';
|
|
||||||
import type { appointmentStatus } from '../global-enum/appointment-status.enum';
|
|
||||||
import type { visitType } from '../global-enum/visit-type.enum';
|
|
||||||
import type { paymentStatus } from '../global-enum/payment-status.enum';
|
|
||||||
|
|
||||||
export interface Appointment extends FullAuditedEntity<string> {
|
|
||||||
firstName?: string;
|
|
||||||
lastName?: string;
|
|
||||||
gender: Gender;
|
|
||||||
mobile?: string;
|
|
||||||
address?: string;
|
|
||||||
email?: string;
|
|
||||||
dob?: string;
|
|
||||||
doctor: Doctor;
|
|
||||||
dateOfAppointment?: string;
|
|
||||||
timeOfAppointment?: string;
|
|
||||||
injuryORContion?: string;
|
|
||||||
note?: string;
|
|
||||||
insuranceProvider?: string;
|
|
||||||
appointmentStatus: appointmentStatus;
|
|
||||||
visitType: visitType;
|
|
||||||
paymentStatus: paymentStatus;
|
|
||||||
}
|
|
@ -1,5 +1,7 @@
|
|||||||
import { RestService, Rest } from '@abp/ng.core';
|
import { RestService, Rest } from '@abp/ng.core';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
|
import type { PagedResultDto } from '../abp/application/services/dto/models';
|
||||||
|
import type { FileDownloadDto, PagingSortResultDto } from '../dto/models';
|
||||||
import type { CreateDepartmentDto, DepartmentDto } from '../dtos/models';
|
import type { CreateDepartmentDto, DepartmentDto } from '../dtos/models';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
@ -9,19 +11,53 @@ export class DepartmentService {
|
|||||||
apiName = 'Default';
|
apiName = 'Default';
|
||||||
|
|
||||||
|
|
||||||
create = (input: CreateDepartmentDto, config?: Partial<Rest.Config>) =>
|
createDepartment = (input: CreateDepartmentDto, config?: Partial<Rest.Config>) =>
|
||||||
this.restService.request<any, DepartmentDto>({
|
this.restService.request<any, void>({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: '/api/app/department',
|
url: '/api/app/department/department',
|
||||||
body: input,
|
body: input,
|
||||||
},
|
},
|
||||||
{ apiName: this.apiName,...config });
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
|
||||||
get = (config?: Partial<Rest.Config>) =>
|
deleteDepartmentRecord = (id: string, config?: Partial<Rest.Config>) =>
|
||||||
this.restService.request<any, DepartmentDto[]>({
|
this.restService.request<any, void>({
|
||||||
|
method: 'DELETE',
|
||||||
|
url: `/api/app/department/${id}/department-record`,
|
||||||
|
},
|
||||||
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
|
||||||
|
getDepartmentById = (id: string, config?: Partial<Rest.Config>) =>
|
||||||
|
this.restService.request<any, DepartmentDto>({
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
url: '/api/app/department',
|
url: `/api/app/department/${id}/department-by-id`,
|
||||||
|
},
|
||||||
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
|
||||||
|
getDepartmentList = (input: PagingSortResultDto, config?: Partial<Rest.Config>) =>
|
||||||
|
this.restService.request<any, PagedResultDto<DepartmentDto>>({
|
||||||
|
method: 'GET',
|
||||||
|
url: '/api/app/department/department-list',
|
||||||
|
params: { search: input.search, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
|
||||||
|
},
|
||||||
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
|
||||||
|
getExportDepartmentRecord = (config?: Partial<Rest.Config>) =>
|
||||||
|
this.restService.request<any, FileDownloadDto>({
|
||||||
|
method: 'GET',
|
||||||
|
url: '/api/app/department/export-department-record',
|
||||||
|
},
|
||||||
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
|
||||||
|
updateDepartment = (input: CreateDepartmentDto, config?: Partial<Rest.Config>) =>
|
||||||
|
this.restService.request<any, void>({
|
||||||
|
method: 'PUT',
|
||||||
|
url: '/api/app/department/department',
|
||||||
|
body: input,
|
||||||
},
|
},
|
||||||
{ apiName: this.apiName,...config });
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
@ -1,2 +1 @@
|
|||||||
export * from './department.service';
|
export * from './department.service';
|
||||||
export * from './models';
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
|
||||||
|
|
||||||
export interface Department extends FullAuditedEntity<string> {
|
|
||||||
departmentNo?: string;
|
|
||||||
departmentName?: string;
|
|
||||||
departmentDate?: string;
|
|
||||||
departmentHead?: string;
|
|
||||||
status?: string;
|
|
||||||
description?: string;
|
|
||||||
}
|
|
@ -1,4 +1,3 @@
|
|||||||
import * as Dto from './dto';
|
import * as Dto from './dto';
|
||||||
export * from './doctor.service';
|
export * from './doctor.service';
|
||||||
export * from './models';
|
|
||||||
export { Dto };
|
export { Dto };
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
|
||||||
import type { Department } from '../departments/models';
|
|
||||||
import type { Appointment } from '../appointments/models';
|
|
||||||
|
|
||||||
export interface Doctor extends FullAuditedEntity<string> {
|
|
||||||
firstName?: string;
|
|
||||||
lastName?: string;
|
|
||||||
gender?: string;
|
|
||||||
mobile?: string;
|
|
||||||
password?: string;
|
|
||||||
designation?: string;
|
|
||||||
departmentId?: string;
|
|
||||||
department: Department;
|
|
||||||
address?: string;
|
|
||||||
email?: string;
|
|
||||||
dob?: string;
|
|
||||||
education?: string;
|
|
||||||
appointments: Appointment[];
|
|
||||||
}
|
|
@ -1,11 +1,13 @@
|
|||||||
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
||||||
|
|
||||||
export interface CreateDepartmentDto {
|
export interface CreateDepartmentDto {
|
||||||
|
id?: string;
|
||||||
departmentNo?: string;
|
departmentNo?: string;
|
||||||
departmentName?: string;
|
departmentName?: string;
|
||||||
departmentDate?: string;
|
departmentDate?: string;
|
||||||
departmentHead?: string;
|
departmentHead?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
|
status?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CreateDoctorDto {
|
export interface CreateDoctorDto {
|
||||||
|
@ -1157,60 +1157,138 @@
|
|||||||
"isIntegrationService": false,
|
"isIntegrationService": false,
|
||||||
"apiVersion": null,
|
"apiVersion": null,
|
||||||
"type": "HospitalManagementSystem.Departments.DepartmentAppService",
|
"type": "HospitalManagementSystem.Departments.DepartmentAppService",
|
||||||
"interfaces": [
|
"interfaces": [],
|
||||||
{
|
"actions": {
|
||||||
"type": "HospitalManagementSystem.Departments.IDepartmentAppService",
|
"GetDepartmentListAsyncByInput": {
|
||||||
"name": "IDepartmentAppService",
|
"uniqueName": "GetDepartmentListAsyncByInput",
|
||||||
"methods": [
|
"name": "GetDepartmentListAsync",
|
||||||
{
|
"httpMethod": "GET",
|
||||||
"name": "GetAsync",
|
"url": "api/app/department/department-list",
|
||||||
"parametersOnMethod": [],
|
"supportedVersions": [],
|
||||||
"returnValue": {
|
|
||||||
"type": "System.Collections.Generic.List<HospitalManagementSystem.Dtos.DepartmentDto>",
|
|
||||||
"typeSimple": "[HospitalManagementSystem.Dtos.DepartmentDto]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "CreateAsync",
|
|
||||||
"parametersOnMethod": [
|
"parametersOnMethod": [
|
||||||
{
|
{
|
||||||
"name": "input",
|
"name": "input",
|
||||||
"typeAsString": "HospitalManagementSystem.Dtos.CreateDepartmentDto, HospitalManagementSystem.Application",
|
"typeAsString": "HospitalManagementSystem.Dto.PagingSortResultDto, HospitalManagementSystem.Domain.Shared",
|
||||||
"type": "HospitalManagementSystem.Dtos.CreateDepartmentDto",
|
"type": "HospitalManagementSystem.Dto.PagingSortResultDto",
|
||||||
"typeSimple": "HospitalManagementSystem.Dtos.CreateDepartmentDto",
|
"typeSimple": "HospitalManagementSystem.Dto.PagingSortResultDto",
|
||||||
"isOptional": false,
|
"isOptional": false,
|
||||||
"defaultValue": null
|
"defaultValue": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"nameOnMethod": "input",
|
||||||
|
"name": "Search",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.String",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": null,
|
||||||
|
"bindingSourceId": "ModelBinding",
|
||||||
|
"descriptorName": "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameOnMethod": "input",
|
||||||
|
"name": "Sorting",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.String",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": null,
|
||||||
|
"bindingSourceId": "ModelBinding",
|
||||||
|
"descriptorName": "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameOnMethod": "input",
|
||||||
|
"name": "SkipCount",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.Int32",
|
||||||
|
"typeSimple": "number",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": null,
|
||||||
|
"bindingSourceId": "ModelBinding",
|
||||||
|
"descriptorName": "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameOnMethod": "input",
|
||||||
|
"name": "MaxResultCount",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.Int32",
|
||||||
|
"typeSimple": "number",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": null,
|
||||||
|
"bindingSourceId": "ModelBinding",
|
||||||
|
"descriptorName": "input"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnValue": {
|
||||||
|
"type": "Abp.Application.Services.Dto.PagedResultDto<HospitalManagementSystem.Dtos.DepartmentDto>",
|
||||||
|
"typeSimple": "Abp.Application.Services.Dto.PagedResultDto<HospitalManagementSystem.Dtos.DepartmentDto>"
|
||||||
|
},
|
||||||
|
"allowAnonymous": false,
|
||||||
|
"implementFrom": "HospitalManagementSystem.Departments.DepartmentAppService"
|
||||||
|
},
|
||||||
|
"GetDepartmentByIdAsyncById": {
|
||||||
|
"uniqueName": "GetDepartmentByIdAsyncById",
|
||||||
|
"name": "GetDepartmentByIdAsync",
|
||||||
|
"httpMethod": "GET",
|
||||||
|
"url": "api/app/department/{id}/department-by-id",
|
||||||
|
"supportedVersions": [],
|
||||||
|
"parametersOnMethod": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"typeAsString": "System.Guid, System.Private.CoreLib",
|
||||||
|
"type": "System.Guid",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"nameOnMethod": "id",
|
||||||
|
"name": "id",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.Guid",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": [],
|
||||||
|
"bindingSourceId": "Path",
|
||||||
|
"descriptorName": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
"returnValue": {
|
"returnValue": {
|
||||||
"type": "HospitalManagementSystem.Dtos.DepartmentDto",
|
"type": "HospitalManagementSystem.Dtos.DepartmentDto",
|
||||||
"typeSimple": "HospitalManagementSystem.Dtos.DepartmentDto"
|
"typeSimple": "HospitalManagementSystem.Dtos.DepartmentDto"
|
||||||
}
|
},
|
||||||
}
|
"allowAnonymous": false,
|
||||||
]
|
"implementFrom": "HospitalManagementSystem.Departments.DepartmentAppService"
|
||||||
}
|
},
|
||||||
],
|
"GetExportDepartmentRecordAsync": {
|
||||||
"actions": {
|
"uniqueName": "GetExportDepartmentRecordAsync",
|
||||||
"GetAsync": {
|
"name": "GetExportDepartmentRecordAsync",
|
||||||
"uniqueName": "GetAsync",
|
|
||||||
"name": "GetAsync",
|
|
||||||
"httpMethod": "GET",
|
"httpMethod": "GET",
|
||||||
"url": "api/app/department",
|
"url": "api/app/department/export-department-record",
|
||||||
"supportedVersions": [],
|
"supportedVersions": [],
|
||||||
"parametersOnMethod": [],
|
"parametersOnMethod": [],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"returnValue": {
|
"returnValue": {
|
||||||
"type": "System.Collections.Generic.List<HospitalManagementSystem.Dtos.DepartmentDto>",
|
"type": "HospitalManagementSystem.Dto.FileDownloadDto",
|
||||||
"typeSimple": "[HospitalManagementSystem.Dtos.DepartmentDto]"
|
"typeSimple": "HospitalManagementSystem.Dto.FileDownloadDto"
|
||||||
},
|
},
|
||||||
"allowAnonymous": null,
|
"allowAnonymous": false,
|
||||||
"implementFrom": "HospitalManagementSystem.Departments.IDepartmentAppService"
|
"implementFrom": "HospitalManagementSystem.Departments.DepartmentAppService"
|
||||||
},
|
},
|
||||||
"CreateAsyncByInput": {
|
"CreateDepartmentAsyncByInput": {
|
||||||
"uniqueName": "CreateAsyncByInput",
|
"uniqueName": "CreateDepartmentAsyncByInput",
|
||||||
"name": "CreateAsync",
|
"name": "CreateDepartmentAsync",
|
||||||
"httpMethod": "POST",
|
"httpMethod": "POST",
|
||||||
"url": "api/app/department",
|
"url": "api/app/department/department",
|
||||||
"supportedVersions": [],
|
"supportedVersions": [],
|
||||||
"parametersOnMethod": [
|
"parametersOnMethod": [
|
||||||
{
|
{
|
||||||
@ -1237,11 +1315,85 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"returnValue": {
|
"returnValue": {
|
||||||
"type": "HospitalManagementSystem.Dtos.DepartmentDto",
|
"type": "System.Void",
|
||||||
"typeSimple": "HospitalManagementSystem.Dtos.DepartmentDto"
|
"typeSimple": "System.Void"
|
||||||
},
|
},
|
||||||
"allowAnonymous": null,
|
"allowAnonymous": false,
|
||||||
"implementFrom": "HospitalManagementSystem.Departments.IDepartmentAppService"
|
"implementFrom": "HospitalManagementSystem.Departments.DepartmentAppService"
|
||||||
|
},
|
||||||
|
"UpdateDepartmentAsyncByInput": {
|
||||||
|
"uniqueName": "UpdateDepartmentAsyncByInput",
|
||||||
|
"name": "UpdateDepartmentAsync",
|
||||||
|
"httpMethod": "PUT",
|
||||||
|
"url": "api/app/department/department",
|
||||||
|
"supportedVersions": [],
|
||||||
|
"parametersOnMethod": [
|
||||||
|
{
|
||||||
|
"name": "input",
|
||||||
|
"typeAsString": "HospitalManagementSystem.Dtos.CreateDepartmentDto, HospitalManagementSystem.Application",
|
||||||
|
"type": "HospitalManagementSystem.Dtos.CreateDepartmentDto",
|
||||||
|
"typeSimple": "HospitalManagementSystem.Dtos.CreateDepartmentDto",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"nameOnMethod": "input",
|
||||||
|
"name": "input",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "HospitalManagementSystem.Dtos.CreateDepartmentDto",
|
||||||
|
"typeSimple": "HospitalManagementSystem.Dtos.CreateDepartmentDto",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": null,
|
||||||
|
"bindingSourceId": "Body",
|
||||||
|
"descriptorName": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnValue": {
|
||||||
|
"type": "System.Void",
|
||||||
|
"typeSimple": "System.Void"
|
||||||
|
},
|
||||||
|
"allowAnonymous": false,
|
||||||
|
"implementFrom": "HospitalManagementSystem.Departments.DepartmentAppService"
|
||||||
|
},
|
||||||
|
"DeleteDepartmentRecordAsyncById": {
|
||||||
|
"uniqueName": "DeleteDepartmentRecordAsyncById",
|
||||||
|
"name": "DeleteDepartmentRecordAsync",
|
||||||
|
"httpMethod": "DELETE",
|
||||||
|
"url": "api/app/department/{id}/department-record",
|
||||||
|
"supportedVersions": [],
|
||||||
|
"parametersOnMethod": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"typeAsString": "System.Guid, System.Private.CoreLib",
|
||||||
|
"type": "System.Guid",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"nameOnMethod": "id",
|
||||||
|
"name": "id",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.Guid",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": [],
|
||||||
|
"bindingSourceId": "Path",
|
||||||
|
"descriptorName": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnValue": {
|
||||||
|
"type": "System.Void",
|
||||||
|
"typeSimple": "System.Void"
|
||||||
|
},
|
||||||
|
"allowAnonymous": false,
|
||||||
|
"implementFrom": "HospitalManagementSystem.Departments.DepartmentAppService"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4953,8 +5105,8 @@
|
|||||||
{
|
{
|
||||||
"name": "Doctor",
|
"name": "Doctor",
|
||||||
"jsonName": null,
|
"jsonName": null,
|
||||||
"type": "HospitalManagementSystem.Doctors.Doctor",
|
"type": "HospitalManagementSystem.Doctors.Dto.DoctorDto",
|
||||||
"typeSimple": "HospitalManagementSystem.Doctors.Doctor",
|
"typeSimple": "HospitalManagementSystem.Doctors.Dto.DoctorDto",
|
||||||
"isRequired": false,
|
"isRequired": false,
|
||||||
"minLength": null,
|
"minLength": null,
|
||||||
"maxLength": null,
|
"maxLength": null,
|
||||||
@ -5177,453 +5329,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"HospitalManagementSystem.Appointments.Appointment": {
|
|
||||||
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
|
||||||
"isEnum": false,
|
|
||||||
"enumNames": null,
|
|
||||||
"enumValues": null,
|
|
||||||
"genericArguments": null,
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "FirstName",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "LastName",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Gender",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "HospitalManagementSystem.GlobalEnum.Gender",
|
|
||||||
"typeSimple": "HospitalManagementSystem.GlobalEnum.Gender",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Mobile",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Address",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Email",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DOB",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.DateTime?",
|
|
||||||
"typeSimple": "string?",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Doctor",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "HospitalManagementSystem.Doctors.Doctor",
|
|
||||||
"typeSimple": "HospitalManagementSystem.Doctors.Doctor",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DateOfAppointment",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.DateTime?",
|
|
||||||
"typeSimple": "string?",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "TimeOfAppointment",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "InjuryORContion",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Note",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "InsuranceProvider",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "AppointmentStatus",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "HospitalManagementSystem.GlobalEnum.appointmentStatus",
|
|
||||||
"typeSimple": "HospitalManagementSystem.GlobalEnum.appointmentStatus",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "VisitType",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "HospitalManagementSystem.GlobalEnum.visitType",
|
|
||||||
"typeSimple": "HospitalManagementSystem.GlobalEnum.visitType",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "PaymentStatus",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "HospitalManagementSystem.GlobalEnum.paymentStatus",
|
|
||||||
"typeSimple": "HospitalManagementSystem.GlobalEnum.paymentStatus",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"HospitalManagementSystem.Departments.Department": {
|
|
||||||
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
|
||||||
"isEnum": false,
|
|
||||||
"enumNames": null,
|
|
||||||
"enumValues": null,
|
|
||||||
"genericArguments": null,
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "DepartmentNo",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DepartmentName",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DepartmentDate",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.DateTime?",
|
|
||||||
"typeSimple": "string?",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DepartmentHead",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Status",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Description",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"HospitalManagementSystem.Doctors.Doctor": {
|
|
||||||
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
|
||||||
"isEnum": false,
|
|
||||||
"enumNames": null,
|
|
||||||
"enumValues": null,
|
|
||||||
"genericArguments": null,
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "FirstName",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "LastName",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Gender",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Mobile",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Password",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Designation",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DepartmentId",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.Guid?",
|
|
||||||
"typeSimple": "string?",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Department",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "HospitalManagementSystem.Departments.Department",
|
|
||||||
"typeSimple": "HospitalManagementSystem.Departments.Department",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Address",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Email",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DOB",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Education",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.String",
|
|
||||||
"typeSimple": "string",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Appointments",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "[HospitalManagementSystem.Appointments.Appointment]",
|
|
||||||
"typeSimple": "[HospitalManagementSystem.Appointments.Appointment]",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"HospitalManagementSystem.Doctors.Dto.DoctorDto": {
|
"HospitalManagementSystem.Doctors.Dto.DoctorDto": {
|
||||||
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
||||||
"isEnum": false,
|
"isEnum": false,
|
||||||
@ -5952,6 +5657,18 @@
|
|||||||
"enumValues": null,
|
"enumValues": null,
|
||||||
"genericArguments": null,
|
"genericArguments": null,
|
||||||
"properties": [
|
"properties": [
|
||||||
|
{
|
||||||
|
"name": "Id",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.Guid",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isRequired": false,
|
||||||
|
"minLength": null,
|
||||||
|
"maxLength": null,
|
||||||
|
"minimum": null,
|
||||||
|
"maximum": null,
|
||||||
|
"regex": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "DepartmentNo",
|
"name": "DepartmentNo",
|
||||||
"jsonName": null,
|
"jsonName": null,
|
||||||
@ -6011,6 +5728,18 @@
|
|||||||
"minimum": null,
|
"minimum": null,
|
||||||
"maximum": null,
|
"maximum": null,
|
||||||
"regex": null
|
"regex": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Status",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "System.String",
|
||||||
|
"typeSimple": "string",
|
||||||
|
"isRequired": false,
|
||||||
|
"minLength": null,
|
||||||
|
"maxLength": null,
|
||||||
|
"minimum": null,
|
||||||
|
"maximum": null,
|
||||||
|
"regex": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -61,6 +61,22 @@ function configureRoutes(routesService: RoutesService) {
|
|||||||
// order: 203,
|
// order: 203,
|
||||||
// requiredPolicy:'HospitalManagementSystem.Patient'
|
// requiredPolicy:'HospitalManagementSystem.Patient'
|
||||||
// },
|
// },
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
name: 'Departments',
|
||||||
|
order: 301,
|
||||||
|
iconClass: 'fa fa-building-o',
|
||||||
|
layout: eLayoutType.application,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/departments',
|
||||||
|
name: 'All Departments',
|
||||||
|
parentName: 'Departments',
|
||||||
|
iconClass: 'fas fa-clock',
|
||||||
|
order: 302,
|
||||||
|
requiredPolicy:'HospitalManagementSystem.Department'
|
||||||
|
},
|
||||||
|
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,23 @@ public class HospitalManagementSystemPermissionDefinitionProvider : PermissionDe
|
|||||||
public override void Define(IPermissionDefinitionContext context)
|
public override void Define(IPermissionDefinitionContext context)
|
||||||
{
|
{
|
||||||
var HostipalManagementGroup = context.AddGroup(HospitalManagementSystemPermissions.GroupName);
|
var HostipalManagementGroup = context.AddGroup(HospitalManagementSystemPermissions.GroupName);
|
||||||
|
//patient
|
||||||
var PatientPermission = HostipalManagementGroup.AddPermission(HospitalManagementSystemPermissions.Patient.Default);
|
var PatientPermission = HostipalManagementGroup.AddPermission(HospitalManagementSystemPermissions.Patient.Default);
|
||||||
PatientPermission.AddChild(HospitalManagementSystemPermissions.Patient.Create);
|
PatientPermission.AddChild(HospitalManagementSystemPermissions.Patient.Create);
|
||||||
PatientPermission.AddChild(HospitalManagementSystemPermissions.Patient.Edit);
|
PatientPermission.AddChild(HospitalManagementSystemPermissions.Patient.Edit);
|
||||||
PatientPermission.AddChild(HospitalManagementSystemPermissions.Patient.Delete);
|
PatientPermission.AddChild(HospitalManagementSystemPermissions.Patient.Delete);
|
||||||
|
//Department
|
||||||
|
|
||||||
|
var DepartmentPermission = HostipalManagementGroup.AddPermission(HospitalManagementSystemPermissions.Department.Default);
|
||||||
|
DepartmentPermission.AddChild(HospitalManagementSystemPermissions.Department.Create);
|
||||||
|
DepartmentPermission.AddChild(HospitalManagementSystemPermissions.Department.Edit);
|
||||||
|
DepartmentPermission.AddChild(HospitalManagementSystemPermissions.Department.Delete);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Define your own permissions here. Example:
|
//Define your own permissions here. Example:
|
||||||
//myGroup.AddPermission(HospitalManagementSystemPermissions.MyPermission1, L("Permission:MyPermission1"));
|
//myGroup.AddPermission(HospitalManagementSystemPermissions.MyPermission1, L("Permission:MyPermission1"));
|
||||||
}
|
}
|
||||||
|
@ -13,4 +13,11 @@ public static class HospitalManagementSystemPermissions
|
|||||||
public const string Edit = Default + ".Edit";
|
public const string Edit = Default + ".Edit";
|
||||||
public const string Delete = Default + ".Delete";
|
public const string Delete = Default + ".Delete";
|
||||||
}
|
}
|
||||||
|
public static class Department
|
||||||
|
{
|
||||||
|
public const string Default = GroupName + ".Department";
|
||||||
|
public const string Create = Default + ".Create";
|
||||||
|
public const string Edit = Default + ".Edit";
|
||||||
|
public const string Delete = Default + ".Delete";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,189 @@
|
|||||||
using HospitalManagementSystem.Dtos;
|
using Abp.Application.Services.Dto;
|
||||||
|
using HospitalManagementSystem.Appoinments.Dto;
|
||||||
|
using HospitalManagementSystem.Appointments;
|
||||||
|
using HospitalManagementSystem.Dto;
|
||||||
|
using HospitalManagementSystem.Dtos;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Volo.Abp.Domain.Repositories;
|
using Volo.Abp.Domain.Repositories;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Dynamic.Core;
|
||||||
|
using Abp.UI;
|
||||||
|
using ClosedXML.Excel;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using HospitalManagementSystem.Permissions;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
namespace HospitalManagementSystem.Departments
|
namespace HospitalManagementSystem.Departments
|
||||||
{
|
{
|
||||||
public class DepartmentAppService : ApplicationService, IDepartmentAppService
|
public class DepartmentAppService : ApplicationService
|
||||||
{
|
{
|
||||||
private readonly IRepository<Department, Guid> _departmentRepository;
|
private readonly IRepository<Department, Guid> _departmentRepository;
|
||||||
public DepartmentAppService(IRepository<Department, Guid> departmentRepository)
|
private readonly IWebHostEnvironment _env;
|
||||||
|
|
||||||
|
public DepartmentAppService(IRepository<Department, Guid> departmentRepository, IWebHostEnvironment env)
|
||||||
{
|
{
|
||||||
_departmentRepository = departmentRepository;
|
_departmentRepository = departmentRepository;
|
||||||
|
_env = env;
|
||||||
}
|
}
|
||||||
public async Task<List<DepartmentDto>> GetAsync()
|
//public async Task<List<DepartmentDto>> GetAsync()
|
||||||
|
//{
|
||||||
|
// var departmentDtos = new List<DepartmentDto>();
|
||||||
|
// var data = await _departmentRepository.GetListAsync();
|
||||||
|
// departmentDtos = ObjectMapper.Map<List<Department>, List<DepartmentDto>>(data);
|
||||||
|
// return departmentDtos;
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
#region Get Department List with Paging and Searching
|
||||||
|
[Authorize(HospitalManagementSystemPermissions.Department.Default)]
|
||||||
|
|
||||||
|
public async Task<PagedResultDto<DepartmentDto>> GetDepartmentListAsync(PagingSortResultDto input)
|
||||||
{
|
{
|
||||||
var departmentDtos = new List<DepartmentDto>();
|
var queryable = await _departmentRepository.GetQueryableAsync();
|
||||||
var data = await _departmentRepository.GetListAsync();
|
|
||||||
departmentDtos = ObjectMapper.Map<List<Department>, List<DepartmentDto>>(data);
|
var filteredQuery = queryable
|
||||||
return departmentDtos;
|
.WhereIf(!string.IsNullOrEmpty(input.Search), x => x.DepartmentName.ToLower().Contains(input.Search.ToLower()) || x.DepartmentHead.ToLower().Contains(input.Search.ToLower()));
|
||||||
|
|
||||||
|
var totalCount = await filteredQuery.CountAsync();
|
||||||
|
|
||||||
|
filteredQuery = !string.IsNullOrEmpty(input.Sorting)
|
||||||
|
? filteredQuery.OrderBy(input.Sorting)
|
||||||
|
: filteredQuery.OrderBy(x => x.Id);
|
||||||
|
|
||||||
|
var pagedQuery = await filteredQuery
|
||||||
|
.Skip(input.SkipCount)
|
||||||
|
.Take(input.MaxResultCount)
|
||||||
|
.ToListAsync();
|
||||||
|
var appoinmentdto = ObjectMapper.Map<List<Department>, List<DepartmentDto>>(pagedQuery);
|
||||||
|
|
||||||
|
return new PagedResultDto<DepartmentDto>(
|
||||||
|
totalCount,
|
||||||
|
appoinmentdto
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Get Department by ID
|
||||||
|
[Authorize(HospitalManagementSystemPermissions.Department.Default)]
|
||||||
|
|
||||||
|
public async Task<DepartmentDto> GetDepartmentByIdAsync(Guid id)
|
||||||
|
{
|
||||||
|
var department = await _departmentRepository.FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
|
||||||
|
if (department == null)
|
||||||
|
{
|
||||||
|
throw new UserFriendlyException("Department Details not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<DepartmentDto> CreateAsync(CreateDepartmentDto input)
|
|
||||||
{
|
|
||||||
var department = new Department(Guid.NewGuid(), input.DepartmentNo, input.DepartmentName, input.DepartmentDate, input.DepartmentHead, "Active", input.Description);
|
|
||||||
await _departmentRepository.InsertAsync(department);
|
|
||||||
return ObjectMapper.Map<Department, DepartmentDto>(department);
|
return ObjectMapper.Map<Department, DepartmentDto>(department);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#region Export Department Data to Excel
|
||||||
|
[Authorize(HospitalManagementSystemPermissions.Department.Default)]
|
||||||
|
|
||||||
|
public async Task<FileDownloadDto> GetExportDepartmentRecordAsync()
|
||||||
|
{
|
||||||
|
var DepartmentRecord = await _departmentRepository.ToListAsync();
|
||||||
|
|
||||||
|
var folderPath = Path.Combine(_env.WebRootPath, "temp");
|
||||||
|
if (!Directory.Exists(folderPath))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(folderPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
var filename = "Departments_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx";
|
||||||
|
var filePath = Path.Combine(folderPath, filename);
|
||||||
|
|
||||||
|
// Create a workbook and worksheet
|
||||||
|
using (var workbook = new XLWorkbook())
|
||||||
|
{
|
||||||
|
var worksheet = workbook.Worksheets.Add("Department");
|
||||||
|
|
||||||
|
// Add headers
|
||||||
|
worksheet.Cell(1, 1).Value = "Department Number";
|
||||||
|
worksheet.Cell(1, 2).Value = "Department Name";
|
||||||
|
worksheet.Cell(1, 3).Value = "Description";
|
||||||
|
worksheet.Cell(1, 4).Value = "Date";
|
||||||
|
worksheet.Cell(1, 5).Value = "Department Head";
|
||||||
|
worksheet.Cell(1, 6).Value = "Status";
|
||||||
|
|
||||||
|
for (int i = 0; i < DepartmentRecord.Count; i++)
|
||||||
|
{
|
||||||
|
worksheet.Cell(i + 2, 1).Value = DepartmentRecord[i].DepartmentNo;
|
||||||
|
worksheet.Cell(i + 2, 2).Value = DepartmentRecord[i].DepartmentName;
|
||||||
|
worksheet.Cell(i + 2, 3).Value = DepartmentRecord[i].Description;
|
||||||
|
worksheet.Cell(i + 2, 4).Value = DepartmentRecord[i].DepartmentDate?.ToShortDateString();
|
||||||
|
worksheet.Cell(i + 2, 5).Value = DepartmentRecord[i].DepartmentHead;
|
||||||
|
worksheet.Cell(i + 2, 6).Value = DepartmentRecord[i].Status;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
worksheet.Columns().AdjustToContents();
|
||||||
|
workbook.SaveAs(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] fileBytes = await File.ReadAllBytesAsync(filePath);
|
||||||
|
File.Delete(filePath);
|
||||||
|
|
||||||
|
return new FileDownloadDto
|
||||||
|
{
|
||||||
|
FileName = filename,
|
||||||
|
FileContent = Convert.ToBase64String(fileBytes) // Use Base64 encoding for file content
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//public async Task<DepartmentDto> CreateAsync(CreateDepartmentDto input)
|
||||||
|
//{
|
||||||
|
// var department = new Department(Guid.NewGuid(), input.DepartmentNo, input.DepartmentName, input.DepartmentDate, input.DepartmentHead, "Active", input.Description);
|
||||||
|
// await _departmentRepository.InsertAsync(department);
|
||||||
|
// return ObjectMapper.Map<Department, DepartmentDto>(department);
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
#region Create Department
|
||||||
|
[Authorize(HospitalManagementSystemPermissions.Department.Create)]
|
||||||
|
|
||||||
|
public async Task CreateDepartmentAsync(CreateDepartmentDto input)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var newdata = ObjectMapper.Map<CreateDepartmentDto, Department>(input);
|
||||||
|
await _departmentRepository.InsertAsync(newdata);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Update Department
|
||||||
|
[Authorize(HospitalManagementSystemPermissions.Department.Edit)]
|
||||||
|
|
||||||
|
public async Task UpdateDepartmentAsync(CreateDepartmentDto input)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var newdata = ObjectMapper.Map<CreateDepartmentDto, Department>(input);
|
||||||
|
|
||||||
|
await _departmentRepository.UpdateAsync(newdata);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new Exception(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
#region Delete Department
|
||||||
|
[Authorize(HospitalManagementSystemPermissions.Department.Delete)]
|
||||||
|
public async Task DeleteDepartmentRecordAsync(Guid id)
|
||||||
|
{
|
||||||
|
await _departmentRepository.DeleteAsync(id);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,10 +8,14 @@ namespace HospitalManagementSystem.Dtos
|
|||||||
{
|
{
|
||||||
public class CreateDepartmentDto
|
public class CreateDepartmentDto
|
||||||
{
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
public string? DepartmentNo { get; set; }
|
public string? DepartmentNo { get; set; }
|
||||||
public string? DepartmentName { get; set; }
|
public string? DepartmentName { get; set; }
|
||||||
public DateTime? DepartmentDate { get; set; }
|
public DateTime? DepartmentDate { get; set; }
|
||||||
public string? DepartmentHead { get; set; }
|
public string? DepartmentHead { get; set; }
|
||||||
public string? Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
public string? Status { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,8 @@ namespace HospitalManagementSystem
|
|||||||
|
|
||||||
#region Department
|
#region Department
|
||||||
CreateMap<Department, DepartmentDto>();
|
CreateMap<Department, DepartmentDto>();
|
||||||
|
CreateMap<Department, CreateDepartmentDto>();
|
||||||
|
CreateMap<CreateDepartmentDto, Department>();
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Doctor
|
#region Doctor
|
||||||
|
Loading…
x
Reference in New Issue
Block a user