Skip to content

Commit

Permalink
FM2-312: Addressing requested changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Ruhanga committed Nov 19, 2020
1 parent c58895c commit 712c7a9
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ protected void setupSearchParams(Criteria criteria, SearchParameterMap theParams
entry.getValue().forEach(d -> handleMedicationReference("d", (ReferenceAndListParam) d.getParam())
.ifPresent(c -> criteria.createAlias("drug", "d").add(c)));
break;
case FhirConstants.COMMON_SEARCH_HANDLER:
handleCommonSearchParameters(entry.getValue()).ifPresent(criteria::add);
break;
case FhirConstants.IDENTIFIER:
entry.getValue().forEach(orderNumber -> handleOrderNumber((TokenAndListParam) orderNumber.getParam())
.ifPresent(criteria::add));
break;
case FhirConstants.COMMON_SEARCH_HANDLER:
handleCommonSearchParameters(entry.getValue()).ifPresent(criteria::add);
break;
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,13 @@ protected void setupSearchParams(Criteria criteria, SearchParameterMap theParams
entry.getValue().forEach(dateRangeParam -> handleDateRange((DateRangeParam) dateRangeParam.getParam())
.ifPresent(criteria::add));
break;
case FhirConstants.COMMON_SEARCH_HANDLER:
handleCommonSearchParameters(entry.getValue()).ifPresent(criteria::add);
break;
case FhirConstants.IDENTIFIER:
entry.getValue().forEach(orderNumber -> handleOrderNumber((TokenAndListParam) orderNumber.getParam())
.ifPresent(criteria::add));
break;
case FhirConstants.COMMON_SEARCH_HANDLER:
handleCommonSearchParameters(entry.getValue()).ifPresent(criteria::add);
break;
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
import org.hl7.fhir.r4.model.Identifier;
import org.openmrs.Order;

public interface OrderIdentifierTranslator {
public interface OrderIdentifierTranslator extends OpenmrsFhirTranslator<Order, Identifier> {

Identifier toFhirResource(Order identifier);
@Override
public Identifier toFhirResource(Order order);

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@

import javax.annotation.Nonnull;

import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
import org.hl7.fhir.r4.model.CodeableConcept;
import org.hl7.fhir.r4.model.Coding;
import org.hl7.fhir.r4.model.Identifier;
import org.openmrs.Order;
import org.openmrs.module.fhir2.api.translators.OrderIdentifierTranslator;
Expand All @@ -20,20 +22,25 @@
@Component
public class OrderIdentifierTranslatorImpl implements OrderIdentifierTranslator {

private static String ORDER_ID_TYPE = "Order Number";

@Override
public Identifier toFhirResource(@Nonnull Order order) {

Identifier orderIdentifier = new Identifier();

orderIdentifier.setType(new CodeableConcept().setText(ORDER_ID_TYPE));
Coding placCoding = new Coding().setSystem("http://terminology.hl7.org/CodeSystem/v2-0203").setCode("PLAC")
.setDisplay("Placer Identifier");
orderIdentifier.setType(new CodeableConcept().addCoding(placCoding));

orderIdentifier.setValue(order.getOrderNumber());

orderIdentifier.setUse(Identifier.IdentifierUse.OFFICIAL);
orderIdentifier.setUse(Identifier.IdentifierUse.USUAL);

return orderIdentifier;
}

@Override
public Order toOpenmrsType(Identifier resource) {
throw new InvalidRequestException("Order Identifier cannot be manualy set");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ public class MedicationRequestTranslatorImplTest {

private static final String DOSING_INSTRUCTIONS = "Dosing instructions";

private static final String IDENTIFIER_SYSTEM = "http://terminology.hl7.org/CodeSystem/v2-0203";

private static final String IDENTIFIER_CODE = "PLAC";

private static final String IDENTIFIER_DISPLAY = "Placer Identifier";

@Mock
private PractitionerReferenceTranslator<Provider> providerPractitionerReferenceTranslator;

Expand Down Expand Up @@ -137,6 +143,10 @@ public void toFhirResource_shouldTranslateToFhirResource() {
assertThat(result.getId(), notNullValue());
assertThat(result.getId(), equalTo(DRUG_ORDER_UUID));
assertThat(result.getIdentifier().get(0).getValue(), equalTo(DRUG_ORDER_NUMBER));
assertThat(result.getIdentifier().get(0).getType().getCoding().get(0).getSystem(), equalTo(IDENTIFIER_SYSTEM));
assertThat(result.getIdentifier().get(0).getType().getCoding().get(0).getCode(), equalTo(IDENTIFIER_CODE));
assertThat(result.getIdentifier().get(0).getType().getCoding().get(0).getDisplay(), equalTo(IDENTIFIER_DISPLAY));
assertThat(result.getIdentifier().get(0).getUse().getDisplay(), equalTo("Usual"));
}

@Test(expected = NullPointerException.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ public class ServiceRequestTranslatorImplTest {

private static final int COUNT = 1;

private static final String IDENTIFIER_SYSTEM = "http://terminology.hl7.org/CodeSystem/v2-0203";

private static final String IDENTIFIER_CODE = "PLAC";

private static final String IDENTIFIER_DISPLAY = "Placer Identifier";

private ServiceRequestTranslatorImpl translator;

@Mock
Expand Down Expand Up @@ -437,6 +443,10 @@ public void toFhirResource_shouldTranslateOrderNumber() {

assertThat(result, notNullValue());
assertThat(result.getValue(), containsString(TEST_ORDER_NUMBER));
assertThat(result.getType().getCoding().get(0).getSystem(), equalTo(IDENTIFIER_SYSTEM));
assertThat(result.getType().getCoding().get(0).getCode(), equalTo(IDENTIFIER_CODE));
assertThat(result.getType().getCoding().get(0).getDisplay(), equalTo(IDENTIFIER_DISPLAY));
assertThat(result.getUse().getDisplay(), equalTo("Usual"));
}

private List<Task> setUpBasedOnScenario(Task.TaskStatus status) {
Expand Down

0 comments on commit 712c7a9

Please sign in to comment.