def METHOD_NAME(
    self,
    form_json: dict,
    fhir_version: str,
) -> Tuple[List[CaseTriggerInfo], Dict[str, FHIRResourceType]]:
    form_question_values = get_form_question_values(form_json)
    case_blocks = extract_case_blocks(form_json)
    cases_by_id = _get_cases_by_id(self.domain, case_blocks)
    resource_types_by_case_type = _get_resource_types_by_case_type(
        self.domain,
        fhir_version,
        cases_by_id.values(),
    )
    case_trigger_info_list = []
    for case_block in case_blocks:
        try:
            case = cases_by_id[case_block['@case_id']]
        except KeyError:
            form_id = form_json[TAG_FORM][TAG_META]['instanceID']
            raise CaseNotFound(
                f"Form {form_id!r} touches case {case_block['@case_id']!r} "
                "but that case is not found."
            )
        try:
            resource_type = resource_types_by_case_type[case.type]
        except KeyError:
            # The case type is not mapped to a FHIR resource type.
            # This case is not meant to be represented as a FHIR
            # resource.
            continue
        case_trigger_info_list.append(get_case_trigger_info(
            case,
            resource_type,
            case_block,
            form_question_values,
        ))
    return case_trigger_info_list, resource_types_by_case_type