Add a test

This commit is contained in:
James Agnew 2018-02-09 10:29:20 -05:00
parent 80353e5d42
commit 2edc9910e5
3 changed files with 40 additions and 7 deletions

View File

@ -618,8 +618,8 @@ public class JsonParser extends BaseParser implements IJsonLikeParser {
write(theEventWriter, "resourceType", resDef.getName()); write(theEventWriter, "resourceType", resDef.getName());
if (theResourceId != null && theResourceId.hasIdPart()) { if (theResourceId != null && theResourceId.hasIdPart()) {
write(theEventWriter, "id", theResourceId.getIdPart()); write(theEventWriter, "id", theResourceId.getIdPart());
final List<HeldExtension> extensions = new ArrayList<HeldExtension>(0); final List<HeldExtension> extensions = new ArrayList<>(0);
final List<HeldExtension> modifierExtensions = new ArrayList<HeldExtension>(0); final List<HeldExtension> modifierExtensions = new ArrayList<>(0);
// Undeclared extensions // Undeclared extensions
extractUndeclaredExtensions(theResourceId, extensions, modifierExtensions, null, null); extractUndeclaredExtensions(theResourceId, extensions, modifierExtensions, null, null);
boolean haveExtension = false; boolean haveExtension = false;
@ -707,14 +707,11 @@ public class JsonParser extends BaseParser implements IJsonLikeParser {
/** /**
* This is useful only for the two cases where extensions are encoded as direct children (e.g. not in some object * This is useful only for the two cases where extensions are encoded as direct children (e.g. not in some object
* called _name): resource extensions, and extension extensions * called _name): resource extensions, and extension extensions
*
* @param theChildElem
* @param theParent
*/ */
private void extractAndWriteExtensionsAsDirectChild(IBase theElement, JsonLikeWriter theEventWriter, BaseRuntimeElementDefinition<?> theElementDef, RuntimeResourceDefinition theResDef, private void extractAndWriteExtensionsAsDirectChild(IBase theElement, JsonLikeWriter theEventWriter, BaseRuntimeElementDefinition<?> theElementDef, RuntimeResourceDefinition theResDef,
IBaseResource theResource, CompositeChildElement theChildElem, CompositeChildElement theParent) throws IOException { IBaseResource theResource, CompositeChildElement theChildElem, CompositeChildElement theParent) throws IOException {
List<HeldExtension> extensions = new ArrayList<HeldExtension>(0); List<HeldExtension> extensions = new ArrayList<>(0);
List<HeldExtension> modifierExtensions = new ArrayList<HeldExtension>(0); List<HeldExtension> modifierExtensions = new ArrayList<>(0);
// Undeclared extensions // Undeclared extensions
extractUndeclaredExtensions(theElement, extensions, modifierExtensions, theChildElem, theParent); extractUndeclaredExtensions(theElement, extensions, modifierExtensions, theChildElem, theParent);

View File

@ -132,6 +132,9 @@ public abstract class BaseJpaDstu3Test extends BaseJpaTest {
@Qualifier("myMedicationRequestDaoDstu3") @Qualifier("myMedicationRequestDaoDstu3")
protected IFhirResourceDao<MedicationRequest> myMedicationRequestDao; protected IFhirResourceDao<MedicationRequest> myMedicationRequestDao;
@Autowired @Autowired
@Qualifier("myMedicationStatementDaoDstu3")
protected IFhirResourceDao<MedicationStatement> myMedicationStatementDao;
@Autowired
@Qualifier("myNamingSystemDaoDstu3") @Qualifier("myNamingSystemDaoDstu3")
protected IFhirResourceDao<NamingSystem> myNamingSystemDao; protected IFhirResourceDao<NamingSystem> myNamingSystemDao;
@Autowired @Autowired

View File

@ -8,6 +8,7 @@ import java.util.List;
import org.hl7.fhir.dstu3.model.*; import org.hl7.fhir.dstu3.model.*;
import org.hl7.fhir.dstu3.model.Appointment.AppointmentStatus; import org.hl7.fhir.dstu3.model.Appointment.AppointmentStatus;
import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender; import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IIdType; import org.hl7.fhir.instance.model.api.IIdType;
import org.junit.*; import org.junit.*;
@ -156,6 +157,38 @@ public class FhirResourceDaoDstu3SearchCustomSearchParamTest extends BaseJpaDstu
} }
@Test
public void testSearchOnMultivalue() throws FHIRException {
SearchParameter displaySp = new SearchParameter();
displaySp.addBase("MedicationStatement");
displaySp.setCode("display");
displaySp.setType(Enumerations.SearchParamType.STRING);
displaySp.setTitle("Display");
displaySp.setExpression("MedicationStatement.medication.as(CodeableConcept).coding.display");
displaySp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
displaySp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.ACTIVE);
mySearchParameterDao.create(displaySp, mySrd);
mySearchParamRegsitry.forceRefresh();
MedicationStatement ms1 = new MedicationStatement();
ms1.setMedication(new CodeableConcept());
ms1.getMedicationCodeableConcept().addCoding().setDisplay("AAA");
String id1 = myMedicationStatementDao.create(ms1).getId().toUnqualifiedVersionless().getValue();
MedicationStatement ms2 = new MedicationStatement();
ms2.setMedication(new CodeableConcept());
ms2.getMedicationCodeableConcept().addCoding().setDisplay("BBB");
myMedicationStatementDao.create(ms2).getId().toUnqualifiedVersionless().getValue();
SearchParameterMap map = new SearchParameterMap();
map.setLoadSynchronous(true);
map.add("display", new StringParam("AAA"));
IBundleProvider results = myMedicationStatementDao.search(map);
assertThat(toUnqualifiedVersionlessIdValues(results), contains(id1));
}
@Test @Test
public void testSearchForExtensionToken() { public void testSearchForExtensionToken() {
SearchParameter eyeColourSp = new SearchParameter(); SearchParameter eyeColourSp = new SearchParameter();