Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To print out the names of all the patients in the system:

Code Block

List<Patient> patients = Context.getPatientService().getAllPatients();
for (Patient patient : patients) {
  System.out.println("Patient: " + patient.getGivenName() + " " + patient.getFamilyName());
}

...

In an External Application

Note

 We no longer test this use case so you may experience difficulties trying to use this approach. Please see Web Services as an alternative.

 

The openmrs-api-xxx.jar file can be used in stand-alone java applications. There are three simple steps you need to follow:

  1. Choose an option below for including the openmrs jar(s) and dependencies
  2. Fire up OpenMRS by calling: Context.startup(<connection.url>, <connection.username>, <connection.password>, getProperties());
  3. You need to surround any units of work with Context.openSession() (which startup() calls for you) and Context.closeSession()
  4. Authenticate into OpenMRS by calling: Context.authenticate(username, password);
  5. You should be able to call into the Context and work with the services.

Example

Code Block

public static void main(String[] args) {
  File propsFile = new File(OpenmrsUtil.getApplicationDataDirectory(), "openmrs-runtime.properties");**
  Properties props = new Properties();
  OpenmrsUtil.loadProperties(props, propsFile);
  Context.startup("jdbc:mysql://localhost:3306/db-name?autoReconnect=true", "openmrs-db-user", "3jknfjkn33ijt", props);
  try {
    Context.openSession();
    Context.authenticate("admin", "test");
    List<Patient> patients = Context.getPatientService().getPatients("John");
    for (Patient patient : patients) {
      System.out.println("Found patient with name " + patient.getPersonName() + " and uuid: " + patient.getUuid());
    }
    ...
  }
  finally {
    Context.closeSession();
  }
}

...

OpenMRS introduced Maven in 1.8. The easiest way to use the OpenMRS API is to also use maven for your project. Once you do that, simply use these in your pom.xml

Code Block

<dependency>
	<groupId>org.openmrs.api</groupId>
	<artifactId>openmrs-api</artifactId>
	<version>${openMRSVersion}</version>
	<type>jar</type>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>org.openmrs.api</groupId>
	<artifactId>openmrs-api</artifactId>
	<version>${openMRSVersion}</version>
	<type>test-jar</type>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.openmrs.web</groupId>
	<artifactId>openmrs-web</artifactId>
	<version>${openMRSVersion}</version>
	<type>jar</type>
	<scope>provided</scope>
	</dependency>
<dependency>
	<groupId>org.openmrs.web</groupId>
	<artifactId>openmrs-web</artifactId>
	<version>${openMRSVersion}</version>
	<type>test-jar</type>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.openmrs.test</groupId>
	<artifactId>openmrs-test</artifactId>
	<version>${openMRSVersion}</version>
	<type>pom</type>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.openmrs.tools</groupId>
	<artifactId>openmrs-tools</artifactId>
	<version>${openMRSVersion}</version>
</dependency>
<properties>
	<openMRSVersion>1.8.1</openMRSVersion>
</properties>

...