001package org.hl7.fhir.r4.terminologies; 002 003import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; 004import org.hl7.fhir.r4.model.ValueSet; 005import org.hl7.fhir.utilities.Utilities; 006 007public class ImplicitValueSets { 008 009 public static ValueSet build(String url) { 010 if (Utilities.noString(url)) 011 return null; 012 013 if (url.startsWith("http://snomed.info/sct")) 014 return buildSnomedValueSet(url); 015 if (url.startsWith("http://loinc.org/vs")) 016 return buildLoincValueSet(url); 017 if (url.equals("http://unitsofmeasure.org/vs")) 018 return allUcumValueSet(); 019 return null; 020 } 021 022 private static ValueSet buildSnomedValueSet(String url) { 023 return null; 024 } 025 026 private static ValueSet buildLoincValueSet(String url) { 027 if (url.startsWith("http://loinc.org/vs/LL")) { 028 ValueSet vs = new ValueSet(); 029 vs.setUrl(url); 030 vs.setStatus(PublicationStatus.ACTIVE); 031 vs.setName("LoincVS"+url.substring(21).replace("-", "")); 032 vs.setTitle("Loinc Implicit ValueSet for "+url.substring(21)); 033 // todo: populate the compose fro the terminology server 034 return vs; 035 } else if (url.equals("http://loinc.org/vs")) { 036 ValueSet vs = new ValueSet(); 037 vs.setUrl(url); 038 vs.setStatus(PublicationStatus.ACTIVE); 039 vs.setName("LoincVSAll"); 040 vs.setTitle("Loinc Implicit ValueSet : all codes"); 041 // todo: populate the compose for the terminology server 042 return vs; 043 } else { 044 return null; 045 } 046 } 047 048 private static ValueSet allUcumValueSet() { 049 ValueSet vs = new ValueSet(); 050 vs.setUrl("http://unitsofmeasure.org/vs"); 051 vs.setStatus(PublicationStatus.ACTIVE); 052 vs.setName("AllUcumCodes"); 053 vs.setTitle("All Ucum Codes"); 054 vs.getCompose().addInclude().setSystem("http://unitsofmeasure.org"); 055 return vs; 056 } 057 058}