diff --git a/pom.xml b/pom.xml
index 20cb51976e0..32c09781667 100755
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
hapi-fhir-jpaserver-starter
org.smartregister
- 5.5.2-SNAPSHOT
+ 5.5.3-SNAPSHOT
8
@@ -133,16 +133,21 @@
org.smartregister
hapi-fhir-keycloak
- 0.0.3-SNAPSHOT
+ 0.0.6-SNAPSHOT
org.smartregister.hapi-fhir-opensrp-extensions
location
- 0.0.3-SNAPSHOT
+ 0.0.4-SNAPSHOT
+
+ org.smartregister.hapi-fhir-opensrp-extensions
+ practitioner
+ 0.0.3-SNAPSHOT
+
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
index 8ae877d2043..b01531cb2f9 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
@@ -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 {
@@ -28,6 +30,7 @@ protected void initialize() throws ServletException {
// Add your own customization here
registerLocationHierarchyTypes();
+ registerPracitionerDetailsTypes();
}
private void registerLocationHierarchyTypes() {
@@ -45,4 +48,32 @@ private void registerLocationHierarchyTypes() {
getFhirContext().registerCustomType(ChildTreeNode.class);
}
+
+ private void registerPracitionerDetailsTypes() {
+ IFhirResourceDao practitionerIFhirResourceDao = daoRegistry.getResourceDao("Practitioner");
+ IFhirResourceDao practitionerRoleIFhirResourceDao = daoRegistry.getResourceDao("PractitionerRole");
+ IFhirResourceDao careTeamIFhirResourceDao = daoRegistry.getResourceDao("CareTeam");
+ IFhirResourceDao organizationAffiliationIFhirResourceDao = daoRegistry.getResourceDao("OrganizationAffiliation");
+ IFhirResourceDao organizationIFhirResourceDao = daoRegistry.getResourceDao("Organization");
+ IFhirResourceDao 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);
+ }
+
}