Skip to content

Commit

Permalink
Merge pull request #24 from opensrp/practitioner-detail-end-point
Browse files Browse the repository at this point in the history
Expose Practitioner Details Endpoint
  • Loading branch information
rehammuzzamil authored Jan 25, 2022
2 parents 0754860 + 15dc9cc commit cb73fe2
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 6 deletions.
11 changes: 8 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

<artifactId>hapi-fhir-jpaserver-starter</artifactId>
<groupId>org.smartregister</groupId>
<version>5.5.2-SNAPSHOT</version>
<version>5.5.3-SNAPSHOT</version>

<properties>
<java.version>8</java.version>
Expand Down Expand Up @@ -133,16 +133,21 @@
<dependency>
<groupId>org.smartregister</groupId>
<artifactId>hapi-fhir-keycloak</artifactId>
<version>0.0.3-SNAPSHOT</version>
<version>0.0.6-SNAPSHOT</version>
</dependency>

<!-- This dependency holds all the code extensions that OpenSRP will build on top of Hapi-Fhir-->
<dependency>
<groupId>org.smartregister.hapi-fhir-opensrp-extensions</groupId>
<artifactId>location</artifactId>
<version>0.0.3-SNAPSHOT</version>
<version>0.0.4-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>org.smartregister.hapi-fhir-opensrp-extensions</groupId>
<artifactId>practitioner</artifactId>
<version>0.0.3-SNAPSHOT</version>
</dependency>

<!-- HAPI-FHIR uses Logback for logging support. The logback library is included automatically by Maven as a part of the hapi-fhir-base dependency, but you also need to include a logging library. Logback
is used here, but log4j would also be fine. -->
Expand Down
37 changes: 34 additions & 3 deletions src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package ca.uhn.fhir.jpa.starter;

import ca.uhn.fhir.jpa.api.dao.IFhirResourceDao;
import org.hl7.fhir.r4.model.Location;
import org.smartregister.extension.model.*;
import org.hl7.fhir.r4.model.*;
import org.smartregister.extension.rest.LocationHierarchyResourceProvider;
import org.smartregister.extension.rest.PractitionerDetailsResourceProvider;
import org.smartregister.model.location.*;
import org.smartregister.model.practitioner.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;

import javax.servlet.ServletException;
import static org.smartregister.extension.utils.Constants.LOCATION;
import static org.smartregister.utils.Constants.LOCATION;

@Import(AppProperties.class)
public class JpaRestfulServer extends BaseJpaRestfulServer {
Expand All @@ -28,6 +30,7 @@ protected void initialize() throws ServletException {

// Add your own customization here
registerLocationHierarchyTypes();
registerPracitionerDetailsTypes();
}

private void registerLocationHierarchyTypes() {
Expand All @@ -45,4 +48,32 @@ private void registerLocationHierarchyTypes() {
getFhirContext().registerCustomType(ChildTreeNode.class);
}


private void registerPracitionerDetailsTypes() {
IFhirResourceDao<Practitioner> practitionerIFhirResourceDao = daoRegistry.getResourceDao("Practitioner");
IFhirResourceDao<PractitionerRole> practitionerRoleIFhirResourceDao = daoRegistry.getResourceDao("PractitionerRole");
IFhirResourceDao<CareTeam> careTeamIFhirResourceDao = daoRegistry.getResourceDao("CareTeam");
IFhirResourceDao<OrganizationAffiliation> organizationAffiliationIFhirResourceDao = daoRegistry.getResourceDao("OrganizationAffiliation");
IFhirResourceDao<Organization> organizationIFhirResourceDao = daoRegistry.getResourceDao("Organization");
IFhirResourceDao<Location> locationIFhirResourceDao = daoRegistry.getResourceDao(LOCATION);
LocationHierarchyResourceProvider locationHierarchyResourceProvider = new LocationHierarchyResourceProvider();
locationHierarchyResourceProvider.setLocationIFhirResourceDao(locationIFhirResourceDao);
PractitionerDetailsResourceProvider practitionerDetailsResourceProvider = new PractitionerDetailsResourceProvider();
practitionerDetailsResourceProvider.setPractitionerIFhirResourceDao(practitionerIFhirResourceDao);
practitionerDetailsResourceProvider.setPractitionerRoleIFhirResourceDao(practitionerRoleIFhirResourceDao);
practitionerDetailsResourceProvider.setCareTeamIFhirResourceDao(careTeamIFhirResourceDao);
practitionerDetailsResourceProvider.setOrganizationAffiliationIFhirResourceDao(organizationAffiliationIFhirResourceDao);
practitionerDetailsResourceProvider.setLocationHierarchyResourceProvider(locationHierarchyResourceProvider);
practitionerDetailsResourceProvider.setOrganizationIFhirResourceDao(organizationIFhirResourceDao);
practitionerDetailsResourceProvider.setLocationIFhirResourceDao(locationIFhirResourceDao);

registerProvider(practitionerDetailsResourceProvider);
getFhirContext().registerCustomType(PractitionerDetails.class);
getFhirContext().registerCustomType(KeycloakUserDetails.class);
getFhirContext().registerCustomType(UserBioData.class);
getFhirContext().registerCustomType(FhirPractitionerDetails.class);
getFhirContext().registerCustomType(FhirCareTeamExtension.class);
getFhirContext().registerCustomType(FhirOrganizationExtension.class);
}

}

0 comments on commit cb73fe2

Please sign in to comment.