private void processClass(Element cls, Map<String, ConceptDefinitionComponent> concepts, CodeSystem define) { ConceptDefinitionComponent concept = new ConceptDefinitionComponent(); concept.setCode(cls.getAttribute("code")); concept.setDefinition(getRubric(cls, "preferred")); String s = getRubric(cls, "shortTitle"); if (s != null && !s.equals(concept.getDefinition())) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("shortTitle")).setValue(s); s = getRubric(cls, "inclusion"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("inclusion")).setValue(s); s = getRubric(cls, "exclusion"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("exclusion")).setValue(s); s = getRubric(cls, "criteria"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("criteria")).setValue(s); s = getRubric(cls, "consider"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("consider")).setValue(s); s = getRubric(cls, "note"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("note")).setValue(s); concepts.put(concept.getCode(), concept); List<Element> children = new ArrayList<Element>(); XMLUtil.getNamedChildren(cls, "SubClass", children); } else { ConceptDefinitionComponent p = concepts.get(parent.getAttribute("code")); p.getConcept().add(concept);
retVal.setSearchedForCode(code); retVal.setSearchedForSystem(system); retVal.setCodeDisplay(result.asConceptDefinition().getDisplay());
if (def == null) throw new TerminologyServiceException("Code '" + fc.getValue() + "' not found in system '" + inc.getSystem() + "'"); for (ConceptDefinitionComponent c : def.getConcept()) addCodeAndDescendents(cs, inc.getSystem(), c, null, profile, imports); } else if ("display".equals(fc.getProperty()) && fc.getOp() == FilterOperator.EQUAL) { ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), fc.getValue()); if (def != null) { if (isNotBlank(def.getDisplay()) && isNotBlank(fc.getValue())) { if (def.getDisplay().contains(fc.getValue())) { addCode(inc.getSystem(), def.getCode(), def.getDisplay(), null, def.getDesignation(), profile, CodeSystemUtilities.isNotSelectable(cs, def), CodeSystemUtilities.isInactive(cs, def), imports);
if (theCode.equals(nextCode.getCode())) { CodeType code = new CodeType(theCode); return new ValidationResult(new ConceptDefinitionComponent(code)); ConceptDefinitionComponent definition = new ConceptDefinitionComponent(); definition.setCode(next.getCode()); definition.setDisplay(next.getDisplay()); ValidationResult retVal = new ValidationResult(definition); return retVal;
retVal.setSearchedForCode(code); retVal.setSearchedForSystem(system); retVal.setCodeDisplay(result.asConceptDefinition().getDisplay());
ConceptDefinitionComponent def = getCodeDefinition(cs, code); if (warning(errors, IssueType.CODEINVALID, element.line(), element.col(), path, def != null, "Unknown Code (" + system + "#" + code + ")")) return warning(errors, IssueType.CODEINVALID, element.line(), element.col(), path, display == null || display.equals(def.getDisplay()), "Display should be '" + def.getDisplay() + "'");
private void processClass(Element cls, Map<String, ConceptDefinitionComponent> concepts, CodeSystem define) { ConceptDefinitionComponent concept = new ConceptDefinitionComponent(); concept.setCode(cls.getAttribute("code")); concept.setDefinition(getRubric(cls, "preferred")); String s = getRubric(cls, "shortTitle"); if (s != null && !s.equals(concept.getDefinition())) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("shortTitle")).setValue(s); s = getRubric(cls, "inclusion"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("inclusion")).setValue(s); s = getRubric(cls, "exclusion"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("exclusion")).setValue(s); s = getRubric(cls, "criteria"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("criteria")).setValue(s); s = getRubric(cls, "consider"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("consider")).setValue(s); s = getRubric(cls, "note"); if (s != null) concept.addDesignation().setUse(new Coding().setSystem("http://hl7.org/fhir/sid/icpc2/rubrics").setCode("note")).setValue(s); concepts.put(concept.getCode(), concept); List<Element> children = new ArrayList<Element>(); XMLUtil.getNamedChildren(cls, "SubClass", children); } else { ConceptDefinitionComponent p = concepts.get(parent.getAttribute("code")); p.getConcept().add(concept);
if (def.getCode().equals(theCode)) { if (def.getDisplay() != null && theDisplay != null) { if (def.getDisplay().equals(theDisplay)) { severity = IssueSeverity.INFORMATION; message = "Validated Successfully";
@Override public Base setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case 3059181: // code this.code = castToCode(value); // CodeType return value; case 1671764162: // display this.display = castToString(value); // StringType return value; case -1014418093: // definition this.definition = castToString(value); // StringType return value; case -900931593: // designation this.getDesignation().add((ConceptDefinitionDesignationComponent) value); // ConceptDefinitionDesignationComponent return value; case -993141291: // property this.getProperty().add((ConceptPropertyComponent) value); // ConceptPropertyComponent return value; case 951024232: // concept this.getConcept().add((ConceptDefinitionComponent) value); // ConceptDefinitionComponent return value; default: return super.setProperty(hash, name, value); } }
public ConceptDefinitionComponent copy() { ConceptDefinitionComponent dst = new ConceptDefinitionComponent(); copyValues(dst); dst.code = code == null ? null : code.copy(); dst.display = display == null ? null : display.copy(); dst.definition = definition == null ? null : definition.copy(); if (designation != null) { dst.designation = new ArrayList<ConceptDefinitionDesignationComponent>(); for (ConceptDefinitionDesignationComponent i : designation) dst.designation.add(i.copy()); }; if (property != null) { dst.property = new ArrayList<ConceptPropertyComponent>(); for (ConceptPropertyComponent i : property) dst.property.add(i.copy()); }; if (concept != null) { dst.concept = new ArrayList<ConceptDefinitionComponent>(); for (ConceptDefinitionComponent i : concept) dst.concept.add(i.copy()); }; return dst; }
@Override public Base addChild(String name) throws FHIRException { if (name.equals("code")) { throw new FHIRException("Cannot call addChild on a primitive type CodeSystem.code"); } else if (name.equals("display")) { throw new FHIRException("Cannot call addChild on a primitive type CodeSystem.display"); } else if (name.equals("definition")) { throw new FHIRException("Cannot call addChild on a primitive type CodeSystem.definition"); } else if (name.equals("designation")) { return addDesignation(); } else if (name.equals("property")) { return addProperty(); } else if (name.equals("concept")) { return addConcept(); } else return super.addChild(name); }
private static synchronized void loadServiceCategories() { if (serviceCategories == null) { Map<String, CodeableConcept> map = new LinkedHashMap<>(); Bundle bundle = ClientUtil.getFhirClient().search().forResource(ValueSet.class) .where(CodeSystem.NAME.matchesExactly().value("EncounterType")).returnBundle(Bundle.class).execute(); for (CodeSystem cs : FhirUtil.getEntries(bundle, CodeSystem.class)) { UriType system = cs.getUrlElement(); for (ConceptDefinitionComponent concept : cs.getConcept()) { CodeableConcept cc = new CodeableConcept(); Coding coding = cc.addCoding(); coding.setCode(concept.getCode()); coding.setDisplay(concept.getDisplay()); coding.setSystemElement(system); cc.setText(concept.getDefinition()); map.put(coding.getCode(), cc); } } serviceCategories = map; } return; }
private CodeValidationResult testIfConceptIsInListInner(List<ConceptDefinitionComponent> conceptList, boolean theCaseSensitive, String code) { CodeValidationResult retVal = null; for (ConceptDefinitionComponent next : conceptList) { String nextCandidate = next.getCode(); if (theCaseSensitive == false) { nextCandidate = nextCandidate.toUpperCase(); } if (nextCandidate.equals(code)) { retVal = new CodeValidationResult(next); break; } // recurse retVal = testIfConceptIsInList(code, next.getConcept(), theCaseSensitive); if (retVal != null) { break; } } return retVal; }
@Override public Base setProperty(String name, Base value) throws FHIRException { if (name.equals("code")) { this.code = castToCode(value); // CodeType } else if (name.equals("display")) { this.display = castToString(value); // StringType } else if (name.equals("definition")) { this.definition = castToString(value); // StringType } else if (name.equals("designation")) { this.getDesignation().add((ConceptDefinitionDesignationComponent) value); } else if (name.equals("property")) { this.getProperty().add((ConceptPropertyComponent) value); } else if (name.equals("concept")) { this.getConcept().add((ConceptDefinitionComponent) value); } else return super.setProperty(name, value); return value; }
public static org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException { if (src == null || src.isEmpty()) return null; org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent(); copyElement(src, tgt); tgt.setCode(src.getCode()); if (src.hasDisplay()) tgt.setDisplay(src.getDisplay()); if (src.hasDefinition()) tgt.setDefinition(src.getDefinition()); for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation()) tgt.addDesignation(convertConceptDefinitionDesignationComponent(t)); for (ConceptDefinitionPropertyComponent t : src.getProperty()) tgt.addProperty(convertConceptPropertyComponent(t)); for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept()) tgt.addConcept(convertConceptDefinitionComponent(t)); return tgt; }
public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException { if (src == null || src.isEmpty()) return null; org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent(); copyElement(src, tgt); tgt.setCode(src.getCode()); if (src.hasDisplay()) tgt.setDisplay(src.getDisplay()); if (src.hasDefinition()) tgt.setDefinition(src.getDefinition()); for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation()) tgt.addDesignation(convertConceptDefinitionDesignationComponent(t)); for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptPropertyComponent t : src.getProperty()) tgt.addProperty(convertConceptPropertyComponent(t)); for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept()) tgt.addConcept(convertConceptDefinitionComponent(t)); return tgt; }
private void processConcept(List<ConceptDefinitionComponent> concepts, org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionComponent cs, CodeSystem tgtcs) throws FHIRException { org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent ct = new org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent(); concepts.add(ct); ct.setCode(cs.getCode()); ct.setDisplay(cs.getDisplay()); ct.setDefinition(cs.getDefinition()); if (cs.getAbstract()) CodeSystemUtilities.setNotSelectable(tgtcs, ct); for (org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionDesignationComponent csd : cs.getDesignation()) { org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent cst = new org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent(); cst.setLanguage(csd.getLanguage()); cst.setUse(convertCoding(csd.getUse())); cst.setValue(csd.getValue()); } for (org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionComponent csc : cs.getConcept()) processConcept(ct.getConcept(), csc, tgtcs); }
@CoverageIgnore @Override public CodeValidationResult validateCode(FhirContext theContext, String theCodeSystem, String theCode, String theDisplay) { TermConcept code = myTerminologySvc.findCode(theCodeSystem, theCode); if (code != null) { ConceptDefinitionComponent def = new ConceptDefinitionComponent(); def.setCode(code.getCode()); def.setDisplay(code.getDisplay()); CodeValidationResult retVal = new CodeValidationResult(def); retVal.setProperties(code.toValidationProperties()); retVal.setCodeSystemName(code.getCodeSystemVersion().getCodeSystem().getName()); return retVal; } return new CodeValidationResult(IssueSeverity.ERROR, "Unknown code {" + theCodeSystem + "}" + theCode); }
private void processConcept(List<org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionComponent> concepts, ConceptDefinitionComponent cs, CodeSystem srcCS) throws FHIRException { org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionComponent ct = new org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionComponent(); concepts.add(ct); ct.setCode(cs.getCode()); ct.setDisplay(cs.getDisplay()); ct.setDefinition(cs.getDefinition()); if (CodeSystemUtilities.isNotSelectable(srcCS, cs)) ct.setAbstract(true); for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent csd : cs.getDesignation()) { org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionDesignationComponent cst = new org.hl7.fhir.instance.model.ValueSet.ConceptDefinitionDesignationComponent(); cst.setLanguage(csd.getLanguage()); cst.setUse(convertCoding(csd.getUse())); cst.setValue(csd.getValue()); } for (ConceptDefinitionComponent csc : cs.getConcept()) processConcept(ct.getConcept(), csc, srcCS); }
private List<TermConcept> toPersistedConcepts(List<ConceptDefinitionComponent> theConcept, TermCodeSystemVersion theCodeSystemVersion) { ArrayList<TermConcept> retVal = new ArrayList<>(); for (ConceptDefinitionComponent next : theConcept) { if (isNotBlank(next.getCode())) { TermConcept termConcept = new TermConcept(); termConcept.setCode(next.getCode()); termConcept.setCodeSystemVersion(theCodeSystemVersion); termConcept.setDisplay(next.getDisplay()); termConcept.addChildren(toPersistedConcepts(next.getConcept(), theCodeSystemVersion), RelationshipTypeEnum.ISA); retVal.add(termConcept); } } return retVal; }