Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion pacs-integration-webapp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<argLine>-Xmx512m -XX:MaxPermSize=512m</argLine>
<argLine>-Xmx512m -XX:MaxMetaspaceSize=512m</argLine>
</configuration>
</plugin>
<plugin>
Expand All @@ -42,13 +42,24 @@
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
<finalName>${project.parent.artifactId}</finalName>
</build>

<artifactId>pacs-integration-webapp</artifactId>

<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<atomfeed.version>1.10.1</atomfeed.version>
<hapi-base.version>2.2</hapi-base.version>
<web-clients.version>1.0.0</web-clients.version>
Expand Down Expand Up @@ -226,6 +237,12 @@
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
<scope>provided</scope>
</dependency>

</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.hl7;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class HL7CodedElement {
private String identifier;
private String text;
private String nameOfCodingSystem;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Attribute {
private String uuid;
private Object value;
private AttributeType attributeType;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class AttributeType {
private String uuid;
private String name;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ConceptMapType {
private String display;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ConceptReferenceTerm {
private String name;
private String code;
private Boolean retired;
private ConceptSource conceptSource;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ConceptSource {
private String uuid;
private String name;
private String hl7Code;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class LocationDTO {
private String uuid;
private String name;
private String display;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class LocationTag {
private String display;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OpenMRSOrderDetails {
private String uuid;
private OrderType orderType;
private OrderEncounter encounter;
private List<Attribute> attributes;
private OrderConcept concept;
private String type;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

public class OpenMRSOrderQueryBuilder {

private static final String UUID = "uuid";
private static final String ORDER_TYPE = "orderType:(uuid,display,name)";
private static final String ENCOUNTER = "encounter:(uuid,location:(uuid,display,name,tags:(display),attributes:(uuid,value,attributeType:(uuid,name))))";
private static final String ATTRIBUTES = "attributes:(uuid,value,attributeType:(name,uuid))";
private static final String CONCEPT = "concept:(uuid,names,mappings:(conceptMapType:(display),conceptReferenceTerm:(name,code,retired,conceptSource:(uuid,name,hl7Code))))";

public static final String ORDER_DETAILS_REPRESENTATION = String.format("custom:(%s,%s,%s,%s,%s)",
UUID, ORDER_TYPE, ENCOUNTER, ATTRIBUTES, CONCEPT);

public static final String ORDER_DETAILS_QUERY_PARAM = "v=" + ORDER_DETAILS_REPRESENTATION;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderConcept {
private String uuid;
private List<OrderConceptName> names;
private List<OrderConceptMapping> mappings;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderConceptMapping {
private ConceptMapType conceptMapType;
private ConceptReferenceTerm conceptReferenceTerm;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderConceptName {
private String uuid;
private String display;
private String name;
private String locale;
private Boolean localePreferred;
private String conceptNameType;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderEncounter {
private String uuid;
private OrderLocation location;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderLocation {
private String uuid;
private String display;
private String name;
private List<LocationTag> tags;
private List<Attribute> attributes;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class OrderLocationInfo {
private LocationDTO fulfillingLocation;
private LocationDTO sourceLocation;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.bahmni.module.pacsintegration.atomfeed.contract.order;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderType {
private String uuid;
private String display;
private String name;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.bahmni.module.pacsintegration.exception;

public class ConceptCodeResolutionException extends RuntimeException {
public ConceptCodeResolutionException(String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.bahmni.module.pacsintegration.exception;

public class LocationResolutionException extends RuntimeException {
public LocationResolutionException(String message) {
super(message);
}

public LocationResolutionException(String message, Throwable cause) {
super(message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.bahmni.module.pacsintegration.services;

import org.bahmni.module.pacsintegration.atomfeed.contract.hl7.HL7CodedElement;
import org.bahmni.module.pacsintegration.atomfeed.contract.order.OrderConcept;
import org.springframework.stereotype.Service;

@Service
public interface ConceptCodeResolver {
HL7CodedElement resolveConceptCode(OrderConcept concept);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.bahmni.module.pacsintegration.services;

import org.bahmni.module.pacsintegration.atomfeed.contract.order.OrderLocationInfo;
import org.bahmni.module.pacsintegration.atomfeed.contract.order.OpenMRSOrderDetails;
import org.springframework.stereotype.Service;

@Service
public interface LocationResolver {
OrderLocationInfo resolveLocations(OpenMRSOrderDetails orderDetails);
}
Loading