Bug fix and test improvements.
This commit is contained in:
parent
f044f9c47e
commit
0f39eeb0e9
|
@ -192,7 +192,7 @@ public abstract class BaseLoincHandler implements IRecordHandler {
|
||||||
if (isNotBlank(theVersionPropertyName)) {
|
if (isNotBlank(theVersionPropertyName)) {
|
||||||
version = myUploadProperties.getProperty(theVersionPropertyName);
|
version = myUploadProperties.getProperty(theVersionPropertyName);
|
||||||
} else {
|
} else {
|
||||||
version = myUploadProperties.getProperty(LOINC_CONCEPTMAP_VERSION.getCode());
|
version = myUploadProperties.getProperty(LOINC_CODESYSTEM_VERSION.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
ValueSet vs;
|
ValueSet vs;
|
||||||
|
|
|
@ -84,7 +84,10 @@ public class LoincRsnaPlaybookHandler extends BaseLoincHandler implements IRecor
|
||||||
|
|
||||||
// ConceptMap version from properties files
|
// ConceptMap version from properties files
|
||||||
String loincRsnaCmVersion = myUploadProperties.getProperty(LOINC_CONCEPTMAP_VERSION.getCode());
|
String loincRsnaCmVersion = myUploadProperties.getProperty(LOINC_CONCEPTMAP_VERSION.getCode());
|
||||||
|
|
||||||
|
// CodeSystem version from properties file
|
||||||
|
String codeSystemVersionId = myUploadProperties.getProperty(LOINC_CODESYSTEM_VERSION.getCode());
|
||||||
|
|
||||||
// RSNA Codes VS
|
// RSNA Codes VS
|
||||||
ValueSet vs;
|
ValueSet vs;
|
||||||
if (!myIdToValueSet.containsKey(RSNA_CODES_VS_ID)) {
|
if (!myIdToValueSet.containsKey(RSNA_CODES_VS_ID)) {
|
||||||
|
@ -93,6 +96,7 @@ public class LoincRsnaPlaybookHandler extends BaseLoincHandler implements IRecor
|
||||||
vs.setId(RSNA_CODES_VS_ID);
|
vs.setId(RSNA_CODES_VS_ID);
|
||||||
vs.setName(RSNA_CODES_VS_NAME);
|
vs.setName(RSNA_CODES_VS_NAME);
|
||||||
vs.setStatus(Enumerations.PublicationStatus.ACTIVE);
|
vs.setStatus(Enumerations.PublicationStatus.ACTIVE);
|
||||||
|
vs.setVersion(codeSystemVersionId);
|
||||||
myIdToValueSet.put(RSNA_CODES_VS_ID, vs);
|
myIdToValueSet.put(RSNA_CODES_VS_ID, vs);
|
||||||
myValueSets.add(vs);
|
myValueSets.add(vs);
|
||||||
} else {
|
} else {
|
||||||
|
@ -177,7 +181,6 @@ public class LoincRsnaPlaybookHandler extends BaseLoincHandler implements IRecor
|
||||||
|
|
||||||
String partConceptMapId;
|
String partConceptMapId;
|
||||||
String termConceptMapId;
|
String termConceptMapId;
|
||||||
String codeSystemVersionId = myUploadProperties.getProperty(LOINC_CODESYSTEM_VERSION.getCode());
|
|
||||||
if (codeSystemVersionId != null) {
|
if (codeSystemVersionId != null) {
|
||||||
partConceptMapId = LoincPartRelatedCodeMappingHandler.LOINC_PART_TO_RID_PART_MAP_ID + "-" + codeSystemVersionId;
|
partConceptMapId = LoincPartRelatedCodeMappingHandler.LOINC_PART_TO_RID_PART_MAP_ID + "-" + codeSystemVersionId;
|
||||||
termConceptMapId = LoincPartRelatedCodeMappingHandler.LOINC_TERM_TO_RPID_PART_MAP_ID + "-" + codeSystemVersionId;
|
termConceptMapId = LoincPartRelatedCodeMappingHandler.LOINC_TERM_TO_RPID_PART_MAP_ID + "-" + codeSystemVersionId;
|
||||||
|
|
|
@ -39,6 +39,7 @@ import static org.hamcrest.Matchers.contains;
|
||||||
import static org.hamcrest.Matchers.containsString;
|
import static org.hamcrest.Matchers.containsString;
|
||||||
import static org.hamcrest.Matchers.empty;
|
import static org.hamcrest.Matchers.empty;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
@ -183,10 +184,12 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertEquals(ITermLoaderSvc.LOINC_URI, vs.getCompose().getInclude().get(0).getSystem());
|
assertEquals(ITermLoaderSvc.LOINC_URI, vs.getCompose().getInclude().get(0).getSystem());
|
||||||
assertEquals("LA6270-8", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
assertEquals("LA6270-8", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
||||||
assertEquals("Never", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
assertEquals("Never", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
||||||
|
assertEquals("Beta.1", vs.getVersion());
|
||||||
|
|
||||||
// External AnswerList
|
// External AnswerList
|
||||||
vs = valueSets.get("LL1892-0");
|
vs = valueSets.get("LL1892-0");
|
||||||
assertEquals(0, vs.getCompose().getIncludeFirstRep().getConcept().size());
|
assertEquals(0, vs.getCompose().getIncludeFirstRep().getConcept().size());
|
||||||
|
assertEquals("Beta.1", vs.getVersion());
|
||||||
|
|
||||||
// Part
|
// Part
|
||||||
code = concepts.get("LP101394-7");
|
code = concepts.get("LP101394-7");
|
||||||
|
@ -220,6 +223,7 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertEquals(3, vs.getCompose().getInclude().get(0).getConcept().size());
|
assertEquals(3, vs.getCompose().getInclude().get(0).getConcept().size());
|
||||||
assertEquals("11488-4", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
assertEquals("11488-4", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
||||||
assertEquals("Consult note", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
assertEquals("Consult note", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
||||||
|
assertNull(vs.getVersion());
|
||||||
|
|
||||||
// Document ontology parts
|
// Document ontology parts
|
||||||
code = concepts.get("11488-4");
|
code = concepts.get("11488-4");
|
||||||
|
@ -237,6 +241,7 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertEquals(ITermLoaderSvc.LOINC_URI, vs.getCompose().getInclude().get(0).getSystem());
|
assertEquals(ITermLoaderSvc.LOINC_URI, vs.getCompose().getInclude().get(0).getSystem());
|
||||||
assertEquals("17787-3", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
assertEquals("17787-3", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
||||||
assertEquals("NM Thyroid gland Study report", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
assertEquals("NM Thyroid gland Study report", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
||||||
|
assertNull(vs.getVersion());
|
||||||
|
|
||||||
// RSNA Playbook Code Parts - Region Imaged
|
// RSNA Playbook Code Parts - Region Imaged
|
||||||
code = concepts.get("17787-3");
|
code = concepts.get("17787-3");
|
||||||
|
@ -305,6 +310,7 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertEquals("Creatinine [Mass/volume] in Serum or Plasma", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
assertEquals("Creatinine [Mass/volume] in Serum or Plasma", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
||||||
assertEquals("718-7", vs.getCompose().getInclude().get(0).getConcept().get(1).getCode());
|
assertEquals("718-7", vs.getCompose().getInclude().get(0).getConcept().get(1).getCode());
|
||||||
assertEquals("Hemoglobin [Mass/volume] in Blood", vs.getCompose().getInclude().get(0).getConcept().get(1).getDisplay());
|
assertEquals("Hemoglobin [Mass/volume] in Blood", vs.getCompose().getInclude().get(0).getConcept().get(1).getDisplay());
|
||||||
|
assertNull(vs.getVersion());
|
||||||
|
|
||||||
// TOP 2000 - SI
|
// TOP 2000 - SI
|
||||||
vs = valueSets.get(LoincTop2000LabResultsSiHandler.TOP_2000_SI_VS_ID);
|
vs = valueSets.get(LoincTop2000LabResultsSiHandler.TOP_2000_SI_VS_ID);
|
||||||
|
@ -317,6 +323,7 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertEquals("Creatinine [Moles/volume] in Serum or Plasma", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
assertEquals("Creatinine [Moles/volume] in Serum or Plasma", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
||||||
assertEquals("718-7", vs.getCompose().getInclude().get(0).getConcept().get(1).getCode());
|
assertEquals("718-7", vs.getCompose().getInclude().get(0).getConcept().get(1).getCode());
|
||||||
assertEquals("Hemoglobin [Mass/volume] in Blood", vs.getCompose().getInclude().get(0).getConcept().get(1).getDisplay());
|
assertEquals("Hemoglobin [Mass/volume] in Blood", vs.getCompose().getInclude().get(0).getConcept().get(1).getDisplay());
|
||||||
|
assertNull(vs.getVersion());
|
||||||
|
|
||||||
// Universal lab order VS
|
// Universal lab order VS
|
||||||
vs = valueSets.get(LoincUniversalOrderSetHandler.VS_ID_BASE);
|
vs = valueSets.get(LoincUniversalOrderSetHandler.VS_ID_BASE);
|
||||||
|
@ -325,6 +332,7 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertEquals(9, vs.getCompose().getInclude().get(0).getConcept().size());
|
assertEquals(9, vs.getCompose().getInclude().get(0).getConcept().size());
|
||||||
assertEquals("42176-8", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
assertEquals("42176-8", vs.getCompose().getInclude().get(0).getConcept().get(0).getCode());
|
||||||
assertEquals("1,3 beta glucan [Mass/volume] in Serum", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
assertEquals("1,3 beta glucan [Mass/volume] in Serum", vs.getCompose().getInclude().get(0).getConcept().get(0).getDisplay());
|
||||||
|
assertNull(vs.getVersion());
|
||||||
|
|
||||||
// All LOINC codes
|
// All LOINC codes
|
||||||
assertTrue(valueSets.containsKey("loinc-all"));
|
assertTrue(valueSets.containsKey("loinc-all"));
|
||||||
|
@ -341,6 +349,7 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
assertTrue(vs.getCompose().hasInclude());
|
assertTrue(vs.getCompose().hasInclude());
|
||||||
assertEquals(1, vs.getCompose().getInclude().size());
|
assertEquals(1, vs.getCompose().getInclude().size());
|
||||||
assertEquals(ITermLoaderSvc.LOINC_URI, vs.getCompose().getInclude().get(0).getSystem());
|
assertEquals(ITermLoaderSvc.LOINC_URI, vs.getCompose().getInclude().get(0).getSystem());
|
||||||
|
assertEquals("1.0.0", vs.getVersion());
|
||||||
|
|
||||||
// IEEE Medical Device Codes
|
// IEEE Medical Device Codes
|
||||||
conceptMap = conceptMaps.get(LoincIeeeMedicalDeviceCodeHandler.LOINC_IEEE_CM_ID);
|
conceptMap = conceptMaps.get(LoincIeeeMedicalDeviceCodeHandler.LOINC_IEEE_CM_ID);
|
||||||
|
@ -398,6 +407,18 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
verify(myTermCodeSystemStorageSvc, times(1)).storeNewCodeSystemVersion(mySystemCaptor.capture(), myCsvCaptor.capture(), any(RequestDetails.class), myValueSetsCaptor.capture(), myConceptMapCaptor.capture());
|
verify(myTermCodeSystemStorageSvc, times(1)).storeNewCodeSystemVersion(mySystemCaptor.capture(), myCsvCaptor.capture(), any(RequestDetails.class), myValueSetsCaptor.capture(), myConceptMapCaptor.capture());
|
||||||
CodeSystem loincCS = mySystemCaptor.getValue();
|
CodeSystem loincCS = mySystemCaptor.getValue();
|
||||||
assertEquals("2.67", loincCS.getVersion());
|
assertEquals("2.67", loincCS.getVersion());
|
||||||
|
List<ValueSet> loincVS_resources = myValueSetsCaptor.getValue();
|
||||||
|
for (ValueSet loincVS : loincVS_resources) {
|
||||||
|
if (loincVS.getId().startsWith("LL1000-0") || loincVS.getId().startsWith("LL1001-8") || loincVS.getId().startsWith("LL1892-0")) {
|
||||||
|
assertEquals("2.67.Beta.1", loincVS.getVersion());
|
||||||
|
} else {
|
||||||
|
assertEquals("2.67", loincVS.getVersion());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<ConceptMap> loincCM_resources = myConceptMapCaptor.getValue();
|
||||||
|
for (ConceptMap loincCM : loincCM_resources) {
|
||||||
|
assertEquals("2.67.Beta.1", loincCM.getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
// Update LOINC marked as version 2.67
|
// Update LOINC marked as version 2.67
|
||||||
myFiles = new ZipCollectionBuilder();
|
myFiles = new ZipCollectionBuilder();
|
||||||
|
@ -407,6 +428,18 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
verify(myTermCodeSystemStorageSvc, times(2)).storeNewCodeSystemVersion(mySystemCaptor.capture(), myCsvCaptor.capture(), any(RequestDetails.class), myValueSetsCaptor.capture(), myConceptMapCaptor.capture());
|
verify(myTermCodeSystemStorageSvc, times(2)).storeNewCodeSystemVersion(mySystemCaptor.capture(), myCsvCaptor.capture(), any(RequestDetails.class), myValueSetsCaptor.capture(), myConceptMapCaptor.capture());
|
||||||
loincCS = mySystemCaptor.getValue();
|
loincCS = mySystemCaptor.getValue();
|
||||||
assertEquals("2.67", loincCS.getVersion());
|
assertEquals("2.67", loincCS.getVersion());
|
||||||
|
loincVS_resources = myValueSetsCaptor.getValue();
|
||||||
|
for (ValueSet loincVS : loincVS_resources) {
|
||||||
|
if (loincVS.getId().startsWith("LL1000-0") || loincVS.getId().startsWith("LL1001-8") || loincVS.getId().startsWith("LL1892-0")) {
|
||||||
|
assertEquals("2.67.Beta.1", loincVS.getVersion());
|
||||||
|
} else {
|
||||||
|
assertEquals("2.67", loincVS.getVersion());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
loincCM_resources = myConceptMapCaptor.getValue();
|
||||||
|
for (ConceptMap loincCM : loincCM_resources) {
|
||||||
|
assertEquals("2.67.Beta.1", loincCM.getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
// Load LOINC marked as version 2.68
|
// Load LOINC marked as version 2.68
|
||||||
myFiles = new ZipCollectionBuilder();
|
myFiles = new ZipCollectionBuilder();
|
||||||
|
@ -416,6 +449,18 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest {
|
||||||
verify(myTermCodeSystemStorageSvc, times(3)).storeNewCodeSystemVersion(mySystemCaptor.capture(), myCsvCaptor.capture(), any(RequestDetails.class), myValueSetsCaptor.capture(), myConceptMapCaptor.capture());
|
verify(myTermCodeSystemStorageSvc, times(3)).storeNewCodeSystemVersion(mySystemCaptor.capture(), myCsvCaptor.capture(), any(RequestDetails.class), myValueSetsCaptor.capture(), myConceptMapCaptor.capture());
|
||||||
loincCS = mySystemCaptor.getValue();
|
loincCS = mySystemCaptor.getValue();
|
||||||
assertEquals("2.68", loincCS.getVersion());
|
assertEquals("2.68", loincCS.getVersion());
|
||||||
|
loincVS_resources = myValueSetsCaptor.getValue();
|
||||||
|
for (ValueSet loincVS : loincVS_resources) {
|
||||||
|
if (loincVS.getId().startsWith("LL1000-0") || loincVS.getId().startsWith("LL1001-8") || loincVS.getId().startsWith("LL1892-0")) {
|
||||||
|
assertEquals("2.68.Beta.1", loincVS.getVersion());
|
||||||
|
} else {
|
||||||
|
assertEquals("2.68", loincVS.getVersion());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
loincCM_resources = myConceptMapCaptor.getValue();
|
||||||
|
for (ConceptMap loincCM : loincCM_resources) {
|
||||||
|
assertEquals("2.68.Beta.1", loincCM.getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,11 +67,11 @@ loinc.codesystem.version=2.67
|
||||||
|
|
||||||
# This is the version identifier for the answer list file
|
# This is the version identifier for the answer list file
|
||||||
## Key may be omitted
|
## Key may be omitted
|
||||||
loinc.answerlist.version=Beta.1
|
loinc.answerlist.version=2.67.Beta.1
|
||||||
|
|
||||||
# This is the version identifier for uploaded ConceptMap resources
|
# This is the version identifier for uploaded ConceptMap resources
|
||||||
## Key may be omitted
|
## Key may be omitted
|
||||||
loinc.conceptmap.version=Beta.1
|
loinc.conceptmap.version=2.67.Beta.1
|
||||||
|
|
||||||
# Group
|
# Group
|
||||||
## Default value if key not provided: AccessoryFiles/GroupFile/Group.csv
|
## Default value if key not provided: AccessoryFiles/GroupFile/Group.csv
|
||||||
|
|
|
@ -67,11 +67,11 @@ loinc.codesystem.version=2.68
|
||||||
|
|
||||||
# This is the version identifier for the answer list file
|
# This is the version identifier for the answer list file
|
||||||
## Key may be omitted
|
## Key may be omitted
|
||||||
loinc.answerlist.version=Beta.1
|
loinc.answerlist.version=2.68.Beta.1
|
||||||
|
|
||||||
# This is the version identifier for uploaded ConceptMap resources
|
# This is the version identifier for uploaded ConceptMap resources
|
||||||
## Key may be omitted
|
## Key may be omitted
|
||||||
loinc.conceptmap.version=Beta.1
|
loinc.conceptmap.version=2.68.Beta.1
|
||||||
|
|
||||||
# Group
|
# Group
|
||||||
## Default value if key not provided: AccessoryFiles/GroupFile/Group.csv
|
## Default value if key not provided: AccessoryFiles/GroupFile/Group.csv
|
||||||
|
|
Loading…
Reference in New Issue