private static boolean payloadContainsNoPlaceholderReferences(FhirContext theCtx, IBaseResource theNewPayload) { List<ResourceReferenceInfo> refs = theCtx.newTerser().getAllResourceReferences(theNewPayload); for (ResourceReferenceInfo next : refs) { String ref = next.getResourceReference().getReferenceElement().getValue(); if (isBlank(ref)) { IBaseResource resource = next.getResourceReference().getResource(); if (resource != null) { ref = resource.getIdElement().getValue(); } } if (isNotBlank(ref)) { if (ref.startsWith("#")) { continue; } if (ref.startsWith("urn:uuid:")) { throw new AssertionError("Reference at " + next.getName() + " is invalid: " + ref); } } } return true; }
for (ResourceReferenceInfo nextRef : ctx.newTerser().getAllResourceReferences(nextCandidateSource)) { String nextRefResourceType = nextRef.getResourceReference().getReferenceElement().getResourceType(); String nextRefIdPart = nextRef.getResourceReference().getReferenceElement().getIdPart();
for (ResourceReferenceInfo nextRefInfo : ctx.newTerser().getAllResourceReferences(nextQueued)) { String nextRef = nextRefInfo.getResourceReference().getReferenceElement().getValue(); if (isNotBlank(nextRef) && !sent.contains(nextRef)) {
private boolean loadReferences(IBaseResource theResource, WorkerContext theWorkerCtx, IValidationContext<?> theValCtx, ArrayList<ValidationMessage> theMessages) { List<ResourceReferenceInfo> refs = theValCtx.getFhirContext().newTerser().getAllResourceReferences(theResource);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IBaseResource> addedResourcesThisPass = new ArrayList<IBaseResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> refs = ctx.newTerser().getAllResourceReferences(next.getResource()); for (ResourceReferenceInfo nextRef : refs) { nextRef.getResourceReference().setResource(null);
List<ResourceReferenceInfo> refs = ctx.newTerser().getAllResourceReferences(next.getResource()); for (ResourceReferenceInfo nextRef : refs) {
List<ResourceReferenceInfo> refs = ctx.newTerser().getAllResourceReferences(next.getResource()); for (ResourceReferenceInfo nextRef : refs) {
private static void copy(FhirContext theCtx, IGenericClient theTarget, String theResType, List<IBaseResource> theQueued, Set<String> theSent, Bundle theReceived) { for (Bundle.BundleEntryComponent nextEntry : theReceived.getEntry()) { Resource nextResource = nextEntry.getResource(); nextResource.setId(theResType + "/" + "CR-" + nextResource.getIdElement().getIdPart()); boolean haveUnsentReference = false; for (ResourceReferenceInfo nextRefInfo : theCtx.newTerser().getAllResourceReferences(nextResource)) { IIdType nextRef = nextRefInfo.getResourceReference().getReferenceElement(); if (nextRef.hasIdPart()) { String newRef = nextRef.getResourceType() + "/" + "CR-" + nextRef.getIdPart(); ourLog.info("Changing reference {} to {}", nextRef.getValue(), newRef); nextRefInfo.getResourceReference().setReference(newRef); if (!theSent.contains(newRef)) { haveUnsentReference = true; } } } if (haveUnsentReference) { ourLog.info("Queueing {} for delivery after", nextResource.getId()); theQueued.add(nextResource); continue; } IIdType newId = theTarget .update() .resource(nextResource) .execute() .getId(); ourLog.info("Copied resource {} and got ID {}", nextResource.getId(), newId); theSent.add(nextResource.getIdElement().toUnqualifiedVersionless().getValue()); } }
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IAnyResource> addedResourcesThisPass = new ArrayList<IAnyResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IResource> addedResourcesThisPass = new ArrayList<IResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IAnyResource> addedResourcesThisPass = new ArrayList<IAnyResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> allRefs = terser.getAllResourceReferences(nextResource); for (ResourceReferenceInfo nextRef : allRefs) { IIdType nextId = nextRef.getResourceReference().getReferenceElement();
List<ResourceReferenceInfo> refs = t.getAllResourceReferences(theResource); for (ResourceReferenceInfo nextRef : refs) { IIdType refId = nextRef.getResourceReference().getReferenceElement();
private boolean loadReferences(IBaseResource theResource, WorkerContext theWorkerCtx, IValidationContext<?> theValCtx, ArrayList<ValidationMessage> theMessages) { List<ResourceReferenceInfo> refs = theValCtx.getFhirContext().newTerser().getAllResourceReferences(theResource);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IResource> addedResourcesThisPass = new ArrayList<IResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IAnyResource> addedResourcesThisPass = new ArrayList<IAnyResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IAnyResource> addedResourcesThisPass = new ArrayList<IAnyResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> references = myContext.newTerser().getAllResourceReferences(next); do { List<IResource> addedResourcesThisPass = new ArrayList<IResource>(); List<ResourceReferenceInfo> newReferences = myContext.newTerser().getAllResourceReferences(iResource); references.addAll(newReferences);
List<ResourceReferenceInfo> refs = t.getAllResourceReferences(theResource); for (ResourceReferenceInfo nextRef : refs) { IIdType refId = nextRef.getResourceReference().getReferenceElement();