def testExpandValueSet_withIntensionalValueSet_makesExpectedCalls( self, mock_expand_extensional_value_set): mock_expand_extensional_value_set.return_value = None expanded_value_set = value_set_pb2.ValueSet() codes = [ value_set_pb2.ValueSet.Expansion.Contains( system=datatypes_pb2.Uri(value='include-system-1'), version=datatypes_pb2.String(value='include-version-1'), code=datatypes_pb2.Code(value='code-1-2'), ), value_set_pb2.ValueSet.Expansion.Contains( system=datatypes_pb2.Uri(value='include-system-2'), version=datatypes_pb2.String(value='include-version-2'), code=datatypes_pb2.Code(value='code-2-1'), ), ] expanded_value_set.expansion.contains.extend(codes) mock_client = unittest.mock.MagicMock( spec=terminology_service_client.TerminologyServiceClient) mock_client.expand_value_set.return_value = expanded_value_set value_set = value_set_pb2.ValueSet() result = value_sets.expand_value_set(value_set, mock_client) self.assertCountEqual(result.expansion.contains, codes)
def testValueSetExpansionForExtensionalSets_withExtensionalSet_expandsCodes( self): value_set = value_set_pb2.ValueSet() # Add an include set with three codes. include_1 = value_set.compose.include.add() include_1.version.value = 'include-version-1' include_1.system.value = 'include-system-1' code_1_1 = include_1.concept.add() code_1_1.code.value = 'code-1-1' code_1_2 = include_1.concept.add() code_1_2.code.value = 'code-1-2' code_1_3 = include_1.concept.add() code_1_3.code.value = 'code-1-3' # Add an include set with one code. include_2 = value_set.compose.include.add() include_2.version.value = 'include-version-2' include_2.system.value = 'include-system-2' code_2_1 = include_2.concept.add() code_2_1.code.value = 'code-2-1' # Add a copy of code_1_3 to the exclude set. exclude = value_set.compose.exclude.add() exclude.version.value = 'include-version-1' exclude.system.value = 'include-system-1' exclude_code = exclude.concept.add() exclude_code.code.value = 'code-1-3' result = value_sets._expand_extensional_value_set(value_set) expected = [ value_set_pb2.ValueSet.Expansion.Contains( system=datatypes_pb2.Uri(value='include-system-1'), version=datatypes_pb2.String(value='include-version-1'), code=datatypes_pb2.Code(value='code-1-1'), ), value_set_pb2.ValueSet.Expansion.Contains( system=datatypes_pb2.Uri(value='include-system-1'), version=datatypes_pb2.String(value='include-version-1'), code=datatypes_pb2.Code(value='code-1-2'), ), value_set_pb2.ValueSet.Expansion.Contains( system=datatypes_pb2.Uri(value='include-system-2'), version=datatypes_pb2.String(value='include-version-2'), code=datatypes_pb2.Code(value='code-2-1'), ), ] self.assertCountEqual(result.expansion.contains, expected)
def testCopyCode_fromGenericToTyped(self): """Tests copy_code from a typed to a generic Code.""" typed_code = patient_pb2.Patient.GenderCode() generic_code = datatypes_pb2.Code(value='female') codes.copy_code(generic_code, typed_code) self.assertEqual(codes_pb2.AdministrativeGenderCode.FEMALE, typed_code.value)
def testCopyCode_fromTypedToGeneric(self): """Tests copy_code from a generic to typed Code.""" typed_code = patient_pb2.Patient.GenderCode( value=codes_pb2.AdministrativeGenderCode.FEMALE) generic_code = datatypes_pb2.Code() codes.copy_code(typed_code, generic_code) self.assertEqual('female', generic_code.value)
def testGetStructureDefinitionUrl_withFhirType_returnsValue(self): """Test get_structure_definition_url functionality on FHIR types.""" boolean = datatypes_pb2.Boolean() boolean_descriptor_proto = self._descriptor_proto_for_descriptor( boolean.DESCRIPTOR) code = datatypes_pb2.Code() code_descriptor_proto = self._descriptor_proto_for_descriptor( code.DESCRIPTOR) patient = patient_pb2.Patient() patient_descriptor_proto = self._descriptor_proto_for_descriptor( patient.DESCRIPTOR) self.assertEqual( annotation_utils.get_structure_definition_url(boolean), _BOOLEAN_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(boolean.DESCRIPTOR), _BOOLEAN_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(code), _CODE_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(patient), _PATIENT_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(patient.DESCRIPTOR), _PATIENT_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(boolean_descriptor_proto), _BOOLEAN_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(code_descriptor_proto), _CODE_STRUCTURE_DEFINITION_URL) self.assertEqual( annotation_utils.get_structure_definition_url(patient_descriptor_proto), _PATIENT_STRUCTURE_DEFINITION_URL)
def testGetValueRegexForPrimitiveType_withPrimitive_returnsValue(self): """Test get_value_regex_for_primitive_type functionality on primitives.""" boolean = datatypes_pb2.Boolean() boolean_descriptor_proto = self._descriptor_proto_for_descriptor( boolean.DESCRIPTOR) code = datatypes_pb2.Code() code_descriptor_proto = self._descriptor_proto_for_descriptor( code.DESCRIPTOR) self.assertEqual( annotation_utils.get_value_regex_for_primitive_type(boolean), _BOOLEAN_VALUE_REGEX) self.assertEqual( annotation_utils.get_value_regex_for_primitive_type(boolean.DESCRIPTOR), _BOOLEAN_VALUE_REGEX) self.assertEqual( annotation_utils.get_value_regex_for_primitive_type(code), _CODE_VALUE_REGEX) self.assertEqual( annotation_utils.get_value_regex_for_primitive_type(code.DESCRIPTOR), _CODE_VALUE_REGEX) self.assertEqual( annotation_utils.get_value_regex_for_primitive_type( boolean_descriptor_proto), _BOOLEAN_VALUE_REGEX) self.assertEqual( annotation_utils.get_value_regex_for_primitive_type( code_descriptor_proto), _CODE_VALUE_REGEX)
def testGetFixedCodingSystem_withInvalidMessage_returnsNone(self): """Test get_fixed_coding_system functionality with no annotation present.""" boolean = datatypes_pb2.Boolean() self.assertIsNone(annotation_utils.get_fixed_coding_system(boolean)) code = datatypes_pb2.Code() self.assertIsNone(annotation_utils.get_fixed_coding_system(code))
def testIsPrimitiveType_withPrimitives_returnsTrue(self): """Test is_primitive_type functionality on primitive input.""" boolean = datatypes_pb2.Boolean() code = datatypes_pb2.Code() self.assertTrue(annotation_utils.is_primitive_type(boolean)) self.assertTrue(annotation_utils.is_primitive_type(boolean.DESCRIPTOR)) self.assertTrue(annotation_utils.is_primitive_type(code)) self.assertTrue(annotation_utils.is_primitive_type(code.DESCRIPTOR))
def testIsResource_withPrimitives_returnsFalse(self): """Test is_resource functionality on primitive input.""" boolean = datatypes_pb2.Boolean() code = datatypes_pb2.Code() self.assertFalse(annotation_utils.is_resource(boolean)) self.assertFalse(annotation_utils.is_resource(boolean.DESCRIPTOR)) self.assertFalse(annotation_utils.is_resource(code)) self.assertFalse(annotation_utils.is_resource(code.DESCRIPTOR))
def testIsReference_withInvalidReferenceType_returnsFalse(self): """Test is_reference functionality on invalid input.""" boolean = datatypes_pb2.Boolean() code = datatypes_pb2.Code() self.assertFalse(annotation_utils.is_reference(boolean)) self.assertFalse(annotation_utils.is_reference(boolean.DESCRIPTOR)) self.assertFalse(annotation_utils.is_reference(code)) self.assertFalse(annotation_utils.is_reference(code.DESCRIPTOR))
def testCopyCode_fromGenericToGeneric(self): """Tests copy_code form a generic to a generic Code.""" source = datatypes_pb2.Code(value='female') target = datatypes_pb2.Code() codes.copy_code(source, target) self.assertEqual('female', target.value)
def testGetCodeAsString_withStringValueType(self): """Tests get_code_as_string with a string value-field type.""" code = datatypes_pb2.Code(value='foo') self.assertEqual('foo', codes.get_code_as_string(code))
def testGetFhirValuesetUrl_withGenericCode_returnsNone(self): """Tests get_fhir_valueset_url with a generic instance of Code.""" self.assertIsNone( annotation_utils.get_fhir_valueset_url(datatypes_pb2.Code()))
def testIsTypeOrProfileOfCode_withCode_returnsTrue(self): """Tests that is_type_or_profile_of_code returns True for a base Code.""" self.assertTrue( fhir_types.is_type_or_profile_of_code(datatypes_pb2.Code()))
def testIsProfileOfCode_withCode_returnsFalse(self): """Tests that is_profile_of_code returns False for a base Code.""" self.assertFalse(fhir_types.is_profile_of_code(datatypes_pb2.Code()))
def testIsCode_withCode_returnsTrue(self): """Tests that is_code returns True when given a Code.""" self.assertTrue(fhir_types.is_code(datatypes_pb2.Code()))