public record AddressDTO(@NotBlank(message="street cannot be blank") String street, @NotBlank(message="neighborhood cannot be blank") String neighborhood, @NotBlank(message="zipCode cannot be blank") @Pattern(regexp="\\d{8}",message="invalid format for zipCode") String zipCode, @NotBlank(message="city cannot be blank") String city, @NotBlank(message="state cannot be blank") String state, String additionalDetails, String houseNumber)
+extends Record
+
Data transfer object used to transfer data that will be saved in a Address entity
+
+
Version:
+
1.0
+
Author:
+
Mirna Gama
+
+
+
+
+
+
+
+
Constructor Summary
+
Constructors
+
+
Constructor
+
Description
+
AddressDTO(@NotBlank(message="street cannot be blank") String street,
+ @NotBlank(message="neighborhood cannot be blank") String neighborhood,
+ @NotBlank(message="zipCode cannot be blank") @Pattern(regexp="\\d{8}",message="invalid format for zipCode") String zipCode,
+ @NotBlank(message="city cannot be blank") String city,
+ @NotBlank(message="state cannot be blank") String state,
+ String additionalDetails,
+ String houseNumber)
publicAddressDTO(@NotBlank(message="street cannot be blank")
+ @NotBlank(message="street cannot be blank") String street,
+ @NotBlank(message="neighborhood cannot be blank")
+ @NotBlank(message="neighborhood cannot be blank") String neighborhood,
+ @NotBlank(message="zipCode cannot be blank") @Pattern(regexp="\\d{8}",message="invalid format for zipCode")
+ @NotBlank(message="zipCode cannot be blank") @Pattern(regexp="\\d{8}",message="invalid format for zipCode") String zipCode,
+ @NotBlank(message="city cannot be blank")
+ @NotBlank(message="city cannot be blank") String city,
+ @NotBlank(message="state cannot be blank")
+ @NotBlank(message="state cannot be blank") String state,
+ String additionalDetails,
+ String houseNumber)
+
Creates an instance of a AddressDTO record class.
+
+
Parameters:
+
street - the value for the street record component
+
neighborhood - the value for the neighborhood record component
+
zipCode - the value for the zipCode record component
+
city - the value for the city record component
+
state - the value for the state record component
+
additionalDetails - the value for the additionalDetails record component
+
houseNumber - the value for the houseNumber record component
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
true if this object is the same as the o argument; false otherwise.
+
+
+
+
+
+
street
+
@NotBlank(message="street cannot be blank")
+public@NotBlank(message="street cannot be blank") Stringstreet()
+
Returns the value of the street record component.
+
+
Returns:
+
the value of the street record component
+
+
+
+
+
+
neighborhood
+
@NotBlank(message="neighborhood cannot be blank")
+public@NotBlank(message="neighborhood cannot be blank") Stringneighborhood()
+
Returns the value of the neighborhood record component.
+
+
Returns:
+
the value of the neighborhood record component
+
+
+
+
+
+
zipCode
+
@NotBlank(message="zipCode cannot be blank")
+@Pattern(regexp="\\d{8}",
+ message="invalid format for zipCode")
+public@NotBlank(message="zipCode cannot be blank") @Pattern(regexp="\\d{8}",message="invalid format for zipCode") StringzipCode()
+
Returns the value of the zipCode record component.
+
+
Returns:
+
the value of the zipCode record component
+
+
+
+
+
+
city
+
@NotBlank(message="city cannot be blank")
+public@NotBlank(message="city cannot be blank") Stringcity()
+
Returns the value of the city record component.
+
+
Returns:
+
the value of the city record component
+
+
+
+
+
+
state
+
@NotBlank(message="state cannot be blank")
+public@NotBlank(message="state cannot be blank") Stringstate()
public record DoctorDTO(@NotBlank(message="name cannot be blank") String name, @NotBlank(message="email cannot be blank") @Email(message="invalid format for email") String email, @NotBlank(message="crm cannot be blank") @Pattern(regexp="\\d{4,6}",message="invalid format for crm") String crm, @NotBlank(message="telephone cannot be blank") String telephone, @NotNull(message="speciality cannot be null") @Valid Specialty specialty, @NotNull(message="address cannot be null") @Valid AddressDTO address)
+extends Record
+
Data transfer object used to transfer data that will be saved in a Doctor entity
+
+
Version:
+
1.0
+
Author:
+
Mirna Gama
+
+
+
+
+
+
+
+
Constructor Summary
+
Constructors
+
+
Constructor
+
Description
+
DoctorDTO(@NotBlank(message="name cannot be blank") String name,
+ @NotBlank(message="email cannot be blank") @Email(message="invalid format for email") String email,
+ @NotBlank(message="crm cannot be blank") @Pattern(regexp="\\d{4,6}",message="invalid format for crm") String crm,
+ @NotBlank(message="telephone cannot be blank") String telephone,
+ @NotNull(message="speciality cannot be null") @Valid Specialty specialty,
+ @NotNull(message="address cannot be null") @Valid AddressDTO address)
+
+
Creates an instance of a DoctorDTO record class.
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
Modifier and Type
+
Method
+
Description
+
@NotNull(message="address cannot be null") @Valid AddressDTO
publicDoctorDTO(@NotBlank(message="name cannot be blank")
+ @NotBlank(message="name cannot be blank") String name,
+ @NotBlank(message="email cannot be blank") @Email(message="invalid format for email")
+ @NotBlank(message="email cannot be blank") @Email(message="invalid format for email") String email,
+ @NotBlank(message="crm cannot be blank") @Pattern(regexp="\\d{4,6}",message="invalid format for crm")
+ @NotBlank(message="crm cannot be blank") @Pattern(regexp="\\d{4,6}",message="invalid format for crm") String crm,
+ @NotBlank(message="telephone cannot be blank")
+ @NotBlank(message="telephone cannot be blank") String telephone,
+ @NotNull(message="speciality cannot be null") @Valid
+ @NotNull(message="speciality cannot be null") @Valid Specialty specialty,
+ @NotNull(message="address cannot be null") @Valid
+ @NotNull(message="address cannot be null") @Valid AddressDTO address)
+
Creates an instance of a DoctorDTO record class.
+
+
Parameters:
+
name - the value for the name record component
+
email - the value for the email record component
+
crm - the value for the crm record component
+
telephone - the value for the telephone record component
+
specialty - the value for the specialty record component
+
address - the value for the address record component
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
true if this object is the same as the o argument; false otherwise.
+
+
+
+
+
+
name
+
@NotBlank(message="name cannot be blank")
+public@NotBlank(message="name cannot be blank") Stringname()
+
Returns the value of the name record component.
+
+
Returns:
+
the value of the name record component
+
+
+
+
+
+
email
+
@NotBlank(message="email cannot be blank")
+@Email(message="invalid format for email")
+public@NotBlank(message="email cannot be blank") @Email(message="invalid format for email") Stringemail()
+
Returns the value of the email record component.
+
+
Returns:
+
the value of the email record component
+
+
+
+
+
+
crm
+
@NotBlank(message="crm cannot be blank")
+@Pattern(regexp="\\d{4,6}",
+ message="invalid format for crm")
+public@NotBlank(message="crm cannot be blank") @Pattern(regexp="\\d{4,6}",message="invalid format for crm") Stringcrm()
+
Returns the value of the crm record component.
+
+
Returns:
+
the value of the crm record component
+
+
+
+
+
+
telephone
+
@NotBlank(message="telephone cannot be blank")
+public@NotBlank(message="telephone cannot be blank") Stringtelephone()
+
Returns the value of the telephone record component.
+
+
Returns:
+
the value of the telephone record component
+
+
+
+
+
+
specialty
+
@NotNull(message="speciality cannot be null")
+@Valid
+public@NotNull(message="speciality cannot be null") @Valid Specialtyspecialty()
+
Returns the value of the specialty record component.
+
+
Returns:
+
the value of the specialty record component
+
+
+
+
+
+
address
+
@NotNull(message="address cannot be null")
+@Valid
+public@NotNull(message="address cannot be null") @Valid AddressDTOaddress()
+
Returns the value of the address record component.
+
+
Returns:
+
the value of the address record component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/com/mirna/hospitalmanagementapi/domain/dtos/class-use/AddressDTO.html b/doc/com/mirna/hospitalmanagementapi/domain/dtos/class-use/AddressDTO.html
new file mode 100644
index 0000000..c893672
--- /dev/null
+++ b/doc/com/mirna/hospitalmanagementapi/domain/dtos/class-use/AddressDTO.html
@@ -0,0 +1,119 @@
+
+
+
+
+Uses of Record Class com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Uses of Record Class com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces
+
+
Search
+
You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camelCase" abbreviations. For example:
+
+
j.l.obj will match "java.lang.Object"
+
InpStr will match "java.io.InputStream"
+
HM.cK will match "java.util.HashMap.containsKey(Object)"
+The following sections describe the different kinds of pages in this collection.
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+
Interfaces
+
Classes
+
Enum Classes
+
Exceptions
+
Errors
+
Annotation Interfaces
+
+
+
+
Class or Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+
Class Inheritance Diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class or Interface Declaration
+
Class or Interface Description
+
+
+
+
Nested Class Summary
+
Enum Constant Summary
+
Field Summary
+
Property Summary
+
Constructor Summary
+
Method Summary
+
Required Element Summary
+
Optional Element Summary
+
+
+
+
Enum Constant Details
+
Field Details
+
Property Details
+
Constructor Details
+
Method Details
+
Element Details
+
+
Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+
The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Other Files
+
Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+
Use
+
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
+
+
+
+
All Packages
+
The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+
All Classes and Interfaces
+
The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
Index
+
The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.
+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
+
diff --git a/doc/jquery-ui.overrides.css b/doc/jquery-ui.overrides.css
new file mode 100644
index 0000000..facf852
--- /dev/null
+++ b/doc/jquery-ui.overrides.css
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active,
+a.ui-button:active,
+.ui-button:active,
+.ui-button.ui-state-active:hover {
+ /* Overrides the color of selection used in jQuery UI */
+ background: #F8981D;
+ border: 1px solid #F8981D;
+}
diff --git a/doc/legal/ADDITIONAL_LICENSE_INFO b/doc/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 0000000..76b7b2f
--- /dev/null
+++ b/doc/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+../java.base/ADDITIONAL_LICENSE_INFO
\ No newline at end of file
diff --git a/doc/legal/ASSEMBLY_EXCEPTION b/doc/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 0000000..bd8da86
--- /dev/null
+++ b/doc/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+../java.base/ASSEMBLY_EXCEPTION
\ No newline at end of file
diff --git a/doc/legal/LICENSE b/doc/legal/LICENSE
new file mode 100644
index 0000000..902705b
--- /dev/null
+++ b/doc/legal/LICENSE
@@ -0,0 +1 @@
+../java.base/LICENSE
\ No newline at end of file
diff --git a/doc/legal/jquery.md b/doc/legal/jquery.md
new file mode 100644
index 0000000..f7b72e3
--- /dev/null
+++ b/doc/legal/jquery.md
@@ -0,0 +1,72 @@
+## jQuery v3.6.0
+
+### jQuery License
+```
+jQuery v 3.6.0
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************
+
+The jQuery JavaScript Library v3.6.0 also includes Sizzle.js
+
+Sizzle.js includes the following license:
+
+Copyright JS Foundation and other contributors, https://js.foundation/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/sizzle
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+*********************
+
+```
diff --git a/doc/legal/jqueryUI.md b/doc/legal/jqueryUI.md
new file mode 100644
index 0000000..8031bdb
--- /dev/null
+++ b/doc/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.12.1
+
+### jQuery UI License
+```
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/doc/member-search-index.js b/doc/member-search-index.js
new file mode 100644
index 0000000..37cf993
--- /dev/null
+++ b/doc/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"com.mirna.hospitalmanagementapi.application.services","c":"DoctorServiceImpl","l":"addDoctor(DoctorDTO)","u":"addDoctor(com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO)"},{"p":"com.mirna.hospitalmanagementapi.domain.services","c":"DoctorService","l":"addDoctor(DoctorDTO)","u":"addDoctor(com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO)"},{"p":"com.mirna.hospitalmanagementapi.application.usecase.doctor","c":"AddDoctorUseCase","l":"AddDoctorUseCase()","u":"%3Cinit%3E()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"additionalDetails()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"address()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"Address()","u":"%3Cinit%3E()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"Address(AddressDTO)","u":"%3Cinit%3E(com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO)"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"AddressDTO(String, String, String, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.enums","c":"Specialty","l":"CARDIOLOGY"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"city()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"crm()"},{"p":"com.mirna.hospitalmanagementapi.domain.enums","c":"Specialty","l":"DERMATOLOGY"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"Doctor(DoctorDTO)","u":"%3Cinit%3E(com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO)"},{"p":"com.mirna.hospitalmanagementapi.application.controllers","c":"DoctorController","l":"DoctorController()","u":"%3Cinit%3E()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"DoctorDTO(String, String, String, String, Specialty, AddressDTO)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.mirna.hospitalmanagementapi.domain.enums.Specialty,com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO)"},{"p":"com.mirna.hospitalmanagementapi.application.services","c":"DoctorServiceImpl","l":"DoctorServiceImpl()","u":"%3Cinit%3E()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"email()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.mirna.hospitalmanagementapi.application.usecase.doctor","c":"AddDoctorUseCase","l":"execute(Doctor)","u":"execute(com.mirna.hospitalmanagementapi.domain.entities.Doctor)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getAdditionalDetails()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getAddress()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getCity()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getCrm()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getEmail()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getHouseNumber()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getId()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getName()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getNeighborhood()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getSpecialty()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getState()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getStreet()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"getTelephone()"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"getZipCode()"},{"p":"com.mirna.hospitalmanagementapi.domain.enums","c":"Specialty","l":"GYNECOLOGY"},{"p":"com.mirna.hospitalmanagementapi.infra.handlers.validation","c":"ValidationErrorHandler","l":"handle(MethodArgumentNotValidException)","u":"handle(org.springframework.web.bind.MethodArgumentNotValidException)"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"hashCode()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"hashCode()"},{"p":"com.mirna.hospitalmanagementapi","c":"HospitalManagementApiApplication","l":"HospitalManagementApiApplication()","u":"%3Cinit%3E()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"houseNumber()"},{"p":"com.mirna.hospitalmanagementapi","c":"HospitalManagementApiApplication","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"name()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"neighborhood()"},{"p":"com.mirna.hospitalmanagementapi.domain.enums","c":"Specialty","l":"ORTHOPEDICS"},{"p":"com.mirna.hospitalmanagementapi.application.controllers","c":"DoctorController","l":"postDoctor(DoctorDTO)","u":"postDoctor(com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setAdditionalDetails(String)","u":"setAdditionalDetails(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setAddress(Address)","u":"setAddress(com.mirna.hospitalmanagementapi.domain.entities.Address)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setCity(String)","u":"setCity(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setCrm(String)","u":"setCrm(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setEmail(String)","u":"setEmail(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setHouseNumber(String)","u":"setHouseNumber(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setId(Long)","u":"setId(java.lang.Long)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setName(String)","u":"setName(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setNeighborhood(String)","u":"setNeighborhood(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setSpecialty(Specialty)","u":"setSpecialty(com.mirna.hospitalmanagementapi.domain.enums.Specialty)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setState(String)","u":"setState(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setStreet(String)","u":"setStreet(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Doctor","l":"setTelephone(String)","u":"setTelephone(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.entities","c":"Address","l":"setZipCode(String)","u":"setZipCode(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"specialty()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"state()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"street()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"telephone()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"toString()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"DoctorDTO","l":"toString()"},{"p":"com.mirna.hospitalmanagementapi.infra.handlers.validation","c":"ValidationErrorHandler","l":"ValidationErrorHandler()","u":"%3Cinit%3E()"},{"p":"com.mirna.hospitalmanagementapi.domain.enums","c":"Specialty","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.mirna.hospitalmanagementapi.domain.enums","c":"Specialty","l":"values()"},{"p":"com.mirna.hospitalmanagementapi.domain.dtos","c":"AddressDTO","l":"zipCode()"}];updateSearchResults();
\ No newline at end of file
diff --git a/doc/module-search-index.js b/doc/module-search-index.js
new file mode 100644
index 0000000..0d59754
--- /dev/null
+++ b/doc/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/doc/overview-summary.html b/doc/overview-summary.html
new file mode 100644
index 0000000..2fe0002
--- /dev/null
+++ b/doc/overview-summary.html
@@ -0,0 +1,26 @@
+
+
+
+
+Generated Documentation (Untitled)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete});
\ No newline at end of file
diff --git a/doc/script.js b/doc/script.js
new file mode 100644
index 0000000..864989c
--- /dev/null
+++ b/doc/script.js
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+ createElem(doc, tag, 'search.js');
+
+ createElem(doc, tag, 'module-search-index.js');
+ createElem(doc, tag, 'package-search-index.js');
+ createElem(doc, tag, 'type-search-index.js');
+ createElem(doc, tag, 'member-search-index.js');
+ createElem(doc, tag, 'tag-search-index.js');
+}
+
+function createElem(doc, tag, path) {
+ var script = doc.createElement(tag);
+ var scriptElement = doc.getElementsByTagName(tag)[0];
+ script.src = pathtoroot + path;
+ scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(tableId, selected, columns) {
+ if (tableId !== selected) {
+ document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
+ .forEach(function(elem) {
+ elem.style.display = 'none';
+ });
+ }
+ document.querySelectorAll('div.' + selected)
+ .forEach(function(elem, index) {
+ elem.style.display = '';
+ var isEvenRow = index % (columns * 2) < columns;
+ elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
+ elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
+ });
+ updateTabs(tableId, selected);
+}
+
+function updateTabs(tableId, selected) {
+ document.querySelector('div#' + tableId +' .summary-table')
+ .setAttribute('aria-labelledby', selected);
+ document.querySelectorAll('button[id^="' + tableId + '"]')
+ .forEach(function(tab, index) {
+ if (selected === tab.id || (tableId === selected && index === 0)) {
+ tab.className = activeTableTab;
+ tab.setAttribute('aria-selected', true);
+ tab.setAttribute('tabindex',0);
+ } else {
+ tab.className = tableTab;
+ tab.setAttribute('aria-selected', false);
+ tab.setAttribute('tabindex',-1);
+ }
+ });
+}
+
+function switchTab(e) {
+ var selected = document.querySelector('[aria-selected=true]');
+ if (selected) {
+ if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
+ // left or up arrow key pressed: move focus to previous tab
+ selected.previousSibling.click();
+ selected.previousSibling.focus();
+ e.preventDefault();
+ } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
+ // right or down arrow key pressed: move focus to next tab
+ selected.nextSibling.click();
+ selected.nextSibling.focus();
+ e.preventDefault();
+ }
+ }
+}
+
+var updateSearchResults = function() {};
+
+function indexFilesLoaded() {
+ return moduleSearchIndex
+ && packageSearchIndex
+ && typeSearchIndex
+ && memberSearchIndex
+ && tagSearchIndex;
+}
+
+// Workaround for scroll position not being included in browser history (8249133)
+document.addEventListener("DOMContentLoaded", function(e) {
+ var contentDiv = document.querySelector("div.flex-content");
+ window.addEventListener("popstate", function(e) {
+ if (e.state !== null) {
+ contentDiv.scrollTop = e.state;
+ }
+ });
+ window.addEventListener("hashchange", function(e) {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ });
+ contentDiv.addEventListener("scroll", function(e) {
+ var timeoutID;
+ if (!timeoutID) {
+ timeoutID = setTimeout(function() {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ timeoutID = null;
+ }, 100);
+ }
+ });
+ if (!location.hash) {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ }
+});
diff --git a/doc/search.js b/doc/search.js
new file mode 100644
index 0000000..db3b2f4
--- /dev/null
+++ b/doc/search.js
@@ -0,0 +1,354 @@
+/*
+ * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var noResult = {l: "No results found"};
+var loading = {l: "Loading search index..."};
+var catModules = "Modules";
+var catPackages = "Packages";
+var catTypes = "Classes and Interfaces";
+var catMembers = "Members";
+var catSearchTags = "Search Tags";
+var highlight = "$&";
+var searchPattern = "";
+var fallbackPattern = "";
+var RANKING_THRESHOLD = 2;
+var NO_MATCH = 0xffff;
+var MIN_RESULTS = 3;
+var MAX_RESULTS = 500;
+var UNNAMED = "";
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(item, matcher, fallbackMatcher) {
+ var escapedItem = escapeHtml(item);
+ var highlighted = escapedItem.replace(matcher, highlight);
+ if (highlighted === escapedItem) {
+ highlighted = escapedItem.replace(fallbackMatcher, highlight)
+ }
+ return highlighted;
+}
+function getURLPrefix(ui) {
+ var urlPrefix="";
+ var slash = "/";
+ if (ui.item.category === catModules) {
+ return ui.item.l + slash;
+ } else if (ui.item.category === catPackages && ui.item.m) {
+ return ui.item.m + slash;
+ } else if (ui.item.category === catTypes || ui.item.category === catMembers) {
+ if (ui.item.m) {
+ urlPrefix = ui.item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, item) {
+ if (item.m && ui.item.p === item.l) {
+ urlPrefix = item.m + slash;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function createSearchPattern(term) {
+ var pattern = "";
+ var isWordToken = false;
+ term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) {
+ if (index > 0) {
+ // whitespace between identifiers is significant
+ pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*";
+ }
+ var tokens = w.split(/(?=[A-Z,.()<>[\/])/);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ if (s === "") {
+ continue;
+ }
+ pattern += $.ui.autocomplete.escapeRegex(s);
+ isWordToken = /\w$/.test(s);
+ if (isWordToken) {
+ pattern += "([a-z0-9_$<>\\[\\]]*?)";
+ }
+ }
+ });
+ return pattern;
+}
+function createMatcher(pattern, flags) {
+ var isCamelCase = /[A-Z]/.test(pattern);
+ return new RegExp(pattern, flags + (isCamelCase ? "" : "i"));
+}
+var watermark = 'Search';
+$(function() {
+ var search = $("#search-input");
+ var reset = $("#reset-button");
+ search.val('');
+ search.prop("disabled", false);
+ reset.prop("disabled", false);
+ search.val(watermark).addClass('watermark');
+ search.blur(function() {
+ if ($(this).val().length === 0) {
+ $(this).val(watermark).addClass('watermark');
+ }
+ });
+ search.on('click keydown paste', function() {
+ if ($(this).val() === watermark) {
+ $(this).val('').removeClass('watermark');
+ }
+ });
+ reset.click(function() {
+ search.val('').focus();
+ });
+ search.focus()[0].setSelectionRange(0, 0);
+});
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
+ },
+ _renderMenu: function(ul, items) {
+ var rMenu = this;
+ var currentCategory = "";
+ rMenu.menu.bindings = $();
+ $.each(items, function(index, item) {
+ var li;
+ if (item.category && item.category !== currentCategory) {
+ ul.append("