81 lines
2.5 KiB
Java
81 lines
2.5 KiB
Java
package example;
|
|
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
|
|
import ca.uhn.fhir.context.FhirContext;
|
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
|
import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum;
|
|
import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
|
|
import ca.uhn.fhir.model.dstu2.resource.Patient;
|
|
import ca.uhn.fhir.model.primitive.DateTimeDt;
|
|
import ca.uhn.fhir.model.primitive.StringDt;
|
|
import ca.uhn.fhir.parser.DataFormatException;
|
|
|
|
public class ServerInterceptors {
|
|
|
|
@SuppressWarnings("unused")
|
|
public static void main(String[] args) throws DataFormatException, IOException {
|
|
|
|
|
|
// START SNIPPET: resourceExtension
|
|
// Create an example patient
|
|
Patient patient = new Patient();
|
|
patient.addIdentifier().setUse(IdentifierUseEnum.OFFICIAL).setSystem("urn:example").setValue("7000135");
|
|
|
|
// Create an extension
|
|
ExtensionDt ext = new ExtensionDt();
|
|
ext.setModifier(false);
|
|
ext.setUrl("http://example.com/extensions#someext");
|
|
ext.setValue(new DateTimeDt("2011-01-02T11:13:15"));
|
|
|
|
// Add the extension to the resource
|
|
patient.addUndeclaredExtension(ext);
|
|
//END SNIPPET: resourceExtension
|
|
|
|
|
|
//START SNIPPET: resourceStringExtension
|
|
HumanNameDt name = patient.addName();
|
|
name.addFamily().setValue("Shmoe");
|
|
StringDt given = name.addGiven();
|
|
given.setValue("Joe");
|
|
ExtensionDt ext2 = new ExtensionDt(false, "http://examples.com#moreext", new StringDt("Hello"));
|
|
given.addUndeclaredExtension(ext2);
|
|
//END SNIPPET: resourceStringExtension
|
|
|
|
String output = new FhirContext().newXmlParser().setPrettyPrint(true).encodeResourceToString(patient);
|
|
System.out.println(output);
|
|
|
|
|
|
//START SNIPPET: parseExtension
|
|
// Get all extensions (modifier or not) for a given URL
|
|
List<ExtensionDt> resourceExts = patient.getUndeclaredExtensionsByUrl("http://fooextensions.com#exts");
|
|
|
|
// Get all non-modifier extensions regardless of URL
|
|
List<ExtensionDt> nonModExts = patient.getUndeclaredExtensions();
|
|
|
|
//Get all non-modifier extensions regardless of URL
|
|
List<ExtensionDt> modExts = patient.getUndeclaredModifierExtensions();
|
|
//END SNIPPET: parseExtension
|
|
|
|
}
|
|
|
|
|
|
public void foo() {
|
|
//START SNIPPET: subExtension
|
|
Patient patient = new Patient();
|
|
|
|
ExtensionDt parent = new ExtensionDt(false, "http://example.com#parent");
|
|
patient.addUndeclaredExtension(parent);
|
|
|
|
ExtensionDt child1 = new ExtensionDt(false, "http://example.com#childOne", new StringDt("value1"));
|
|
parent.addUndeclaredExtension(child1);
|
|
|
|
ExtensionDt child2 = new ExtensionDt(false, "http://example.com#childTwo", new StringDt("value1"));
|
|
parent.addUndeclaredExtension(child2);
|
|
//END SNIPPET: subExtension
|
|
|
|
}
|
|
|
|
}
|