Skip to content

Commit f9d219f

Browse files
committed
fixDvProportion by hardcoding for now
1 parent 914e9ba commit f9d219f

1 file changed

Lines changed: 33 additions & 3 deletions

File tree

openehr-rm/src/main/java/com/nedap/archie/rminfo/UpdatedValueHandler.java

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33
import com.google.common.base.Joiner;
44
import com.google.common.base.Strings;
55
import com.nedap.archie.ArchieLanguageConfiguration;
6-
import com.nedap.archie.aom.*;
6+
import com.nedap.archie.aom.Archetype;
7+
import com.nedap.archie.aom.CAttribute;
8+
import com.nedap.archie.aom.CAttributeTuple;
9+
import com.nedap.archie.aom.CPrimitiveTuple;
10+
import com.nedap.archie.aom.OperationalTemplate;
711
import com.nedap.archie.aom.primitives.CInteger;
812
import com.nedap.archie.aom.primitives.CString;
9-
import com.nedap.archie.aom.primitives.CTerminologyCode;
1013
import com.nedap.archie.aom.terminology.ArchetypeTerm;
1114
import com.nedap.archie.aom.terminology.ArchetypeTerminology;
1215
import com.nedap.archie.aom.utils.AOMUtils;
1316
import com.nedap.archie.base.Interval;
14-
import com.nedap.archie.paths.PathSegment;
1517
import com.nedap.archie.query.APathQuery;
1618
import com.nedap.archie.query.RMObjectWithPath;
1719
import com.nedap.archie.query.RMPathQuery;
@@ -20,6 +22,7 @@
2022
import com.nedap.archie.rm.datatypes.CodePhrase;
2123
import com.nedap.archie.rm.datavalues.DvCodedText;
2224
import com.nedap.archie.rm.datavalues.quantity.DvOrdinal;
25+
import com.nedap.archie.rm.datavalues.quantity.DvProportion;
2326
import com.nedap.archie.rm.datavalues.quantity.DvQuantity;
2427
import com.nedap.archie.rm.support.identification.TerminologyId;
2528

@@ -43,6 +46,33 @@ public static Map<String, Object> pathHasBeenUpdated(Object rmObject, Archetype
4346
if (parent instanceof DvQuantity) {
4447
return fixDvQuantity(rmObject, archetype, pathOfParent);
4548
}
49+
if (parent instanceof DvProportion) {
50+
return fixDvProportion(rmObject, archetype, pathOfParent);
51+
}
52+
return new HashMap<>();
53+
}
54+
55+
private static Map<String, Object> fixDvProportion(Object rmObject, Archetype archetype, String pathOfParent) {
56+
try {
57+
OperationalTemplate template = (OperationalTemplate) archetype;
58+
Map<String, Object> result = new HashMap<>();
59+
60+
RMPathQuery rmPathQuery = new RMPathQuery(pathOfParent);
61+
62+
DvProportion proportion = rmPathQuery.find(ArchieRMInfoLookup.getInstance(), rmObject);
63+
64+
// TODO Figure out how to not hardcode these
65+
proportion.setDenominator(100.0);
66+
result.put(pathOfParent + "/denominator", 100.0);
67+
proportion.setType(2L);
68+
result.put(pathOfParent + "/type", 2L);
69+
proportion.setPrecision(1L);
70+
result.put(pathOfParent + "/precision", 1L);
71+
72+
return result;
73+
} catch (Exception e) {
74+
logger.warn("cannot fix DvProportion", e);
75+
}
4676

4777
return new HashMap<>();
4878
}

0 commit comments

Comments
 (0)