Got feedback or spotted a mistake?

Leave a comment at the end of this page or email contact@krishagni.com

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

Introduction

This document describes the steps to add customised tokens used for various label types in OpenSpecimen. For example specimen print tokens, specimen label tokens, visit label tokens, PPID label tokens, etc. This guide is intended for developers or technical IT staff. 

Prerequisites

  1. Know how to create plugins in OpenSpecimen - how to write a plugin for OpenSpecimen?
  2. Know Java programming language

Steps   

 Below is the detailed example of specimen print label token to add collection container name. At the bottom of each step, specified the changes required to implement other type of tokens.

  1. Write a Java class that extends AbstractLabelTmplToken and implements LabelTmplToken. The following example describes how to implement LabelTmplToken:

 

public class SpecimenCollectionContainerPrintToken extends AbstractLabelTmplToken implements LabelTmplToken {

	@Override
	public String getName() {
		return "specimen_collection_container";
	}

	@Override
	public String getReplacement(Object object) {
		Specimen specimen = (Specimen)object;
		while (specimen.getParentSpecimen() != null) {
			specimen = specimen.getParentSpecimen();
		}

		return specimen.getCollectionEvent().getContainer();
	}

}

 

     i) For specimen label token extend AbstractSpecimenLabelToken. Refer attached example of PPID label token PpidLabelToken.java.

     ii) For visit label token extend AbstractVisitLabelToken class. Refer attached example of event label token EventLabelToken.java.

     iii) For participant ppid label token extend AbstractPpidToken class. Refer attached example of cp code label  token CpCodePpidToken.java.


     2. The next step will be to register this new token with the com.krishagni.catissueplus.core.common.domain.LabelTmplTokenRegistrar, to make OpenSpecimen aware of this new token. To register the new token, one needs to write a java class in the plugin like below:

 

public class PluginInitializer implements InitializingBean {
	
	private LabelTmplTokenRegistrar labelTokensRegistrar;
	
	public void setLabelTokensRegistrar(LabelTmplTokenRegistrar labelTokensRegistrar) {
		this.labelTokensRegistrar = labelTokensRegistrar;
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		labelTokensRegistrar.register(new SpecimenCollectionContainerPrintToken());	// Here replace SpecimenCollectionContainerPrintToken() with your class.

	}
}

 

      3. After adding this plugin initializer class you also need to define this bean in the spring context file located at PLUGIN_HOME/src/main/resources/pluginContext.xml. Following example describes how to define this bean:

<bean id="pluginInitializer" class="com.krishagni.openspecimen.plugin.init.PluginInitializer">
  <property name="labelTokensRegistrar" ref="specimenPrintLabelTokensRegistrar"/>
</bean>


In above bean specimenPrintLabelTokensRegistrar is to register specimen print label token. Replace registrar bean name according to your label token type by referring below list

Label TypeRegistrar Bean
PPID Label Token
ppidTokensRegistrar
Specimen Label Token
specimenTokenRegistrar
Visit Label Token
visitTokenRegistrar


You can download the complete working example from here:

 

 

  • No labels