use of com.nedap.archie.rm.generic.PartyIdentified in project openEHR_SDK by ehrbase.
the class WebTemplateSkeletonBuilder method build.
@SuppressWarnings("unchecked")
public static <T> T build(WebTemplateNode node, boolean withChildren, Class<T> clazz) {
String rmclass = node.getRmType();
CComplexObject elementConstraint = new CComplexObject();
elementConstraint.setRmTypeName(rmclass);
Object skeleton;
switch(rmclass) {
case "UID_BASED_ID":
skeleton = new HierObjectId();
break;
case "PARTY_PROXY":
skeleton = new PartyIdentified();
break;
case "STRING":
case "LONG":
skeleton = null;
break;
case "BOOLEAN":
skeleton = false;
break;
default:
skeleton = RM_OBJECT_CREATOR.create(elementConstraint);
break;
}
if (withChildren) {
node.getChildren().stream().filter(n -> !List.of("name", "archetype_node_id", "offset").contains(n.getId())).forEach(c -> {
Object childObject = build(c, true, Object.class);
insert(node, (RMObject) skeleton, c, childObject);
});
}
if (skeleton instanceof Locatable) {
Optional<WebTemplateNode> name = node.findChildById("name");
if (name.isPresent()) {
if (name.get().getRmType().equals(RmConstants.DV_CODED_TEXT)) {
((Locatable) skeleton).setName(extractDefault(name.get(), DvCodedText.class).orElseThrow());
} else {
((Locatable) skeleton).setName(extractDefault(name.get(), DvText.class).orElse(new DvText(node.getName())));
}
} else {
((Locatable) skeleton).setName(new DvText(node.getName()));
}
((Locatable) skeleton).setArchetypeNodeId(node.getNodeId());
}
if (skeleton instanceof Entry) {
((Entry) skeleton).setEncoding(new CodePhrase(new TerminologyId("IANA_character-sets"), "UTF-8"));
node.findChildById("subject").map(n -> build(n, false, PartyProxy.class)).ifPresent(((Entry) skeleton)::setSubject);
}
if (skeleton instanceof Composition) {
node.findChildById("category").flatMap(n -> extractDefault(n, DvCodedText.class)).ifPresent(((Composition) skeleton)::setCategory);
}
if (skeleton instanceof DvInterval) {
((DvInterval<?>) skeleton).setLowerIncluded(true);
((DvInterval<?>) skeleton).setUpperIncluded(true);
}
if (skeleton instanceof PartyRelated) {
node.findChildById("relationship").flatMap(n -> extractDefault(n, DvCodedText.class)).ifPresent(((PartyRelated) skeleton)::setRelationship);
}
if (skeleton == null || clazz.isAssignableFrom(skeleton.getClass())) {
return (T) skeleton;
} else {
throw new SdkException(String.format("%s not assignable from %s", skeleton.getClass(), clazz));
}
}
use of com.nedap.archie.rm.generic.PartyIdentified in project ehrbase by ehrbase.
the class EventContextFactory method makeNull.
public EventContext makeNull() {
PartyRef partyRef = new PartyRef(new HierObjectId("ref"), "null", "null");
PartyIdentified healthcareFacility = new PartyIdentified(partyRef, "null", null);
DvCodedText concept = new DvCodedText("Other Care", new CodePhrase(new TerminologyId("openehr"), "238"));
return new EventContext(healthcareFacility, new DvDateTime(new DateTime(0L).toString()), null, null, null, concept, null);
}
use of com.nedap.archie.rm.generic.PartyIdentified in project ehrbase by ehrbase.
the class EventContextFactory method makeDummy.
public EventContext makeDummy() {
PartyRef partyRef = new PartyRef(new GenericId("123456-123", "EHRBASE-SCHEME"), "DEMOGRAPHIC", "PARTY");
PartyIdentified healthcareFacility = new PartyIdentified(partyRef, "FACILITY", null);
DateTime timenow = DateTime.now();
DvCodedText concept = new DvCodedText("Other Care", new CodePhrase(new TerminologyId("openehr"), "238"));
return new EventContext(healthcareFacility, new DvDateTime(timenow.toString()), null, null, "TEST LAB", concept, null);
}
use of com.nedap.archie.rm.generic.PartyIdentified in project ehrbase by ehrbase.
the class PersistedPartyIdentified method render.
@Override
public PartyProxy render(PartyIdentifiedRecord partyIdentifiedRecord) {
PartyRef partyRef = null;
if (partyIdentifiedRecord.getPartyRefType() != null) {
ObjectId objectID = new PersistedObjectId().fromDB(partyIdentifiedRecord);
partyRef = new PartyRef(objectID, partyIdentifiedRecord.getPartyRefNamespace(), partyIdentifiedRecord.getPartyRefType());
}
List<DvIdentifier> identifierList = new PartyIdentifiers(domainAccess).retrieve(partyIdentifiedRecord);
PartyIdentified partyIdentified = new PartyIdentified(partyRef, partyIdentifiedRecord.getName(), identifierList.isEmpty() ? null : identifierList);
return partyIdentified;
}
use of com.nedap.archie.rm.generic.PartyIdentified in project ehrbase by ehrbase.
the class PersistedPartyIdentified method store.
@Override
public UUID store(PartyProxy partyProxy) {
PartyRefValue partyRefValue = new PartyRefValue(partyProxy).attributes();
// store a new party identified
UUID partyIdentifiedUuid = domainAccess.getContext().insertInto(PARTY_IDENTIFIED, PARTY_IDENTIFIED.NAME, PARTY_IDENTIFIED.PARTY_REF_NAMESPACE, PARTY_IDENTIFIED.PARTY_REF_VALUE, PARTY_IDENTIFIED.PARTY_REF_SCHEME, PARTY_IDENTIFIED.PARTY_REF_TYPE, PARTY_IDENTIFIED.PARTY_TYPE, PARTY_IDENTIFIED.OBJECT_ID_TYPE).values(((PartyIdentified) partyProxy).getName(), partyRefValue.getNamespace(), partyRefValue.getValue(), partyRefValue.getScheme(), partyRefValue.getType(), PartyType.party_identified, partyRefValue.getObjectIdType()).returning(PARTY_IDENTIFIED.ID).fetchOne().getId();
// store identifiers
new PartyIdentifiers(domainAccess).store((PartyIdentified) partyProxy, partyIdentifiedUuid);
return partyIdentifiedUuid;
}
Aggregations