/** Allows HtmlForm to be shared via Metadata Sharing Module **/ protected Object writeReplace() { HtmlFormExporter exporter = new HtmlFormExporter(this); // default: includeLocations = true, includePersons = false, includeRoles = true, includePatientIdentifierTypes = true return exporter.export(true, false, true, true); }
public HtmlForm export(Boolean includeLocations, Boolean includePersons, Boolean includeRoles, Boolean includePatientIdentifierTypes) { this.includeLocations = includeLocations; this.includePersons = includePersons; this.includeRoles = includeRoles; this.includePatientIdentifierTypes = includePatientIdentifierTypes; formToExport = copyOf(form); // first, strip out any local attributes we don't want to pass on // default (set in HtmlForm.java) is to include locations, roles, and patient identifier types, but not persons stripLocalAttributesFromXml(); // within the form, replace any Ids with Uuids HtmlFormSubstitutionUtils.replaceIdsWithUuids(formToExport); // replace any programs referenced by name with uuids (since programs referenced by name are really referenced by the underlying concept which can cause issues during metadata sharing) HtmlFormSubstitutionUtils.replaceProgramNamesWithUuids(formToExport); // make sure all dependent OpenmrsObjects are loaded and explicitly referenced calculateDependencies(); // TODO: update the calculate dependencies method to handle persons specified by name... return formToExport; } }
stripLocalAttributesFromXmlHelper(Pattern.compile(stripPattern, Pattern.CASE_INSENSITIVE)); } else if (!this.includePersons && attributeDescriptor.getClazz().equals(Person.class)) { stripLocalAttributesFromXmlHelper(Pattern.compile(stripPattern, Pattern.CASE_INSENSITIVE)); } else if (!this.includeRoles && attributeDescriptor.getClazz().equals(Role.class)) { stripLocalAttributesFromXmlHelper(Pattern.compile(stripPattern, Pattern.CASE_INSENSITIVE)); } else if (!this.includePatientIdentifierTypes && attributeDescriptor.getClazz().equals(PatientIdentifierType.class)) { stripLocalAttributesFromXmlHelper(Pattern.compile(stripPattern, Pattern.CASE_INSENSITIVE));
Set<OpenmrsObject> dependencies = new HashSet<OpenmrsObject>(); Set<Class<?>> classesNotToExport = getClassesNotToExport(); MetadataMappingResolver metadataMappingResolver = getMetadataMappingResolver();
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestFormRegimens.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(true, true, true, true);
@Test public void testExportWithEncounterRoleAndProvider() throws Exception { HtmlForm form = new HtmlForm(); form.setXmlData(new TestUtil().loadXmlFromFile("org/openmrs/module/htmlformentry/include/metadataSharingExportTest.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(true, true, true, true); Collection<OpenmrsObject> dependencies = formClone.getDependencies(); Assert.assertTrue(dependencies.contains(Context.getEncounterService().getEncounterRoleByUuid("e5c5cc92-5283-11e1-bb6a-d975bd577a5e"))); Assert.assertTrue(dependencies.contains(Context.getEncounterService().getEncounterRoleByUuid("eb75d754-5283-11e1-bb6a-d975bd577a5e"))); Assert.assertTrue(dependencies.contains(Context.getProviderService().getProviderByUuid("d2299800-cca9-11e0-9572-0800200c9a66"))); Assert.assertTrue(dependencies.contains(Context.getProviderService().getProviderByUuid("c2299800-cca9-11e0-9572-0800200c9a66"))); }
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestForm.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(false, false, false, false);
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestForm.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(true, true, true, true);
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestFormMapping.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(true, true, true, true);
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestForm.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(true, true, true, true);
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestForm.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(false, false, false, false);
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestForm.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(false, false, false, false);
form.setXmlData(new TestUtil().loadXmlFromFile(XML_DATASET_PATH + "metadataSharingTestForm.xml")); HtmlFormExporter exporter = new HtmlFormExporter(form); HtmlForm formClone = exporter.export(true, false, true, true);