Added View Appointment,prime ng.
This commit is contained in:
parent
2fefbe934c
commit
ba2f370300
@ -30,6 +30,31 @@
|
|||||||
"allowedCommonJsDependencies": ["chart.js", "js-sha256"],
|
"allowedCommonJsDependencies": ["chart.js", "js-sha256"],
|
||||||
"assets": ["src/favicon.ico", "src/assets"],
|
"assets": ["src/favicon.ico", "src/assets"],
|
||||||
"styles": [
|
"styles": [
|
||||||
|
{
|
||||||
|
"input": "node_modules/primeng/resources/themes/saga-blue/theme.css",
|
||||||
|
"inject": true,
|
||||||
|
"bundleName": "saga-blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "node_modules/primeflex/themes/primeone-dark.css",
|
||||||
|
"inject": true,
|
||||||
|
"bundleName": "primeone-dark"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "node_modules/primeng/resources/primeng.min.css",
|
||||||
|
"inject": true,
|
||||||
|
"bundleName": "primeng.min"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "node_modules/primeicons/primeicons.css",
|
||||||
|
"inject": true,
|
||||||
|
"bundleName": "primeicons"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "node_modules/primeflex/primeflex.min.css",
|
||||||
|
"inject": true,
|
||||||
|
"bundleName": "primeflex.min"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"input": "node_modules/@volo/ngx-lepton-x.lite/assets/css/bootstrap-dim.css",
|
"input": "node_modules/@volo/ngx-lepton-x.lite/assets/css/bootstrap-dim.css",
|
||||||
"inject": false,
|
"inject": false,
|
||||||
|
31
angular/package-lock.json
generated
31
angular/package-lock.json
generated
@ -31,6 +31,9 @@
|
|||||||
"@fullcalendar/daygrid": "^6.1.15",
|
"@fullcalendar/daygrid": "^6.1.15",
|
||||||
"@fullcalendar/interaction": "^6.1.15",
|
"@fullcalendar/interaction": "^6.1.15",
|
||||||
"bootstrap-icons": "~1.8.0",
|
"bootstrap-icons": "~1.8.0",
|
||||||
|
"primeflex": "^3.3.1",
|
||||||
|
"primeicons": "^6.0.1",
|
||||||
|
"primeng": "^17.18.0",
|
||||||
"rxjs": "~7.8.0",
|
"rxjs": "~7.8.0",
|
||||||
"tslib": "^2.0.0",
|
"tslib": "^2.0.0",
|
||||||
"zone.js": "~0.14.0"
|
"zone.js": "~0.14.0"
|
||||||
@ -13070,6 +13073,34 @@
|
|||||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/primeflex": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-zaOq3YvcOYytbAmKv3zYc+0VNS9Wg5d37dfxZnveKBFPr7vEIwfV5ydrpiouTft8MVW6qNjfkaQphHSnvgQbpQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/primeicons": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/primeicons/-/primeicons-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/primeng": {
|
||||||
|
"version": "17.18.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/primeng/-/primeng-17.18.0.tgz",
|
||||||
|
"integrity": "sha512-EcvU/0Ex9QoBR6g6db9fDTCTAmzokW70TV5Oroy2gdvXRr3eqlflnOBoArQsmxTaw1oxSsu68YVj3RvcKYWhTg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.3.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@angular/common": "^17.0.0 || ^18.0.0",
|
||||||
|
"@angular/core": "^17.0.0 || ^18.0.0",
|
||||||
|
"@angular/forms": "^17.0.0 || ^18.0.0",
|
||||||
|
"rxjs": "^6.0.0 || ^7.8.1",
|
||||||
|
"zone.js": "~0.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/proc-log": {
|
"node_modules/proc-log": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
|
||||||
|
@ -35,6 +35,9 @@
|
|||||||
"@fullcalendar/daygrid": "^6.1.15",
|
"@fullcalendar/daygrid": "^6.1.15",
|
||||||
"@fullcalendar/interaction": "^6.1.15",
|
"@fullcalendar/interaction": "^6.1.15",
|
||||||
"bootstrap-icons": "~1.8.0",
|
"bootstrap-icons": "~1.8.0",
|
||||||
|
"primeflex": "^3.3.1",
|
||||||
|
"primeicons": "^6.0.1",
|
||||||
|
"primeng": "^17.18.0",
|
||||||
"rxjs": "~7.8.0",
|
"rxjs": "~7.8.0",
|
||||||
"tslib": "^2.0.0",
|
"tslib": "^2.0.0",
|
||||||
"zone.js": "~0.14.0"
|
"zone.js": "~0.14.0"
|
||||||
|
@ -1 +1,202 @@
|
|||||||
<p>view-appointment works!</p>
|
<div>
|
||||||
|
<p-table #dt2 dataKey="id" [value]="appointments" [paginator]="true" [rows]="10" [rowsPerPageOptions]="[10, 20, 50]">
|
||||||
|
<ng-template pTemplate="caption">
|
||||||
|
|
||||||
|
<div class="flex align-items-center justify-content-between mb-3 gap-3">
|
||||||
|
<!-- Left: Title -->
|
||||||
|
<h2 class="m-0">Appointment List</h2>
|
||||||
|
|
||||||
|
<!-- Center: Search Bar with Icon Inside -->
|
||||||
|
<div class="flex-grow-1 flex justify-content-center">
|
||||||
|
<span class="p-input-icon-left w-50">
|
||||||
|
<i class="pi pi-search"></i>
|
||||||
|
<input pInputText type="text" [(ngModel)]="globalFilter" placeholder="Search Appointments"
|
||||||
|
(input)="dt2.filterGlobal(globalFilter, 'contains')" class="w-full" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Right: Add Button -->
|
||||||
|
<div>
|
||||||
|
<button *ngIf="createPermission" pButton class="p-button-rounded p-button-success"
|
||||||
|
(click)="openNewAppointmentDialog()" pTooltip="Add Appointment" tooltipPosition="left">
|
||||||
|
<i class="pi pi-plus-circle"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<ng-template pTemplate="header">
|
||||||
|
<tr>
|
||||||
|
<th pSortableColumn="name">Name <p-sortIcon field="name" /></th>
|
||||||
|
<th pSortableColumn="doctor">Doctor <p-sortIcon field="doctor" /></th>
|
||||||
|
<th pSortableColumn="date">Date <p-sortIcon field="date" /></th>
|
||||||
|
<th pSortableColumn="Time">Time<p-sortIcon field="Time"/></th>
|
||||||
|
<th pSortableColumn="Mobile">Mobile No<p-sortIcon field="Mobile"/></th>
|
||||||
|
<th pSortableColumn="Status">Appointment Status<p-sortIcon field="Status"/></th>
|
||||||
|
<th pSortableColumn="visittype">Visit Type<p-sortIcon field="visittype"/></th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<ng-template pTemplate="body" let-appointment>
|
||||||
|
<tr>
|
||||||
|
<td>{{ appointment.name }}</td>
|
||||||
|
<td>{{ appointment.doctor }}</td>
|
||||||
|
<td>{{ appointment.date | date }}</td>
|
||||||
|
<td>{{ appointment.time }}</td>
|
||||||
|
<td>{{ appointment.mobile }}</td>
|
||||||
|
<td>{{ appointment.status }}</td>
|
||||||
|
<td>{{ appointment.visitType }}</td>
|
||||||
|
<td>
|
||||||
|
<button class="btn btn-warning btn-sm ml-1" (click)="editAppointment(appointment)">
|
||||||
|
<i class="pi pi-pencil"></i>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</ng-template>
|
||||||
|
</p-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p-dialog header="{{ isEditing ? 'Edit Appointment' : 'New Appointment' }}" [(visible)]="appointmentDialog"
|
||||||
|
[modal]="true" [closable]="true" [style]="{ width: '80%' }">
|
||||||
|
|
||||||
|
<form #appointmentForm="ngForm" (ngSubmit)="saveAppointment()">
|
||||||
|
<div class="p-fluid grid">
|
||||||
|
|
||||||
|
<!-- Name -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="fname">First Name</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-user"></i>
|
||||||
|
<input pInputText id="fname" name="fname" [(ngModel)]="appointment.firstname" required />
|
||||||
|
</span>
|
||||||
|
<small *ngIf="appointmentForm.form.controls.fname?.invalid && appointmentForm.form.controls.fname?.touched" class="p-error">
|
||||||
|
First Name is required.
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="lname">Last Name</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-user"></i>
|
||||||
|
<input pInputText id="lname" name="lname" [(ngModel)]="appointment.lastname" required />
|
||||||
|
</span>
|
||||||
|
<small *ngIf="appointmentForm.form.controls.lname?.invalid && appointmentForm.form.controls.lname?.touched" class="p-error">
|
||||||
|
Last Name is required.
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label>Gender</label>
|
||||||
|
<div class="flex align-items-center">
|
||||||
|
<p-radioButton name="gender" value="Male" [(ngModel)]="appointment.gender" inputId="male"></p-radioButton>
|
||||||
|
<label for="male" class="ml-2 mr-3">Male</label>
|
||||||
|
|
||||||
|
<p-radioButton name="gender" value="Female" [(ngModel)]="appointment.gender" inputId="female"></p-radioButton>
|
||||||
|
<label for="female" class="ml-2">Female</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Mobile -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="mobile">Mobile No</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-phone"></i>
|
||||||
|
<input pInputText id="mobile" name="mobile" [(ngModel)]="appointment.mobile" required />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<!-- Email -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="email">Email ID</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-envelope"></i>
|
||||||
|
<input pInputText id="email" name="email" [(ngModel)]="appointment.email" required email />
|
||||||
|
</span>
|
||||||
|
<small *ngIf="appointmentForm.form.controls.email?.invalid && appointmentForm.form.controls.email?.touched" class="p-error">
|
||||||
|
Valid email is required.
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="dob">Date of Birth</label>
|
||||||
|
<p-calendar id="dob" name="dob" [(ngModel)]="appointment.dob" [showIcon]="true" required></p-calendar>
|
||||||
|
</div>
|
||||||
|
<!-- Doctor -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="doctor">Consulting Doctor</label>
|
||||||
|
<p-dropdown id="doctor" name="doctor" [(ngModel)]="appointment.doctor" [options]="doctorOptions" placeholder="Select Doctor" optionLabel="label"
|
||||||
|
optionValue="value" required></p-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Date -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="date">Date of Appointment</label>
|
||||||
|
<p-calendar id="date" name="date" [(ngModel)]="appointment.date" [showIcon]="true" required></p-calendar>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Time (HH:mm format) -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="time">Time Of Appointment</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-clock"></i>
|
||||||
|
<input pInputText id="time" name="time" type="time" [(ngModel)]="appointment.time" required />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Injury -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="injury">Injury/Contion</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-exclamation-triangle"></i>
|
||||||
|
<input pInputText id="injury" name="injury" [(ngModel)]="appointment.injury" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Insurance Provider -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="insurance">Insurance Provider</label>
|
||||||
|
<span class="p-input-icon-left">
|
||||||
|
<i class="pi pi-credit-card"></i>
|
||||||
|
<input pInputText id="insurance" name="insuranceProvider" [(ngModel)]="appointment.insuranceProvider" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Notes -->
|
||||||
|
<div class="field col-12">
|
||||||
|
<label for="notes">Notes</label>
|
||||||
|
<span class="p-input-icon-left w-full">
|
||||||
|
<textarea id="notes" name="notes" [(ngModel)]="appointment.notes"
|
||||||
|
class="w-full bg-white text-black border p-2 rounded" rows="3"></textarea> </span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Appointment Status -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="status">Appointment Status</label>
|
||||||
|
<p-dropdown id="status" name="status" [(ngModel)]="appointment.status" [options]="appointmentStatuses" placeholder="Select Status" required></p-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Visit Type -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="visitType">Visit Type</label>
|
||||||
|
<p-dropdown id="visitType" name="visitType" [(ngModel)]="appointment.visitType" [options]="visitTypes" placeholder="Select Visit Type" required></p-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Payment Status -->
|
||||||
|
<div class="field col-12 md:col-6">
|
||||||
|
<label for="paymentStatus">Payment Status</label>
|
||||||
|
<p-dropdown id="paymentStatus" name="paymentStatus" [(ngModel)]="appointment.paymentStatus" [options]="paymentStatuses" placeholder="Select Payment Status" required></p-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Action Buttons -->
|
||||||
|
<div class="field col-12 flex justify-content-end">
|
||||||
|
<button pButton type="submit" label="Save" class="p-button-success" [disabled]="appointmentForm.invalid"></button>
|
||||||
|
<button pButton type="button" label="Cancel" class="p-button-secondary ml-2" (click)="closeDialog()"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</p-dialog>
|
||||||
|
|
||||||
|
@ -1,10 +1,153 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
import { DoctorService } from '@proxy/doctors';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-view-appointment',
|
selector: 'app-view-appointment',
|
||||||
templateUrl: './view-appointment.component.html',
|
templateUrl: './view-appointment.component.html',
|
||||||
styleUrl: './view-appointment.component.scss'
|
styleUrl: './view-appointment.component.scss',
|
||||||
})
|
})
|
||||||
export class ViewAppointmentComponent {
|
export class ViewAppointmentComponent {
|
||||||
|
totalRecords: number = 0;
|
||||||
|
AppointmentDialogTitle: string = '';
|
||||||
|
AppointmentDialog: boolean = false;
|
||||||
|
patients: [];
|
||||||
|
isEditing = false;
|
||||||
|
appointmentDialog = false;
|
||||||
|
|
||||||
|
appointment = {
|
||||||
|
firstname: '',
|
||||||
|
lastname: '',
|
||||||
|
email: '',
|
||||||
|
gender: '',
|
||||||
|
date: '',
|
||||||
|
dob:'',
|
||||||
|
time: '',
|
||||||
|
mobile: '',
|
||||||
|
injury: '',
|
||||||
|
insuranceProvider: '',
|
||||||
|
notes: '',
|
||||||
|
doctor: '',
|
||||||
|
status: '',
|
||||||
|
visitType: '',
|
||||||
|
paymentStatus: '',
|
||||||
|
};
|
||||||
|
appointments = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: 'John Doe',
|
||||||
|
doctor: 'Dr. Smith',
|
||||||
|
gender: 1,
|
||||||
|
date: new Date(),
|
||||||
|
time: '10:00 AM',
|
||||||
|
mobile: '1234567890',
|
||||||
|
email: 'john@example.com',
|
||||||
|
status: 1,
|
||||||
|
visitType: 'Consultation',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: 'Jane Smith',
|
||||||
|
doctor: 'Dr. Johnson',
|
||||||
|
gender: 0,
|
||||||
|
date: new Date(),
|
||||||
|
time: '2:00 PM',
|
||||||
|
mobile: '0987654321',
|
||||||
|
email: 'jane@example.com',
|
||||||
|
status: 2,
|
||||||
|
visitType: 'Follow-up',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: 'Mike Johnson',
|
||||||
|
doctor: 'Dr. Brown',
|
||||||
|
gender: 1,
|
||||||
|
date: new Date(),
|
||||||
|
time: '4:30 PM',
|
||||||
|
mobile: '1112223333',
|
||||||
|
email: 'mike@example.com',
|
||||||
|
status: 1,
|
||||||
|
visitType: 'Surgery',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
status = { 1: 'Scheduled', 2: 'Completed', 3: 'Canceled' };
|
||||||
|
genders = [
|
||||||
|
{ label: 'Male', value: 'Male' },
|
||||||
|
{ label: 'Female', value: 'Female' },
|
||||||
|
];
|
||||||
|
doctors = [];
|
||||||
|
doctorOptions = [];
|
||||||
|
appointmentStatuses = [
|
||||||
|
{ label: 'Scheduled', value: 'Scheduled' },
|
||||||
|
{ label: 'Completed', value: 'Completed' },
|
||||||
|
];
|
||||||
|
visitTypes = [
|
||||||
|
{ label: 'Consultation', value: 'Consultation' },
|
||||||
|
{ label: 'Follow-up', value: 'Follow-up' },
|
||||||
|
];
|
||||||
|
paymentStatuses = [
|
||||||
|
{ label: 'Pending', value: 'Pending' },
|
||||||
|
{ label: 'Paid', value: 'Paid' },
|
||||||
|
];
|
||||||
|
|
||||||
|
createPermission = true;
|
||||||
|
editPermission = true;
|
||||||
|
deletePermission = true;
|
||||||
|
constructor(private DoctorService: DoctorService) {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.getdoctorlist();
|
||||||
|
}
|
||||||
|
|
||||||
|
openNewAppointmentDialog() {
|
||||||
|
this.isEditing = false;
|
||||||
|
this.appointmentDialog = true;
|
||||||
|
this.appointment = {
|
||||||
|
firstname: '',
|
||||||
|
lastname: '',
|
||||||
|
email: '',
|
||||||
|
gender: '',
|
||||||
|
date: '',
|
||||||
|
dob:'',
|
||||||
|
time: '',
|
||||||
|
mobile: '',
|
||||||
|
injury: '',
|
||||||
|
insuranceProvider: '',
|
||||||
|
notes: '',
|
||||||
|
doctor: '',
|
||||||
|
status: '',
|
||||||
|
visitType: '',
|
||||||
|
paymentStatus: '',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
exportAppointments() {
|
||||||
|
console.log('Exporting appointment data');
|
||||||
|
}
|
||||||
|
|
||||||
|
editAppointment(appointment: any) {
|
||||||
|
console.log('Editing appointment', appointment);
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteAppointment(id: number) {
|
||||||
|
console.log('Deleting appointment with ID', id);
|
||||||
|
}
|
||||||
|
saveAppointment() {
|
||||||
|
console.log(this.appointment);
|
||||||
|
this.appointmentDialog = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
closeDialog() {
|
||||||
|
this.appointmentDialog = false;
|
||||||
|
}
|
||||||
|
getdoctorlist() {
|
||||||
|
this.DoctorService.get().subscribe(result => {
|
||||||
|
debugger;
|
||||||
|
this.doctors = result;
|
||||||
|
// Create a formatted array for dropdown
|
||||||
|
this.doctorOptions = this.doctors.map(doctor => ({
|
||||||
|
label: `${doctor.firstName} ${doctor.lastName}`, // Combine first and last name
|
||||||
|
value: doctor.id, // Use the ID as the value
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,15 +3,33 @@ import { CommonModule } from '@angular/common';
|
|||||||
|
|
||||||
import { ViewAppointmentRoutingModule } from './view-appointment-routing.module';
|
import { ViewAppointmentRoutingModule } from './view-appointment-routing.module';
|
||||||
import { ViewAppointmentComponent } from './view-appointment.component';
|
import { ViewAppointmentComponent } from './view-appointment.component';
|
||||||
|
import { TableModule } from 'primeng/table';
|
||||||
|
import { DialogModule } from 'primeng/dialog';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { ButtonModule } from 'primeng/button';
|
||||||
|
import { CalendarModule } from 'primeng/calendar';
|
||||||
|
import { DropdownModule } from 'primeng/dropdown';
|
||||||
|
import { InputTextModule } from 'primeng/inputtext';
|
||||||
|
import { RadioButtonModule } from 'primeng/radiobutton';
|
||||||
|
import { DoctorService } from '@proxy/doctors';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [ViewAppointmentComponent],
|
||||||
ViewAppointmentComponent
|
|
||||||
],
|
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
ViewAppointmentRoutingModule
|
ViewAppointmentRoutingModule,
|
||||||
]
|
TableModule,
|
||||||
|
DialogModule,
|
||||||
|
FormsModule,
|
||||||
|
TableModule,
|
||||||
|
ButtonModule,
|
||||||
|
DialogModule,
|
||||||
|
InputTextModule,
|
||||||
|
CalendarModule,
|
||||||
|
DropdownModule,
|
||||||
|
RadioButtonModule,
|
||||||
|
|
||||||
|
],
|
||||||
|
providers:[DoctorService]
|
||||||
})
|
})
|
||||||
export class ViewAppointmentModule { }
|
export class ViewAppointmentModule {}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
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 { DoctorDto } from '../dtos/models';
|
import type { CreateDoctorDto, DoctorDto } from '../dtos/models';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
@ -9,6 +9,15 @@ export class DoctorService {
|
|||||||
apiName = 'Default';
|
apiName = 'Default';
|
||||||
|
|
||||||
|
|
||||||
|
create = (input: CreateDoctorDto, config?: Partial<Rest.Config>) =>
|
||||||
|
this.restService.request<any, DoctorDto>({
|
||||||
|
method: 'POST',
|
||||||
|
url: '/api/app/doctor',
|
||||||
|
body: input,
|
||||||
|
},
|
||||||
|
{ apiName: this.apiName,...config });
|
||||||
|
|
||||||
|
|
||||||
get = (config?: Partial<Rest.Config>) =>
|
get = (config?: Partial<Rest.Config>) =>
|
||||||
this.restService.request<any, DoctorDto[]>({
|
this.restService.request<any, DoctorDto[]>({
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
|
||||||
import type { GenderEnum } from '../enums/gender-enum.enum';
|
|
||||||
|
|
||||||
export interface CreateDepartmentDto {
|
export interface CreateDepartmentDto {
|
||||||
departmentNo?: string;
|
departmentNo?: string;
|
||||||
@ -9,6 +8,20 @@ export interface CreateDepartmentDto {
|
|||||||
description?: string;
|
description?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface CreateDoctorDto {
|
||||||
|
firstName?: string;
|
||||||
|
lastName?: string;
|
||||||
|
gender?: string;
|
||||||
|
mobile?: string;
|
||||||
|
password?: string;
|
||||||
|
designation?: string;
|
||||||
|
departmentId?: string;
|
||||||
|
address?: string;
|
||||||
|
email?: string;
|
||||||
|
dob?: string;
|
||||||
|
education?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface DepartmentDto extends FullAuditedEntity<string> {
|
export interface DepartmentDto extends FullAuditedEntity<string> {
|
||||||
departmentNo?: string;
|
departmentNo?: string;
|
||||||
departmentName?: string;
|
departmentName?: string;
|
||||||
@ -21,7 +34,7 @@ export interface DepartmentDto extends FullAuditedEntity<string> {
|
|||||||
export interface DoctorDto extends FullAuditedEntity<string> {
|
export interface DoctorDto extends FullAuditedEntity<string> {
|
||||||
firstName?: string;
|
firstName?: string;
|
||||||
lastName?: string;
|
lastName?: string;
|
||||||
gender?: GenderEnum;
|
gender?: string;
|
||||||
mobile?: string;
|
mobile?: string;
|
||||||
designation?: string;
|
designation?: string;
|
||||||
departmentId?: string;
|
departmentId?: string;
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
import { mapEnumToOptions } from '@abp/ng.core';
|
|
||||||
|
|
||||||
export enum GenderEnum {
|
|
||||||
Male = 0,
|
|
||||||
Female = 1,
|
|
||||||
Others = 2,
|
|
||||||
}
|
|
||||||
|
|
||||||
export const genderEnumOptions = mapEnumToOptions(GenderEnum);
|
|
@ -1 +0,0 @@
|
|||||||
export * from './gender-enum.enum';
|
|
@ -1047,6 +1047,43 @@
|
|||||||
},
|
},
|
||||||
"allowAnonymous": null,
|
"allowAnonymous": null,
|
||||||
"implementFrom": "HospitalManagementSystem.Doctors.IDoctorAppService"
|
"implementFrom": "HospitalManagementSystem.Doctors.IDoctorAppService"
|
||||||
|
},
|
||||||
|
"CreateAsyncByInput": {
|
||||||
|
"uniqueName": "CreateAsyncByInput",
|
||||||
|
"name": "CreateAsync",
|
||||||
|
"httpMethod": "POST",
|
||||||
|
"url": "api/app/doctor",
|
||||||
|
"supportedVersions": [],
|
||||||
|
"parametersOnMethod": [
|
||||||
|
{
|
||||||
|
"name": "input",
|
||||||
|
"typeAsString": "HospitalManagementSystem.Dtos.CreateDoctorDto, HospitalManagementSystem.Application",
|
||||||
|
"type": "HospitalManagementSystem.Dtos.CreateDoctorDto",
|
||||||
|
"typeSimple": "HospitalManagementSystem.Dtos.CreateDoctorDto",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"nameOnMethod": "input",
|
||||||
|
"name": "input",
|
||||||
|
"jsonName": null,
|
||||||
|
"type": "HospitalManagementSystem.Dtos.CreateDoctorDto",
|
||||||
|
"typeSimple": "HospitalManagementSystem.Dtos.CreateDoctorDto",
|
||||||
|
"isOptional": false,
|
||||||
|
"defaultValue": null,
|
||||||
|
"constraintTypes": null,
|
||||||
|
"bindingSourceId": "Body",
|
||||||
|
"descriptorName": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnValue": {
|
||||||
|
"type": "HospitalManagementSystem.Dtos.DoctorDto",
|
||||||
|
"typeSimple": "HospitalManagementSystem.Dtos.DoctorDto"
|
||||||
|
},
|
||||||
|
"allowAnonymous": null,
|
||||||
|
"implementFrom": "HospitalManagementSystem.Doctors.DoctorAppService"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3764,6 +3801,147 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"HospitalManagementSystem.Dtos.CreateDoctorDto": {
|
||||||
|
"baseType": null,
|
||||||
|
"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": "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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"HospitalManagementSystem.Dtos.DepartmentDto": {
|
"HospitalManagementSystem.Dtos.DepartmentDto": {
|
||||||
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
"baseType": "Volo.Abp.Domain.Entities.Auditing.FullAuditedEntity<System.Guid>",
|
||||||
"isEnum": false,
|
"isEnum": false,
|
||||||
@ -3879,8 +4057,8 @@
|
|||||||
{
|
{
|
||||||
"name": "Gender",
|
"name": "Gender",
|
||||||
"jsonName": null,
|
"jsonName": null,
|
||||||
"type": "HospitalManagementSystem.Enums.GenderEnum?",
|
"type": "System.String",
|
||||||
"typeSimple": "HospitalManagementSystem.Enums.GenderEnum?",
|
"typeSimple": "string",
|
||||||
"isRequired": false,
|
"isRequired": false,
|
||||||
"minLength": null,
|
"minLength": null,
|
||||||
"maxLength": null,
|
"maxLength": null,
|
||||||
@ -3974,57 +4152,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"HospitalManagementSystem.Enums.GenderEnum": {
|
|
||||||
"baseType": "System.Enum",
|
|
||||||
"isEnum": true,
|
|
||||||
"enumNames": [
|
|
||||||
"Male",
|
|
||||||
"Female",
|
|
||||||
"Others"
|
|
||||||
],
|
|
||||||
"enumValues": [
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2
|
|
||||||
],
|
|
||||||
"genericArguments": null,
|
|
||||||
"properties": null
|
|
||||||
},
|
|
||||||
"System.Nullable<T0>": {
|
|
||||||
"baseType": "System.ValueType",
|
|
||||||
"isEnum": false,
|
|
||||||
"enumNames": null,
|
|
||||||
"enumValues": null,
|
|
||||||
"genericArguments": [
|
|
||||||
"T"
|
|
||||||
],
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "HasValue",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "System.Boolean",
|
|
||||||
"typeSimple": "boolean",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Value",
|
|
||||||
"jsonName": null,
|
|
||||||
"type": "T",
|
|
||||||
"typeSimple": "T",
|
|
||||||
"isRequired": false,
|
|
||||||
"minLength": null,
|
|
||||||
"maxLength": null,
|
|
||||||
"minimum": null,
|
|
||||||
"maximum": null,
|
|
||||||
"regex": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Volo.Abp.Account.ChangePasswordInput": {
|
"Volo.Abp.Account.ChangePasswordInput": {
|
||||||
"baseType": null,
|
"baseType": null,
|
||||||
"isEnum": false,
|
"isEnum": false,
|
||||||
|
@ -2,6 +2,5 @@ import * as Appointments from './appointments';
|
|||||||
import * as Departments from './departments';
|
import * as Departments from './departments';
|
||||||
import * as Doctors from './doctors';
|
import * as Doctors from './doctors';
|
||||||
import * as Dtos from './dtos';
|
import * as Dtos from './dtos';
|
||||||
import * as Enums from './enums';
|
|
||||||
import * as Volo from './volo';
|
import * as Volo from './volo';
|
||||||
export { Appointments, Departments, Doctors, Dtos, Enums, Volo };
|
export { Appointments, Departments, Doctors, Dtos, Volo };
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
export interface Entity {
|
export interface Entity<TKey> {
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user