diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term/loinc/LoincUploadPropertiesEnum.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term/loinc/LoincUploadPropertiesEnum.java index aa2656cdea3..0735b0a5362 100644 --- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term/loinc/LoincUploadPropertiesEnum.java +++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term/loinc/LoincUploadPropertiesEnum.java @@ -39,14 +39,14 @@ public enum LoincUploadPropertiesEnum { */ // Answer lists (ValueSets of potential answers/values for LOINC "questions") LOINC_ANSWERLIST_FILE("loinc.answerlist.file"), - LOINC_ANSWERLIST_FILE_DEFAULT("AnswerList.csv"), + LOINC_ANSWERLIST_FILE_DEFAULT("AccessoryFiles/AnswerFile/AnswerList.csv"), // Answer list links (connects LOINC observation codes to answer list codes) LOINC_ANSWERLIST_LINK_FILE("loinc.answerlist.link.file"), - LOINC_ANSWERLIST_LINK_FILE_DEFAULT("LoincAnswerListLink.csv"), + LOINC_ANSWERLIST_LINK_FILE_DEFAULT("AccessoryFiles/AnswerFile/LoincAnswerListLink.csv"), // Document ontology LOINC_DOCUMENT_ONTOLOGY_FILE("loinc.document.ontology.file"), - LOINC_DOCUMENT_ONTOLOGY_FILE_DEFAULT("DocumentOntology.csv"), + LOINC_DOCUMENT_ONTOLOGY_FILE_DEFAULT("AccessoryFiles/DocumentOntology/DocumentOntology.csv"), // LOINC codes LOINC_FILE("loinc.file"), @@ -54,40 +54,40 @@ public enum LoincUploadPropertiesEnum { // LOINC hierarchy LOINC_HIERARCHY_FILE("loinc.hierarchy.file"), - LOINC_HIERARCHY_FILE_DEFAULT("MultiAxialHierarchy.csv"), + LOINC_HIERARCHY_FILE_DEFAULT("AccessoryFiles/MultiAxialHierarchy/MultiAxialHierarchy.csv"), // IEEE medical device codes LOINC_IEEE_MEDICAL_DEVICE_CODE_MAPPING_TABLE_FILE("loinc.ieee.medical.device.code.mapping.table.file"), - LOINC_IEEE_MEDICAL_DEVICE_CODE_MAPPING_TABLE_FILE_DEFAULT("LoincIeeeMedicalDeviceCodeMappingTable.csv"), + LOINC_IEEE_MEDICAL_DEVICE_CODE_MAPPING_TABLE_FILE_DEFAULT("AccessoryFiles/LoincIeeeMedicalDeviceCodeMappingTable/LoincIeeeMedicalDeviceCodeMappingTable.csv"), // Imaging document codes LOINC_IMAGING_DOCUMENT_CODES_FILE("loinc.imaging.document.codes.file"), - LOINC_IMAGING_DOCUMENT_CODES_FILE_DEFAULT("ImagingDocumentCodes.csv"), + LOINC_IMAGING_DOCUMENT_CODES_FILE_DEFAULT("AccessoryFiles/ImagingDocuments/ImagingDocumentCodes.csv"), // Part LOINC_PART_FILE("loinc.part.file"), - LOINC_PART_FILE_DEFAULT("Part.csv"), + LOINC_PART_FILE_DEFAULT("AccessoryFiles/PartFile/Part.csv"), // Part link LOINC_PART_LINK_FILE("loinc.part.link.file"), - LOINC_PART_LINK_FILE_DEFAULT("LoincPartLink.csv"), + LOINC_PART_LINK_FILE_DEFAULT("AccessoryFiles/PartFile/LoincPartLink.csv"), // Part related code mapping LOINC_PART_RELATED_CODE_MAPPING_FILE("loinc.part.related.code.mapping.file"), - LOINC_PART_RELATED_CODE_MAPPING_FILE_DEFAULT("PartRelatedCodeMapping.csv"), + LOINC_PART_RELATED_CODE_MAPPING_FILE_DEFAULT("AccessoryFiles/PartFile/PartRelatedCodeMapping.csv"), // RSNA playbook LOINC_RSNA_PLAYBOOK_FILE("loinc.rsna.playbook.file"), - LOINC_RSNA_PLAYBOOK_FILE_DEFAULT("LoincRsnaRadiologyPlaybook.csv"), + LOINC_RSNA_PLAYBOOK_FILE_DEFAULT("AccessoryFiles/LoincRsnaRadiologyPlaybook/LoincRsnaRadiologyPlaybook.csv"), // Top 2000 codes - SI LOINC_TOP2000_COMMON_LAB_RESULTS_SI_FILE("loinc.top2000.common.lab.results.si.file"), - LOINC_TOP2000_COMMON_LAB_RESULTS_SI_FILE_DEFAULT("Top2000CommonLabResultsSi.csv"), + LOINC_TOP2000_COMMON_LAB_RESULTS_SI_FILE_DEFAULT("AccessoryFiles/Top2000Results/SI/Top2000CommonLabResultsSi.csv"), // Top 2000 codes - US LOINC_TOP2000_COMMON_LAB_RESULTS_US_FILE("loinc.top2000.common.lab.results.us.file"), - LOINC_TOP2000_COMMON_LAB_RESULTS_US_FILE_DEFAULT("Top2000CommonLabResultsUs.csv"), + LOINC_TOP2000_COMMON_LAB_RESULTS_US_FILE_DEFAULT("AccessoryFiles/Top2000Results/US/Top2000CommonLabResultsUs.csv"), // Universal lab order ValueSet LOINC_UNIVERSAL_LAB_ORDER_VALUESET_FILE("loinc.universal.lab.order.valueset.file"), - LOINC_UNIVERSAL_LAB_ORDER_VALUESET_FILE_DEFAULT("LoincUniversalLabOrdersValueSet.csv"), + LOINC_UNIVERSAL_LAB_ORDER_VALUESET_FILE_DEFAULT("AccessoryFiles/LoincUniversalLabOrdersValueSet/LoincUniversalLabOrdersValueSet.csv"), /* * OPTIONAL @@ -100,14 +100,20 @@ public enum LoincUploadPropertiesEnum { // Group LOINC_GROUP_FILE("loinc.group.file"), - LOINC_GROUP_FILE_DEFAULT("Group.csv"), + LOINC_GROUP_FILE_DEFAULT("AccessoryFiles/GroupFile/Group.csv"), // Group terms LOINC_GROUP_TERMS_FILE("loinc.group.terms.file"), - LOINC_GROUP_TERMS_FILE_DEFAULT("GroupLoincTerms.csv"), - + LOINC_GROUP_TERMS_FILE_DEFAULT("AccessoryFiles/GroupFile/GroupLoincTerms.csv"), // Parent group LOINC_PARENT_GROUP_FILE("loinc.parent.group.file"), - LOINC_PARENT_GROUP_FILE_DEFAULT("ParentGroup.csv"); + LOINC_PARENT_GROUP_FILE_DEFAULT("AccessoryFiles/GroupFile/ParentGroup.csv"), + + /* + * DUPLICATES + */ + LOINC_DUPLICATE_FILE_DEFAULT("AccessoryFiles/PanelsAndForms/Loinc.csv"), + LOINC_ANSWERLIST_DUPLICATE_FILE_DEFAULT("AccessoryFiles/PanelsAndForms/AnswerList.csv"), + LOINC_ANSWERLIST_LINK_DUPLICATE_FILE_DEFAULT("AccessoryFiles/PanelsAndForms/LoincAnswerListLink.csv"); private static Map ourValues; private String myCode; diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/term/TerminologyLoaderSvcLoincTest.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/term/TerminologyLoaderSvcLoincTest.java index 445a384d64d..b45ab57fbde 100644 --- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/term/TerminologyLoaderSvcLoincTest.java +++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/term/TerminologyLoaderSvcLoincTest.java @@ -368,12 +368,15 @@ public class TerminologyLoaderSvcLoincTest extends BaseLoaderTest { theFiles.addFileZip("/loinc/", LOINC_GROUP_FILE_DEFAULT.getCode()); theFiles.addFileZip("/loinc/", LOINC_GROUP_TERMS_FILE_DEFAULT.getCode()); theFiles.addFileZip("/loinc/", LOINC_PARENT_GROUP_FILE_DEFAULT.getCode()); - theFiles.addFileZip("/loinc/", LOINC_FILE_DEFAULT.getCode(), LOINC_FILE_DEFAULT.getCode()); - theFiles.addFileZip("/loinc/", LOINC_HIERARCHY_FILE_DEFAULT.getCode(), LOINC_HIERARCHY_FILE_DEFAULT.getCode()); - theFiles.addFileZip("/loinc/", LOINC_ANSWERLIST_FILE_DEFAULT.getCode(), LOINC_ANSWERLIST_FILE_DEFAULT.getCode()); - theFiles.addFileZip("/loinc/", LOINC_ANSWERLIST_LINK_FILE_DEFAULT.getCode(), LOINC_ANSWERLIST_LINK_FILE_DEFAULT.getCode()); - theFiles.addFileZip("/loinc/", LOINC_PART_FILE_DEFAULT.getCode(), LOINC_PART_FILE_DEFAULT.getCode()); - theFiles.addFileZip("/loinc/", LOINC_PART_LINK_FILE_DEFAULT.getCode(), LOINC_PART_LINK_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_DUPLICATE_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_HIERARCHY_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_ANSWERLIST_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_ANSWERLIST_DUPLICATE_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_ANSWERLIST_LINK_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_ANSWERLIST_LINK_DUPLICATE_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_PART_FILE_DEFAULT.getCode()); + theFiles.addFileZip("/loinc/", LOINC_PART_LINK_FILE_DEFAULT.getCode()); theFiles.addFileZip("/loinc/", LOINC_PART_RELATED_CODE_MAPPING_FILE_DEFAULT.getCode()); theFiles.addFileZip("/loinc/", LOINC_DOCUMENT_ONTOLOGY_FILE_DEFAULT.getCode()); theFiles.addFileZip("/loinc/", LOINC_RSNA_PLAYBOOK_FILE_DEFAULT.getCode()); diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/AnswerList.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/AnswerFile/AnswerList.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/AnswerList.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/AnswerFile/AnswerList.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincAnswerListLink.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/AnswerFile/LoincAnswerListLink.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincAnswerListLink.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/AnswerFile/LoincAnswerListLink.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/DocumentOntology.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/DocumentOntology/DocumentOntology.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/DocumentOntology.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/DocumentOntology/DocumentOntology.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/Group.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/GroupFile/Group.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/Group.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/GroupFile/Group.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/GroupLoincTerms.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/GroupFile/GroupLoincTerms.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/GroupLoincTerms.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/GroupFile/GroupLoincTerms.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/ParentGroup.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/GroupFile/ParentGroup.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/ParentGroup.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/GroupFile/ParentGroup.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/ImagingDocumentCodes.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/ImagingDocuments/ImagingDocumentCodes.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/ImagingDocumentCodes.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/ImagingDocuments/ImagingDocumentCodes.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincIeeeMedicalDeviceCodeMappingTable.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/LoincIeeeMedicalDeviceCodeMappingTable/LoincIeeeMedicalDeviceCodeMappingTable.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincIeeeMedicalDeviceCodeMappingTable.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/LoincIeeeMedicalDeviceCodeMappingTable/LoincIeeeMedicalDeviceCodeMappingTable.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincRsnaRadiologyPlaybook.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/LoincRsnaRadiologyPlaybook/LoincRsnaRadiologyPlaybook.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincRsnaRadiologyPlaybook.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/LoincRsnaRadiologyPlaybook/LoincRsnaRadiologyPlaybook.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincUniversalLabOrdersValueSet.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/LoincUniversalLabOrdersValueSet/LoincUniversalLabOrdersValueSet.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincUniversalLabOrdersValueSet.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/LoincUniversalLabOrdersValueSet/LoincUniversalLabOrdersValueSet.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/MultiAxialHierarchy.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/MultiAxialHierarchy/MultiAxialHierarchy.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/MultiAxialHierarchy.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/MultiAxialHierarchy/MultiAxialHierarchy.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/AnswerList.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/AnswerList.csv new file mode 100644 index 00000000000..a448cf80f2d --- /dev/null +++ b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/AnswerList.csv @@ -0,0 +1,12 @@ +"AnswerListId","AnswerListName" ,"AnswerListOID" ,"ExtDefinedYN","ExtDefinedAnswerListCodeSystem","ExtDefinedAnswerListLink" ,"AnswerStringId","LocalAnswerCode","LocalAnswerCodeSystem","SequenceNumber","DisplayText" ,"ExtCodeId","ExtCodeDisplayName" ,"ExtCodeSystem" ,"ExtCodeSystemVersion" ,"ExtCodeSystemCopyrightNotice" ,"SubsequentTextPrompt","Description","Score" +"LL1000-0" ,"PhenX05_13_30D bread amt","1.3.6.1.4.1.12009.10.1.165" ,"N" , , ,"LA13825-7" ,"1" , ,1 ,"1 slice or 1 dinner roll" , , , , , , , , +"LL1000-0" ,"PhenX05_13_30D bread amt","1.3.6.1.4.1.12009.10.1.165" ,"N" , , ,"LA13838-0" ,"2" , ,2 ,"2 slices or 2 dinner rolls" , , , , , , , , +"LL1000-0" ,"PhenX05_13_30D bread amt","1.3.6.1.4.1.12009.10.1.165" ,"N" , , ,"LA13892-7" ,"3" , ,3 ,"More than 2 slices or 2 dinner rolls", , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA6270-8" ,"00" , ,1 ,"Never" , , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA13836-4" ,"01" , ,2 ,"1-3 times per month" , , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA13834-9" ,"02" , ,3 ,"1-2 times per week" , , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA13853-9" ,"03" , ,4 ,"3-4 times per week" , , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA13860-4" ,"04" , ,5 ,"5-6 times per week" , , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA13827-3" ,"05" , ,6 ,"1 time per day" , , , , , , , , +"LL1001-8" ,"PhenX05_14_30D freq amts","1.3.6.1.4.1.12009.10.1.166" ,"N" , , ,"LA4389-8" ,"97" , ,11 ,"Refused" ,"443390004","Refused (qualifier value)","http://snomed.info/sct","http://snomed.info/sct/900000000000207008/version/20170731","This material includes SNOMED Clinical Terms® (SNOMED CT®) which is used by permission of the International Health Terminology Standards Development Organisation (IHTSDO) under license. All rights reserved. SNOMED CT® was originally created by The College", , , +"LL1892-0" ,"ICD-9_ICD-10" ,"1.3.6.1.4.1.12009.10.1.1069","Y" , ,"http://www.cdc.gov/nchs/icd.htm", , , , , , , , , , , , , diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/Loinc.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/Loinc.csv new file mode 100644 index 00000000000..20379cb7f1d --- /dev/null +++ b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/Loinc.csv @@ -0,0 +1,16 @@ +"LOINC_NUM","COMPONENT" ,"PROPERTY","TIME_ASPCT","SYSTEM" ,"SCALE_TYP","METHOD_TYP" ,"CLASS" ,"VersionLastChanged","CHNG_TYPE","DefinitionDescription" ,"STATUS","CONSUMER_NAME","CLASSTYPE","FORMULA","SPECIES","EXMPL_ANSWERS","SURVEY_QUEST_TEXT" ,"SURVEY_QUEST_SRC" ,"UNITSREQUIRED","SUBMITTED_UNITS","RELATEDNAMES2" ,"SHORTNAME" ,"ORDER_OBS" ,"CDISC_COMMON_TESTS","HL7_FIELD_SUBFIELD_ID","EXTERNAL_COPYRIGHT_NOTICE" ,"EXAMPLE_UNITS","LONG_COMMON_NAME" ,"UnitsAndRange","DOCUMENT_SECTION","EXAMPLE_UCUM_UNITS","EXAMPLE_SI_UCUM_UNITS","STATUS_REASON","STATUS_TEXT","CHANGE_REASON_PUBLIC" ,"COMMON_TEST_RANK","COMMON_ORDER_RANK","COMMON_SI_TEST_RANK","HL7_ATTACHMENT_STRUCTURE","EXTERNAL_COPYRIGHT_LINK","PanelType","AskAtOrderEntry","AssociatedObservations" ,"VersionFirstReleased","ValidHL7AttachmentRequest" +"10013-1" ,"R' wave amplitude.lead I" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-I; R wave Amp L-I; Random; Right; Voltage" ,"R' wave Amp L-I" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead I" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"10014-9" ,"R' wave amplitude.lead II" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"2; Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-II; R wave Amp L-II; Random; Right; Voltage" ,"R' wave Amp L-II" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead II" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"10015-6" ,"R' wave amplitude.lead III" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"3; Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-III; R wave Amp L-III; Random; Right; Voltage" ,"R' wave Amp L-III" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead III" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"10016-4" ,"R' wave amplitude.lead V1" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-V1; R wave Amp L-V1; Random; Right; Voltage" ,"R' wave Amp L-V1" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead V1" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"1001-7" ,"DBG Ab" ,"Pr" ,"Pt" ,"Ser/Plas^donor" ,"Ord" , ,"BLDBK" ,"2.44" ,"MIN" , ,"ACTIVE", ,1 , , , , , , , ,"ABS; Aby; Antby; Anti; Antibodies; Antibody; Autoantibodies; Autoantibody; BLOOD BANK; Donna Bennett-Goodspeed; Donr; Ordinal; Pl; Plasma; Plsm; Point in time; QL; Qual; Qualitative; Random; Screen; SerP; SerPl; SerPl^donor; SerPlas; Serum; Serum or plasma; SR" ,"DBG Ab SerPl Donr Ql" ,"Observation", , , , ,"DBG Ab [Presence] in Serum or Plasma from donor" , , , , , , ,"The Property has been changed from ACnc to Pr (Presence) to reflect the new model for ordinal terms where results are based on presence or absence." ,0 ,0 ,0 , , , , , , , +"10017-2" ,"R' wave amplitude.lead V2" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-V2; R wave Amp L-V2; Random; Right; Voltage" ,"R' wave Amp L-V2" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead V2" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"10018-0" ,"R' wave amplitude.lead V3" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-V3; R wave Amp L-V3; Random; Right; Voltage" ,"R' wave Amp L-V3" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead V3" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"10019-8" ,"R' wave amplitude.lead V4" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-V4; R wave Amp L-V4; Random; Right; Voltage" ,"R' wave Amp L-V4" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead V4" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"10020-6" ,"R' wave amplitude.lead V5" ,"Elpot" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; ECG; EKG.MEASUREMENTS; Electrical potential; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave Amp L-V5; R wave Amp L-V5; Random; Right; Voltage" ,"R' wave Amp L-V5" ,"Observation", , , ,"mV" ,"R' wave amplitude in lead V5" , , ,"mV" , , , , ,0 ,0 ,0 , , , , , , , +"61438-8" ,"Each time you ate bread, toast or dinner rolls, how much did you usually eat in the past 30D","Find" ,"Pt" ,"^Patient" ,"Ord" ,"PhenX" ,"PHENX" ,"2.44" ,"MIN" , ,"TRIAL" , ,2 , , , ,"Each time you eat bread, toast or dinner rolls, how much do you usually eat?","PhenX.050201100100","N" , ,"Finding; Findings; How much bread in 30D; Last; Ordinal; Point in time; QL; Qual; Qualitative; Random; Screen" ,"How much bread in 30D PhenX", , , , , ,"Each time you ate bread, toast or dinner rolls, how much did you usually eat in the past 30 days [PhenX]", , , , , , , ,0 ,0 ,0 , , , , , , , +"10000-8" ,"R wave duration.lead AVR" ,"Time" ,"Pt" ,"Heart" ,"Qn" ,"EKG" ,"EKG.MEAS" ,"2.48" ,"MIN" , ,"ACTIVE", ,2 , , , , , ,"Y" , ,"Cardiac; Durat; ECG; EKG.MEASUREMENTS; Electrocardiogram; Electrocardiograph; Hrt; Painter's colic; PB; Plumbism; Point in time; QNT; Quan; Quant; Quantitative; R prime; R' wave dur L-AVR; R wave dur L-AVR; Random; Right" ,"R wave dur L-AVR" ,"Observation", , , ,"s" ,"R wave duration in lead AVR" , , ,"s" , , , , ,0 ,0 ,0 , , , , , , , +"17787-3" ,"Study report" ,"Find" ,"Pt" ,"Neck>Thyroid gland","Doc" ,"NM" ,"RAD" ,"2.61" ,"MIN" , ,"ACTIVE", ,2 , , , , , , , ,"Document; Finding; Findings; Imaging; Point in time; Radiology; Random; Study report; Thy" ,"NM Thyroid Study report" ,"Both" , , , , ,"NM Thyroid gland Study report" , , , , , , ,"Changed System from ""Thyroid"" for conformance with the LOINC/RadLex unified model.; Method of ""Radnuc"" was changed to ""NM"". The LOINC/RadLex Committee agreed to use a subset of the two-letter DICOM modality codes as the primary modality identifier." ,0 ,0 ,0 ,"IG exists" , , , ,"81220-6;72230-6" ,"1.0l" , +"17788-1" ,"Large unstained cells/100 leukocytes" ,"NFr" ,"Pt" ,"Bld" ,"Qn" ,"Automated count","HEM/BC" ,"2.50" ,"MIN" ,"Part of auto diff output of Bayer H*3S; peroxidase negative cells too large to be classified as lymph or basophil" ,"ACTIVE", ,1 , , , , , ,"Y" ,"%" ,"100WBC; Auto; Automated detection; Blood; Cell; Cellularity; Elec; Elect; Electr; HEMATOLOGY/CELL COUNTS; Leuc; Leuk; Leukocyte; Lkcs; LUC; Number Fraction; Percent; Point in time; QNT; Quan; Quant; Quantitative; Random; WB; WBC; WBCs; White blood cell; White blood cells; Whole blood" ,"LUC/leuk NFr Bld Auto" ,"Observation", , , ,"%" ,"Large unstained cells/100 leukocytes in Blood by Automated count" , , ,"%" , , , , ,1894 ,0 ,1894 , , , , , ,"1.0l" , +"11488-4" ,"Consultation note" ,"Find" ,"Pt" ,"{Setting}" ,"Doc" ,"{Role}" ,"DOC.ONTOLOGY","2.63" ,"MIN" , ,"ACTIVE", ,2 , , , , , , , ,"Consult note; DOC.ONT; Document; Encounter; Evaluation and management; Evaluation and management note; Finding; Findings; notes; Point in time; Random; Visit note" ,"Consult note" ,"Both" , , , , ,"Consult note" , , , , , , ,"Edit made because this term is conformant to the Document Ontology axis values and therefore are being placed in this class.; Based on Clinical LOINC Committee decision during the September 2014 meeting, {Provider} was changed to {Author Type} to emphasize a greater breadth of potential document authors. At the September 2015 Clinical LOINC Committee meeting, the Committee decided to change {Author Type} to {Role} to align with the 'Role' axis name in the LOINC Document Ontology.; Because it is too difficult to maintain and because the distinction between documents and sections is not clear-cut nor necessary in most cases, the DOCUMENT_SECTION field has been deemed to have little value. The field has been set to null in the December 2017 release in preparation for removal in the December 2018 release. These changes were approved by the Clinical LOINC Committee.",0 ,0 ,0 ,"IG exists" , , , ,"81222-2;72231-4;81243-8","1.0j-a" ,"Y" +"47239-9" ,"Reason for stopping HIV Rx" ,"Type" ,"Pt" ,"^Patient" ,"Nom" ,"Reported" ,"ART" ,"2.50" ,"MIN" ,"Reason for stopping antiretroviral therapy" ,"ACTIVE", ,2 , , , , , ,"N" , ,"AIDS; Anti-retroviral therapy; ART; Human immunodeficiency virus; Nominal; Point in time; Random; Treatment; Typ" ,"Reason for stopping HIV Rx" ,"Observation", , ,"Copyright © 2006 World Health Organization. Used with permission. Publications of the World Health Organization can be obtained from WHO Press, World Health Organization, 20 Avenue Appia, 1211 Geneva 27, Switzerland (tel: +41 22 791 2476; fax: +41 22 791 4857; email: bookorders@who.int). Requests for permission to reproduce or translate WHO publications – whether for sale or for noncommercial distribution – should be addressed to WHO Press, at the above address (fax: +41 22 791 4806; email: permissions@who.int). The designations employed and the presentation of the material in this publication do not imply the expression of any opinion whatsoever on the part of the World Health Organization concerning the legal status of any country, territory, city or area or of its authorities, or concerning the delimitation of its frontiers or boundaries. Dotted lines on maps represent approximate border lines for which there may not yet be full agreement. The mention of specific companies or of certain manufacturers’ products does not imply that they are endorsed or recommended by the World Health Organization in preference to others of a similar nature that are not mentioned. Errors and omissions excepted, the names of proprietary products are distinguished by initial capital letters. All reasonable precautions have been taken by WHO to verify the information contained in this publication. However, the published material is being distributed without warranty of any kind, either express or implied. The responsibility for the interpretation and use of the material lies with the reader. In no event shall the World Health Organization be liable for damages arising from its use.", ,"Reason for stopping HIV treatment" , , , , , , , ,0 ,0 ,0 , ,"WHO_HIV" , , , ,"2.22" , diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/LoincAnswerListLink.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/LoincAnswerListLink.csv new file mode 100644 index 00000000000..820602c77ad --- /dev/null +++ b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PanelsAndForms/LoincAnswerListLink.csv @@ -0,0 +1,11 @@ +"LoincNumber","LongCommonName" ,"AnswerListId","AnswerListName" ,"AnswerListLinkType","ApplicableContext" +"61438-8" ,"Each time you ate bread, toast or dinner rolls, how much did you usually eat in the past 30 days [PhenX]","LL1000-0" ,"PhenX05_13_30D bread amt","NORMATIVE" , +"10061-0" ,"S' wave amplitude in lead I" ,"LL1311-1" ,"PhenX12_44" ,"EXAMPLE" , +"10331-7" ,"Rh [Type] in Blood" ,"LL360-9" ,"Pos|Neg" ,"EXAMPLE" , +"10389-5" ,"Blood product.other [Type]" ,"LL2413-4" ,"Othr bld prod" ,"EXAMPLE" , +"10390-3" ,"Blood product special preparation [Type]" ,"LL2422-5" ,"Blood prod treatment" ,"EXAMPLE" , +"10393-7" ,"Factor IX given [Type]" ,"LL2420-9" ,"Human/Recomb" ,"EXAMPLE" , +"10395-2" ,"Factor VIII given [Type]" ,"LL2420-9" ,"Human/Recomb" ,"EXAMPLE" , +"10401-8" ,"Immune serum globulin given [Type]" ,"LL2421-7" ,"IM/IV" ,"EXAMPLE" , +"10410-9" ,"Plasma given [Type]" ,"LL2417-5" ,"Plasma type" ,"EXAMPLE" , +"10568-4" ,"Clarity of Semen" ,"LL2427-4" ,"Clear/Opales/Milky" ,"EXAMPLE" , diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincPartLink.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PartFile/LoincPartLink.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/LoincPartLink.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PartFile/LoincPartLink.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/Part.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PartFile/Part.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/Part.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PartFile/Part.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/PartRelatedCodeMapping.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PartFile/PartRelatedCodeMapping.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/PartRelatedCodeMapping.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/PartFile/PartRelatedCodeMapping.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/Top2000CommonLabResultsSi.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/Top2000Results/SI/Top2000CommonLabResultsSi.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/Top2000CommonLabResultsSi.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/Top2000Results/SI/Top2000CommonLabResultsSi.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/Top2000CommonLabResultsUs.csv b/hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/Top2000Results/US/Top2000CommonLabResultsUs.csv similarity index 100% rename from hapi-fhir-jpaserver-base/src/test/resources/loinc/Top2000CommonLabResultsUs.csv rename to hapi-fhir-jpaserver-base/src/test/resources/loinc/AccessoryFiles/Top2000Results/US/Top2000CommonLabResultsUs.csv diff --git a/hapi-fhir-jpaserver-base/src/test/resources/loinc/loincupload.properties b/hapi-fhir-jpaserver-base/src/test/resources/loinc/loincupload.properties index 8ecefb96c4e..3c01c55a2a9 100644 --- a/hapi-fhir-jpaserver-base/src/test/resources/loinc/loincupload.properties +++ b/hapi-fhir-jpaserver-base/src/test/resources/loinc/loincupload.properties @@ -3,18 +3,18 @@ ################# # Answer lists (ValueSets of potential answers/values for LOINC "questions") -## Default value if key not provided: AnswerList.csv +## Default value if key not provided: AccessoryFiles/AnswerFile/AnswerList.csv ## File must be present -loinc.answerlist.file=AnswerList.csv +loinc.answerlist.file=AccessoryFiles/AnswerFile/AnswerList.csv # Answer list links (connects LOINC observation codes to answer list codes) -## Default value if key not provided: LoincAnswerListLink.csv +## Default value if key not provided: AccessoryFiles/AnswerFile/LoincAnswerListLink.csv ## File must be present -loinc.answerlist.link.file=LoincAnswerListLink.csv +loinc.answerlist.link.file=AccessoryFiles/AnswerFile/LoincAnswerListLink.csv # Document ontology -## Default value if key not provided: DocumentOntology.csv +## Default value if key not provided: AccessoryFiles/DocumentOntology/DocumentOntology.csv ## File must be present -loinc.document.ontology.file=DocumentOntology.csv +loinc.document.ontology.file=AccessoryFiles/DocumentOntology/DocumentOntology.csv # LOINC codes ## Default value if key not provided: LoincTable/Loinc.csv @@ -22,51 +22,51 @@ loinc.document.ontology.file=DocumentOntology.csv loinc.file=LoincTable/Loinc.csv # LOINC hierarchy -## Default value if key not provided: MultiAxialHierarchy.csv +## Default value if key not provided: AccessoryFiles/MultiAxialHierarchy/MultiAxialHierarchy.csv ## File must be present -loinc.hierarchy.file=MultiAxialHierarchy.csv +loinc.hierarchy.file=AccessoryFiles/MultiAxialHierarchy/MultiAxialHierarchy.csv # IEEE medical device codes -## Default value if key not provided: LoincIeeeMedicalDeviceCodeMappingTable.csv +## Default value if key not provided: AccessoryFiles/LoincIeeeMedicalDeviceCodeMappingTable/LoincIeeeMedicalDeviceCodeMappingTable.csv ## File must be present -loinc.ieee.medical.device.code.mapping.table.file=LoincIeeeMedicalDeviceCodeMappingTable.csv +loinc.ieee.medical.device.code.mapping.table.file=AccessoryFiles/LoincIeeeMedicalDeviceCodeMappingTable/LoincIeeeMedicalDeviceCodeMappingTable.csv # Imaging document codes -## Default value if key not provided: ImagingDocumentCodes.csv +## Default value if key not provided: AccessoryFiles/ImagingDocuments/ImagingDocumentCodes.csv ## File must be present -loinc.imaging.document.codes.file=ImagingDocumentCodes.csv +loinc.imaging.document.codes.file=AccessoryFiles/ImagingDocuments/ImagingDocumentCodes.csv # Part -## Default value if key not provided: Part.csv +## Default value if key not provided: AccessoryFiles/PartFile/Part.csv ## File must be present -loinc.part.file=Part.csv +loinc.part.file=AccessoryFiles/PartFile/Part.csv # Part link -## Default value if key not provided: LoincPartLink.csv +## Default value if key not provided: AccessoryFiles/PartFile/LoincPartLink.csv ## File must be present -loinc.part.link.file=LoincPartLink.csv +loinc.part.link.file=AccessoryFiles/PartFile/LoincPartLink.csv # Part related code mapping -## Default value if key not provided: PartRelatedCodeMapping.csv +## Default value if key not provided: AccessoryFiles/PartFile/PartRelatedCodeMapping.csv ## File must be present -loinc.part.related.code.mapping.file=PartRelatedCodeMapping.csv +loinc.part.related.code.mapping.file=AccessoryFiles/PartFile/PartRelatedCodeMapping.csv # RSNA playbook -## Default value if key not provided: LoincRsnaRadiologyPlaybook.csv +## Default value if key not provided: AccessoryFiles/LoincRsnaRadiologyPlaybook/LoincRsnaRadiologyPlaybook.csv ## File must be present -loinc.rsna.playbook.file=LoincRsnaRadiologyPlaybook.csv +loinc.rsna.playbook.file=AccessoryFiles/LoincRsnaRadiologyPlaybook/LoincRsnaRadiologyPlaybook.csv # Top 2000 codes - SI -## Default value if key not provided: Top2000CommonLabResultsSi.csv +## Default value if key not provided: AccessoryFiles/Top2000Results/SI/Top2000CommonLabResultsSi.csv ## File must be present -loinc.top2000.common.lab.results.si.file=Top2000CommonLabResultsSi.csv +loinc.top2000.common.lab.results.si.file=AccessoryFiles/Top2000Results/SI/Top2000CommonLabResultsSi.csv # Top 2000 codes - US -## Default value if key not provided: Top2000CommonLabResultsUs.csv +## Default value if key not provided: AccessoryFiles/Top2000Results/US/Top2000CommonLabResultsUs.csv ## File must be present -loinc.top2000.common.lab.results.us.file=Top2000CommonLabResultsUs.csv +loinc.top2000.common.lab.results.us.file=AccessoryFiles/Top2000Results/US/Top2000CommonLabResultsUs.csv # Universal lab order ValueSet -## Default value if key not provided: LoincUniversalLabOrdersValueSet.csv +## Default value if key not provided: AccessoryFiles/LoincUniversalLabOrdersValueSet/LoincUniversalLabOrdersValueSet.csv ## File must be present -loinc.universal.lab.order.valueset.file=LoincUniversalLabOrdersValueSet.csv +loinc.universal.lab.order.valueset.file=AccessoryFiles/LoincUniversalLabOrdersValueSet/LoincUniversalLabOrdersValueSet.csv ################ ### OPTIONAL ### @@ -81,15 +81,14 @@ loinc.answerlist.version=Beta.1 loinc.conceptmap.version=Beta.1 # Group -## Default value if key not provided: Group.csv +## Default value if key not provided: AccessoryFiles/GroupFile/Group.csv ## File may be omitted -loinc.group.file=Group.csv +loinc.group.file=AccessoryFiles/GroupFile/Group.csv # Group terms -## Default value if key not provided: GroupLoincTerms.csv +## Default value if key not provided: AccessoryFiles/GroupFile/GroupLoincTerms.csv ## File may be omitted -loinc.group.terms.file=GroupLoincTerms.csv - +loinc.group.terms.file=AccessoryFiles/GroupFile/GroupLoincTerms.csv # Parent group -## Default value if key not provided: ParentGroup.csv +## Default value if key not provided: AccessoryFiles/GroupFile/ParentGroup.csv ## File may be omitted -loinc.parent.group.file=ParentGroup.csv +loinc.parent.group.file=AccessoryFiles/GroupFile/ParentGroup.csv diff --git a/src/changes/changes.xml b/src/changes/changes.xml index d2713d47f29..a92505c5754 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -183,6 +183,11 @@ of JAX-RS servers may now need to add an explicit dependency on one or more structures JARs to their own project. + + The LOINC terminology distribution includes multiple copies of the same files. Uploading LOINC terminology + resulted in some ValueSets with duplicate codes. This has been corrected by specifying a path with each + filename. +