@blackcode_sa/metaestetics-api 1.5.10 → 1.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backoffice/index.d.mts +197 -71
- package/dist/backoffice/index.d.ts +197 -71
- package/dist/backoffice/index.js +195 -175
- package/dist/backoffice/index.mjs +195 -175
- package/dist/index.d.mts +133 -70
- package/dist/index.d.ts +133 -70
- package/dist/index.js +238 -180
- package/dist/index.mjs +238 -180
- package/package.json +1 -1
- package/src/backoffice/services/technology.service.ts +237 -240
- package/src/backoffice/types/technology.types.ts +11 -2
- package/src/services/procedure/procedure.service.ts +62 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Auth } from 'firebase/auth';
|
|
3
|
-
import { Firestore, QueryDocumentSnapshot } from 'firebase/firestore';
|
|
3
|
+
import { Firestore, Timestamp, QueryDocumentSnapshot } from 'firebase/firestore';
|
|
4
4
|
import { FirebaseApp } from 'firebase/app';
|
|
5
5
|
import { FirebaseStorage } from 'firebase/storage';
|
|
6
6
|
|
|
@@ -500,12 +500,14 @@ interface TechnologyRequirements {
|
|
|
500
500
|
}
|
|
501
501
|
/**
|
|
502
502
|
* Technology used in medical procedures
|
|
503
|
-
* Technologies are
|
|
504
|
-
*
|
|
503
|
+
* Technologies are now a top-level collection that reference their full path in the hierarchy
|
|
504
|
+
* through family, category, and subcategory IDs
|
|
505
505
|
*
|
|
506
506
|
* @property id - Unique identifier of the technology
|
|
507
507
|
* @property name - Name of the technology
|
|
508
508
|
* @property description - Detailed description of the technology and its application
|
|
509
|
+
* @property family - The procedure family this technology belongs to (aesthetics/surgery)
|
|
510
|
+
* @property categoryId - ID of the category this technology belongs to
|
|
509
511
|
* @property subcategoryId - ID of the subcategory this technology belongs to
|
|
510
512
|
* @property technicalDetails - Technical specifications and details
|
|
511
513
|
* @property requirements - List of pre and post procedure requirements
|
|
@@ -525,6 +527,10 @@ interface Technology {
|
|
|
525
527
|
name: string;
|
|
526
528
|
/** Detaljan opis tehnologije */
|
|
527
529
|
description: string;
|
|
530
|
+
/** Familija procedura kojoj tehnologija pripada */
|
|
531
|
+
family: ProcedureFamily;
|
|
532
|
+
/** ID kategorije kojoj tehnologija pripada */
|
|
533
|
+
categoryId: string;
|
|
528
534
|
/** ID potkategorije kojoj tehnologija pripada */
|
|
529
535
|
subcategoryId: string;
|
|
530
536
|
/** Tehnički detalji i specifikacije */
|
|
@@ -4528,22 +4534,115 @@ declare class SubcategoryService extends BaseService {
|
|
|
4528
4534
|
getById(categoryId: string, subcategoryId: string): Promise<Subcategory | null>;
|
|
4529
4535
|
}
|
|
4530
4536
|
|
|
4537
|
+
/**
|
|
4538
|
+
* Osnovne informacije o zdravstvenom radniku
|
|
4539
|
+
*/
|
|
4540
|
+
interface PractitionerBasicInfo {
|
|
4541
|
+
firstName: string;
|
|
4542
|
+
lastName: string;
|
|
4543
|
+
title: string;
|
|
4544
|
+
email: string;
|
|
4545
|
+
phoneNumber: string;
|
|
4546
|
+
dateOfBirth: Timestamp;
|
|
4547
|
+
gender: "male" | "female" | "other";
|
|
4548
|
+
profileImageUrl?: string;
|
|
4549
|
+
bio?: string;
|
|
4550
|
+
languages: string[];
|
|
4551
|
+
}
|
|
4552
|
+
/**
|
|
4553
|
+
* Sertifikacija zdravstvenog radnika
|
|
4554
|
+
*/
|
|
4555
|
+
interface PractitionerCertification {
|
|
4556
|
+
level: CertificationLevel;
|
|
4557
|
+
specialties: CertificationSpecialty[];
|
|
4558
|
+
licenseNumber: string;
|
|
4559
|
+
issuingAuthority: string;
|
|
4560
|
+
issueDate: Timestamp;
|
|
4561
|
+
expiryDate?: Timestamp;
|
|
4562
|
+
verificationStatus: "pending" | "verified" | "rejected";
|
|
4563
|
+
}
|
|
4564
|
+
/**
|
|
4565
|
+
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
4566
|
+
*/
|
|
4567
|
+
interface PractitionerClinicWorkingHours {
|
|
4568
|
+
clinicId: string;
|
|
4569
|
+
workingHours: {
|
|
4570
|
+
monday: {
|
|
4571
|
+
start: string;
|
|
4572
|
+
end: string;
|
|
4573
|
+
} | null;
|
|
4574
|
+
tuesday: {
|
|
4575
|
+
start: string;
|
|
4576
|
+
end: string;
|
|
4577
|
+
} | null;
|
|
4578
|
+
wednesday: {
|
|
4579
|
+
start: string;
|
|
4580
|
+
end: string;
|
|
4581
|
+
} | null;
|
|
4582
|
+
thursday: {
|
|
4583
|
+
start: string;
|
|
4584
|
+
end: string;
|
|
4585
|
+
} | null;
|
|
4586
|
+
friday: {
|
|
4587
|
+
start: string;
|
|
4588
|
+
end: string;
|
|
4589
|
+
} | null;
|
|
4590
|
+
saturday: {
|
|
4591
|
+
start: string;
|
|
4592
|
+
end: string;
|
|
4593
|
+
} | null;
|
|
4594
|
+
sunday: {
|
|
4595
|
+
start: string;
|
|
4596
|
+
end: string;
|
|
4597
|
+
} | null;
|
|
4598
|
+
};
|
|
4599
|
+
isActive: boolean;
|
|
4600
|
+
createdAt: Timestamp;
|
|
4601
|
+
updatedAt: Timestamp;
|
|
4602
|
+
}
|
|
4603
|
+
/**
|
|
4604
|
+
* Status of practitioner profile
|
|
4605
|
+
*/
|
|
4606
|
+
declare enum PractitionerStatus {
|
|
4607
|
+
DRAFT = "draft",
|
|
4608
|
+
ACTIVE = "active"
|
|
4609
|
+
}
|
|
4610
|
+
/**
|
|
4611
|
+
* Interfejs za zdravstvenog radnika
|
|
4612
|
+
*/
|
|
4613
|
+
interface Practitioner {
|
|
4614
|
+
id: string;
|
|
4615
|
+
userRef: string;
|
|
4616
|
+
basicInfo: PractitionerBasicInfo;
|
|
4617
|
+
certification: PractitionerCertification;
|
|
4618
|
+
clinics: string[];
|
|
4619
|
+
clinicWorkingHours: PractitionerClinicWorkingHours[];
|
|
4620
|
+
isActive: boolean;
|
|
4621
|
+
isVerified: boolean;
|
|
4622
|
+
status: PractitionerStatus;
|
|
4623
|
+
createdAt: Timestamp;
|
|
4624
|
+
updatedAt: Timestamp;
|
|
4625
|
+
}
|
|
4626
|
+
|
|
4531
4627
|
/**
|
|
4532
4628
|
* Servis za upravljanje tehnologijama i njihovim zahtevima.
|
|
4533
|
-
* Tehnologije su
|
|
4534
|
-
*
|
|
4629
|
+
* Tehnologije su sada top-level kolekcija koja referencira svoju putanju u hijerarhiji
|
|
4630
|
+
* kroz family, categoryId i subcategoryId.
|
|
4535
4631
|
*
|
|
4536
4632
|
* @example
|
|
4537
4633
|
* const technologyService = new TechnologyService();
|
|
4538
4634
|
*
|
|
4539
4635
|
* // Kreiranje nove tehnologije
|
|
4540
|
-
* const technology = await technologyService.create(
|
|
4636
|
+
* const technology = await technologyService.create({
|
|
4541
4637
|
* name: "Botulinum Toxin",
|
|
4542
|
-
* description: "Neurotoxin injections for wrinkle reduction"
|
|
4638
|
+
* description: "Neurotoxin injections for wrinkle reduction",
|
|
4639
|
+
* family: ProcedureFamily.AESTHETICS,
|
|
4640
|
+
* categoryId: "category123",
|
|
4641
|
+
* subcategoryId: "subcategory456"
|
|
4543
4642
|
* });
|
|
4544
4643
|
*
|
|
4545
4644
|
* // Dodavanje zahteva
|
|
4546
|
-
* await technologyService.addRequirement(
|
|
4645
|
+
* await technologyService.addRequirement(technology.id, {
|
|
4547
4646
|
* type: "pre",
|
|
4548
4647
|
* name: "Stay Hydrated",
|
|
4549
4648
|
* description: "Drink plenty of water"
|
|
@@ -4551,19 +4650,15 @@ declare class SubcategoryService extends BaseService {
|
|
|
4551
4650
|
*/
|
|
4552
4651
|
declare class TechnologyService extends BaseService {
|
|
4553
4652
|
/**
|
|
4554
|
-
* Vraća referencu na Firestore kolekciju tehnologija
|
|
4555
|
-
* @param categoryId - ID kategorije
|
|
4556
|
-
* @param subcategoryId - ID podkategorije
|
|
4653
|
+
* Vraća referencu na Firestore kolekciju tehnologija
|
|
4557
4654
|
*/
|
|
4558
4655
|
private getTechnologiesRef;
|
|
4559
4656
|
/**
|
|
4560
|
-
* Kreira novu tehnologiju
|
|
4561
|
-
* @param categoryId - ID kategorije
|
|
4562
|
-
* @param subcategoryId - ID podkategorije
|
|
4657
|
+
* Kreira novu tehnologiju
|
|
4563
4658
|
* @param technology - Podaci za novu tehnologiju
|
|
4564
4659
|
* @returns Kreirana tehnologija sa generisanim ID-em
|
|
4565
4660
|
*/
|
|
4566
|
-
create(
|
|
4661
|
+
create(technology: Omit<Technology, "id" | "createdAt" | "updatedAt">): Promise<{
|
|
4567
4662
|
description: string;
|
|
4568
4663
|
isActive: boolean;
|
|
4569
4664
|
createdAt: Date;
|
|
@@ -4580,171 +4675,202 @@ declare class TechnologyService extends BaseService {
|
|
|
4580
4675
|
documentationTemplates?: DocumentTemplate[] | undefined;
|
|
4581
4676
|
benefits: TreatmentBenefit[];
|
|
4582
4677
|
certificationRequirement: CertificationRequirement;
|
|
4678
|
+
family: ProcedureFamily;
|
|
4679
|
+
categoryId: string;
|
|
4583
4680
|
id: string;
|
|
4584
4681
|
}>;
|
|
4585
4682
|
/**
|
|
4586
|
-
* Vraća sve aktivne tehnologije
|
|
4683
|
+
* Vraća sve aktivne tehnologije
|
|
4684
|
+
* @returns Lista aktivnih tehnologija
|
|
4685
|
+
*/
|
|
4686
|
+
getAll(): Promise<Technology[]>;
|
|
4687
|
+
/**
|
|
4688
|
+
* Vraća sve aktivne tehnologije za određenu familiju
|
|
4689
|
+
* @param family - Familija procedura
|
|
4690
|
+
* @returns Lista aktivnih tehnologija
|
|
4691
|
+
*/
|
|
4692
|
+
getAllByFamily(family: ProcedureFamily): Promise<Technology[]>;
|
|
4693
|
+
/**
|
|
4694
|
+
* Vraća sve aktivne tehnologije za određenu kategoriju
|
|
4587
4695
|
* @param categoryId - ID kategorije
|
|
4696
|
+
* @returns Lista aktivnih tehnologija
|
|
4697
|
+
*/
|
|
4698
|
+
getAllByCategoryId(categoryId: string): Promise<Technology[]>;
|
|
4699
|
+
/**
|
|
4700
|
+
* Vraća sve aktivne tehnologije za određenu podkategoriju
|
|
4588
4701
|
* @param subcategoryId - ID podkategorije
|
|
4589
4702
|
* @returns Lista aktivnih tehnologija
|
|
4590
4703
|
*/
|
|
4591
|
-
getAllBySubcategoryId(
|
|
4704
|
+
getAllBySubcategoryId(subcategoryId: string): Promise<Technology[]>;
|
|
4592
4705
|
/**
|
|
4593
4706
|
* Ažurira postojeću tehnologiju
|
|
4594
|
-
* @param categoryId - ID kategorije
|
|
4595
|
-
* @param subcategoryId - ID podkategorije
|
|
4596
4707
|
* @param technologyId - ID tehnologije
|
|
4597
4708
|
* @param technology - Novi podaci za tehnologiju
|
|
4598
4709
|
* @returns Ažurirana tehnologija
|
|
4599
4710
|
*/
|
|
4600
|
-
update(
|
|
4711
|
+
update(technologyId: string, technology: Partial<Omit<Technology, "id" | "createdAt" | "family" | "categoryId" | "subcategoryId">>): Promise<Technology | null>;
|
|
4601
4712
|
/**
|
|
4602
4713
|
* Soft delete tehnologije (postavlja isActive na false)
|
|
4603
|
-
* @param categoryId - ID kategorije
|
|
4604
|
-
* @param subcategoryId - ID podkategorije
|
|
4605
4714
|
* @param technologyId - ID tehnologije koja se briše
|
|
4606
4715
|
*/
|
|
4607
|
-
delete(
|
|
4716
|
+
delete(technologyId: string): Promise<void>;
|
|
4608
4717
|
/**
|
|
4609
4718
|
* Vraća tehnologiju po ID-u
|
|
4610
|
-
* @param categoryId - ID kategorije
|
|
4611
|
-
* @param subcategoryId - ID podkategorije
|
|
4612
4719
|
* @param technologyId - ID tražene tehnologije
|
|
4613
4720
|
* @returns Tehnologija ili null ako ne postoji
|
|
4614
4721
|
*/
|
|
4615
|
-
getById(
|
|
4722
|
+
getById(technologyId: string): Promise<Technology | null>;
|
|
4616
4723
|
/**
|
|
4617
4724
|
* Dodaje novi zahtev tehnologiji
|
|
4618
|
-
* @param categoryId - ID kategorije
|
|
4619
|
-
* @param subcategoryId - ID podkategorije
|
|
4620
4725
|
* @param technologyId - ID tehnologije
|
|
4621
4726
|
* @param requirement - Zahtev koji se dodaje
|
|
4622
4727
|
* @returns Ažurirana tehnologija sa novim zahtevom
|
|
4623
4728
|
*/
|
|
4624
|
-
addRequirement(
|
|
4729
|
+
addRequirement(technologyId: string, requirement: Requirement): Promise<Technology | null>;
|
|
4625
4730
|
/**
|
|
4626
4731
|
* Uklanja zahtev iz tehnologije
|
|
4627
|
-
* @param categoryId - ID kategorije
|
|
4628
|
-
* @param subcategoryId - ID podkategorije
|
|
4629
4732
|
* @param technologyId - ID tehnologije
|
|
4630
4733
|
* @param requirement - Zahtev koji se uklanja
|
|
4631
4734
|
* @returns Ažurirana tehnologija bez uklonjenog zahteva
|
|
4632
4735
|
*/
|
|
4633
|
-
removeRequirement(
|
|
4736
|
+
removeRequirement(technologyId: string, requirement: Requirement): Promise<Technology | null>;
|
|
4634
4737
|
/**
|
|
4635
4738
|
* Vraća sve zahteve za tehnologiju
|
|
4636
|
-
* @param categoryId - ID kategorije
|
|
4637
|
-
* @param subcategoryId - ID podkategorije
|
|
4638
4739
|
* @param technologyId - ID tehnologije
|
|
4639
4740
|
* @param type - Opcioni filter za tip zahteva (pre/post)
|
|
4640
4741
|
* @returns Lista zahteva
|
|
4641
4742
|
*/
|
|
4642
|
-
getRequirements(
|
|
4743
|
+
getRequirements(technologyId: string, type?: RequirementType): Promise<Requirement[]>;
|
|
4643
4744
|
/**
|
|
4644
4745
|
* Ažurira postojeći zahtev
|
|
4645
|
-
* @param categoryId - ID kategorije
|
|
4646
|
-
* @param subcategoryId - ID podkategorije
|
|
4647
4746
|
* @param technologyId - ID tehnologije
|
|
4648
4747
|
* @param oldRequirement - Stari zahtev koji se menja
|
|
4649
4748
|
* @param newRequirement - Novi zahtev koji zamenjuje stari
|
|
4650
4749
|
* @returns Ažurirana tehnologija
|
|
4651
4750
|
*/
|
|
4652
|
-
updateRequirement(
|
|
4751
|
+
updateRequirement(technologyId: string, oldRequirement: Requirement, newRequirement: Requirement): Promise<Technology | null>;
|
|
4653
4752
|
/**
|
|
4654
4753
|
* Dodaje blokirajući uslov tehnologiji
|
|
4655
|
-
* @param categoryId - ID kategorije
|
|
4656
|
-
* @param subcategoryId - ID podkategorije
|
|
4657
4754
|
* @param technologyId - ID tehnologije
|
|
4658
4755
|
* @param condition - Blokirajući uslov koji se dodaje
|
|
4659
4756
|
* @returns Ažurirana tehnologija
|
|
4660
4757
|
*/
|
|
4661
|
-
addBlockingCondition(
|
|
4758
|
+
addBlockingCondition(technologyId: string, condition: BlockingCondition): Promise<Technology | null>;
|
|
4662
4759
|
/**
|
|
4663
4760
|
* Uklanja blokirajući uslov iz tehnologije
|
|
4664
|
-
* @param categoryId - ID kategorije
|
|
4665
|
-
* @param subcategoryId - ID podkategorije
|
|
4666
4761
|
* @param technologyId - ID tehnologije
|
|
4667
4762
|
* @param condition - Blokirajući uslov koji se uklanja
|
|
4668
4763
|
* @returns Ažurirana tehnologija
|
|
4669
4764
|
*/
|
|
4670
|
-
removeBlockingCondition(
|
|
4765
|
+
removeBlockingCondition(technologyId: string, condition: BlockingCondition): Promise<Technology | null>;
|
|
4671
4766
|
/**
|
|
4672
4767
|
* Dodaje kontraindikaciju tehnologiji
|
|
4673
|
-
* @param categoryId - ID kategorije
|
|
4674
|
-
* @param subcategoryId - ID podkategorije
|
|
4675
4768
|
* @param technologyId - ID tehnologije
|
|
4676
4769
|
* @param contraindication - Kontraindikacija koja se dodaje
|
|
4677
4770
|
* @returns Ažurirana tehnologija
|
|
4678
4771
|
*/
|
|
4679
|
-
addContraindication(
|
|
4772
|
+
addContraindication(technologyId: string, contraindication: Contraindication): Promise<Technology | null>;
|
|
4680
4773
|
/**
|
|
4681
4774
|
* Uklanja kontraindikaciju iz tehnologije
|
|
4682
|
-
* @param categoryId - ID kategorije
|
|
4683
|
-
* @param subcategoryId - ID podkategorije
|
|
4684
4775
|
* @param technologyId - ID tehnologije
|
|
4685
4776
|
* @param contraindication - Kontraindikacija koja se uklanja
|
|
4686
4777
|
* @returns Ažurirana tehnologija
|
|
4687
4778
|
*/
|
|
4688
|
-
removeContraindication(
|
|
4779
|
+
removeContraindication(technologyId: string, contraindication: Contraindication): Promise<Technology | null>;
|
|
4689
4780
|
/**
|
|
4690
4781
|
* Dodaje benefit tehnologiji
|
|
4691
|
-
* @param categoryId - ID kategorije
|
|
4692
|
-
* @param subcategoryId - ID podkategorije
|
|
4693
4782
|
* @param technologyId - ID tehnologije
|
|
4694
4783
|
* @param benefit - Benefit koji se dodaje
|
|
4695
4784
|
* @returns Ažurirana tehnologija
|
|
4696
4785
|
*/
|
|
4697
|
-
addBenefit(
|
|
4786
|
+
addBenefit(technologyId: string, benefit: TreatmentBenefit): Promise<Technology | null>;
|
|
4698
4787
|
/**
|
|
4699
4788
|
* Uklanja benefit iz tehnologije
|
|
4700
|
-
* @param categoryId - ID kategorije
|
|
4701
|
-
* @param subcategoryId - ID podkategorije
|
|
4702
4789
|
* @param technologyId - ID tehnologije
|
|
4703
4790
|
* @param benefit - Benefit koji se uklanja
|
|
4704
4791
|
* @returns Ažurirana tehnologija
|
|
4705
4792
|
*/
|
|
4706
|
-
removeBenefit(
|
|
4793
|
+
removeBenefit(technologyId: string, benefit: TreatmentBenefit): Promise<Technology | null>;
|
|
4707
4794
|
/**
|
|
4708
4795
|
* Vraća sve blokirajuće uslove za tehnologiju
|
|
4709
|
-
* @param categoryId - ID kategorije
|
|
4710
|
-
* @param subcategoryId - ID podkategorije
|
|
4711
4796
|
* @param technologyId - ID tehnologije
|
|
4712
4797
|
* @returns Lista blokirajućih uslova
|
|
4713
4798
|
*/
|
|
4714
|
-
getBlockingConditions(
|
|
4799
|
+
getBlockingConditions(technologyId: string): Promise<BlockingCondition[]>;
|
|
4715
4800
|
/**
|
|
4716
4801
|
* Vraća sve kontraindikacije za tehnologiju
|
|
4717
|
-
* @param categoryId - ID kategorije
|
|
4718
|
-
* @param subcategoryId - ID podkategorije
|
|
4719
4802
|
* @param technologyId - ID tehnologije
|
|
4720
4803
|
* @returns Lista kontraindikacija
|
|
4721
4804
|
*/
|
|
4722
|
-
getContraindications(
|
|
4805
|
+
getContraindications(technologyId: string): Promise<Contraindication[]>;
|
|
4723
4806
|
/**
|
|
4724
4807
|
* Vraća sve benefite za tehnologiju
|
|
4725
|
-
* @param categoryId - ID kategorije
|
|
4726
|
-
* @param subcategoryId - ID podkategorije
|
|
4727
4808
|
* @param technologyId - ID tehnologije
|
|
4728
4809
|
* @returns Lista benefita
|
|
4729
4810
|
*/
|
|
4730
|
-
getBenefits(
|
|
4811
|
+
getBenefits(technologyId: string): Promise<TreatmentBenefit[]>;
|
|
4731
4812
|
/**
|
|
4732
4813
|
* Ažurira zahteve sertifikacije za tehnologiju
|
|
4733
|
-
* @param categoryId - ID kategorije
|
|
4734
|
-
* @param subcategoryId - ID podkategorije
|
|
4735
4814
|
* @param technologyId - ID tehnologije
|
|
4736
4815
|
* @param certificationRequirement - Novi zahtevi sertifikacije
|
|
4737
4816
|
* @returns Ažurirana tehnologija
|
|
4738
4817
|
*/
|
|
4739
|
-
updateCertificationRequirement(
|
|
4818
|
+
updateCertificationRequirement(technologyId: string, certificationRequirement: CertificationRequirement): Promise<Technology | null>;
|
|
4740
4819
|
/**
|
|
4741
4820
|
* Vraća zahteve sertifikacije za tehnologiju
|
|
4742
|
-
* @param categoryId - ID kategorije
|
|
4743
|
-
* @param subcategoryId - ID podkategorije
|
|
4744
4821
|
* @param technologyId - ID tehnologije
|
|
4745
4822
|
* @returns Zahtevi sertifikacije ili null ako tehnologija ne postoji
|
|
4746
4823
|
*/
|
|
4747
|
-
getCertificationRequirement(
|
|
4824
|
+
getCertificationRequirement(technologyId: string): Promise<CertificationRequirement | null>;
|
|
4825
|
+
/**
|
|
4826
|
+
* Proverava da li doktor ima odgovarajuću sertifikaciju za izvođenje tehnologije
|
|
4827
|
+
*
|
|
4828
|
+
* @param requiredCertification - Zahtevana sertifikacija za tehnologiju
|
|
4829
|
+
* @param practitionerCertification - Sertifikacija zdravstvenog radnika
|
|
4830
|
+
* @returns true ako zdravstveni radnik ima odgovarajuću sertifikaciju, false ako nema
|
|
4831
|
+
*
|
|
4832
|
+
* @example
|
|
4833
|
+
* const isValid = technologyService.validateCertification(
|
|
4834
|
+
* {
|
|
4835
|
+
* minimumLevel: CertificationLevel.DOCTOR,
|
|
4836
|
+
* requiredSpecialties: [CertificationSpecialty.INJECTABLES]
|
|
4837
|
+
* },
|
|
4838
|
+
* {
|
|
4839
|
+
* level: CertificationLevel.SPECIALIST,
|
|
4840
|
+
* specialties: [CertificationSpecialty.INJECTABLES, CertificationSpecialty.LASER]
|
|
4841
|
+
* }
|
|
4842
|
+
* );
|
|
4843
|
+
*/
|
|
4844
|
+
validateCertification(requiredCertification: CertificationRequirement, practitionerCertification: PractitionerCertification): boolean;
|
|
4845
|
+
/**
|
|
4846
|
+
* Vraća sve tehnologije koje je zdravstveni radnik sertifikovan da izvodi
|
|
4847
|
+
* zajedno sa listama dozvoljenih familija, kategorija i podkategorija
|
|
4848
|
+
*
|
|
4849
|
+
* @param practitioner - Profil zdravstvenog radnika
|
|
4850
|
+
* @returns Objekat koji sadrži:
|
|
4851
|
+
* - technologies: Lista tehnologija koje zdravstveni radnik može da izvodi
|
|
4852
|
+
* - families: Lista familija procedura koje zdravstveni radnik može da izvodi
|
|
4853
|
+
* - categories: Lista ID-eva kategorija koje zdravstveni radnik može da izvodi
|
|
4854
|
+
* - subcategories: Lista ID-eva podkategorija koje zdravstveni radnik može da izvodi
|
|
4855
|
+
*
|
|
4856
|
+
* @example
|
|
4857
|
+
* const practitioner = {
|
|
4858
|
+
* certification: {
|
|
4859
|
+
* level: CertificationLevel.DOCTOR,
|
|
4860
|
+
* specialties: [CertificationSpecialty.INJECTABLES]
|
|
4861
|
+
* }
|
|
4862
|
+
* };
|
|
4863
|
+
* const allowedTechnologies = await technologyService.getAllowedTechnologies(practitioner);
|
|
4864
|
+
* console.log(allowedTechnologies.families); // [ProcedureFamily.AESTHETICS]
|
|
4865
|
+
* console.log(allowedTechnologies.categories); // ["category1", "category2"]
|
|
4866
|
+
* console.log(allowedTechnologies.subcategories); // ["subcategory1", "subcategory2"]
|
|
4867
|
+
*/
|
|
4868
|
+
getAllowedTechnologies(practitioner: Practitioner): Promise<{
|
|
4869
|
+
technologies: Technology[];
|
|
4870
|
+
families: ProcedureFamily[];
|
|
4871
|
+
categories: string[];
|
|
4872
|
+
subcategories: string[];
|
|
4873
|
+
}>;
|
|
4748
4874
|
}
|
|
4749
4875
|
|
|
4750
4876
|
/**
|