def test_from_fhir_partOf(self): # prepopulate database with parent organization parent = Organization(id=101, name='fake parent reference') with SessionScope(db): db.session.add(parent) db.session.commit() parent = db.session.merge(parent) parent_id = parent.id with (open( os.path.join(os.path.dirname(__file__), 'organization-example-f002-burgers-card.json'), 'r')) as fhir_data: data = json.load(fhir_data) # remove the id from the file - doesn't play well with ours data.pop('id') org = Organization.from_fhir(data) assert org.addresses[0].line1 == data['address'][0]['line'][0] assert org.name == data['name'] assert org.phone == "022-655 2320" assert org.partOf_id == parent_id # confirm we can store with SessionScope(db): db.session.add(org) db.session.commit() org = db.session.merge(org) assert org.id assert org.partOf_id == parent_id
def test_organization_get_by_identifier(self): org_id_system = "http://test/system" org_id_value = "testval" self.login() org = Organization(name='test', id=999) ident = Identifier(id=99, system=org_id_system, value=org_id_value) org_ident = OrganizationIdentifier(organization_id=999, identifier_id=99) with SessionScope(db): db.session.add(org) db.session.add(ident) db.session.commit() db.session.add(org_ident) db.session.commit() # use api to obtain FHIR response = self.client.get( '/api/organization?system={system}&value={value}'.format( system=quote_plus(org_id_system), value=org_id_value)) assert response.status_code == 200 assert response.json['total'] == 1 assert response.json['entry'][0]['id'] == 999 # use alternative API to obtain organization response = self.client.get( '/api/organization/{value}?system={system}'.format( system=quote_plus(org_id_system), value=org_id_value)) assert response.status_code == 200 fetched = Organization.from_fhir(response.json) org = db.session.merge(org) assert org.id == fetched.id assert org.name == fetched.name
def test_from_fhir(self): with open( os.path.join(os.path.dirname(__file__), 'organization-example-f001-burgers.json'), 'r') as fhir_data: data = json.load(fhir_data) #prepopuate database with matching locale Coding.from_fhir({ 'code': 'en_AU', 'display': 'Australian English', 'system': "urn:ietf:bcp:47" }) org = Organization.from_fhir(data) self.assertEquals(org.addresses[0].line1, data['address'][0]['line'][0]) self.assertEquals(org.addresses[1].line1, data['address'][1]['line'][0]) self.assertEquals(org.name, data['name']) self.assertEquals(org.phone, "022-655 2300") self.assertTrue(org.use_specific_codings) self.assertTrue(org.race_codings) self.assertFalse(org.ethnicity_codings) self.assertEquals(org.locales.count(), 1) self.assertEquals(org.default_locale, "en_AU")
def test_from_fhir_partOf(self): # prepopulate database with parent organization parent = Organization(id=101, name='fake parent reference') with SessionScope(db): db.session.add(parent) db.session.commit() parent = db.session.merge(parent) parent_id = parent.id with (open( os.path.join( os.path.dirname(__file__), 'organization-example-f002-burgers-card.json'), 'r') ) as fhir_data: data = json.load(fhir_data) # remove the id from the file - doesn't play well with ours data.pop('id') org = Organization.from_fhir(data) assert org.addresses[0].line1 == data['address'][0]['line'][0] assert org.name == data['name'] assert org.phone == "022-655 2320" assert org.partOf_id == parent_id # confirm we can store with SessionScope(db): db.session.add(org) db.session.commit() org = db.session.merge(org) assert org.id assert org.partOf_id == parent_id
def test_organization_get_by_identifier(self): org_id_system = "http://test/system" org_id_value = "testval" self.login() org = Organization(name='test', id=999) ident = Identifier(id=99, system=org_id_system, value=org_id_value) org_ident = OrganizationIdentifier( organization_id=999, identifier_id=99) with SessionScope(db): db.session.add(org) db.session.add(ident) db.session.commit() db.session.add(org_ident) db.session.commit() # use api to obtain FHIR response = self.client.get( '/api/organization?system={system}&value={value}'.format( system=quote_plus(org_id_system), value=org_id_value)) assert response.status_code == 200 assert response.json['total'] == 1 assert response.json['entry'][0]['id'] == 999 # use alternative API to obtain organization response = self.client.get( '/api/organization/{value}?system={system}'.format( system=quote_plus(org_id_system), value=org_id_value)) assert response.status_code == 200 fetched = Organization.from_fhir(response.json) org = db.session.merge(org) assert org.id == fetched.id assert org.name == fetched.name
def test_org_rp_reference(self): rp = ResearchProtocol(name="test_rp") with SessionScope(db): db.session.add(rp) db.session.commit() rp = db.session.merge(rp) org_data = {"name": "test_org", "extension": [ {"url": TRUENTH_RP_EXTENSION, "research_protocols": [{'name': "test_rp"}]} ]} org = Organization.from_fhir(org_data) self.assertEqual(1, len(org.research_protocols)) self.assertEqual(org.research_protocols[0].id, rp.id)
def test_org_rp_reference(self): rp = ResearchProtocol(name="test_rp") with SessionScope(db): db.session.add(rp) db.session.commit() rp = db.session.merge(rp) org_data = {"name": "test_org", "extension": [ {"url": TRUENTH_RP_EXTENSION, "research_protocols": [{'name': "test_rp"}]} ]} org = Organization.from_fhir(org_data) assert len(org.research_protocols) == 1 assert org.research_protocols[0].id == rp.id
def test_from_fhir(self): with (open( os.path.join(os.path.dirname(__file__), 'organization-example-f001-burgers.json'), 'r')) as fhir_data: data = json.load(fhir_data) # prepopulate database with matching locale Coding.from_fhir({ 'code': 'en_AU', 'display': 'Australian English', 'system': IETF_LANGUAGE_TAG }) org = Organization.from_fhir(data) assert org.addresses[0].line1 == data['address'][0]['line'][0] assert org.addresses[1].line1 == data['address'][1]['line'][0] assert org.name == data['name'] assert org.phone == "022-655 2300" assert org.use_specific_codings assert org.race_codings assert not org.ethnicity_codings assert org.locales.count() == 1 assert org.default_locale == "en_AU" assert org._timezone == "US/Pacific"
def test_from_fhir(self): with (open( os.path.join( os.path.dirname(__file__), 'organization-example-f001-burgers.json'), 'r') ) as fhir_data: data = json.load(fhir_data) # prepopulate database with matching locale Coding.from_fhir( {'code': 'en_AU', 'display': 'Australian English', 'system': IETF_LANGUAGE_TAG}) org = Organization.from_fhir(data) assert org.addresses[0].line1 == data['address'][0]['line'][0] assert org.addresses[1].line1 == data['address'][1]['line'][0] assert org.name == data['name'] assert org.phone == "022-655 2300" assert org.use_specific_codings assert org.race_codings assert not org.ethnicity_codings assert org.locales.count() == 1 assert org.default_locale == "en_AU" assert org._timezone == "US/Pacific"