# Patient Registry ## Patient model API Define Gazelle patient model to be used by the platform applications as well as the different api to implement to define a patient service. ### APIs The current supported APIs are : - Patient feed service : ```java String feedPatient(Patient patient) throws PatientFeedException; ``` - Patient retrieve service ```java Patient retrievePatient(String uuid) throws PatientRetrieveException ; ``` - Patient search service ```java List search(SearchCriteria searchCriteria) throws SearchException; ``` - Domain service ```java boolean exist(String domainIdentifier); void createDomain(String domainIdentifier, String domainName); ``` ### Dependency To use the model, add the dependency to the library in the `pom.xml` of the client application. ```xml net.ihe.gazelle patient-registry-model-api ... ``` ## Patient service The patient service implements the different APIs defined in the `Patient model API` with a database. ### Service Usage The service can either be deployed in a container or as a java component and instantiated with constructors or injection. The different services accessible through a `GITB processing service` (SOAP) are : - patient feed - patient search ### Dependency To use the service, add the dependency to the library in the `pom.xml` of the client application. ```xml net.ihe.gazelle patient-registry-service ... ``` ## Patient search client The patient search client is a `GITB Processing Service Client` which will point to a `GITB Processing Service`. It will be used to search Patients depending on specific characteristics ### Client API - The client can point to a distant service ```java /** * Default constructor for the class. The Client will create the GITB Processing Service client based on the URL. * @param processingServiceURL : URL of the remote Processing Service. */ public PatientSearchClient(URL processingServiceURL) ``` - The client can point to an instantiated Patient Search Service ```java /** * Constructor used for test purposes. * @param processingService : processing service to be used by the PatientSearchClient. */ public PatientSearchClient(ProcessingService processingService) ``` ### Dependency To use the client, add the dependency to the library in the `pom.xml` of the client application. ```xml net.ihe.gazelle app.patient-registry-search-client ... ``` ## Patient feed client The patient search client is a `GITB Processing Service Client` which will point to a `GITB Processing Service`. It will be used to order the creation of a patient. ### Client API - The client can point to a distant service ```java /** * Default constructor for the class. The Client will create the GITB Processing Service client based on the URL. * @param processingServiceURL : URL of the remote Processing Service. */ public PatientFeedClient(URL processingServiceURL) ``` - The client can point to an instantiated Patient Feed Service ```java /** * Constructor used for test purposes. * @param processingService : processing service to be used by the PatientFeedClient. */ public PatientFeedClient(ProcessingService processingService) ``` ### Dependency To use the client, add the dependency to the library in the `pom.xml` of the client application. ```xml net.ihe.gazelle app.patient-registry-feed-client ... ```