Bundle bundle = ctx.newXmlParser().parseResource(Bundle.class, reader); for (BundleEntryComponent next : bundle.getEntry()) { IdType nextId = new IdType(next.getFullUrl()); if (nextId.isEmpty() || !nextId.getValue().startsWith("http://hl7.org/fhir/ValueSet/")) { continue; defaultValueSets.put(nextId.toVersionless().getValue(), (ValueSet) next.getResource());
BundleEntryComponent entry = myBundle.addEntry().setResource((Resource) next); populateBundleEntryFullUrl(next, entry); myBundle.addEntry().setResource((Resource) next).getSearch().setMode(SearchEntryMode.INCLUDE);
public BundleEntryComponent copy() { BundleEntryComponent dst = new BundleEntryComponent(); copyValues(dst); if (link != null) { dst.link = new ArrayList<BundleLinkComponent>(); for (BundleLinkComponent i : link) dst.link.add(i.copy()); }; dst.fullUrl = fullUrl == null ? null : fullUrl.copy(); dst.resource = resource == null ? null : resource.copy(); dst.search = search == null ? null : search.copy(); dst.request = request == null ? null : request.copy(); dst.response = response == null ? null : response.copy(); return dst; }
.flatMap(Collection::stream) .forEach(entry -> { if (ResourceType.DocumentReference == entry.getResource().getResourceType()) { if (!expectedReferenceFullUrls.remove(entry.getFullUrl())) { throw FhirUtils.unprocessableEntity( OperationOutcome.IssueSeverity.ERROR, null, null, "DocumentReference with URL %s is not referenced by any DocumentManifest", entry.getFullUrl() ); } else if (ResourceType.Binary == entry.getResource().getResourceType()) { if (!expectedBinaryFullUrls.remove(entry.getFullUrl())) { throw FhirUtils.unprocessableEntity( OperationOutcome.IssueSeverity.ERROR, null, null, "Binary with URL %s is not referenced by any DocumentReference", entry.getFullUrl() );
.flatMap(Collection::stream) .forEach(entry -> { if (ResourceType.DocumentReference == entry.getResource().getResourceType()) { if (!expectedReferenceFullUrls.remove(entry.getFullUrl())) { throw FhirUtils.unprocessableEntity( OperationOutcome.IssueSeverity.ERROR, null, null, "DocumentReference with URL %s is not referenced by any DocumentManifest", entry.getFullUrl() ); } else if (ResourceType.Binary == entry.getResource().getResourceType()) { if (!expectedBinaryFullUrls.remove(entry.getFullUrl())) { throw FhirUtils.unprocessableEntity( OperationOutcome.IssueSeverity.ERROR, null, null, "Binary with URL %s is not referenced by any DocumentReference", entry.getFullUrl() );
.setP(new Reference(REFERENCE_FULL_URL)); bundle.addEntry() .setRequest( new Bundle.BundleEntryRequestComponent() .setMethod(Bundle.HTTPVerb.POST) .setUrl("DocumentManifest")) .setResource(manifest); .setSystem("urn:oid:1.3.6.1.4.1.19376.1.2.3"); bundle.addEntry() .setFullUrl(REFERENCE_FULL_URL) .setRequest( new Bundle.BundleEntryRequestComponent() .setMethod(Bundle.HTTPVerb.POST) .setUrl("DocumentReference")) .setResource(reference); .setFullUrl(BINARY_FULL_URL) .setRequest(new Bundle.BundleEntryRequestComponent() .setMethod(Bundle.HTTPVerb.POST) .setUrl("Binary")) .setResource(binary);
BundleEntryComponent entry = myBundle.addEntry().setResource((Resource) next); populateBundleEntryFullUrl(next, entry); myBundle.addEntry().setResource((Resource) next).getSearch().setMode(SearchEntryMode.INCLUDE);
BundleEntryComponent entry = myBundle.addEntry().setResource((Resource) next); populateBundleEntryFullUrl(next, entry); entry.setResource((Resource) next).getSearch().setMode(SearchEntryMode.INCLUDE); populateBundleEntryFullUrl(next, entry);
assertEquals(1, result.getTotal()); DocumentManifest p = (DocumentManifest) result.getEntry().get(0).getResource(); assertEquals("9bc72458-49b0-11e6-8a1c-3c1620524153", p.getIdElement().getIdPart());
assertEquals(1, result.getTotal()); DocumentReference p = (DocumentReference) result.getEntry().get(0).getResource(); assertEquals("63ab1c29-4225-11e6-9b33-0050569b0094", p.getIdElement().getIdPart());
PdqPatient p = (PdqPatient)result.getEntry().get(0).getResource(); assertEquals("Test", p.getName().get(0).getFamily().get(0).getValue()); assertEquals("http://localhost:8999/Patient/4711", p.getId());
Bundle bundle = ctx.newXmlParser().parseResource(Bundle.class, reader); for (BundleEntryComponent next : bundle.getEntry()) { IdType nextId = new IdType(next.getFullUrl()); if (nextId.isEmpty() || !nextId.getValue().startsWith("http://hl7.org/fhir/ValueSet/")) { continue; defaultValueSets.put(nextId.toVersionless().getValue(), (ValueSet) next.getResource());
BundleEntryComponent nextEntry = myBundle.addEntry(); nextEntry.setResource((Resource) next); if (next.getIdElement().isEmpty()) { nextEntry.getRequest().setMethod(HTTPVerb.POST); } else { nextEntry.getRequest().setMethod(HTTPVerb.PUT); if (next.getIdElement().isAbsolute()) { nextEntry.getRequest().setUrl(next.getIdElement().getValue()); } else { String resourceType = myContext.getResourceDefinition(next).getName(); nextEntry.getRequest().setUrl(new IdType(theServerBase, resourceType, next.getIdElement().getIdPart(), next.getIdElement().getVersionIdPart()).getValue());
private void loadValueSets(FhirContext theContext, Map<String, ValueSet> theValueSets, String theFile) { InputStream valuesetText = DefaultProfileValidationSupport.class.getResourceAsStream(theFile); try { if (valuesetText != null) { InputStreamReader reader = null; try { reader = new InputStreamReader(valuesetText, "UTF-8"); FhirContext ctx = FhirInstanceValidator.getHl7OrgDstu2Ctx(theContext); Bundle bundle = ctx.newXmlParser().parseResource(Bundle.class, reader); for (BundleEntryComponent next : bundle.getEntry()) { ValueSet nextValueSet = (ValueSet) next.getResource(); String system = nextValueSet.getCodeSystem().getSystem(); if (isNotBlank(system)) { theValueSets.put(system, nextValueSet); } } } catch (UnsupportedEncodingException e) { // Shouldn't happen! throw new InternalErrorException("UTF-8 encoding not supported on this platform", e); } finally { IOUtils.closeQuietly(reader); } } } finally { IOUtils.closeQuietly(valuesetText); } }
@Override public Base addChild(String name) throws FHIRException { if (name.equals("link")) { return addLink(); } else if (name.equals("fullUrl")) { throw new FHIRException("Cannot call addChild on a primitive type Bundle.fullUrl"); } else if (name.equals("resource")) { throw new FHIRException("Cannot call addChild on an abstract type Bundle.resource"); } else if (name.equals("search")) { this.search = new BundleEntrySearchComponent(); return this.search; } else if (name.equals("request")) { this.request = new BundleEntryRequestComponent(); return this.request; } else if (name.equals("response")) { this.response = new BundleEntryResponseComponent(); return this.response; } else return super.addChild(name); }
public org.hl7.fhir.instance.model.Bundle.BundleEntryComponent convertBundleEntryComponent(org.hl7.fhir.dstu3.model.Bundle.BundleEntryComponent src) throws FHIRException { if (src == null || src.isEmpty()) return null; if (advisor.ignoreEntry(src)) return null; org.hl7.fhir.instance.model.Bundle.BundleEntryComponent tgt = new org.hl7.fhir.instance.model.Bundle.BundleEntryComponent(); copyElement(src, tgt); for (org.hl7.fhir.dstu3.model.Bundle.BundleLinkComponent t : src.getLink()) tgt.addLink(convertBundleLinkComponent(t)); tgt.setFullUrl(src.getFullUrl()); org.hl7.fhir.instance.model.Resource res = advisor.convert(src.getResource()); if (res == null) res = convertResource(src.getResource()); tgt.setResource(res); if (src.hasSearch()) tgt.setSearch(convertBundleEntrySearchComponent(src.getSearch())); if (src.hasRequest()) tgt.setRequest(convertBundleEntryRequestComponent(src.getRequest())); if (src.hasResponse()) tgt.setResponse(convertBundleEntryResponseComponent(src.getResponse())); return tgt; }
public org.hl7.fhir.instance.model.Bundle.BundleEntryComponent convertBundleEntryComponent(org.hl7.fhir.r4.model.Bundle.BundleEntryComponent src) throws FHIRException { if (src == null || src.isEmpty()) return null; if (advisor.ignoreEntry(src)) return null; org.hl7.fhir.instance.model.Bundle.BundleEntryComponent tgt = new org.hl7.fhir.instance.model.Bundle.BundleEntryComponent(); copyElement(src, tgt); for (org.hl7.fhir.r4.model.Bundle.BundleLinkComponent t : src.getLink()) tgt.addLink(convertBundleLinkComponent(t)); tgt.setFullUrl(src.getFullUrl()); org.hl7.fhir.instance.model.Resource res = advisor.convertR2(src.getResource()); if (res == null) res = convertResource(src.getResource()); tgt.setResource(res); if (src.hasSearch()) tgt.setSearch(convertBundleEntrySearchComponent(src.getSearch())); if (src.hasRequest()) tgt.setRequest(convertBundleEntryRequestComponent(src.getRequest())); if (src.hasResponse()) tgt.setResponse(convertBundleEntryResponseComponent(src.getResponse())); return tgt; }
@Override public List<IBaseResource> toListOfResources() { ArrayList<IBaseResource> retVal = new ArrayList<IBaseResource>(); for (BundleEntryComponent next : myBundle.getEntry()) { if (next.getResource() != null) { retVal.add(next.getResource()); } else if (next.getResponse().getLocationElement().isEmpty() == false) { IdType id = new IdType(next.getResponse().getLocation()); String resourceType = id.getResourceType(); if (isNotBlank(resourceType)) { IBaseResource res = (IBaseResource) myContext.getResourceDefinition(resourceType).newInstance(); res.setId(id); retVal.add(res); } } } return retVal; }
@Override public void validateRequest(FhirContext context, Object payload, Map<String, Object> parameters) { Bundle transactionBundle = (Bundle) payload; validateTransactionBundle(transactionBundle); validateBundleConsistency(transactionBundle); for (Bundle.BundleEntryComponent entry : transactionBundle.getEntry()) { Class<? extends IBaseResource> clazz = entry.getResource().getClass(); if (VALIDATORS.containsKey(clazz)) { ca.uhn.fhir.validation.FhirValidator validator = context.newValidator(); validator.registerValidatorModule(VALIDATORS.get(clazz)); ValidationResult validationResult = validator.validateWithResult(entry.getResource()); if (!validationResult.isSuccessful()) { IBaseOperationOutcome operationOutcome = validationResult.toOperationOutcome(); throw FhirUtils.exception(UnprocessableEntityException::new, operationOutcome, "Validation Failed"); } } } }
@Override public void validateRequest(FhirContext context, Object payload, Map<String, Object> parameters) { Bundle transactionBundle = (Bundle) payload; validateTransactionBundle(transactionBundle); validateBundleConsistency(transactionBundle); for (Bundle.BundleEntryComponent entry : transactionBundle.getEntry()) { Class<? extends IBaseResource> clazz = entry.getResource().getClass(); if (VALIDATORS.containsKey(clazz)) { FhirValidator validator = context.newValidator(); validator.registerValidatorModule(VALIDATORS.get(clazz)); ValidationResult validationResult = validator.validateWithResult(entry.getResource()); if (!validationResult.isSuccessful()) { IBaseOperationOutcome operationOutcome = validationResult.toOperationOutcome(); throw FhirUtils.exception(UnprocessableEntityException::new, operationOutcome, "Validation Failed"); } } } }