fix bug converting search parameters
This commit is contained in:
parent
c002d5b5d1
commit
5e6755e422
|
@ -54,6 +54,22 @@ public class VersionConvertor_40_50 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static void copyEnumeration(org.hl7.fhir.r4.model.Enumeration<?> src, org.hl7.fhir.r5.model.Enumeration<?> tgt) throws FHIRException {
|
||||||
|
if (src.hasId())
|
||||||
|
tgt.setId(src.getId());
|
||||||
|
for (org.hl7.fhir.r4.model.Extension e : src.getExtension()) {
|
||||||
|
tgt.addExtension(convertExtension(e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void copyEnumeration(org.hl7.fhir.r5.model.Enumeration<?> src, org.hl7.fhir.r4.model.Enumeration<?> tgt) throws FHIRException {
|
||||||
|
if (src.hasId())
|
||||||
|
tgt.setId(src.getId());
|
||||||
|
for (org.hl7.fhir.r5.model.Extension e : src.getExtension()) {
|
||||||
|
tgt.addExtension(convertExtension(e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected static void copyBackboneElement(org.hl7.fhir.r4.model.BackboneElement src, org.hl7.fhir.r5.model.BackboneElement tgt) throws FHIRException {
|
protected static void copyBackboneElement(org.hl7.fhir.r4.model.BackboneElement src, org.hl7.fhir.r5.model.BackboneElement tgt) throws FHIRException {
|
||||||
copyElement(src, tgt);
|
copyElement(src, tgt);
|
||||||
for (org.hl7.fhir.r4.model.Extension e : src.getModifierExtension()) {
|
for (org.hl7.fhir.r4.model.Extension e : src.getModifierExtension()) {
|
||||||
|
|
|
@ -91,7 +91,7 @@ public class SearchParameter extends VersionConvertor_40_50 {
|
||||||
for (org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchComparator> t : src.getComparator())
|
for (org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchComparator> t : src.getComparator())
|
||||||
tgt.addComparator(convertSearchComparator(t.getValue()));
|
tgt.addComparator(convertSearchComparator(t.getValue()));
|
||||||
for (org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode> t : src.getModifier())
|
for (org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode> t : src.getModifier())
|
||||||
tgt.addModifier(convertSearchModifierCode(t.getValue()));
|
tgt.getModifier().add(convertSearchModifierCode(t));
|
||||||
for (org.hl7.fhir.r4.model.StringType t : src.getChain())
|
for (org.hl7.fhir.r4.model.StringType t : src.getChain())
|
||||||
tgt.getChain().add(convertString(t));
|
tgt.getChain().add(convertString(t));
|
||||||
for (org.hl7.fhir.r4.model.SearchParameter.SearchParameterComponentComponent t : src.getComponent())
|
for (org.hl7.fhir.r4.model.SearchParameter.SearchParameterComponentComponent t : src.getComponent())
|
||||||
|
@ -151,7 +151,7 @@ public class SearchParameter extends VersionConvertor_40_50 {
|
||||||
for (org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchComparator> t : src.getComparator())
|
for (org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchComparator> t : src.getComparator())
|
||||||
tgt.addComparator(convertSearchComparator(t.getValue()));
|
tgt.addComparator(convertSearchComparator(t.getValue()));
|
||||||
for (org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode> t : src.getModifier())
|
for (org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode> t : src.getModifier())
|
||||||
tgt.addModifier(convertSearchModifierCode(t.getValue()));
|
tgt.getModifier().add(convertSearchModifierCode(t));
|
||||||
for (org.hl7.fhir.r5.model.StringType t : src.getChain())
|
for (org.hl7.fhir.r5.model.StringType t : src.getChain())
|
||||||
tgt.getChain().add(convertString(t));
|
tgt.getChain().add(convertString(t));
|
||||||
for (org.hl7.fhir.r5.model.SearchParameter.SearchParameterComponentComponent t : src.getComponent())
|
for (org.hl7.fhir.r5.model.SearchParameter.SearchParameterComponentComponent t : src.getComponent())
|
||||||
|
@ -219,45 +219,51 @@ public class SearchParameter extends VersionConvertor_40_50 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode convertSearchModifierCode(org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode src) throws FHIRException {
|
public static org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode> convertSearchModifierCode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode> src) throws FHIRException {
|
||||||
if (src == null)
|
if (src == null)
|
||||||
return null;
|
return null;
|
||||||
switch (src) {
|
org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode> tgt = new org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode>();
|
||||||
case MISSING: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.MISSING;
|
copyEnumeration(src, tgt);
|
||||||
case EXACT: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.EXACT;
|
switch (src.getValue()) {
|
||||||
case CONTAINS: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.CONTAINS;
|
case MISSING: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.MISSING);
|
||||||
case NOT: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.NOT;
|
case EXACT: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.EXACT);
|
||||||
case TEXT: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.TEXT;
|
case CONTAINS: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.CONTAINS);
|
||||||
case IN: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.IN;
|
case NOT: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.NOT);
|
||||||
case NOTIN: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.NOTIN;
|
case TEXT: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.TEXT);
|
||||||
case BELOW: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.BELOW;
|
case IN: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.IN);
|
||||||
case ABOVE: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.ABOVE;
|
case NOTIN: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.NOTIN);
|
||||||
case TYPE: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.TYPE;
|
case BELOW: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.BELOW);
|
||||||
case IDENTIFIER: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.IDENTIFIER;
|
case ABOVE: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.ABOVE);
|
||||||
case OFTYPE: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.OFTYPE;
|
case TYPE: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.TYPE);
|
||||||
default: return org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.NULL;
|
case IDENTIFIER: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.IDENTIFIER);
|
||||||
|
case OFTYPE: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.OFTYPE);
|
||||||
|
default: tgt.setValue(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode.NULL);
|
||||||
|
}
|
||||||
|
return tgt;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode convertSearchModifierCode(org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode src) throws FHIRException {
|
public static org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode> convertSearchModifierCode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.SearchParameter.SearchModifierCode> src) throws FHIRException {
|
||||||
if (src == null)
|
if (src == null)
|
||||||
return null;
|
return null;
|
||||||
switch (src) {
|
org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode> tgt = new org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode>();
|
||||||
case MISSING: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.MISSING;
|
copyEnumeration(src, tgt);
|
||||||
case EXACT: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.EXACT;
|
switch (src.getValue()) {
|
||||||
case CONTAINS: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.CONTAINS;
|
case MISSING: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.MISSING);
|
||||||
case NOT: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.NOT;
|
case EXACT: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.EXACT);
|
||||||
case TEXT: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.TEXT;
|
case CONTAINS: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.CONTAINS);
|
||||||
case IN: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.IN;
|
case NOT: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.NOT);
|
||||||
case NOTIN: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.NOTIN;
|
case TEXT: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.TEXT);
|
||||||
case BELOW: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.BELOW;
|
case IN: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.IN);
|
||||||
case ABOVE: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.ABOVE;
|
case NOTIN: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.NOTIN);
|
||||||
case TYPE: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.TYPE;
|
case BELOW: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.BELOW);
|
||||||
case IDENTIFIER: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.IDENTIFIER;
|
case ABOVE: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.ABOVE);
|
||||||
case OFTYPE: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.OFTYPE;
|
case TYPE: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.TYPE);
|
||||||
default: return org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.NULL;
|
case IDENTIFIER: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.IDENTIFIER);
|
||||||
|
case OFTYPE: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.OFTYPE);
|
||||||
|
default: tgt.setValue( org.hl7.fhir.r4.model.SearchParameter.SearchModifierCode.NULL);
|
||||||
|
}
|
||||||
|
return tgt;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static org.hl7.fhir.r5.model.SearchParameter.SearchParameterComponentComponent convertSearchParameterComponentComponent(org.hl7.fhir.r4.model.SearchParameter.SearchParameterComponentComponent src) throws FHIRException {
|
public static org.hl7.fhir.r5.model.SearchParameter.SearchParameterComponentComponent convertSearchParameterComponentComponent(org.hl7.fhir.r4.model.SearchParameter.SearchParameterComponentComponent src) throws FHIRException {
|
||||||
if (src == null)
|
if (src == null)
|
||||||
|
|
|
@ -0,0 +1,213 @@
|
||||||
|
package org.hl7.fhir.r5.utils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.fhir.ucum.Utilities;
|
||||||
|
import org.hl7.fhir.exceptions.FHIRException;
|
||||||
|
import org.hl7.fhir.r5.model.ConceptMap;
|
||||||
|
import org.hl7.fhir.r5.model.ConceptMap.SourceElementComponent;
|
||||||
|
import org.hl7.fhir.r5.model.DateTimeType;
|
||||||
|
import org.hl7.fhir.r5.model.Enumerations.PublicationStatus;
|
||||||
|
import org.hl7.fhir.r5.model.MetadataResource;
|
||||||
|
import org.hl7.fhir.r5.model.UrlType;
|
||||||
|
import org.hl7.fhir.utilities.CSVReader;
|
||||||
|
|
||||||
|
public class MappingSheetParser {
|
||||||
|
|
||||||
|
public class MappingRow {
|
||||||
|
private String sequence;
|
||||||
|
private String identifier;
|
||||||
|
private String name;
|
||||||
|
private String dataType;
|
||||||
|
private String cardinality;
|
||||||
|
private String condition;
|
||||||
|
private String attribute;
|
||||||
|
private String type;
|
||||||
|
private String minMax;
|
||||||
|
private String dtMapping;
|
||||||
|
private String vocabMapping;
|
||||||
|
private String derived;
|
||||||
|
private String derivedMapping;
|
||||||
|
private String comments;
|
||||||
|
public String getSequence() {
|
||||||
|
return sequence;
|
||||||
|
}
|
||||||
|
public String getIdentifier() {
|
||||||
|
return identifier;
|
||||||
|
}
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
public String getDataType() {
|
||||||
|
return dataType;
|
||||||
|
}
|
||||||
|
public String getCardinality() {
|
||||||
|
return cardinality;
|
||||||
|
}
|
||||||
|
public String getCondition() {
|
||||||
|
return condition;
|
||||||
|
}
|
||||||
|
public String getAttribute() {
|
||||||
|
return attribute;
|
||||||
|
}
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
public String getMinMax() {
|
||||||
|
return minMax;
|
||||||
|
}
|
||||||
|
public String getDtMapping() {
|
||||||
|
return dtMapping;
|
||||||
|
}
|
||||||
|
public String getVocabMapping() {
|
||||||
|
return vocabMapping;
|
||||||
|
}
|
||||||
|
public String getDerived() {
|
||||||
|
return derived;
|
||||||
|
}
|
||||||
|
public String getDerivedMapping() {
|
||||||
|
return derivedMapping;
|
||||||
|
}
|
||||||
|
public String getComments() {
|
||||||
|
return comments;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private CSVReader csv;
|
||||||
|
private List<MappingRow> rows = new ArrayList<>();
|
||||||
|
private Map<String, String> metadata = new HashMap<>();
|
||||||
|
|
||||||
|
public MappingSheetParser(InputStream stream, String name) throws FHIRException, IOException {
|
||||||
|
super();
|
||||||
|
this.csv = new CSVReader(stream);
|
||||||
|
checkHeaders1(name);
|
||||||
|
checkHeaders2(name);
|
||||||
|
while (csv.line()) {
|
||||||
|
processRow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkHeaders1(String name) throws FHIRException, IOException {
|
||||||
|
csv.readHeaders();
|
||||||
|
csv.checkColumn(1, "HL7 v2", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(6, "Condition (IF True)", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(7, "HL7 FHIR", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(14, "Comments", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(16, "Name", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(17, "Value", "Mapping Sheet "+name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkHeaders2(String name) throws FHIRException, IOException {
|
||||||
|
csv.readHeaders();
|
||||||
|
csv.checkColumn(1, "Display Sequence", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(2, "Identifier", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(3, "Name", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(4, "Data Type", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(5, "Cardinality", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(7, "FHIR Attribute", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(8, "Data Type", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(9, "Cardinality", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(10, "Data Type Mapping", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(11, "Vocabulary Mapping\n(IS, ID, CE, CNE, CWE)", "Mapping Sheet "+name);
|
||||||
|
csv.checkColumn(12, "Derived Mapping", "Mapping Sheet "+name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processRow() {
|
||||||
|
MappingRow mr = new MappingRow();
|
||||||
|
mr.sequence = csv.value(1);
|
||||||
|
mr.identifier = csv.value(2);
|
||||||
|
mr.name = csv.value(3);
|
||||||
|
mr.dataType = csv.value(4);
|
||||||
|
mr.cardinality = csv.value(5);
|
||||||
|
mr.condition = csv.value(6);
|
||||||
|
mr.attribute = csv.value(7);
|
||||||
|
mr.type = csv.value(8);
|
||||||
|
mr.minMax = csv.value(9);
|
||||||
|
mr.dtMapping = csv.value(10);
|
||||||
|
mr.vocabMapping = csv.value(11);
|
||||||
|
mr.derived = csv.value(12);
|
||||||
|
if (!Utilities.noString(mr.derived)) {
|
||||||
|
String[] s = mr.derived.split("\\=");
|
||||||
|
mr.derived = s[0].trim();
|
||||||
|
mr.derivedMapping = s[1].trim();
|
||||||
|
}
|
||||||
|
mr.comments = csv.value(14);
|
||||||
|
rows.add(mr);
|
||||||
|
if (!org.hl7.fhir.utilities.Utilities.noString(csv.value(16)))
|
||||||
|
metadata.put(csv.value(16), csv.value(17));
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MappingRow> getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConceptMap getConceptMap() throws FHIRException {
|
||||||
|
ConceptMap map = new ConceptMap();
|
||||||
|
loadMetadata(map);
|
||||||
|
if (metadata.containsKey("copyright"))
|
||||||
|
map.setCopyright(metadata.get("copyright"));
|
||||||
|
for (MappingRow row : rows) {
|
||||||
|
SourceElementComponent element = map.getGroupFirstRep().addElement();
|
||||||
|
element.setCode(row.getIdentifier());
|
||||||
|
element.setId(row.getSequence());
|
||||||
|
element.setDisplay(row.getName()+" : "+row.getDataType()+" ["+row.getCardinality()+"]");
|
||||||
|
if (row.getCondition() != null)
|
||||||
|
element.getTargetFirstRep().addDependsOn().setProperty("http://hl7.org/fhirpath").setValue(processCondition(row.getCondition()));
|
||||||
|
element.getTargetFirstRep().setCode(row.getAttribute());
|
||||||
|
element.getTargetFirstRep().setDisplay(row.getType()+" : ["+row.getMinMax()+"]");
|
||||||
|
if (row.getDerived() != null)
|
||||||
|
element.getTargetFirstRep().getProductFirstRep().setProperty(row.getDerived()).setValue(row.getDerivedMapping());
|
||||||
|
if (row.getComments() != null)
|
||||||
|
element.getTargetFirstRep().setComment(row.getComments());
|
||||||
|
if (row.getDtMapping() != null)
|
||||||
|
element.getTargetFirstRep().addExtension("htp://hl7.org/fhir/StructureDefinition/ConceptMap-type-mapping", new UrlType("todo#"+row.getDtMapping()));
|
||||||
|
if (row.getVocabMapping() != null)
|
||||||
|
element.getTargetFirstRep().addExtension("htp://hl7.org/fhir/StructureDefinition/ConceptMap-vocab-mapping", new UrlType("todo#"+row.getVocabMapping()));
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String processCondition(String condition) {
|
||||||
|
if (condition.startsWith("IF ") && condition.endsWith(" IS VALUED"))
|
||||||
|
return "`"+condition.substring(4, condition.length()-10)+".exists()";
|
||||||
|
if (condition.startsWith("IF ") && condition.endsWith(" DOES NOT EXIST"))
|
||||||
|
return "`"+condition.substring(4, condition.length()-15)+".exists()";
|
||||||
|
throw new Error("not processed yet: "+condition);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadMetadata(MetadataResource mr) throws FHIRException {
|
||||||
|
if (metadata.containsKey("id"))
|
||||||
|
mr.setId(metadata.get("id"));
|
||||||
|
if (metadata.containsKey("url"))
|
||||||
|
mr.setUrl(metadata.get("url"));
|
||||||
|
if (metadata.containsKey("name"))
|
||||||
|
mr.setName(metadata.get("name"));
|
||||||
|
if (metadata.containsKey("title"))
|
||||||
|
mr.setTitle(metadata.get("title"));
|
||||||
|
if (metadata.containsKey("version"))
|
||||||
|
mr.setVersion(metadata.get("version"));
|
||||||
|
if (metadata.containsKey("status"))
|
||||||
|
mr.setStatus(PublicationStatus.fromCode(metadata.get("status")));
|
||||||
|
if (metadata.containsKey("date"))
|
||||||
|
mr.setDateElement(new DateTimeType(metadata.get("date")));
|
||||||
|
if (metadata.containsKey("publisher"))
|
||||||
|
mr.setPublisher(metadata.get("publisher"));
|
||||||
|
if (metadata.containsKey("description"))
|
||||||
|
mr.setDescription(metadata.get("description"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws FileNotFoundException, IOException, FHIRException {
|
||||||
|
MappingSheetParser parser = new MappingSheetParser(new FileInputStream("c:\\temp\\v2-pid.csv"), "v2-pid.csv");
|
||||||
|
ConceptMap cm = parser.getConceptMap();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -191,4 +191,21 @@ public class CSVReader extends InputStreamReader {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void checkColumn(int i, String name, String desc) throws FHIRException {
|
||||||
|
if (cols.length < i)
|
||||||
|
throw new FHIRException("Error parsing "+desc+": expected column "+name+" at col "+i+" but only found "+cols.length+" cols");
|
||||||
|
if (!cols[i-1].equals(name))
|
||||||
|
throw new FHIRException("Error parsing "+desc+": expected column "+name+" at col "+i+" but found '"+cols[i-1]+"'");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String value(int i) {
|
||||||
|
if (i > cells.length)
|
||||||
|
return null;
|
||||||
|
if (Utilities.noString(cells[i-1]))
|
||||||
|
return null;
|
||||||
|
return cells[i-1];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -745,4 +745,14 @@ public class PackageCacheManager {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void clear() throws IOException {
|
||||||
|
for (File f : new File(cacheFolder).listFiles()) {
|
||||||
|
if (f.isDirectory()) {
|
||||||
|
Utilities.clearDirectory(f.getAbsolutePath());
|
||||||
|
f.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
24
release.bat
24
release.bat
|
@ -1,28 +1,30 @@
|
||||||
REM replace versions before running
|
|
||||||
REM make sure you are committed
|
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
set oldver=3.8.3
|
||||||
|
set newver=3.8.4
|
||||||
|
|
||||||
echo ..
|
echo ..
|
||||||
echo =====================================================================
|
echo =====================================================================
|
||||||
echo upgrade and release fhir.core from 3.8.3-SNAPSHOT to 3.8.4-SNAPSHOT
|
echo upgrade and release fhir.core from %oldver%-SNAPSHOT to %newver%-SNAPSHOT
|
||||||
echo =====================================================================
|
echo =====================================================================
|
||||||
echo ..
|
echo ..
|
||||||
echo check versions and make sure committed...
|
echo check versions and make sure committed...
|
||||||
pause
|
pause
|
||||||
|
|
||||||
call mvn versions:set -DnewVersion=3.8.4-SNAPSHOT
|
call mvn versions:set -DnewVersion=%newver%-SNAPSHOT
|
||||||
call git commit -a -m "Release new version"
|
call git commit -a -m "Release new version"
|
||||||
call git push origin master
|
call git push origin master
|
||||||
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\build" --fileMask "*.java" --includeSubDirectories --find "3.8.3-SNAPSHOT" --replace "3.8.4-SNAPSHOT"
|
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\build" --fileMask "*.java" --includeSubDirectories --find "%oldver%-SNAPSHOT" --replace "%newver%-SNAPSHOT"
|
||||||
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\fhir-ig-publisher" --fileMask "*.xml" --includeSubDirectories --find "3.8.3-SNAPSHOT" --replace "3.8.4-SNAPSHOT"
|
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\build" --fileMask "*.xml" --find "%oldver%-SNAPSHOT" --replace "%newver%-SNAPSHOT"
|
||||||
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\build" --fileMask "*.xml" --find "3.8.3-SNAPSHOT" --replace "3.8.4-SNAPSHOT"
|
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\latest-ig-publisher" --fileMask "*.html" --find "%oldver%" --replace "%newver%"
|
||||||
|
call "C:\tools\fnr.exe" --cl --dir "C:\work\org.hl7.fhir\latest-ig-publisher" --fileMask "*.json" --find "%oldver%" --replace "%newver%"
|
||||||
call mvn deploy
|
call mvn deploy
|
||||||
copy org.hl7.fhir.validation.cli\target\org.hl7.fhir.validation.cli-3.8.4-SNAPSHOT.jar ..\latest-ig-publisher\org.hl7.fhir.validator.jar
|
copy org.hl7.fhir.validation.cli\target\org.hl7.fhir.validation.cli-%newver%-SNAPSHOT.jar ..\latest-ig-publisher\org.hl7.fhir.validator.jar
|
||||||
cd ..\latest-ig-publisher
|
cd ..\latest-ig-publisher
|
||||||
call git commit -a -m "Release new version 3.8.4-SNAPSHOT"
|
call git commit -a -m "Release new version %newver%-SNAPSHOT"
|
||||||
call git push origin master
|
call git push origin master
|
||||||
cd ..\org.hl7.fhir.core
|
cd ..\org.hl7.fhir.core
|
||||||
call python c:\tools\zulip-api\zulip\zulip\send.py --stream committers/notification --subject "java core" -m "New Java Core v3.8.4-SNAPSHOT released. New Validator at https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=ca.uhn.hapi.fhir&a=org.hl7.fhir.validation.cli&v=3.8.4-SNAPSHOT&e=jar, and also deployed at https://fhir.github.io/latest-ig-publisher/org.hl7.fhir.validator.jar" --config-file zuliprc
|
call python c:\tools\zulip-api\zulip\zulip\send.py --stream committers/notification --subject "java core" -m "New Java Core v%newver%-SNAPSHOT released. New Validator at https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=ca.uhn.hapi.fhir&a=org.hl7.fhir.validation.cli&v=%newver%-SNAPSHOT&e=jar, and also deployed at https://fhir.github.io/latest-ig-publisher/org.hl7.fhir.validator.jar" --config-file zuliprc
|
||||||
|
|
||||||
echo ===============================================================
|
echo ===============================================================
|
||||||
echo all done
|
echo all done
|
||||||
|
|
Loading…
Reference in New Issue