Example #1
0
def test_with_disjoint_maps_from_directory(spark_session):

  spark_session.sql("CREATE DATABASE IF NOT EXISTS disjoint_maps_db")

  create_concept_maps(spark_session) \
    .with_maps_from_directory("tests/resources/conceptmaps") \
    .write_to_database("disjoint_maps_db")

  reloaded = get_concept_maps(spark_session, "disjoint_maps_db") \
    .with_disjoint_maps_from_directory("tests/resources/conceptmaps", "disjoint_maps_db")

  assert reloaded.get_mappings("urn:cerner:poprec:fhir:conceptmap:demographics:gender", "0.0.1") \
           .count() == 5
Example #2
0
def test_with_maps_from_directory(spark_session):

  concept_maps = create_concept_maps(spark_session) \
    .with_maps_from_directory("tests/resources/conceptmaps")

  assert concept_maps.get_mappings("urn:cerner:poprec:fhir:conceptmap:demographics:gender", "0.0.1") \
           .count() == 5
Example #3
0
def test_write_maps(spark_session):

  concept_maps = create_concept_maps(spark_session)

  snomed_to_loinc = [('http://snomed.info/sct', '75367002', 'http://loinc.org', '55417-0', 'equivalent'), # Blood pressure
                     ('http://snomed.info/sct', '271649006', 'http://loinc.org', '8480-6', 'equivalent'), # Systolic BP
                     ('http://snomed.info/sct', '271650006', 'http://loinc.org', '8462-4', 'equivalent')] # Diastolic BP

  appended = concept_maps.with_new_map(url='urn:cerner:test:snomed-to-loinc',
                                       version='0.1',
                                       source='urn:cerner:test:valueset',
                                       target='http://hl7.org/fhir/ValueSet/observation-code',
                                       mappings=snomed_to_loinc)

  spark_session.sql('create database if not exists ontologies')
  spark_session.sql('drop table if exists ontologies.mappings')
  spark_session.sql('drop table if exists ontologies.ancestors')
  spark_session.sql('drop table if exists ontologies.conceptmaps')

  appended.write_to_database('ontologies')

  # Check that the maps were written by reloading and inspecting them.
  reloaded = get_concept_maps(spark_session)

  assert reloaded.get_maps().count() == 1
  assert reloaded.get_mappings().where(col('conceptmapuri') == 'urn:cerner:test:snomed-to-loinc').count() == 3
Example #4
0
def test_add_mappings(spark_session):

    concept_maps = create_concept_maps(spark_session)

    original = [('http://snomed.info/sct', '75367002', 'http://loinc.org',
                 '55417-0', 'equivalent')]

    added = [
        ('http://snomed.info/sct', '271649006', 'http://loinc.org', '8480-6',
         'equivalent'),  # Systolic BP
        ('http://snomed.info/sct', '271650006', 'http://loinc.org', '8462-4',
         'equivalent')
    ]  # Diastolic BP

    appended = concept_maps.with_new_map(url='urn:cerner:test:snomed-to-loinc',
                                        version='0.1',
                                        source='urn:cerner:test:valueset',
                                        target='http://hl7.org/fhir/ValueSet/observation-code',
                                        mappings=original) \
                           .add_mappings(url='urn:cerner:test:snomed-to-loinc',
                                        version='0.1',
                                        new_version='0.2',
                                        mappings=added)

    assert appended.get_maps().count() == 2
    assert appended.get_mappings() \
        .where(col('conceptmapuri') == 'urn:cerner:test:snomed-to-loinc') \
        .where(col('conceptmapversion') == '0.1') \
        .count() == 1
    assert appended.get_mappings() \
        .where(col('conceptmapuri') == 'urn:cerner:test:snomed-to-loinc') \
        .where(col('conceptmapversion') == '0.2') \
        .count() == 3
Example #5
0
def test_latest_concept_map_version(spark_session):

    concept_maps = create_concept_maps(spark_session)

    added = concept_maps.with_new_map(url='urn:cerner:test:snomed-to-loinc',
                                      version='0.1',
                                      source='urn:cerner:test:valueset',
                                      target='http://hl7.org/fhir/ValueSet/observation-code',
                                      mappings=[]) \
                        .with_new_map(url='urn:cerner:test:snomed-to-loinc',
                                      version='0.2',
                                      source='urn:cerner:test:valueset',
                                      target='http://hl7.org/fhir/ValueSet/observation-code',
                                      mappings=[])

    assert added.latest_version('urn:cerner:test:snomed-to-loinc') == '0.2'
Example #6
0
def test_get_map_as_xml(spark_session):

  concept_maps = create_concept_maps(spark_session)

  snomed_to_loinc = [('http://snomed.info/sct', '75367002', 'http://loinc.org', '55417-0', 'equivalent'), # Blood pressure
                     ('http://snomed.info/sct', '271649006', 'http://loinc.org', '8480-6', 'equivalent'), # Systolic BP
                     ('http://snomed.info/sct', '271650006', 'http://loinc.org', '8462-4', 'equivalent')] # Diastolic BP

  appended = concept_maps.with_new_map(url='urn:cerner:test:snomed-to-loinc',
                                       version='0.1',
                                       source='urn:cerner:test:valueset',
                                       target='http://hl7.org/fhir/ValueSet/observation-code',
                                       mappings=snomed_to_loinc)

  xml_str = appended.get_map_as_xml('urn:cerner:test:snomed-to-loinc', '0.1')

  root = ET.fromstring(xml_str)
  assert root.tag == '{http://hl7.org/fhir}ConceptMap'